============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined call_audio_dbus_call_audio_skeleton_finalize() PUSH RBP MOV RBP,RDI PUSH RBX SUB RSP,0x8 CALL call_audio_dbus_call_audio_skeleton_get_type ;undefined call_audio_dbus_call_audio... MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() LEA RSI,[_changed_property_free] MOV RBX,RAX MOV RAX,qword ptr [RAX + 0x20] MOV RDI,qword ptr [RAX + 0x8] CALL .plt:::g_list_free_full ;undefined g_list_free_full() MOV RAX,qword ptr [RBX + 0x20] MOV RDI,qword ptr [RAX + 0x10] TEST RDI,RDI JZ LAB_00105016 CALL .plt:::g_source_destroy ;undefined g_source_destroy() MOV RAX,qword ptr [RBX + 0x20] LAB_00105016: MOV RDI,qword ptr [RAX + 0x18] CALL .plt:::g_main_context_unref ;undefined g_main_context_unref() MOV RDI,qword ptr [RBX + 0x20] ADD RDI,0x20 CALL .plt:::g_mutex_clear ;undefined g_mutex_clear() MOV RDI,qword ptr [.bss:call_audio_dbus_call_audio_skeleton_parent_class] ;=?? MOV ESI,0x50 CALL .plt:::g_type_check_class_cast ;undefined g_type_check_class_cast() MOV RDI,RBP MOV RAX,qword ptr [RAX + 0x30] ADD RSP,0x8 POP RBX POP RBP JMP RAX ?? 0Fh Actual src: static void call_audio_dbus_call_audio_skeleton_finalize (GObject *object) { CallAudioDbusCallAudioSkeleton *skeleton = CALL_AUDIO_DBUS_CALL_AUDIO_SKELETON (object); g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); if (skeleton->priv->changed_properties_idle_source!= NULL) g_source_destroy (skeleton->priv->changed_properties_idle_source); g_main_context_unref (skeleton->priv->context); g_mutex_clear (&skeleton->priv->lock); G_OBJECT_CLASS (call_audio_dbus_call_audio_skeleton_parent_class)->finalize (object); } Predicted src: static void xdp_dbus_service_skeleton_finalize (GObject *object) { XdpDBusServiceSkeleton *skeleton = XDP_DBUS_SERVICE_SKELETON (object); guint n; for (n = 0; n < 1; n++) g_value_unref (skeleton->priv->changed_properties[n]); g_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); if (skeleton->priv->changed_properties_idle_source!= NULL) g_source_destroy (skeleton->priv->changed_properties_idle_source); g_mutex_clear (&skeleton->priv->lock); G_OBJECT_CLASS (xdp_dbus_service_skeleton_parent_class)->finalize (object); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* Pattern::canBeEmpty(States const&) const * ;************************************************************************************************************************************************************ ;undefined canBeEmpty(Pattern * this, States * param_1) ;this Pattern * RDI ;param_1 States * RSI MOV RAX,this MOV this,param_1 CMP qword ptr [RAX + 0x20],0x0 JZ LAB_0013fdb0 MOV param_1,qword ptr [RAX + 0x10] JMP Pattern::empty ;undefined empty(States * param_1, ul... ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0013fdb0: MOV EAX,0x1 RET ?? 66h f Actual src: bool Pattern::canBeEmpty(States const &states) const { return (fixedLength() && length() == 0) or empty(states, d_pair.first); } Predicted src: bool can::can_empty(const std::string& s) const { if (s.empty()) return false; return s.empty(); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;*DICOMAppHelper::GetSliceNumberFilenamePairs(std::vector, std::allocator > >,...* ;************************************************************************************************************************************************************ ;undefined GetSliceNumberFilenamePairs(DICOMAppHelper * this, vector * param_1, bool param_2) ;this DICOMAppHel... RDI ;param_1 vector * RSI ;param_2 bool DL PUSH R13 PUSH R12 MOV R12,param_1 PUSH RBP PUSH RBX SUB RSP,0x8 MOV RAX,qword ptr [this + 0x350] CMP qword ptr [RAX + 0x28],0x0 JZ LAB_001107d0 MOV param_1,qword ptr [RAX + 0x18] ADD RSP,0x8 MOVZX ECX,param_2 MOV param_2,R12 POP RBX POP RBP ADD param_1,0x20 POP R12 POP R13 JMP .plt:LAB_00106350 ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001107d0: MOV RBP,qword ptr [param_1] MOV R13,qword ptr [param_1 + 0x8] CMP RBP,R13 JZ LAB_00110808 MOV RBX,RBP NOP LAB_001107e0: MOV this,qword ptr [RBX + 0x8] LEA RAX,[RBX + 0x18] CMP this,RAX JZ LAB_001107fa MOV RAX,qword ptr [RBX + 0x18] LEA param_1,[RAX + 0x1] CALL .plt:::operator.delete ;void operator.delete(void * param_1,... LAB_001107fa: ADD RBX,0x28 CMP R13,RBX JNZ LAB_001107e0 MOV qword ptr [R12 + 0x8],RBP LAB_00110808: ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 90h Actual src: void DICOMAppHelper::GetSliceNumberFilenamePairs(dicom_stl::vector >& v, bool ascending) { // Default to using the first series if (!this->Implementation->SeriesUIDMap.empty()) { this->GetSliceNumberFilenamePairs( (*this->Implementation->SeriesUIDMap.begin()).first, v, ascending ); } else { v.clear(); } } Predicted src: void AppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAppAp ============================== Sample 4 ============================== 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: static N_LIB_PRIVATE N_NIMCALL(void, uint8_t, uint8_t, uint8_t, uint8_t *data) { uint8_t *data = (uint8_t *)data; uint8_t *data = (uint8_t *)data; if (data == NULL) { return 0; } data[0] = (uint8_t *)data; data[1] = (uint8_t *)data; data[2] = (uint8_t *)data; data[3] = (uint8_t *)data; data[4] = (uint8_t)data; data[5] = (uint8_t)data; data[6] = (uint8_t)data; data[6] = (uint8_t)data; data[6] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data; data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data[7] = (uint8_t)data[7 ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sge_generic_cal() PUSH R13 MOV ESI,0x1 PUSH R12 MOV R12,RDI XOR EDI,EDI SUB RSP,0x8 CALL rmon_condition ;undefined rmon_condition() TEST EAX,EAX JNZ LAB_00271be8 LAB_00271b9b: LEA RDI,[.data:CAL_Type] CALL lCreateElem ;undefined lCreateElem() TEST R12,R12 MOV ESI,0x2256a MOV R13,RAX LEA RAX,[.rodata:s_template_00282aed+6] ;= "template" CMOVZ R12,RAX MOV RDI,R13 MOV RDX,R12 CALL lSetString ;undefined lSetString() XOR EDI,EDI MOV ESI,0x1 CALL rmon_condition ;undefined rmon_condition() TEST EAX,EAX JNZ LAB_00271c08 LAB_00271bd8: ADD RSP,0x8 MOV RAX,R13 POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00271be8: CALL cl_thread_get_thread_config ;undefined cl_thread_get_thread_config() TEST RAX,RAX JZ LAB_00271c40 MOV RSI,qword ptr [RAX] LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_menter ;undefined rmon_menter() JMP LAB_00271b9b ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00271c08: CALL cl_thread_get_thread_config ;undefined cl_thread_get_thread_config() TEST RAX,RAX JZ LAB_00271c58 MOV RCX,qword ptr [RAX] MOV EDX,0xa1f LEA RSI,[.rodata:s_../libs/sgeobj/sge_calendar.c_002a0a39] ;= "../libs/sgeobj/sge_calendar.c" LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_mexit ;undefined rmon_mexit() ADD RSP,0x8 MOV RAX,R13 POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00271c40: XOR ESI,ESI LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_menter ;undefined rmon_menter() JMP LAB_00271b9b ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00271c58: XOR ECX,ECX MOV EDX,0xa1f LEA RSI,[.rodata:s_../libs/sgeobj/sge_calendar.c_002a0a39] ;= "../libs/sgeobj/sge_calendar.c" LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_mexit ;undefined rmon_mexit() JMP LAB_00271bd8 ?? 66h f Actual src: lListElem* sge_generic_cal(char *cal_name) { lListElem *calp; DENTER(TOP_LAYER, "sge_generic_cal"); calp = lCreateElem(CAL_Type); lSetString(calp, CAL_name, cal_name?cal_name:"template"); DRETURN(calp); } Predicted src: void * config_get_config(config_t *config) { config_t *config; config = config_get_config(config); if (config == NULL) { return NULL; } config = config_get_config(config); if (config == NULL) { return NULL; } config = config_get_config(config); if (config == NULL) { return NULL; } config->config = config; return config; }