LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Exp::Exp(Gos::GosTokenizer&)
Build(Exp) {
        Log(Exp);

        gosASTOffError++;
        gosASTHasError = false;
        int progress = tokenizer.GetProgress();
        tokenizer.SetErrorCallback([]() { gosASTHasError = true; return false; });

        Expect(Assign);

        tokenizer.SetErrorCallback([]() { return true; });
        gosASTOffError--;
        if (gosASTHasError) {
            delete nodes[0];
            nodes.pop_back();
        } else {
            return;
        }
        gosASTHasError = false;
        tokenizer.RestoreProgress(progress);

        Expect(Cond);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x50, %rsp
movq %rsi, %r14
movq %rdi, %rbx
callq 0x83e82
leaq 0x856f4(%rip), %rax     # 0x105598
addq $0x10, %rax
movq %rax, (%rbx)
andl $0x0, 0x8(%rbx)
cmpb $0x0, 0x8732a(%rip)     # 0x1071e0
jne 0x7ffbf
incl 0x87322(%rip)           # 0x1071e4
movb $0x0, 0x87317(%rip)     # 0x1071e0
movq %r14, %rdi
callq 0x7e260
movl %eax, %ebp
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x3f43(%rip), %rax      # 0x83e28
movq %rax, 0x18(%rsi)
leaq 0x3f42(%rip), %rax      # 0x83e32
movq %rax, 0x10(%rsi)
movq %r14, %rdi
callq 0x7e120
leaq 0x30(%rsp), %rdi
callq 0x21f04
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x7fd76
leaq 0x10(%rbx), %r15
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x3f08(%rip), %rax      # 0x83e4a
movq %rax, 0x18(%rsi)
leaq 0x3f01(%rip), %rax      # 0x83e4e
movq %rax, 0x10(%rsi)
movq %r14, %rdi
callq 0x7e120
leaq 0x10(%rsp), %rdi
callq 0x21f04
decl 0x8727b(%rip)           # 0x1071e4
cmpb $0x1, 0x87270(%rip)     # 0x1071e0
jne 0x7ffbf
movq (%r15), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x7ff83
movq (%rdi), %rax
callq *0x18(%rax)
addq $-0x8, 0x18(%rbx)
movb $0x0, 0x87251(%rip)     # 0x1071e0
movq %r14, %rdi
movl %ebp, %esi
callq 0x7e264
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x7fbd8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x7ffda
jmp 0x7fffb
movq %rax, %r14
leaq 0x10(%rsp), %rdi
jmp 0x7fff2
movq %rax, %r14
pushq $0x60
popq %rsi
movq %r12, %rdi
callq 0x11360
jmp 0x7fffe
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x21f04
jmp 0x7fffe
jmp 0x7fffb
movq %rax, %r14
movq %rbx, %rdi
callq 0x7eb6a
movq %r14, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::DefVar::DefVar(Gos::GosTokenizer&)
Build(DefVar) {
        Log(DefVar);
        Expect(Symbol);
        token = tokenizer.GetToken();
        if (token.type == COLON) {
            branch += 1;
            tokenList.push_back(token);
            Expect(Symbol);
            token = tokenizer.GetToken();
        }
        if (token.type == ASSIGN) {
            branch += 2;
            tokenList.push_back(token);
            Expect(Exp);
        } else {
            tokenizer.BackToken();
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r15
movq %rdi, %rbx
callq 0x83e82
leaq 0x855b5(%rip), %rax     # 0x1055e0
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
andq $0x0, 0x70(%rbx)
movups %xmm0, 0x60(%rbx)
andl $0x0, 0x8(%rbx)
cmpb $0x0, 0x87197(%rip)     # 0x1071e0
jne 0x80126
leaq 0x60(%rbx), %r14
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r13
movq %rax, %rdi
movq %r15, %rsi
callq 0x7ebf4
leaq 0x10(%rbx), %r12
movq %rsp, %rsi
movq %r13, (%rsi)
movq %r12, %rdi
callq 0x84b08
movq %r15, %rdi
callq 0x7e0e8
leaq 0x28(%rbx), %r13
movq %r13, %rdi
movq %rax, %rsi
callq 0x83ec4
movl (%r13), %eax
cmpl $0x30, %eax
jne 0x800e4
incl 0x8(%rbx)
movq %r14, %rdi
movq %r13, %rsi
callq 0x7e342
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %rbp
movq %rax, %rdi
movq %r15, %rsi
callq 0x7ebf4
movq %rsp, %rsi
movq %rbp, (%rsi)
movq %r12, %rdi
callq 0x84b08
movq %r15, %rdi
callq 0x7e0e8
movq %r13, %rdi
movq %rax, %rsi
callq 0x83ec4
movl (%r13), %eax
cmpl $0xf, %eax
jne 0x8011e
addl $0x2, 0x8(%rbx)
movq %r14, %rdi
movq %r13, %rsi
callq 0x7e342
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r13
movq %rax, %rdi
movq %r15, %rsi
callq 0x7fe86
movq %rsp, %rsi
movq %r13, (%rsi)
movq %r12, %rdi
callq 0x84b08
jmp 0x80126
movq %r15, %rdi
callq 0x7e25c
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x80146
movq %rax, %r15
pushq $0x60
popq %rsi
movq %rbp, %rdi
jmp 0x8014f
jmp 0x80158
jmp 0x80158
movq %rax, %r15
pushq $0x60
popq %rsi
movq %r13, %rdi
callq 0x11360
jmp 0x8015b
jmp 0x80158
movq %rax, %r15
movq %r14, %rdi
callq 0x7e36e
movq %rbx, %rdi
callq 0x7eb6a
movq %r15, %rdi
callq 0x11570
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::StatBlock::StatBlock(Gos::GosTokenizer&)
Build(StatBlock) {
        Log(StatBlock);
        tokenizer.EatToken(L_CURLY);
        token = tokenizer.GetToken();
        while (token.type != R_CURLY) {
            tokenizer.BackToken();
            Expect(Statement);
            if (gosASTHasError) {
                return;
            }
            token = tokenizer.GetToken();
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
movq %rdi, %rbx
callq 0x83e82
leaq 0x84f3c(%rip), %rax     # 0x105670
addq $0x10, %rax
movq %rax, (%rbx)
movq %rbx, 0x8(%rsp)
andl $0x0, 0x8(%rbx)
cmpb $0x0, 0x86a95(%rip)     # 0x1071e0
je 0x8075c
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x36
popq %rsi
movq %r14, %rdi
callq 0x7e12a
movq %r14, %rdi
callq 0x7e0e8
movq 0x8(%rsp), %rcx
leaq 0x28(%rcx), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x83ec4
movq 0x8(%rsp), %rax
leaq 0x10(%rax), %r12
pushq $0x60
popq %r13
leaq 0x10(%rsp), %rbp
cmpl $0x37, (%r15)
je 0x8074d
movq %r14, %rdi
callq 0x7e25c
movq %r13, %rdi
callq 0x11350
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
callq 0x80174
movq %rbx, 0x10(%rsp)
movq %r12, %rdi
movq %rbp, %rsi
callq 0x84b08
cmpb $0x0, 0x86a10(%rip)     # 0x1071e0
jne 0x8074d
movq %r14, %rdi
callq 0x7e0e8
movq %r15, %rdi
movq %rax, %rsi
callq 0x83ec4
jmp 0x80795
jmp 0x807ff
movq %rax, %r14
pushq $0x60
popq %rsi
movq %rbx, %rdi
callq 0x11360
jmp 0x80802
jmp 0x807ff
movq %rax, %r14
movq 0x8(%rsp), %rdi
callq 0x7eb6a
movq %r14, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::DefArg::DefArg(Gos::GosTokenizer&)
Build(DefArg) {
        Log(DefArg);
        Expect(Symbol);
        tokenizer.EatToken(COLON);
        Expect(Symbol);
    }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x83e82
leaq 0x84ed2(%rip), %rax     # 0x105700
addq $0x10, %rax
movq %rax, (%rbx)
andl $0x0, 0x8(%rbx)
cmpb $0x0, 0x869a0(%rip)     # 0x1071e0
jne 0x80899
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x7ebf4
leaq 0x10(%rbx), %r15
movq %rsp, %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
pushq $0x30
popq %rsi
movq %r14, %rdi
callq 0x7e12a
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x7ebf4
movq %rsp, %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x808a9
jmp 0x808bb
movq %rax, %r14
pushq $0x60
popq %rsi
movq %r12, %rdi
callq 0x11360
jmp 0x808be
jmp 0x808bb
movq %rax, %r14
movq %rbx, %rdi
callq 0x7eb6a
movq %r14, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::DefArgList::DefArgList(Gos::GosTokenizer&)
Build(DefArgList) {
        Log(DefArgList);
        Expect(DefArg);
        while (!tokenizer.IsEOF() && (token = tokenizer.GetToken()).type == COM) {
            Expect(DefArg);
        }
        tokenizer.BackToken();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
movq %rdi, %rbx
callq 0x83e82
leaq 0x84e5a(%rip), %rax     # 0x105748
addq $0x10, %rax
movq %rax, (%rbx)
movq %rbx, 0x8(%rsp)
andl $0x0, 0x8(%rbx)
cmpb $0x0, 0x868db(%rip)     # 0x1071e0
jne 0x809a0
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x80814
movq 0x8(%rsp), %rax
leaq 0x10(%rax), %r15
leaq 0x10(%rsp), %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
movq 0x8(%rsp), %rax
leaq 0x28(%rax), %r12
pushq $0x60
popq %r13
leaq 0x10(%rsp), %rbp
movq %r14, %rdi
callq 0x7e268
testb %al, %al
jne 0x80998
movq %r14, %rdi
callq 0x7e0e8
movq %r12, %rdi
movq %rax, %rsi
callq 0x83ec4
cmpl $0x2d, (%rax)
jne 0x80998
movq %r13, %rdi
callq 0x11350
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
callq 0x80814
movq %rbx, 0x10(%rsp)
movq %r15, %rdi
movq %rbp, %rsi
callq 0x84b08
jmp 0x8094c
movq %r14, %rdi
callq 0x7e25c
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x809d0
movq %rax, %r14
pushq $0x60
popq %rsi
movq %r12, %rdi
jmp 0x809c7
jmp 0x809d0
movq %rax, %r14
pushq $0x60
popq %rsi
movq %rbx, %rdi
callq 0x11360
jmp 0x809d3
jmp 0x809d0
movq %rax, %r14
movq 0x8(%rsp), %rdi
callq 0x7eb6a
movq %r14, %rdi
callq 0x11570
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::ArgsList::ArgsList(Gos::GosTokenizer&)
Build(ArgsList) {
        Log(ArgsList);
        Expect(Exp);
        while (!tokenizer.IsEOF() && (token = tokenizer.GetToken()).type == COM) {
            Expect(Exp);
        }
        tokenizer.BackToken();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
movq %rdi, %rbx
callq 0x83e82
leaq 0x84d8a(%rip), %rax     # 0x105790
addq $0x10, %rax
movq %rax, (%rbx)
movq %rbx, 0x8(%rsp)
andl $0x0, 0x8(%rbx)
cmpb $0x0, 0x867c3(%rip)     # 0x1071e0
jne 0x80ab8
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x7fe86
movq 0x8(%rsp), %rax
leaq 0x10(%rax), %r15
leaq 0x10(%rsp), %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
movq 0x8(%rsp), %rax
leaq 0x28(%rax), %r12
pushq $0x60
popq %r13
leaq 0x10(%rsp), %rbp
movq %r14, %rdi
callq 0x7e268
testb %al, %al
jne 0x80ab0
movq %r14, %rdi
callq 0x7e0e8
movq %r12, %rdi
movq %rax, %rsi
callq 0x83ec4
cmpl $0x2d, (%rax)
jne 0x80ab0
movq %r13, %rdi
callq 0x11350
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
callq 0x7fe86
movq %rbx, 0x10(%rsp)
movq %r15, %rdi
movq %rbp, %rsi
callq 0x84b08
jmp 0x80a64
movq %r14, %rdi
callq 0x7e25c
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x80ae8
movq %rax, %r14
pushq $0x60
popq %rsi
movq %r12, %rdi
jmp 0x80adf
jmp 0x80ae8
movq %rax, %r14
pushq $0x60
popq %rsi
movq %rbx, %rdi
callq 0x11360
jmp 0x80aeb
jmp 0x80ae8
movq %rax, %r14
movq 0x8(%rsp), %rdi
callq 0x7eb6a
movq %r14, %rdi
callq 0x11570
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::IDList::IDList(Gos::GosTokenizer&)
Build(IDList) {
        Log(IDList);
        Expect(Symbol);
        while (!tokenizer.IsEOF() && (token = tokenizer.GetToken()).type == COM) {
            Expect(Symbol);
        }
        tokenizer.BackToken();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
movq %rdi, %rbx
callq 0x83e82
leaq 0x8475a(%rip), %rax     # 0x105820
addq $0x10, %rax
movq %rax, (%rbx)
movq %rbx, 0x8(%rsp)
andl $0x0, 0x8(%rbx)
cmpb $0x0, 0x86103(%rip)     # 0x1071e0
jne 0x81178
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x7ebf4
movq 0x8(%rsp), %rax
leaq 0x10(%rax), %r15
leaq 0x10(%rsp), %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
movq 0x8(%rsp), %rax
leaq 0x28(%rax), %r12
pushq $0x60
popq %r13
leaq 0x10(%rsp), %rbp
movq %r14, %rdi
callq 0x7e268
testb %al, %al
jne 0x81170
movq %r14, %rdi
callq 0x7e0e8
movq %r12, %rdi
movq %rax, %rsi
callq 0x83ec4
cmpl $0x2d, (%rax)
jne 0x81170
movq %r13, %rdi
callq 0x11350
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
callq 0x7ebf4
movq %rbx, 0x10(%rsp)
movq %r15, %rdi
movq %rbp, %rsi
callq 0x84b08
jmp 0x81124
movq %r14, %rdi
callq 0x7e25c
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x811a8
movq %rax, %r14
pushq $0x60
popq %rsi
movq %r12, %rdi
jmp 0x8119f
jmp 0x811a8
movq %rax, %r14
pushq $0x60
popq %rsi
movq %rbx, %rdi
callq 0x11360
jmp 0x811ab
jmp 0x811a8
movq %rax, %r14
movq 0x8(%rsp), %rdi
callq 0x7eb6a
movq %r14, %rdi
callq 0x11570
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::SingleAttr::SingleAttr(Gos::GosTokenizer&)
Build(SingleAttr) {
        Log(SingleAttr);
        Expect(Symbol);
        token = tokenizer.GetToken();
        if (token.type == L_ROUND) {
            token = tokenizer.GetToken();
            if (token.type != R_ROUND) {
                tokenizer.BackToken();
                Expect(IDList);
                tokenizer.EatToken(R_ROUND);
            }
        } else {
            tokenizer.BackToken();
        }
    }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x83e82
leaq 0x84690(%rip), %rax     # 0x105868
addq $0x10, %rax
movq %rax, (%rbx)
andl $0x0, 0x8(%rbx)
cmpb $0x0, 0x85ff6(%rip)     # 0x1071e0
jne 0x81291
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x7ebf4
leaq 0x10(%rbx), %r15
movq %rsp, %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
movq %r14, %rdi
callq 0x7e0e8
leaq 0x28(%rbx), %r12
movq %r12, %rdi
movq %rax, %rsi
callq 0x83ec4
cmpl $0x32, (%r12)
jne 0x81289
movq %r14, %rdi
callq 0x7e0e8
movq %r12, %rdi
movq %rax, %rsi
callq 0x83ec4
cmpl $0x33, (%r12)
je 0x81291
movq %r14, %rdi
callq 0x7e25c
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x810a6
movq %rsp, %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
pushq $0x33
popq %rsi
movq %r14, %rdi
callq 0x7e12a
jmp 0x81291
movq %r14, %rdi
callq 0x7e25c
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x812a1
jmp 0x812b3
movq %rax, %r14
pushq $0x60
popq %rsi
movq %r12, %rdi
callq 0x11360
jmp 0x812b6
jmp 0x812b3
movq %rax, %r14
movq %rbx, %rdi
callq 0x7eb6a
movq %r14, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Attribute::Attribute(Gos::GosTokenizer&)
Build(Attribute) {
        Log(Attribute);
        tokenizer.EatToken(L_SQUARE);
        Expect(SingleAttr);
        while (!tokenizer.IsEOF() && (token = tokenizer.GetToken()).type != R_SQUARE) {
            if (token.type != COM) {
                GosASTError::ErrorToken(token, { COM, token.line });
                return;
            }
            Expect(SingleAttr);
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rsi, %r14
movq %rdi, %rbx
callq 0x83e82
leaq 0x845c7(%rip), %rax     # 0x1058b0
addq $0x10, %rax
movq %rax, (%rbx)
movq %rbx, 0x8(%rsp)
andl $0x0, 0x8(%rbx)
cmpb $0x0, 0x85ee0(%rip)     # 0x1071e0
jne 0x813ee
pushq $0x34
popq %rsi
movq %r14, %rdi
callq 0x7e12a
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x811be
movq 0x8(%rsp), %rax
leaq 0x10(%rax), %r15
leaq 0x10(%rsp), %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
movq 0x8(%rsp), %rax
leaq 0x28(%rax), %r12
pushq $0x60
popq %r13
leaq 0x10(%rsp), %rbp
movq %r14, %rdi
callq 0x7e268
testb %al, %al
jne 0x813ee
movq %r14, %rdi
callq 0x7e0e8
movq %r12, %rdi
movq %rax, %rsi
callq 0x83ec4
cmpl $0x35, (%rax)
je 0x813ee
cmpl $0x2d, (%r12)
jne 0x813a9
movq %r13, %rdi
callq 0x11350
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
callq 0x811be
movq %rbx, 0x10(%rsp)
movq %r15, %rdi
movq %rbp, %rsi
callq 0x84b08
jmp 0x81352
leaq 0x50(%rsp), %rdi
movq %r12, %rsi
callq 0x7e3de
movq 0x8(%rsp), %rax
movl 0x2c(%rax), %edx
leaq 0x18(%rsp), %rdi
pushq $0x2d
popq %rsi
callq 0x7d51a
leaq 0x50(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x7e848
leaq 0x30(%rsp), %rdi
callq 0x209be
leaq 0x68(%rsp), %rdi
callq 0x209be
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x209be
jmp 0x81412
movq %rax, %r14
leaq 0x68(%rsp), %rdi
callq 0x209be
jmp 0x81442
movq %rax, %r14
pushq $0x60
popq %rsi
movq %r12, %rdi
jmp 0x81436
jmp 0x8143f
jmp 0x8143f
movq %rax, %r14
pushq $0x60
popq %rsi
movq %rbx, %rdi
callq 0x11360
jmp 0x81442
jmp 0x8143f
movq %rax, %r14
movq 0x8(%rsp), %rdi
callq 0x7eb6a
movq %r14, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Empty::PrintAST(int)
Print(Empty) {
        PrintIndent();
        std::cout << "-";
        PrintToken();
        PrintNodes();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movl %esi, %ebx
movq %rdi, %r14
xorl %ebp, %ebp
testl %esi, %esi
cmovgl %esi, %ebp
movq 0x848fb(%rip), %r15     # 0x105fc8
leaq 0x280e0(%rip), %r12     # 0xa97b4
subl $0x1, %ebp
jb 0x816e6
movq %r15, %rdi
movq %r12, %rsi
callq 0x11340
jmp 0x816d4
movq 0x848db(%rip), %r15     # 0x105fc8
leaq 0x27f59(%rip), %rsi     # 0xa964d
movq %r15, %rdi
callq 0x11340
leaq 0x280b2(%rip), %rsi     # 0xa97b5
movq %r15, %rdi
callq 0x11340
movq %rax, %r15
leaq 0x28(%r14), %rsi
movq %rsp, %r12
movq %r12, %rdi
callq 0x7d564
movq %r15, %rdi
movq %r12, %rsi
callq 0x11320
movq %rsp, %rdi
callq 0x209be
movq 0x84891(%rip), %rdi     # 0x105fc8
callq 0x111b0
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
incl %ebx
cmpq %r14, %r15
je 0x8175c
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
jmp 0x81746
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq %rsp, %rdi
callq 0x209be
movq %rbx, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Symbol::PrintAST(int)
Print(Symbol) {
        PrintIndent();
        PrintName();
        PrintToken();
        PrintNodes();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movl %esi, %ebx
movq %rdi, %r14
xorl %ebp, %ebp
testl %esi, %esi
cmovgl %esi, %ebp
movq 0x8482d(%rip), %r15     # 0x105fc8
leaq 0x28012(%rip), %r12     # 0xa97b4
subl $0x1, %ebp
jb 0x817b4
movq %r15, %rdi
movq %r12, %rsi
callq 0x11340
jmp 0x817a2
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x83f06
movq %r15, %rdi
callq 0x1b9ce
leaq 0x50(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
leaq 0x30(%rsp), %r15
leaq 0xf(%rsp), %rdx
movq %r15, %rdi
callq 0x209a4
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x10(%rsp), %rdi
pushq $0xa
popq %rdx
movq %r15, %rsi
callq 0x79922
leaq 0x30(%rsp), %r15
leaq 0x10(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x2dc3c
movq %r12, %rdi
callq 0x209be
movq 0x847a5(%rip), %rdi     # 0x105fc8
movq %r15, %rsi
callq 0x11320
movq 0x84796(%rip), %rdi     # 0x105fc8
leaq 0x27f7c(%rip), %rsi     # 0xa97b5
callq 0x11340
movq %rax, %r15
leaq 0x28(%r14), %rsi
leaq 0x10(%rsp), %rdi
callq 0x7d564
leaq 0x10(%rsp), %rsi
movq %r15, %rdi
callq 0x11320
leaq 0x10(%rsp), %rdi
callq 0x209be
movq 0x8475b(%rip), %rdi     # 0x105fc8
callq 0x111b0
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
incl %ebx
cmpq %r14, %r15
je 0x81892
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
jmp 0x8187c
leaq 0x30(%rsp), %rdi
callq 0x209be
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x209be
jmp 0x818c1
jmp 0x818be
jmp 0x818be
jmp 0x818be
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x209be
movq %rbx, %rdi
callq 0x11570
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::String::PrintAST(int)
Print(String) {
        PrintIndent();
        PrintName();
        PrintToken();
        PrintNodes();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movl %esi, %ebx
movq %rdi, %r14
xorl %ebp, %ebp
testl %esi, %esi
cmovgl %esi, %ebp
movq 0x8457d(%rip), %r15     # 0x105fc8
leaq 0x27d62(%rip), %r12     # 0xa97b4
subl $0x1, %ebp
jb 0x81a64
movq %r15, %rdi
movq %r12, %rsi
callq 0x11340
jmp 0x81a52
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x83f82
movq %r15, %rdi
callq 0x1b9ce
leaq 0x50(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
leaq 0x30(%rsp), %r15
leaq 0xf(%rsp), %rdx
movq %r15, %rdi
callq 0x209a4
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x10(%rsp), %rdi
pushq $0xa
popq %rdx
movq %r15, %rsi
callq 0x79922
leaq 0x30(%rsp), %r15
leaq 0x10(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x2dc3c
movq %r12, %rdi
callq 0x209be
movq 0x844f5(%rip), %rdi     # 0x105fc8
movq %r15, %rsi
callq 0x11320
movq 0x844e6(%rip), %rdi     # 0x105fc8
leaq 0x27ccc(%rip), %rsi     # 0xa97b5
callq 0x11340
movq %rax, %r15
leaq 0x28(%r14), %rsi
leaq 0x10(%rsp), %rdi
callq 0x7d564
leaq 0x10(%rsp), %rsi
movq %r15, %rdi
callq 0x11320
leaq 0x10(%rsp), %rdi
callq 0x209be
movq 0x844ab(%rip), %rdi     # 0x105fc8
callq 0x111b0
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
incl %ebx
cmpq %r14, %r15
je 0x81b42
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
jmp 0x81b2c
leaq 0x30(%rsp), %rdi
callq 0x209be
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x209be
jmp 0x81b71
jmp 0x81b6e
jmp 0x81b6e
jmp 0x81b6e
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x209be
movq %rbx, %rdi
callq 0x11570
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Primary::PrintAST(int)
Print(Primary) {
        SkipIf(token.type != L_SQUARE);
        PrintIndent();
        PrintName();
        PrintNodes();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movl %esi, %ebx
movq %rdi, %r14
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0x81bc0
cmpl $0x34, 0x28(%r14)
je 0x81bc0
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
xorl %ebp, %ebp
testl %ebx, %ebx
cmovgl %ebx, %ebp
movq 0x843fa(%rip), %r15     # 0x105fc8
leaq 0x27bdf(%rip), %r12     # 0xa97b4
subl $0x1, %ebp
jb 0x81be7
movq %r15, %rdi
movq %r12, %rsi
callq 0x11340
jmp 0x81bd5
leaq 0x30(%rsp), %r15
movq %r15, %rdi
callq 0x83fc0
movq %r15, %rdi
callq 0x1b9ce
leaq 0x50(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
leaq 0x10(%rsp), %r15
leaq 0xf(%rsp), %rdx
movq %r15, %rdi
callq 0x209a4
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x30(%rsp), %rdi
pushq $0xa
popq %rdx
movq %r15, %rsi
callq 0x79922
leaq 0x10(%rsp), %r15
leaq 0x30(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x2dc3c
movq %r12, %rdi
callq 0x209be
movq 0x84372(%rip), %rdi     # 0x105fc8
movq %r15, %rsi
callq 0x11320
movq 0x84363(%rip), %rdi     # 0x105fc8
callq 0x111b0
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
incl %ebx
cmpq %r14, %r15
je 0x81c8a
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
jmp 0x81c74
leaq 0x10(%rsp), %rdi
callq 0x209be
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x81ca5
jmp 0x81ca5
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x209be
movq %rbx, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::PostFix::PrintAST(int)
Print(PostFix) {
        SkipIf(nodes.size() == 1);
        PrintIndent();
        PrintName();
        PrintToken();
        PrintNodes();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movl %esi, %ebx
movq 0x10(%rdi), %rax
movq 0x18(%rdi), %rcx
subq %rax, %rcx
cmpq $0x8, %rcx
jne 0x81cf3
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq %rdi, %r14
xorl %ebp, %ebp
testl %ebx, %ebx
cmovgl %ebx, %ebp
movq 0x842c4(%rip), %r15     # 0x105fc8
leaq 0x27aa9(%rip), %r12     # 0xa97b4
subl $0x1, %ebp
jb 0x81d1d
movq %r15, %rdi
movq %r12, %rsi
callq 0x11340
jmp 0x81d0b
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x83ffe
movq %r15, %rdi
callq 0x1b9ce
leaq 0x50(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
leaq 0x30(%rsp), %r15
leaq 0xf(%rsp), %rdx
movq %r15, %rdi
callq 0x209a4
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x10(%rsp), %rdi
pushq $0xa
popq %rdx
movq %r15, %rsi
callq 0x79922
leaq 0x30(%rsp), %r15
leaq 0x10(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x2dc3c
movq %r12, %rdi
callq 0x209be
movq 0x8423c(%rip), %rdi     # 0x105fc8
movq %r15, %rsi
callq 0x11320
movq 0x8422d(%rip), %rdi     # 0x105fc8
leaq 0x27a13(%rip), %rsi     # 0xa97b5
callq 0x11340
movq %rax, %r15
leaq 0x28(%r14), %rsi
leaq 0x10(%rsp), %rdi
callq 0x7d564
leaq 0x10(%rsp), %rsi
movq %r15, %rdi
callq 0x11320
leaq 0x10(%rsp), %rdi
callq 0x209be
movq 0x841f2(%rip), %rdi     # 0x105fc8
callq 0x111b0
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
incl %ebx
cmpq %r14, %r15
je 0x81dfb
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
jmp 0x81de5
leaq 0x30(%rsp), %rdi
callq 0x209be
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x209be
jmp 0x81e2a
jmp 0x81e27
jmp 0x81e27
jmp 0x81e27
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x209be
movq %rbx, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Unary::PrintAST(int)
Print(Unary) {
        SkipIf(token.type != ADD && token.type != SUB && token.type != NOT);
        PrintIndent();
        PrintName();
        PrintToken();
        PrintNodes();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movl %esi, %ebx
movq %rdi, %r14
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0x81e79
movl 0x28(%r14), %ecx
cmpq $0x27, %rcx
ja 0x81f95
movabsq $0x800c000000, %rdx     # imm = 0x800C000000
btq %rcx, %rdx
jae 0x81f95
xorl %ebp, %ebp
testl %ebx, %ebx
cmovgl %ebx, %ebp
movq 0x84141(%rip), %r15     # 0x105fc8
leaq 0x27926(%rip), %r12     # 0xa97b4
subl $0x1, %ebp
jb 0x81ea0
movq %r15, %rdi
movq %r12, %rsi
callq 0x11340
jmp 0x81e8e
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x8403c
movq %r15, %rdi
callq 0x1b9ce
leaq 0x50(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
leaq 0x30(%rsp), %r15
leaq 0xf(%rsp), %rdx
movq %r15, %rdi
callq 0x209a4
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x10(%rsp), %rdi
pushq $0xa
popq %rdx
movq %r15, %rsi
callq 0x79922
leaq 0x30(%rsp), %r15
leaq 0x10(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x2dc3c
movq %r12, %rdi
callq 0x209be
movq 0x840b9(%rip), %rdi     # 0x105fc8
movq %r15, %rsi
callq 0x11320
movq 0x840aa(%rip), %rdi     # 0x105fc8
leaq 0x27890(%rip), %rsi     # 0xa97b5
callq 0x11340
movq %rax, %r15
leaq 0x28(%r14), %rsi
leaq 0x10(%rsp), %rdi
callq 0x7d564
leaq 0x10(%rsp), %rsi
movq %r15, %rdi
callq 0x11320
leaq 0x10(%rsp), %rdi
callq 0x209be
movq 0x8406f(%rip), %rdi     # 0x105fc8
callq 0x111b0
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
incl %ebx
cmpq %r14, %r15
je 0x81f7e
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
jmp 0x81f68
leaq 0x30(%rsp), %rdi
callq 0x209be
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x209be
jmp 0x81fc7
jmp 0x81fc4
jmp 0x81fc4
jmp 0x81fc4
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x209be
movq %rbx, %rdi
callq 0x11570
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Cast::PrintAST(int)
Print(Cast) {
        SkipIf(token.type != AS);
        PrintIndent();
        PrintName();
        PrintNodes();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movl %esi, %ebx
movq %rdi, %r14
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0x82016
cmpl $0xe, 0x28(%r14)
je 0x82016
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
xorl %ebp, %ebp
testl %ebx, %ebx
cmovgl %ebx, %ebp
movq 0x83fa4(%rip), %r15     # 0x105fc8
leaq 0x27789(%rip), %r12     # 0xa97b4
subl $0x1, %ebp
jb 0x8203d
movq %r15, %rdi
movq %r12, %rsi
callq 0x11340
jmp 0x8202b
leaq 0x30(%rsp), %r15
movq %r15, %rdi
callq 0x8407a
movq %r15, %rdi
callq 0x1b9ce
leaq 0x50(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
leaq 0x10(%rsp), %r15
leaq 0xf(%rsp), %rdx
movq %r15, %rdi
callq 0x209a4
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x30(%rsp), %rdi
pushq $0xa
popq %rdx
movq %r15, %rsi
callq 0x79922
leaq 0x10(%rsp), %r15
leaq 0x30(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x2dc3c
movq %r12, %rdi
callq 0x209be
movq 0x83f1c(%rip), %rdi     # 0x105fc8
movq %r15, %rsi
callq 0x11320
movq 0x83f0d(%rip), %rdi     # 0x105fc8
callq 0x111b0
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
incl %ebx
cmpq %r14, %r15
je 0x820e0
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
jmp 0x820ca
leaq 0x10(%rsp), %rdi
callq 0x209be
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x820fb
jmp 0x820fb
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x209be
movq %rbx, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Cond::PrintAST(int)
Print(Cond) {
        SkipIf(token.type != QUESTION);
        PrintIndent();
        PrintName();
        PrintNodes();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movl %esi, %ebx
movq %rdi, %r14
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0x82c8c
cmpl $0x31, 0x28(%r14)
je 0x82c8c
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
xorl %ebp, %ebp
testl %ebx, %ebx
cmovgl %ebx, %ebp
movq 0x8332e(%rip), %r15     # 0x105fc8
leaq 0x26b13(%rip), %r12     # 0xa97b4
subl $0x1, %ebp
jb 0x82cb3
movq %r15, %rdi
movq %r12, %rsi
callq 0x11340
jmp 0x82ca1
leaq 0x30(%rsp), %r15
movq %r15, %rdi
callq 0x8422c
movq %r15, %rdi
callq 0x1b9ce
leaq 0x50(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
leaq 0x10(%rsp), %r15
leaq 0xf(%rsp), %rdx
movq %r15, %rdi
callq 0x209a4
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x30(%rsp), %rdi
pushq $0xa
popq %rdx
movq %r15, %rsi
callq 0x79922
leaq 0x10(%rsp), %r15
leaq 0x30(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x2dc3c
movq %r12, %rdi
callq 0x209be
movq 0x832a6(%rip), %rdi     # 0x105fc8
movq %r15, %rsi
callq 0x11320
movq 0x83297(%rip), %rdi     # 0x105fc8
callq 0x111b0
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
incl %ebx
cmpq %r14, %r15
je 0x82d56
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
jmp 0x82d40
leaq 0x10(%rsp), %rdi
callq 0x209be
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x82d71
jmp 0x82d71
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x209be
movq %rbx, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Const::PrintAST(int)
Print(Const) {
        SkipIf(true);
        PrintIndent();
        PrintName();
        PrintNodes();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movl %esi, %ebx
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0x82db8
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq %rdi, %r14
xorl %ebp, %ebp
testl %ebx, %ebx
cmovgl %ebx, %ebp
movq 0x831ff(%rip), %r15     # 0x105fc8
leaq 0x269e4(%rip), %r12     # 0xa97b4
subl $0x1, %ebp
jb 0x82de2
movq %r15, %rdi
movq %r12, %rsi
callq 0x11340
jmp 0x82dd0
leaq 0x30(%rsp), %r15
movq %r15, %rdi
callq 0x8426a
movq %r15, %rdi
callq 0x1b9ce
leaq 0x50(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
leaq 0x10(%rsp), %r15
leaq 0xf(%rsp), %rdx
movq %r15, %rdi
callq 0x209a4
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x30(%rsp), %rdi
pushq $0xa
popq %rdx
movq %r15, %rsi
callq 0x79922
leaq 0x10(%rsp), %r15
leaq 0x30(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x2dc3c
movq %r12, %rdi
callq 0x209be
movq 0x83177(%rip), %rdi     # 0x105fc8
movq %r15, %rsi
callq 0x11320
movq 0x83168(%rip), %rdi     # 0x105fc8
callq 0x111b0
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
incl %ebx
cmpq %r14, %r15
je 0x82e85
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
jmp 0x82e6f
leaq 0x10(%rsp), %rdi
callq 0x209be
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x82ea0
jmp 0x82ea0
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x209be
movq %rbx, %rdi
callq 0x11570
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Exp::PrintAST(int)
Print(Exp) {
        SkipIf(true);
        PrintIndent();
        PrintName();
        PrintNodes();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movl %esi, %ebx
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0x82ff4
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq %rdi, %r14
xorl %ebp, %ebp
testl %ebx, %ebx
cmovgl %ebx, %ebp
movq 0x82fc3(%rip), %r15     # 0x105fc8
leaq 0x267a8(%rip), %r12     # 0xa97b4
subl $0x1, %ebp
jb 0x8301e
movq %r15, %rdi
movq %r12, %rsi
callq 0x11340
jmp 0x8300c
leaq 0x30(%rsp), %r15
movq %r15, %rdi
callq 0x842e6
movq %r15, %rdi
callq 0x1b9ce
leaq 0x50(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
leaq 0x10(%rsp), %r15
leaq 0xf(%rsp), %rdx
movq %r15, %rdi
callq 0x209a4
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x30(%rsp), %rdi
pushq $0xa
popq %rdx
movq %r15, %rsi
callq 0x79922
leaq 0x10(%rsp), %r15
leaq 0x30(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x2dc3c
movq %r12, %rdi
callq 0x209be
movq 0x82f3b(%rip), %rdi     # 0x105fc8
movq %r15, %rsi
callq 0x11320
movq 0x82f2c(%rip), %rdi     # 0x105fc8
callq 0x111b0
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
incl %ebx
cmpq %r14, %r15
je 0x830c1
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
jmp 0x830ab
leaq 0x10(%rsp), %rdi
callq 0x209be
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x830dc
jmp 0x830dc
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x209be
movq %rbx, %rdi
callq 0x11570
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::DefVar::PrintAST(int)
Print(DefVar) {
        PrintIndent();
        PrintName();
        PrintTokenList();
        PrintNodes();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rdi, 0x8(%rsp)
xorl %ebp, %ebp
testl %esi, %esi
movl %esi, 0x4(%rsp)
cmovgl %esi, %ebp
movq 0x82eae(%rip), %r14     # 0x105fc8
leaq 0x26693(%rip), %rbx     # 0xa97b4
subl $0x1, %ebp
jb 0x83133
movq %r14, %rdi
movq %rbx, %rsi
callq 0x11340
jmp 0x83121
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
callq 0x84324
movq %rbx, %rdi
callq 0x1b9ce
leaq 0x68(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
leaq 0x10(%rsp), %rbx
leaq 0x3(%rsp), %rdx
movq %rbx, %rdi
callq 0x209a4
movq 0x8(%rbx), %rcx
addq $-0xb, %rcx
leaq 0x30(%rsp), %rdi
pushq $0xa
popq %rdx
movq %rbx, %rsi
callq 0x79922
leaq 0x10(%rsp), %rbx
leaq 0x30(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2dc3c
movq %r14, %rdi
callq 0x209be
movq 0x82e26(%rip), %rdi     # 0x105fc8
movq %rbx, %rsi
callq 0x11320
movq 0x8(%rsp), %rax
movq 0x60(%rax), %r12
movq 0x68(%rax), %rbp
leaq 0x30(%rsp), %r13
leaq 0x265f2(%rip), %r14     # 0xa97b5
leaq 0x68(%rsp), %r15
cmpq %rbp, %r12
je 0x83218
movq %r13, %rdi
movq %r12, %rsi
callq 0x7e3de
movq 0x82de9(%rip), %rdi     # 0x105fc8
movq %r14, %rsi
callq 0x11340
movq %rax, %rbx
movq %r15, %rdi
movq %r13, %rsi
callq 0x7d564
movq %rbx, %rdi
movq %r15, %rsi
callq 0x11320
movq %r15, %rdi
callq 0x209be
leaq 0x48(%rsp), %rdi
callq 0x209be
addq $0x38, %r12
jmp 0x831c8
movq 0x82da9(%rip), %rdi     # 0x105fc8
callq 0x111b0
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rbx
movq 0x18(%rax), %r14
incl 0x4(%rsp)
cmpq %r14, %rbx
je 0x8324d
movq (%rbx), %rdi
movq (%rdi), %rax
movl 0x4(%rsp), %esi
callq *0x8(%rax)
addq $0x8, %rbx
jmp 0x83235
leaq 0x10(%rsp), %rdi
callq 0x209be
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x8326f
jmp 0x8326f
jmp 0x8326f
movq %rax, %rbx
jmp 0x83292
jmp 0x83276
movq %rax, %rbx
jmp 0x83288
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x209be
leaq 0x48(%rsp), %rdi
callq 0x209be
leaq 0x10(%rsp), %rdi
callq 0x209be
movq %rbx, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::Compiler::Scope::GetVarID(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
int Gos::Compiler::Scope::GetVarID(const std::string& name, std::string& errorInfo) {
    if (varID.find(name) != varID.end()) {
        return varID[name];
    }
    if (fa != nullptr) {
        return fa->GetVarID(name, errorInfo);
    }
    std::stringstream ss;
    ss << "Error: " << compilingFileName << ": " << compilingLine << ": no such variable: " << name;
    errorInfo = ss.str();
    return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
leaq 0x28(%r15), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x7a3e8
testq %rax, %rax
jne 0x84e45
movq (%r15), %r15
testq %r15, %r15
jne 0x84d93
leaq 0x20(%rsp), %rdi
callq 0x11270
leaq 0x30(%rsp), %rdi
leaq 0x248d0(%rip), %rsi     # 0xa9699
callq 0x11340
leaq 0x8241b(%rip), %rsi     # 0x1071f0
movq %rax, %rdi
callq 0x11320
leaq 0x126b3(%rip), %rsi     # 0x97497
movq %rax, %rdi
callq 0x11340
movl 0x82486(%rip), %esi     # 0x107278
movq %rax, %rdi
callq 0x11540
leaq 0x25cf3(%rip), %rsi     # 0xaaaf4
movq %rax, %rdi
callq 0x11340
movq %rax, %rdi
movq %r14, %rsi
callq 0x11320
leaq 0x38(%rsp), %rsi
movq %rsp, %rdi
callq 0x112a0
movq %rsp, %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2dc3c
movq %r14, %rdi
callq 0x209be
leaq 0x20(%rsp), %rdi
callq 0x112c0
xorl %eax, %eax
jmp 0x84e52
movq %r12, %rdi
movq %r14, %rsi
callq 0x7a76e
movl (%rax), %eax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x84e63
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x112c0
movq %rbx, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::Compiler::Scope::GetVarType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::string Gos::Compiler::Scope::GetVarType(const std::string& name) {
    if (varType.find(name) != varType.end()) {
        return varType[name];
    }
    if (fa != nullptr) {
        return fa->GetVarType(name);
    }
    std::cerr << "Error: " << compilingFileName << ": " << compilingLine << ": unknown variable type of " << name << std::endl;
    return "unknown";
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x60(%r15), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x89160
testq %rax, %rax
jne 0x84f1c
movq (%r15), %r15
testq %r15, %r15
jne 0x84e89
movq 0x81144(%rip), %rdi     # 0x105ff0
leaq 0x247e6(%rip), %rsi     # 0xa9699
callq 0x11340
leaq 0x82331(%rip), %rsi     # 0x1071f0
movq %rax, %rdi
callq 0x11320
leaq 0x125c9(%rip), %rsi     # 0x97497
movq %rax, %rdi
callq 0x11340
movl 0x8239c(%rip), %esi     # 0x107278
movq %rax, %rdi
callq 0x11540
leaq 0x25c1e(%rip), %rsi     # 0xaab09
movq %rax, %rdi
callq 0x11340
movq %rax, %rdi
movq %r14, %rsi
callq 0x11320
movq %rax, %rdi
callq 0x111b0
leaq 0x25c18(%rip), %rsi     # 0xaab25
leaq 0x7(%rsp), %rdx
movq %rbx, %rdi
callq 0x664f4
jmp 0x84f32
movq %r12, %rdi
movq %r14, %rsi
callq 0x89230
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2b71e
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::Compiler::VMCompiler::MoveToNew()
void Gos::Compiler::VMCompiler::MoveToNew() {
    currentScope->subScopes.push_back(Scope());
    Scope* newScope = &currentScope->subScopes.back();
    newScope->pos = currentScope->pos;
    newScope->fa = currentScope;
    currentScope = newScope;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movq %rdi, %rbx
movq 0xd0(%rdi), %r14
addq $0x8, %r14
leaq 0x60(%rsp), %r12
leaq 0x8(%rsp), %r15
movl $0xc0, %edx
movq %r15, %rdi
xorl %esi, %esi
callq 0x111d0
movq %r12, 0x28(%r15)
pushq $0x1
popq %rax
movq %rax, 0x30(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x38(%r15)
movl $0x3f800000, %ecx       # imm = 0x3F800000
movl %ecx, 0x48(%r15)
movups %xmm0, 0x50(%r15)
leaq 0x98(%rsp), %rdx
movq %rdx, -0x30(%rdx)
movq %rax, -0x28(%rdx)
movups %xmm0, -0x20(%rdx)
movl %ecx, -0x10(%rdx)
movups %xmm0, -0x8(%rdx)
leaq 0xd0(%rsp), %rdx
movq %rdx, -0x30(%rdx)
movq %rax, -0x28(%rdx)
movups %xmm0, -0x20(%rdx)
movl %ecx, -0x10(%rdx)
movups %xmm0, -0x8(%rdx)
movq %r14, %rdi
movq %r15, %rsi
callq 0x895ca
leaq 0x8(%rsp), %rdi
callq 0x8893e
movq 0xd0(%rbx), %rax
movq 0x10(%rax), %rcx
movq 0x20(%rax), %rdx
leaq -0xd0(%rcx), %rsi
movq %rdx, -0xb0(%rcx)
movq %rax, -0xd0(%rcx)
movq %rsi, 0xd0(%rbx)
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x8893e
movq %rbx, %rdi
callq 0x11570
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::Compiler::VMCompiler::VMCompiler(GosVM::VMProgram&)
Gos::Compiler::VMCompiler::VMCompiler(GosVM::VMProgram& program) : pos(1), vm(program) {
    mainScope.fa = nullptr;
    mainScope.pos = &pos;
    currentScope = &mainScope;
    usings.clear();
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x888c8
leaq 0xe0(%r14), %rax
movl $0x1, 0xe0(%r14)
movq %rbx, 0xe8(%r14)
leaq 0x120(%r14), %rcx
movq %rcx, 0xf0(%r14)
movq $0x1, 0xf8(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x100(%r14)
movl $0x3f800000, 0x110(%r14) # imm = 0x3F800000
andq $0x0, (%r14)
movups %xmm0, 0x118(%r14)
movups %xmm0, 0x128(%r14)
movups %xmm0, 0x138(%r14)
movups %xmm0, 0x148(%r14)
movq %rax, 0x20(%r14)
movq %r14, 0xd0(%r14)
leaq 0x8213f(%rip), %rdi     # 0x107260
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x8896e
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: GetFieldCache(Gos::Compiler::Scope*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
static inline int& GetFieldCache(Gos::Compiler::Scope* scope, const std::string& name) {
    for (auto* p = scope; p != nullptr; p = p->fa) {
        auto& info = p->compilingClassVarID;
        if (info.find(name) != info.end()) {
            return info[name];
        }
    }
    auto& info = scope->compilingClassVarID;
    info[name] = -1;
    return info[name];
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movq %rdi, %r12
testq %r12, %r12
je 0x8534f
leaq 0x98(%r12), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x7a3e8
testq %rax, %rax
jne 0x85367
movq (%r12), %r12
jmp 0x8532c
addq $0x98, %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x7a76e
orl $-0x1, (%rax)
movq %r14, %r15
movq %r15, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x7a76e
nop
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::Number::CompileAST(Gos::Compiler::VMCompiler&)
Compile(Number) {
    compilingLine = token.line;
    int id = pc++;
    vm.WriteCommandNewNum(token.numType, id, token.num);
    return id;
}

// Assembly:
pushq %rbx
movl 0x2c(%rdi), %eax
movl %eax, 0x81ef0(%rip)     # 0x107278
movl 0xe0(%rsi), %ebx
leal 0x1(%rbx), %eax
movl %eax, 0xe0(%rsi)
movq 0xe8(%rsi), %rax
movsbl 0x30(%rdi), %esi
movq 0x38(%rdi), %rcx
movq %rax, %rdi
movl %ebx, %edx
callq 0x78d52
movl %ebx, %eax
popq %rbx
retq
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::String::CompileAST(Gos::Compiler::VMCompiler&)
Compile(String) {
    compilingLine = token.line;
    int id = pc++;
    vm.WriteCommandNewStr(id, token.str);
    return id;
}

// Assembly:
pushq %rbx
movl 0x2c(%rdi), %eax
movl %eax, 0x81eba(%rip)     # 0x107278
movl 0xe0(%rsi), %ebx
leal 0x1(%rbx), %eax
movl %eax, 0xe0(%rsi)
movq 0xe8(%rsi), %rax
leaq 0x40(%rdi), %rdx
movq %rax, %rdi
movl %ebx, %esi
callq 0x78ce4
movl %ebx, %eax
popq %rbx
retq
// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::Primary::CompileAST(Gos::Compiler::VMCompiler&)
Compile(Primary) {
    START();
    if (branch & 1) {
        std::vector<int> params;
        if (branch & 2) {
            GosAST* argsList = nodes[1];
            for (auto* expr : argsList->nodes) {
                params.push_back(expr->CompileAST(code));
            }
        }
        int id = code.GetTmpVar();
        vm.WriteCommandNew(nodes[0]->token.str, id, params);
        return id;
    }
    return SUB(0);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl 0x2c(%rdi), %eax
movl %eax, 0x81e7b(%rip)     # 0x107278
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0x85431
movq %rsi, %rbx
movq %rdi, %r14
movl 0x8(%rdi), %ecx
testb $0x1, %cl
jne 0x85435
movq (%rax), %rdi
movq (%rdi), %rax
movq (%rax), %rax
movq %rbx, %rsi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
xorl %ebp, %ebp
jmp 0x8547a
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
andq $0x0, 0x20(%rsp)
testb $0x2, %cl
jne 0x8548b
movq %rbx, %rdi
callq 0x85044
movl %eax, %ebp
movq 0xe8(%rbx), %rdi
movq 0x10(%r14), %rax
movq (%rax), %rsi
addq $0x40, %rsi
leaq 0x10(%rsp), %rcx
movl %ebp, %edx
callq 0x78c3c
leaq 0x10(%rsp), %rdi
callq 0x89956
movl %ebp, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%rax), %rax
movq 0x10(%rax), %r13
movq 0x18(%rax), %rbp
leaq 0x10(%rsp), %r15
leaq 0xc(%rsp), %r12
cmpq %rbp, %r13
je 0x85448
movq (%r13), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movl %eax, 0xc(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x89a6c
addq $0x8, %r13
jmp 0x854a1
jmp 0x854c9
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x89956
movq %rbx, %rdi
callq 0x11570