============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined CG_CreateBlend() ;local_3c undefined4 -3c PUSH R15 XOR EAX,EAX PUSH R14 PUSH R13 PUSH R12 PUSH RBP PUSH RBX SUB RSP,0x18 CALL .plt:getCaliValue ;undefined getCaliValue() MOV EBP,EAX XOR EAX,EAX CALL .plt:getCaliValue ;undefined getCaliValue() MOV R12D,EAX XOR EAX,EAX CALL .plt:getCaliValue ;undefined getCaliValue() MOV R13D,EAX XOR EAX,EAX CALL .plt:getCaliValue ;undefined getCaliValue() MOV R14D,EAX XOR EAX,EAX CALL .plt:getCaliValue ;undefined getCaliValue() MOV EBX,EAX XOR EAX,EAX CALL .plt:getCaliValue ;undefined getCaliValue() MOV R15D,EAX MOV RAX,qword ptr [->sys_nextdebuglv] ;= 0034e0c8 MOV dword ptr [RAX]=>EXTERNAL:sys_nextdebuglv,0x2 ;=?? XOR EAX,EAX CALL .plt:sl_getIndex ;undefined sl_getIndex() MOV dword ptr [RSP + local_3c+0x48],EAX XOR EAX,EAX CALL .plt:sl_getPage ;undefined sl_getPage() MOV EDX,dword ptr [RSP + local_3c+0x48] LEA RDI,[.rodata:s_%d,%x:_0011c03b] ;= "%d,%x: " MOV ESI,EAX XOR EAX,EAX CALL .plt:sys_message ;undefined sys_message() SUB RSP,0x8 MOV R9D,EBX MOV R8D,R14D PUSH R15 MOV ECX,R13D MOV EDX,R12D MOV ESI,EBP LEA RDI,[.rodata:s_SACT.CG_CreateBlend_%d,%d,%d,%d,_0011cae0] ;= "SACT.CG_CreateBlend %d,%d,%d,%d,%... XOR EAX,EAX CALL .plt:sys_message ;undefined sys_message() ADD RSP,0x28 MOV R9D,R15D MOV R8D,EBX MOV ECX,R14D POP RBX MOV EDX,R13D MOV ESI,R12D MOV EDI,EBP POP RBP POP R12 POP R13 POP R14 POP R15 JMP .plt:LAB_00107970 ?? 66h f Actual src: void CG_CreateBlend() { int wNumDstCG = getCaliValue(); int wNumBaseCG = getCaliValue(); int wX = getCaliValue(); int wY = getCaliValue(); int wNumBlendCG = getCaliValue(); int wAlphaMapMode = getCaliValue(); DEBUG_COMMAND_YET("SACT.CG_CreateBlend %d,%d,%d,%d,%d,%d:\n", wNumDstCG, wNumBaseCG, wX, wY, wNumBlendCG, wAlphaMapMode); scg_create_blend(wNumDstCG, wNumBaseCG, wX, wY, wNumBlendCG, wAlphaMapMode); } Predicted src: static void message(int argc, char **argv) { int i; for (i = 0; i < argc; i++) { fprintf(stderr, "%s: %s\n", argv[i]); fprintf(stderr, "\n"); fprintf(stderr, "\n"); fprintf(stderr, "\n"); fprintf(stderr, "\n"); fprintf(stderr, "\n"); fprintf(stderr, "\n"); fprintf(stderr, "\n"); } } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined dee_shared_model_is_synchronized() PUSH RBX MOV RBX,RDI CALL .plt:dee_shared_model_get_type ;undefined dee_shared_model_get_type() TEST RBX,RBX JZ LAB_00125b28 MOV RSI,RAX MOV RAX,qword ptr [RBX] TEST RAX,RAX JZ LAB_00125b0e CMP qword ptr [RAX],RSI JZ LAB_00125b1a LAB_00125b0e: MOV RDI,RBX CALL .plt:::g_type_check_instance_is_a ;undefined g_type_check_instance_is_a() TEST EAX,EAX JZ LAB_00125b28 LAB_00125b1a: MOV RAX,qword ptr [RBX + 0x28] POP RBX MOV EAX,dword ptr [RAX + 0x50] RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00125b28: LEA RDX,[.rodata:s_DEE_IS_SHARED_MODEL_(self)_0013035c] ;= "DEE_IS_SHARED_MODEL (self)" LEA RSI,[.rodata:__func__.2] ;= "dee_shared_model_is_synchronized" LEA RDI,[.rodata:DAT_0012b024] ;= 64h d CALL .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() XOR EAX,EAX POP RBX RET ?? 66h f Actual src: gboolean dee_shared_model_is_synchronized (DeeSharedModel *self) { DeeSharedModelPrivate *priv; g_return_val_if_fail (DEE_IS_SHARED_MODEL (self), FALSE); priv = self->priv; return priv->synchronized; } Predicted src: gboolean gtk_model_model_model_model_model (GtkTreeModel *model) { g_return_val_if_fail (model!= NULL, FALSE); g_return_val_if_fail (model->model_model!= NULL, FALSE); return gtk_model_model_model_model_model_model_model_model_model (model->model_model); } ============================== Sample 3 ============================== 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_write(const void *p1, const void *p2, const void *p2) { if (p1 == NULL) return -1; return 0; } ============================== Sample 4 ============================== 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 _cb (GtkWidget *widget, gpointer data) { GtkWidget *widget = data; g_return_if_fail (widget!= NULL); g_return_if_fail (widget!= NULL); g_return_if_fail (widget!= NULL); g_return_if_fail (widget!= NULL); g_return_if_fail (widget!= NULL); g_object_unref (widget); g_object_unref (widget); g_object_unref (widget); g_object_unref (widget); g_object_unref (widget); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined fnct_RelateMatch() PUSH R13 PUSH R12 PUSH RBP MOV RBP,RDI PUSH RBX MOV RBX,RDX SUB RSP,0x8 MOV RAX,qword ptr [.bss:sqlite3_api] ;=?? CALL qword ptr [RAX + 0x328] MOV RDI,qword ptr [RBX] MOV R12,RAX MOV RAX,qword ptr [.bss:sqlite3_api] ;=?? CALL qword ptr [RAX + 0x388] CMP EAX,0x3 JNZ LAB_001be1ee MOV RAX,qword ptr [.bss:sqlite3_api] ;=?? MOV RDI,qword ptr [RBX] CALL qword ptr [RAX + 0x368] MOV RDI,qword ptr [RBX + 0x8] MOV R13,RAX MOV RAX,qword ptr [.bss:sqlite3_api] ;=?? CALL qword ptr [RAX + 0x388] CMP EAX,0x3 JZ LAB_001be210 LAB_001be1ee: MOV RAX,qword ptr [.bss:sqlite3_api] ;=?? MOV RDI,RBP MOV ESI,0xffffffff MOV RAX,qword ptr [RAX + 0x290] ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 JMP RAX LAB_001be210: MOV RAX,qword ptr [.bss:sqlite3_api] ;=?? MOV RDI,qword ptr [RBX + 0x8] CALL qword ptr [RAX + 0x368] MOV RDX,RAX TEST R12,R12 JZ LAB_001be258 MOV RSI,R13 MOV RDI,R12 CALL .plt:gaiaIntersectionMatrixPatternMatch_r ;undefined gaiaIntersectionMatrixPatt... MOV ESI,EAX LAB_001be236: MOV RAX,qword ptr [.bss:sqlite3_api] ;=?? MOV RDI,RBP MOV RAX,qword ptr [RAX + 0x290] ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 JMP RAX ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001be258: MOV RSI,RAX MOV RDI,R13 CALL .plt:gaiaIntersectionMatrixPatternMatch ;undefined gaiaIntersectionMatrixPatt... MOV ESI,EAX JMP LAB_001be236 ?? 66h f Actual src: static void fnct_RelateMatch (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_RelateMatch(string matrix, string pattern) / / returns: / 1 if the intersection matrix satisfies the intersection pattern / 0 otherwise / or -1 if any error is encountered */ int ret; const char *matrix; const char *pattern; void *data = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0])!= SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } else matrix = (char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1])!= SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } else pattern = (char *) sqlite3_value_text (argv[1]); if (data!= NULL) ret = gaiaIntersectionMatrixPatternMatch_r (data, matrix, pattern); else ret = gaiaIntersectionMatrixPatternMatch (matrix, pattern); sqlite3_result_int (context, ret); } Predicted src: static void new_func(void *data, void *data) { struct data *data = data; struct data *data = data; struct data *data = data; struct data *data = data; struct data *data = data; struct data *data = data; struct data *data = data; data = data->data; if (data->data) { data->data = data->data; data->data = data->data; data->data = data->data; } data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data; data->data = data->data = data->data; data->data->data = data; data->data = data->data; data->data = data->data; data->data = data->data = data->data; data->data = data->data; data->data = data->data->data = data; data->data->data = data->data; data->data = data->data = data->data; data->data->data = data->data; data->data = data->data = data->data; data->data->data = data->data = data->data; data->data = data->data = data->data; data->data = data->data; data->data = data->data = data->data; data->data->data->data = data->data = data; data->data = data->data->data = data->data; data->data->data = data->data = data->data; data->data->data->data = data->data = data; data->data->data = data->data = data->data; data->data = data->data->data->data = data; data->data->data->data = data->data = data->data; data->data = data->data->data = data->data; data->data->data = data->data = data->data; data->data->data = data->data->data = data->data = data->data; data->data->data = data->data->data->data = data->data; data->data = data->data->data = data->data = data->data; data->data->data = data->data->data = data->data; data->data = data->data->data->data = data->data = data->data; data->data = data->data->data = data->data; data->data->data->data->data->data = data->data = data->data = data; data->data->data->data = data->data->data->data = data->data->data = data->data; data->data->data->data->data = data->data = data->data; data->data = data->data = data->data; data->data->data = data->data->data = data->data->data->data = data->data = data->data->data->data = data->dat