// File: /workspace/github_cpp_makefile_star2_O1/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::Statement::CompileAST(Gos::Compiler::VMCompiler&)
Compile(Statement) {
    static std::stack<std::function<void(int)>> loopStart;
    static std::stack<std::function<void(int)>> loopOut;
    START();
    int val, startPos, iterStart;
    std::function<void(int)> ifJmp, endJmp;
    switch (branch) {
        case 1: case 10: return SUB(0);
        case 7:
            // Return
            if (nodes[0]->branch == -1) {
                vm.WriteCommandRet(0);
            } else {
                vm.WriteCommandRet(SUB(0));
            }
            return 0;
        case 8:
            // Break
            loopOut.push(vm.WriteCommandJmp());
            return 0;
        case 9:
            // Continue
            loopStart.push(vm.WriteCommandJmp());
            return 0;
        case 2: case 3:
            // If
            val = SUB(0);
            ifJmp = vm.WriteCommandIf(val);
            if (branch == 3) {
                code.MoveToNew();
                SUB(2);
                code.MoveBack();
            }
            endJmp = vm.WriteCommandJmp();
            ifJmp(vm.GetProgress());
            code.MoveToNew();
            SUB(1);
            code.MoveBack();
            endJmp(vm.GetProgress());
            return 0;
        case 4:
            // While
            startPos = vm.GetProgress();
            val = SUB(0);
            code.MoveToNew();
            ifJmp = vm.WriteCommandIf(val);
            endJmp = vm.WriteCommandJmp();
            ifJmp(vm.GetProgress());
            SUB(1);
            vm.WriteCommandJmp()(startPos);
            endJmp(vm.GetProgress());
            code.MoveBack();
            // Flow Control
            while (!loopStart.empty()) {
                loopStart.top()(startPos);
                loopStart.pop();
            }
            while (!loopOut.empty()) {
                loopOut.top()(vm.GetProgress());
                loopOut.pop();
            }
            return 0;
        case 5:
            // For
            // init
            SUB(0);
            code.MoveToNew();
            startPos = vm.GetProgress();
            // while
            val = SUB(1);
            ifJmp = vm.WriteCommandIf(val);
            endJmp = vm.WriteCommandJmp();
            ifJmp(vm.GetProgress());
            // statment
            SUB(3);
            // iter
            iterStart = vm.GetProgress();
            SUB(2);
            vm.WriteCommandJmp()(startPos);
            endJmp(vm.GetProgress());
            code.MoveBack();
            // Flow Control
            while (!loopStart.empty()) {
                loopStart.top()(iterStart);
                loopStart.pop();
            }
            while (!loopOut.empty()) {
                loopOut.top()(vm.GetProgress());
                loopOut.pop();
            }
            return 0;
        case 6:
            // Foreach
            code.MoveToNew();
            // init
            int iter = code.GetTmpVar();
            int var = pc++;
            code.currentScope->varID[nodes[0]->token.str] = var;
            code.currentScope->varType[nodes[0]->token.str] = "unknown";
            int expr = SUB(1);
            int iterEnd = code.GetTmpVar();
            vm.WriteCommandCall(expr, "__end", {});
            vm.WriteCommandRef(iterEnd, 0);
            vm.WriteCommandCall(expr, "__begin", {});
            vm.WriteCommandRef(iter, 0);
            vm.WriteCommandCall(iter, "__indirection", {});
            vm.WriteCommandRef(var, 0);
            startPos = vm.GetProgress();
            // while
            vm.WriteCommandCall(iter, "__ne", { iterEnd });
            ifJmp = vm.WriteCommandIf(0);
            endJmp = vm.WriteCommandJmp();
            ifJmp(vm.GetProgress());
            // statment
            SUB(2);
            // iter
            iterStart = vm.GetProgress();
            vm.WriteCommandCall(iter, "__inc", {});
            vm.WriteCommandRef(iter, 0);
            vm.WriteCommandCall(iter, "__indirection", {});
            vm.WriteCommandRef(var, 0);
            vm.WriteCommandJmp()(startPos);
            endJmp(vm.GetProgress());
            code.MoveBack();
            // Flow Control
            while (!loopStart.empty()) {
                loopStart.top()(iterStart);
                loopStart.pop();
            }
            while (!loopOut.empty()) {
                loopOut.top()(vm.GetProgress());
                loopOut.pop();
            }
            return 0;
    }
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x138, %rsp            # imm = 0x138
movq %rsi, %rbx
movq %rdi, %r14
movb 0x7534d(%rip), %al      # 0x11f2e0
testb %al, %al
je 0xaadc7
movb 0x75397(%rip), %al      # 0x11f338
testb %al, %al
je 0xaae3a
movl 0x2c(%r14), %eax
movl %eax, 0x752d5(%rip)     # 0x11f288
movq 0x10(%r14), %rax
cmpq %rax, 0x18(%r14)
je 0xaa007
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movaps %xmm0, 0x40(%rsp)
movaps %xmm0, 0x30(%rsp)
movl 0x8(%r14), %ecx
xorl %ebp, %ebp
decl %ecx
cmpl $0x9, %ecx
ja 0xaad77
leaq 0x26e48(%rip), %rdx     # 0xd0e34
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq (%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movl %eax, %ebp
jmp 0xaad77
xorl %ebp, %ebp
jmp 0xaada9
movq (%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
movl %eax, %edx
callq 0x9a7b8
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %r15
movq %r15, %rsi
callq 0xacf3c
movq 0x10(%r15), %rax
testq %rax, %rax
je 0xaa056
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
cmpl $0x3, 0x8(%r14)
jne 0xaa086
movq %rbx, %rdi
callq 0xa7c10
movq 0x10(%r14), %rax
movq 0x10(%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq 0xd0(%rbx), %rax
movq (%rax), %rax
movq %rax, 0xd0(%rbx)
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
callq 0x9a744
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %r15
movq %r15, %rsi
callq 0xacf3c
movq 0x10(%r15), %rax
testq %rax, %rax
je 0xaa0c1
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, 0x8(%rsp)
cmpq $0x0, 0x60(%rsp)
je 0xaadbd
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq *0x18(%rdi)
movq %rbx, %rdi
callq 0xa7c10
movq 0x10(%r14), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq 0xd0(%rbx), %rax
movq 0xe8(%rbx), %rdi
movq (%rax), %rax
movq %rax, 0xd0(%rbx)
callq 0x9ab88
movl %eax, 0x8(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0xaadbd
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq *0x18(%rdi)
jmp 0xaad77
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, %r15d
movq 0x10(%r14), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movl %eax, %r12d
movq %rbx, %rdi
callq 0xa7c10
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
movl %r12d, %edx
callq 0x9a7b8
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0xacf3c
movq 0x10(%r12), %rax
testq %rax, %rax
je 0xaa1a9
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
callq 0x9a744
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0xacf3c
movq 0x10(%r12), %rax
testq %rax, %rax
je 0xaa1e5
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, 0x8(%rsp)
cmpq $0x0, 0x60(%rsp)
je 0xaadbd
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq *0x18(%rdi)
movq 0x10(%r14), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
callq 0x9a744
movl %r15d, 0x28(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0xaaead
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq *0x18(%rdi)
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xaa266
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, 0x8(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0xaadbd
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq *0x18(%rdi)
movq 0xd0(%rbx), %rax
movq (%rax), %rax
movq %rax, 0xd0(%rbx)
movq 0x75019(%rip), %rax     # 0x11f2c0
cmpq 0x74ff2(%rip), %rax     # 0x11f2a0
je 0xaa30b
movl $0x200, %r13d           # imm = 0x200
leaq 0x8(%rsp), %r14
leaq 0x74fce(%rip), %r12     # 0x11f290
cmpq 0x74fff(%rip), %rax     # 0x11f2c8
jne 0xaa2d9
movq 0x75006(%rip), %rax     # 0x11f2d8
movq -0x8(%rax), %rax
addq %r13, %rax
movl %r15d, 0x8(%rsp)
cmpq $0x0, -0x10(%rax)
je 0xaadbd
leaq -0x20(%rax), %rdi
movq %r14, %rsi
callq *-0x8(%rax)
movq %r12, %rdi
callq 0xae5ac
movq 0x74fbe(%rip), %rax     # 0x11f2c0
cmpq 0x74f97(%rip), %rax     # 0x11f2a0
jne 0xaa2c2
movq 0x75006(%rip), %r13     # 0x11f318
cmpq 0x74fdf(%rip), %r13     # 0x11f2f8
je 0xaad77
movl $0x200, %r12d           # imm = 0x200
leaq 0x8(%rsp), %r14
leaq 0x74fb7(%rip), %r15     # 0x11f2e8
cmpq 0x74fe8(%rip), %r13     # 0x11f320
jne 0xaa348
movq 0x74fef(%rip), %rax     # 0x11f330
movq -0x8(%rax), %r13
addq %r12, %r13
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, 0x8(%rsp)
cmpq $0x0, -0x10(%r13)
je 0xaadbd
leaq -0x20(%r13), %rdi
movq %r14, %rsi
callq *-0x8(%r13)
movq %r15, %rdi
callq 0xae5ac
movq 0x74f9b(%rip), %r13     # 0x11f318
cmpq 0x74f74(%rip), %r13     # 0x11f2f8
jne 0xaa331
jmp 0xaad77
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
callq 0x9a744
leaq 0x74eed(%rip), %rdi     # 0x11f290
leaq 0x8(%rsp), %rsi
callq 0xae2f2
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xaad77
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xaad77
movq (%rax), %rdi
xorl %ebp, %ebp
cmpl $-0x1, 0x8(%rdi)
movq 0xe8(%rbx), %r14
movl $0x0, %esi
je 0xaa3f0
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movl %eax, %esi
movq %r14, %rdi
callq 0x9a706
jmp 0xaad77
movq (%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %rbx, %rdi
callq 0xa7c10
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, %r15d
movq 0x10(%r14), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
movl %eax, %edx
callq 0x9a7b8
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0xacf3c
movq 0x10(%r12), %rax
testq %rax, %rax
je 0xaa46d
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
callq 0x9a744
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0xacf3c
movq 0x10(%r12), %rax
testq %rax, %rax
je 0xaa4a9
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, 0x8(%rsp)
cmpq $0x0, 0x60(%rsp)
je 0xaadbd
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq *0x18(%rdi)
movq 0x10(%r14), %rax
movq 0x18(%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, %r12d
movq 0x10(%r14), %rax
movq 0x10(%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
callq 0x9a744
movl %r15d, 0x28(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0xaaeb2
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq *0x18(%rdi)
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xaa549
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, 0x8(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0xaadbd
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq *0x18(%rdi)
movq 0xd0(%rbx), %rax
movq (%rax), %rax
movq %rax, 0xd0(%rbx)
movq 0x74d36(%rip), %rax     # 0x11f2c0
cmpq 0x74d0f(%rip), %rax     # 0x11f2a0
je 0xaa5ee
movl $0x200, %r13d           # imm = 0x200
leaq 0x8(%rsp), %r14
leaq 0x74ceb(%rip), %r15     # 0x11f290
cmpq 0x74d1c(%rip), %rax     # 0x11f2c8
jne 0xaa5bc
movq 0x74d23(%rip), %rax     # 0x11f2d8
movq -0x8(%rax), %rax
addq %r13, %rax
movl %r12d, 0x8(%rsp)
cmpq $0x0, -0x10(%rax)
je 0xaadbd
leaq -0x20(%rax), %rdi
movq %r14, %rsi
callq *-0x8(%rax)
movq %r15, %rdi
callq 0xae5ac
movq 0x74cdb(%rip), %rax     # 0x11f2c0
cmpq 0x74cb4(%rip), %rax     # 0x11f2a0
jne 0xaa5a5
movq 0x74d23(%rip), %r13     # 0x11f318
cmpq 0x74cfc(%rip), %r13     # 0x11f2f8
je 0xaad77
movl $0x200, %r12d           # imm = 0x200
leaq 0x8(%rsp), %r14
leaq 0x74cd4(%rip), %r15     # 0x11f2e8
cmpq 0x74d05(%rip), %r13     # 0x11f320
jne 0xaa62b
movq 0x74d0c(%rip), %rax     # 0x11f330
movq -0x8(%rax), %r13
addq %r12, %r13
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, 0x8(%rsp)
cmpq $0x0, -0x10(%r13)
je 0xaadbd
leaq -0x20(%r13), %rdi
movq %r14, %rsi
callq *-0x8(%r13)
movq %r15, %rdi
callq 0xae5ac
movq 0x74cb8(%rip), %r13     # 0x11f318
cmpq 0x74c91(%rip), %r13     # 0x11f2f8
jne 0xaa614
jmp 0xaad77
movq %rbx, %rdi
callq 0xa7c10
leaq 0x100(%rbx), %r15
movq %r15, %rax
movq (%rax), %rax
testq %rax, %rax
je 0xaa69b
movb 0xc(%rax), %cl
testb %cl, %cl
jne 0xaa697
movb $0x1, 0xc(%rax)
movl 0x8(%rax), %r12d
testb %cl, %cl
jne 0xaa680
testq %rax, %rax
jne 0xaa6b2
movl 0xe0(%rbx), %r12d
leal 0x1(%r12), %eax
movl %eax, 0xe0(%rbx)
movl 0xe0(%rbx), %r13d
leal 0x1(%r13), %eax
movl %eax, 0xe0(%rbx)
movq 0xd0(%rbx), %rdi
addq $0x28, %rdi
movq 0x10(%r14), %rax
movq (%rax), %rsi
addq $0x40, %rsi
callq 0x9c09a
movl %r13d, (%rax)
movq 0xd0(%rbx), %rdi
addq $0x60, %rdi
movq 0x10(%r14), %rax
movq (%rax), %rsi
addq $0x40, %rsi
callq 0xad878
movq 0x8(%rax), %rdx
leaq 0x26a0a(%rip), %rcx     # 0xd1111
movl $0x7, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x27996
movq %r13, 0x80(%rsp)
movq 0x10(%r14), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movl %eax, %ebp
movq (%r15), %r15
testq %r15, %r15
je 0xaa74e
movb 0xc(%r15), %al
testb %al, %al
jne 0xaa74a
movb $0x1, 0xc(%r15)
movl 0x8(%r15), %r13d
testb %al, %al
jne 0xaa731
testq %r15, %r15
jne 0xaa764
movl 0xe0(%rbx), %r13d
leal 0x1(%r13), %eax
movl %eax, 0xe0(%rbx)
movq 0xe8(%rbx), %r15
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1268a(%rip), %rsi     # 0xbce05
leaq 0x12688(%rip), %rdx     # 0xbce0a
leaq 0x8(%rsp), %rdi
callq 0x27dc8
xorps %xmm0, %xmm0
leaq 0x120(%rsp), %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movl %ebp, %esi
callq 0x9a924
movq 0x120(%rsp), %rdi
testq %rdi, %rdi
je 0xaa7ce
movq 0x130(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xaa7ea
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x11360
movq 0xe8(%rbx), %rdi
movl %r13d, %esi
xorl %edx, %edx
callq 0x9a158
movq 0xe8(%rbx), %r15
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x125e7(%rip), %rsi     # 0xbcdfd
leaq 0x125e7(%rip), %rdx     # 0xbce04
callq 0x27dc8
xorps %xmm0, %xmm0
leaq 0x100(%rsp), %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movl %ebp, %esi
callq 0x9a924
movq 0x100(%rsp), %rdi
testq %rdi, %rdi
je 0xaa864
movq 0x110(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xaa880
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x11360
movq 0xe8(%rbx), %rdi
movl %r12d, %esi
xorl %edx, %edx
callq 0x9a158
movq 0xe8(%rbx), %r15
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x1256b(%rip), %rsi     # 0xbce17
leaq 0x12571(%rip), %rdx     # 0xbce24
callq 0x27dc8
xorps %xmm0, %xmm0
leaq 0xe0(%rsp), %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movl %r12d, %esi
callq 0x9a924
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
movq 0x80(%rsp), %r15
je 0xaa903
movq 0xf0(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xaa91f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x11360
movq 0xe8(%rbx), %rdi
movl %r15d, %esi
xorl %edx, %edx
callq 0x9a158
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, 0x7c(%rsp)
movq 0xe8(%rbx), %rbp
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x1245b(%rip), %rsi     # 0xbcdb6
leaq 0x12458(%rip), %rdx     # 0xbcdba
callq 0x27dc8
leaq 0x28(%rsp), %rsi
movl %r13d, (%rsi)
leaq 0x88(%rsp), %rdi
leaq 0x2f(%rsp), %rcx
movl $0x1, %edx
callq 0xace70
leaq 0x8(%rsp), %rdx
leaq 0x88(%rsp), %rcx
movq %rbp, %rdi
movl %r12d, %esi
callq 0x9a924
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0xaa9bb
movq 0x98(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xaa9d7
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x11360
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
xorl %edx, %edx
callq 0x9a7b8
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %r15
movq %r15, %rsi
callq 0xacf3c
movq 0x10(%r15), %rax
testq %rax, %rax
je 0xaaa14
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
callq 0x9a744
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %r15
movq %r15, %rsi
callq 0xacf3c
movq 0x10(%r15), %rax
testq %rax, %rax
je 0xaaa4f
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, 0x8(%rsp)
cmpq $0x0, 0x60(%rsp)
je 0xaadc2
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq *0x18(%rdi)
movq 0x10(%r14), %rax
movq 0x10(%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, %r14d
movq 0xe8(%rbx), %r15
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x12359(%rip), %rsi     # 0xbce0b
leaq 0x12357(%rip), %rdx     # 0xbce10
callq 0x27dc8
xorps %xmm0, %xmm0
leaq 0xc0(%rsp), %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movl %r12d, %esi
callq 0x9a924
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0xaab01
movq 0xd0(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xaab1d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x11360
movq 0xe8(%rbx), %rdi
movl %r12d, %esi
xorl %edx, %edx
callq 0x9a158
movq 0xe8(%rbx), %r15
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x122ce(%rip), %rsi     # 0xbce17
leaq 0x122d4(%rip), %rdx     # 0xbce24
callq 0x27dc8
xorps %xmm0, %xmm0
leaq 0xa0(%rsp), %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movl %r12d, %esi
callq 0x9a924
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
movq 0x80(%rsp), %r15
je 0xaaba0
movq 0xb0(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xaabbc
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x11360
movq 0xe8(%rbx), %rdi
movl %r15d, %esi
xorl %edx, %edx
callq 0x9a158
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
callq 0x9a744
movl 0x7c(%rsp), %eax
movl %eax, 0x28(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0xaaeb7
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq *0x18(%rdi)
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xaac18
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, 0x8(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0xaadc2
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq *0x18(%rdi)
movq 0xd0(%rbx), %rax
movq (%rax), %rax
movq %rax, 0xd0(%rbx)
movq 0x74667(%rip), %rax     # 0x11f2c0
cmpq 0x74640(%rip), %rax     # 0x11f2a0
je 0xaacbd
movl $0x200, %r13d           # imm = 0x200
leaq 0x8(%rsp), %r15
leaq 0x7461c(%rip), %r12     # 0x11f290
cmpq 0x7464d(%rip), %rax     # 0x11f2c8
jne 0xaac8b
movq 0x74654(%rip), %rax     # 0x11f2d8
movq -0x8(%rax), %rax
addq %r13, %rax
movl %r14d, 0x8(%rsp)
cmpq $0x0, -0x10(%rax)
je 0xaadc2
leaq -0x20(%rax), %rdi
movq %r15, %rsi
callq *-0x8(%rax)
movq %r12, %rdi
callq 0xae5ac
movq 0x7460c(%rip), %rax     # 0x11f2c0
cmpq 0x745e5(%rip), %rax     # 0x11f2a0
jne 0xaac74
movq 0x74654(%rip), %r13     # 0x11f318
xorl %ebp, %ebp
cmpq 0x7462b(%rip), %r13     # 0x11f2f8
je 0xaad77
movl $0x200, %r12d           # imm = 0x200
leaq 0x8(%rsp), %r14
leaq 0x74603(%rip), %r15     # 0x11f2e8
cmpq 0x74634(%rip), %r13     # 0x11f320
jne 0xaacfc
movq 0x7463b(%rip), %rax     # 0x11f330
movq -0x8(%rax), %r13
addq %r12, %r13
movq 0xe8(%rbx), %rdi
callq 0x9ab88
movl %eax, 0x8(%rsp)
cmpq $0x0, -0x10(%r13)
je 0xaadc2
leaq -0x20(%r13), %rdi
movq %r14, %rsi
callq *-0x8(%r13)
movq %r15, %rdi
callq 0xae5ac
movq 0x745e7(%rip), %r13     # 0x11f318
cmpq 0x745c0(%rip), %r13     # 0x11f2f8
jne 0xaace5
jmp 0xaad77
movq 0xe8(%rbx), %rsi
leaq 0x8(%rsp), %rdi
callq 0x9a744
leaq 0x74594(%rip), %rdi     # 0x11f2e8
leaq 0x8(%rsp), %rsi
callq 0xae2f2
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xaad77
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x40(%rsp), %rax
testq %rax, %rax
je 0xaad90
leaq 0x30(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0xaada9
leaq 0x50(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movl %ebp, %eax
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x11150
callq 0x11150
leaq 0x74512(%rip), %rdi     # 0x11f2e0
callq 0x11590
testl %eax, %eax
je 0xa9f9b
xorps %xmm0, %xmm0
movups %xmm0, 0x744eb(%rip)    # 0x11f2d0
movups %xmm0, 0x744d4(%rip)    # 0x11f2c0
movups %xmm0, 0x744bd(%rip)    # 0x11f2b0
movups %xmm0, 0x744a6(%rip)    # 0x11f2a0
movups %xmm0, 0x7448f(%rip)    # 0x11f290
leaq 0x74488(%rip), %rdi     # 0x11f290
xorl %esi, %esi
callq 0xae15e
leaq 0x2120(%rip), %rdi      # 0xacf36
leaq 0x74473(%rip), %rsi     # 0x11f290
leaq 0x734dc(%rip), %rdx     # 0x11e300
callq 0x11320
leaq 0x744b0(%rip), %rdi     # 0x11f2e0
callq 0x11230
jmp 0xa9f9b
leaq 0x744f7(%rip), %rdi     # 0x11f338
callq 0x11590
testl %eax, %eax
je 0xa9fa9
xorps %xmm0, %xmm0
movups %xmm0, 0x744d0(%rip)    # 0x11f328
movups %xmm0, 0x744b9(%rip)    # 0x11f318
movups %xmm0, 0x744a2(%rip)    # 0x11f308
movups %xmm0, 0x7448b(%rip)    # 0x11f2f8
movups %xmm0, 0x74474(%rip)    # 0x11f2e8
leaq 0x7446d(%rip), %rdi     # 0x11f2e8
xorl %esi, %esi
callq 0xae15e
leaq 0x20ad(%rip), %rdi      # 0xacf36
leaq 0x74458(%rip), %rsi     # 0x11f2e8
leaq 0x73469(%rip), %rdx     # 0x11e300
callq 0x11320
leaq 0x74495(%rip), %rdi     # 0x11f338
callq 0x11230
jmp 0xa9fa9
callq 0x11150
callq 0x11150
callq 0x11150
movq %rax, %rbx
leaq 0x74472(%rip), %rdi     # 0x11f338
jmp 0xaaed2
movq %rax, %rbx
leaq 0x7440e(%rip), %rdi     # 0x11f2e0
callq 0x11210
jmp 0xab155
jmp 0xab15f
jmp 0xab15f
jmp 0xab15f
jmp 0xab15f
jmp 0xab15f
jmp 0xab15f
jmp 0xab15f
jmp 0xab15f
jmp 0xab15f
jmp 0xab15f
jmp 0xab15f
jmp 0xab120
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0xaaffa
movq 0xb0(%rsp), %rsi
jmp 0xaaff2
jmp 0xab120
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0xaaffa
movq 0xd0(%rsp), %rsi
jmp 0xaaff2
jmp 0xab120
jmp 0xab120
jmp 0xab120
movq %rax, %rbx
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0xaaffa
movq 0x98(%rsp), %rsi
jmp 0xaaff2
movq %rax, %rbx
jmp 0xaaffa
jmp 0xab120
jmp 0xab120
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0xaaffa
movq 0xf0(%rsp), %rsi
jmp 0xaaff2
jmp 0xab120
jmp 0xab120
movq %rax, %rbx
movq 0x100(%rsp), %rdi
testq %rdi, %rdi
je 0xaaffa
movq 0x110(%rsp), %rsi
jmp 0xaaff2
jmp 0xab120
movq %rax, %rbx
movq 0x120(%rsp), %rdi
testq %rdi, %rdi
je 0xaaffa
movq 0x130(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xab123
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0xab123
jmp 0xab120
jmp 0xab120
jmp 0xab120
jmp 0xab120
jmp 0xab120
jmp 0xab120
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xab123
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xab123
jmp 0xab15f
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xab123
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xab123
jmp 0xab15f
jmp 0xab120
jmp 0xab120
jmp 0xab15f
jmp 0xab15f
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xab123
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xab123
jmp 0xab15f
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xab123
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xab123
jmp 0xab15f
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xab123
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xab123
jmp 0xab15f
jmp 0xab120
jmp 0xab120
jmp 0xab120
jmp 0xab15f
jmp 0xab15f
jmp 0xab120
jmp 0xab120
jmp 0xab120
jmp 0xab120
jmp 0xab120
jmp 0xab120
jmp 0xab120
movq %rax, %rbx
movq 0x40(%rsp), %rax
testq %rax, %rax
je 0xab13c
leaq 0x30(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0xab155
leaq 0x50(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq %rbx, %rdi
callq 0x11580
jmp 0xab15f
movq %rax, %rdi
callq 0x2789a
nop