============================== Sample 1 ============================== 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_9providers_9providers_9providers_9providers_9providers_9providers_9providers_3__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_7pyverbs_9providers_9providers_9providers_9providers_9providers_9providers_9providers_9providers_9providers_9providers_3__setstate_cython__(((struct __pyx_obj_7pyverbs_9providers_9providers_9providers_9providers_9providers_9providers_9providers *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined buf_read_ccmx() PUSH R12 MOV R12,RDI MOV RDI,RSI MOV RSI,RDX PUSH RBP PUSH RBX CALL new_cgatsFileMem ;undefined new_cgatsFileMem() TEST RAX,RAX JZ LAB_001d01d8 MOV RBP,RAX CALL new_cgats ;undefined new_cgats() MOV RBX,RAX TEST RAX,RAX JZ LAB_001d0210 LEA RSI,[.rodata:DAT_0028797f] ;= 43h C MOV RDI,RAX CALL qword ptr [RBX + 0x40] MOV RSI,RBP MOV RDI,RBX CALL qword ptr [RBX + 0x50] TEST EAX,EAX JNZ LAB_001d01a0 MOV RDI,RBP CALL qword ptr [RBP + 0x48] MOV RDI,R12 MOV RSI,RBX CALL read_ccmx_cgats ;undefined read_ccmx_cgats() MOV RDI,RBX MOV R12D,EAX CALL qword ptr [RBX + 0xd0] LAB_001d0196: MOV EAX,R12D POP RBX POP RBP POP R12 RET ?? 66h f ?? 90h LAB_001d01a0: LEA RSI,[RBX + 0xd8] LEA RDI,[R12 + 0xe4] MOV R12D,0x1 CALL .plt:::strcpy ;char * strcpy(char * __dest, char *... MOV RDI,RBX CALL qword ptr [RBX + 0xd0] MOV RDI,RBP CALL qword ptr [RBP + 0x48] MOV EAX,R12D POP RBX POP RBP POP R12 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001d01d8: MOVDQA XMM0,xmmword ptr [.rodata:s_new_cgatsFileMemread_ccmx:_new_c_00287a5f+193] ;= "new_cgatsFileMemread_ccmx: new_cc... MOV RAX,0x64656c69616620 MOV qword ptr [R12 + 0xf4],RAX MOVUPS xmmword ptr [R12 + 0xe4],XMM0 MOV R12D,0x2 POP RBX POP RBP MOV EAX,R12D POP R12 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001d0210: MOVDQA XMM0,xmmword ptr [.rodata:s_read_ccmx:_new_ccgatsFileMem_get_00287a5f+209] ;= "read_ccmx: new_ccgatsFileMem getc... MOV RDI,RBP MOV RCX,0x6620292873746167 MOV EAX,0x64 MOV qword ptr [R12 + 0xf4],RCX MOV dword ptr [R12 + 0xfc],0x656c6961 MOV word ptr [R12 + 0x100],AX MOVUPS xmmword ptr [R12 + 0xe4],XMM0 MOV R12D,0x2 CALL qword ptr [RBP + 0x48] JMP LAB_001d0196 ?? 66h f Actual src: static int buf_read_ccmx( ccmx *p, /* This */ unsigned char *buf, size_t len ) { int rv; cgatsFile *fp; cgats *icg; /* input cgats structure */ if ((fp = new_cgatsFileMem(buf, len)) == NULL) { strcpy(p->err, "new_cgatsFileMem failed"); return 2; } /* Open and look at the.ccmx file */ if ((icg = new_cgats()) == NULL) { /* Create a CGATS structure */ sprintf(p->err, "read_ccmx: new_cgats() failed"); fp->del(fp); return 2; } icg->add_other(icg, "CCMX"); /* our special type is Model Printer Profile */ if (icg->read(icg, fp)) { strcpy(p->err, icg->err); icg->del(icg); fp->del(fp); return 1; } fp->del(fp); if ((rv = read_ccmx_cgats(p, icg))!= 0) { icg->del(icg); /* Clean up */ return rv; } icg->del(icg); /* Clean up */ return 0; } Predicted src: static int read_read_file(void *user_data, char *buf, size_t size) { char *buf = user_data; FILE *fp = user_data; FILE *fp = user_data; if (!fp) return -1; fp = (FILE *)user_data; fp = (FILE *)user_data; if (!fp) return -1; fp = (FILE *)user_data; if (!fp) return -1; fp->read_file = read_file(fp); fp->read_file = read_file(fp); fp->read_file = read_file(fp); fp->read_file = read_file(fp); fp->read_file = read_file(fp); fp->read_file = read_file(fp); fp->read_file = read_file(fp); fp->read_file = read_file(fp); fp->read_file = read_file(fp); fp->read_file = read_file(fp); return 0; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined newtScrollbarSet() PUSH R12 MOV ECX,EDX PUSH RBP MOV RBP,RDI PUSH RBX MOV R12,qword ptr [RDI + 0x40] MOV EBX,dword ptr [RDI] MOV EAX,dword ptr [R12 + 0xc] TEST EAX,EAX JZ LAB_00109170 SUB EBX,0x3 IMUL EBX,ESI TEST EDX,EDX JNZ LAB_001091b0 LAB_00109162: ADD EBX,0x1 LAB_00109165: CMP dword ptr [R12],EBX JNZ LAB_00109187 LAB_0010916b: POP RBX POP RBP POP R12 RET LAB_00109170: SUB EBX,0x1 IMUL EBX,ESI TEST EDX,EDX JZ LAB_00109165 MOV EAX,EBX CDQ IDIV ECX MOV EBX,EAX CMP dword ptr [R12],EBX JZ LAB_0010916b LAB_00109187: MOV RDI,RBP XOR ESI,ESI CALL sbDrawThumb ;undefined sbDrawThumb() MOV dword ptr [R12],EBX MOV RDI,RBP POP RBX MOV ESI,0x1 POP RBP POP R12 JMP sbDrawThumb ;undefined sbDrawThumb() ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001091b0: MOV EAX,EBX CDQ IDIV ECX MOV EBX,EAX JMP LAB_00109162 ?? 0Fh Actual src: void newtScrollbarSet(newtComponent co, int where, int total) { struct scrollbar * sb = co->data; int new; if (sb->arrows) new = (where * (co->height - 3)) / (total? total : 1) + 1; else new = (where * (co->height - 1)) / (total? total : 1); if (new!= sb->curr) { sbDrawThumb(co, 0); sb->curr = new; sbDrawThumb(co, 1); } } Predicted src: void DrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDrawDra ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined soup_message_get_priority() PUSH RBX MOV RBX,RDI CALL .plt:soup_message_get_type ;undefined soup_message_get_type() TEST RBX,RBX JZ LAB_00146720 MOV RSI,RAX MOV RAX,qword ptr [RBX] TEST RAX,RAX JZ LAB_001466fe CMP qword ptr [RAX],RSI JZ LAB_0014670a LAB_001466fe: MOV RDI,RBX CALL .plt:::g_type_check_instance_is_a ;undefined g_type_check_instance_is_a() TEST EAX,EAX JZ LAB_00146720 LAB_0014670a: MOVSXD RAX,dword ptr [.bss:SoupMessage_private_offset] ;=?? MOV EAX,dword ptr [RBX + RAX*0x1 + 0x98] POP RBX RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00146720: LEA RDX,[.rodata:s_SOUP_IS_MESSAGE_(msg)_00173fcf] ;= "SOUP_IS_MESSAGE (msg)" LEA RSI,[.rodata:__func__.0] ;= "soup_message_get_priority" LEA RDI,[.rodata:s_libsoup_00173a36] ;= "libsoup" CALL .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() MOV EAX,0x2 POP RBX RET ?? 66h f Actual src: SoupMessagePriority soup_message_get_priority (SoupMessage *msg) { SoupMessagePrivate *priv; g_return_val_if_fail (SOUP_IS_MESSAGE (msg), SOUP_MESSAGE_PRIORITY_NORMAL); priv = soup_message_get_instance_private (msg); return priv->priority; } Predicted src: gboolean msg_message_get_msg (msgMessage *msg) { g_return_val_if_fail (msg!= NULL, FALSE); g_return_val_if_fail (msg->msg!= NULL, FALSE); return msg->msg; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* strcasestr_len(char const*, int, char const*) * ;************************************************************************************************************************************************************ ;undefined strcasestr_len(char * param_1, int param_2, char * param_3) ;param_1 char * RDI ;param_2 int ESI ;param_3 char * RDX PUSH R15 PUSH R14 MOV R14,param_1 MOV param_1,param_3 PUSH R13 MOV R13,param_3 PUSH R12 PUSH RBP MOVSXD RBP,param_2 PUSH RBX SUB RSP,0x8 CALL .plt:::strlen ;size_t strlen(char * __s) CMP RBP,RAX JL LAB_00135e08 MOV R15,RAX SUB RBP,RAX JS LAB_00135e08 XOR EBX,EBX JMP LAB_00135dd9 LAB_00135dd0: ADD RBX,0x1 CMP RBP,RBX JL LAB_00135e08 LAB_00135dd9: LEA R12,[R14 + RBX*0x1] MOV param_3,R15 MOV param_1,R13 MOV param_2,R12 CALL .plt:::g_ascii_strncasecmp ;undefined g_ascii_strncasecmp() TEST EAX,EAX JNZ LAB_00135dd0 LAB_00135def: ADD RSP,0x8 MOV RAX,R12 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00135e08: XOR R12D,R12D JMP LAB_00135def ?? 0Fh Actual src: char *strcasestr_len(const char *haystack, int haystack_len, const char *needle) { gssize needle_len = (gssize)strlen(needle); int i; if (needle_len > haystack_len) return NULL; i = 0; while (i <= haystack_len - needle_len) { if (g_ascii_strncasecmp(needle, haystack + i, needle_len) == 0) return (char *)haystack + i; i++; } return NULL; } Predicted src: int g_len(const char *s, int len) { int i; int len = strlen(s); for (i = 0; i < len; i++) { len += strlen(s[i]); } return len; }