============================== 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: gboolean cd_plugin_start_and_context (G_GNUC_UNUSED GError **error, GError **error) { G_GNUC_UNUSED GError **error = NULL; G_GNUC_UNUSED GError **error = NULL; int ret; if (!cd_plugin_context_start_and_context (error, error)) { return FALSE; } for (ret = 0; ret < G_N_ELEMENTS (cd_plugin_context_get_and_context (error)); ret++) { if (!cd_plugin_context_set_and_context (error, error)) { return FALSE; } } if (cd_plugin_context_set_and_context (error, error)) { cd_plugin_context_set_and_context (error, error); return FALSE; } return TRUE; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined conf_setAudioDefaults() SUB RSP,0x8 MOV RDI,qword ptr [.bss:conf[88]] TEST RDI,RDI JZ LAB_0011bdd5 CALL .plt:::free ;void free(void * __ptr) LAB_0011bdd5: LEA RDI,[.rodata:s_openal_001f5946] ;= "openal" CALL .plt:::strdup ;char * strdup(char * __s) MOV dword ptr [.bss:conf[112]],0x0 MOV qword ptr [.bss:conf[88]],RAX MOV RAX,0x100000080 MOV qword ptr [.bss:conf[96]],RAX MOV RAX,0x8000000001 MOV qword ptr [.bss:conf[104]],RAX MOV RAX,qword ptr [.rodata:DAT_001f43c0] ;= 3FE3333333333333h MOV qword ptr [.bss:conf[120]],RAX MOV RAX,qword ptr [.rodata:DAT_001f49a0] ;= 3FE999999999999Ah MOV qword ptr [.bss:conf[128]],RAX ADD RSP,0x8 RET ?? 66h f Actual src: void conf_setAudioDefaults (void) { if (conf.sound_backend!= NULL) { free(conf.sound_backend); conf.sound_backend = NULL; } /* Sound. */ conf.sound_backend = strdup(BACKEND_DEFAULT); conf.snd_voices = VOICES_DEFAULT; conf.snd_pilotrel = PILOT_RELATIVE_DEFAULT; conf.al_efx = USE_EFX_DEFAULT; conf.al_bufsize = BUFFER_SIZE_DEFAULT; conf.nosound = MUTE_SOUND_DEFAULT; conf.sound = SOUND_VOLUME_DEFAULT; conf.music = MUSIC_VOLUME_DEFAULT; } Predicted src: void conf_set_open(void) { if (conf.open) free(conf.open); conf.open = NULL; conf.open = NULL; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined g_flags_class_init() PUSH RBP PUSH RBX SUB RSP,0x8 TEST RDI,RDI JZ LAB_00115a25 CMP qword ptr [RDI],0x34 MOV RBP,RDI MOV RBX,RSI JZ LAB_00115a48 MOV ESI,0x34 CALL g_type_check_class_is_a ;undefined g_type_check_class_is_a() TEST EAX,EAX JNZ LAB_00115a48 LAB_00115a25: ADD RSP,0x8 LEA RDX,[.rodata:s_G_IS_FLAGS_CLASS_(class)_00140d3b] ;= "G_IS_FLAGS_CLASS (class)" LEA RSI,[.rodata:__func__.15] ;= "g_flags_class_init" POP RBX LEA RDI,[.rodata:s_GLib-GObject_0013f3e8] ;= "GLib-GObject" POP RBP JMP .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() ?? 0Fh ?? 1Fh ?? 00h LAB_00115a48: MOV qword ptr [RBP + 0x8],0x0 MOV qword ptr [RBP + 0x10],RBX TEST RBX,RBX JZ LAB_00115a86 XOR EAX,EAX CMP qword ptr [RBX + 0x8],0x0 MOV EDX,0x1 JZ LAB_00115a86 NOP word ptr [RAX + RAX*0x1] LAB_00115a70: OR EAX,dword ptr [RBX] ADD RBX,0x18 MOV dword ptr [RBP + 0xc],EDX ADD EDX,0x1 MOV dword ptr [RBP + 0x8],EAX CMP qword ptr [RBX + 0x8],0x0 JNZ LAB_00115a70 LAB_00115a86: ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh Actual src: static void g_flags_class_init (GFlagsClass *class, gpointer class_data) { g_return_if_fail (G_IS_FLAGS_CLASS (class)); class->mask = 0; class->n_values = 0; class->values = class_data; if (class->values) { GFlagsValue *values; for (values = class->values; values->value_name; values++) { class->mask |= values->value; class->n_values++; } } } Predicted src: void g_class_init (GClass *class) { g_return_if_fail (G_IS_OBJECT (class)); g_return_if_fail (G_IS_OBJECT (class)); g_return_if_fail (G_IS_OBJECT (class)); class->flags = G_OBJECT_NONE; class->flags = G_OBJECT_NONE; } ============================== Sample 4 ============================== 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 get_status_reply (GDBusConnection *connection, GDBusMethodInvocation *invocation, GDBusMethodInvocation *invocation, gpointer user_data) { GError *error = NULL; GError *error = NULL; g_dbus_message_iter_init (&error, G_DBUS_TYPE_STRING, &error); if (!g_dbus_message_iter_init (&error, G_DBUS_TYPE_STRING, &error)) { dbus_message_iter_init (&error, G_DBUS_TYPE_INVALID); return; } if (!g_dbus_message_iter_next (&error, error)) { dbus_message_iter_init (&error); return; } g_dbus_message_iter_init (&error); g_dbus_message_iter_init (&error); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* ExecutiveRebuildAllObjectDist(PyMOLGlobals*) * ;************************************************************************************************************************************************************ ;undefined ExecutiveRebuildAllObjectDist(PyMOLGlobals * param_1) ;param_1 PyMOLGlobals * RDI PUSH R12 PUSH RBP MOV RBP,param_1 PUSH RBX MOV R12,qword ptr [param_1 + 0xd8] MOV RBX,qword ptr [R12 + 0x58] TEST RBX,RBX JZ LAB_0049328f NOP dword ptr [RAX + RAX*0x1] LAB_00493270: MOV EAX,dword ptr [RBX] TEST EAX,EAX JNZ LAB_00493283 MOV param_1,qword ptr [RBX + 0x108] CMP dword ptr [param_1 + 0x10],0x4 JZ LAB_004932a0 LAB_00493283: MOV RBX,qword ptr [RBX + 0x110] TEST RBX,RBX JNZ LAB_00493270 LAB_0049328f: POP RBX MOV param_1,RBP POP RBP POP R12 JMP SceneInvalidate ;undefined SceneInvalidate(PyMOLGloba... ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_004932a0: MOV ESI,0xffffffff CALL ObjectDistInvalidateRep ;undefined ObjectDistInvalidateRep(Ob... CMP qword ptr [R12 + 0x58],0x0 JNZ LAB_00493283 POP RBX MOV param_1,RBP POP RBP POP R12 JMP SceneInvalidate ;undefined SceneInvalidate(PyMOLGloba... ?? 66h f Actual src: void ExecutiveRebuildAllObjectDist(PyMOLGlobals * G) { CExecutive *I = G->Executive; SpecRec *rec = NULL; while(ListIterate(I->Spec, rec, next)) { if(rec->type == cExecObject) { if(rec->obj->type == cObjectMeasurement) { ObjectDistInvalidateRep((ObjectDist *) rec->obj, cRepAll); } } } SceneInvalidate(G); } Predicted src: void AllAllObject(Object *object) { if (object!= NULL) { for (int i = 0; i < object->size; i++) { if (object->data[i] == object->data[i]) object->data[i] = -1; else object->data[i] = -1; } } }