============================== 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 string::add(const std::string &name) { m_name = m_name; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* CollectionConfiguration::isNewer(QHelpEngineCore const&, QHelpEngineCore const&) * ;************************************************************************************************************************************************************ ;undefined isNewer(QHelpEngineCore * param_1, QHelpEngineCore * param_2) ;param_1 QHelpEngine... RDI ;param_2 QHelpEngine... RSI PUSH RBP MOV RBP,param_2 PUSH RBX SUB RSP,0x8 CALL CollectionConfiguration::creationTime ;undefined creationTime(QHelpEngineCo... MOV param_1,RBP MOV EBX,EAX CALL CollectionConfiguration::creationTime ;undefined creationTime(QHelpEngineCo... CMP EBX,EAX SETA AL ADD RSP,0x8 POP RBX POP RBP RET ?? 66h f Actual src: bool CollectionConfiguration::isNewer(const QHelpEngineCore &newer, const QHelpEngineCore &older) { return creationTime(newer) > creationTime(older); } Predicted src: bool is_is_is_is_is_is(const std::string& s) const { return (s == s.is_is_is_is_is_is_is_is_is_is_is(s)); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gf_props_get_id() TEST RDI,RDI JZ LAB_004f5b40 PUSH R12 MOV R12,RDI PUSH RBP LEA RBP,[.data:GF_BuiltInProps[8]] PUSH RBX XOR EBX,EBX JMP LAB_004f5b0f ?? 66h f ?? 0Fh ;? -> 00841f0f ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_004f5b00: ADD EBX,0x1 ADD RBP,0x20 CMP EBX,0xba JZ LAB_004f5b43 LAB_004f5b0f: ; FWD[3,0]: 0073b88e,0088f4c8,0088f4e8 MOV RDI=>.rodata:s_ID_0073b887+7,qword ptr [RBP]=>.data:GF_BuiltInProps[8] ;= "ID" TEST RDI,RDI JZ LAB_004f5b00 MOV RSI,R12 CALL .plt:::strcmp ;int strcmp(char * __s1, char * __s2) TEST EAX,EAX JNZ LAB_004f5b00 SHL RBX,0x5 LEA RAX,[.data:GF_BuiltInProps] MOV EAX,dword ptr [RAX + RBX*0x1]=>.data:GF_BuiltInProps POP RBX POP RBP POP R12 RET ?? 66h f ?? 0Fh ;? -> 00841f0f ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_004f5b40: XOR EAX,EAX RET LAB_004f5b43: POP RBX XOR EAX,EAX POP RBP POP R12 RET ?? 66h f Actual src: GF_EXPORT u32 gf_props_get_id(const char *name) { u32 i, nb_props; if (!name) return 0; nb_props = sizeof(GF_BuiltInProps) / sizeof(GF_BuiltInProperty); for (i=0; i::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV EDI,0x1 MOV R9,R13 MOV R8,RBP MOVSXD RBX,dword ptr [.bss:UpClient_private_offset] ;=?? LEA RCX,[.rodata:s_/org/freedesktop/UPower_0011e31a] ;= "/org/freedesktop/UPower" XOR ESI,ESI MOV R12,RAX LEA RDX,[.rodata:s_org.freedesktop.UPower_0011e332] ;= "org.freedesktop.UPower" ADD RBX,RAX MOV qword ptr [RAX + 0x18],RBX CALL .plt:up_exported_daemon_proxy_new_for_bus_sync ;undefined up_exported_daemon_proxy_n... MOV qword ptr [RBX],RAX MOV RAX,qword ptr [R12 + 0x18] MOV RDI,qword ptr [RAX] XOR EAX,EAX TEST RDI,RDI JZ LAB_0010d17f XOR R9D,R9D XOR R8D,R8D LEA RDX,[up_device_added_cb] MOV RCX,R12 LEA RSI,[.rodata:s_device-added_0011e2fe] ;= "device-added" CALL .plt:::g_signal_connect_data ;undefined g_signal_connect_data() MOV RAX,qword ptr [R12 + 0x18] XOR R9D,R9D XOR R8D,R8D MOV RCX,R12 LEA RDX,[up_device_removed_cb] LEA RSI,[.rodata:s_device-removed_0011e30b] ;= "device-removed" MOV RDI,qword ptr [RAX] CALL .plt:::g_signal_connect_data ;undefined g_signal_connect_data() MOV RAX,qword ptr [R12 + 0x18] XOR R9D,R9D XOR R8D,R8D MOV RCX,R12 LEA RDX,[up_client_notify_cb] LEA RSI,[.rodata:s_notify_0011e349] ;= "notify" MOV RDI,qword ptr [RAX] CALL .plt:::g_signal_connect_data ;undefined g_signal_connect_data() MOV EAX,0x1 LAB_0010d17f: ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 66h f Actual src: static gboolean up_client_initable_init (GInitable *initable, GCancellable *cancellable, GError **error) { UpClient *client = UP_CLIENT (initable); client->priv = up_client_get_instance_private (client); /* connect to main interface */ client->priv->proxy = up_exported_daemon_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, "org.freedesktop.UPower", "/org/freedesktop/UPower", cancellable, error); if (client->priv->proxy == NULL) return FALSE; /* all callbacks */ g_signal_connect (client->priv->proxy, "device-added", G_CALLBACK (up_device_added_cb), client); g_signal_connect (client->priv->proxy, "device-removed", G_CALLBACK (up_device_removed_cb), client); g_signal_connect (client->priv->proxy, "notify", G_CALLBACK (up_client_notify_cb), client); return TRUE; } Predicted src: static void on_cb (GObject *object) { g_return_if_fail (object!= NULL); g_return_if_fail (G_IS_OBJECT (object), NULL); g_object_unref (G_OBJECT_OBJECT (object), NULL); } ============================== Sample 5 ============================== 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 C3D::operator=(const std::string &name) const { return true; }