============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined lxsession_lxde_session_server_CanShutdown() PUSH R14 MOV R14,RDX PUSH R13 MOV R13,RSI PUSH R12 MOV R12,RDI MOV EDI,0x40 PUSH RBP SUB RSP,0x8 CALL .plt:::g_slice_alloc ;undefined g_slice_alloc() PXOR XMM0,XMM0 XOR ESI,ESI MOV RDX,R13 MOV RDI,R12 MOVUPS xmmword ptr [RAX],XMM0 MOV RCX,R14 MOV RBP,RAX MOVUPS xmmword ptr [RAX + 0x10],XMM0 MOVUPS xmmword ptr [RAX + 0x20],XMM0 MOVUPS xmmword ptr [RAX + 0x30],XMM0 CALL .plt:::g_task_new ;undefined g_task_new() LEA RDX,[lxsession_lxde_session_server_CanShutdown_data_free] MOV RSI,RBP MOV RDI,RAX MOV qword ptr [RBP + 0x18],RAX CALL .plt:::g_task_set_task_data ;undefined g_task_set_task_data() TEST R12,R12 JZ LAB_0011ca0a MOV RDI,R12 CALL .plt:::g_object_ref ;undefined g_object_ref() MOV R12,RAX LAB_0011ca0a: MOV qword ptr [RBP + 0x20],R12 ADD RSP,0x8 MOV RDI,RBP POP RBP POP R12 POP R13 POP R14 JMP lxsession_lxde_session_server_CanShutdown_co.isra.0 ;undefined lxsession_lxde_session_ser... ?? 66h f Actual src: void lxsession_lxde_session_server_CanShutdown (LxsessionLxdeSessionServer* self, GAsyncReadyCallback _callback_, gpointer _user_data_) { lxsession_lxde_session_server_CanShutdownData* _data_; LxsessionLxdeSessionServer* _tmp0_; g_return_if_fail (self!= NULL); _data_ = g_slice_new0 (lxsession_lxde_session_server_CanShutdownData); _data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_); g_task_set_task_data (_data_->_async_result, _data_, lxsession_lxde_session_server_CanShutdown_data_free); _tmp0_ = _g_object_ref0 (self); _data_->self = _tmp0_; lxsession_lxde_session_server_CanShutdown_co (_data_); } Predicted src: static void server_session_session_new_server_data_session_new ( GAsyncResult *res, GAsyncReadyCallback callback, gpointer user_data) { GTask *task; task = g_task_new (res, cancellable, callback, user_data); if (task) { g_task_set_task_data (task, g_object_ref (task)); g_task_set_task_data (task, g_object_unref); } else { g_task_set_task_data (task, g_object_unref); g_task_unref (task); } } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gimp_draw_tool_add_sample_point() PUSH R14 PUSH R13 PUSH R12 PUSH RBP SUB RSP,0x8 TEST RDI,RDI JZ LAB_00252220 MOV RBP,RDI MOV R12D,ESI MOV R13D,EDX MOV R14D,ECX CALL gimp_draw_tool_get_type ;undefined gimp_draw_tool_get_type() MOV RSI,RAX MOV RAX,qword ptr [RBP] TEST RAX,RAX JZ LAB_002521c6 CMP qword ptr [RAX],RSI JZ LAB_002521d2 LAB_002521c6: MOV RDI,RBP CALL .plt:::g_type_check_instance_is_a ;undefined g_type_check_instance_is_a() TEST EAX,EAX JZ LAB_00252220 LAB_002521d2: MOV RDI,qword ptr [RBP + 0x178] CALL gimp_display_get_shell ;undefined gimp_display_get_shell() MOV ECX,R14D MOV EDX,R13D MOV ESI,R12D MOV R8D,0x1 MOV RDI,RAX CALL gimp_canvas_sample_point_new ;undefined gimp_canvas_sample_point_n... MOV RDI,RBP MOV R12,RAX MOV RSI,RAX CALL gimp_draw_tool_add_item ;undefined gimp_draw_tool_add_item() MOV RDI,R12 CALL .plt.got:::g_object_unref ;undefined g_object_unref() ADD RSP,0x8 MOV RAX,R12 POP RBP POP R12 POP R13 POP R14 RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00252220: LEA RDX,[.rodata:s_GIMP_IS_DRAW_TOOL_(draw_tool)_00674a44] ;= "GIMP_IS_DRAW_TOOL (draw_tool)" LEA RSI,[.rodata:__func__.10] ;= "gimp_draw_tool_add_sample_point" XOR R12D,R12D LEA RDI,[.rodata:s_Gimp-Tools_0064f9c7] ;= "Gimp-Tools" CALL .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() ADD RSP,0x8 MOV RAX,R12 POP RBP POP R12 POP R13 POP R14 RET ?? 0Fh Actual src: GimpCanvasItem * gimp_draw_tool_add_sample_point (GimpDrawTool *draw_tool, gint x, gint y, gint index) { GimpCanvasItem *item; g_return_val_if_fail (GIMP_IS_DRAW_TOOL (draw_tool), NULL); item = gimp_canvas_sample_point_new (gimp_display_get_shell (draw_tool->display), x, y, index, TRUE); gimp_draw_tool_add_item (draw_tool, item); g_object_unref (item); return item; } Predicted src: GimpTool * gimp_tool_tool_add_tool_item (GimpTool *tool, GimpTool *tool, GimpTool *tool) { GimpTool *tool; GimpTool *tool; g_return_val_if_fail (GIMP_IS_TOOL (tool), NULL); tool = gimp_tool_tool_tool_new (tool); gimp_tool_tool_add_tool (tool, gimp_tool_tool_tool_get_tool (tool)); return gimp_tool_tool_add_tool (tool->tool,tool,tool); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined linphone_contact_search_get_predicate() MOV RAX,qword ptr [RDI + 0x40] RET ?? 66h f Actual src: const char*linphone_contact_search_get_predicate(LinphoneContactSearch* obj) { return obj->predicate; } Predicted src: const char * linphone_core_search_get_search_name(LinphoneCore *search) { returnsearch->search_name; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined RTSgBufCopyFromBuf() CMP RDI,0xfff JBE LAB_00182458 MOV RAX,-0x100000000000000 PUSH RBP MOV R8,RDI MOV RBP,RSP PUSH R15 PUSH R14 PUSH R13 PUSH R12 PUSH RBX MOV RBX,RDI SUB RSP,0x8 AND R8,RAX JNZ LAB_00182460 MOV R15,RSI CMP RSI,0xfff JBE LAB_00182432 TEST RSI,RAX JNZ LAB_00182432 MOV R13,RDX MOV R14,RDX TEST RDX,RDX JNZ LAB_001823f8 JMP LAB_0018242f ?? 0Fh ?? 1Fh ?? 00h LAB_001823c0: ADD EDX,0x1 MOV dword ptr [RBX + 0xc],EDX CMP ECX,EDX JBE LAB_001823e0 SHL RDX,0x4 ADD RDX,qword ptr [RBX] MOV RAX,qword ptr [RDX] MOV qword ptr [RBX + 0x10],RAX MOV RAX,qword ptr [RDX + 0x8] MOV qword ptr [RBX + 0x18],RAX LAB_001823e0: TEST R12,R12 JZ LAB_00182450 MOV RSI,R15 MOV RDX,R12 ADD R15,R12 CALL .plt:::memcpy ;void * memcpy(void * __dest, void *... SUB R14,R12 JZ LAB_0018242f LAB_001823f8: MOV EDX,dword ptr [RBX + 0xc] MOV ECX,dword ptr [RBX + 0x8] MOV RAX,qword ptr [RBX + 0x18] CMP EDX,ECX JZ LAB_00182448 LAB_00182406: CMP R14,RAX MOV R12,RAX MOV RDI,qword ptr [RBX + 0x10] CMOVBE R12,R14 SUB RAX,R12 MOV qword ptr [RBX + 0x18],RAX JZ LAB_001823c0 ADD R12,RDI MOV RDX,R14 MOV RSI,R15 MOV qword ptr [RBX + 0x10],R12 CALL .plt:::memcpy ;void * memcpy(void * __dest, void *... LAB_0018242f: MOV R8,R13 LAB_00182432: ADD RSP,0x8 MOV RAX,R8 POP RBX POP R12 POP R13 POP R14 POP R15 POP RBP RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00182448: TEST RAX,RAX JNZ LAB_00182406 NOP dword ptr [RAX] LAB_00182450: SUB R13,R14 JMP LAB_0018242f ?? 0Fh ?? 1Fh ?? 00h LAB_00182458: XOR EAX,EAX RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00182460: XOR R8D,R8D JMP LAB_00182432 ?? 66h f Actual src: RTDECL(size_t) RTSgBufCopyFromBuf(PRTSGBUF pSgBuf, const void *pvBuf, size_t cbCopy) { AssertPtrReturn(pSgBuf, 0); AssertPtrReturn(pvBuf, 0); size_t cbLeft = cbCopy; while (cbLeft) { size_t cbThisCopy = cbLeft; void *pvDst = rtSgBufGet(pSgBuf, &cbThisCopy); if (!cbThisCopy) break; memcpy(pvDst, pvBuf, cbThisCopy); cbLeft -= cbThisCopy; pvBuf = (const void *)((uintptr_t)pvBuf + cbThisCopy); } return cbCopy - cbLeft; } Predicted src: size_t size_Copy(const uint8_t *buf, size_t len, size_t len) { size_t len; size_t len; len = len; len = len; while (len > 0) { len = len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; len -= len; le ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined enteringPodNotify() MOV byte ptr [RDI + 0x51],0x1 RET ?? 66h f Actual src: static void enteringPodNotify (perlSubparser *perl) { struct FParamsSubparser *fparams = (struct FParamsSubparser *)perl; fparams->inPod = true; } Predicted src: static void add(Widget w, XEvent *event, String *params, Cardinal *num_params) { (void) w; (void)params; (void)params; (void)params; (void)params; (void)params; (void)params; (void)params; (void)params; (void)params; (void)params; (void)params; (void)params; }