// File: /workspace/github_cpp_makefile_star2_O1/besm6[P]pascal-re/pascompl.cc
// Function: Expr::p[abi:cxx11]()
std::string Expr::p()
{
    static const char * op2str[] = {
        " * ",      " /r ",     " and ",    " div ",    " mod ",
        " + ",      " - ",      " or ",     " <> ",     " = ",
        " < ",      " >= ",     " > ",      " <= ",     " in ",
        " *i ",     " /i ",     " & ",      " ^ ",      " | ",
        " \\ ",     " +i ",     " -i ",     " op27 ",   " op30 ",
        " op31 ",   " .. ",     " := ",     " elt ",    " var ",
        " op36 ",   " op37 ",   " enum ",   " field ",  " @ ",
        " @f ",     " op44 ",   " alnum ",  " pcall ",  " fcall ",
        " BOUNDS ", "(real)",   " not ",    " -i-",     " -r-",
        " proc ",   "NOP"
    };
    static const char * fn2name[] = {
        "SQRT", "SIN", "COS", "ATAN", "ASIN",
        "LN",  "EXP",  "ABS",  "TRUNC",  "ODD",
        "ORD", "CHR", "SUCC", "PRED", "EOF",
        "REF", "EOLN", "SQR", "ROUND", "CARD",
        "MINEL", "PTR", "ABSi", "SQRi"
    };

    std::ostringstream ostr;
    switch (op) {
    case NOOP:
        ostr << "(R" << val.i << ')';
        break;
    case GETVAR:
        ostr << id1->p();
        break;
    case MUL: case RDIVOP: case AMPERS: case IDIVOP: case IMODOP:
    case PLUSOP: case MINUSOP: case OROP: case NEOP: case EQOP:
    case LTOP: case GEOP: case GTOP: case LEOP: case INOP:
    case IMULOP: case IDIVROP: case SETAND: case SETXOR: case SETOR:
    case SETSUB: case INTPLUS: case INTMINUS:
        // Regular binary ops
        ostr << '(' << expr1->p() << op2str[op] << expr2->p() << ')';
        break;
    case INEGOP: case RNEGOP: case NOTOP: case TOREAL:
        // Regular unary ops
        ostr << op2str[op] << expr1->p();
        break;
    case FILEPTR: case DEREF:
        ostr << expr1->p() << '@';
        break;
    case ASSIGNOP:
        ostr << expr1->p() << op2str[op] << expr2->p();
        break;
    case GETELT:
        ostr << expr1->p() << '[' << expr2->p() << ']';
        break;
    case GETFIELD:
        ostr << expr1->p() << '.' << id2->p();
        break;
    case MKRANGE:
        ostr << '[' << expr1->p() << ".." << expr2->p() << ']';
        break;
    case GETENUM:
        if (typ == IntegerType)
            ostr << d1.i;
        else if (typ == CharType) {
            ostr << "'" << escapeChar(d1.i) << "'";
        } else if (typ == RealType)
            ostr << "real" << d1.r;
        else if (typ == BooleanType)
            ostr << (d1.ii ? "TRUE" : "FALSE");
        else if (typ == setType)
            ostr << d1.m.p();
        else if (typ == pointerType && d1.i == 074000)
            ostr << "NIL";
        else if (typ->k == kindScalar)
            ostr << "enum" << num1;
        else if (typ->k == kindArray && typ->cast<ArrayT>().base == CharType) {
            int n;
            for (n = 2; n <= 6; ++n) {
                if (typ == smallStringType[n]) {
                    ostr << "'";
                    for (int i = 1; i <= n; ++i)
                        ostr << escapeChar(d1.a[i]);
                    ostr << "'";
                    break;
                }
            }
            if (n <= 6)
                break;
            ostr << "string literal @" << d1.i;
        } else
            ostr << "(? enum: " << typ->p() << " ?)";
        break;
    case STANDPROC:
        if (typ == NULL && num2 < 30) {
            int64_t t;
            t = systemProcNames[num2];
            ostr << toAscii(t) << '(' << expr1->p() << ')';
        } else if (num2 < 24) {
            ostr << fn2name[num2] << '(' << expr1->p() << ')';
        } else if (num2 == 109) {
            ostr << '[' << expr1->p() << ']';
        } else {
            ostr << "standproc" << num2 << '(' << expr1->p() << ')';
        }
        break;
    case ALNUM:
        ostr << "call " << id2->p();
         if (expr1) {
             ostr << "(";
             Expr * t = expr1;
             do {
                 if (t != expr1) ostr << ", ";
                 ostr << t->expr2->p();
                 t = t->expr1;
             } while (t);
             ostr << ")";
         }
        break;
    case PCALL:
        ostr << "pcall " << id2->p();
        break;
    case FCALL:
        ostr << "fcall " << id2->p();
        break;
    case BOUNDS:
        ostr << "bound(" << expr1->p() << ", " << typ2->p() << ')';
        break;
    default:
        ostr << "(?" << op2str[op] << "?)";
    }
    return ostr.str();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x50(%rsp), %rdi
callq 0x3320
movl 0x8(%r14), %eax
cmpq $0x2e, %rax
ja 0x4a46
leaq 0x17cda(%rip), %rcx     # 0x1c028
movslq (%rcx,%rax,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
leaq 0x8(%rsp), %rsi
movb $0x28, (%rsi)
leaq 0x50(%rsp), %rdi
movl $0x1, %edx
callq 0x32c0
movq %rax, %r15
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
movq %rax, %r15
movl 0x8(%r14), %eax
leaq 0x1f551(%rip), %rcx     # 0x238f0
movq (%rcx,%rax,8), %r12
movq %r12, %rdi
callq 0x30f0
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x28(%rsp), %rdi
callq 0x4318
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
leaq 0x7(%rsp), %rsi
movb $0x29, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4409
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4424
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x58(%rsp), %rsi
movq %rbx, %rdi
callq 0x33b0
movq 0x1fb90(%rip), %rsi     # 0x23fc8
leaq 0x50(%rsp), %rdi
callq 0x3130
leaq 0xc0(%rsp), %rdi
callq 0x30a0
movq %rbx, %rax
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1f485(%rip), %rcx     # 0x238f0
movq (%rcx,%rax,8), %r15
movq %r15, %rdi
callq 0x30f0
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x32c0
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
jmp 0x4409
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
leaq 0x28(%rsp), %rsi
movb $0x40, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x4409
leaq 0x187b8(%rip), %rsi     # 0x1cca9
leaq 0x50(%rsp), %rdi
movl $0x6, %edx
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x8(%rsp), %rdi
xorl %edx, %edx
callq 0x15706
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
jmp 0x4409
cmpq $0x0, (%r14)
jne 0x4aa2
movq 0x18(%r14), %rax
cmpq $0x1d, %rax
jg 0x4aa2
leaq 0x1fd58(%rip), %rcx     # 0x242a0
movq (%rcx,%rax,8), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4f8f
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
leaq 0x28(%rsp), %rsi
movb $0x28, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
movq %rax, %r15
movq 0x10(%r14), %rsi
leaq 0x28(%rsp), %rdi
callq 0x4318
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
leaq 0x7(%rsp), %rsi
movb $0x29, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x43ee
movq (%r14), %rax
cmpq 0x60432(%rip), %rax     # 0x649f8
je 0x4b74
movq 0x60435(%rip), %rcx     # 0x64a08
cmpq %rcx, %rax
je 0x4b8f
cmpq 0x6041d(%rip), %rax     # 0x64a00
je 0x4c56
cmpq 0x603f8(%rip), %rax     # 0x649e8
je 0x4c9e
cmpq 0x603e3(%rip), %rax     # 0x649e0
je 0x4cf1
cmpq 0x603ce(%rip), %rax     # 0x649d8
jne 0x4cc5
movabsq $0x1ffffffffff, %rdx    # imm = 0x1FFFFFFFFFF
andq 0x10(%r14), %rdx
cmpq $0x7800, %rdx           # imm = 0x7800
jne 0x4cc5
movl $0x3, %r15d
leaq 0x18727(%rip), %rsi     # 0x1cd5f
jmp 0x4a90
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
xorl %edx, %edx
callq 0x15706
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
jmp 0x4409
leaq 0x18644(%rip), %rsi     # 0x1ccb1
leaq 0x50(%rsp), %rdi
movl $0x6, %edx
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x8(%rsp), %rdi
xorl %edx, %edx
callq 0x15706
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
jmp 0x4409
leaq 0x1869e(%rip), %rsi     # 0x1cd4a
leaq 0x50(%rsp), %rdi
movl $0x2, %edx
callq 0x32c0
movq (%r14), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
leaq 0x50(%rsp), %rdi
callq 0x3220
leaq 0x8(%rsp), %rsi
movb $0x29, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x4424
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
leaq 0x28(%rsp), %rsi
movb $0x5b, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
movq %rax, %r15
movq 0x18(%r14), %rsi
leaq 0x28(%rsp), %rdi
callq 0x4318
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
leaq 0x7(%rsp), %rsi
movb $0x5d, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x43ee
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
leaq 0x28(%rsp), %rsi
movb $0x2e, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
movq %rax, %r15
movq 0x18(%r14), %rsi
leaq 0x28(%rsp), %rdi
xorl %edx, %edx
callq 0x15706
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
jmp 0x43ee
leaq 0x8(%rsp), %rsi
movb $0x5b, (%rsi)
leaq 0x50(%rsp), %rdi
movl $0x1, %edx
callq 0x32c0
movq %rax, %r15
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
movq %rax, %r15
leaq 0x18376(%rip), %rsi     # 0x1cb79
movl $0x2, %edx
movq %rax, %rdi
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x28(%rsp), %rdi
callq 0x4318
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
leaq 0x7(%rsp), %rsi
movb $0x5d, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x43ee
leaq 0x18461(%rip), %rsi     # 0x1ccb2
leaq 0x50(%rsp), %rdi
movl $0x5, %edx
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x8(%rsp), %rdi
xorl %edx, %edx
callq 0x15706
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
leaq 0x18(%rsp), %rbp
movq -0x10(%rbp), %rdi
cmpq %rbp, %rdi
je 0x489f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
cmpq $0x0, 0x10(%r14)
je 0x4424
leaq 0x184e8(%rip), %rsi     # 0x1cd99
leaq 0x50(%rsp), %rdi
movl $0x1, %edx
callq 0x32c0
movq %rbx, 0x48(%rsp)
movq 0x10(%r14), %rbx
leaq 0x8(%rsp), %r15
leaq 0x50(%rsp), %r12
leaq 0x184b7(%rip), %r13     # 0x1cd91
cmpq 0x10(%r14), %rbx
je 0x48f0
movl $0x2, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x32c0
movq 0x18(%rbx), %rsi
movq %r15, %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r12, %rdi
callq 0x32c0
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4925
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x10(%rbx), %rbx
testq %rbx, %rbx
jne 0x48da
leaq 0x18e53(%rip), %rsi     # 0x1d788
leaq 0x50(%rsp), %rdi
movl $0x1, %edx
callq 0x32c0
movq 0x48(%rsp), %rbx
jmp 0x4424
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
movq %rax, %r15
movl 0x8(%r14), %eax
leaq 0x1ef72(%rip), %rcx     # 0x238f0
movq (%rcx,%rax,8), %r12
movq %r12, %rdi
callq 0x30f0
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x28(%rsp), %rdi
callq 0x4318
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
jmp 0x43ee
leaq 0x183d0(%rip), %rsi     # 0x1cd94
leaq 0x50(%rsp), %rdi
movl $0x6, %edx
callq 0x32c0
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
movq %rax, %r15
leaq 0x18392(%rip), %rsi     # 0x1cd91
movl $0x2, %edx
movq %rax, %rdi
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x28(%rsp), %rdi
callq 0x3ecc
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
leaq 0x7(%rsp), %rsi
movb $0x29, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x43ee
leaq 0x1834e(%rip), %rsi     # 0x1cd9b
leaq 0x50(%rsp), %rdi
movl $0x2, %r15d
movl $0x2, %edx
callq 0x32c0
movl 0x8(%r14), %eax
leaq 0x1ee83(%rip), %rcx     # 0x238f0
movq (%rcx,%rax,8), %r14
movq %r14, %rdi
callq 0x30f0
leaq 0x50(%rsp), %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x32c0
leaq 0x182f4(%rip), %rsi     # 0x1cd84
leaq 0x50(%rsp), %rdi
movq %r15, %rdx
callq 0x32c0
jmp 0x4424
movq 0x18(%r14), %rax
cmpq $0x17, %rax
jg 0x4b16
leaq 0x17c89(%rip), %rcx     # 0x1c73c
movslq (%rcx,%rax,4), %rsi
addq %rcx, %rsi
leaq 0x50(%rsp), %rdi
callq 0x3230
leaq 0x8(%rsp), %rsi
movb $0x28, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
movq %rax, %r15
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
leaq 0x28(%rsp), %rsi
movb $0x29, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x4409
cmpq $0x6d, %rax
jne 0x4be0
leaq 0x8(%rsp), %rsi
movb $0x5b, (%rsi)
leaq 0x50(%rsp), %rdi
movl $0x1, %edx
callq 0x32c0
movq %rax, %r15
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
leaq 0x28(%rsp), %rsi
movb $0x5d, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x4409
movq 0x10(%r14), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
leaq 0x50(%rsp), %rdi
callq 0x3220
jmp 0x4424
leaq 0x181b7(%rip), %rsi     # 0x1cd4d
leaq 0x50(%rsp), %rdi
movl $0x1, %edx
callq 0x32c0
movl 0x10(%r14), %esi
leaq 0x8(%rsp), %rdi
callq 0x503a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
leaq 0x1817f(%rip), %rsi     # 0x1cd4d
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x4409
leaq 0x181a0(%rip), %rsi     # 0x1cd87
leaq 0x50(%rsp), %rdi
movl $0x9, %edx
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x50(%rsp), %rdi
callq 0x3220
leaq 0x8(%rsp), %rsi
movb $0x28, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
movq %rax, %r15
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4318
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
leaq 0x28(%rsp), %rsi
movb $0x29, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x4409
leaq 0x180f2(%rip), %rsi     # 0x1cd4f
leaq 0x50(%rsp), %rdi
movl $0x4, %edx
callq 0x32c0
movq 0x10(%r14), %rdi
movq %rdi, %rax
shlq $0x17, %rax
sarq $0x17, %rax
cvtsi2sd %rax, %xmm0
shrq $0x29, %rdi
andl $0x7f, %edi
addl $-0x68, %edi
callq 0x3370
leaq 0x50(%rsp), %rdi
callq 0x33c0
jmp 0x4424
xorl %r15d, %r15d
cmpq $0x0, 0x10(%r14)
sete %r15b
leaq 0x180a8(%rip), %rax     # 0x1cd59
leaq 0x1809c(%rip), %rsi     # 0x1cd54
cmoveq %rax, %rsi
orq $0x4, %r15
jmp 0x4a90
movl 0x10(%rax), %edx
cmpl $0x5, %edx
je 0x4d1b
cmpl $0x1, %edx
jne 0x4d21
leaq 0x1808a(%rip), %rsi     # 0x1cd63
leaq 0x50(%rsp), %rdi
movl $0x4, %edx
callq 0x32c0
movq 0x10(%r14), %rsi
jmp 0x4b80
addq $0x10, %r14
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x50f8
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
jmp 0x4409
cmpq %rcx, 0x18(%rax)
je 0x4d71
leaq 0x18051(%rip), %rsi     # 0x1cd79
leaq 0x50(%rsp), %rdi
movl $0x9, %edx
callq 0x32c0
movq (%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x3ecc
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
leaq 0x18024(%rip), %rsi     # 0x1cd83
movl $0x3, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x4409
movl $0x2, %ebp
leaq 0x5fd63(%rip), %rcx     # 0x64ae0
cmpq (%rcx,%rbp,8), %rax
je 0x4dbd
incq %rbp
cmpq $0x7, %rbp
jne 0x4d7d
leaq 0x17fd5(%rip), %rsi     # 0x1cd68
leaq 0x50(%rsp), %rdi
movl $0x10, %edx
callq 0x32c0
movq 0x10(%r14), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
leaq 0x50(%rsp), %rdi
callq 0x3220
jmp 0x4424
leaq 0x17f89(%rip), %rsi     # 0x1cd4d
leaq 0x50(%rsp), %rdi
movl $0x1, %edx
callq 0x32c0
movq %rbx, 0x48(%rsp)
movl $0x28, %r15d
movabsq $0xffffffffffff, %rbx   # imm = 0xFFFFFFFFFFFF
leaq 0x8(%rsp), %r12
leaq 0x50(%rsp), %r13
movq 0x10(%r14), %rax
andq %rbx, %rax
movl %r15d, %ecx
shrq %cl, %rax
movzbl %al, %esi
movq %r12, %rdi
callq 0x503a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r13, %rdi
callq 0x32c0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x4e38
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
addq $-0x8, %r15
decq %rbp
jne 0x4df2
leaq 0x17f05(%rip), %rsi     # 0x1cd4d
leaq 0x50(%rsp), %rdi
movl $0x1, %edx
callq 0x32c0
movq 0x48(%rsp), %rbx
jmp 0x4424
jmp 0x4f66
jmp 0x4f66
jmp 0x4f46
jmp 0x4f66
jmp 0x4f46
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
jmp 0x4f52
jmp 0x4f66
jmp 0x4f46
jmp 0x4f66
jmp 0x4f66
jmp 0x4f66
jmp 0x4f66
jmp 0x4f26
jmp 0x4f46
jmp 0x4f46
jmp 0x4f46
jmp 0x4f66
jmp 0x4f46
jmp 0x4f66
jmp 0x4f46
jmp 0x4f46
jmp 0x4f26
jmp 0x4f46
jmp 0x4f26
jmp 0x4f46
jmp 0x4f46
jmp 0x4f46
jmp 0x4f46
jmp 0x4f46
jmp 0x4f46
jmp 0x4f66
jmp 0x4f66
jmp 0x4f66
jmp 0x4f66
jmp 0x4f46
jmp 0x4f66
jmp 0x4f66
jmp 0x4f66
jmp 0x4f66
jmp 0x4f66
jmp 0x4f26
jmp 0x4f26
jmp 0x4f26
jmp 0x4f46
jmp 0x4f46
jmp 0x4f46
jmp 0x4f46
jmp 0x4f46
jmp 0x4f66
jmp 0x4f46
jmp 0x4f46
jmp 0x4f66
jmp 0x4f66
jmp 0x4f66
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
jne 0x4f57
jmp 0x4f69
jmp 0x4f46
jmp 0x4f66
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4f49
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
jmp 0x4f49
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4f69
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
jmp 0x4f69
movq %rax, %rbx
movq 0x1f058(%rip), %rsi     # 0x23fc8
leaq 0x50(%rsp), %rdi
callq 0x3130
leaq 0xc0(%rsp), %rdi
callq 0x30a0
movq %rbx, %rdi
callq 0x3410