============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined cpl_table_find_column_() PUSH R13 PUSH R12 PUSH RBP PUSH RBX SUB RSP,0x8 TEST RSI,RSI JZ LAB_001c03e0 MOV R12,RDI MOV R13,RSI TEST RDI,RDI JZ LAB_001c03a0 CMP qword ptr [RDI],0x0 MOV RBX,qword ptr [RDI + 0x10] JLE LAB_001c0360 XOR EBP,EBP JMP LAB_001c032e LAB_001c0320: ADD RBP,0x1 ADD RBX,0x8 CMP RBP,qword ptr [R12] JGE LAB_001c0360 LAB_001c032e: MOV RDI,qword ptr [RBX] CALL .plt:cpl_column_get_name ;undefined cpl_column_get_name() MOV RDI,R13 MOV RSI,RAX CALL .plt:::strcmp ;int strcmp(char * __s1, char * __s2) TEST EAX,EAX JNZ LAB_001c0320 MOV RAX,qword ptr [RBX] TEST RAX,RAX JZ LAB_001c0360 LAB_001c034d: ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001c0360: MOV R9,R13 MOV ECX,0x226 MOV ESI,0xa XOR EAX,EAX LEA R8,[.rodata:s_name='%s'_00238aa0+15] ;= "name='%s'" LEA RDX,[.rodata:s_cpl_table.c_00238a7f+1] ;= "cpl_table.c" LEA RDI,[.rodata:__func__.186] ;= "cpl_table_find_column_" CALL .plt:cpl_error_set_message_macro ;undefined cpl_error_set_message_macr... ADD RSP,0x8 XOR EAX,EAX POP RBX POP RBP POP R12 POP R13 RET ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001c03a0: MOV R9,RSI LEA R8,[.rodata:s_table_is_NULL,_name='%s'_00238aa0] ;= "table is NULL, name='%s'" XOR EAX,EAX MOV ECX,0x21f LEA RDX,[.rodata:s_cpl_table.c_00238a7f+1] ;= "cpl_table.c" MOV ESI,0xc LEA RDI,[.rodata:__func__.186] ;= "cpl_table_find_column_" CALL .plt:cpl_error_set_message_macro ;undefined cpl_error_set_message_macr... ADD RSP,0x8 XOR EAX,EAX POP RBX POP RBP POP R12 POP R13 RET ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001c03e0: LEA R8,[.rodata:s_name_is_NULL_00238a93] ;= "name is NULL" MOV ECX,0x21d XOR EAX,EAX MOV ESI,0xc LEA RDX,[.rodata:s_cpl_table.c_00238a7f+1] ;= "cpl_table.c" LEA RDI,[.rodata:__func__.186] ;= "cpl_table_find_column_" CALL .plt:cpl_error_set_message_macro ;undefined cpl_error_set_message_macr... XOR EAX,EAX JMP LAB_001c034d ?? 0Fh Actual src: static cpl_column *cpl_table_find_column_(cpl_table *table, const char *name) { cpl_column *column = NULL; if (name == NULL) { (void)cpl_error_set_message_(CPL_ERROR_NULL_INPUT, "name is NULL"); } else if (table == NULL) { (void)cpl_error_set_message_(CPL_ERROR_NULL_INPUT, "table is NULL, " "name='%s'", name); } else { column = cpl_table_find_column(table, name); if (!column) { (void)cpl_error_set_message_(CPL_ERROR_DATA_NOT_FOUND, "name='%s'", name); } } return column; } Predicted src: const char *table_table_table_table_table_table_table_table_table_table_table_table(table_table_table_table *table_table, const char *table_table_table) { table_table_table_table_table *table; table_table_table_table_table_table *table; table =table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table; table =table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table; table =table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table; table_table_table_table_table_table =table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table; table_table_table_table =table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_table_tabl ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined update_cb() PUSH RBP MOV RBP,RDI CALL .plt:sn_item_v0_get_type ;undefined sn_item_v0_get_type() MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV dword ptr [RAX + 0xcc],0x0 MOV RDI,RAX CALL update ;undefined update() XOR EAX,EAX POP RBP RET ?? 66h f Actual src: static gboolean update_cb (gpointer user_data) { SnItemV0 *v0; v0 = SN_ITEM_V0 (user_data); v0->update_id = 0; update (v0); return G_SOURCE_REMOVE; } Predicted src: static gboolean cb_cb (GtkWidget *widget, gpointer user_data) { G_OBJECT (user_data); return FALSE; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* op_0690_40_ff(unsigned int) * ;************************************************************************************************************************************************************ ;undefined op_0690_40_ff(uint param_1) ;param_1 uint EDI AND param_1,0x7 PUSH R12 MOV RAX,qword ptr [.bss:regs[72]] MOV R12D,dword ptr [.bss:regs[32] + param_1*0x4] PUSH RBP PUSH RBX MOV EBX,dword ptr [RAX + 0x2] MOV EBP,R12D MOV param_1,R12D SHR EBP,0x10 MOV RAX,qword ptr [.bss:mem_banks + RBP*0x8] BSWAP EBX MOV EDX,dword ptr [RAX + 0x6c] OR dword ptr [.bss:special_mem],EDX CALL qword ptr [RAX] XOR ECX,ECX MOV ESI,EAX MOV EDX,EAX MOV EAX,dword ptr [.bss:regflags] ADD ESI,EBX SETZ CL AND EAX,0xffffbffe MOV param_1,ESI SHL ECX,0xe XOR param_1,EBX OR EAX,ECX MOV ECX,ESI XOR ECX,EDX AND ECX,param_1 MOV param_1,R12D SHR ECX,0x1f OR EAX,ECX AND AH,0xfe ADD EDX,EBX SETC DL Actual src: uae_u32 REGPARAM2 CPUFUNC(op_4650_0)(uae_u32 opcode) { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca; srca = m68k_areg (regs, srcreg); { uae_s16 src = get_word (srca); { uae_u32 dst = ~src; CLEAR_CZNV (); SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); put_word (srca, dst); }}}} m68k_incpc (2); return 8 * CYCLE_UNIT / 2; } Predicted src: uae_u32 REGPARAM2 CPUFUNC(op_0)(uae_u32 opcode) { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca; srca = m68k_areg (regs, srcreg); m68k_areg (regs, srcreg) = (uae_s32)(uae_s16)get_iword_mmu040 (2); m68k_areg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((uae_s32)(src) & 0xffff); m68k_incpc (4); return 4 * CYCLE_UNIT / 2; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* strcasestr_len(char const*, int, char const*) * ;************************************************************************************************************************************************************ ;undefined strcasestr_len(char * param_1, int param_2, char * param_3) ;param_1 char * RDI ;param_2 int ESI ;param_3 char * RDX PUSH R15 PUSH R14 MOV R14,param_1 MOV param_1,param_3 PUSH R13 MOV R13,param_3 PUSH R12 PUSH RBP MOVSXD RBP,param_2 PUSH RBX SUB RSP,0x8 CALL .plt:::strlen ;size_t strlen(char * __s) CMP RBP,RAX JL LAB_00135e08 MOV R15,RAX SUB RBP,RAX JS LAB_00135e08 XOR EBX,EBX JMP LAB_00135dd9 LAB_00135dd0: ADD RBX,0x1 CMP RBP,RBX JL LAB_00135e08 LAB_00135dd9: LEA R12,[R14 + RBX*0x1] MOV param_3,R15 MOV param_1,R13 MOV param_2,R12 CALL .plt:::g_ascii_strncasecmp ;undefined g_ascii_strncasecmp() TEST EAX,EAX JNZ LAB_00135dd0 LAB_00135def: ADD RSP,0x8 MOV RAX,R12 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00135e08: XOR R12D,R12D JMP LAB_00135def ?? 0Fh Actual src: char *strcasestr_len(const char *haystack, int haystack_len, const char *needle) { gssize needle_len = (gssize)strlen(needle); int i; if (needle_len > haystack_len) return NULL; i = 0; while (i <= haystack_len - needle_len) { if (g_ascii_strncasecmp(needle, haystack + i, needle_len) == 0) return (char *)haystack + i; i++; } return NULL; } Predicted src: char * ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined soap_in_PointerTowsrm__CloseSequenceType() PUSH R14 MOV R14,RDI PUSH R13 MOV R13,RCX XOR ECX,ECX PUSH R12 MOV R12,RDX MOV EDX,0x1 PUSH RBP MOV RBP,RSI SUB RSP,0x8 CALL .plt:::soap_element_begin_in ;undefined soap_element_begin_in() TEST EAX,EAX JNZ LAB_00114403 TEST R12,R12 JZ LAB_00114440 LAB_00114374: CMP word ptr [R14 + 0x1f2f0],0x0 MOV qword ptr [R12],0x0 JNZ LAB_00114391 CMP byte ptr [R14 + 0x1de98],0x23 JNZ LAB_001143e0 LAB_00114391: SUB RSP,0x8 MOV RDX,R12 XOR R9D,R9D MOV R8D,0x10 PUSH 0x0 LEA RSI,[R14 + 0x1de98] MOV ECX,0x39 MOV RDI,R14 CALL .plt:::soap_id_lookup ;undefined soap_id_lookup() CMP word ptr [R14 + 0xc65e],0x0 MOV R12,RAX POP RAX POP RDX JNZ LAB_00114418 LAB_001143c7: ADD RSP,0x8 MOV RAX,R12 POP RBP POP R12 POP R13 POP R14 RET ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001143e0: MOV RDI,R14 CALL .plt:::soap_revert ;undefined soap_revert() MOV RDX,qword ptr [R12] MOV RCX,R13 MOV RSI,RBP MOV RDI,R14 CALL soap_in_wsrm__CloseSequenceType ;undefined soap_in_wsrm__CloseSequenc... MOV qword ptr [R12],RAX TEST RAX,RAX JNZ LAB_001143c7 LAB_00114403: ADD RSP,0x8 XOR R12D,R12D POP RBP MOV RAX,R12 POP R12 POP R13 POP R14 RET ?? 0Fh ?? 1Fh ?? 00h LAB_00114418: MOV RSI,RBP MOV RDI,R14 CALL .plt:::soap_element_end_in ;undefined soap_element_end_in() TEST EAX,EAX JNZ LAB_00114403 ADD RSP,0x8 MOV RAX,R12 POP RBP POP R12 POP R13 POP R14 RET ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00114440: MOV ESI,0x8 MOV RDI,R14 CALL .plt:::soap_malloc ;undefined soap_malloc() MOV R12,RAX TEST RAX,RAX JNZ LAB_00114374 JMP LAB_00114403 ?? 0Fh Actual src: struct wsrm__CloseSequenceType ** SOAP_FMAC4 soap_in_PointerTowsrm__CloseSequenceType(struct soap *soap, const char *tag, struct wsrm__CloseSequenceType **a, const char *type) { (void)type; /* appease -Wall -Werror */ if (soap_element_begin_in(soap, tag, 1, NULL)) return NULL; if (!a) if (!(a = (struct wsrm__CloseSequenceType **)soap_malloc(soap, sizeof(struct wsrm__CloseSequenceType *)))) return NULL; *a = NULL; if (!soap->null && *soap->href!= '#') { soap_revert(soap); if (!(*a = soap_in_wsrm__CloseSequenceType(soap, tag, *a, type))) return NULL; } else { a = (struct wsrm__CloseSequenceType **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_wsrm__CloseSequenceType, sizeof(struct wsrm__CloseSequenceType), 0, NULL); if (soap->body && soap_element_end_in(soap, tag)) return NULL; } return a; } Predicted src: int SOAP_FMAC4 soap_FMAC4 soap_FMAC4 soap_srm4 soap_srm4 soap_srm2__srm4 soap *soap, const char *tag, const char *tag, const char *type) { if (soap_srm4 soap_srm4 soap_srm4 soap_type(soap, tag? tag : NULL, type)) return soap->error; return soap_error; }