============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined PyInit_interactivelp_backend() LEA RDI,[.data:__pyx_moduledef] JMP .plt:LAB_001050c0 ?? 66h f Actual src: __Pyx_PyMODINIT_FUNC PyInit_interactivelp_backend(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } Predicted src: __Pyx_PyMODINIT_FUNC PyInit_backend_backend(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined parse_trap2_fmt() SUB RSP,0x8 MOV RDI,RSI CALL .plt:::strdup ;char * strdup(char * __s) MOV RDX,qword ptr [->print_format2] ;= 0010f168 MOV qword ptr [RDX]=>.bss:print_format2,RAX ;=?? ADD RSP,0x8 RET ?? 0Fh Actual src: static void parse_trap2_fmt(const char *token, char *line) { print_format2 = strdup(line); } Predicted src: static void parse_format(const char *format, const char *format) { print_format = strdup(format); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* Digikam::ImportItemModel::camItemInfoRef(QModelIndex const&) const * ;************************************************************************************************************************************************************ ;undefined camItemInfoRef(ImportItemModel * this, QModelIndex * param_1) ;this ImportItemM... RDI ;param_1 QModelIndex * RSI PUSH RBP PUSH RBX SUB RSP,0x8 MOVSXD RBP,dword ptr [param_1] MOV RBX,qword ptr [this + 0x20] TEST EBP,EBP JS LAB_005bc3c0 MOV EAX,dword ptr [param_1 + 0x4] TEST EAX,EAX JS LAB_005bc3c0 CMP qword ptr [param_1 + 0x10],0x0 JZ LAB_005bc3c0 MOV RAX,qword ptr [RBX + 0x8] MOV EDX,dword ptr [RAX + 0xc] SUB EDX,dword ptr [RAX + 0x8] CMP EBP,EDX JGE LAB_005bc3c0 MOV EDX,dword ptr [RAX] CMP EDX,0x1 JBE LAB_005bc3a4 MOV param_1,dword ptr [RAX + 0x4] LEA this,[RBX + 0x8] CALL QList::detach_helper ;undefined detach_helper(int param_1) MOV RAX,qword ptr [RBX + 0x8] LAB_005bc3a4: MOVSXD RDX,dword ptr [RAX + 0x8] ADD RDX,RBP MOV RAX,qword ptr [RAX + RDX*0x8 + 0x10] ADD RSP,0x8 POP RBX POP RBP RET ?? 66h f ?? 0Fh ;? -> 00841f0f ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_005bc3c0: ADD RSP,0x8 LEA RAX,[RBX + 0x10] POP RBX POP RBP RET ?? 90h Actual src: CamItemInfo& ImportItemModel::camItemInfoRef(const QModelIndex& index) const { if (!d->isValid(index)) { return d->camItemInfo; } return d->infos[index.row()]; } Predicted src: void ItemItemDelegate::slotItem(const QModelIndex &index) const { if (index.isValid()) { d->index = index; } else { d->index = index; } } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gp_arrow_button_constructed() PUSH RBP MOV RBP,RDI MOV RDI,qword ptr [.bss:gp_arrow_button_parent_class] ;=?? MOV ESI,0x50 CALL .plt:::g_type_check_class_cast ;undefined g_type_check_class_cast() MOV RDI,RBP CALL qword ptr [RAX + 0x48] CALL .plt:::gtk_widget_get_type ;undefined gtk_widget_get_type() MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV RDI,RAX CALL .plt:::gtk_widget_get_accessible ;undefined gtk_widget_get_accessible() LEA RSI,[.rodata:s_Hide_Panel_00138771] ;= "Hide Panel" XOR EDI,EDI MOV EDX,0x5 MOV RBP,RAX CALL .plt:::dcgettext ;undefined dcgettext() MOV RDI,RBP POP RBP MOV RSI,RAX JMP .plt:::atk_object_set_name ;undefined atk_object_set_name() ?? 66h f Actual src: static void gp_arrow_button_constructed (GObject *object) { GtkWidget *widget; AtkObject *atk; G_OBJECT_CLASS (gp_arrow_button_parent_class)->constructed (object); widget = GTK_WIDGET (object); atk = gtk_widget_get_accessible (widget); atk_object_set_name (atk, _("Hide Panel")); } Predicted src: static void glade_widget_button_dispose (GObject *object) { GtkWidget *widget; widget = GTK_WIDGET_BUTTON (object); widget = GTK_WIDGET_CLASS (glade_widget_parent_class)->dispose (object); GTK_WIDGET_CLASS (parent_class)->dispose (object); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined dhcp6_calc_mac() ;local_30 undefined8 -30 ;local_48 undefined1[16] -48 PUSH R13 PUSH R12 PUSH RBP PUSH RBX SUB RSP,0xc8 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_30+0xe8],RAX XOR EAX,EAX CMP ECX,0x1 JNZ LAB_00112b80 LEA RAX,[R8 + 0x10] MOV RBX,RSI MOV RBP,R8 CMP RAX,RSI JA LAB_00112b80 MOV RSI,qword ptr [R9 + 0x28] MOV EDX,dword ptr [R9 + 0x30] MOV R13,RSP MOV R12,RDI MOV RDI,R13 CALL hmacmd5_init ;undefined hmacmd5_init() MOV EDX,EBX MOV RSI,R12 MOV RDI,R13 CALL md5_update ;undefined md5_update() LEA RSI=>local_48,[RSP + 0xa0] MOV RDI,R13 CALL hmacmd5_sign ;undefined hmacmd5_sign() XOR EAX,EAX MOVDQA XMM0,xmmword ptr [RSP + local_48[0]+0xe8] MOVUPS xmmword ptr [R12 + RBP*0x1],XMM0 LAB_00112b57: MOV RDX,qword ptr [RSP + local_30+0xe8] SUB RDX,qword ptr FS:[0x28] JNZ LAB_00112b87 ADD RSP,0xc8 POP RBX POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00112b80: MOV EAX,0xffffffff JMP LAB_00112b57 LAB_00112b87: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX] Actual src: int dhcp6_calc_mac(buf, len, proto, alg, off, key) char *buf; size_t len, off; int proto, alg; struct keyinfo *key; { hmacmd5_t ctx; unsigned char digest[MD5_DIGESTLENGTH]; /* right now, we don't care about the protocol */ if (alg!= DHCP6_AUTHALG_HMACMD5) return (-1); if (off + MD5_DIGESTLENGTH > len) { /* * this should be assured by the caller, but check it here * for safety. */ return (-1); } hmacmd5_init(&ctx, key->secret, key->secretlen); hmacmd5_update(&ctx, buf, len); hmacmd5_sign(&ctx, digest); memcpy(buf + off, digest, MD5_DIGESTLENGTH); return (0); } Predicted src: int md5_md5_md5(md5_context context, const uint8_t *md5, const uint8_t *md5) { md5_md5_md5_t *md5 = (md5_md5_md5_md5_md5_t *)md5; int ret; md5_md5_init(&md5->md5, &md5->md5); md5_md5_md5_update(&md5->md5, &md5->md5, &md5->md5, &md5->md5); return (ret); }