============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined conf_setAudioDefaults() SUB RSP,0x8 MOV RDI,qword ptr [.bss:conf[88]] TEST RDI,RDI JZ LAB_0011bdd5 CALL .plt:::free ;void free(void * __ptr) LAB_0011bdd5: LEA RDI,[.rodata:s_openal_001f5946] ;= "openal" CALL .plt:::strdup ;char * strdup(char * __s) MOV dword ptr [.bss:conf[112]],0x0 MOV qword ptr [.bss:conf[88]],RAX MOV RAX,0x100000080 MOV qword ptr [.bss:conf[96]],RAX MOV RAX,0x8000000001 MOV qword ptr [.bss:conf[104]],RAX MOV RAX,qword ptr [.rodata:DAT_001f43c0] ;= 3FE3333333333333h MOV qword ptr [.bss:conf[120]],RAX MOV RAX,qword ptr [.rodata:DAT_001f49a0] ;= 3FE999999999999Ah MOV qword ptr [.bss:conf[128]],RAX ADD RSP,0x8 RET ?? 66h f Actual src: void conf_setAudioDefaults (void) { if (conf.sound_backend!= NULL) { free(conf.sound_backend); conf.sound_backend = NULL; } /* Sound. */ conf.sound_backend = strdup(BACKEND_DEFAULT); conf.snd_voices = VOICES_DEFAULT; conf.snd_pilotrel = PILOT_RELATIVE_DEFAULT; conf.al_efx = USE_EFX_DEFAULT; conf.al_bufsize = BUFFER_SIZE_DEFAULT; conf.nosound = MUTE_SOUND_DEFAULT; conf.sound = SOUND_VOLUME_DEFAULT; conf.music = MUSIC_VOLUME_DEFAULT; } Predicted src: void openopen(void) { if (openopen) { openopen = strdup(openopen); openopen = NULL; } if (openopen) { openopen = NULL; } openopen = NULL; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* VERDICTTYPE::TEMPNAMEPLACEHOLDERVALUE(verdicttype) * ;************************************************************************************************************************************************************ ;undefined operator=(VERDICTTYPE * this, verdicttype param_1) ;this VERDICTTYPE * RDI ;param_1 verdicttype ESI CMP param_1,0x4 JA LAB_001a484b MOV dword ptr [this],param_1 MOV RAX,this RET LAB_001a484b: PUSH RAX LEA this,[.rodata:s_Assignment_of_an_invalid_verdict_004b1300] ;= "Assignment of an invalid verdict... XOR EAX,EAX CALL TTCN_error ;undefined TTCN_error(char * param_1,... NOP word ptr [RAX + RAX*0x1] Actual src: VERDICTTYPE& VERDICTTYPE::operator=(verdicttype other_value) { if (!IS_VALID(other_value)) TTCN_error("Assignment of an invalid verdict value (%d).", other_value); verdict_value = other_value; return *this; } Predicted src: boolean PREGEN__SET__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OF__OFOF__OF__OF__OF__OFOF__OF__OF__OF__OF__OF__OF__OF__OF__OFOF__OF__OF__OFOF__OF__OF__OFOF__OF__OF__OF__OFOF__OF__OFOF__OF__OFOF__OF__OFOF__OFOF__OF__OFOF__OFOF__OFOF__OFOFOF__OFOFOF__OFOFOF__OFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFOFO ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _wrap_plfit_continuous_options_t___str__() ;local_10 undefined8 -10 ;local_18 undefined8 -18 PUSH RBP SUB RSP,0x10 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x18],RAX XOR EAX,EAX MOV qword ptr [RSP]=>local_18,0x0 TEST RSI,RSI JZ LAB_0010a4b8 MOV RDX,qword ptr [.bss:swig_types] ;=?? MOV RDI,RSI XOR ECX,ECX MOV RSI,RSP CALL SWIG_Python_ConvertPtrAndOwn.constprop.0 ;undefined SWIG_Python_ConvertPtrAndO... MOV EDI,EAX TEST EAX,EAX JS LAB_0010a490 MOV RAX,qword ptr [RSP]=>local_18 SUB RSP,0x8 LEA RBP,[.bss:temp.17] ;=?? LEA RCX,[.rodata:s_finite_size_correction_=_%d,_xmi_0010e910] ;= "finite_size_correction = %d, xmin... MOV EDX,0x200 MOV ESI,0x1 MOV RDI=>.bss:temp.17,RBP ;=?? MOVSD XMM0,qword ptr [RAX + 0x10] MOV R9D,dword ptr [RAX + 0x4] MOVZX R8D,word ptr [RAX] MOV EAX,dword ptr [RAX + 0x8] PUSH RAX MOV EAX,0x1 CALL .plt:::__sprintf_chk ;undefined __sprintf_chk() MOV RDI=>.bss:temp.17,RBP ;=?? CALL .plt:::strlen ;size_t strlen(char * __s) LEA RDX,[.rodata:s_surrogateescape_0010c24e] ;= "surrogateescape" MOV RDI=>.bss:temp.17,RBP ;=?? MOV RSI,RAX CALL .plt:::PyUnicode_DecodeUTF8 ;undefined PyUnicode_DecodeUTF8() POP RDX POP RCX LAB_0010a47a: MOV RDX,qword ptr [RSP + local_10+0x18] SUB RDX,qword ptr FS:[0x28] JNZ LAB_0010a4bc ADD RSP,0x10 POP RBP RET LAB_0010a490: CMP EAX,-0x1 MOV EAX,0xfffffffb LEA RSI,[.rodata:s_in_method_'plfit_continuous_opti_0010e8a0] ;= "in method 'plfit_continuous_optio... CMOVZ EDI,EAX CALL SWIG_Python_ErrorType ;undefined SWIG_Python_ErrorType() MOV RDI,RAX CALL .plt:::PyErr_SetString ;undefined PyErr_SetString() XOR EAX,EAX JMP LAB_0010a47a ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0010a4b8: XOR EAX,EAX JMP LAB_0010a47a LAB_0010a4bc: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr CS:[RAX + RAX*0x1] Actual src: SWIGINTERN PyObject *_wrap_plfit_continuous_options_t___str__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; struct _plfit_continuous_options_t *arg1 = (struct _plfit_continuous_options_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; char *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p__plfit_continuous_options_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "plfit_continuous_options_t___str__" "', argument " "1"" of type '" "struct _plfit_continuous_options_t *""'"); } arg1 = (struct _plfit_continuous_options_t *)(argp1); result = (char *)_plfit_continuous_options_t___str__(arg1); resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } Predicted src: SWIGINTERN PyObject *_wrap_rig_str_str(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; struct rig_str *arg1 = (struct rig_str *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; char *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_rig_str, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "rig_str_str" "', argument " "1"" of type '" "struct rig_str *""'"); } arg1 = (struct rig_str *)(argp1); result = (char *) ((arg1)->str); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_char, 0 | 0 ); return resultobj; fail: return NULL; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined smime_free_privacydata() PUSH RBP MOV RBP,RDI MOV RDI,qword ptr [RDI + 0x18] CALL .plt:::gpgme_release ;undefined gpgme_release() MOV RDI,RBP POP RBP JMP .plt:::g_free ;undefined g_free() ?? 66h f Actual src: static void smime_free_privacydata(PrivacyData *_data) { PrivacyDataPGP *data = (PrivacyDataPGP *) _data; gpgme_release(data->ctx); g_free(data); } Predicted src: void g_data_release (GData *data) { g_free (data->data); g_free (data); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gp_arrow_button_constructed() PUSH RBP MOV RBP,RDI MOV RDI,qword ptr [.bss:gp_arrow_button_parent_class] ;=?? MOV ESI,0x50 CALL .plt:::g_type_check_class_cast ;undefined g_type_check_class_cast() MOV RDI,RBP CALL qword ptr [RAX + 0x48] CALL .plt:::gtk_widget_get_type ;undefined gtk_widget_get_type() MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV RDI,RAX CALL .plt:::gtk_widget_get_accessible ;undefined gtk_widget_get_accessible() LEA RSI,[.rodata:s_Hide_Panel_00138771] ;= "Hide Panel" XOR EDI,EDI MOV EDX,0x5 MOV RBP,RAX CALL .plt:::dcgettext ;undefined dcgettext() MOV RDI,RBP POP RBP MOV RSI,RAX JMP .plt:::atk_object_set_name ;undefined atk_object_set_name() ?? 66h f Actual src: static void gp_arrow_button_constructed (GObject *object) { GtkWidget *widget; AtkObject *atk; G_OBJECT_CLASS (gp_arrow_button_parent_class)->constructed (object); widget = GTK_WIDGET (object); atk = gtk_widget_get_accessible (widget); atk_object_set_name (atk, _("Hide Panel")); } Predicted src: static void on_button_button_button_dispose (GObject *object) { GtkWidget *widget; widget = GTK_WIDGET_CLASS (on_button_button_button_parent_class)->dispose (object); GTK_WIDGET_CLASS (on_button_button_button_parent_class)->dispose (object); }