============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ccp_pmd_qp_release() PUSH R12 PUSH RBP PUSH RBX MOV RAX,qword ptr [RDI + 0x10] MOVZX EBX,SI MOV RAX,qword ptr [RAX + 0x50] MOV R12,qword ptr [RAX + RBX*0x8] TEST R12,R12 JZ LAB_0012bc27 MOV RBP,RDI MOV RDI,qword ptr [R12 + 0x48] CALL .plt:::rte_ring_free ;undefined rte_ring_free() MOV RDI,qword ptr [R12 + 0x60] CALL .plt:::rte_mempool_free ;undefined rte_mempool_free() MOV RDI,R12 CALL .plt:::rte_free ;undefined rte_free() MOV RAX,qword ptr [RBP + 0x10] MOV RAX,qword ptr [RAX + 0x50] MOV qword ptr [RAX + RBX*0x8],0x0 LAB_0012bc27: POP RBX XOR EAX,EAX POP RBP POP R12 RET ?? 66h f Actual src: static int ccp_pmd_qp_release(struct rte_cryptodev *dev, uint16_t qp_id) { struct ccp_qp *qp; if (dev->data->queue_pairs[qp_id]!= NULL) { qp = (struct ccp_qp *)dev->data->queue_pairs[qp_id]; rte_ring_free(qp->processed_pkts); rte_mempool_free(qp->batch_mp); rte_free(qp); dev->data->queue_pairs[qp_id] = NULL; } return 0; } Predicted src: static int qqqq_release_q(qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* idLBCache::Reset() * ;************************************************************************************************************************************************************ ;undefined Reset(idLBCache * this) ;this idLBCache * RDI PUSH R15 LEA R15,[this + 0xcc] PUSH R14 MOV R14,this PUSH R13 PUSH R12 PUSH RBP LEA RBP,[this + 0x4] PUSH RBX SUB RSP,0x8 LAB_0080c80c: MOV R13,qword ptr [RBP + 0x14] MOV dword ptr [RBP],0x0 TEST R13,R13 JZ LAB_0080c85c MOV EAX,dword ptr [RBP + 0x8] TEST EAX,EAX JLE LAB_0080c854 SUB EAX,0x1 LEA RBX,[R13 + 0x10] LEA RAX,[RAX + RAX*0x2] SHL RAX,0x6 LEA R12,[R13 + RAX*0x1 + 0xd0] NOP word ptr [RAX + RAX*0x1] LAB_0080c840: MOV this,RBX ADD RBX,0xc0 CALL idStr::FreeData ;undefined FreeData(idStr * this) CMP RBX,R12 JNZ LAB_0080c840 LAB_0080c854: MOV this,R13 LAB_0080c857: CALL Mem_Free16 ;undefined Mem_Free16(void * param_1) LAB_0080c85c: MOV qword ptr [RBP + 0x14],0x0 ADD RBP,0x28 MOV dword ptr [RBP + -0x24],0x0 MOV dword ptr [RBP + -0x20],0x0 CMP RBP,R15 JNZ LAB_0080c80c MOV qword ptr [R14 + 0xc8],0x0 XOR EAX,EAX MOV dword ptr [R14 + 0xd0],0x0 MOV qword ptr [R14 + 0xe8],0x0 MOV dword ptr [R14 + 0xf0],0x0 MOV qword ptr [R14 + 0xd8],0x0 MOV dword ptr [R14 + 0xe0],0x0 MOV word ptr [R14 + 0xe4],AX ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 RET ?? 66h f Actual src: void idLBCache::Reset() { for( int i = 0; i < NUM_ROW_BLOCKS; i++ ) { rowBlocks[i].startIndex = 0; rowBlocks[i].rows.Clear(); } def = NULL; filter = DEFAULT_LEADERBOARD_FILTER; pendingDef = NULL; pendingFilter = DEFAULT_LEADERBOARD_FILTER; rowOffset = 0; requestingRows = false; numRowsInLeaderboard = 0; entryIndex = 0; loadingNewLeaderboard = false; } Predicted src: void CData::clear() { int i; for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) { m_id[i]->clear(); } } } } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined get_cursor_from_program() ;local_48 undefined1 -48 ;local_4c undefined4 -4c PUSH R13 PUSH R12 PUSH RBP MOV RBP,RDI PUSH RBX MOV RBX,RSI SUB RSP,0x38 MOV RAX,qword ptr [.bss:cobglobptr] ;=?? MOV RAX,qword ptr [RAX + 0x8] TEST RAX,RAX JZ LAB_001451d8 MOV R12,qword ptr [RAX + 0x48] TEST R12,R12 JZ LAB_001451d8 MOV RAX,qword ptr [R12 + 0x10] TEST byte ptr [RAX],0x10 JNZ LAB_001451f0 MOV R13,qword ptr [R12] MOV EAX,R13D AND EAX,0xfffffffd CMP EAX,0x4 JNZ LAB_00145228 MOV RSI,qword ptr [R12 + 0x8] MOVSXD RDX,R13D LEA RDI=>local_48,[RSP + 0x10] MOV ECX,0x20 ADD R13D,0x1 CALL .plt:::__memcpy_chk ;undefined __memcpy_chk() MOVSXD R13,R13D LEA RDX=>local_4c,[RSP + 0xc] LEA RSI,[.rodata:s_%d_0014e6af+17] ;= "%d" MOV RDI,RAX XOR EAX,EAX MOV byte ptr [RSP + R13*0x1 + 0x10],0x0 CALL .plt:::__isoc99_sscanf ;undefined __isoc99_sscanf() TEST EAX,EAX JZ LAB_00145228 MOV EAX,dword ptr [RSP + local_4c+0x58] CMP qword ptr [R12],0x4 MOVSXD RDX,EAX JZ LAB_00145202 LAB_001451a2: IMUL RDX,RDX,0x10624dd3 MOV ECX,EAX SAR ECX,0x1f SAR RDX,0x26 SUB EDX,ECX LEA ECX,[RDX + -0x1] IMUL EDX,EDX,0x3e8 SUB EAX,EDX SUB EAX,0x1 LAB_001451c2: MOV dword ptr [RBP],ECX MOV dword ptr [RBX],EAX ADD RSP,0x38 POP RBX POP RBP POP R12 POP R13 RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001451d8: MOV dword ptr [RBP],0xffffffff MOV dword ptr [RBX],0xffffffff ADD RSP,0x38 POP RBX POP RBP POP R12 POP R13 RET LAB_001451f0: MOV RDI,R12 CALL .plt:cob_get_int ;undefined cob_get_int() CMP qword ptr [R12],0x4 MOVSXD RDX,EAX JNZ LAB_001451a2 LAB_00145202: IMUL RDX,RDX,0x51eb851f MOV ECX,EAX SAR ECX,0x1f SAR RDX,0x25 SUB EDX,ECX LEA ECX,[RDX + -0x1] IMUL EDX,EDX,0x64 SUB EAX,EDX SUB EAX,0x1 JMP LAB_001451c2 ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00145228: MOV EDI,0x3 CALL .plt:cob_fatal_error ;undefined cob_fatal_error() NOP dword ptr CS:[RAX + RAX*0x1] Actual src: static void get_cursor_from_program (int *line, int *column) { if (COB_MODULE_PTR && COB_MODULE_PTR->cursor_pos) { cob_field *cursor_field = COB_MODULE_PTR->cursor_pos; int cursor_pos; if (COB_FIELD_IS_NUMERIC (cursor_field)) { cursor_pos = cob_get_int (cursor_field); } else { char buff[32]; int maxsize = cursor_field->size; /* LCOV_EXCL_START */ if (unlikely (maxsize!= 4 && maxsize!= 6)) { cob_fatal_error (COB_FERROR_CODEGEN); } /* LCOV_EXCL_STOP */ memcpy (buff, cursor_field->data, maxsize); buff[maxsize + 1] = 0; if (unlikely (!sscanf (buff, "%d", &cursor_pos))) { cob_fatal_error (COB_FERROR_CODEGEN); } } if (cursor_field->size == 4) { *line = (cursor_pos / 100) - 1; *column = (cursor_pos % 100) - 1; } else { *line = (cursor_pos / 1000) - 1; *column = (cursor_pos % 1000) - 1; } } else { *column = *line = -1; } } Predicted src: static int get_from_from_cursor(const char *name) { int n = 0; int i; if (get_cursor(name, &n, &n) == 0) return -1; for (i = 0; i < n; i++) { if (get_cursor(name, &n) == 0) return -1; } return n; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined tti_rnum() PUSH R13 PUSH R12 XOR R12D,R12D PUSH RBP MOV RBP,RDI PUSH RBX SUB RSP,0x8 MOV byte ptr [RDI],0xff NOP dword ptr [RAX + RAX*0x1] LAB_00108968: CALL sim_poll_kbd ;undefined sim_poll_kbd() TEST EAX,EAX JZ LAB_00108968 TEST AH,0x20 JNZ LAB_00108968 CMP EAX,0xfff JLE LAB_001089c2 AND EAX,0x7f CMP AL,0xd JZ LAB_001089d0 CMP AL,0x7e JZ LAB_001089e0 CMP AL,0x60 JZ LAB_001089e0 MOV R13,qword ptr [.data:tti_to_num] ;= 0011d820 MOVSX EBX,AL MOV ESI,EBX MOV RDI=>.rodata:s_0123456789|=@:;}_0011d820,R13 ;= "0123456789|=@:;}" CALL .plt:::strchr ;char * strchr(char * __s, int __c) MOV EDI,0x7 TEST RAX,RAX JZ LAB_001089b5 SUB RAX,R13 MOV EDI,EBX OR EAX,R12D MOV byte ptr [RBP],AL LAB_001089b5: CALL tto_write ;undefined tto_write() CMP byte ptr [RBP],0xff JZ LAB_00108968 XOR EAX,EAX LAB_001089c2: ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 00h LAB_001089d0: MOV byte ptr [RBP],0x7f MOV EDI,0xd JMP LAB_001089b5 ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001089e0: MOVSX EDI,AL MOV R12D,0x10 JMP LAB_001089b5 ?? 0Fh Actual src: t_stat tti_rnum (int8 *c) { int8 raw, flg = 0; char *cp; t_stat r; *c = -1; /* no char yet */ do { r = tti_read (&raw); /* get char */ if (r!= SCPE_OK) /* error? */ return r; if (raw == '\r') /* return? mark */ *c = 0x7F; else if ((raw == '~') || (raw == '`')) /* flag? mark */ flg = FLAG; else if (cp = strchr (tti_to_num, raw)) /* legal? */ *c = ((int8) (cp - tti_to_num)) | flg; /* assemble char */ else raw = 007; /* beep! */ tto_write (raw); /* echo */ } while (*c == -1); return SCPE_OK; } Predicted src: static int write_to_data(const char *name) { int len = strlen(name); int len = strlen(name); if (len == 0) return -1; if (len > len) len = strlen(name); if (len > len) len = strlen(name); return len; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined vector_delete() TEST RDI,RDI JZ LAB_001bd150 PUSH RBP MOV RBP,RDI CALL .plt:IvocVect::~IvocVect ;undefined ~IvocVect(IvocVect * this) MOV RDI,RBP MOV ESI,0x28 POP RBP JMP .plt:::operator.delete ;void operator.delete(void * param_1,... ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_001bd150: RET ?? 66h f Actual src: void vector_delete(Vect* v){delete v;} Predicted src: void deletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedeletedelet