// File: /workspace/github_cpp_makefile_star2_O1/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:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %edx, %ebp
movq %rsi, %rbx
movq %rdi, %r15
movq (%rdi), %rax
callq *0x10(%rax)
movq %rax, 0x8(%r15)
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
testl %ebp, %ebp
movq %rax, 0x38(%rsp)
je 0x994a7
movslq 0x10(%r15), %rsi
movl %esi, 0x18(%r15)
movq 0x8(%r15), %rax
cmpq %rsi, 0x8(%rax)
jbe 0x9963b
cmpl 0x14(%r15), %esi
jge 0x9963b
leaq 0x10(%rsp), %r12
movq %rbx, %rdi
callq 0x11550
movb $0x20, %bpl
movb %bpl, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x113c0
movslq 0x18(%r15), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movzbl (%rcx,%rax), %r14d
movsbq %r14b, %rax
shlq $0x5, %rax
leaq 0x85b5d(%rip), %rcx     # 0x11e610
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
movq %rbx, %rdi
callq 0x113c0
movb %bpl, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x113c0
decl %r14d
cmpl $0x20, %r14d
ja 0x98b70
leaq 0x372ef(%rip), %rcx     # 0xcfddc
movslq (%rcx,%r14,4), %rax
addq %rcx, %rax
jmpq *%rax
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %esi
movq %rbx, %rdi
callq 0x11550
leaq 0x10(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %esi
movq %rbx, %rdi
callq 0x11550
movq %rax, %r13
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq %r13, %rdi
callq 0x11040
movq %rax, %rdi
callq 0x11260
movslq 0x18(%r15), %rsi
movq 0x8(%r15), %rax
cmpq %rsi, 0x8(%rax)
jbe 0x9963b
cmpl 0x14(%r15), %esi
jl 0x98a6d
jmp 0x9963b
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
leaq 0x10(%rsp), %rsi
movb $0x20, (%rsi)
jmp 0x98e53
movslq 0x18(%r15), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movzbl (%rcx,%rax), %ebp
movsbl %bpl, %esi
movq %rbx, %rdi
callq 0x11550
movb $0x20, %r14b
leaq 0x10(%rsp), %r13
movb %r14b, (%r13)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x113c0
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %esi
movq %rbx, %rdi
callq 0x11550
movb %r14b, (%r13)
leaq 0x10(%rsp), %rsi
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq %rbx, %r13
cmpq $0x4, %rbp
ja 0x98b48
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movslq (%rcx,%rax), %rax
movq 0x38(%rsp), %rcx
movq 0x50(%rcx), %rcx
movl (%rcx,%rax,8), %esi
movl 0x4(%rcx,%rax,8), %eax
leaq 0x371de(%rip), %rcx     # 0xcfe60
movslq (%rcx,%rbp,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
leaq 0x10(%rsp), %rax
movb %sil, (%rax)
movl $0x1, %edx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x113c0
jmp 0x9949f
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq %r13, %rdi
callq 0x11040
movq %rax, %rdi
callq 0x11260
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
movb $0x20, %r14b
leaq 0x10(%rsp), %r13
movb %r14b, (%r13)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x113c0
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x11550
movb %r14b, (%r13)
leaq 0x10(%rsp), %rsi
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
testl %ebp, %ebp
je 0x98b28
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
leaq 0x10(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
decl %ebp
jne 0x98d9d
jmp 0x98b28
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %esi
movq %rbx, %rdi
callq 0x11550
movb $0x20, %bpl
leaq 0x10(%rsp), %r13
movb %bpl, (%r13)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x113c0
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %esi
movq %rbx, %rdi
callq 0x11550
movb %bpl, (%r13)
leaq 0x10(%rsp), %rsi
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
jmp 0x98b45
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %esi
movq %rbx, %rdi
callq 0x11550
leaq 0x10(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
leaq 0x376a7(%rip), %rbp     # 0xd057e
movl $0x1, %edx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x113c0
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
movq %rax, %r13
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x113c0
jmp 0x98b48
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
movb $0x20, %r14b
leaq 0x10(%rsp), %r13
movb %r14b, (%r13)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x113c0
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %esi
movq %rbx, %rdi
callq 0x11550
movb %r14b, (%r13)
leaq 0x10(%rsp), %r13
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x113c0
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x11550
movb %r14b, (%r13)
leaq 0x10(%rsp), %rsi
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
movq %rbx, %r13
testl %ebp, %ebp
je 0x98b48
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %esi
movq %rbx, %rdi
callq 0x11550
leaq 0x10(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
decl %ebp
jne 0x99003
jmp 0x9949f
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
movb $0x20, %r14b
leaq 0x10(%rsp), %r13
movb %r14b, (%r13)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x113c0
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x11550
movb %r14b, (%r13)
leaq 0x10(%rsp), %rsi
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
movq %rbx, %r13
testl %ebp, %ebp
je 0x98b48
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
leaq 0x10(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
decl %ebp
jne 0x990d3
jmp 0x9949f
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %esi
movq %rbx, %rdi
callq 0x11550
movq %r15, %r14
movb $0x20, %r15b
leaq 0x10(%rsp), %r13
movb %r15b, (%r13)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x113c0
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
movb %r15b, (%r13)
leaq 0x10(%rsp), %r13
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x113c0
movslq 0x18(%r14), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x11550
movb %r15b, (%r13)
movq %r14, %r15
leaq 0x10(%rsp), %rsi
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
movq %rbx, %r13
testl %ebp, %ebp
je 0x98b48
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %esi
movq %rbx, %rdi
callq 0x11550
leaq 0x10(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
decl %ebp
jne 0x991fb
jmp 0x9949f
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
movb $0x20, %r14b
leaq 0x10(%rsp), %r13
movb %r14b, (%r13)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x113c0
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x11550
movb %r14b, (%r13)
leaq 0x10(%rsp), %rsi
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
movq %rbx, %r13
testl %ebp, %ebp
je 0x98b48
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
leaq 0x10(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
decl %ebp
jne 0x992cb
jmp 0x9949f
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
movq %r15, %r14
movb $0x20, %r15b
leaq 0x10(%rsp), %r13
movb %r15b, (%r13)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x113c0
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
movb %r15b, (%r13)
leaq 0x10(%rsp), %r13
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x113c0
movslq 0x18(%r14), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x11550
movb %r15b, (%r13)
movq %r14, %r15
leaq 0x10(%rsp), %rsi
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
testl %ebp, %ebp
je 0x98b28
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
leaq 0x10(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x113c0
decl %ebp
jne 0x9940c
jmp 0x98b28
shlq $0x20, %rax
orq %rsi, %rax
movq %rax, %xmm0
jmp 0x9948d
shlq $0x20, %rax
orq %rsi, %rax
movq %rbx, %rdi
movq %rax, %rsi
callq 0x11330
jmp 0x9949f
movd %esi, %xmm0
cvtss2sd %xmm0, %xmm0
movq %rbx, %rdi
callq 0x114f0
jmp 0x9949f
movq %rbx, %rdi
callq 0x11550
movq %rbx, %r13
jmp 0x98b48
movq %r15, 0x40(%rsp)
movq 0x28(%rax), %rbp
testq %rbp, %rbp
je 0x99590
leaq 0x20(%rsp), %r15
leaq 0xf(%rsp), %r13
movq %r15, 0x10(%rsp)
movq 0x8(%rbp), %rsi
movq 0x10(%rbp), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x37586
movl 0x28(%rbp), %eax
movl %eax, 0x30(%rsp)
movb $0x8, 0xf(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x113c0
movl $0xfffffff8, %r14d      # imm = 0xFFFFFFF8
movl 0x30(%rsp), %eax
leal 0x8(%r14), %ecx
sarl %cl, %eax
movb %al, 0xf(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x113c0
addl $0x8, %r14d
cmpl $0x18, %r14d
jb 0x994ff
movl 0x18(%rsp), %r14d
movl $0xfffffff8, %r12d      # imm = 0xFFFFFFF8
leal 0x8(%r12), %ecx
movl %r14d, %eax
sarl %cl, %eax
movb %al, 0xf(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x113c0
addl $0x8, %r12d
cmpl $0x18, %r12d
jb 0x99532
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %rbx, %rdi
callq 0x113c0
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x99583
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x11360
movq (%rbp), %rbp
testq %rbp, %rbp
jne 0x994c3
movq 0x38(%rsp), %rax
movq 0x78(%rax), %r13
testq %r13, %r13
je 0x99623
leaq 0x10(%rsp), %r15
movq 0x8(%r13), %r14
movl 0x10(%r13), %r12d
movb $0x9, 0x10(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x113c0
movl $0xfffffff8, %ebp       # imm = 0xFFFFFFF8
addl $0x8, %ebp
movl %r12d, %eax
movl %ebp, %ecx
sarl %cl, %eax
movb %al, 0x10(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x113c0
cmpl $0x18, %ebp
jb 0x995c9
movq $-0x8, %r12
addq $0x8, %r12
movq %r14, %rax
movl %r12d, %ecx
sarq %cl, %rax
movb %al, 0x10(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x113c0
cmpq $0x38, %r12
jb 0x995f3
movq (%r13), %r13
testq %r13, %r13
jne 0x995a7
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x113c0
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x99650
jmp 0x99650
jmp 0x99650
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x9966a
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580