============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gfal2_bring_online_poll_list() PUSH R14 MOV R14,RCX PUSH R13 MOV R13D,ESI MOV RSI,R8 PUSH R12 MOV R12,RDX PUSH RBP MOV RBP,RDI PUSH RBX MOV RBX,R8 CALL .plt:gfal2_start_scope_cancel ;undefined gfal2_start_scope_cancel() TEST EAX,EAX JS LAB_0011121e TEST R12,R12 JZ LAB_001111c8 CMP qword ptr [R12],0x0 JZ LAB_001111c8 TEST RBP,RBP JZ LAB_001111c8 MOV RDX,R12 MOV R8,RBX MOV RCX,R14 MOV ESI,R13D MOV RDI,RBP CALL .plt:gfal_plugin_bring_online_poll_listG ;undefined gfal_plugin_bring_online_p... MOV R12D,EAX JMP LAB_0011120a ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001111c8: TEST R13D,R13D JLE LAB_00111204 LEA EAX,[R13 + -0x1] LEA R12,[.rodata:s_context_or/and_urls_are_incorrec_00117e00] ;= "context or/and urls are incorrect... LEA R13,[RBX + RAX*0x8 + 0x8] NOP dword ptr [RAX] LAB_001111e0: XOR EAX,EAX CALL .plt:gfal2_get_core_quark ;undefined gfal2_get_core_quark() MOV RDI,RBX MOV RCX=>.rodata:s_context_or/and_urls_are_incorrec_00117e00,R12 ;= "context or/and urls are incorrect... MOV EDX,0xe MOV ESI,EAX ADD RBX,0x8 XOR EAX,EAX CALL .plt:::g_set_error ;undefined g_set_error() CMP RBX,R13 JNZ LAB_001111e0 LAB_00111204: MOV R12D,0xffffffff LAB_0011120a: MOV RDI,RBP CALL .plt:gfal2_end_scope_cancel ;undefined gfal2_end_scope_cancel() LAB_00111212: POP RBX MOV EAX,R12D POP RBP POP R12 POP R13 POP R14 RET LAB_0011121e: MOV R12D,0xffffffff JMP LAB_00111212 ?? 66h f Actual src: int gfal2_bring_online_poll_list(gfal2_context_t context, int nbfiles, const char *const *urls, const char *token, GError **errors) { int res = -1; GFAL2_BEGIN_SCOPE_CANCEL(context, -1, errors); if (urls == NULL || *urls == NULL || context == NULL) { int i; for (i = 0; i < nbfiles; ++i) { g_set_error(&errors[i], gfal2_get_core_quark(), EFAULT, "context or/and urls are incorrect arguments"); } res = -1; } else { res = gfal_plugin_bring_online_poll_listG(context, nbfiles, urls, token, errors); } GFAL2_END_SCOPE_CANCEL(context); return res; } Predicted src: static int plugin_set_list_list(void *data, void *user_data) { int ret = 0; int ret = 0; if (ret < 0) { ret = ret; ret = ret; } ret = ret; if (ret < 0) { ret = ret; ret = ret; } if (ret < 0) { ret = ret; ret = ret; } ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret ret; ret = ret; ret = ret; ret = ret; retret = ret; ret = ret; ret = ret; ret = ret ret; ret = ret; ret = ret; ret = ret ret ret; ret = ret; ret = ret; ret = ret; ret = ret; ret = ret ret; ret = ret; ret = ret ret; ret = ret; ret = ret ret; ret = ret ret ret; ret; ret = ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret; ret = ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret ret re ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined TSUserArgGet() PUSH RBX MOV EBX,ESI TEST RDI,RDI JZ LAB_00216ab0 MOV RCX,-0x2 LEA RDX,[.data.rel.ro:PluginUserArgsMixin::typeinfo] ;= 007686b0 LEA RSI,[.data.rel.ro:Continuation::typeinfo] ;= 00768430 CALL .plt:::__dynamic_cast ;undefined __dynamic_cast() MOV RDI,RAX TEST RAX,RAX JZ LAB_00216ae6 MOV RAX,qword ptr [RAX] MOVSXD RSI,EBX POP RBX MOV RAX,qword ptr [RAX + 0x10] JMP RAX ?? 66h f ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00216ab0: MOVSXD RSI,ESI CMP RSI,0x7f JBE LAB_00216ad8 MOV EDX,0x38 LEA RSI,[.rodata:s_../include/tscore/PluginUserArgs_005153a0+16] ;= "../include/tscore/PluginUserArgs.h" LEA RDI,[.rodata:s_ix_<_user_args.size()_005153d3] ;= "ix < user_args.size()" CALL .plt:::_ink_assert ;undefined _ink_assert() NOP dword ptr [RAX] LAB_00216ad8: LEA RAX,[.bss:global_user_args] POP RBX MOV RAX,qword ptr [RAX + RSI*offset.bss:global_user_args[8] &0xff + 0x8] RET LAB_00216ae6: MOV EDX,0x190e LEA RSI,[.rodata:s_traffic_server/InkAPI.cc_005153e9] ;= "traffic_server/InkAPI.cc" LEA RDI,[.rodata:s_user_args_005154ef] ;= "user_args" CALL .plt:::_ink_assert ;undefined _ink_assert() NOP Actual src: void * TSUserArgGet(void *data, int arg_idx) { if (nullptr!= data) { PluginUserArgsMixin *user_args = dynamic_cast(static_cast(data)); sdk_assert(user_args); return user_args->get_user_arg(arg_idx); } else { return global_user_args.get_user_arg(arg_idx); } } Predicted src: void _data_data_data_data_data_data_data_data_data_data_data_data_data_data(void *data) { struct tevent_data_data_data *data = data; data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data = data; data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data; data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data(data_data_data_data_data_data_data_data_data_data_data_data_data_data_data, data_data_data_data_data_data_data_data_data_data); data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data(data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data, data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data); data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data(data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data, data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data); data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_dat ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* Load::getUnit() const * ;************************************************************************************************************************************************************ ;undefined getUnit(void) ;local_20 undefined8 -20 ;local_28 undefined8 -28 PUSH R13 PUSH R12 MOV R12,RDI ADD RDI,0x18 PUSH RBP SUB RSP,0x10 MOV R13,qword ptr [RSI + 0x88] MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x28],RAX MOV RAX,qword ptr [->Unit::vtable] ;= 00288da8 ADD RAX,0x10 MOV qword ptr [RDI + -0x18],RAX=>.data.rel.ro:PTR_~Unit_00288db8 ;= 00203f20 MOV qword ptr [R12 + 0x8],RDI MOV RBP,qword ptr [RSI + 0x80] MOV RAX,RBP ADD RAX,R13 JZ LAB_00207791 TEST RBP,RBP JZ LAB_00207816 LAB_00207791: MOV qword ptr [RSP]=>local_28,R13 CMP R13,0xf JA LAB_002077e0 CMP R13,0x1 JNZ LAB_002077d8 MOVZX EAX,byte ptr [RBP] MOV byte ptr [R12 + 0x18],AL LAB_002077aa: MOV qword ptr [R12 + 0x10],R13 MOV byte ptr [RDI + R13*0x1],0x0 MOV RAX,qword ptr [RSP + local_20+0x28] SUB RAX,qword ptr FS:[0x28] JNZ LAB_00207822 ADD RSP,0x10 MOV RAX,R12 POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_002077d8: TEST R13,R13 JZ LAB_002077aa JMP LAB_00207800 ?? 90h LAB_002077e0: LEA RDI,[R12 + 0x8] MOV RSI,RSP XOR EDX,EDX CALL .plt:::std::__cxx11::basic_string,std::allocator>::_M...;undefined _M_create(ulong * param_1,... MOV qword ptr [R12 + 0x8],RAX MOV RDI,RAX MOV RAX,qword ptr [RSP]=>local_28 MOV qword ptr [R12 + 0x18],RAX LAB_00207800: MOV RDX,R13 MOV RSI,RBP CALL .plt:::memcpy ;void * memcpy(void * __dest, void *... MOV R13,qword ptr [RSP]=>local_28 MOV RDI,qword ptr [R12 + 0x8] JMP LAB_002077aa LAB_00207816: LEA RDI,[.rodata:s_basic_string::_M_construct_null_n_0021e1b8] ;= "basic_string::_M_construct null n... CALL .plt:::std::__throw_logic_error ;undefined __throw_logic_error(char *... LAB_00207822: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP Actual src: Unit Load::getUnit() const { return unit; } Predicted src: std::string string::get_str() const { return m_str->get_str(); } ============================== 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: static const char * g_device_get_device_device (gpointer user_data) { const gchar *data = user_data; const char *data = data; return data; } ============================== Sample 5 ============================== 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 Q_isItem(const QString &name, const QString &name) { return (name!= NULL)!= 0; }