============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined sge_generic_cal() PUSH R13 MOV ESI,0x1 PUSH R12 MOV R12,RDI XOR EDI,EDI SUB RSP,0x8 CALL rmon_condition ;undefined rmon_condition() TEST EAX,EAX JNZ LAB_00271be8 LAB_00271b9b: LEA RDI,[.data:CAL_Type] CALL lCreateElem ;undefined lCreateElem() TEST R12,R12 MOV ESI,0x2256a MOV R13,RAX LEA RAX,[.rodata:s_template_00282aed+6] ;= "template" CMOVZ R12,RAX MOV RDI,R13 MOV RDX,R12 CALL lSetString ;undefined lSetString() XOR EDI,EDI MOV ESI,0x1 CALL rmon_condition ;undefined rmon_condition() TEST EAX,EAX JNZ LAB_00271c08 LAB_00271bd8: ADD RSP,0x8 MOV RAX,R13 POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00271be8: CALL cl_thread_get_thread_config ;undefined cl_thread_get_thread_config() TEST RAX,RAX JZ LAB_00271c40 MOV RSI,qword ptr [RAX] LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_menter ;undefined rmon_menter() JMP LAB_00271b9b ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00271c08: CALL cl_thread_get_thread_config ;undefined cl_thread_get_thread_config() TEST RAX,RAX JZ LAB_00271c58 MOV RCX,qword ptr [RAX] MOV EDX,0xa1f LEA RSI,[.rodata:s_../libs/sgeobj/sge_calendar.c_002a0a39] ;= "../libs/sgeobj/sge_calendar.c" LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_mexit ;undefined rmon_mexit() ADD RSP,0x8 MOV RAX,R13 POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00271c40: XOR ESI,ESI LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_menter ;undefined rmon_menter() JMP LAB_00271b9b ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00271c58: XOR ECX,ECX MOV EDX,0xa1f LEA RSI,[.rodata:s_../libs/sgeobj/sge_calendar.c_002a0a39] ;= "../libs/sgeobj/sge_calendar.c" LEA RDI,[.rodata:SGE_FUNC.1] ;= "sge_generic_cal" CALL rmon_mexit ;undefined rmon_mexit() JMP LAB_00271bd8 ?? 66h f Actual src: lListElem* sge_generic_cal(char *cal_name) { lListElem *calp; DENTER(TOP_LAYER, "sge_generic_cal"); calp = lCreateElem(CAL_Type); lSetString(calp, CAL_name, cal_name?cal_name:"template"); DRETURN(calp); } Predicted src: const char * config_get_config(config_t *config) { config_t *config; config = config_get_config(config); if (config == NULL) { return NULL; } config = config_get_config(config); if (config == NULL) { return NULL; } config->config = config; return config; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _mlgmp_z_tdiv_ui() ;local_38 undefined8 -38 ;local_40 undefined8 -40 ;local_48 undefined8 -48 ;local_50 undefined8 -50 ;local_58 undefined8 -58 ;local_60 undefined8 -60 ;local_68 undefined8 -68 PUSH RBP PUSH RBX SUB RSP,0x58 LEA RAX,[.bss:Caml_state] MOV qword ptr [RSP]=>local_68,RSI SAR RSI,1 MOV RBX,qword ptr [RAX]=>.bss:Caml_state LEA RAX=>local_58,[RSP + 0x10] MOV qword ptr [RSP + local_60+0x68],RDI MOV qword ptr [RSP + local_48+0x68],0x1 MOV qword ptr [RSP + local_50+0x68],0x2 MOV RBP,qword ptr [RBX + 0x120] MOV qword ptr [RBX + 0x120],RAX LEA RAX=>local_60,[RSP + 0x8] MOV qword ptr [RSP + local_40+0x68],RAX MOV RAX,RSP MOV qword ptr [RSP + local_58+0x68],RBP MOV qword ptr [RSP + local_38+0x68],RAX JZ LAB_0018328b MOV RAX,qword ptr [RSP + local_60+0x68] LEA RDI,[RAX + 0x8] CALL .plt:::__gmpz_tdiv_ui ;undefined __gmpz_tdiv_ui() MOV qword ptr [RBX + 0x120],RBP ADD RSP,0x58 LEA RAX,[RAX + RAX*0x1 + 0x1] POP RBX POP RBP RET LAB_0018328b: CALL division_by_zero ;undefined division_by_zero() ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _mlgmp_z_fdiv_qr() ;local_40 undefined8 -40 ;local_48 undefined8 -48 ;local_50 undefined8 -50 ;local_58 undefined8 -58 ;local_60 undefined8 -60 ;local_68 undefined8 -68 ;local_88 undefined8 -88 ;local_90 undefined8 -90 ;local_98 undefined8 -98 ;local_a0 undefined8 -a0 ;local_a8 undefined8 -a8 ;local_b0 undefined8 -b0 ;local_b8 undefined8 -b8 ;local_c0 undefined8 -c0 ;local_d0 undefined8 -d0 ;local_d8 undefined8 -d8 PUSH R13 Actual src: z_xdivision_op(t) Predicted src: GEN _Zui_ui(GEN x, ulong y) { GEN x; GEN x; GEN y; x = _Zui_ui(x,y); y = _Zui_ui(x,y); y = _Zui_ui(x,y); y = _Zui_ui(x,y); _Zui_ui(x,y,y); return y; } ============================== Sample 3 ============================== 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_name_remove(const char *name, const char *name) { if (!name) { return; } if (!name) { return; } if (!name) { return; } if (!strcmp(name, name)) { return; } if (!strcmp(name, name)) { return; } if (!strcmp(name, name)) { return; } if (!strcmp(name, name)) { return; } if (!strcmp(name, name)) { return; } if (!strcmp(name, name)) { return; } g_free(name); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* CDVDInputStreamBluray::IsEOF() * ;************************************************************************************************************************************************************ ;undefined IsEOF(void) XOR EAX,EAX RET ?? 90h Actual src: bool CDVDInputStreamBluray::IsEOF() { return false; } Predicted src: bool CStreamStream::IsStream() { return false; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* wrapNewlineChunksize(libscols_column const*, char const*, void*) * ;************************************************************************************************************************************************************ ;undefined wrapNewlineChunksize(libscols_column * param_1, char * param_2, void * param_3) ;param_1 libscols_co... RDI ;param_2 char * RSI ;param_3 void * RDX JMP .plt:::scols_wrapnl_chunksize ?? 66h f Actual src: size_t wrapNewlineChunksize(const struct libscols_column *column, const char *data, void *userdata) { return scols_wrapnl_chunksize(column, data, userdata); } Predicted src: static int read_column_size(const void *data, const void *data, size_t size) { return read_column_size(data, size, data, size); }