============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined xxmc_unlock_surfaces() PUSH RBP LEA RBP,[RDI + 0x1470] PUSH RBX MOV RBX,RDI MOV RDI,RBP SUB RSP,0x8 CALL .plt:::pthread_mutex_lock ;int pthread_mutex_lock(pthread_mutex... MOV EAX,dword ptr [RBX + 0x14c8] TEST EAX,EAX JLE LAB_0010628d SUB EAX,0x1 MOV dword ptr [RBX + 0x14c8],EAX JZ LAB_001062a0 LAB_0010628d: ADD RSP,0x8 MOV RDI,RBP POP RBX POP RBP JMP .plt:::pthread_mutex_unlock ;int pthread_mutex_unlock(pthread_mut... ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001062a0: LEA RDI,[RBX + 0x1498] CALL .plt:::pthread_cond_broadcast ;int pthread_cond_broadcast(pthread_c... ADD RSP,0x8 MOV RDI,RBP POP RBX POP RBP JMP .plt:::pthread_mutex_unlock ;int pthread_mutex_unlock(pthread_mut... ?? 66h f Actual src: static void xxmc_unlock_surfaces(vo_driver_t *this_gen) { xxmc_driver_t *driver = (xxmc_driver_t *) this_gen; xvmc_context_reader_unlock( &driver->xvmc_lock ); } Predicted src: static void _init (const char *data) { if (data->data) { return; } return; return; } ============================== Sample 2 ============================== 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: void C::set() { if (m_ptr == 0) { return; } } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined tokz_unget_token() PUSH RBP MOV RBP,RDI LEA RDI,[RDI + 0x18] PUSH RBX MOV RBX,RSI PUSH RAX CALL tok_free ;undefined tok_free() MOVUPS XMM0,xmmword ptr [RBX] MOVUPS xmmword ptr [RBP + 0x18],XMM0 MOV dword ptr [RBX],0x0 POP RDX POP RBX POP RBP RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined tokz_close() PUSH RBP Actual src: void tokz_unget_token(Tokenizer *tokz, Token *tok) { tok_free(&(tokz->ungettok)); tokz->ungettok=*tok; tok->type=TOK_INVALID; } Predicted src: void _free(void) { if (!p) return; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined view_finalize() PUSH RBP MOV RBP,RDI CALL .plt:gal_view_get_type ;undefined gal_view_get_type() MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_instance_get_private ;undefined g_type_instance_get_private() MOV RDI,qword ptr [RAX] CALL .plt.got:::g_free ;undefined g_free() MOV RDI,qword ptr [.bss:gal_view_parent_class] ;=?? MOV ESI,0x50 CALL .plt:::g_type_check_class_cast ;undefined g_type_check_class_cast() MOV RDI,RBP POP RBP MOV RAX,qword ptr [RAX + 0x30] JMP RAX ?? 66h f Actual src: static void view_finalize (GObject *object) { GalViewPrivate *priv; priv = GAL_VIEW_GET_PRIVATE (object); g_free (priv->title); /* Chain up to parent's finalize() method. */ G_OBJECT_CLASS (gal_view_parent_class)->finalize (object); } Predicted src: static void g_finalize (GObject *object) { g_return_fail (self->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv); g_free (self->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv); } ============================== Sample 5 ============================== 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: static void _init (void) { if (self->data) { } } return; }