============================== Sample 1 ============================== 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_50b0_50_ff(uae_u32 opcode) { int count_cycles = 0; uae_u32 real_opcode = opcode; uae_u32 srcreg = (real_opcode & 7); OpcodeFamily = 59; CurrentInstrCycles = 12; uaecptr srca; srca = m68k_areg(regs, srcreg); 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 ^ flgn) & (flgo ^ flgn)); SET_CFLG(((uae_u16)(~dst)) < ((uae_u16)(src))); 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 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined glXGetCurrentReadDrawable() SUB RSP,0x8 LEA RDI,[.got:PTR_001407b0] ;= 00000000 CALL .plt:::__tls_get_addr ;undefined __tls_get_addr() MOV RAX,qword ptr [RAX + 0x10] ADD RSP,0x8 RET ?? 0Fh Actual src: GLXDrawable glXGetCurrentReadDrawable(void) { return tsdata.read_drawable; } Predicted src: static PyObject * glgl_get_gl(void *self, void *closure) { return Py_BuildValue("gl_read_gl"); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* vtkArrayDataAlgorithm::FillInputPortInformation(int, vtkInformation*) * ;************************************************************************************************************************************************************ ;undefined FillInputPortInformation(vtkArrayDataAlgorithm * this, int param_1, vtkInformation * param_2) ;this vtkArrayDat... RDI ;param_1 int ESI ;param_2 vtkInformat... RDX PUSH RBP MOV RBP,param_2 CALL .plt:vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE ;undefined INPUT_REQUIRED_DATA_TYPE(v... MOV this,RBP XOR ECX,ECX LEA param_2,[.rodata:s_vtkArrayData_0017a965] ;= "vtkArrayData" MOV param_1,RAX CALL .plt:::vtkInformation::Set ;undefined Set(vtkInformationStringVe... MOV EAX,0x1 POP RBP RET ?? 66h f Actual src: int vtkArrayDataAlgorithm::FillInputPortInformation( int vtkNotUsed(port), vtkInformation* info) { info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkArrayData"); return 1; } Predicted src: int vtkDataSetDataSet::FillInputPortInformation(int, vtkInformation* info) { info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataSet"); return 1; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* soap_get_PointerTomatrix(soap*, matrix**, char const*, char const*) * ;************************************************************************************************************************************************************ ;undefined soap_get_PointerTomatrix(soap * param_1, matrix * * param_2, char * param_3, char * param_4) ;param_1 soap * RDI ;param_2 matrix * * RSI ;param_3 char * RDX ;param_4 char * RCX PUSH R12 MOV R8,param_2 MOV param_2,param_3 PUSH RBP MOV param_3,R8 MOV RBP,param_1 SUB RSP,0x8 CALL soap_in_PointerTomatrix ;undefined soap_in_PointerTomatrix(so... TEST RAX,RAX JZ LAB_0010a430 MOV param_1,RBP MOV R12,RAX CALL soap_getindependent ;undefined soap_getindependent(soap *... TEST EAX,EAX JNZ LAB_0010a430 ADD RSP,0x8 MOV RAX,R12 POP RBP POP R12 RET ?? 66h f ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0010a430: XOR R12D,R12D ADD RSP,0x8 MOV RAX,R12 POP RBP POP R12 RET ?? 66h f Actual src: matrix ** SOAP_FMAC4 soap_get_PointerTomatrix(struct soap *soap, matrix **p, const char *tag, const char *type) { if ((p = soap_in_PointerTomatrix(soap, tag, p, type))) if (soap_getindependent(soap)) return NULL; return p; } Predicted src: struct srm2__srmResponse * SOAP_FMAC4 soap_get_in_srm2__srmResponse(struct soap *soap, struct srm2__srmResponse **p, const char *tag, const char *type) { if ((p = soap_in_srm2__srmResponse(soap, tag, p, type))) if (soap_getindependent(soap)) return NULL; return p; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined e_attachment_bar_interface_init() LEA RAX,[attachment_bar_get_private] MOV qword ptr [RDI + 0x10],RAX=>attachment_bar_get_private LEA RAX,[attachment_bar_get_store] MOV qword ptr [RDI + 0x18],RAX=>attachment_bar_get_store LEA RAX,[attachment_bar_get_path_at_pos] MOV qword ptr [RDI + 0x20],RAX=>attachment_bar_get_path_at_pos LEA RAX,[attachment_bar_get_selected_paths] MOV qword ptr [RDI + 0x28],RAX=>attachment_bar_get_selected_paths LEA RAX,[attachment_bar_path_is_selected] MOV qword ptr [RDI + 0x30],RAX=>attachment_bar_path_is_selected LEA RAX,[attachment_bar_select_path] MOV qword ptr [RDI + 0x38],RAX=>attachment_bar_select_path LEA RAX,[attachment_bar_unselect_path] MOV qword ptr [RDI + 0x40],RAX=>attachment_bar_unselect_path LEA RAX,[attachment_bar_select_all] MOV qword ptr [RDI + 0x48],RAX=>attachment_bar_select_all LEA RAX,[attachment_bar_unselect_all] MOV qword ptr [RDI + 0x50],RAX=>attachment_bar_unselect_all LEA RAX,[attachment_bar_update_actions] MOV qword ptr [RDI + 0x78],RAX=>attachment_bar_update_actions RET ?? 90h Actual src: static void e_attachment_bar_interface_init (EAttachmentViewInterface *iface) { iface->get_private = attachment_bar_get_private; iface->get_store = attachment_bar_get_store; iface->get_path_at_pos = attachment_bar_get_path_at_pos; iface->get_selected_paths = attachment_bar_get_selected_paths; iface->path_is_selected = attachment_bar_path_is_selected; iface->select_path = attachment_bar_select_path; iface->unselect_path = attachment_bar_unselect_path; iface->select_all = attachment_bar_select_all; iface->unselect_all = attachment_bar_unselect_all; iface->update_actions = attachment_bar_update_actions; } Predicted src: static void e_bar_store_init (EbarStore *store) { store->priv = e_bar_store_get_instance_private (store); store->priv = e_bar_store_get_instance_private_private (store); store->selected_selected = e_bar_store_selected; store->selected_selected = e_bar_store_selected; store->selected_selected = e_bar_store_selected; store->selected_selected = e_bar_store_selected; }