============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined j__udyLAllocJLL2() PUSH RBP PUSH RBX MOV RBX,RSI SUB RSP,0x8 MOV RAX,qword ptr [->j__L_Leaf2PopToWords] ;= 001489c0 MOVZX EBP,byte ptr [RAX + RDI*0x1]=>.rodata:j__L_Leaf2PopToWords MOV RAX,qword ptr [->j__uLMaxWords] ;= 0014f008 MOV RAX=>.data:j__uLMaxWords,qword ptr [RAX] ;= FFFFFFFFFFFFFFFFh CMP qword ptr [RSI + 0x30],RAX JBE LAB_00116dc0 MOV dword ptr [RSI + 0x2c],0x149 LAB_00116dab: MOV byte ptr [RBX + 0x28],0x2 ADD RSP,0x8 XOR EAX,EAX POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00116dc0: MOV RDI,RBP CALL .plt:JudyMalloc ;undefined JudyMalloc() CMP RAX,0x8 JBE LAB_00116de0 ADD qword ptr [RBX + 0x30],RBP ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00116de0: MOV dword ptr [RBX + 0x2c],0x149 TEST RAX,RAX JZ LAB_00116dab MOV byte ptr [RBX + 0x28],0x8 ADD RSP,0x8 XOR EAX,EAX POP RBX POP RBP RET ?? 0Fh Actual src: Pjll_t j__udyAllocJLL2(Word_t Pop1, Pjpm_t Pjpm) { Word_t Words = JU_LEAF2POPTOWORDS(Pop1); Pjll_t PjllRaw; PjllRaw = (Pjll_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words); if ((Word_t) PjllRaw > sizeof(Word_t)) { Pjpm->jpm_TotalMemWords += Words; } else { J__UDYSETALLOCERROR(PjllRaw); } TRACE_ALLOC6("0x%x %8lu = j__udyAllocJLL2(%lu), Words = %lu\n", PjllRaw, j__udyMemSequence++, Pop1, Words, (Pjpm->jpm_Pop0) + 2); MALLOCBITS_SET(Pjll_t, PjllRaw); return(PjllRaw); } Predicted src: static N_LIB_PRIVATE N_PRIVATE N_NIMCALL(tyObject_PRIVATEPRIVATE N_PRIVATE N_NIMCALL)(tyObject_PRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVATEPRIVAT ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _cffi_const_LGLSXP() MOV qword ptr [RDI],0xa XOR EAX,EAX RET ?? 66h f Actual src: static int _cffi_const_LGLSXP(unsigned long long *o) { int n = (LGLSXP) <= 0; *o = (unsigned long long)((LGLSXP) | 0); /* check that LGLSXP is an integer */ if (!_cffi_check_int(*o, n, 10U)) n |= 2; return n; } Predicted src: static int _cffi_const_NCKEY_F(unsigned long long *o) { int n = (NCKEY_F) <= 0; *o = (unsigned long long)((NCKEY_F) | 0); /* check that NCKEY_F is an integer */ return n; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* KoItemToolTip::timerEvent(QTimerEvent*) * ;************************************************************************************************************************************************************ ;undefined timerEvent(KoItemToolTip * this, QTimerEvent * param_1) ;this KoItemToolT... RDI ;param_1 QTimerEvent * RSI MOV RAX,qword ptr [this + 0x30] MOV EAX,dword ptr [RAX + 0x18] CMP dword ptr [param_1 + 0x14],EAX JZ LAB_00190630 RET ?? 0Fh ?? 1Fh ?? 00h LAB_00190630: JMP .plt:::QWidget::hide ;undefined hide(void) ?? 90h Actual src: void KoItemToolTip::timerEvent(QTimerEvent *e) { if (e->timerId() == d->timer.timerId()) { hide(); } } Predicted src: void KoItem::hideEvent(QHideEvent *event) { if (event->type() == QEvent::LanguageChange) { emit event->hide(); } else { emit event->hide(); } } ============================== Sample 4 ============================== 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_context ctx, md5_md5_t *md5, md5_md5_t *md5) { md5_md5_t md5; md5_md5_t md5; md5_md5_t md5; md5 = md5->md5; md5 = md5->md5; md5 = md5->md5; md5 = md5->md5; md5_md5(md5, md5, md5); md5_md5(md5, md5, md5); return md5; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* ChannelItemDelegate::sizeHint(QStyleOptionViewItem const&, QModelIndex const&) const * ;************************************************************************************************************************************************************ ;undefined sizeHint(QStyleOptionViewItem * param_1, QModelIndex * param_2) ;param_1 QStyleOptio... RDI ;param_2 QModelIndex * RSI MOV RAX,0x9600000096 RET ?? 90h Actual src: QSize ChannelItemDelegate::sizeHint(const QStyleOptionViewItem & /*option*/, const QModelIndex & /*index*/) const { return QSize(ITEM_WIDTH, ITEM_HEIGHT); } Predicted src: QStyleOptionViewItem QStyleOptionViewItem::flags(const QModelIndex &index, const QModelIndex &index) const { Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(index); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(index); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); if(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSED(0); if(0); Q_UNUSED(0); Q_UNUSED(0); Q_UNUSE