============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* CMachine::GetLastStateChange() const * ;************************************************************************************************************************************************************ ;undefined GetLastStateChange(CMachine * this) ;this CMachine * RDI ;local_10 undefined8 -10 PUSH RBX MOV RBX,this SUB RSP,0x10 MOV this,qword ptr [this + 0x60] MOV qword ptr [RSP + local_10+0x18],0x0 TEST this,this JZ LAB_0050fe00 MOV RAX,qword ptr [this] LEA RSI=>local_10,[RSP + 0x8] CALL qword ptr [RAX + 0x208] MOV dword ptr [RBX + 0x8],EAX TEST EAX,EAX JNZ LAB_0050fe10 LAB_0050fdef: MOV RAX,qword ptr [RSP + local_10+0x18] ADD RSP,0x10 POP RBX RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0050fe00: ADD RSP,0x10 XOR EAX,EAX POP RBX RET ?? 0Fh ;? -> 00841f0f ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0050fe10: MOV RSI,qword ptr [RBX + 0x60] LEA this,[RBX + 0x10] LEA RDX,[.rodata:IMachine::GetIID()::iid] CALL .plt:COMErrorInfo::fetchFromCurrentThread ;undefined fetchFromCurrentThread(COM... JMP LAB_0050fdef ?? 66h f Actual src: LONG64 CMachine::GetLastStateChange() const { LONG64 aLastStateChange = 0; AssertReturn(ptr(), aLastStateChange); mRC = ptr()->COMGETTER(LastStateChange)(&aLastStateChange); #ifdef RT_OS_WINDOWS Assert(mRC!= RPC_E_WRONG_THREAD); Assert(mRC!= CO_E_NOTINITIALIZED); Assert(mRC!= RPC_E_CANTCALLOUT_ININPUTSYNCCALL); #endif if (RT_UNLIKELY(mRC!= S_OK)) { fetchErrorInfo(ptr(), &COM_IIDOF(Base::Iface)); } return aLastStateChange; } Predicted src: const QString CStateState::GetReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReR ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined vinagre_spice_connection_get_ssh_tunnel_host() PUSH RBX TEST RDI,RDI JZ LAB_00134758 MOV RBX,RDI CALL vinagre_spice_connection_get_type ;undefined vinagre_spice_connection_g... MOV RSI,RAX MOV RAX,qword ptr [RBX] TEST RAX,RAX JZ LAB_0013473e CMP qword ptr [RAX],RSI JZ LAB_0013474a LAB_0013473e: MOV RDI,RBX CALL .plt:::g_type_check_instance_is_a ;undefined g_type_check_instance_is_a() TEST EAX,EAX JZ LAB_00134758 LAB_0013474a: MOV RAX,qword ptr [RBX + 0x20] POP RBX MOV RAX,qword ptr [RAX + 0x20] RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00134758: LEA RDX,[.rodata:s_VINAGRE_IS_SPICE_CONNECTION_(con_0013e938] ;= "VINAGRE_IS_SPICE_CONNECTION (conn)" LEA RSI,[.rodata:__func__.0] ;= "vinagre_spice_connection_get_ssh_... XOR EDI,EDI CALL .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() XOR EAX,EAX POP RBX RET ?? 66h f Actual src: const gchar * vinagre_spice_connection_get_ssh_tunnel_host (VinagreSpiceConnection *conn) { g_return_val_if_fail (VINAGRE_IS_SPICE_CONNECTION (conn), NULL); return conn->priv->ssh_tunnel_host; } Predicted src: const gchar * mm_connection_connection_get_connection (VmmConnectionConnection *connection) { g_return_val_if_fail (Vmm_IS_CONNECTION_CONNECTION (connection), NULL); return connection->priv->connection; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined IntelGen_HwAddMediaObjectCmdBb_g75() PUSH RBP MOV RBP,RDX PUSH RBX MOV RBX,RSI SUB RSP,0x8 TEST RDI,RDI JZ LAB_00133b08 LAB_001339f5: TEST RBX,RBX JZ LAB_00133ad0 CMP qword ptr [RBX + 0xa8],0x0 JZ LAB_00133af0 LAB_00133a0c: TEST RBP,RBP JZ LAB_00133ab8 LAB_00133a15: CMP dword ptr [RBP + 0x4],0x17 JBE LAB_00133a80 LAB_00133a1b: MOV EDX,dword ptr [RBX + 0x9c] MOV EAX,dword ptr [RBX + 0x98] SUB EAX,EDX CMP EAX,0x17 JLE LAB_00133a98 LAB_00133a2e: MOV RCX,qword ptr [->g_cInit_MEDIA_OBJECT_HEADER_G6] ;= 00165210 MOVSXD RAX,EDX MOV ESI,dword ptr [RBP] ADD EDX,0x18 ADD RAX,qword ptr [RBX + 0xa8] MOVDQU XMM0,xmmword ptr [RCX]=>.rodata:g_cInit_MEDIA_OBJECT_HEADER_G6 MOV RCX,qword ptr [RCX + 0x10]=>.rodata:g_cInit_MEDIA_OBJECT_HEADER_G6[16] AND ESI,0x3f MOV qword ptr [RAX + 0x10],RCX MOV ECX,dword ptr [RBP + 0x4] MOVUPS xmmword ptr [RAX],XMM0 SHR ECX,0x2 SUB ECX,0x2 MOV word ptr [RAX],CX MOVZX ECX,byte ptr [RAX + 0x4] AND ECX,0xffffffc0 OR ECX,ESI MOV byte ptr [RAX + 0x4],CL MOV dword ptr [RBX + 0x9c],EDX ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00133a80: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() JMP LAB_00133a1b ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00133a98: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() MOV EDX,dword ptr [RBX + 0x9c] JMP LAB_00133a2e ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00133ab8: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() JMP LAB_00133a15 ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00133ad0: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() CMP qword ptr [RBX + 0xa8],0x0 JNZ LAB_00133a0c NOP dword ptr [RAX] LAB_00133af0: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() JMP LAB_00133a0c ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00133b08: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() JMP LAB_001339f5 ?? 0Fh Actual src: VOID IntelGen_HwAddMediaObjectCmdBb_g75(PGENHW_HW_INTERFACE pHwInterface, PGENHW_BATCH_BUFFER pBatchBuffer, PGENHW_HW_MEDIAOBJECT_PARAM pParam) { PBYTE pBuffer; PMEDIA_OBJECT_HEADER_G6 pCmd; GENHW_HW_ASSERT(pHwInterface); GENHW_HW_ASSERT(pBatchBuffer); GENHW_HW_ASSERT(pBatchBuffer->pData); GENHW_HW_ASSERT(pParam); GENHW_HW_ASSERT(pParam->dwMediaObjectSize >= sizeof(MEDIA_OBJECT_HEADER_G6)); GENHW_HW_ASSERT((pBatchBuffer->iSize - pBatchBuffer->iCurrent) >= (long)sizeof(MEDIA_OBJECT_HEADER_G6)); pBuffer = pBatchBuffer->pData + pBatchBuffer->iCurrent; pCmd = (PMEDIA_OBJECT_HEADER_G6) pBuffer; *pCmd = g_cInit_MEDIA_OBJECT_HEADER_G6; pCmd->DW0.DWordLength = OP_LENGTH(SIZE_IN_DW(pParam->dwMediaObjectSize)); pCmd->DW1.InterfaceDescriptorOffset = pParam->dwIDOffset; pBatchBuffer->iCurrent += sizeof(MEDIA_OBJECT_HEADER_G6); } Predicted src: static void _g_Init (G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED GUNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED GUNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED GUNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED GUNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED ============================== Sample 4 ============================== 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_get_search_get(const LinphoneCore *core) { returncore->search; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* new_outline(text_object*, char*, unsigned int) * ;************************************************************************************************************************************************************ ;undefined new_outline(text_object * param_1, char * param_2, uint param_3) ;param_1 text_object * RDI ;param_2 char * RSI ;param_3 uint EDX ;local_10 undefined8 -10 TEST param_3,param_3 JNZ LAB_0013fb18 RET ?? 0Fh ?? 1Fh ?? 00h LAB_0013fb18: SUB RSP,0x18 MOV RAX,param_1 PXOR XMM0,XMM0 MOV param_1,param_2 CVTSI2SD XMM0,qword ptr [RAX + 0x20] MOV param_2,0x6 MOVSD qword ptr [RSP + local_10+0x18],XMM0 CALL new_special ;undefined new_special(char * param_1... MOVSD XMM0,qword ptr [RSP + local_10+0x18] MOVSD qword ptr [RAX + 0x8],XMM0 ADD RSP,0x18 RET ?? 0Fh Actual src: void new_outline(struct text_object *obj, char *p, unsigned int p_max_size) { if (p_max_size == 0) { return; } new_special(p, OUTLINE)->arg = obj->data.l; } Predicted src: char *object_object(char *name, double value, double value) { if (name[0] == 0) return 0.0; else return 0.0; }