============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined flatpak_exports_add_path_dir() MOV RDX,RSI XOR ECX,ECX MOV ESI,0xffffffff JMP _exports_path_expose ;undefined _exports_path_expose() ?? 90h Actual src: void flatpak_exports_add_path_dir (FlatpakExports *exports, const char *path) { _exports_path_expose (exports, FAKE_MODE_DIR, path, 0); } Predicted src: static void _add_cb (gpointer data, gpointer user_data) { _data_data_data_data_data_data_data_data_data_data_data_data_data_data (data); } ============================== 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 void _init (void *data) { if (data->data) return; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined bio_close() PUSH RBP MOV RBP,RDI PUSH RBX SUB RSP,0x8 CMP byte ptr [RDI + 0x24],0x1 JZ LAB_0010c0e0 LAB_0010c0af: CMP byte ptr [RBP + 0x25],0x0 MOV EDI,dword ptr [RBP + 0x28] JNZ LAB_0010c0d8 CALL .plt:::close ;int close(int __fd) LAB_0010c0bd: MOV RDI,qword ptr [RBP] CALL .plt.got:::free ;void free(void * __ptr) ADD RSP,0x8 MOV RDI,RBP POP RBX POP RBP JMP .plt.got:::free ;void free(void * __ptr) ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_0010c0d8: CALL tcpclose ;undefined tcpclose() JMP LAB_0010c0bd ?? 90h LAB_0010c0e0: CMP byte ptr [RDI + 0x26],0x0 JNZ LAB_0010c0af MOV EBX,dword ptr [RDI + 0xc] TEST EBX,EBX JZ LAB_0010c0af CMP byte ptr [RBP + 0x25],0x0 MOV EDI,dword ptr [RDI + 0x28] MOV RSI,qword ptr [RBP] JZ LAB_0010c120 MOV ECX,dword ptr [RBP + 0x14] MOV EDX,EBX CALL tcptowrite ;undefined tcptowrite() LAB_0010c104: CMP EBX,EAX JLE LAB_0010c110 MOV byte ptr [RBP + 0x26],0x1 TEST EAX,EAX JS LAB_0010c116 LAB_0010c110: CDQE ADD qword ptr [RBP + 0x18],RAX LAB_0010c116: MOV dword ptr [RBP + 0xc],0x0 JMP LAB_0010c0af ?? 90h LAB_0010c120: MOV EDX,EBX CALL .plt:::write ;ssize_t write(int __fd, void * __buf... JMP LAB_0010c104 ?? 0Fh Actual src: void bio_close(bio *b) { if (b->direction==BIO_WRITE) { bio_flush(b); } if (b->type==0) { close(b->fd); } else { tcpclose(b->fd); } free(b->buff); free(b); } Predicted src: void file_free(void) { int i; for (i = 0; i < n; i++) { if (i!= 0) free(i); free(i); } } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined Findjob_new() PUSH R12 MOV R12,RSI MOV ESI,0x1098 PUSH RBP MOV RBP,RDI MOV EDI,0x1 PUSH RBX CALL .plt:::calloc ;void * calloc(size_t __nmemb, size_t... MOV qword ptr [RBP],RAX TEST RAX,RAX JZ LAB_00124294 MOV qword ptr [RAX + 0x8],0x0 MOV RBX,RAX MOV RDI,R12 MOV qword ptr [RAX + 0x10],0x0 MOV RAX,0x100000000 MOV qword ptr [RBX + 0x18],RAX MOV qword ptr [RBX + 0x20],0x0 MOV dword ptr [RBX + 0x28],0x1 MOV qword ptr [RBX + 0x30],0x0 MOV qword ptr [RBX + 0x38],0x0 MOV qword ptr [RBX + 0x40],0x0 MOV dword ptr [RBX + 0x50],0x0 MOV qword ptr [RBX + 0x58],0x0 CALL .plt:::strdup ;char * strdup(char * __s) MOV qword ptr [RBX],RAX TEST RAX,RAX JZ LAB_00124280 MOV qword ptr [RBX + 0x60],0x0 XOR EDX,EDX LEA RDI,[RBX + 0x8] MOV R8D,0x2 MOV qword ptr [RBX + 0x68],0x0 LEA RCX,[.rodata:s_-find_001b5130+80] ;= "-find" MOV RSI,RBX MOV qword ptr [RBX + 0x70],0x0 MOV qword ptr [RBX + 0x78],0x0 MOV byte ptr [RBX + 0x84],0x0 MOV qword ptr [RBX + 0x1084],0x0 MOV qword ptr [RBX + 0x108c],0x0 CALL Exprnode_new ;undefined Exprnode_new() TEST EAX,EAX JLE LAB_00124280 MOV RAX,qword ptr [RBX + 0x8] MOV qword ptr [RBX + 0x10],RAX MOV EAX,0x1 LAB_00124276: POP RBX POP RBP POP R12 RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00124280: MOV RDI,RBP XOR ESI,ESI CALL Findjob_destroy ;undefined Findjob_destroy() POP RBX MOV EAX,0xffffffff POP RBP POP R12 RET LAB_00124294: OR EAX,0xffffffff JMP LAB_00124276 ?? 0Fh Actual src: int Findjob_new(struct FindjoB **o, char *start_path, int flag) { struct FindjoB *m; int ret; m= *o= TSOB_FELD(struct FindjoB,1); if(m==NULL) return(-1); m->start_path= NULL; m->test_tree= NULL; m->cursor= NULL; m->invert= 0; m->use_shortcuts= 1; m->action= 0; /* print */ m->prune= 0; m->use_pattern= 1; m->target= NULL; /* a mere pointer, not managed memory */ m->text_2= NULL; /* a mere pointer, not managed memory */ m->user= 0; m->group= 0; m->type= 0; m->date= 0; m->start_path= strdup(start_path); if(m->start_path==NULL) goto failed; m->found_path= NULL; m->estim_upper_size= 0; m->estim_lower_size= 0; m->subjob= NULL; m->errmsg[0]= 0; m->errn= 0; m->match_count= 0; m->depth= 0; ret= Exprnode_new(&(m->test_tree), m, NULL, "-find", (m->use_shortcuts)<<1); if(ret<=0) goto failed; m->cursor= m->test_tree; return(1); failed:; Findjob_destroy(o, 0); return(-1); } Predicted src: static void init_init (void *data, void *data) { struct data_data *data = data; if (data->data) return; data->data = data; data->data = data; data->data->data = data; data->data->data = data; data->data->data = data; data->data->data = data; data->data->data->data = data; data->data->data = data; data->data->data->data = data; data->data->data->data = data; data->data->data->data = data; data->data->data->data->data = data; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined svt_aom_highbd_dc_predictor_8x32_c() PUSH R13 XOR EAX,EAX MOV R13,RSI PUSH R12 PUSH RBP PUSH RBX MOV RBX,RDI LEA RDI,[RDX + 0x10] SUB RSP,0x8 NOP word ptr CS:[RAX + RAX*0x1] LAB_00155040: MOVZX ESI,word ptr [RDX] ADD RDX,0x2 ADD EAX,ESI CMP RDI,RDX JNZ LAB_00155040 LEA RSI,[RCX + 0x40] NOP word ptr [RAX + RAX*0x1] LAB_00155058: MOVZX EDX,word ptr [RCX] ADD RCX,0x2 ADD EAX,EDX CMP RSI,RCX JNZ LAB_00155058 LEA R12D,[RAX + 0x14] MOV EAX,0xcccccccd ADD R13,R13 MOV EBP,0x20 IMUL R12,RAX SHR R12,0x25 NOP LAB_00155080: MOV RDI,RBX MOV EDX,0x8 MOV ESI,R12D ADD RBX,R13 CALL svt_aom_memset16 ;undefined svt_aom_memset16() SUB EBP,0x1 JNZ LAB_00155080 ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 66h f Actual src: intra_pred_highbd_sized(dc, 8, 32) Predicted src: void _init(int x, int y, int x, int y, int y, int y, int y, int y, int y, int y, int y, int y, int y, int y, int y, int y, int y, int y, int y, int y, int y, int y, int y) { int x, x, x, x, x, x, x, x, x, x, x, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, x, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y