============================== Sample 1 ============================== 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; isi_code == CLD_EXITED); // Find the process and remove it for (unsigned int processIdx = 0; processIdx < lstSize(serverLocal.processList); processIdx++) { if (*(int *)lstGet(serverLocal.processList, processIdx) == signalInfo->si_pid) lstRemoveIdx(serverLocal.processList, processIdx); } } Predicted src: static void serverserverserver(int argc, char **argv) { int i; for (i = 0; i < argc; i++) { if (serverserver[i].name!= NULL) { serverserver[i].name = NULL; serverserver[i].name = NULL; } } } ============================== Sample 3 ============================== 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_conn_connection_get_host_id (VncConnection *conn) { g_return_val_if_fail (Vnc_IS_CONNECTION_CONNECTION (conn), NULL); return conn->priv->host_id; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* Py::PythonExtensionBase::str() * ;************************************************************************************************************************************************************ ;undefined str(void) ;local_20 undefined8 -20 ;local_30 undefined1 -30 ;local_40 undefined8 -40 PUSH R12 MOV EDI,0x1 PUSH RBP PUSH RBX SUB RSP,0x30 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x48],RAX XOR EAX,EAX LEA RBP=>local_40,[RSP + 0x8] CALL .plt:::__cxa_allocate_exception ;undefined __cxa_allocate_exception() LEA RSI,[.rodata:s_Extension_object_missing_impleme_002426d8] ;= "Extension object missing implemen... MOV RDI,RBP MOV R12,RAX ;try { // try from 0017feba to 0017febe has its CatchHandler @ 0017ff00 LAB_0017feba: CALL std::__cxx11::basic_string,std::allocator>::basic_string ;undefined basic_string(char * param_... ;} // end try from 0017feba to 0017febe MOV RDI,RBP LEA RBX=>local_30,[RSP + 0x18] ;try { // try from 0017fec7 to 0017fecb has its CatchHandler @ 0017feec LAB_0017fec7: CALL Py::RuntimeError::RuntimeError ;undefined RuntimeError(RuntimeError... ;} // end try from 0017fec7 to 0017fecb MOV RDI=>local_40,qword ptr [RSP + 0x8] CMP RDI,RBX JZ LAB_0017fedb CALL .plt:::operator.delete ;void operator.delete(void * param_1) LAB_0017fedb: MOV RSI=>.data.rel.ro:Py::RuntimeError::typeinfo,qword ptr [->Py::RuntimeError::typeinfo] ;= 002a5cd8 ;= 00293fb8 XOR EDX,EDX MOV RDI,R12 LAB_0017fee7: CALL .plt:::__cxa_throw ;undefined __cxa_throw() ;catch() {... } // from try @ 0017fec7 with catch @ 0017feec LAB_0017feec: MOV RBP,RAX MOV RDI,qword ptr [RSP + 0x8] CMP RDI,RBX JZ LAB_0017ff03 CALL .plt:::operator.delete ;void operator.delete(void * param_1) JMP LAB_0017ff03 ;catch() {... } // from try @ 0017feba with catch @ 0017ff00 LAB_0017ff00: MOV RBP,RAX LAB_0017ff03: MOV RDI,R12 CALL .plt:::__cxa_free_exception ;undefined __cxa_free_exception() MOV RDI,RBP CALL .plt:::_Unwind_Resume ;undefined _Unwind_Resume() NOP Actual src: Py::Object PythonExtensionBase::str() { missing_method( str ); return Py::None(); } Predicted src: PyObject* Py_BaseBaseBase::str(void) { PyObject* self = Py_BuildValue("i", 0); return Py_BuildValue("i", 0); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined step_describe_props() MOV EAX,dword ptr [.data:step_props[56]] PUSH R12 LEA R12,[.data:step_props] TEST EAX,EAX JZ LAB_00106720 MOV RAX=>.data:step_props,R12 POP R12 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00106720: MOV RDI=>.data:step_props,R12 CALL .plt:::prop_desc_list_calculate_quarks ;undefined prop_desc_list_calculate_q... MOV RAX=>.data:step_props,R12 POP R12 RET ?? 66h f Actual src: static PropDescription * step_describe_props(Step *step) { if (step_props[0].quark == 0) { prop_desc_list_calculate_quarks(step_props); } return step_props; } Predicted src: const char *y_desc_list(void) { static const char *name = "y_desc_list"; if (!name) return NULL; return y_desc_list; }