// File: Heptagon196[P]Gos/GosVM.cpp
// Function: GosVM::VMExecutable::Write(std::ostream&, bool)
void GosVM::VMExecutable::Write(std::ostream& out, bool prettified) {
    curContent = &getContent();
    auto& cst = getConst();
    if (prettified) {
        StartRead();
        while (readProgress < curContent->length() && readProgress < endPos) {
            out << readProgress << ' ';
            int op = GetOperation();
            out << operatorInfos[op].name << ' ';
            if (op == DEF_CLASS) {
                out << GetParamString() << ' ';
                int len = GetParamInt();
                out << len << ' ';
                while (len--) {
                    out << GetParamString() << ' ';
                }
                out << std::endl;
            } else if (op == ATTR) {
                out << GetParamString() << ' ';
                int len = GetParamInt();
                out << len << ' ';
                while (len--) {
                    out << GetParamString() << ' ';
                }
                out << std::endl;
            } else if (op == DEF_MEMBER_VAR) {
                out << GetParamString() << ' ';
                out << GetParamString() << std::endl;
            } else if (op == DEF_MEMBER_FUNC) {
                out << GetParamString() << ' ';
                out << GetParamString() << ' ';
                int len = GetParamInt();
                out << len << ' ';
                while (len--) {
                    out << GetParamString() << ' ';
                }
                out << GetParamInt() << std::endl;
            } else if (op == DEF_STATIC_VAR) {
                out << GetParamString() << ' ';
                out << GetParamString() << std::endl;
            } else if (op == DEF_STATIC_FUNC) {
                out << GetParamString() << std::endl;
                out << GetParamString() << ' ';
                int len = GetParamInt();
                out << len << ' ';
                while (len--) {
                    out << GetParamString() << ' ';
                }
                out << GetParamInt() << std::endl;
            } else if (op == ALLOC) {
                out << GetParamInt() << std::endl;
            } else if (op == NS) {
                out << GetParamString() << std::endl;
            } else if (op == NEW) {
                out << GetParamString() << ' ';
                out << GetParamInt() << ' ';
                int len = GetParamInt();
                out << len << ' ';
                while (len--) {
                    out << GetParamInt() << ' ';
                }
                out << std::endl;
            } else if (op == NEW_STR) {
                out << GetParamInt() << ' ';
                out << "\"" << GetParamString() << "\"" << std::endl;
            } else if (op == NEW_NUM) {
                int8_t type = GetParamByte();
                out << (int)type << ' ';
                out << GetParamInt() << ' ';
                RTConstNum num = cst.nums[GetParamInt()];
                switch (type) {
                    case 0: out << num.data.i8; break;
                    case 1: out << num.data.i32; break;
                    case 2: out << num.data.i64; break;
                    case 3: out << num.data.f; break;
                    case 4: out << num.data.d; break;
                }
                out << std::endl;
            } else if (op == MOV) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == REF) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == CLONE) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == ARG) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == GET_FIELD) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << ' ';
                out << GetParamString() << std::endl;
            } else if (op == ADD) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == SUB) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == MUL) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == DIV) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == REM) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == AND) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == OR) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == XOR) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == NOT) {
                out << GetParamInt() << std::endl;
            } else if (op == RET) {
                out << GetParamInt() << std::endl;
            } else if (op == JMP) {
                out << GetParamInt() << std::endl;
            } else if (op == IF) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == BOX) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == UNBOX) {
                out << GetParamInt() << ' ';
                out << GetParamInt() << std::endl;
            } else if (op == CALL) {
                out << GetParamInt() << ' ';
                out << GetParamString() << ' ';
                int cnt = GetParamInt();
                out << cnt << ' ';
                while (cnt--) {
                    out << GetParamInt() << ' ';
                }
                out << std::endl;
            }
        }
    } else {
        for (auto [s, id] : cst.strMap) {
            out << (char)STR;
            for (int i = 0; i < 32; i += 8) {
                out << (char)((id >> i) & ((1 << 9) - 1));
            }
            int len = s.length();
            for (int i = 0; i < 32; i += 8) {
                out << (char)((len >> i) & ((1 << 9) - 1));
            }
            out << s;
        }
        for (auto [s, id] : cst.numMap) {
            out << (char)NUM;
            for (int i = 0; i < 32; i += 8) {
                out << (char)((id >> i) & ((1 << 9) - 1));
            }
            int64_t val = s.data.i64;
            for (int i = 0; i < 64; i += 8) {
                out << (char)((val >> i) & ((1 << 9) - 1));
            }
        }
        out << (*curContent);
    }
}

// Assembly:
subq $0x338, %rsp            # imm = 0x338
movb %dl, %al
movq %rdi, 0x330(%rsp)
movq %rsi, 0x328(%rsp)
andb $0x1, %al
movb %al, 0x327(%rsp)
movq 0x330(%rsp), %rdi
movq %rdi, 0x228(%rsp)
movq (%rdi), %rax
callq *0x10(%rax)
movq 0x228(%rsp), %rdi
movq %rax, 0x8(%rdi)
movq (%rdi), %rax
callq *0x8(%rax)
movq %rax, 0x318(%rsp)
testb $0x1, 0x327(%rsp)
je 0x1afefa
movq 0x228(%rsp), %rdi
callq 0x1a93a0
movq 0x228(%rsp), %rax
movslq 0x18(%rax), %rcx
movq %rcx, 0x218(%rsp)
movq 0x8(%rax), %rdi
callq 0x55b20
movq 0x218(%rsp), %rcx
movq %rax, %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, 0x227(%rsp)
jae 0x1aeacb
movq 0x228(%rsp), %rcx
movl 0x18(%rcx), %eax
cmpl 0x14(%rcx), %eax
setl %al
movb %al, 0x227(%rsp)
movb 0x227(%rsp), %al
testb $0x1, %al
jne 0x1aeadb
jmp 0x1afef5
movq 0x228(%rsp), %rax
movq 0x328(%rsp), %rdi
movl 0x18(%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
callq 0x1a9910
movsbl (%rax), %eax
movl %eax, 0x314(%rsp)
movq 0x328(%rsp), %rdi
movslq 0x314(%rsp), %rax
leaq 0x152b52(%rip), %rsi    # 0x301680
shlq $0x5, %rax
addq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
cmpl $0x1, 0x314(%rsp)
jne 0x1aec33
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x210(%rsp)
callq 0x1a9a90
movq 0x210(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
callq 0x1a99a0
movl (%rax), %eax
movl %eax, 0x310(%rsp)
movq 0x328(%rsp), %rdi
movl 0x310(%rsp), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movl 0x310(%rsp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, 0x310(%rsp)
cmpl $0x0, %eax
je 0x1aec1a
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x208(%rsp)
callq 0x1a9a90
movq 0x208(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
jmp 0x1aebc6
movq 0x328(%rsp), %rdi
movq 0x1523b7(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afef0
cmpl $0x2, 0x314(%rsp)
jne 0x1aed1f
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x200(%rsp)
callq 0x1a9a90
movq 0x200(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
callq 0x1a99a0
movl (%rax), %eax
movl %eax, 0x30c(%rsp)
movq 0x328(%rsp), %rdi
movl 0x30c(%rsp), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movl 0x30c(%rsp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, 0x30c(%rsp)
cmpl $0x0, %eax
je 0x1aed06
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1f8(%rsp)
callq 0x1a9a90
movq 0x1f8(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
jmp 0x1aecb2
movq 0x328(%rsp), %rdi
movq 0x1522cb(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afeee
cmpl $0x3, 0x314(%rsp)
jne 0x1aeda4
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1e8(%rsp)
callq 0x1a9a90
movq 0x1e8(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1f0(%rsp)
callq 0x1a9a90
movq 0x1f0(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movq 0x152246(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afeec
cmpl $0x4, 0x314(%rsp)
jne 0x1aeef1
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1d8(%rsp)
callq 0x1a9a90
movq 0x1d8(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1e0(%rsp)
callq 0x1a9a90
movq 0x1e0(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
callq 0x1a99a0
movl (%rax), %eax
movl %eax, 0x308(%rsp)
movq 0x328(%rsp), %rdi
movl 0x308(%rsp), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movl 0x308(%rsp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, 0x308(%rsp)
cmpl $0x0, %eax
je 0x1aeeb1
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1d0(%rsp)
callq 0x1a9a90
movq 0x1d0(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
jmp 0x1aee5d
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1c8(%rsp)
callq 0x1a99a0
movq 0x1c8(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x1520f9(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afeea
cmpl $0x5, 0x314(%rsp)
jne 0x1aef76
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1b8(%rsp)
callq 0x1a9a90
movq 0x1b8(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1c0(%rsp)
callq 0x1a9a90
movq 0x1c0(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movq 0x152074(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afee8
cmpl $0x6, 0x314(%rsp)
jne 0x1af0c5
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1a8(%rsp)
callq 0x1a9a90
movq 0x1a8(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movq 0x152025(%rip), %rsi    # 0x300fe0
callq 0x135d0
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1b0(%rsp)
callq 0x1a9a90
movq 0x1b0(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
callq 0x1a99a0
movl (%rax), %eax
movl %eax, 0x304(%rsp)
movq 0x328(%rsp), %rdi
movl 0x304(%rsp), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movl 0x304(%rsp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, 0x304(%rsp)
cmpl $0x0, %eax
je 0x1af085
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x1a0(%rsp)
callq 0x1a9a90
movq 0x1a0(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
jmp 0x1af031
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x198(%rsp)
callq 0x1a99a0
movq 0x198(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x151f25(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afee6
cmpl $0x7, 0x314(%rsp)
jne 0x1af10f
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x190(%rsp)
callq 0x1a99a0
movq 0x190(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x151edb(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afee4
cmpl $0xa, 0x314(%rsp)
jne 0x1af15a
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x188(%rsp)
callq 0x1a9a90
movq 0x188(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movq 0x151e90(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afee2
cmpl $0xb, 0x314(%rsp)
jne 0x1af27e
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x178(%rsp)
callq 0x1a9a90
movq 0x178(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x180(%rsp)
callq 0x1a99a0
movq 0x180(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
callq 0x1a99a0
movl (%rax), %eax
movl %eax, 0x300(%rsp)
movq 0x328(%rsp), %rdi
movl 0x300(%rsp), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movl 0x300(%rsp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, 0x300(%rsp)
cmpl $0x0, %eax
je 0x1af265
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x170(%rsp)
callq 0x1a99a0
movq 0x170(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
jmp 0x1af212
movq 0x328(%rsp), %rdi
movq 0x151d6c(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afee0
cmpl $0xc, 0x314(%rsp)
jne 0x1af321
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x160(%rsp)
callq 0x1a99a0
movq 0x160(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x328(%rsp), %rdi
leaq 0x719ca(%rip), %rsi     # 0x220c9e
callq 0x13380
movq 0x228(%rsp), %rdi
movq %rax, 0x168(%rsp)
callq 0x1a9a90
movq 0x168(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
leaq 0x71996(%rip), %rsi     # 0x220c9e
callq 0x13380
movq %rax, %rdi
movq 0x151cc9(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afede
cmpl $0xd, 0x314(%rsp)
jne 0x1af4a3
movq 0x228(%rsp), %rdi
callq 0x1a9970
movb (%rax), %al
movb %al, 0x2ff(%rsp)
movq 0x328(%rsp), %rdi
movsbl 0x2ff(%rsp), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
movl %esi, 0x14c(%rsp)
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x140(%rsp)
callq 0x1a99a0
movq 0x140(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movl 0x14c(%rsp), %esi
movq %rax, %rdi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x318(%rsp), %rax
addq $0x50, %rax
movq %rax, 0x150(%rsp)
callq 0x1a99a0
movq 0x150(%rsp), %rdi
movslq (%rax), %rsi
callq 0x1b4ad0
movq (%rax), %rax
movq %rax, 0x2f0(%rsp)
movsbl 0x2ff(%rsp), %eax
movl %eax, %ecx
movq %rcx, 0x158(%rsp)
subl $0x4, %eax
ja 0x1af48a
movq 0x158(%rsp), %rax
leaq 0x71161(%rip), %rcx     # 0x220570
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x328(%rsp), %rdi
movsbl 0x2f0(%rsp), %esi
callq 0x13410
jmp 0x1af48a
movq 0x328(%rsp), %rdi
movl 0x2f0(%rsp), %esi
callq 0x131d0
jmp 0x1af48a
movq 0x328(%rsp), %rdi
movq 0x2f0(%rsp), %rsi
callq 0x13230
jmp 0x1af48a
movq 0x328(%rsp), %rdi
movss 0x2f0(%rsp), %xmm0
callq 0x135f0
jmp 0x1af48a
movq 0x328(%rsp), %rdi
movsd 0x2f0(%rsp), %xmm0
callq 0x13490
movq 0x328(%rsp), %rdi
movq 0x151b47(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afedc
cmpl $0xe, 0x314(%rsp)
jne 0x1af526
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x130(%rsp)
callq 0x1a99a0
movq 0x130(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x138(%rsp)
callq 0x1a99a0
movq 0x138(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x151ac4(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afeda
cmpl $0xf, 0x314(%rsp)
jne 0x1af5a9
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x120(%rsp)
callq 0x1a99a0
movq 0x120(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x128(%rsp)
callq 0x1a99a0
movq 0x128(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x151a41(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afed8
cmpl $0x10, 0x314(%rsp)
jne 0x1af62c
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x110(%rsp)
callq 0x1a99a0
movq 0x110(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x118(%rsp)
callq 0x1a99a0
movq 0x118(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x1519be(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afed6
cmpl $0x11, 0x314(%rsp)
jne 0x1af6af
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x100(%rsp)
callq 0x1a99a0
movq 0x100(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x108(%rsp)
callq 0x1a99a0
movq 0x108(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x15193b(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afed4
cmpl $0x12, 0x314(%rsp)
jne 0x1af770
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xe8(%rsp)
callq 0x1a99a0
movq 0xe8(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xf0(%rsp)
callq 0x1a99a0
movq 0xf0(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xf8(%rsp)
callq 0x1a9a90
movq 0xf8(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movq 0x15187a(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afed2
cmpl $0x13, 0x314(%rsp)
jne 0x1af7f3
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xd8(%rsp)
callq 0x1a99a0
movq 0xd8(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xe0(%rsp)
callq 0x1a99a0
movq 0xe0(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x1517f7(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afed0
cmpl $0x14, 0x314(%rsp)
jne 0x1af876
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xc8(%rsp)
callq 0x1a99a0
movq 0xc8(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xd0(%rsp)
callq 0x1a99a0
movq 0xd0(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x151774(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afece
cmpl $0x15, 0x314(%rsp)
jne 0x1af8f9
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xb8(%rsp)
callq 0x1a99a0
movq 0xb8(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xc0(%rsp)
callq 0x1a99a0
movq 0xc0(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x1516f1(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afecc
cmpl $0x16, 0x314(%rsp)
jne 0x1af97c
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xa8(%rsp)
callq 0x1a99a0
movq 0xa8(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xb0(%rsp)
callq 0x1a99a0
movq 0xb0(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x15166e(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afeca
cmpl $0x17, 0x314(%rsp)
jne 0x1af9ff
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x98(%rsp)
callq 0x1a99a0
movq 0x98(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0xa0(%rsp)
callq 0x1a99a0
movq 0xa0(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x1515eb(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afec8
cmpl $0x18, 0x314(%rsp)
jne 0x1afa82
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x88(%rsp)
callq 0x1a99a0
movq 0x88(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x90(%rsp)
callq 0x1a99a0
movq 0x90(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x151568(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afec6
cmpl $0x19, 0x314(%rsp)
jne 0x1afaff
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x78(%rsp)
callq 0x1a99a0
movq 0x78(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x80(%rsp)
callq 0x1a99a0
movq 0x80(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x1514eb(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afec4
cmpl $0x1a, 0x314(%rsp)
jne 0x1afb76
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x68(%rsp)
callq 0x1a99a0
movq 0x68(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x70(%rsp)
callq 0x1a99a0
movq 0x70(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x151474(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afec2
cmpl $0x1b, 0x314(%rsp)
jne 0x1afbba
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x60(%rsp)
callq 0x1a99a0
movq 0x60(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x151430(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afec0
cmpl $0x1c, 0x314(%rsp)
jne 0x1afbfe
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x58(%rsp)
callq 0x1a99a0
movq 0x58(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x1513ec(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afebe
cmpl $0x1d, 0x314(%rsp)
jne 0x1afc42
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x50(%rsp)
callq 0x1a99a0
movq 0x50(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x1513a8(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afebc
cmpl $0x1e, 0x314(%rsp)
jne 0x1afcb9
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x40(%rsp)
callq 0x1a99a0
movq 0x40(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x48(%rsp)
callq 0x1a99a0
movq 0x48(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x151331(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afeba
cmpl $0x1f, 0x314(%rsp)
jne 0x1afd30
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x30(%rsp)
callq 0x1a99a0
movq 0x30(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x38(%rsp)
callq 0x1a99a0
movq 0x38(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x1512ba(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afeb8
cmpl $0x20, 0x314(%rsp)
jne 0x1afda7
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x20(%rsp)
callq 0x1a99a0
movq 0x20(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x28(%rsp)
callq 0x1a99a0
movq 0x28(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movq 0x151243(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afeb6
cmpl $0x21, 0x314(%rsp)
jne 0x1afeb4
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x10(%rsp)
callq 0x1a99a0
movq 0x10(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x18(%rsp)
callq 0x1a9a90
movq 0x18(%rsp), %rdi
movq %rax, %rsi
callq 0x131a0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movq 0x228(%rsp), %rdi
callq 0x1a99a0
movl (%rax), %eax
movl %eax, 0x2ec(%rsp)
movq 0x328(%rsp), %rdi
movl 0x2ec(%rsp), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
movl 0x2ec(%rsp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, 0x2ec(%rsp)
cmpl $0x0, %eax
je 0x1afea0
movq 0x228(%rsp), %rdi
movq 0x328(%rsp), %rax
movq %rax, 0x8(%rsp)
callq 0x1a99a0
movq 0x8(%rsp), %rdi
movl (%rax), %esi
callq 0x131d0
movq %rax, %rdi
movl $0x20, %esi
callq 0x13400
jmp 0x1afe53
movq 0x328(%rsp), %rdi
movq 0x151131(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1afeb6
jmp 0x1afeb8
jmp 0x1afeba
jmp 0x1afebc
jmp 0x1afebe
jmp 0x1afec0
jmp 0x1afec2
jmp 0x1afec4
jmp 0x1afec6
jmp 0x1afec8
jmp 0x1afeca
jmp 0x1afecc
jmp 0x1afece
jmp 0x1afed0
jmp 0x1afed2
jmp 0x1afed4
jmp 0x1afed6
jmp 0x1afed8
jmp 0x1afeda
jmp 0x1afedc
jmp 0x1afede
jmp 0x1afee0
jmp 0x1afee2
jmp 0x1afee4
jmp 0x1afee6
jmp 0x1afee8
jmp 0x1afeea
jmp 0x1afeec
jmp 0x1afeee
jmp 0x1afef0
jmp 0x1aea7d
jmp 0x1b0258
movq 0x318(%rsp), %rax
addq $0x18, %rax
movq %rax, 0x2e0(%rsp)
movq 0x2e0(%rsp), %rdi
callq 0x1b4d60
movq %rax, 0x2d8(%rsp)
movq 0x2e0(%rsp), %rdi
callq 0x1b4780
movq %rax, 0x2d0(%rsp)
leaq 0x2d8(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
callq 0x1b4730
xorb $-0x1, %al
testb $0x1, %al
jne 0x1aff58
jmp 0x1b00ba
leaq 0x2d8(%rsp), %rdi
callq 0x1b4d90
movq %rax, %rsi
leaq 0x2a8(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x1b4db0
movq (%rsp), %rdi
callq 0x1b4df0
movq (%rsp), %rdi
movq %rax, 0x2a0(%rsp)
callq 0x1b4e00
movq %rax, 0x298(%rsp)
movq 0x328(%rsp), %rdi
movl $0x8, %esi
callq 0x13400
jmp 0x1affaf
movl $0x0, 0x288(%rsp)
cmpl $0x20, 0x288(%rsp)
jge 0x1b0024
movq 0x328(%rsp), %rdi
movq 0x298(%rsp), %rax
movl (%rax), %eax
movb 0x288(%rsp), %cl
sarl %cl, %eax
movsbl %al, %esi
callq 0x13400
jmp 0x1affe9
jmp 0x1affeb
movl 0x288(%rsp), %eax
addl $0x8, %eax
movl %eax, 0x288(%rsp)
jmp 0x1affba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x290(%rsp)
movl %eax, 0x28c(%rsp)
leaq 0x2a8(%rsp), %rdi
callq 0x1b4e10
jmp 0x1b0260
movq 0x2a0(%rsp), %rdi
callq 0x55b20
movl %eax, 0x284(%rsp)
movl $0x0, 0x280(%rsp)
cmpl $0x20, 0x280(%rsp)
jge 0x1b0084
movq 0x328(%rsp), %rdi
movl 0x284(%rsp), %eax
movb 0x280(%rsp), %cl
sarl %cl, %eax
movsbl %al, %esi
callq 0x13400
jmp 0x1b006f
jmp 0x1b0071
movl 0x280(%rsp), %eax
addl $0x8, %eax
movl %eax, 0x280(%rsp)
jmp 0x1b0043
movq 0x328(%rsp), %rdi
movq 0x2a0(%rsp), %rsi
callq 0x131a0
jmp 0x1b009b
leaq 0x2a8(%rsp), %rdi
callq 0x1b4e10
leaq 0x2d8(%rsp), %rdi
callq 0x1b4e20
jmp 0x1aff38
movq 0x318(%rsp), %rax
addq $0x68, %rax
movq %rax, 0x278(%rsp)
movq 0x278(%rsp), %rdi
callq 0x1b4e50
movq %rax, 0x270(%rsp)
movq 0x278(%rsp), %rdi
callq 0x1b49e0
movq %rax, 0x268(%rsp)
leaq 0x270(%rsp), %rdi
leaq 0x268(%rsp), %rsi
callq 0x1b4990
xorb $-0x1, %al
testb $0x1, %al
jne 0x1b0118
jmp 0x1b023f
leaq 0x270(%rsp), %rdi
callq 0x1b4e80
movq (%rax), %rcx
movq %rcx, 0x258(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x260(%rsp)
leaq 0x258(%rsp), %rdi
callq 0x1b4ea0
movq %rax, 0x250(%rsp)
leaq 0x258(%rsp), %rdi
callq 0x1b4eb0
movq %rax, 0x248(%rsp)
movq 0x328(%rsp), %rdi
movl $0x9, %esi
callq 0x13400
movl $0x0, 0x244(%rsp)
cmpl $0x20, 0x244(%rsp)
jge 0x1b01c8
movq 0x328(%rsp), %rdi
movq 0x248(%rsp), %rax
movl (%rax), %eax
movl 0x244(%rsp), %ecx
sarl %cl, %eax
andl $0x1ff, %eax            # imm = 0x1FF
movsbl %al, %esi
callq 0x13400
movl 0x244(%rsp), %eax
addl $0x8, %eax
movl %eax, 0x244(%rsp)
jmp 0x1b0183
movq 0x250(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x238(%rsp)
movl $0x0, 0x234(%rsp)
cmpl $0x40, 0x234(%rsp)
jge 0x1b022b
movq 0x328(%rsp), %rdi
movq 0x238(%rsp), %rax
movl 0x234(%rsp), %ecx
sarq %cl, %rax
andq $0x1ff, %rax            # imm = 0x1FF
movsbl %al, %esi
callq 0x13400
movl 0x234(%rsp), %eax
addl $0x8, %eax
movl %eax, 0x234(%rsp)
jmp 0x1b01e6
jmp 0x1b022d
leaq 0x270(%rsp), %rdi
callq 0x1b4ec0
jmp 0x1b00f8
movq 0x228(%rsp), %rax
movq 0x328(%rsp), %rdi
movq 0x8(%rax), %rsi
callq 0x131a0
addq $0x338, %rsp            # imm = 0x338
retq
movq 0x290(%rsp), %rdi
callq 0x133f0
nopl (%rax)