============================== Sample 1 ============================== 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 *data, const void *data, size_t size) { struct _write_data *data = data; if (!data) return 0; _write_flags(data, data); return 1; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ProfilerGetCurrentState() MOV RSI,RDI MOV RDI,qword ptr [->CpuProfiler::instance_] ;= 00151640 JMP .plt:LAB_00117330 ?? 90h Actual src: void ProfilerGetCurrentState( ProfilerState* state) { CpuProfiler::instance_.GetCurrentState(state); } Predicted src: void QText QTextState_state(QTextStateH handle) { ((QTextState *)handle)->state((QTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTextQTex ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined strv_get_value() MOV RDX,qword ptr [RDI] TEST RDX,RDX JNZ LAB_00116220 XOR EAX,EAX RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00116220: PUSH R12 PUSH RBP MOV RBP,RSI MOV ESI,0x40 SUB RSP,0x8 MOV EAX,dword ptr [RDI + 0x20] MOV RDI,RBP MOV R12,qword ptr [RDX + RAX*0x8] CALL .plt:::g_value_init ;undefined g_value_init() MOV RDI,RBP MOV RSI,R12 CALL .plt:::g_value_set_string ;undefined g_value_set_string() ADD RSP,0x8 MOV EAX,0x1 POP RBP POP R12 RET ?? 66h f Actual src: static gboolean strv_get_value (TmplIterator *iter, GValue *value) { guint index = GPOINTER_TO_INT (iter->data1); if (iter->instance) { gchar **strv = iter->instance; gchar *str = strv[index]; g_value_init (value, G_TYPE_STRING); g_value_set_string (value, str); return TRUE; } return FALSE; } Predicted src: static gboolean g_value_init (GValue *value, gpointer data) { GValue *value = data; g_value_init (value, G_TYPE_STRING); if (g_value_get_string (value, G_TYPE_STRING)) g_value_set_string (value, G_TYPE_STRING); return TRUE; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined BKE_previewimg_cached_thumbnail_read() ;local_40 undefined8 -40 ;local_48 undefined8 -48 PUSH R15 MOV R15D,ECX PUSH R14 MOV R14D,EDX PUSH R13 MOV R13,RSI MOV RSI,RDI PUSH R12 PUSH RBP MOV RBP,RDI PUSH RBX SUB RSP,0x18 MOV RDI,qword ptr [.bss:gCachedPreviews] ;=?? MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_40+0x48],RAX XOR EAX,EAX MOV qword ptr [RSP]=>local_48,0x0 CALL BLI_ghash_lookup_p ;undefined BLI_ghash_lookup_p() MOV R12,qword ptr [RSP]=>local_48 MOV RBX,RAX TEST RAX,RAX JZ LAB_011aabe4 MOV R12,qword ptr [RAX] MOV qword ptr [RSP]=>local_48,R12 LAB_011aabe4: TEST R12,R12 JZ LAB_011aac60 TEST R15B,R15B JNZ LAB_011aac18 LAB_011aabee: MOV RAX,qword ptr [RSP + local_40+0x48] SUB RAX,qword ptr FS:[0x28] JNZ LAB_011aacb7 ADD RSP,0x18 MOV RAX,R12 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_011aac18: MOVZX EAX,byte ptr [R12 + 0x40] CMP EAX,R14D JNZ LAB_011aac40 LEA RDI,[R12 + 0x41] MOV RSI,R13 CALL .plt:::strcmp ;int strcmp(char * __s1, char * __s2) TEST EAX,EAX JNZ LAB_011aac40 MOV RDI,R12 CALL BKE_previewimg_clear ;undefined BKE_previewimg_clear() JMP LAB_011aac48 ?? 66h f ?? 90h LAB_011aac40: MOV RDI,RSP CALL BKE_previewimg_free ;undefined BKE_previewimg_free() LAB_011aac48: MOV R12,qword ptr [RSP]=>local_48 TEST R12,R12 JZ LAB_011aac60 TEST RBX,RBX JZ LAB_011aac94 LAB_011aac56: MOV qword ptr [RBX],R12 MOV R12,qword ptr [RSP]=>local_48 JMP LAB_011aabee ?? 90h LAB_011aac60: MOV RDI,R13 CALL .plt:::strlen ;size_t strlen(char * __s) LEA RDI,[RAX + 0x2] MOV R15,RAX CALL previewimg_create_ex ;undefined previewimg_create_ex(ulong... LEA RDX,[R15 + 0x1] MOV RSI,R13 MOV byte ptr [RAX + 0x40],R14B MOV R12,RAX LEA RDI,[RAX + 0x41] CALL .plt:::memcpy ;void * memcpy(void * __dest, void *... MOV qword ptr [RSP]=>local_48,R12 TEST RBX,RBX JNZ LAB_011aac56 LAB_011aac94: MOV RDI,RBP CALL BLI_strdup ;undefined BLI_strdup() MOV RDI,qword ptr [.bss:gCachedPreviews] ;=?? MOV RDX,R12 MOV RSI,RAX CALL BLI_ghash_insert ;undefined BLI_ghash_insert() MOV R12,qword ptr [RSP]=>local_48 JMP LAB_011aabee LAB_011aacb7: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined FUN_011aacbc() NOP dword ptr [RAX] Actual src: PreviewImage *BKE_previewimg_cached_thumbnail_read(const char *name, const char *path, const int source, bool force_update) { BLI_assert(BLI_thread_is_main()); PreviewImage *prv = nullptr; void **prv_p; prv_p = BLI_ghash_lookup_p(gCachedPreviews, name); if (prv_p) { prv = *(PreviewImage **)prv_p; BLI_assert(prv); } if (prv && force_update) { const char *prv_deferred_data = (char *)PRV_DEFERRED_DATA(prv); if (((int)prv_deferred_data[0] == source) && STREQ(&prv_deferred_data[1], path)) { /* If same path, no need to re-allocate preview, just clear it up. */ BKE_previewimg_clear(prv); } else { BKE_previewimg_free(&prv); } } if (!prv) { prv = previewimg_deferred_create(path, source); force_update = true; } if (force_update) { if (prv_p) { *prv_p = prv; } else { BLI_ghash_insert(gCachedPreviews, BLI_strdup(name), prv); } } return prv; } Predicted src: void BKE_main_copy_func(Main *bmain, const char *name, const char *name, const char *value) { const char *name = BKE_main_find_name(bmain, name, value); if (!name) { return; } if (!strcmp(name, name)) { return; } if (!strcmp(name, name)) { return; } if (!strcmp(name, value)) { return; } if (!strcmp(name, value)) { return; } if (!strcmp(name, value)) { return; } BKE_main_free_func(bmain, name); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined mbim_sim_init() LEA RDI,[.data.rel.ro:driver] JMP ofono_sim_driver_register ;undefined ofono_sim_driver_register() ?? 0Fh Actual src: void mbim_sim_init(void) { ofono_sim_driver_register(&driver); } Predicted src: void ofono_driver_init(void) { ofono_driver_driver_register(&driver); }