============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined up_client_initable_init() PUSH R13 MOV R13,RDX PUSH R12 MOV R12,RDI PUSH RBP MOV RBP,RSI PUSH RBX SUB RSP,0x8 CALL .plt:up_client_get_type ;undefined up_client_get_type() MOV RDI,R12 MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV EDI,0x1 MOV R9,R13 MOV R8,RBP MOVSXD RBX,dword ptr [.bss:UpClient_private_offset] ;=?? LEA RCX,[.rodata:s_/org/freedesktop/UPower_0011e31a] ;= "/org/freedesktop/UPower" XOR ESI,ESI MOV R12,RAX LEA RDX,[.rodata:s_org.freedesktop.UPower_0011e332] ;= "org.freedesktop.UPower" ADD RBX,RAX MOV qword ptr [RAX + 0x18],RBX CALL .plt:up_exported_daemon_proxy_new_for_bus_sync ;undefined up_exported_daemon_proxy_n... MOV qword ptr [RBX],RAX MOV RAX,qword ptr [R12 + 0x18] MOV RDI,qword ptr [RAX] XOR EAX,EAX TEST RDI,RDI JZ LAB_0010d17f XOR R9D,R9D XOR R8D,R8D LEA RDX,[up_device_added_cb] MOV RCX,R12 LEA RSI,[.rodata:s_device-added_0011e2fe] ;= "device-added" CALL .plt:::g_signal_connect_data ;undefined g_signal_connect_data() MOV RAX,qword ptr [R12 + 0x18] XOR R9D,R9D XOR R8D,R8D MOV RCX,R12 LEA RDX,[up_device_removed_cb] LEA RSI,[.rodata:s_device-removed_0011e30b] ;= "device-removed" MOV RDI,qword ptr [RAX] CALL .plt:::g_signal_connect_data ;undefined g_signal_connect_data() MOV RAX,qword ptr [R12 + 0x18] XOR R9D,R9D XOR R8D,R8D MOV RCX,R12 LEA RDX,[up_client_notify_cb] LEA RSI,[.rodata:s_notify_0011e349] ;= "notify" MOV RDI,qword ptr [RAX] CALL .plt:::g_signal_connect_data ;undefined g_signal_connect_data() MOV EAX,0x1 LAB_0010d17f: ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 66h f Actual src: static gboolean up_client_initable_init (GInitable *initable, GCancellable *cancellable, GError **error) { UpClient *client = UP_CLIENT (initable); client->priv = up_client_get_instance_private (client); /* connect to main interface */ client->priv->proxy = up_exported_daemon_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, "org.freedesktop.UPower", "/org/freedesktop/UPower", cancellable, error); if (client->priv->proxy == NULL) return FALSE; /* all callbacks */ g_signal_connect (client->priv->proxy, "device-added", G_CALLBACK (up_device_added_cb), client); g_signal_connect (client->priv->proxy, "device-removed", G_CALLBACK (up_device_removed_cb), client); g_signal_connect (client->priv->proxy, "notify", G_CALLBACK (up_client_notify_cb), client); return TRUE; } Predicted src: static void xfsm_client_proxy_init (XfsmClient *self) { xfsmClientPrivate *priv = xfsm_client_get_instance_private (self); xfsmClientPrivate *priv = xfsm_client_get_instance_private (priv->client); priv->client = g_signal_connect (priv->client, "notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notify::notifynotify::notify::notify::notifynotify::notify::notify::notify::notify::notifynotify::notify::notify::notify::notifynotify::notify::notify::notifynotify::notify::notifynotify::notify::notifynotify::notify::notify::notifynotify::notify::notifynotify::notify::notifynotify::notifynotify::notifynotify::notify::notifynotify::notifynotify::notifynotify::notifynotify::notifynotify::notifynotify::notifynotify::notifynotify::notifynotify::notifynotify::notifynotify::notifynotifynotify::notifynotifynotify::notifynotifynotifynotify::notifynotifynotifynotify::notifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotifynotif ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined AcpiDbGenerateSci() JMP AcpiEvSciDispatch ?? 66h f Actual src: void AcpiDbGenerateSci ( void) { AcpiEvSciDispatch (); } Predicted src: static void ProcProc(Widget w, XEvent *event, String *params, Cardinal *num_params, Cardinal *num_params) { (void) w; (void) event; (void)num_params; (void)num_params; (void)num_params; (void)num_params; (void)num_params; (void)num_params; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sdl_mixer_init() SUB RSP,0x8 MOVZX EAX,byte ptr [.bss:is_audio_initialized] ;=?? TEST AL,AL JZ LAB_0017987e CMP byte ptr [.bss:audio_open],0x0 ;=?? JZ LAB_0017989d LAB_00179879: ADD RSP,0x8 RET LAB_0017987e: LEA RCX,[.rodata:__PRETTY_FUNCTION__.16] ;= "sdl_mixer_init" MOV EDX,0x2b5 LEA RSI,[.rodata:s_c_utils.c_00253f10] ;= "c_utils.c" LEA RDI,[.rodata:s_is_audio_initialized_00253fd8] ;= "is_audio_initialized" CALL .plt:::__assert_fail ;void __assert_fail(char * __assertio... LAB_0017989d: MOV ECX,0x1000 MOV EDX,0x2 MOV ESI,0x8010 MOV EDI,0xac44 CALL .plt:::Mix_OpenAudio ;undefined Mix_OpenAudio() TEST EAX,EAX JNZ LAB_001798c3 MOV byte ptr [.bss:audio_open],0x1 ;=?? JMP LAB_00179879 LAB_001798c3: MOV byte ptr [.bss:audio_open],0x0 ;=?? LEA RDI,[.rodata:s_Unable_to_open_audio!_00253fed] ;= "Unable to open audio!\r" CALL .plt:::puts ;int puts(char * __s) JMP LAB_00179879 ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined play_mod() PUSH RBP Actual src: void sdl_mixer_init(void) { static const Uint16 audio_format = AUDIO_S16; static const int audio_channels = 2; static const int audio_buffers = 4096; //printf ("sdl_mixer_init called, is_audio_initialized=%d, audio_open=%d\r\n", is_audio_initialized, audio_open); assert (is_audio_initialized); //assert (!audio_open); if (audio_open) /* avoid double initialization */ return; if (Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers)) { audio_open = 0; printf("Unable to open audio!\r\n"); } else { audio_open = 1; } } Predicted src: void audio_audio_init(void) { if (!audio_is_audio) { return; } audio_is_audio = false; audio_is_audio = false; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined mlt_log_set_callback() MOV qword ptr [.data:callback],RDI ;= 00118010 RET ?? 0Fh Actual src: void mlt_log_set_callback( void (*new_callback)( void*, int, const char*, va_list ) ) { callback = new_callback; } Predicted src: void log_set_callback(log_callback callback) { log_callback = callback; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* Gui::Dragable::isValidDragPosition(QPoint const&) const * ;************************************************************************************************************************************************************ ;undefined isValidDragPosition(QPoint * param_1) ;param_1 QPoint * RDI MOV EAX,0x1 RET ?? 66h f Actual src: bool Dragable::isValidDragPosition(const QPoint& p) const { Q_UNUSED(p) return true; } Predicted src: bool KoShape::PositionPosition(const QModelIndex&) const { return true; }