// File: /workspace/github_cpp_makefile_star2_O3/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 0x4aa7
leaq 0x17d90(%rip), %rcx     # 0x1c150
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 0x438a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
movq %rax, %r15
movl 0x8(%r14), %eax
leaq 0x1f4df(%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 0x438a
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 0x447b
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4496
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x58(%rsp), %rsi
movq %rbx, %rdi
callq 0x33a0
movq 0x1fb1e(%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 0x1f413(%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 0x438a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
jmp 0x447b
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x438a
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 0x447b
leaq 0x18806(%rip), %rsi     # 0x1cd69
leaq 0x50(%rsp), %rdi
movl $0x6, %edx
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x8(%rsp), %rdi
xorl %edx, %edx
callq 0x15a7c
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
jmp 0x447b
cmpq $0x0, (%r14)
movq 0x18(%r14), %rax
je 0x4b03
cmpq $0x17, %rax
jg 0x4b84
leaq 0x182aa(%rip), %rcx     # 0x1c864
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 0x438a
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 0x447b
movq (%r14), %rax
cmpq 0x603c1(%rip), %rax     # 0x649e8
je 0x4bde
movq 0x603c4(%rip), %rcx     # 0x649f8
cmpq %rcx, %rax
je 0x4c6f
cmpq 0x603ac(%rip), %rax     # 0x649f0
je 0x4cc0
cmpq 0x60387(%rip), %rax     # 0x649d8
je 0x4d08
cmpq 0x60372(%rip), %rax     # 0x649d0
je 0x4d5b
cmpq 0x6035d(%rip), %rax     # 0x649c8
jne 0x4d2f
movabsq $0x1ffffffffff, %rdx    # imm = 0x1FFFFFFFFFF
andq 0x10(%r14), %rdx
cmpq $0x7800, %rdx           # imm = 0x7800
jne 0x4d2f
movl $0x3, %r15d
leaq 0x18786(%rip), %rsi     # 0x1ce1f
jmp 0x4af1
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
xorl %edx, %edx
callq 0x15a7c
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
jmp 0x447b
leaq 0x186a3(%rip), %rsi     # 0x1cd71
leaq 0x50(%rsp), %rdi
movl $0x6, %edx
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x8(%rsp), %rdi
xorl %edx, %edx
callq 0x15a7c
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
jmp 0x447b
leaq 0x186fd(%rip), %rsi     # 0x1ce0a
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 0x4496
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x438a
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 0x438a
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 0x4460
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x438a
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 0x15a7c
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
jmp 0x4460
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 0x438a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
movq %rax, %r15
leaq 0x183d5(%rip), %rsi     # 0x1cc39
movl $0x2, %edx
movq %rax, %rdi
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x28(%rsp), %rdi
callq 0x438a
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 0x4460
leaq 0x184c0(%rip), %rsi     # 0x1cd72
leaq 0x50(%rsp), %rdi
movl $0x5, %edx
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x8(%rsp), %rdi
xorl %edx, %edx
callq 0x15a7c
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 0x4900
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
cmpq $0x0, 0x10(%r14)
je 0x4496
leaq 0x18547(%rip), %rsi     # 0x1ce59
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 0x18516(%rip), %r13     # 0x1ce51
cmpq 0x10(%r14), %rbx
je 0x4951
movl $0x2, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x32c0
movq 0x18(%rbx), %rsi
movq %r15, %rdi
callq 0x438a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r12, %rdi
callq 0x32c0
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4986
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x10(%rbx), %rbx
testq %rbx, %rbx
jne 0x493b
leaq 0x18eb2(%rip), %rsi     # 0x1d848
leaq 0x50(%rsp), %rdi
movl $0x1, %edx
callq 0x32c0
movq 0x48(%rsp), %rbx
jmp 0x4496
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x438a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
movq %rax, %r15
movl 0x8(%r14), %eax
leaq 0x1ef11(%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 0x438a
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x32c0
jmp 0x4460
leaq 0x1842f(%rip), %rsi     # 0x1ce54
leaq 0x50(%rsp), %rdi
movl $0x6, %edx
callq 0x32c0
movq 0x10(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x438a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
movq %rax, %r15
leaq 0x183f1(%rip), %rsi     # 0x1ce51
movl $0x2, %edx
movq %rax, %rdi
callq 0x32c0
movq 0x18(%r14), %rsi
leaq 0x28(%rsp), %rdi
callq 0x3f3e
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 0x4460
leaq 0x183ad(%rip), %rsi     # 0x1ce5b
leaq 0x50(%rsp), %rdi
movl $0x2, %r15d
movl $0x2, %edx
callq 0x32c0
movl 0x8(%r14), %eax
leaq 0x1ee22(%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 0x18353(%rip), %rsi     # 0x1ce44
leaq 0x50(%rsp), %rdi
movq %r15, %rdx
callq 0x32c0
jmp 0x4496
cmpq $0x1d, %rax
jg 0x4b84
leaq 0x1f780(%rip), %rcx     # 0x24290
movq (%rcx,%rax,8), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4ff9
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 0x438a
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 0x4460
cmpq $0x6d, %rax
jne 0x4bf9
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 0x438a
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 0x447b
movq 0x10(%r14), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
leaq 0x50(%rsp), %rdi
callq 0x3220
jmp 0x4496
leaq 0x18247(%rip), %rsi     # 0x1ce47
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 0x438a
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 0x447b
leaq 0x18197(%rip), %rsi     # 0x1ce0d
leaq 0x50(%rsp), %rdi
movl $0x1, %edx
callq 0x32c0
movl 0x10(%r14), %esi
leaq 0x8(%rsp), %rdi
callq 0x50a4
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
leaq 0x1815f(%rip), %rsi     # 0x1ce0d
movl $0x1, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x447b
leaq 0x18148(%rip), %rsi     # 0x1ce0f
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 0x3360
leaq 0x50(%rsp), %rdi
callq 0x33b0
jmp 0x4496
xorl %r15d, %r15d
cmpq $0x0, 0x10(%r14)
sete %r15b
leaq 0x180fe(%rip), %rax     # 0x1ce19
leaq 0x180f2(%rip), %rsi     # 0x1ce14
cmoveq %rax, %rsi
orq $0x4, %r15
jmp 0x4af1
movl 0x10(%rax), %edx
cmpl $0x5, %edx
je 0x4d85
cmpl $0x1, %edx
jne 0x4d8b
leaq 0x180e0(%rip), %rsi     # 0x1ce23
leaq 0x50(%rsp), %rdi
movl $0x4, %edx
callq 0x32c0
movq 0x10(%r14), %rsi
jmp 0x4bea
addq $0x10, %r14
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x5162
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
jmp 0x447b
cmpq %rcx, 0x18(%rax)
je 0x4ddb
leaq 0x180a7(%rip), %rsi     # 0x1ce39
leaq 0x50(%rsp), %rdi
movl $0x9, %edx
callq 0x32c0
movq (%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x3f3e
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x32c0
leaq 0x1807a(%rip), %rsi     # 0x1ce43
movl $0x3, %edx
movq %rax, %rdi
callq 0x32c0
jmp 0x447b
movl $0x2, %ebp
leaq 0x5fce9(%rip), %rcx     # 0x64ad0
cmpq (%rcx,%rbp,8), %rax
je 0x4e27
incq %rbp
cmpq $0x7, %rbp
jne 0x4de7
leaq 0x1802b(%rip), %rsi     # 0x1ce28
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 0x4496
leaq 0x17fdf(%rip), %rsi     # 0x1ce0d
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 0x50a4
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 0x4ea2
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
addq $-0x8, %r15
decq %rbp
jne 0x4e5c
leaq 0x17f5b(%rip), %rsi     # 0x1ce0d
leaq 0x50(%rsp), %rdi
movl $0x1, %edx
callq 0x32c0
movq 0x48(%rsp), %rbx
jmp 0x4496
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4fb0
jmp 0x4fd0
jmp 0x4fb0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
jmp 0x4fbc
jmp 0x4fd0
jmp 0x4fb0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4f90
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fd0
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4f90
jmp 0x4fb0
jmp 0x4f90
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4fb0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4f90
jmp 0x4f90
jmp 0x4f90
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fd0
jmp 0x4fb0
jmp 0x4fb0
jmp 0x4fd0
jmp 0x4fd0
jmp 0x4fd0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
jne 0x4fc1
jmp 0x4fd3
jmp 0x4fb0
jmp 0x4fd0
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4fb3
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
jmp 0x4fb3
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4fd3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
jmp 0x4fd3
movq %rax, %rbx
movq 0x1efee(%rip), %rsi     # 0x23fc8
leaq 0x50(%rsp), %rdi
callq 0x3130
leaq 0xc0(%rsp), %rdi
callq 0x30a0
movq %rbx, %rdi
callq 0x3400