============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* s_CouldNotLoadFileMessage(XAP_Frame*, char const*, int) * ;************************************************************************************************************************************************************ ;undefined s_CouldNotLoadFileMessage(XAP_Frame * param_1, char * param_2, int param_3) ;param_1 XAP_Frame * RDI ;param_2 char * RSI ;param_3 int EDX ADD param_3,0x137 MOV R8,param_2 MOV param_2,0x3f5 CMP param_3,0xa JA LAB_0010ee9d LEA RAX,[.rodata:CSWTCH.122] MOV param_2,dword ptr [RAX + param_3*0x4]=>.rodata:CSWTCH.122 LAB_0010ee9d: XOR ECX,ECX XOR param_3,param_3 JMP .plt:LAB_0010b670 ?? 66h f Actual src: XAP_Dialog_MessageBox::tAnswer s_CouldNotLoadFileMessage(XAP_Frame * pFrame, const char * pNewFile, UT_Error errorCode) { XAP_String_Id String_id; switch (errorCode) { case -301: String_id = AP_STRING_ID_MSG_IE_FileNotFound; break; case -302: String_id = AP_STRING_ID_MSG_IE_NoMemory; break; case -303: String_id = AP_STRING_ID_MSG_IE_UnsupportedType; //AP_STRING_ID_MSG_IE_UnknownType; break; case -304: String_id = AP_STRING_ID_MSG_IE_BogusDocument; break; case -305: String_id = AP_STRING_ID_MSG_IE_CouldNotOpen; break; case -306: String_id = AP_STRING_ID_MSG_IE_CouldNotWrite; break; case -307: String_id = AP_STRING_ID_MSG_IE_FakeType; break; case -311: String_id = AP_STRING_ID_MSG_IE_UnsupportedType; break; default: String_id = AP_STRING_ID_MSG_ImportError; } return pFrame->showMessageBox(String_id, XAP_Dialog_MessageBox::b_O, XAP_Dialog_MessageBox::a_OK, pNewFile); } Predicted src: void X11_FrameFrame_FrameFrame(X11FrameFrame *frame, X11FrameFrame *frame, X11FrameFrame *frame) { int i; for (i = 0; i < X11_FrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFrameFram ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ffmax() MOV EDX,0x6 JMP ave ;undefined ave() ?? 66h f Actual src: gaint ffmax (struct gafunc *pfc, struct gastat *pst) { gaint rc; rc = ave (pfc, pst, 6); return (rc); } Predicted src: static void maxmax(t_max *x, t_symbol *s, int argc, t_atom *argv) { maxmax(x, argc, argv); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined pomodoro_stats_week_page_real_get_reference_value_data_free() PUSH RBP MOV RBP,RDI MOV RDI,qword ptr [RDI + 0x20] TEST RDI,RDI JZ LAB_00133eba CALL .plt.got:::g_object_unref ;undefined g_object_unref() MOV qword ptr [RBP + 0x20],0x0 LAB_00133eba: MOV RSI,RBP MOV EDI,0x30 POP RBP JMP .plt:::g_slice_free1 ;undefined g_slice_free1() ?? 0Fh Actual src: static void pomodoro_stats_week_page_real_get_reference_value_data_free (gpointer _data) { PomodoroStatsWeekPageGetReferenceValueData* _data_; _data_ = _data; _g_object_unref0 (_data_->self); g_slice_free (PomodoroStatsWeekPageGetReferenceValueData, _data_); } Predicted src: static void geary_page_page_real_data_free_value (gpointer _data) { GearyPageData* _data_; _data_ = _data; _g_object_unref0 (_data_->self); g_slice_free (GearyPageData, _data_); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined step_describe_props() MOV EAX,dword ptr [.data:step_props[56]] PUSH R12 LEA R12,[.data:step_props] TEST EAX,EAX JZ LAB_00106720 MOV RAX=>.data:step_props,R12 POP R12 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00106720: MOV RDI=>.data:step_props,R12 CALL .plt:::prop_desc_list_calculate_quarks ;undefined prop_desc_list_calculate_q... MOV RAX=>.data:step_props,R12 POP R12 RET ?? 66h f Actual src: static PropDescription * step_describe_props(Step *step) { if (step_props[0].quark == 0) { prop_desc_list_calculate_quarks(step_props); } return step_props; } Predicted src: const char * view_engine_list(void) { static const char *name = "view_engine_list"; if (!name) return name; return view_engine_list; } ============================== 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: void mFree(m *m) { mFree(m->m); m->m = NULL; mFree(m); }