============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined asn1_skip_tlv() ;local_30 undefined8 -30 ;local_34 undefined4 -34 PUSH R14 PUSH R13 PUSH R12 XOR R12D,R12D PUSH RBP MOV RBP,RSI PUSH RBX MOV RBX,RDI SUB RSP,0x10 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_30+0x38],RAX XOR EAX,EAX MOV RDX,RSP CALL asn1_decode_tag ;undefined asn1_decode_tag() CMP EAX,0x1 JZ LAB_0010bff8 LAB_0010bfd2: MOV RAX,qword ptr [RSP + local_30+0x38] SUB RAX,qword ptr FS:[0x28] JNZ LAB_0010c035 ADD RSP,0x10 MOV EAX,R12D POP RBX POP RBP POP R12 POP R13 POP R14 RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0010bff8: LEA RDX=>local_34,[RSP + 0x4] MOV RSI,RBP MOV RDI,RBX CALL asn1_decode_length ;undefined asn1_decode_length() MOV R12D,EAX CMP EAX,0x1 JZ LAB_0010c018 LAB_0010c010: XOR R12D,R12D JMP LAB_0010bfd2 ?? 0Fh ?? 1Fh ?? 00h LAB_0010c018: MOV R13D,dword ptr [RSP + local_34+0x38] MOV R14D,dword ptr [RBX] MOV RDI,RBP ADD R14D,R13D CALL bytestring_get_size ;undefined bytestring_get_size() CMP R14D,EAX JA LAB_0010c010 ADD dword ptr [RBX],R13D JMP LAB_0010bfd2 LAB_0010c035: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP word ptr [RAX + RAX*0x1] Actual src: int asn1_skip_tlv(unsigned *pos, const bytestring_t *tlvlist) { unsigned tag; if (asn1_decode_tag(pos,tlvlist,&tag)!=BYTESTRING_OK) return BYTESTRING_ERROR; return asn1_skip_value(pos,tlvlist); } Predicted src: int string_length_length(const char *str, size_t len) { size_t len; size_t len; size_t len; size_t len; len = strlen(str); len = strlen(len); len = strlen(len); len = strlen(len); if (len < len) { len = len; len = len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len; len -= len; len -= len; len -= len; len -= len; len -= len; lenlenlen; len -= len; lenlenlenlenlen; lenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenle ============================== Sample 2 ============================== 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_wrap_value_t_size_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; struct svn_value *arg1 = (struct svn_value *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int res1 = 0 ; PyObject *swig_obj[2] ; int result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_value, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "struct svn_value_t_size_t" "', argument " " "1"" of type '" "struct svn_value *""'"); } arg1 = (struct svn_value *)(argp1); result = (int) ((arg1)->size); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_value, 0 | 0 ); return resultobj; fail: return NULL; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gf_dm_sess_get_stats(undefined param_1, undefined param_2, undefined param_3, undefined param_4, undefined param_5, undefined param_6, undefined8 param_7) ;param_1 undefined DIL ;param_2 undefined SIL ;param_3 undefined DL ;param_4 undefined CL ;param_5 undefined R8B ;param_6 undefined R9B ;param_7 undefined8 8 MOV RAX,param_1 MOV param_1,qword ptr [RSP + param_7] TEST RAX,RAX JZ LAB_001c3669 TEST param_2,param_2 JZ LAB_001c35f9 MOV R10,qword ptr [RAX + 0x38] MOV qword ptr [param_2],R10 LAB_001c35f9: TEST param_3,param_3 JZ LAB_001c3605 MOV param_2,qword ptr [RAX + 0x58] MOV qword ptr [param_3],param_2 LAB_001c3605: TEST param_4,param_4 JZ LAB_001c3622 MOV param_3,dword ptr [RAX + 0x109c] MOV param_2,0x0 CMP param_3,0x40000000 CMOVZ param_3,param_2 MOV qword ptr [param_4],param_3 LAB_001c3622: TEST param_5,param_5 JZ LAB_001c3630 MOV param_4,dword ptr [RAX + 0x10a0] MOV qword ptr [param_5],param_4 LAB_001c3630: TEST param_6,param_6 JZ LAB_001c363e MOV param_3,dword ptr [RAX + 0x10d8] MOV dword ptr [param_6],param_3 LAB_001c363e: TEST param_1,param_1 JZ LAB_001c364b MOV param_3,dword ptr [RAX + 0x1094] MOV dword ptr [param_1],param_3 LAB_001c364b: MOV param_3,dword ptr [RAX + 0x1094] MOV EAX,0x1 CMP param_3,0xa JZ LAB_001c366e XOR EAX,EAX CMP param_3,0xb MOV param_3,0xfffffff3 CMOVZ EAX,param_3 RET LAB_001c3669: MOV EAX,0xffffffff LAB_001c366e: RET ?? 90h Actual src: GF_EXPORT GF_Err gf_dm_sess_get_stats(GF_DownloadSession * sess, const char **server, const char **path, u64 *total_size, u64 *bytes_done, u32 *bytes_per_sec, GF_NetIOStatus *net_status) { if (!sess) return GF_BAD_PARAM; if (server) *server = sess->server_name; if (path) *path = sess->remote_path; if (total_size) { if (sess->total_size==SIZE_IN_STREAM) *total_size = 0; else *total_size = sess->total_size; } if (bytes_done) *bytes_done = sess->bytes_done; if (bytes_per_sec) *bytes_per_sec = sess->bytes_per_sec; if (net_status) *net_status = sess->status; if (sess->status == GF_NETIO_DISCONNECTED) return GF_EOS; else if (sess->status == GF_NETIO_STATE_ERROR) return GF_SERVICE_ERROR; return GF_OK; } Predicted src: gboolean gimp_stats_stats_get_stats_stats_get_stats (Gstats *stats) { if (!stats) return FALSE; if (!stats->stats) return FALSE; if (!stats->stats) return FALSE; if (!stats->stats) return FALSE; if (!stats->stats) return FALSE; if (!stats->stats) return FALSE; if (!stats->stats) return FALSE; if (!stats->stats) return FALSE; if (!stats->stats) return FALSE; if (!stats->stats->stats) return FALSE; return FALSE; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _vala_docky_clippy_preferences_set_property() PUSH R14 MOV R14,RDX PUSH R13 PUSH R12 MOV R12,RCX PUSH RBP MOV RBP,RDI PUSH RBX MOV EBX,ESI CALL .plt:docky_clippy_preferences_get_type ;undefined docky_clippy_preferences_g... MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV R13,RAX CMP EBX,0x1 JZ LAB_00103990 CMP EBX,0x2 JZ LAB_001039b0 MOV RAX,qword ptr [RBP] MOV RDI,qword ptr [RAX] CALL .plt:::g_type_name ;undefined g_type_name() MOV RBP,RAX MOV RAX,qword ptr [R12] MOV RDI,qword ptr [RAX] CALL .plt:::g_type_name ;undefined g_type_name() PUSH RBP LEA R9,[.rodata:s_property_00104438] ;= "property" XOR EDI,EDI PUSH RAX MOV R8D,0x115 XOR EAX,EAX LEA RCX,[.rodata:s_ClippyPreferences.c_00104441] ;= "ClippyPreferences.c" PUSH qword ptr [R12 + 0x8] LEA RDX,[.rodata:s_%s:%d:_invalid_%s_id_%u_for_"%s"_001043a8] ;= "%s:%d: invalid %s id %u for \"%s\... MOV ESI,0x10 PUSH RBX CALL .plt:::g_log ;undefined g_log() ADD RSP,0x20 POP RBX POP RBP POP R12 POP R13 POP R14 RET ?? 0Fh ?? 1Fh ?? 00h LAB_00103990: MOV RDI,R14 CALL .plt:::g_value_get_uint ;undefined g_value_get_uint() POP RBX MOV RDI,R13 POP RBP MOV ESI,EAX POP R12 POP R13 POP R14 JMP .plt:docky_clippy_preferences_set_MaxEntries ;undefined docky_clippy_preferences_s... ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001039b0: MOV RDI,R14 CALL .plt:::g_value_get_boolean ;undefined g_value_get_boolean() POP RBX MOV RDI,R13 POP RBP MOV ESI,EAX POP R12 POP R13 POP R14 JMP .plt:LAB_00102160 ?? 66h f Actual src: static void _vala_docky_clippy_preferences_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { DockyClippyPreferences * self; self = G_TYPE_CHECK_INSTANCE_CAST (object, DOCKY_TYPE_CLIPPY_PREFERENCES, DockyClippyPreferences); switch (property_id) { case DOCKY_CLIPPY_PREFERENCES_MAX_ENTRIES_PROPERTY: docky_clippy_preferences_set_MaxEntries (self, g_value_get_uint (value)); break; case DOCKY_CLIPPY_PREFERENCES_TRACK_MOUSE_SELECTIONS_PROPERTY: docky_clippy_preferences_set_TrackMouseSelections (self, g_value_get_boolean (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } Predicted src: static void _vala_value_set_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { self->priv = G_TYPE_CHECK_INSTANCE_CAST (object, property_get_value (self)); switch (property_id) { case PROP_PROPERTY: g_value_set_object (value, g_value_get_object (value)); break; case PROP_PROPERTY: g_value_set_object (value, g_value_get_object (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined finish() SUB RSP,0x8 CALL cleanup ;void cleanup(EVP_PKEY_CTX * ctx) MOV EDI,0x1 CALL .plt:::exit ;void exit(int __status) NOP dword ptr CS:[RAX + RAX*0x1] Actual src: static void finish(int sig GCC_UNUSED) { cleanup(); ExitProgram(EXIT_FAILURE); } Predicted src: static void exit(int sig) { exit(1); }