============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined fcml_tf_env_memory_alloc_handler_counter() ADD dword ptr [.bss:counter],0x1 JMP qword ptr [.bss:default_alloc] ?? 0Fh Actual src: fcml_ptr fcml_tf_env_memory_alloc_handler_counter( fcml_usize size ) { counter += 1; return default_alloc( size ); } Predicted src: void default_default_default_default_default_default_default(void) { default_default_default_default_default = 1; } ============================== Sample 2 ============================== 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_set_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { switch (prop_id) { case PROP_PROPERTY: g_value_set_pointer (value, g_value_get_pointer (value)); break; case PROP_PROPERTY: g_value_set_pointer (value, g_value_get_pointer (value)); break; case PROP_PROPERTY: g_value_set_pointer (value, g_value_get_pointer (value)); break; case PROP_PROPERTY: g_value_set_pointer (value, g_value_get_pointer (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined shortcuts_activate_get_info_cb() PUSH R13 MOV R13,RSI PUSH R12 MOV R12,RDI PUSH RBP MOV RBP,RCX PUSH RBX MOV RBX,RDX SUB RSP,0x8 CALL .plt:::g_cancellable_is_cancelled ;undefined g_cancellable_is_cancelled() MOV RDI,qword ptr [RBP] CMP qword ptr [RDI + 0x260],R12 JZ LAB_001e3600 LAB_001e35d8: CALL .plt.got:::g_object_unref ;undefined g_object_unref() MOV RDI,qword ptr [RBP + 0x8] CALL .plt.got:::g_object_unref ;undefined g_object_unref() MOV RDI,RBP CALL .plt.got:::g_free ;undefined g_free() ADD RSP,0x8 MOV RDI,R12 POP RBX POP RBP POP R12 POP R13 JMP .plt.got:::g_object_unref ;undefined g_object_unref() LAB_001e3600: MOV qword ptr [RDI + 0x260],0x0 TEST EAX,EAX JNZ LAB_001e35d8 TEST RBX,RBX JZ LAB_001e3628 LAB_001e3614: MOV RSI,qword ptr [RBP + 0x8] XOR EDX,EDX CALL gtk_file_chooser_default_select_file ;undefined gtk_file_chooser_default_s... MOV RDI,qword ptr [RBP] JMP LAB_001e35d8 ?? 0Fh ?? 1Fh ?? 00h LAB_001e3628: MOV RDI,R13 CALL _gtk_file_info_consider_as_directory ;undefined _gtk_file_info_consider_as... TEST EAX,EAX JNZ LAB_001e3640 MOV RDI,qword ptr [RBP] JMP LAB_001e3614 ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001e3640: MOV RDI,qword ptr [RBP] MOV RSI,qword ptr [RBP + 0x8] XOR EDX,EDX CALL change_folder_and_display_error ;undefined change_folder_and_display_... MOV RDI,qword ptr [RBP] JMP LAB_001e35d8 ?? 66h f Actual src: static void shortcuts_activate_get_info_cb (GCancellable *cancellable, GFileInfo *info, const GError *error, gpointer user_data) { gboolean cancelled = g_cancellable_is_cancelled (cancellable); struct ShortcutsActivateData *data = user_data; if (cancellable!= data->impl->shortcuts_activate_iter_cancellable) goto out; data->impl->shortcuts_activate_iter_cancellable = NULL; if (cancelled) goto out; if (!error && _gtk_file_info_consider_as_directory (info)) change_folder_and_display_error (data->impl, data->file, FALSE); else gtk_file_chooser_default_select_file (GTK_FILE_CHOOSER (data->impl), data->file, NULL); out: g_object_unref (data->impl); g_object_unref (data->file); g_free (data); g_object_unref (cancellable); } Predicted src: static void _gtk_file_file_file_changed_cb (GtkWidget *widget, gpointer user_data) { gboolean result; gboolean result; result = _tmp0_; _tmp0_ = _tmp0_; _tmp1_ = _tmp1_; _tmp2_ = _tmp2_; _tmp2_ = _tmp2_; _tmp2_ = _tmp2_; _tmp2_ = _tmp2_; _tmp3_ = _tmp2_; _tmp3_ = _tmp4_; _tmp4_ = _tmp5_; _tmp5_ = _tmp5_; _tmp5_ = _tmp5_; _tmp5_ = _tmp5_; _g_object_unref0 (_tmp5_); _tmp5_ = _tmp5_; _g_object_unref0 (_tmp5_); _g_object_unref0 (_tmp5_); _tmp5_ = _tmp5_; _g_object_unref0 (_tmp5_); _tmp5_ = _tmp5_; _g_object_unref0 (_tmp5_); _g_object_unref0 (_tmp5_); result = _tmp5_; _g_object_unref0 (_tmp5_); result = _tmp5_; _g_object_unref0 (_tmp5_); _g_object_unref0 (_tmp5_); result = _tmp5_; _g_object_unref0 (_tmp5_); result = _tmp5_; _g_object_unref0 (_tmp5_); result = _tmp5_; g_unref0 (_tmp5_); result = _tmp5_; result; g_g_object_unref0 (_tmp5_); result = _tmp5_; g_unref0 (_tmp5_); result = _tmp5_; result; result = _tmp5_; result; g_g_object_unref0 (_tmp5_); result = _tmp5_; result = _tmp5_; result; result = _tmp5_; result; g_unref0 (_tmp5_); result = _tmp5_; result = _tmp5_; result; result = _tmp5_; result; result = _tmp5_; result; result = _tmp5_; result; result = _tmp5_; result; result = _tmp5_; result = _tmp5_; result; result = _tmp5_; result; result = _tmp5_; g_tmp5_; g_g_g_g_g_g_g_g_object_unref0 (_tmp5_unref0 (_tmp5_); result = _tmp5_; result; g_g_g_g_g_g_g_unref0 (_tmp5_; result = _tmp5_; result = _tmp5_; result; result = _tmp5_; result; g_g_g_g_g_g_g_g_g_g_free (result); g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_free (result); g_g_g_g_g_g_g_g_g_g_free (result); g_g_g_g_g_g_g_g_g_g_g_g_free (result); _g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_free (result); g_g_g_g_g_g_g_g_g_g_free (result); result = _g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_free (result); _g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined f9_V_SPP_PDP() ;local_10 undefined8 -10 ;local_18 undefined8 -18 PUSH RBP MOV RBP,RSP MOV qword ptr [RBP + local_10+0x8],RDI MOV qword ptr [RBP + local_18+0x8],RSI NOP POP RBP RET ?? 90h Actual src: void f9_V_SPP_PDP(struct S_PDP p0, void* p1, void* p2) { } Predicted src: void f6_V_P_PFP(void* p0, void* p1, struct S_PFP p2) { } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* CSG_Array::Set_Growth(ESG_Array_Growth) * ;************************************************************************************************************************************************************ ;undefined Set_Growth(CSG_Array * this, ESG_Array_Growth param_1) ;this CSG_Array * RDI ;param_1 ESG_Array_G... ESI MOV dword ptr [this],param_1 MOV EAX,0x1 RET ?? 0Fh Actual src: bool CSG_Array::Set_Growth(TSG_Array_Growth Growth) { m_Growth = Growth; return( true ); } Predicted src: int vtkSetMacro(ArrayArray, int);