============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined lw_srvchan_close() PUSH RBP MOV RBP,RDI CALL lw_sock_close ;undefined lw_sock_close() MOV RDI,qword ptr [RBP + 0x30] TEST RDI,RDI JZ LAB_00107c0f CALL .plt:::free ;void free(void * __ptr) MOV qword ptr [RBP + 0x30],0x0 LAB_00107c0f: MOV RDI,RBP POP RBP JMP reset ;undefined reset() ?? 0Fh Actual src: void lw_srvchan_close (LW_SRVCHAN * chan) { lw_sock_close (&(chan->sock)); if (chan->map!= NULL) { free (chan->map); chan->map = NULL; } reset (chan); } Predicted src: static void close_close(void *data) { if (data->data) { free(data->data); free(data->data); free(data->data); } free(data); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined BKE_camera_multiview_model_matrix() PUSH RBP MOV RBP,RCX CALL BKE_camera_multiview_model_matrix_scaled ;undefined BKE_camera_multiview_model... MOV RDI,RBP POP RBP JMP normalize_m4 ;undefined normalize_m4() ?? 66h f Actual src: void BKE_camera_multiview_model_matrix(const RenderData *rd, const Object *camera, const char *viewname, float r_modelmat[4][4]) { BKE_camera_multiview_model_matrix_scaled(rd, camera, viewname, r_modelmat); normalize_m4(r_modelmat); } Predicted src: static void on_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view_view(viewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewviewvie ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined PAINT_OT_vertex_paint() LEA RAX,[.rodata:s_Vertex_Paint_03a79e7d] ;= "Vertex Paint" MOV qword ptr [RDI],RAX=>.rodata:s_Vertex_Paint_03a79e7d ;= "Vertex Paint" LEA RAX,[.rodata:s_PAINT_OT_vertex_paint_03adedf7] ;= "PAINT_OT_vertex_paint" MOV qword ptr [RDI + 0x8],RAX=>.rodata:s_PAINT_OT_vertex_paint_03adedf7 ;= "PAINT_OT_vertex_paint" LEA RAX,[.rodata:s_Paint_a_stroke_in_the_active_ver_03bb3768] ;= "Paint a stroke in the active vert... MOV qword ptr [RDI + 0x18],RAX=>.rodata:s_Paint_a_stroke_in_the_active_ver_03bb3768 ;= "Paint a stroke in the active vert... LEA RAX,[vpaint_invoke] MOV qword ptr [RDI + 0x38],RAX=>vpaint_invoke LEA RAX,[paint_stroke_modal] MOV qword ptr [RDI + 0x48],RAX=>paint_stroke_modal LEA RAX,[vpaint_exec] MOV qword ptr [RDI + 0x28],RAX=>vpaint_exec LEA RAX,[vertex_paint_poll] MOV qword ptr [RDI + 0x50],RAX=>vertex_paint_poll LEA RAX,[vpaint_cancel] MOV qword ptr [RDI + 0x40],RAX=>vpaint_cancel MOV EAX,0x6 MOV word ptr [RDI + 0xd0],AX JMP paint_stroke_operator_properties ;undefined paint_stroke_operator_prop... ?? 0Fh ;? -> 00841f0f Actual src: void PAINT_OT_vertex_paint(wmOperatorType *ot) { /* identifiers */ ot->name = "Vertex Paint"; ot->idname = "PAINT_OT_vertex_paint"; ot->description = "Paint a stroke in the active vertex color layer"; /* api callbacks */ ot->invoke = vpaint_invoke; ot->modal = paint_stroke_modal; ot->exec = vpaint_exec; ot->poll = vertex_paint_poll; ot->cancel = vpaint_cancel; /* flags */ ot->flag = OPTYPE_UNDO | OPTYPE_BLOCKING; paint_stroke_operator_properties(ot); } Predicted src: void PyVTKAddFile_vtk_vtk_vtk( PyObject *dict) { PyObject *o; o = Pyvtk_ClassNew(); if (o && PyDict_SetItemString(o, "vtk_SetItemString", o)!= 0) { Py_DECREF(o); } } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* Gui::Dragable::isValidDragPosition(QPoint const&) const * ;************************************************************************************************************************************************************ ;undefined isValidDragPosition(QPoint * param_1) ;param_1 QPoint * RDI MOV EAX,0x1 RET ?? 66h f Actual src: bool Dragable::isValidDragPosition(const QPoint& p) const { Q_UNUSED(p) return true; } Predicted src: bool cbs_c0(const QString &str) const { return true; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _deliver_in_sess() PUSH RBP MOV RBP,RDX PUSH RBX MOV RBX,RSI SUB RSP,0x8 MOV R8,qword ptr [RDX + 0x30] MOV RDI,qword ptr [RSI + 0x10] TEST R8,R8 JZ LAB_001011ea MOV RSI,RDI MOV RDI,R8 CALL .plt:jid_compare_user ;undefined jid_compare_user() TEST EAX,EAX JZ LAB_00101238 LAB_001011d8: MOV RDI,qword ptr [RBP + 0x30] TEST RDI,RDI JZ LAB_001011e6 CALL .plt:jid_free ;undefined jid_free() LAB_001011e6: MOV RDI,qword ptr [RBX + 0x10] LAB_001011ea: CALL .plt:jid_dup ;undefined jid_dup() MOV qword ptr [RBP + 0x30],RAX MOV RDI,RAX CALL .plt:jid_full ;undefined jid_full() MOV RDI,qword ptr [RBP + 0x40] XOR R9D,R9D LEA RCX,[.rodata:DAT_00102000] ;= 66h f MOV R8,RAX MOV EDX,0xffffffff MOV ESI,0x1 CALL .plt:nad_set_attr ;undefined nad_set_attr() LAB_0010121b: CMP qword ptr [RBP + 0x28],0x0 JZ LAB_00101258 LAB_00101222: MOV RDI,RBP CALL .plt:pkt_router ;undefined pkt_router() XOR EAX,EAX LAB_0010122c: ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00101238: TEST byte ptr [RBP + 0x24],0x60 JNZ LAB_0010121b MOV RSI,qword ptr [RBX + 0x10] MOV RDI,qword ptr [RBP + 0x30] CALL .plt:jid_compare_full ;undefined jid_compare_full() TEST EAX,EAX JNZ LAB_001011d8 JMP LAB_0010121b ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00101258: MOV EDX,dword ptr [RBP + 0x24] CMP EDX,0x82 JZ LAB_001012b0 AND EDX,0x80 MOV EAX,0xffffff9a JNZ LAB_0010122c MOV RDI,qword ptr [RBX + 0x10] CALL .plt:jid_dup ;undefined jid_dup() MOV qword ptr [RBP + 0x28],RAX MOV RDI,RAX CALL .plt:jid_full ;undefined jid_full() MOV RDI,qword ptr [RBP + 0x40] XOR R9D,R9D LEA RCX,[.rodata:DAT_00102005] ;= 74h t MOV R8,RAX MOV EDX,0xffffffff MOV ESI,0x1 CALL .plt:nad_set_attr ;undefined nad_set_attr() JMP LAB_00101222 ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001012b0: MOV RDI,RBP CALL .plt:pkt_free ;undefined pkt_free() XOR EAX,EAX JMP LAB_0010122c ?? 90h Actual src: static mod_ret_t _deliver_in_sess(mod_instance_t mi, sess_t sess, pkt_t pkt) { /* ensure from is set correctly if not already by client */ if(pkt->from == NULL || jid_compare_user(pkt->from, sess->jid)!= 0 || (!(pkt->type & pkt_PRESENCE) &&!(pkt->type & pkt_S10N) && jid_compare_full(pkt->from, sess->jid)!= 0)) { if(pkt->from!= NULL) jid_free(pkt->from); pkt->from = jid_dup(sess->jid); nad_set_attr(pkt->nad, 1, -1, "from", jid_full(pkt->from), 0); } /* no to address means its to us */ if(pkt->to == NULL) { /* drop iq-result packets */ /* user client is confirming all iq-set, but we usually do not track these * confirmations and we need to drop it here, not loop back to client */ if(pkt->type == pkt_IQ_RESULT) { pkt_free(pkt); return mod_HANDLED; } /* iq packets without to should have been already handled by modules */ if(pkt->type & pkt_IQ) { return -stanza_err_FEATURE_NOT_IMPLEMENTED; } /* supplant user jid as 'to' */ pkt->to = jid_dup(sess->jid); nad_set_attr(pkt->nad, 1, -1, "to", jid_full(pkt->to), 0); } /* let it go on the wire */ pkt_router(pkt); return mod_HANDLED; } Predicted src: static int _set_cb(const char *name, const char *name) { char *name; char *name; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; if (!name) return -1; return -1; }