============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined NewChildCB() ;local_20 undefined8 -20 PUSH R13 LEA RCX,[.rodata:s_New_Child_%d_00104004] ;= "New Child %d" MOV EDX,0x1e PUSH R12 MOV R12,RDI PUSH RBP MOV RBP,RSI MOV ESI,0x1 SUB RSP,0x30 MOV R8D,dword ptr [.bss:count.2] MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x48],RAX XOR EAX,EAX MOV R13,RSP LEA EAX,[R8 + 0x1] MOV RDI,R13 MOV dword ptr [.bss:count.2],EAX XOR EAX,EAX CALL .plt:::__sprintf_chk ;undefined __sprintf_chk() XOR ECX,ECX MOV RDX,R13 MOV RSI,R12 MOV RDI,RBP CALL CreateNode ;undefined CreateNode() MOV RAX,qword ptr [RSP + local_20+0x48] SUB RAX,qword ptr FS:[0x28] JNZ LAB_00102a78 ADD RSP,0x30 POP RBP POP R12 POP R13 RET LAB_00102a78: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX] Actual src: static void NewChildCB(Widget w, XtPointer client, XtPointer call) { static int count = 0; char buffer[30]; sprintf (buffer, "New Child %d", count++); CreateNode((Widget)client, w, buffer, XmAlwaysOpen); } Predicted src: static void countcount(Widget w, XEvent *event, String *params, Cardinal *num_params) { char buf[256]; char buf[256]; sprintf(buf, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined get_9p_stats_trans() ;local_20 undefined8 -20 ;local_a8 undefined1 -a8 ;local_f8 undefined1 -f8 ;local_100 undefined8 -100 PUSH R13 PUSH R12 PUSH RBP MOV RBP,RDI MOV RDI,RSI SUB RSP,0xf0 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x108],RAX LEA RAX,[.rodata:DAT_00259fb7] ;= 4Fh O LEA R12=>local_f8,[RSP + 0x10] LEA R13=>local_a8,[RSP + 0x60] MOV RSI,R12 MOV qword ptr [RSP + local_100+0x108],RAX=>.rodata:DAT_00259fb7 ;= 4Fh O CALL .plt:::dbus_message_iter_init_append ;undefined dbus_message_iter_init_app... LEA RDX=>local_100,[RSP + 0x8] MOV RSI,R13 MOV RDI,RBP CALL arg_ipaddr ;undefined arg_ipaddr() TEST AL,AL JZ LAB_001559d0 MOV ESI,0x1 MOV RDI,R13 CALL get_gsh_client ;undefined get_gsh_client() MOV RBP,RAX TEST RAX,RAX JZ LAB_001559f0 CMP qword ptr [RAX + -0x20],0x0 JZ LAB_001559b8 MOV RDX=>.rodata:DAT_00259fb7,qword ptr [RSP + 0x8] ;= 4Fh O MOV ESI,0x1 MOV RDI,R12 CALL .plt:gsh_dbus_status_reply ;undefined gsh_dbus_status_reply() MOV RDI,qword ptr [RBP + -0x20] MOV RSI,R12 CALL server_dbus_9p_transstats ;undefined server_dbus_9p_transstats() LAB_00155987: MOV RDI,RBP CALL put_gsh_client ;undefined put_gsh_client() LAB_0015598f: MOV RAX,qword ptr [RSP + local_20+0x108] SUB RAX,qword ptr FS:[0x28] JNZ LAB_001559f9 ADD RSP,0xf0 MOV EAX,0x1 POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_001559b8: LEA RDX,[.rodata:s_Client_does_not_have_any_9p_acti_00248578] ;= "Client does not have any 9p activ... XOR ESI,ESI MOV RDI,R12 CALL .plt:gsh_dbus_status_reply ;undefined gsh_dbus_status_reply() JMP LAB_00155987 ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001559d0: MOV RDX=>.rodata:DAT_00259fb7,qword ptr [RSP + 0x8] ;= 4Fh O TEST RDX,RDX JZ LAB_001559f0 LAB_001559da: XOR ESI,ESI MOV RDI,R12 CALL .plt:gsh_dbus_status_reply ;undefined gsh_dbus_status_reply() JMP LAB_0015598f ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001559f0: LEA RDX,[.rodata:s_Client_IP_address_not_found_002482c7] ;= "Client IP address not found" JMP LAB_001559da LAB_001559f9: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP Actual src: static bool get_9p_stats_trans(DBusMessageIter *args, DBusMessage *reply, DBusError *error) { struct gsh_client *client = NULL; struct server_stats *server_st = NULL; bool success = true; char *errormsg = "OK"; DBusMessageIter iter; dbus_message_iter_init_append(reply, &iter); client = lookup_client(args, &errormsg); if (client == NULL) { success = false; if (errormsg == NULL) errormsg = "Client IP address not found"; } else { server_st = container_of(client, struct server_stats, client); if (server_st->st._9p == NULL) { success = false; errormsg = "Client does not have any 9p activity"; } } gsh_dbus_status_reply(&iter, success, errormsg); if (success) server_dbus_9p_transstats(server_st->st._9p, &iter); if (client!= NULL) put_gsh_client(client); return true; } Predicted src: static void dbus_client_reply (GDBusConnection *connection, const char *path, gpointer user_data) { const char *path = user_data; GError *error = NULL; if (!g_dbus_message_get_reply (path, &error)) return; g_dbus_message_iter_init (&error); g_dbus_message_iter_init (&error, path, &error); g_dbus_message_iter_init (&error); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sge_generic_cal() PUSH R13 MOV ESI,0x1 PUSH R12 MOV R12,RDI XOR EDI,EDI SUB RSP,0x8 CALL rmon_condition ;undefined rmon_condition() TEST EAX,EAX JNZ LAB_00271be8 LAB_00271b9b: LEA RDI,[.data:CAL_Type] CALL lCreateElem ;undefined lCreateElem() TEST R12,R12 MOV ESI,0x2256a MOV R13,RAX LEA RAX,[.rodata:s_template_00282aed+6] ;= "template" CMOVZ R12,RAX MOV RDI,R13 MOV RDX,R12 CALL lSetString ;undefined lSetString() XOR EDI,EDI MOV ESI,0x1 CALL rmon_condition ;undefined rmon_condition() TEST EAX,EAX JNZ LAB_00271c08 LAB_00271bd8: ADD RSP,0x8 MOV RAX,R13 POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00271be8: CALL cl_thread_get_thread_config ;undefined cl_thread_get_thread_config() TEST RAX,RAX JZ LAB_00271c40 MOV RSI,qword ptr [RAX] LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_menter ;undefined rmon_menter() JMP LAB_00271b9b ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00271c08: CALL cl_thread_get_thread_config ;undefined cl_thread_get_thread_config() TEST RAX,RAX JZ LAB_00271c58 MOV RCX,qword ptr [RAX] MOV EDX,0xa1f LEA RSI,[.rodata:s_../libs/sgeobj/sge_calendar.c_002a0a39] ;= "../libs/sgeobj/sge_calendar.c" LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_mexit ;undefined rmon_mexit() ADD RSP,0x8 MOV RAX,R13 POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00271c40: XOR ESI,ESI LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_menter ;undefined rmon_menter() JMP LAB_00271b9b ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00271c58: XOR ECX,ECX MOV EDX,0xa1f LEA RSI,[.rodata:s_../libs/sgeobj/sge_calendar.c_002a0a39] ;= "../libs/sgeobj/sge_calendar.c" LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_mexit ;undefined rmon_mexit() JMP LAB_00271bd8 ?? 66h f Actual src: lListElem* sge_generic_cal(char *cal_name) { lListElem *calp; DENTER(TOP_LAYER, "sge_generic_cal"); calp = lCreateElem(CAL_Type); lSetString(calp, CAL_name, cal_name?cal_name:"template"); DRETURN(calp); } Predicted src: static const char *config_get_config(config_t *config) { config_t *config; config = config_get_config(config); if (!config) return NULL; config = config_get_config(config); if (!config) return NULL; return config_get_config(config, config); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* juce::AudioProcessorGraph::Connection::TEMPNAMEPLACEHOLDERVALUE(juce::AudioProcessorGraph::Connection const&) const * ;************************************************************************************************************************************************************ ;undefined operator!=(Connection * this, Connection * param_1) ;this Connection * RDI ;param_1 Connection * RSI MOV EDX,dword ptr [param_1] MOV EAX,0x1 CMP dword ptr [this],EDX JZ LAB_0029c150 LAB_0029c14b: RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_0029c150: MOV ECX,dword ptr [param_1 + 0x4] CMP dword ptr [this + 0x4],ECX JNZ LAB_0029c14b MOV ECX,dword ptr [param_1 + 0x8] CMP dword ptr [this + 0x8],ECX JNZ LAB_0029c14b MOV EAX,dword ptr [param_1 + 0xc] CMP dword ptr [this + 0xc],EAX SETNZ AL RET ?? 66h f Actual src: bool AudioProcessorGraph::Connection::operator!= (const Connection& c) const noexcept { return! operator== (c); } Predicted src: bool operator!=( const &other) const { return (this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other other.this && this == other.this && this == other.this && this == other.this && this && this == other.this && this == other && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this == other.this && this && this == other.this && this == other.this && this == other.this && this == other.this && this && this == other.this && this == other && this == other other.this && this == other other other other.this && this == other other. == other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other other othe ============================== Sample 5 ============================== 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 gboolean g_plugin_list_start_func (gpointer user_data) { GThreadList *list = user_data; GThreadList *list = NULL; GThreadList *list = NULL; g_return_val_if_fail (user_data!= NULL, FALSE); g_return_val_if_fail (G_IS_PLUGIN_LIST (list), FALSE); list = g_list_get_list (list); if (!list) { g_set_error (error, G_IO_ERROR, G_IO_ERROR, G_IO_ERROR, G_IO_ERROR, G_IO_ERROR, G_IO_ERROR); return FALSE; } return TRUE; }