============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* Pattern::canBeEmpty(States const&) const * ;************************************************************************************************************************************************************ ;undefined canBeEmpty(Pattern * this, States * param_1) ;this Pattern * RDI ;param_1 States * RSI MOV RAX,this MOV this,param_1 CMP qword ptr [RAX + 0x20],0x0 JZ LAB_0013fdb0 MOV param_1,qword ptr [RAX + 0x10] JMP Pattern::empty ;undefined empty(States * param_1, ul... ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0013fdb0: MOV EAX,0x1 RET ?? 66h f Actual src: bool Pattern::canBeEmpty(States const &states) const { return (fixedLength() && length() == 0) or empty(states, d_pair.first); } Predicted src: bool can::can_empty(constcan::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::can::cancan::can::can::can::can::can::cancan::can::can::cancan::can::can::can::cancan::can::can::can::can::can::can::cancan::can::can::can::cancan::can::can::cancan::can::can::can::cancan::can::cancan::can::can::cancan::can::cancan::can::cancan::can::cancan::can::cancan::can::cancan::can::cancan::can::cancan::can::cancan::can::cancan::can::cancan::cancan::cancan::can::cancan::cancan::cancan::cancan::cancan::cancan::cancan::cancan::cancancan::cancan::cancancan::cancancan::cancancan::cancancan::cancancancan::can::cancancan::cancan::cancancan::cancancancancancancan::cancancancancancancancan::cancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancancanca ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined mi_free_size_aligned() MOV R8,RDX MOV RAX,RDI XOR EDX,EDX PUSH R12 DIV R8 PUSH RBP MOV R12,RSI SUB RSP,0x8 MOV RBP,RDI TEST RDX,RDX JNZ LAB_003191c0 ADD RSP,0x8 MOV RSI,R12 MOV RDI,RBP POP RBP POP R12 JMP mi_free_size ;undefined mi_free_size() ?? 90h LAB_003191c0: LEA RCX,[.rodata:__func__.3] ;= "mi_free_size_aligned" MOV EDX,0x219 LEA RSI,[.rodata:s_./extlib/mimalloc/src/alloc.c_003c138d] ;= "./extlib/mimalloc/src/alloc.c" LEA RDI,[.rodata:s_((uintptr_t)p_%_alignment)_==_0_003c1330] ;= "((uintptr_t)p % alignment) == 0" CALL _mi_assert_fail ;undefined _mi_assert_fail() ?? EBh ?? CCh ?? 66h f Actual src: void mi_free_size_aligned(void* p, size_t size, size_t alignment) mi_attr_noexcept { UNUSED_RELEASE(alignment); mi_assert(((uintptr_t)p % alignment) == 0); mi_free_size(p,size); } Predicted src: void _p11_alloc_size (p11_t *p11, size_t size, size_t size) { p11_free_size (p11, size); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined soundio_get_bytes_per_sample() MOV EAX,0xffffffff CMP EDI,0x12 JA LAB_00107a66 MOV EDI,EDI LEA RAX,[.rodata:CSWTCH.51] MOV EAX=>.rodata:CSWTCH.51,dword ptr [RAX + RDI*0x4]=>DAT_005602d8 LAB_00107a66: RET ?? 66h f Actual src: int soundio_get_bytes_per_sample(enum SoundIoFormat format) { switch (format) { case SoundIoFormatU8: return 1; case SoundIoFormatS8: return 1; case SoundIoFormatS16LE: return 2; case SoundIoFormatS16BE: return 2; case SoundIoFormatU16LE: return 2; case SoundIoFormatU16BE: return 2; case SoundIoFormatS24LE: return 4; case SoundIoFormatS24BE: return 4; case SoundIoFormatU24LE: return 4; case SoundIoFormatU24BE: return 4; case SoundIoFormatS32LE: return 4; case SoundIoFormatS32BE: return 4; case SoundIoFormatU32LE: return 4; case SoundIoFormatU32BE: return 4; case SoundIoFormatFloat32LE: return 4; case SoundIoFormatFloat32BE: return 4; case SoundIoFormatFloat64LE: return 8; case SoundIoFormatFloat64BE: return 8; case SoundIoFormatInvalid: return -1; } return -1; } Predicted src: int sample_get_sample_bytes(sample_type type) { switch (type) { case -1: return -1; case -1: return -1; case -1: return -1; default: return -1; } } ============================== Sample 4 ============================== ASM: MOV word ptr [RBP + local_3f0+0x8],AX LEA param_3=>local_3f0,[RBP + -0x3e8] LEA RAX=>local_3ee,[RBP + -0x3e6] MOV param_2,param_3 MOV param_1,RAX CALL poly_int<1u,unsigned_short>::poly_int ;undefined poly_int(p... MOVZX EAX,word ptr [RBP + local_3ee+0x8] MOV word ptr [RBP + local_3f2+0x8],AX LEA param_3=>local_3f8,[RBP + -0x3f0] LEA RAX=>local_3f2,[RBP + -0x3ea] MOV param_2,param_3 MOV param_1,RAX CALL operator* ;poly_int operator*(poly_int_pod * pa... MOV qword ptr [RBP + local_400+0x8],RAX LEA param_3=>local_400,[RBP + -0x3f8] LEA RAX=>local_402,[RBP + -0x3fa] MOV param_2,param_3 Actual src: scope_kind innermost_scope_kind (void) { return current_binding_level->kind; } Predicted src: void visit(TypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTypeTyp ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _cffi_f_ncplane_greyscale() ;local_20 undefined1 -20 ;local_30 undefined8 -30 ;local_38 undefined8 -38 ;local_40 undefined8 -40 PUSH RBP MOV RBP,RSP PUSH R13 PUSH R12 LEA R13=>local_40,[RBP + -0x38] MOV R12,RSI PUSH RBX MOV RDX,R13 SUB RSP,0x28 MOV RDI,qword ptr [.data:_cffi_types[200]] MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RBP + local_30+0x8],RAX XOR EAX,EAX MOV qword ptr [RBP + local_38+0x8],0x0 CALL qword ptr [.bss:_cffi_exports[184]] TEST RAX,RAX JZ LAB_00142f48 MOV RCX,RAX XOR EAX,EAX CMP RCX,0x280 JBE LAB_00142f28 LAB_00142e96: LEA R8=>local_38,[RBP + -0x30] MOV RDX,R13 MOV RSI,R12 MOV qword ptr [RBP + local_40+0x8],RAX MOV RDI,qword ptr [.data:_cffi_types[200]] CALL _cffi_convert_array_argument ;undefined _cffi_convert_array_argume... TEST EAX,EAX JS LAB_00142f70 MOV RBX,qword ptr [RBP + local_38+0x8] CALL .plt:PyEval_SaveThread ;undefined PyEval_SaveThread() MOV R12,RAX CALL qword ptr [.bss:_cffi_exports[104]] MOV RDI,qword ptr [RBP + local_40+0x8] CALL .plt:ncplane_greyscale ;undefined ncplane_greyscale() CALL qword ptr [.bss:_cffi_exports[112]] MOV RDI,R12 CALL .plt:PyEval_RestoreThread ;undefined PyEval_RestoreThread() TEST RBX,RBX JZ LAB_00142f00 NOP word ptr CS:[RAX + RAX*0x1] LAB_00142ef0: MOV RDI,RBX MOV RBX,qword ptr [RBX] CALL .plt:PyObject_Free ;undefined PyObject_Free() TEST RBX,RBX JNZ LAB_00142ef0 LAB_00142f00: MOV RAX=>EXTERNAL:_Py_NoneStruct,qword ptr [->_Py_NoneStruct] ;= 001807f8 ;=?? ADD qword ptr [RAX]=>EXTERNAL:_Py_NoneStruct,0x1 ;=?? LAB_00142f0b: MOV RDX,qword ptr [RBP + local_30+0x8] SUB RDX,qword ptr FS:[0x28] JNZ LAB_00142f74 LEA RSP=>local_20,[RBP + -0x18] POP RBX POP R12 POP R13 POP RBP RET ?? 0Fh ?? 1Fh ?? 00h LAB_00142f28: LEA RAX,[RCX + 0x17] AND RAX,-0x10 SUB RSP,RAX LEA RAX,[RSP + 0xf] AND RAX,-0x10 JMP LAB_00142e96 ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00142f48: CALL .plt:PyEval_SaveThread ;undefined PyEval_SaveThread() MOV R12,RAX CALL qword ptr [.bss:_cffi_exports[104]] MOV RDI,qword ptr [RBP + local_40+0x8] CALL .plt:ncplane_greyscale ;undefined ncplane_greyscale() CALL qword ptr [.bss:_cffi_exports[112]] MOV RDI,R12 CALL .plt:PyEval_RestoreThread ;undefined PyEval_RestoreThread() JMP LAB_00142f00 ?? 90h LAB_00142f70: XOR EAX,EAX JMP LAB_00142f0b LAB_00142f74: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX] Actual src: static PyObject * _cffi_f_ncplane_greyscale(PyObject *self, PyObject *arg0) { struct ncplane * x0; Py_ssize_t datasize; struct _cffi_freeme_s *large_args_free = NULL; datasize = _cffi_prepare_pointer_call_argument( _cffi_type(25), arg0, (char **)&x0); if (datasize!= 0) { x0 = ((size_t)datasize) <= 640? (struct ncplane *)alloca((size_t)datasize) : NULL; if (_cffi_convert_array_argument(_cffi_type(25), arg0, (char **)&x0, datasize, &large_args_free) < 0) return NULL; } Py_BEGIN_ALLOW_THREADS _cffi_restore_errno(); { ncplane_greyscale(x0); } _cffi_save_errno(); Py_END_ALLOW_THREADS (void)self; /* unused */ if (large_args_free!= NULL) _cffi_free_array_arguments(large_args_free); Py_INCREF(Py_None); return Py_None; } Predicted src: static PyObject * _cffi_f_f_ncncnc_array_free(PyObject *self, PyObject *arg0) { size_t result; PyObject *pyresult; Py_BEGIN_ALLOW_THREADS _cffi_restore_errno(); { result = _cffi_restore_errno(); } _cffi_restore_errno(); { result = Py_END_ALLOW_THREADS } _cffi_restore_errno(); Py_END_ALLOW_THREADS (void)self; /* unused */ (void)self; /* unused */ (void)self; /* unused */ Py_INCREF(Py_None); Py_INCREF(Py_None); Py_INCREF(Py_None); return Py_None; }