============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ProfilerGetCurrentState() MOV RSI,RDI MOV RDI,qword ptr [->CpuProfiler::instance_] ;= 00151640 JMP .plt:LAB_00117330 ?? 90h Actual src: void ProfilerGetCurrentState( ProfilerState* state) { CpuProfiler::instance_.GetCurrentState(state); } Predicted src: int State_instance(StateH handle) { return (int) ((State *)handle)->instance(); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* CBufferObject::GetFd() * ;************************************************************************************************************************************************************ ;undefined GetFd(CBufferObject * this) ;this CBufferObje... RDI MOV EAX,dword ptr [this + 0x8] RET ?? 66h f Actual src: int CBufferObject::GetFd() { return m_fd; } Predicted src: CBuffer CBuffer::GetBuffer() { return m_buffer; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gwy_nlfit_preset_get_formula() PUSH RBX TEST RDI,RDI JZ LAB_001293a8 MOV RBX,RDI CALL .plt:gwy_nlfit_preset_get_type ;undefined gwy_nlfit_preset_get_type() MOV RSI,RAX MOV RAX,qword ptr [RBX] TEST RAX,RAX JZ LAB_0012938e CMP qword ptr [RAX],RSI JZ LAB_0012939a LAB_0012938e: MOV RDI,RBX CALL .plt:::g_type_check_instance_is_a ;undefined g_type_check_instance_is_a() TEST EAX,EAX JZ LAB_001293a8 LAB_0012939a: MOV RAX,qword ptr [RBX + 0x50] POP RBX MOV RAX,qword ptr [RAX + 0x8] RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_001293a8: LEA RDX,[.rodata:s_GWY_IS_NLFIT_PRESET(preset)_0014036d] ;= "GWY_IS_NLFIT_PRESET(preset)" LEA RSI,[.rodata:__func__.7] ;= "gwy_nlfit_preset_get_formula" LEA RDI,[.rodata:s_Gwyddion_0013d038] ;= "Gwyddion" CALL .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() LEA RAX,[.rodata:s__0013e07a+11] ;= "" POP RBX RET ?? 0Fh Actual src: const gchar* gwy_nlfit_preset_get_formula(GwyNLFitPreset* preset) { g_return_val_if_fail(GWY_IS_NLFIT_PRESET(preset), ""); /* FIXME: builtin */ return preset->builtin->formula; } Predicted src: const gchar* gwy_data_get_n_n(GwyData *data) { g_return_val_if_fail(GWY_IS_DATA(data), NULL); return data->n_n; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* Draw_Interpretor::GetDoEcho() const * ;************************************************************************************************************************************************************ ;undefined GetDoEcho(Draw_Interpretor * this) ;this Draw_Interp... RDI MOVZX EAX,byte ptr [this + 0x11] RET ?? 90h Actual src: Standard_Boolean Draw_Interpretor::GetDoEcho () const { return myDoEcho; } Predicted src: Standard_Boolean TopOpeBRep_Draw_Draw::GetDraw() const { return myDraw; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined j__udyLAllocJLL2() PUSH RBP PUSH RBX MOV RBX,RSI SUB RSP,0x8 MOV RAX,qword ptr [->j__L_Leaf2PopToWords] ;= 001489c0 MOVZX EBP,byte ptr [RAX + RDI*0x1]=>.rodata:j__L_Leaf2PopToWords MOV RAX,qword ptr [->j__uLMaxWords] ;= 0014f008 MOV RAX=>.data:j__uLMaxWords,qword ptr [RAX] ;= FFFFFFFFFFFFFFFFh CMP qword ptr [RSI + 0x30],RAX JBE LAB_00116dc0 MOV dword ptr [RSI + 0x2c],0x149 LAB_00116dab: MOV byte ptr [RBX + 0x28],0x2 ADD RSP,0x8 XOR EAX,EAX POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00116dc0: MOV RDI,RBP CALL .plt:JudyMalloc ;undefined JudyMalloc() CMP RAX,0x8 JBE LAB_00116de0 ADD qword ptr [RBX + 0x30],RBP ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00116de0: MOV dword ptr [RBX + 0x2c],0x149 TEST RAX,RAX JZ LAB_00116dab MOV byte ptr [RBX + 0x28],0x8 ADD RSP,0x8 XOR EAX,EAX POP RBX POP RBP RET ?? 0Fh Actual src: Pjll_t j__udyAllocJLL2(Word_t Pop1, Pjpm_t Pjpm) { Word_t Words = JU_LEAF2POPTOWORDS(Pop1); Pjll_t PjllRaw; PjllRaw = (Pjll_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words); if ((Word_t) PjllRaw > sizeof(Word_t)) { Pjpm->jpm_TotalMemWords += Words; } else { J__UDYSETALLOCERROR(PjllRaw); } TRACE_ALLOC6("0x%x %8lu = j__udyAllocJLL2(%lu), Words = %lu\n", PjllRaw, j__udyMemSequence++, Pop1, Words, (Pjpm->jpm_Pop0) + 2); MALLOCBITS_SET(Pjll_t, PjllRaw); return(PjllRaw); } Predicted src: N_LIB_PRIVATE N_PRIVATE N_NIMCALL(tyObject_u16, uint16_t) { tyObject_u16_t *a = (tyObject_u16_t *)tyObject_malloc(sizeof(tyObject_u16_t)); if (a == NULL) return 0; a[0] = (tyObject_u16_t)0; a[1] = (tyObject_u16_t)0; a[2] = (tyObject_u16_t)0; a[3] = (tyObject_u16_t)0; a[4] = (tyObject_u16_t)0; a[5] = (tyObject_u16_t)0; a[6] = (tyObject_u16_t)0; a[7] = (tyObject_u16_t)0; a[7] = (tyObject_u16_t)0; a[7] = (tyObject_u16_t)0; a[7] = (tyObject_u16_t)0; return 0; }