============================== Sample 1 ============================== 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 Line::Add(std::vector &name) { std::vector>>>>>, std::pair>>>>,std::pair>>>>,std::pair>>>>,std::pair>>>>>,std::pair>>>>>>,std::pair>>>>> > *std::pair>,std::pair>>>>>> > *std::pair>>> >std::pairrounds = rijndaelKeySetupDec(key->key, userkey, bits); if (key->rounds == 0) return -1; return 0; } Predicted src: static int _key_KeyKey(key_t key, key_t key, key_t key, key_t key) { key_key_t key = key; key->key = key; key->key = key; key->key = key; key->key = key; return 1; } ============================== Sample 4 ============================== 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_point (GimpToolTool *tool, GimpTool *tool) { g_return_val_if_fail (GIMP_IS_TOOL (tool), NULL); g_return_val_if_fail (GIMP_IS_TOOL (tool), NULL); return GIMP_TOOL_GET_CLASS (tool)->add_point (tool,tool); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined pv_label() ;local_10 undefined8 -10 ;local_20 undefined8 -20 PUSH RBP MOV RBP,RSP SUB RSP,0x20 MOV qword ptr [RBP + local_20+0x8],RDI MOV RAX,qword ptr [RBP + local_20+0x8] MOV RCX,qword ptr [RAX + 0x40] MOV RAX,qword ptr [RBP + local_20+0x8] MOV EDX,0x0 MOV RSI,RCX MOV RDI,RAX CALL lvmcache_info_from_pvid ;undefined lvmcache_info_from_pvid() MOV qword ptr [RBP + local_10+0x8],RAX CMP qword ptr [RBP + local_10+0x8],0x0 JZ LAB_0023faa5 MOV RAX,qword ptr [RBP + local_10+0x8] MOV RDI,RAX CALL lvmcache_get_label ;undefined lvmcache_get_label() JMP LAB_0023fb04 LAB_0023faa5: MOV RAX,qword ptr [RBP + local_20+0x8] MOV RAX,qword ptr [RAX + 0x88] TEST RAX,RAX JZ LAB_0023faff MOV RAX,qword ptr [RBP + local_20+0x8] MOV RAX,qword ptr [RAX + 0x40] TEST RAX,RAX JZ LAB_0023faff MOV RAX,qword ptr [RBP + local_20+0x8] MOV RAX,qword ptr [RAX + 0x40] MOV RDI,RAX CALL dev_name ;undefined dev_name() MOV R9,RAX LEA R8,[.rodata:s_Internal_error:_PV_%s_unexpected_0033ccc0] ;= "Internal error: PV %s unexpectedl... MOV ECX,0xffffffff MOV EDX,0x19f LEA RAX,[.rodata:s_metadata/pv.c_0033cc56] ;= "metadata/pv.c" MOV RSI=>.rodata:s_metadata/pv.c_0033cc56,RAX ;= "metadata/pv.c" MOV EDI,0x3 MOV EAX,0x0 CALL print_log ;undefined print_log(undefined param_... LAB_0023faff: MOV EAX,0x0 LAB_0023fb04: LEAVE RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _add_pe_range() ;local_10 undefined8 -10 ;local_20 undefined8 -20 ;local_28 undefined8 -28 ;local_30 undefined8 -30 ;local_34 undefined4 -34 ;local_38 undefined4 -38 PUSH RBP Actual src: struct label *pv_label(const struct physical_volume *pv) { struct lvmcache_info *info = lvmcache_info_from_pvid((const char *)&pv->id.uuid, pv->dev, 0); if (info) return lvmcache_get_label(info); /* process_each_pv() may create dummy PVs that have no label */ if (pv->vg && pv->dev) log_error(INTERNAL_ERROR "PV %s unexpectedly not in cache.", dev_name(pv->dev)); return NULL; } Predicted src: static void add_label_info(const char *name, const char *label) { struct _label_info *label; label = _label_get_label(label, label); if (label == NULL) { label->label = NULL; label->label = NULL; label->label = NULL; label->label = NULL; } else { label->label = NULL; label->label = NULL; label->label = NULL; } }