============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sqlite3_stmt_readonly() MOV EAX,0x1 TEST RDI,RDI JZ LAB_0083be17 MOVZX EAX,byte ptr [RDI + 0xc6] SHR AL,0x7 MOVZX EAX,AL LAB_0083be17: RET ?? 0Fh ;? -> 00841f0f Actual src: int sqlite3_stmt_readonly(sqlite3_stmt *pStmt){ return pStmt? ((Vdbe*)pStmt)->readOnly : 1; } Predicted src: int sqlite3_ sqlite3_t sqlite3_ sqlite3( sqlite3_ sqlite3_ sqlite3_t * sqlite3){ if( sqlite3_ sqlite3_ sqlite3_ sqlite3( sqlite3_ sqlite3_ sqlite3_ sqlite3( sqlite3_ sqlite3_ sqlite3_ sqlite3( sqlite3_ sqlite3_ sqlite3_ sqlite3( sqlite3_ sqlite3_ sqlite3_ sqlite3_ sqlite3( sqlite3_ sqlite3_ sqlite3_ sqlite3_ sqlite3( sqlite3_ sqlite3_ sqlite3( sqlite3_ sqlite3_ sqlite3_ sqlite3_ sqlite3( sqlite3_ sqlite3_ sqlite3_ sqlite3( sqlite3_ sqlite3_ sqlite3_ sqlite3_ sqlite3_ sqlite3_ sqlite3( sqlite3_ sqlite3_ sqlite3 sqlite3_ sqlite3( sqlite3 sqlite3_ sqlite3_ sqlite3 sqlite3_ sqlite3_ sqlite3 sqlite3 sqlite3( sqlite3_ sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3_ sqlite3 sqlite3 sqlite3_ sqlite3 sqlite3 sqlite3( sqlite3 sqlite3 sqlite3_ sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3_ sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite3 sqlite ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined e_google_book_chooser_button_init() MOVSXD RAX,dword ptr [.bss:EGoogleBookChooserButton_private_offset] ;=?? ADD RAX,RDI MOV qword ptr [RDI + 0x38],RAX RET ?? 90h Actual src: static void e_google_book_chooser_button_init (EGoogleBookChooserButton *button) { button->priv = e_google_book_chooser_button_get_instance_private (button); } Predicted src: static void e_button_button_button_button_init (EButtonButton *button) { button->priv = e_button_button_button_button_get_instance_private (button); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined call_audio_dbus_call_audio_skeleton_finalize() PUSH RBP MOV RBP,RDI PUSH RBX SUB RSP,0x8 CALL call_audio_dbus_call_audio_skeleton_get_type ;undefined call_audio_dbus_call_audio... MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() LEA RSI,[_changed_property_free] MOV RBX,RAX MOV RAX,qword ptr [RAX + 0x20] MOV RDI,qword ptr [RAX + 0x8] CALL .plt:::g_list_free_full ;undefined g_list_free_full() MOV RAX,qword ptr [RBX + 0x20] MOV RDI,qword ptr [RAX + 0x10] TEST RDI,RDI JZ LAB_00105016 CALL .plt:::g_source_destroy ;undefined g_source_destroy() MOV RAX,qword ptr [RBX + 0x20] LAB_00105016: MOV RDI,qword ptr [RAX + 0x18] CALL .plt:::g_main_context_unref ;undefined g_main_context_unref() MOV RDI,qword ptr [RBX + 0x20] ADD RDI,0x20 CALL .plt:::g_mutex_clear ;undefined g_mutex_clear() MOV RDI,qword ptr [.bss:call_audio_dbus_call_audio_skeleton_parent_class] ;=?? MOV ESI,0x50 CALL .plt:::g_type_check_class_cast ;undefined g_type_check_class_cast() MOV RDI,RBP MOV RAX,qword ptr [RAX + 0x30] ADD RSP,0x8 POP RBX POP RBP JMP RAX ?? 0Fh Actual src: static void call_audio_dbus_call_audio_skeleton_finalize (GObject *object) { CallAudioDbusCallAudioSkeleton *skeleton = CALL_AUDIO_DBUS_CALL_AUDIO_SKELETON (object); g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); if (skeleton->priv->changed_properties_idle_source!= NULL) g_source_destroy (skeleton->priv->changed_properties_idle_source); g_main_context_unref (skeleton->priv->context); g_mutex_clear (&skeleton->priv->lock); G_OBJECT_CLASS (call_audio_dbus_call_audio_skeleton_parent_class)->finalize (object); } Predicted src: static void phosh_dbus_dbus_skeleton_skeleton_finalize (GObject *object) { UDisksDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBusDBu ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sock_dealloc() ;local_10 undefined8 -10 PUSH RBP MOV RBP,RSP SUB RSP,0x10 MOV qword ptr [RBP + local_10+0x8],RDI MOV RAX,qword ptr [RBP + local_10+0x8] MOV EAX,dword ptr [RAX + 0x20] CMP EAX,-0x1 JZ LAB_0035dbfc MOV RAX,qword ptr [RBP + local_10+0x8] MOV EAX,dword ptr [RAX + 0x20] MOV EDI,EAX CALL .plt:::close ;int close(int __fd) LAB_0035dbfc: MOV RAX,qword ptr [RBP + local_10+0x8] MOV RAX,qword ptr [RAX + 0x40] TEST RAX,RAX JZ LAB_0035dc15 MOV RAX,qword ptr [RBP + local_10+0x8] MOV RDI,RAX CALL PyObject_ClearWeakRefs ;undefined PyObject_ClearWeakRefs() LAB_0035dc15: MOV RAX,qword ptr [RBP + local_10+0x8] MOV RAX,qword ptr [RAX + 0x18] MOV RDX,qword ptr [RAX + 0x150] MOV RAX,qword ptr [RBP + local_10+0x8] MOV RDI,RAX CALL RDX NOP LEAVE RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sock_repr() ;local_10 undefined8 -10 ;local_218 undefined1 -218 ;local_220 undefined8 -220 ;local_230 undefined8 -230 PUSH RBP Actual src: static void sock_dealloc(PySocketSockObject *s) { if (s->sock_fd!= -1) (void) SOCKETCLOSE(s->sock_fd); if (s->weakreflist!= NULL) PyObject_ClearWeakRefs((PyObject *)s); Py_TYPE(s)->tp_free((PyObject *)s); } Predicted src: static void close_close(void *data) { struct data *data = data; if (data->fd) close(data->fd); close(data->fd); close(data->fd); close(data->fd); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* QCA::CRLEntry::time() const * ;************************************************************************************************************************************************************ ;undefined time(void) PUSH R12 ADD RSI,0x8 MOV R12,RDI CALL .plt:::QDateTime::QDateTime ;undefined QDateTime(QDateTime * this... MOV RAX,R12 POP R12 RET ?? 66h f Actual src: QDateTime CRLEntry::time() const { return _time; } Predicted src: Q3d_t Q3d::time() const { return d->time; }