============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* Load::getUnit() const * ;************************************************************************************************************************************************************ ;undefined getUnit(void) ;local_20 undefined8 -20 ;local_28 undefined8 -28 PUSH R13 PUSH R12 MOV R12,RDI ADD RDI,0x18 PUSH RBP SUB RSP,0x10 MOV R13,qword ptr [RSI + 0x88] MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x28],RAX MOV RAX,qword ptr [->Unit::vtable] ;= 00288da8 ADD RAX,0x10 MOV qword ptr [RDI + -0x18],RAX=>.data.rel.ro:PTR_~Unit_00288db8 ;= 00203f20 MOV qword ptr [R12 + 0x8],RDI MOV RBP,qword ptr [RSI + 0x80] MOV RAX,RBP ADD RAX,R13 JZ LAB_00207791 TEST RBP,RBP JZ LAB_00207816 LAB_00207791: MOV qword ptr [RSP]=>local_28,R13 CMP R13,0xf JA LAB_002077e0 CMP R13,0x1 JNZ LAB_002077d8 MOVZX EAX,byte ptr [RBP] MOV byte ptr [R12 + 0x18],AL LAB_002077aa: MOV qword ptr [R12 + 0x10],R13 MOV byte ptr [RDI + R13*0x1],0x0 MOV RAX,qword ptr [RSP + local_20+0x28] SUB RAX,qword ptr FS:[0x28] JNZ LAB_00207822 ADD RSP,0x10 MOV RAX,R12 POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_002077d8: TEST R13,R13 JZ LAB_002077aa JMP LAB_00207800 ?? 90h LAB_002077e0: LEA RDI,[R12 + 0x8] MOV RSI,RSP XOR EDX,EDX CALL .plt:::std::__cxx11::basic_string,std::allocator>::_M...;undefined _M_create(ulong * param_1,... MOV qword ptr [R12 + 0x8],RAX MOV RDI,RAX MOV RAX,qword ptr [RSP]=>local_28 MOV qword ptr [R12 + 0x18],RAX LAB_00207800: MOV RDX,R13 MOV RSI,RBP CALL .plt:::memcpy ;void * memcpy(void * __dest, void *... MOV R13,qword ptr [RSP]=>local_28 MOV RDI,qword ptr [R12 + 0x8] JMP LAB_002077aa LAB_00207816: LEA RDI,[.rodata:s_basic_string::_M_construct_null_n_0021e1b8] ;= "basic_string::_M_construct null n... CALL .plt:::std::__throw_logic_error ;undefined __throw_logic_error(char *... LAB_00207822: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP Actual src: Unit Load::getUnit() const { return unit; } Predicted src: std::string C ) const { return m_str; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined nm_setting_match_get_path() PUSH RBP MOV EBP,ESI PUSH RBX MOV RBX,RDI SUB RSP,0x8 CALL .plt:nm_setting_match_get_type ;undefined nm_setting_match_get_type() TEST RBX,RBX JZ LAB_001ae810 MOV RSI,RAX MOV RAX,qword ptr [RBX] TEST RAX,RAX JZ LAB_001ae7d5 CMP qword ptr [RAX],RSI JZ LAB_001ae7e1 LAB_001ae7d5: MOV RDI,RBX CALL .plt:::g_type_check_instance_is_a ;undefined g_type_check_instance_is_a() TEST EAX,EAX JZ LAB_001ae810 LAB_001ae7e1: MOV RAX,qword ptr [RBX + 0x30] TEST RAX,RAX JZ LAB_001ae800 CMP dword ptr [RAX + 0x8],EBP JBE LAB_001ae800 MOV RAX,qword ptr [RAX] MOV RAX,qword ptr [RAX + RBP*0x8] LAB_001ae7f6: ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 00h LAB_001ae800: MOV EDI,0x1f7 CALL _nm_g_return_if_fail_warning.constprop.0 ;undefined _nm_g_return_if_fail_warni... XOR EAX,EAX JMP LAB_001ae7f6 ?? 66h f ?? 90h LAB_001ae810: MOV EDI,0x1f5 CALL _nm_g_return_if_fail_warning.constprop.0 ;undefined _nm_g_return_if_fail_warni... ADD RSP,0x8 XOR EAX,EAX POP RBX POP RBP RET ?? 66h f Actual src: const char * nm_setting_match_get_path(NMSettingMatch *setting, guint idx) { g_return_val_if_fail(NM_IS_SETTING_MATCH(setting), NULL); g_return_val_if_fail(setting->path && idx < setting->path->len, NULL); return nm_strvarray_get_idx(setting->path, idx); } Predicted src: const gchar * _path_get_path_path (const gchar *path) { g_return_val_if_fail (path!= NULL, NULL); g_return_val_if_fail (path!= NULL, NULL); g_return_val_if_fail (path!= NULL, NULL); g_return_val_if_fail (path->priv->path!= NULL, NULL); return _path->priv->path; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined snesgetksp_() PUSH RBX MOV RDI,qword ptr [RDI] MOV RBX,RDX CALL .plt:SNESGetKSP ;undefined SNESGetKSP() MOV dword ptr [RBX],EAX POP RBX RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined snessetdm_() PUSH RBX Actual src: PETSC_EXTERN void snesgetksp_(SNES snes,KSP *ksp, int *__ierr) { *__ierr = SNESGetKSP( (SNES)PetscToPointer((snes) ),ksp); } Predicted src: static void C_ccall f_8(C_word c,C_word *av){ C_word tmp; C_word t0=av[0]; C_word t1=av[1]; C_word t2=av[1]; C_word t2=av; C_word *a; if(C_unlikely(!C_demand(C_calculate_demand(0,c,c,2)))){ C_save_and_reclaim((void *)f_8,c,c,c,c,av);} ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined mX11ClipboardDestroy() TEST RDI,RDI JZ LAB_00143770 PUSH RBP MOV RBP,RDI MOV RDI,qword ptr [RDI + 0x8] CALL mFree ;undefined mFree() MOV qword ptr [RBP + 0x8],0x0 MOV RDI,qword ptr [RBP + 0x18] CALL mFree ;undefined mFree() MOV qword ptr [RBP + 0x18],0x0 MOV RDI,RBP MOV dword ptr [RBP],0x0 POP RBP JMP mFree ;undefined mFree() ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00143770: RET ?? 66h f Actual src: void mX11ClipboardDestroy(mX11Clipboard *p) { if(p) { mX11ClipboardFreeDat(p); mFree(p); } } Predicted src: void XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* wrapNewlineChunksize(libscols_column const*, char const*, void*) * ;************************************************************************************************************************************************************ ;undefined wrapNewlineChunksize(libscols_column * param_1, char * param_2, void * param_3) ;param_1 libscols_co... RDI ;param_2 char * RSI ;param_3 void * RDX JMP .plt:::scols_wrapnl_chunksize ?? 66h f Actual src: size_t wrapNewlineChunksize(const struct libscols_column *column, const char *data, void *userdata) { return scols_wrapnl_chunksize(column, data, userdata); } Predicted src: void * size_size(size_t size, size_t size, size_t size) { size_t size = size; size_t size = size; size_t size = size; size += size; size += size; size += size; size += size; size += size; size += size; }