============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined files_load_ticket() ;local_20 undefined8 -20 ;local_78 undefined1 -78 ;local_80 undefined8 -80 ;local_82 undefined2 -82 PUSH R13 PUSH R12 PUSH RBP SUB RSP,0x70 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x88],RAX XOR EAX,EAX MOV EAX,0x4c MOV word ptr [RSP + local_82+0x88],AX TEST RDI,RDI JZ LAB_00137334 LEA RBP=>local_78,[RSP + 0x10] MOV R13,RSI LEA RDX=>local_82,[RSP + 0x6] MOV RSI,RBP CALL files_load_bytes_from_path.part.0 ;undefined files_load_bytes_from_path... MOV R12D,EAX TEST AL,AL JNZ LAB_00137358 LAB_00137334: XOR R12D,R12D LAB_00137337: MOV RAX,qword ptr [RSP + local_20+0x88] SUB RAX,qword ptr FS:[0x28] JNZ LAB_001373b9 ADD RSP,0x70 MOV EAX,R12D POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00137358: MOVZX ESI,word ptr [RSP + local_82+0x88] LEA RDX=>local_80,[RSP + 0x8] MOV RCX,R13 MOV RDI,RBP MOV qword ptr [RSP + local_80+0x88],0x0 CALL .plt:::Tss2_MU_TPMT_TK_VERIFIED_Unmarshal ;undefined Tss2_MU_TPMT_TK_VERIFIED_U... TEST EAX,EAX JZ LAB_00137337 LEA RBP,[.rodata:s_lib/files.c_00160723] ;= "lib/files.c" MOV R8D,EAX XOR EDI,EDI XOR EAX,EAX MOV RSI=>.rodata:s_lib/files.c_00160723,RBP ;= "lib/files.c" LEA RCX,[.rodata:s_Error_deserializing_ticket_struc_00160ec0] ;= "Error deserializing ticket struct... MOV EDX,0x2f4 CALL _log ;double _log(double __x) LEA RCX,[.rodata:s_The_input_file_needs_to_be_a_val_00160ef0] ;= "The input file needs to be a vali... XOR EDI,EDI XOR EAX,EAX MOV EDX,0x2f4 MOV RSI=>.rodata:s_lib/files.c_00160723,RBP ;= "lib/files.c" CALL _log ;double _log(double __x) JMP LAB_00137334 LAB_001373b9: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP Actual src: LOAD_TYPE(TPMT_TK_VERIFIED, ticket) Predicted src: static PyObject * _load_from_file(PyObject *self, PyObject *args) { char buf[PATH_MAX]; char buf[PATH_MAX]; if (!PyArg_ParseTuple(args, "s:load_from_file", &buf, sizeof(buf)) return NULL; return _load_from_file(buf, buf, sizeof(buf), buf); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ppc32_exec_LWZUX() PUSH R12 MOV EAX,ESI PUSH RBP MOV EBP,ESI SHR EAX,0xb SHR EBP,0x10 AND EAX,0x1f SHR ESI,0x15 PUSH RBX AND EBP,0x1f MOV RBX,RDI MOV EDX,ESI MOV R12D,dword ptr [RDI + RBP*0x4 + 0x4] ADD R12D,dword ptr [RDI + RAX*0x4 + 0x4] AND EDX,0x1f MOV ESI,R12D CALL qword ptr [RDI + 0x208] MOV dword ptr [RBX + RBP*0x4 + 0x4],R12D XOR EAX,EAX POP RBX POP RBP POP R12 RET ?? 66h f Actual src: static fastcall int ppc32_exec_LWZUX(cpu_ppc_t *cpu,ppc_insn_t insn) { int rd = bits(insn,21,25); int ra = bits(insn,16,20); int rb = bits(insn,11,15); m_uint32_t vaddr; vaddr = cpu->gpr[ra] + cpu->gpr[rb]; ppc32_exec_memop(cpu,PPC_MEMOP_LWZ,vaddr,rd); cpu->gpr[ra] = vaddr; return(0); } Predicted src: static uint32_t arm_exec_32_exec(struct cpu *cpu, struct arm_instr_call *ic) { uint32_t tmp; uint32_t tmp; uint32_t tmp; tmp = cpu->cd.arm.r[32]; tmp = cpu->cd.arm.r[32]; tmp |= tmp; tmp |= tmp; tmp |= tmp; tmp |= tmp; tmp |= tmp; tmp |= tmp; tmp |= tmp; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined IntelGen_HwAddMediaObjectCmdBb_g75() PUSH RBP MOV RBP,RDX PUSH RBX MOV RBX,RSI SUB RSP,0x8 TEST RDI,RDI JZ LAB_00133b08 LAB_001339f5: TEST RBX,RBX JZ LAB_00133ad0 CMP qword ptr [RBX + 0xa8],0x0 JZ LAB_00133af0 LAB_00133a0c: TEST RBP,RBP JZ LAB_00133ab8 LAB_00133a15: CMP dword ptr [RBP + 0x4],0x17 JBE LAB_00133a80 LAB_00133a1b: MOV EDX,dword ptr [RBX + 0x9c] MOV EAX,dword ptr [RBX + 0x98] SUB EAX,EDX CMP EAX,0x17 JLE LAB_00133a98 LAB_00133a2e: MOV RCX,qword ptr [->g_cInit_MEDIA_OBJECT_HEADER_G6] ;= 00165210 MOVSXD RAX,EDX MOV ESI,dword ptr [RBP] ADD EDX,0x18 ADD RAX,qword ptr [RBX + 0xa8] MOVDQU XMM0,xmmword ptr [RCX]=>.rodata:g_cInit_MEDIA_OBJECT_HEADER_G6 MOV RCX,qword ptr [RCX + 0x10]=>.rodata:g_cInit_MEDIA_OBJECT_HEADER_G6[16] AND ESI,0x3f MOV qword ptr [RAX + 0x10],RCX MOV ECX,dword ptr [RBP + 0x4] MOVUPS xmmword ptr [RAX],XMM0 SHR ECX,0x2 SUB ECX,0x2 MOV word ptr [RAX],CX MOVZX ECX,byte ptr [RAX + 0x4] AND ECX,0xffffffc0 OR ECX,ESI MOV byte ptr [RAX + 0x4],CL MOV dword ptr [RBX + 0x9c],EDX ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00133a80: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() JMP LAB_00133a1b ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00133a98: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() MOV EDX,dword ptr [RBX + 0x9c] JMP LAB_00133a2e ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00133ab8: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() JMP LAB_00133a15 ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00133ad0: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() CMP qword ptr [RBX + 0xa8],0x0 JNZ LAB_00133a0c NOP dword ptr [RAX] LAB_00133af0: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() JMP LAB_00133a0c ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00133b08: MOV ESI,0x1 MOV EDI,0x1 CALL .plt:_GENOS_Assert ;undefined _GENOS_Assert() JMP LAB_001339f5 ?? 0Fh Actual src: VOID IntelGen_HwAddMediaObjectCmdBb_g75(PGENHW_HW_INTERFACE pHwInterface, PGENHW_BATCH_BUFFER pBatchBuffer, PGENHW_HW_MEDIAOBJECT_PARAM pParam) { PBYTE pBuffer; PMEDIA_OBJECT_HEADER_G6 pCmd; GENHW_HW_ASSERT(pHwInterface); GENHW_HW_ASSERT(pBatchBuffer); GENHW_HW_ASSERT(pBatchBuffer->pData); GENHW_HW_ASSERT(pParam); GENHW_HW_ASSERT(pParam->dwMediaObjectSize >= sizeof(MEDIA_OBJECT_HEADER_G6)); GENHW_HW_ASSERT((pBatchBuffer->iSize - pBatchBuffer->iCurrent) >= (long)sizeof(MEDIA_OBJECT_HEADER_G6)); pBuffer = pBatchBuffer->pData + pBatchBuffer->iCurrent; pCmd = (PMEDIA_OBJECT_HEADER_G6) pBuffer; *pCmd = g_cInit_MEDIA_OBJECT_HEADER_G6; pCmd->DW0.DWordLength = OP_LENGTH(SIZE_IN_DW(pParam->dwMediaObjectSize)); pCmd->DW1.InterfaceDescriptorOffset = pParam->dwIDOffset; pBatchBuffer->iCurrent += sizeof(MEDIA_OBJECT_HEADER_G6); } Predicted src: void _G_Init (G_GNUC_UNUSED G_GNUC_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_GNUC_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSED G_UNUSE ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* vtkImageReslice::WrapOff() * ;************************************************************************************************************************************************************ ;undefined WrapOff(vtkImageReslice * this) ;this vtkImageRes... RDI MOV RAX,qword ptr [this] XOR ESI,ESI MOV RAX,qword ptr [RAX + 0x330] JMP RAX ?? 66h f Actual src: vtkBooleanMacro(Wrap, int); Predicted src: vtkBooleanMacro(Pass, int); ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* CL_CommandLine_Generic::next() * ;************************************************************************************************************************************************************ ;undefined next(CL_CommandLine_Generic * this) ;this CL_CommandL... RDI MOV RDX,qword ptr [this + 0x48] MOV RAX,qword ptr [this + 0x58] CMP RAX,RDX JZ LAB_0014f790 ADD RAX,0x28 CMP RDX,RAX MOV qword ptr [this + 0x58],RAX SETNZ AL RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_0014f790: MOV RDX,qword ptr [this + 0x40] CMP RAX,RDX MOV qword ptr [this + 0x58],RDX SETNZ AL RET ?? 90h Actual src: bool CL_CommandLine_Generic::next() { if (current_option == parsed_options.end()) { (current_option = parsed_options.begin()); return current_option!= parsed_options.end(); } else { return (++current_option)!= parsed_options.end(); } } Predicted src: bool Command_Command::next_next_next() { if (m_next == m_next) return true; else return m_next->next(); }