============================== 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 rte_dev_release(struct rte_eth_dev *dev) { struct rte_eth_dev *dev = dev->data->dev_private; struct rte_eth_dev *dev = dev->data->dev_private; rte_free(dev); rte_free(dev); return 0; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined op_907a_33_ff() MOV EAX,dword ptr [.bss:regs[64]] PUSH R12 SHR EDI,0x9 PUSH RBP AND EDI,0x7 PUSH RBX LEA R12D,[RAX + 0x2] MOV EBP,EDI LEA RBX,[.bss:regs] MOV dword ptr [.bss:OpcodeFamily],0x7 MOV EDI,R12D MOV dword ptr [.bss:CurrentInstrCycles],0xc CALL mmu_get_iword.constprop.0 ;undefined mmu_get_iword.constprop.0() MOVSX EDI,AX ADD EDI,R12D CALL uae_mmu060_get_word ;undefined uae_mmu060_get_word() MOV EDI,EBP XOR ESI,ESI MOV EDX,dword ptr [RBX + RDI*0x4]=>.bss:regs MOV R8D,EAX MOVZX EAX,AX MOV R9D,R8D MOVZX ECX,DX SUB ECX,EAX MOV EAX,dword ptr [.bss:regflags] SETZ SIL XOR R9D,EDX SHL ESI,0xe AND EAX,0xffffbffe OR EAX,ESI MOV ESI,EDX XOR ESI,ECX AND ESI,R9D MOVSX ESI,SI SHR ESI,0x1f OR EAX,ESI XOR ESI,ESI AND AH,0xfe CMP R8W,DX SETA SIL XOR DX,DX ADD dword ptr [.bss:regs[64]],0x4 SHL ESI,0x8 OR EAX,ESI MOV ESI,EAX AND AH,0x7f SHR ESI,0x8 MOV dword ptr [.bss:regflags+4],ESI MOV ESI,ECX MOVZX ECX,CX AND ESI,0x8000 OR EDX,ECX OR EAX,ESI MOV dword ptr [RBX + RDI*0x4]=>.bss:regs,EDX POP RBX MOV dword ptr [.bss:regflags],EAX POP RBP MOV EAX,0x1000 POP R12 RET ?? 0Fh Actual src: uae_u32 REGPARAM2 op_907a_33_ff(uae_u32 opcode) { int count_cycles = 0; uae_u32 real_opcode = opcode; uae_u32 dstreg = (real_opcode >> 9) & 7; OpcodeFamily = 7; CurrentInstrCycles = 12; uaecptr srca; srca = m68k_getpci() + 2; srca += (uae_s32)(uae_s16)get_iword_mmu060(2); uae_s16 src = get_word_mmu060(srca); uae_s16 dst = m68k_dreg(regs, dstreg); uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG(((uae_s16)(newv)) == 0); SET_VFLG((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG(((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY(); SET_NFLG(flgn!= 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); m68k_incpci(4); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } Predicted src: uae_u32 REGPARAM2 op_b1f0_31_ff(uae_u32 opcode) { int count_cycles = 0; uae_u32 real_opcode = opcode; uae_u32 srcreg = (real_opcode & 7); uae_u32 dstreg = (real_opcode >> 9) & 7; OpcodeFamily = 30; CurrentInstrCycles = 12; uaecptr srca; srca = m68k_areg(regs, srcreg); uae_s16 src = get_word_mmu040(srca); uae_s16 dst = m68k_dreg(regs, dstreg); uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG(((uae_s16)(newv)) == 0); SET_VFLG((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG(((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY(); SET_NFLG(flgn!= 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); m68k_incpci(2); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* UserSerializer::serialize(GenericIO&, GameLogicState&) * ;************************************************************************************************************************************************************ ;undefined serialize(GenericIO * param_1, GameLogicState * param_2) ;param_1 GenericIO * RDI ;param_2 GameLogicSt... RSI JMP doSerializeGameLogicState ?? 66h f Actual src: USER_SERIALIZER_IMPLEMENTATION_HELPER(GameLogicState) Predicted src: void GameGameGameGame::gameGame(GameState& state, GameState& state) { gameGameGame::gameGame(state, state); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _champVLAFree() MOV R8,RDI MOV ECX,0x2 LEA RDI,[RDX + -0x10] MOV EDX,ESI MOV RSI,R8 JMP OSMemoryFree ;undefined OSMemoryFree() ?? 66h f Actual src: void _champVLAFree(const char *file,int line,void *ptr) #endif { VLARec *vla; vla = &(((VLARec*)ptr)[-1]); #ifndef _os_memory_debug_on os_free(vla); #else OSMemoryFree(vla,file,line,_OSMemoryVLA); #endif } Predicted src: static void _FreeMemoryMemory(void *ptr, size_t size) { memset(ptr, 0, size); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined igListBoxFnBoolPtr(char * param_1, int * param_2, FuncDef47 * param_3, void * param_4, int param_5, int param_6) ;param_1 char * RDI ;param_2 int * RSI ;param_3 FuncDef47 * RDX ;param_4 void * RCX ;param_5 int R8D ;param_6 int R9D JMP ImGui::ListBox ?? 66h f Actual src: CIMGUI_API bool igListBoxFnBoolPtr(const char* label,int* current_item,bool(*items_getter)(void* data,int idx,const char** out_text),void* data,int items_count,int height_in_items) { return ImGui::ListBox(label,current_item,items_getter,data,items_count,height_in_items); } Predicted src: CIMGUI_API bool igCreatePtr(const char* label_id,const char* label_id,const char* label_id,const char* label_id,const char* label_id,const char* label_id,const char* label_id,const char* label_id) { return ImGui::CreatePtr(label_id, label_id, label_id, label_id, label_id, label_id, label_id, label_id); }