============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _recipesresource_constructor() LEA RDI,[.data:static_resource] JMP .plt:LAB_00120b30 ?? 0Fh Actual src: static void _recipesresource_constructor (void) { g_static_resource_init (&static_resource); } Predicted src: static void _constructorresource_constructor (void) { g_static_resource_init (&static_resource); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _writeback_v() ;local_10 undefined8 -10 ;local_20 undefined8 -20 ;local_28 undefined8 -28 ;local_30 undefined8 -30 ;local_38 undefined8 -38 PUSH RBP MOV RBP,RSP SUB RSP,0x30 MOV qword ptr [RBP + local_20+0x8],RDI MOV qword ptr [RBP + local_28+0x8],RSI MOV qword ptr [RBP + local_30+0x8],RDX MOV qword ptr [RBP + local_38+0x8],RCX MOV RAX,qword ptr [RBP + local_38+0x8] MOV qword ptr [RBP + local_10+0x8],RAX MOV RAX,qword ptr [RBP + local_10+0x8] MOV ESI,0x2 MOV RDI,RAX CALL _test_flags ;undefined _test_flags() TEST AL,AL JZ LAB_00295efb MOV RAX,qword ptr [RBP + local_10+0x8] MOV RDI,RAX CALL _issue_write ;undefined _issue_write() LAB_00295efb: MOV EAX,0x1 LEAVE RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _invalidate_v() ;local_10 undefined8 -10 ;local_18 undefined8 -18 ;local_20 undefined8 -20 ;local_28 undefined8 -28 ;local_30 undefined8 -30 ;local_38 undefined8 -38 PUSH RBP Actual src: static bool _writeback_v(struct radix_tree_iterator *it, uint8_t *kb, uint8_t *ke, union radix_value v) { struct block *b = v.ptr; if (_test_flags(b, BF_DIRTY)) _issue_write(b); return true; } Predicted src: static int _write_flags(const void *buf, const void *buf, size_t len) { if (!buf) return 0; return _write_flags(buf, len); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined rd_kafka_message_get_from_rkm() ;local_10 undefined8 -10 CMP dword ptr [RDI + 0x10],0x4 MOV RAX,RSI JZ LAB_001438d0 MOV RDX,qword ptr [RDI + 0x38] TEST RDX,RDX JZ LAB_00143900 CMP qword ptr [RSI + 0x8],0x0 MOV RCX,qword ptr [RDX + 0x60] MOV qword ptr [RSI + 0x40],RDI JZ LAB_00143947 LAB_001438b5: MOV EDX,dword ptr [RDX + 0x68] MOV dword ptr [RAX + 0x10],EDX LAB_001438bb: MOV EDX,dword ptr [RAX] TEST EDX,EDX JNZ LAB_001438cc MOV EDX,dword ptr [RDI + 0x20] CMP dword ptr [RDI + 0x10],0x1 MOV dword ptr [RAX],EDX JZ LAB_00143910 LAB_001438cc: RET ?? 0Fh ?? 1Fh ?? 00h LAB_001438d0: MOV RDX,qword ptr [RSI + 0x8] MOV RCX,qword ptr [RDI + 0x70] TEST RDX,RDX JNZ LAB_001438bb TEST RCX,RCX JZ LAB_001438bb LAB_001438e2: CMP dword ptr [RCX],0x544b524c JNZ LAB_00143940 LOCK ADD dword ptr [RCX + 0x10],0x1 LAB_001438ef: MOV qword ptr [RAX + 0x8],RCX TEST RDX,RDX JNZ LAB_001438b5 JMP LAB_001438bb ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00143900: MOV qword ptr [RSI + 0x40],RDI XOR ECX,ECX JMP LAB_001438bb ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00143910: TEST RCX,RCX JZ LAB_001438cc TEST EDX,EDX JNZ LAB_001438cc SUB RSP,0x18 MOV RDI,qword ptr [RCX + 0xf0] MOV RSI,RAX MOV qword ptr [RSP + local_10+0x18],RAX CALL rd_kafka_interceptors_on_consume ;undefined rd_kafka_interceptors_on_c... MOV RAX,qword ptr [RSP + local_10+0x18] ADD RSP,0x18 RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00143940: LOCK ADD dword ptr [RCX + 0x18],0x1 JMP LAB_001438ef LAB_00143947: TEST RCX,RCX JZ LAB_001438b5 JMP LAB_001438e2 ?? 66h f Actual src: rd_kafka_message_t *rd_kafka_message_get_from_rkm (rd_kafka_op_t *rko, rd_kafka_msg_t *rkm) { return rd_kafka_message_setup(rko, &rkm->rkm_rkmessage); } Predicted src: void * msg_message_get_from_message (msg_message_t *msg, const char *message) { if (!msg) return NULL; if (!msg) return NULL; if (!msg) return NULL; if (!msg->msg) return NULL; if (!msg->msg) return NULL; if (!msg->msg) return NULL; if (!msg->msg) return NULL; msg->msg = msg->msg; if (!msg->msg) return msg->msg; if (!msg->msg) return NULL; msg->msg = msg->msg; if (!msg->msg) return msg->msg; if (!msg->msg) return NULL; msg->msg = msg->msg; if (!msg->msg) return msg->msg; return msg->msg; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined mi_free_size_aligned() MOV R8,RDX MOV RAX,RDI XOR EDX,EDX PUSH R12 DIV R8 PUSH RBP MOV R12,RSI SUB RSP,0x8 MOV RBP,RDI TEST RDX,RDX JNZ LAB_003191c0 ADD RSP,0x8 MOV RSI,R12 MOV RDI,RBP POP RBP POP R12 JMP mi_free_size ;undefined mi_free_size() ?? 90h LAB_003191c0: LEA RCX,[.rodata:__func__.3] ;= "mi_free_size_aligned" MOV EDX,0x219 LEA RSI,[.rodata:s_./extlib/mimalloc/src/alloc.c_003c138d] ;= "./extlib/mimalloc/src/alloc.c" LEA RDI,[.rodata:s_((uintptr_t)p_%_alignment)_==_0_003c1330] ;= "((uintptr_t)p % alignment) == 0" CALL _mi_assert_fail ;undefined _mi_assert_fail() ?? EBh ?? CCh ?? 66h f Actual src: void mi_free_size_aligned(void* p, size_t size, size_t alignment) mi_attr_noexcept { UNUSED_RELEASE(alignment); mi_assert(((uintptr_t)p % alignment) == 0); mi_free_size(p,size); } Predicted src: void _alloc_alloc_p (void *ptr, size_t size) { size_t i; i = _alloc_p (ptr, size); if (!i) return; _alloc_alloc_p (ptr, size); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _vala_docky_clippy_preferences_set_property() PUSH R14 MOV R14,RDX PUSH R13 PUSH R12 MOV R12,RCX PUSH RBP MOV RBP,RDI PUSH RBX MOV EBX,ESI CALL .plt:docky_clippy_preferences_get_type ;undefined docky_clippy_preferences_g... MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV R13,RAX CMP EBX,0x1 JZ LAB_00103990 CMP EBX,0x2 JZ LAB_001039b0 MOV RAX,qword ptr [RBP] MOV RDI,qword ptr [RAX] CALL .plt:::g_type_name ;undefined g_type_name() MOV RBP,RAX MOV RAX,qword ptr [R12] MOV RDI,qword ptr [RAX] CALL .plt:::g_type_name ;undefined g_type_name() PUSH RBP LEA R9,[.rodata:s_property_00104438] ;= "property" XOR EDI,EDI PUSH RAX MOV R8D,0x115 XOR EAX,EAX LEA RCX,[.rodata:s_ClippyPreferences.c_00104441] ;= "ClippyPreferences.c" PUSH qword ptr [R12 + 0x8] LEA RDX,[.rodata:s_%s:%d:_invalid_%s_id_%u_for_"%s"_001043a8] ;= "%s:%d: invalid %s id %u for \"%s\... MOV ESI,0x10 PUSH RBX CALL .plt:::g_log ;undefined g_log() ADD RSP,0x20 POP RBX POP RBP POP R12 POP R13 POP R14 RET ?? 0Fh ?? 1Fh ?? 00h LAB_00103990: MOV RDI,R14 CALL .plt:::g_value_get_uint ;undefined g_value_get_uint() POP RBX MOV RDI,R13 POP RBP MOV ESI,EAX POP R12 POP R13 POP R14 JMP .plt:docky_clippy_preferences_set_MaxEntries ;undefined docky_clippy_preferences_s... ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001039b0: MOV RDI,R14 CALL .plt:::g_value_get_boolean ;undefined g_value_get_boolean() POP RBX MOV RDI,R13 POP RBP MOV ESI,EAX POP R12 POP R13 POP R14 JMP .plt:LAB_00102160 ?? 66h f Actual src: static void _vala_docky_clippy_preferences_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { DockyClippyPreferences * self; self = G_TYPE_CHECK_INSTANCE_CAST (object, DOCKY_TYPE_CLIPPY_PREFERENCES, DockyClippyPreferences); switch (property_id) { case DOCKY_CLIPPY_PREFERENCES_MAX_ENTRIES_PROPERTY: docky_clippy_preferences_set_MaxEntries (self, g_value_get_uint (value)); break; case DOCKY_CLIPPY_PREFERENCES_TRACK_MOUSE_SELECTIONS_PROPERTY: docky_clippy_preferences_set_TrackMouseSelections (self, g_value_get_boolean (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } Predicted src: static void _vala_property_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { switch (property_id) { case PROP_PROPERTY: g_value_set_object (value, G_TYPE_CHECK_INSTANCE_CAST (object, G_TYPE_CHECK_INSTANCE_TYPE (object, pspec))); break; case PROP_PROPERTY: g_value_set_pointer (value, G_TYPE_CHECK_INSTANCE_CAST (object, pspec)); break; case PROP_PROPERTY: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; case PROP_PROPERTY: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }