============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined op_0218_33_ff() PUSH R13 PUSH R12 PUSH RBP PUSH RBX MOV EBX,EDI AND EBX,0x7 SUB RSP,0x8 MOV EAX,dword ptr [.bss:regs[64]] MOV dword ptr [.bss:OpcodeFamily],0x2 MOV dword ptr [.bss:CurrentInstrCycles],0x10 LEA EDI,[RAX + 0x2] CALL mmu_get_iword.constprop.0 ;undefined mmu_get_iword.constprop.0() LEA RDX,[.bss:regs] MOV dword ptr [.bss:mmufixup],EBX MOV R12D,EAX LEA EAX,[RBX + 0x8] MOV byte ptr [.bss:rmw_cycle],0x1 LEA R13,[RDX + RAX*0x4] MOV EBP,dword ptr [R13]=>.bss:regs MOV EDI,EBP MOV dword ptr [.bss:mmufixup[4]],EBP CALL mmu_get_byte.constprop.0 ;undefined mmu_get_byte.constprop.0() LEA RDX,[.rodata:areg_byteinc] XOR ECX,ECX MOV EDI,EBP AND EAX,R12D MOV EDX=>.rodata:areg_byteinc,dword ptr [RDX + RBX*0x4] ADD dword ptr [R13],EDX=>.bss:regs MOV EDX,EAX MOVZX ESI,AL MOV byte ptr [.bss:rmw_cycle],0x1 SAR DL,0x7 MOVSX EDX,DL SHL EDX,0xf TEST AL,AL SETZ CL MOVZX EDX,DX SHL ECX,0xe OR EDX,ECX MOV dword ptr [.bss:regflags],EDX CALL mmu_put_byte.constprop.0 ;undefined mmu_put_byte.constprop.0() ADD dword ptr [.bss:regs[64]],0x4 MOV EAX,0x2000 MOV byte ptr [.bss:rmw_cycle],0x0 MOV dword ptr [.bss:mmufixup],0xffffffff ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 66h f Actual src: uae_u32 REGPARAM2 op_0218_33_ff(uae_u32 opcode) { int count_cycles = 0; uae_u32 real_opcode = opcode; uae_u32 dstreg = real_opcode & 7; OpcodeFamily = 2; CurrentInstrCycles = 16; uae_s8 src = get_ibyte_mmu060(2); uaecptr dsta; dsta = m68k_areg(regs, dstreg); mmufixup[0].reg = dstreg | 0x0; mmufixup[0].value = m68k_areg(regs, dstreg); uae_s8 dst = get_rmw_byte_mmu060(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= dst; CLEAR_CZNV(); SET_ZFLG(((uae_s8)(src)) == 0); SET_NFLG(((uae_s8)(src)) < 0); put_rmw_byte_mmu060(dsta, src); m68k_incpci(4); mmufixup[0].reg = -1; return (2 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } Predicted src: uae_u32 REGPARAM2 op_5f0_50_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_s32)(uae_s16)get_diword(2); uae_s8 src = get_byte_jit(srca); uaecptr dsta; dsta = m68k_areg(regs, dstreg) - 4; CLEAR_CZNV(); SET_ZFLG(((uae_s8)(src)) == 0); SET_NFLG(((uae_s8)(src)) < 0); put_byte_jit(dsta, src); m68k_incpc(4); return (8 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;void clipboard_destroy(object * obj) ;obj object * RDI PUSH R13 MOV R13,obj PUSH R12 LEA R12,[R13 + 0x70] PUSH RBP PUSH RBX SUB RSP,0x8 MOV obj,qword ptr [obj->refcount + 0x90] CALL .plt:::free ;void free(void * __ptr) MOV RBP,qword ptr [R13 + 0x70] MOV RBX,qword ptr [RBP] CMP RBP,R12 JZ LAB_0011736b NOP word ptr [RAX + RAX*0x1] LAB_00117340: MOV RAX,qword ptr [RBP + 0x8] MOV qword ptr [RBX + 0x8],RAX MOV RDX,qword ptr [RBP] MOV qword ptr [RAX],RDX MOV obj,qword ptr [RBP + 0x20] CALL .plt:::free ;void free(void * __ptr) MOV obj,RBP MOV RBP,RBX CALL .plt:::free ;void free(void * __ptr) MOV RBX,qword ptr [RBX] CMP RBP,R12 JNZ LAB_00117340 LAB_0011736b: MOV qword ptr [R13 + 0x80],0x0 ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 66h f Actual src: static void clipboard_destroy( struct object *obj ) { struct clipboard *clipboard = (struct clipboard *)obj; free( clipboard->listeners ); free_clipboard_formats( clipboard ); } Predicted src: void object_destroy(struct object *obj) { struct object *obj; for (obj = obj->next; obj; obj = obj->next) { obj->next = obj->next; obj->next = obj->next; free(obj); } } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined acb_poly_validate_real_roots() MOV RCX,RDX MOV RDX,qword ptr [RSI + 0x8] MOV RSI,qword ptr [RSI] JMP .plt:LAB_0013a6d0 ?? 90h Actual src: int acb_poly_validate_real_roots(acb_srcptr roots, const acb_poly_t poly, slong prec) { return _acb_poly_validate_real_roots(roots, poly->coeffs, poly->length, prec); } Predicted src: void fmpz_poly_poly_real_poly_poly(fmpz_poly_t A, const fmpz_poly_t A, const fmpz_poly_t A, const fmpz_poly_t A) { fmpz_poly_real(A->poly, A->poly, A->poly, A->poly, A->poly, A->poly, A->poly); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined MGA3026HideCursor() MOV RDX,qword ptr [RDI + 0x118] MOV RAX,qword ptr [RDX + 0xb0] MOV byte ptr [RAX + 0x3c00],0x6 MOV RCX,qword ptr [RDX + 0xb0] MOVZX EAX,byte ptr [RCX + 0x3c0a] MOV byte ptr [RCX + 0x3c00],0x6 MOV RDX,qword ptr [RDX + 0xb0] AND EAX,0xfffffffc MOV byte ptr [RDX + 0x3c0a],AL RET ?? 0Fh Actual src: static void MGA3026HideCursor(ScrnInfoPtr pScrn) { MGAPtr pMga = MGAPTR(pScrn); /* Disable cursor */ outTi3026(TVP3026_CURSOR_CTL, 0xfc, 0x00); } Predicted src: static void do_use_button(Widget w, XtPointer client_data, XtPointer call_data) { client_data *client = (client_data *) client_data; client->use_button = client->use_button; client->use_button = client->use_button; client->use_button = client->use_button; client->use_button = client->use_button; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _wrap_plfit_continuous_options_t___str__() ;local_10 undefined8 -10 ;local_18 undefined8 -18 PUSH RBP SUB RSP,0x10 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x18],RAX XOR EAX,EAX MOV qword ptr [RSP]=>local_18,0x0 TEST RSI,RSI JZ LAB_0010a4b8 MOV RDX,qword ptr [.bss:swig_types] ;=?? MOV RDI,RSI XOR ECX,ECX MOV RSI,RSP CALL SWIG_Python_ConvertPtrAndOwn.constprop.0 ;undefined SWIG_Python_ConvertPtrAndO... MOV EDI,EAX TEST EAX,EAX JS LAB_0010a490 MOV RAX,qword ptr [RSP]=>local_18 SUB RSP,0x8 LEA RBP,[.bss:temp.17] ;=?? LEA RCX,[.rodata:s_finite_size_correction_=_%d,_xmi_0010e910] ;= "finite_size_correction = %d, xmin... MOV EDX,0x200 MOV ESI,0x1 MOV RDI=>.bss:temp.17,RBP ;=?? MOVSD XMM0,qword ptr [RAX + 0x10] MOV R9D,dword ptr [RAX + 0x4] MOVZX R8D,word ptr [RAX] MOV EAX,dword ptr [RAX + 0x8] PUSH RAX MOV EAX,0x1 CALL .plt:::__sprintf_chk ;undefined __sprintf_chk() MOV RDI=>.bss:temp.17,RBP ;=?? CALL .plt:::strlen ;size_t strlen(char * __s) LEA RDX,[.rodata:s_surrogateescape_0010c24e] ;= "surrogateescape" MOV RDI=>.bss:temp.17,RBP ;=?? MOV RSI,RAX CALL .plt:::PyUnicode_DecodeUTF8 ;undefined PyUnicode_DecodeUTF8() POP RDX POP RCX LAB_0010a47a: MOV RDX,qword ptr [RSP + local_10+0x18] SUB RDX,qword ptr FS:[0x28] JNZ LAB_0010a4bc ADD RSP,0x10 POP RBP RET LAB_0010a490: CMP EAX,-0x1 MOV EAX,0xfffffffb LEA RSI,[.rodata:s_in_method_'plfit_continuous_opti_0010e8a0] ;= "in method 'plfit_continuous_optio... CMOVZ EDI,EAX CALL SWIG_Python_ErrorType ;undefined SWIG_Python_ErrorType() MOV RDI,RAX CALL .plt:::PyErr_SetString ;undefined PyErr_SetString() XOR EAX,EAX JMP LAB_0010a47a ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0010a4b8: XOR EAX,EAX JMP LAB_0010a47a LAB_0010a4bc: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr CS:[RAX + RAX*0x1] Actual src: SWIGINTERN PyObject *_wrap_plfit_continuous_options_t___str__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; struct _plfit_continuous_options_t *arg1 = (struct _plfit_continuous_options_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; char *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p__plfit_continuous_options_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "plfit_continuous_options_t___str__" "', argument " "1"" of type '" "struct _plfit_continuous_options_t *""'"); } arg1 = (struct _plfit_continuous_options_t *)(argp1); result = (char *)_plfit_continuous_options_t___str__(arg1); resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } Predicted src: SWIGINTERN PyObject *_wrap_ldns_ldns_size_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; struct _ldns_size_t arg1 = (struct _ldns_size_t) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; char *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldns_ldns_struct _ldns_size, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ldns_size_t""'"); } arg1 = (struct _ldns_size_t) ((arg1)->size); resultobj = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldns_struct _ldns_size_t, 0 | 0 ); return resultobj; fail: return NULL; }