============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined asn1_skip_tlv() ;local_30 undefined8 -30 ;local_34 undefined4 -34 PUSH R14 PUSH R13 PUSH R12 XOR R12D,R12D PUSH RBP MOV RBP,RSI PUSH RBX MOV RBX,RDI SUB RSP,0x10 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_30+0x38],RAX XOR EAX,EAX MOV RDX,RSP CALL asn1_decode_tag ;undefined asn1_decode_tag() CMP EAX,0x1 JZ LAB_0010bff8 LAB_0010bfd2: MOV RAX,qword ptr [RSP + local_30+0x38] SUB RAX,qword ptr FS:[0x28] JNZ LAB_0010c035 ADD RSP,0x10 MOV EAX,R12D POP RBX POP RBP POP R12 POP R13 POP R14 RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0010bff8: LEA RDX=>local_34,[RSP + 0x4] MOV RSI,RBP MOV RDI,RBX CALL asn1_decode_length ;undefined asn1_decode_length() MOV R12D,EAX CMP EAX,0x1 JZ LAB_0010c018 LAB_0010c010: XOR R12D,R12D JMP LAB_0010bfd2 ?? 0Fh ?? 1Fh ?? 00h LAB_0010c018: MOV R13D,dword ptr [RSP + local_34+0x38] MOV R14D,dword ptr [RBX] MOV RDI,RBP ADD R14D,R13D CALL bytestring_get_size ;undefined bytestring_get_size() CMP R14D,EAX JA LAB_0010c010 ADD dword ptr [RBX],R13D JMP LAB_0010bfd2 LAB_0010c035: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP word ptr [RAX + RAX*0x1] Actual src: int asn1_skip_tlv(unsigned *pos, const bytestring_t *tlvlist) { unsigned tag; if (asn1_decode_tag(pos,tlvlist,&tag)!=BYTESTRING_OK) return BYTESTRING_ERROR; return asn1_skip_value(pos,tlvlist); } Predicted src: static int get_string_string_string_string(const void *data, const void *data, size_t len) { size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; if (len < len) { len = len + len; len += len; len += len; } len += len; len += len; len += len; len += len += len; len += len; len += len += len; len += len; len += len += len; len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len; len += len += len += len; len += len += len; len += len += len; len += len += len += len; len += len += len; len += len += len += len; len += len += len; len += len += len += len; len += len += len += len; len += len += len += len; len += len += len; len += len += len += len += len; len += len += len; len += len += len += len; len += len += len += len; len += len += len += len; len += len += len += len; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined __pyx_pw_7skimage_5graph_4heap_10BinaryHeap_21__reduce_cython__() PUSH R12 MOV R12,qword ptr [.bss:__pyx_tuple__4] ;=?? PUSH RBP MOV RBP,qword ptr [.bss:__pyx_builtin_TypeError] ;=?? PUSH RBX MOV RAX,qword ptr [RBP + 0x8] MOV RBX,qword ptr [RAX + 0x80] TEST RBX,RBX JZ LAB_0010b070 LEA RDI,[.rodata:s__while_calling_a_Python_object_0010c118] ;= " while calling a Python object" CALL .plt:Py_EnterRecursiveCall ;undefined Py_EnterRecursiveCall() TEST EAX,EAX JNZ LAB_0010b088 XOR EDX,EDX MOV RDI,RBP MOV RSI,R12 CALL RBX MOV RBP,RAX CALL .plt:Py_LeaveRecursiveCall ;undefined Py_LeaveRecursiveCall() TEST RBP,RBP JZ LAB_0010b090 LAB_0010b029: MOV RDI,RBP MOV R12D,0x10c7 CALL __Pyx_Raise.constprop.0 ;undefined __Pyx_Raise.constprop.0() SUB qword ptr [RBP],0x1 JZ LAB_0010b060 LAB_0010b03e: MOV ESI,R12D LEA RCX,[.rodata:s_stringsource_0010dd6b] ;= "stringsource" MOV EDX,0x2 LEA RDI,[.rodata:s_skimage.graph.heap.BinaryHeap.___0010c738] ;= "skimage.graph.heap.BinaryHeap.__r... CALL __Pyx_AddTraceback ;undefined __Pyx_AddTraceback() POP RBX XOR EAX,EAX POP RBP POP R12 RET LAB_0010b060: MOV RDI,RBP CALL .plt:_Py_Dealloc ;undefined _Py_Dealloc() JMP LAB_0010b03e ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0010b070: MOV RDI,RBP XOR EDX,EDX MOV RSI,R12 CALL .plt:PyObject_Call ;undefined PyObject_Call() MOV RBP,RAX TEST RAX,RAX JNZ LAB_0010b029 NOP dword ptr [RAX] LAB_0010b088: MOV R12D,0x10c3 JMP LAB_0010b03e LAB_0010b090: CALL .plt:PyErr_Occurred ;undefined PyErr_Occurred() TEST RAX,RAX JNZ LAB_0010b088 MOV RAX,qword ptr [->PyExc_SystemError] ;= 00113018 LEA RSI,[.rodata:s_NULL_result_without_error_in_PyO_0010c2f8] ;= "NULL result without error in PyOb... MOV RDI,qword ptr [RAX]=>EXTERNAL:PyExc_SystemError ;=?? CALL .plt:PyErr_SetString ;undefined PyErr_SetString() JMP LAB_0010b088 ?? 66h f Actual src: static PyObject *__pyx_pw_7skimage_5graph_4heap_10BinaryHeap_21__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_7skimage_5graph_4heap_10BinaryHeap_20__reduce_cython__(((struct __pyx_obj_7skimage_5graph_4heap_BinaryHeap *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } Predicted src: static PyObject *__pyx_pw_7pyverbs_7c_7c_7c_7c_7c_7c__setstate_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_7c_7c_7c_7c_7c_7c_7c_7c_7c_7c__setstate_cython__(((struct __pyx_obj_7c_7c_7c_7c_7c_7c_7c_7c_7c_7c_7c_7c_7c_7c_7c_7c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_cc_ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ============================== Sample 3 ============================== 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: PyObject * _wrap_PyNs3Ipv4_array_new(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *py_retval; PyObject *py_retval; const char *keywords[] = {"s", NULL}; if (!PyArg_ParseTupleAndKeywords(args, kwargs, (char *) "i", (char **) keywords, &obj)) { return NULL; } Py_INCREF(Py_None); Py_INCREF(Py_None); Py_INCREF(Py_None); Py_INCREF(Py_None); Py_INCREF(Py_None); py_retval = Py_None; return py_retval; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined svt_aom_highbd_dc_predictor_8x32_c() PUSH R13 XOR EAX,EAX MOV R13,RSI PUSH R12 PUSH RBP PUSH RBX MOV RBX,RDI LEA RDI,[RDX + 0x10] SUB RSP,0x8 NOP word ptr CS:[RAX + RAX*0x1] LAB_00155040: MOVZX ESI,word ptr [RDX] ADD RDX,0x2 ADD EAX,ESI CMP RDI,RDX JNZ LAB_00155040 LEA RSI,[RCX + 0x40] NOP word ptr [RAX + RAX*0x1] LAB_00155058: MOVZX EDX,word ptr [RCX] ADD RCX,0x2 ADD EAX,EDX CMP RSI,RCX JNZ LAB_00155058 LEA R12D,[RAX + 0x14] MOV EAX,0xcccccccd ADD R13,R13 MOV EBP,0x20 IMUL R12,RAX SHR R12,0x25 NOP LAB_00155080: MOV RDI,RBX MOV EDX,0x8 MOV ESI,R12D ADD RBX,R13 CALL svt_aom_memset16 ;undefined svt_aom_memset16() SUB EBP,0x1 JNZ LAB_00155080 ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 66h f Actual src: intra_pred_highbd_sized(dc, 8, 32) Predicted src: static void C_ccall f_8(C_word c,C_word *av){ C_word tmp; C_word t0=av[0]; C_word t1=av[1]; C_word t2; C_word t3; C_word t4; C_word *a; if(C_unlikely(!C_demand(C_calculate_demand(0,c,2)))){ C_save_and_reclaim((void *)f_8,c,av);} a=C_alloc(4); t2=(*a=C_CLOSURE_TYPE|4,a[1]=(C_word)f_8,a[2]=((C_word*)t0)[2],a[4]=((C_word*)t0)[4],a[4]=((C_word*)t0)[4],a[4]=((C_word*)t0)[4],a[5],a[5]=((C_word*)t0)[4],tmp=(C_word)a,a,a+=5,tmp); t4=((C_word*)t0)[5]=((C_word*)t0)[5],tmp=(C_word)a+=5,tmp); f_16(t4,tmp=(C_word)a+=5,tmp); f_16(t4,tmp=(C_word*)t5,tmp)); f_16(t4,tmp=(C_word*)t5,tmp)); ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined check_build() PUSH R12 MOV R12,RSI PUSH RBP MOV RBP,RDI MOV RDI,RSI PUSH RBX CALL .plt:::strlen ;size_t strlen(char * __s) MOV RDI,RBP MOV RBX,RAX CALL .plt:::lax_json_eof ;undefined lax_json_eof() TEST EAX,EAX JNZ LAB_0010136e CMP dword ptr [.bss:out_buf_index],EBX JNZ LAB_001013c6 MOVSXD RDX,EBX LEA RBX,[.bss:out_buf] MOV RDI,R12 MOV RSI=>.bss:out_buf,RBX CALL .plt:::memcmp ;int memcmp(void * __s1, void * __s2,... TEST EAX,EAX JNZ LAB_0010139c POP RBX MOV RDI,RBP POP RBP POP R12 JMP .plt:LAB_00101070 LAB_0010136e: MOV EDI,EAX CALL .plt:::lax_json_str_err ;undefined lax_json_str_err() MOV RDI,qword ptr [.bss:stderr] MOV ESI,0x1 LEA RDX,[.rodata:s_%s_00103020+22] ;= "%s\n" MOV RCX,RAX XOR EAX,EAX CALL .plt:::__fprintf_chk ;undefined __fprintf_chk() MOV EDI,0x1 CALL .plt:::exit ;void exit(int __status) LAB_0010139c: MOV R8=>.bss:out_buf,RBX MOV RCX,R12 LEA RDX,[.rodata:s_EXPECTED:_---------_%s_RECEIVED:_00103288] ;= "EXPECTED:\n---------\n%s\nRECEIVE... LAB_001013a9: MOV RDI,qword ptr [.bss:stderr] MOV ESI,0x1 XOR EAX,EAX CALL .plt:::__fprintf_chk ;undefined __fprintf_chk() MOV EDI,0x1 CALL .plt:::exit ;void exit(int __status) LAB_001013c6: LEA R8,[.bss:out_buf] MOV RCX,R12 LEA RDX,[.rodata:s__EXPECTED:_---------_%s_RECEIVED_00103258] ;= "\nEXPECTED:\n---------\n%s\nRECEI... JMP LAB_001013a9 ?? 0Fh Actual src: static void check_build(struct LaxJsonContext *context, const char *output) { int expected_len = strlen(output); enum LaxJsonError err = lax_json_eof(context); if (err!= LaxJsonErrorNone) { fprintf(stderr, "%s\n", lax_json_str_err(err)); exit(1); } if (out_buf_index!= expected_len) { fprintf(stderr, "\n" "EXPECTED:\n" "---------\n" "%s\n" "RECEIVED:\n" "---------\n" "%s\n", output, out_buf); exit(1); } if (memcmp(output, out_buf, expected_len)!= 0) { fprintf(stderr, "EXPECTED:\n" "---------\n" "%s\n" "RECEIVED:\n" "---------\n" "%s\n", output, out_buf); exit(1); } lax_json_destroy(context); } Predicted src: void usage(const char *name) { fprintf(stderr, "%s: %s\n", name); fprintf(stderr, "%s\n", name); exit(1); }