LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O1/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
testl %esi, %esi
jle 0xa422d
movq 0x79db8(%rip), %r15     # 0x11dfc8
leaq 0x2c38d(%rip), %r12     # 0xd05a4
movl %ebx, %ebp
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x113c0
decl %ebp
jne 0xa4219
movq 0x79d94(%rip), %r15     # 0x11dfc8
leaq 0x2c36c(%rip), %rsi     # 0xd05a7
movl $0x1, %edx
movq %r15, %rdi
callq 0x113c0
leaq 0x2c356(%rip), %rsi     # 0xd05a5
movl $0x1, %edx
movq %r15, %rdi
callq 0x113c0
leaq 0x28(%r14), %rsi
movq %rsp, %r12
movq %r12, %rdi
callq 0x9ed56
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq %r15, %rdi
callq 0x113c0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa4297
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq %r15, %rdi
callq 0x11040
movq %rax, %rdi
callq 0x11260
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
cmpq %r14, %r15
je 0xa42e1
incl %ebx
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
cmpq %r14, %r15
jne 0xa42cd
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa430c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
// File: /workspace/github_cpp_makefile_star2_O1/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 %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %esi, %ebx
movq %rdi, %r14
testl %esi, %esi
jle 0xa434f
movq 0x79c96(%rip), %r15     # 0x11dfc8
leaq 0x2c26b(%rip), %r12     # 0xd05a4
movl %ebx, %ebp
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x113c0
decl %ebp
jne 0xa433b
movabsq $-0x283c32e41c966238, %rax # imm = 0xD7C3CD1BE3699DC8
leaq 0x8(%rsp), %rdi
movq %rax, (%rdi)
movq $0x12, 0x8(%rdi)
leaq 0x2c26d(%rip), %rax     # 0xd05dd
movq %rax, 0x10(%rdi)
movw $0x1, 0x18(%rdi)
callq 0x1ff7e
leaq 0x38(%rsp), %r12
movq %r12, -0x10(%r12)
addq %rdx, %rax
leaq 0x28(%rsp), %r15
movq %r15, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0x27dc8
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x8(%rsp), %rdi
movl $0xa, %edx
movq %r15, %rsi
callq 0x9b238
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %r15
movq %r15, %rsi
callq 0x11a68
movq (%r15), %rdi
leaq 0x18(%rsp), %r13
cmpq %r13, %rdi
je 0xa43e5
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x11360
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x79bd2(%rip), %rdi     # 0x11dfc8
callq 0x113c0
movq 0x79bc6(%rip), %rdi     # 0x11dfc8
leaq 0x2c19c(%rip), %rsi     # 0xd05a5
movl $0x1, %edx
callq 0x113c0
leaq 0x28(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x9ed56
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x79b96(%rip), %r15     # 0x11dfc8
movq %r15, %rdi
callq 0x113c0
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0xa4451
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x11360
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq 0x79b59(%rip), %rdi     # 0x11dfc8
callq 0x11040
movq %rax, %rdi
callq 0x11260
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
cmpq %r14, %r15
je 0xa449f
incl %ebx
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
cmpq %r14, %r15
jne 0xa448b
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0xa44b6
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x11360
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0xa44ea
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0xa44ea
jmp 0xa44e7
jmp 0xa44e7
jmp 0xa44e7
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0xa4501
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 $0x40, %rsp
movl %esi, %ebx
movq %rdi, %r14
testl %esi, %esi
jle 0xa4717
movq 0x798ce(%rip), %r15     # 0x11dfc8
leaq 0x2bea3(%rip), %r12     # 0xd05a4
movl %ebx, %ebp
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x113c0
decl %ebp
jne 0xa4703
movabsq $-0x55b9b4dd6a42233, %rax # imm = 0xFAA464B2295BDDCD
movq %rsp, %rdi
movq %rax, (%rdi)
movq $0x12, 0x8(%rdi)
leaq 0x2bf37(%rip), %rax     # 0xd066d
movq %rax, 0x10(%rdi)
movw $0x1, 0x18(%rdi)
callq 0x1ff7e
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
addq %rdx, %rax
leaq 0x20(%rsp), %r15
movq %r15, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0x27dc8
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
movq %rsp, %rdi
movl $0xa, %edx
movq %r15, %rsi
callq 0x9b238
leaq 0x20(%rsp), %r15
movq %rsp, %rsi
movq %r15, %rdi
callq 0x11cc1
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq 0x7982d(%rip), %rdi     # 0x11dfc8
callq 0x113c0
movq 0x79821(%rip), %rdi     # 0x11dfc8
leaq 0x2bdf7(%rip), %rsi     # 0xd05a5
movl $0x1, %edx
callq 0x113c0
leaq 0x28(%r14), %rsi
movq %rsp, %rdi
callq 0x9ed56
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x797f4(%rip), %r15     # 0x11dfc8
movq %r15, %rdi
callq 0x113c0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa47f7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq 0x797b3(%rip), %rdi     # 0x11dfc8
callq 0x11040
movq %rax, %rdi
callq 0x11260
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
cmpq %r14, %r15
je 0xa4845
incl %ebx
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
cmpq %r14, %r15
jne 0xa4831
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0xa485c
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11360
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa4892
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0xa4892
jmp 0xa488f
jmp 0xa488f
jmp 0xa488f
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0xa48a9
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 $0x40, %rsp
movl %esi, %ebx
movq %rdi, %r14
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa48ee
cmpl $0x34, 0x28(%r14)
je 0xa48ee
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
testl %ebx, %ebx
jle 0xa4916
movq 0x796cf(%rip), %r15     # 0x11dfc8
leaq 0x2bca4(%rip), %r12     # 0xd05a4
movl %ebx, %ebp
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x113c0
decl %ebp
jne 0xa4902
movabsq $0xbb6276eda6859aa, %rax # imm = 0xBB6276EDA6859AA
leaq 0x20(%rsp), %rdi
movq %rax, (%rdi)
movq $0x13, 0x8(%rdi)
leaq 0x2bd7e(%rip), %rax     # 0xd06b5
movq %rax, 0x10(%rdi)
movw $0x1, 0x18(%rdi)
callq 0x1ff7e
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
addq %rdx, %rax
movq %rsp, %r15
movq %r15, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0x27dc8
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x20(%rsp), %rdi
movl $0xa, %edx
movq %r15, %rsi
callq 0x9b238
movq %rsp, %r15
leaq 0x20(%rsp), %rsi
movq %r15, %rdi
callq 0x11ce3
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq 0x7962c(%rip), %r15     # 0x11dfc8
movq %r15, %rdi
callq 0x113c0
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq 0x79606(%rip), %rdi     # 0x11dfc8
callq 0x11040
movq %rax, %rdi
callq 0x11260
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
cmpq %r14, %r15
je 0xa49f2
incl %ebx
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
cmpq %r14, %r15
jne 0xa49de
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa4a08
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa4a19
jmp 0xa4a19
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa4a32
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
// File: /workspace/github_cpp_makefile_star2_O1/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 $0x40, %rsp
movl %esi, %ebx
movq 0x10(%rdi), %rax
movq 0x18(%rdi), %rcx
subq %rax, %rcx
cmpq $0x8, %rcx
jne 0xa4a73
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq %rdi, %r14
testl %ebx, %ebx
jle 0xa4a9e
movq 0x79547(%rip), %r15     # 0x11dfc8
leaq 0x2bb1c(%rip), %r12     # 0xd05a4
movl %ebx, %ebp
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x113c0
decl %ebp
jne 0xa4a8a
movabsq $-0x568e593ac6d15ff7, %rax # imm = 0xA971A6C5392EA009
movq %rsp, %rdi
movq %rax, (%rdi)
movq $0x13, 0x8(%rdi)
leaq 0x2bc41(%rip), %rax     # 0xd06fe
movq %rax, 0x10(%rdi)
movw $0x1, 0x18(%rdi)
callq 0x1ff7e
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
addq %rdx, %rax
leaq 0x20(%rsp), %r15
movq %r15, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0x27dc8
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
movq %rsp, %rdi
movl $0xa, %edx
movq %r15, %rsi
callq 0x9b238
leaq 0x20(%rsp), %r15
movq %rsp, %rsi
movq %r15, %rdi
callq 0x11d05
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq 0x794a6(%rip), %rdi     # 0x11dfc8
callq 0x113c0
movq 0x7949a(%rip), %rdi     # 0x11dfc8
leaq 0x2ba70(%rip), %rsi     # 0xd05a5
movl $0x1, %edx
callq 0x113c0
leaq 0x28(%r14), %rsi
movq %rsp, %rdi
callq 0x9ed56
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x7946d(%rip), %r15     # 0x11dfc8
movq %r15, %rdi
callq 0x113c0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa4b7e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq 0x7942c(%rip), %rdi     # 0x11dfc8
callq 0x11040
movq %rax, %rdi
callq 0x11260
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
cmpq %r14, %r15
je 0xa4bcc
incl %ebx
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
cmpq %r14, %r15
jne 0xa4bb8
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0xa4be3
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11360
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa4c19
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0xa4c19
jmp 0xa4c16
jmp 0xa4c16
jmp 0xa4c16
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0xa4c30
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
// File: /workspace/github_cpp_makefile_star2_O1/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 $0x40, %rsp
movl %esi, %ebx
movq %rdi, %r14
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa4c87
movl 0x28(%r14), %ecx
cmpq $0x27, %rcx
ja 0xa4c6d
movabsq $0x800c000000, %rdx     # imm = 0x800C000000
btq %rcx, %rdx
jb 0xa4c87
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
testl %ebx, %ebx
jle 0xa4caf
movq 0x79336(%rip), %r15     # 0x11dfc8
leaq 0x2b90b(%rip), %r12     # 0xd05a4
movl %ebx, %ebp
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x113c0
decl %ebp
jne 0xa4c9b
movabsq $0x63383b7dd662a3c3, %rax # imm = 0x63383B7DD662A3C3
movq %rsp, %rdi
movq %rax, (%rdi)
movq $0x11, 0x8(%rdi)
leaq 0x2ba79(%rip), %rax     # 0xd0747
movq %rax, 0x10(%rdi)
movw $0x1, 0x18(%rdi)
callq 0x1ff7e
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
addq %rdx, %rax
leaq 0x20(%rsp), %r15
movq %r15, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0x27dc8
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
movq %rsp, %rdi
movl $0xa, %edx
movq %r15, %rsi
callq 0x9b238
leaq 0x20(%rsp), %r15
movq %rsp, %rsi
movq %r15, %rdi
callq 0x11d27
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq 0x79295(%rip), %rdi     # 0x11dfc8
callq 0x113c0
movq 0x79289(%rip), %rdi     # 0x11dfc8
leaq 0x2b85f(%rip), %rsi     # 0xd05a5
movl $0x1, %edx
callq 0x113c0
leaq 0x28(%r14), %rsi
movq %rsp, %rdi
callq 0x9ed56
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x7925c(%rip), %r15     # 0x11dfc8
movq %r15, %rdi
callq 0x113c0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa4d8f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq 0x7921b(%rip), %rdi     # 0x11dfc8
callq 0x11040
movq %rax, %rdi
callq 0x11260
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
cmpq %r14, %r15
je 0xa4ddd
incl %ebx
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
cmpq %r14, %r15
jne 0xa4dc9
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0xa4df4
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11360
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa4e2a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0xa4e2a
jmp 0xa4e27
jmp 0xa4e27
jmp 0xa4e27
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0xa4e41
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 $0x40, %rsp
movl %esi, %ebx
movq %rdi, %r14
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa4e86
cmpl $0xe, 0x28(%r14)
je 0xa4e86
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
testl %ebx, %ebx
jle 0xa4eae
movq 0x79137(%rip), %r15     # 0x11dfc8
leaq 0x2b70c(%rip), %r12     # 0xd05a4
movl %ebx, %ebp
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x113c0
decl %ebp
jne 0xa4e9a
movabsq $0xce23feacd38c163, %rax # imm = 0xCE23FEACD38C163
leaq 0x20(%rsp), %rdi
movq %rax, (%rdi)
movq $0x10, 0x8(%rdi)
leaq 0x2b8bf(%rip), %rax     # 0xd078e
movq %rax, 0x10(%rdi)
movw $0x1, 0x18(%rdi)
callq 0x1ff7e
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
addq %rdx, %rax
movq %rsp, %r15
movq %r15, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0x27dc8
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x20(%rsp), %rdi
movl $0xa, %edx
movq %r15, %rsi
callq 0x9b238
movq %rsp, %r15
leaq 0x20(%rsp), %rsi
movq %r15, %rdi
callq 0x11d49
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq 0x79094(%rip), %r15     # 0x11dfc8
movq %r15, %rdi
callq 0x113c0
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq 0x7906e(%rip), %rdi     # 0x11dfc8
callq 0x11040
movq %rax, %rdi
callq 0x11260
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
cmpq %r14, %r15
je 0xa4f8a
incl %ebx
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
cmpq %r14, %r15
jne 0xa4f76
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa4fa0
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa4fb1
jmp 0xa4fb1
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa4fca
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
// File: /workspace/github_cpp_makefile_star2_O1/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 $0x40, %rsp
movl %esi, %ebx
movq %rdi, %r14
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa5f9e
cmpl $0x31, 0x28(%r14)
je 0xa5f9e
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
testl %ebx, %ebx
jle 0xa5fc6
movq 0x7801f(%rip), %r15     # 0x11dfc8
leaq 0x2a5f4(%rip), %r12     # 0xd05a4
movl %ebx, %ebp
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x113c0
decl %ebp
jne 0xa5fb2
movabsq $-0x49895c1563ab82bc, %rax # imm = 0xB676A3EA9C547D44
leaq 0x20(%rsp), %rdi
movq %rax, (%rdi)
movq $0x10, 0x8(%rdi)
leaq 0x2a99e(%rip), %rax     # 0xd0985
movq %rax, 0x10(%rdi)
movw $0x1, 0x18(%rdi)
callq 0x1ff7e
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
addq %rdx, %rax
movq %rsp, %r15
movq %r15, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0x27dc8
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x20(%rsp), %rdi
movl $0xa, %edx
movq %r15, %rsi
callq 0x9b238
movq %rsp, %r15
leaq 0x20(%rsp), %rsi
movq %r15, %rdi
callq 0x11e37
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq 0x77f7c(%rip), %r15     # 0x11dfc8
movq %r15, %rdi
callq 0x113c0
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq 0x77f56(%rip), %rdi     # 0x11dfc8
callq 0x11040
movq %rax, %rdi
callq 0x11260
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
cmpq %r14, %r15
je 0xa60a2
incl %ebx
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
cmpq %r14, %r15
jne 0xa608e
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa60b8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa60c9
jmp 0xa60c9
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa60e2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
// File: /workspace/github_cpp_makefile_star2_O1/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 $0x40, %rsp
movl %esi, %ebx
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa611c
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq %rdi, %r14
testl %ebx, %ebx
jle 0xa6147
movq 0x77e9e(%rip), %r15     # 0x11dfc8
leaq 0x2a473(%rip), %r12     # 0xd05a4
movl %ebx, %ebp
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x113c0
decl %ebp
jne 0xa6133
movabsq $0x6048b9a7a3bc158f, %rax # imm = 0x6048B9A7A3BC158F
leaq 0x20(%rsp), %rdi
movq %rax, (%rdi)
movq $0x11, 0x8(%rdi)
leaq 0x2a863(%rip), %rax     # 0xd09cb
movq %rax, 0x10(%rdi)
movw $0x1, 0x18(%rdi)
callq 0x1ff7e
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
addq %rdx, %rax
movq %rsp, %r15
movq %r15, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0x27dc8
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x20(%rsp), %rdi
movl $0xa, %edx
movq %r15, %rsi
callq 0x9b238
movq %rsp, %r15
leaq 0x20(%rsp), %rsi
movq %r15, %rdi
callq 0x11e59
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq 0x77dfb(%rip), %r15     # 0x11dfc8
movq %r15, %rdi
callq 0x113c0
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq 0x77dd5(%rip), %rdi     # 0x11dfc8
callq 0x11040
movq %rax, %rdi
callq 0x11260
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
cmpq %r14, %r15
je 0xa6223
incl %ebx
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
cmpq %r14, %r15
jne 0xa620f
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa6239
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa624a
jmp 0xa624a
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa6263
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 $0x40, %rsp
movl %esi, %ebx
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa63fc
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
movl %ebx, %esi
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq %rdi, %r14
testl %ebx, %ebx
jle 0xa6427
movq 0x77bbe(%rip), %r15     # 0x11dfc8
leaq 0x2a193(%rip), %r12     # 0xd05a4
movl %ebx, %ebp
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x113c0
decl %ebp
jne 0xa6413
movabsq $0xf8e19a40859d01b, %rax # imm = 0xF8E19A40859D01B
leaq 0x20(%rsp), %rdi
movq %rax, (%rdi)
movq $0xf, 0x8(%rdi)
leaq 0x2a612(%rip), %rax     # 0xd0a5a
movq %rax, 0x10(%rdi)
movw $0x1, 0x18(%rdi)
callq 0x1ff7e
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
addq %rdx, %rax
movq %rsp, %r15
movq %r15, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0x27dc8
movq 0x8(%r15), %rcx
addq $-0xb, %rcx
leaq 0x20(%rsp), %rdi
movl $0xa, %edx
movq %r15, %rsi
callq 0x9b238
movq %rsp, %r15
leaq 0x20(%rsp), %rsi
movq %r15, %rdi
callq 0x11e9d
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq 0x77b1b(%rip), %r15     # 0x11dfc8
movq %r15, %rdi
callq 0x113c0
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq 0x77af5(%rip), %rdi     # 0x11dfc8
callq 0x11040
movq %rax, %rdi
callq 0x11260
movq 0x10(%r14), %r15
movq 0x18(%r14), %r14
cmpq %r14, %r15
je 0xa6503
incl %ebx
movq (%r15), %rdi
movq (%rdi), %rax
movl %ebx, %esi
callq *0x8(%rax)
addq $0x8, %r15
cmpq %r14, %r15
jne 0xa64ef
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa6519
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa652a
jmp 0xa652a
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa6543
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 0x9bd66
testq %rax, %rax
jne 0xa7a9e
movq (%r15), %r15
testq %r15, %r15
jne 0xa79a3
leaq 0x20(%rsp), %rdi
callq 0x11280
leaq 0x30(%rsp), %r15
leaq 0x28ab1(%rip), %rsi     # 0xd048a
movl $0x7, %edx
movq %r15, %rdi
callq 0x113c0
movq 0x77813(%rip), %rsi     # 0x11f200
movq 0x77814(%rip), %rdx     # 0x11f208
movq %r15, %rdi
callq 0x113c0
movq %rax, %r15
leaq 0x168b3(%rip), %rsi     # 0xbe2b9
movl $0x2, %edx
movq %rax, %rdi
callq 0x113c0
movl 0x7786f(%rip), %esi     # 0x11f288
movq %r15, %rdi
callq 0x11550
movq %rax, %r15
leaq 0x296b5(%rip), %rsi     # 0xd10e0
movl $0x14, %edx
movq %rax, %rdi
callq 0x113c0
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %r15, %rdi
callq 0x113c0
leaq 0x38(%rsp), %rsi
movq %rsp, %rdi
callq 0x112b0
movq %rsp, %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x11a68
movq (%r14), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0xa7a7c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11360
movq 0x76515(%rip), %rsi     # 0x11df98
leaq 0x20(%rsp), %rdi
callq 0x112c0
leaq 0xa0(%rsp), %rdi
callq 0x11120
xorl %eax, %eax
jmp 0xa7aab
movq %r12, %rdi
movq %r14, %rsi
callq 0x9c09a
movl (%rax), %eax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0xa7abc
movq %rax, %rbx
movq 0x764d2(%rip), %rsi     # 0x11df98
leaq 0x20(%rsp), %rdi
callq 0x112c0
leaq 0xa0(%rsp), %rdi
callq 0x11120
movq %rbx, %rdi
callq 0x11580
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 0xad77c
testq %rax, %rax
jne 0xa7bdc
movq (%r15), %r15
testq %r15, %r15
jne 0xa7af7
movq 0x764d2(%rip), %r15     # 0x11dff0
leaq 0x28965(%rip), %rsi     # 0xd048a
movl $0x7, %edx
movq %r15, %rdi
callq 0x113c0
movq 0x776c7(%rip), %rsi     # 0x11f200
movq 0x776c8(%rip), %rdx     # 0x11f208
movq %r15, %rdi
callq 0x113c0
movq %rax, %r15
leaq 0x16767(%rip), %rsi     # 0xbe2b9
movl $0x2, %edx
movq %rax, %rdi
callq 0x113c0
movl 0x77723(%rip), %esi     # 0x11f288
movq %r15, %rdi
callq 0x11550
movq %rax, %r15
leaq 0x2957e(%rip), %rsi     # 0xd10f5
movl $0x1b, %edx
movq %rax, %rdi
callq 0x113c0
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %r15, %rdi
callq 0x113c0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x11340
movsbl %al, %esi
movq %r14, %rdi
callq 0x11040
movq %rax, %rdi
callq 0x11260
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x29546(%rip), %rsi     # 0xd1111
leaq 0x29546(%rip), %rdx     # 0xd1118
movq %rbx, %rdi
callq 0x27dc8
jmp 0xa7c00
movq %r12, %rdi
movq %r14, %rsi
callq 0xad878
leaq 0x10(%rbx), %rcx
movq %rcx, (%rbx)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x37586
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 $0xd0, %edx
movq %r15, %rdi
xorl %esi, %esi
callq 0x111d0
movq %r12, 0x28(%r15)
movl $0x1, %eax
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 0xadbd2
leaq 0x30(%rsp), %r14
leaq 0x68(%rsp), %r15
leaq 0xa0(%rsp), %rdi
leaq 0x10(%rsp), %r12
callq 0xad4d8
movq %r15, %rdi
callq 0xad54c
movq %r14, %rdi
callq 0xad4d8
movq %r12, %rdi
callq 0xad474
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 0xace40
movq %rbx, %rdi
callq 0x11580
// File: /workspace/github_cpp_makefile_star2_O1/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, 0x76ff4(%rip)     # 0x11f288
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 0x9a064
movl %ebx, %eax
popq %rbx
retq
// File: /workspace/github_cpp_makefile_star2_O1/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, 0x76fbe(%rip)     # 0x11f288
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 0x99fb0
movl %ebx, %eax
popq %rbx
retq
// File: /workspace/github_cpp_makefile_star2_O1/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, 0x76f7f(%rip)     # 0x11f288
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa833d
movq %rsi, %rbx
movq %rdi, %r14
movl 0x8(%rdi), %ecx
testb $0x1, %cl
jne 0xa8345
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 %r15d, %r15d
jmp 0xa8421
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testb $0x2, %cl
je 0xa83b3
movq 0x8(%rax), %rax
movq 0x10(%rax), %r13
movq 0x18(%rax), %rbp
cmpq %rbp, %r13
je 0xa83b3
leaq 0x10(%rsp), %r15
leaq 0xc(%rsp), %r12
movq (%r13), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movl %eax, 0xc(%rsp)
movq 0x18(%rsp), %rsi
cmpq 0x20(%rsp), %rsi
je 0xa839f
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x18(%rsp)
jmp 0xa83aa
movq %r15, %rdi
movq %r12, %rdx
callq 0xae03e
addq $0x8, %r13
cmpq %rbp, %r13
jne 0xa8376
leaq 0x100(%rbx), %rax
movq (%rax), %rax
testq %rax, %rax
je 0xa83d5
movb 0xc(%rax), %cl
testb %cl, %cl
jne 0xa83d1
movb $0x1, 0xc(%rax)
movl 0x8(%rax), %r15d
testb %cl, %cl
jne 0xa83ba
testq %rax, %rax
jne 0xa83eb
movl 0xe0(%rbx), %r15d
leal 0x1(%r15), %eax
movl %eax, 0xe0(%rbx)
movq 0xe8(%rbx), %rdi
movq 0x10(%r14), %rax
movq (%rax), %rsi
addq $0x40, %rsi
leaq 0x10(%rsp), %rcx
movl %r15d, %edx
callq 0x99e82
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0xa8421
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movl %r15d, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa8435
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0xa844f
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
nop
// File: /workspace/github_cpp_makefile_star2_O1/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::Cast::CompileAST(Gos::Compiler::VMCompiler&)
Compile(Cast) {
    START();
    if (token.type == AS) {
        int tmp = code.GetTmpVar();
        vm.WriteCommandNew(nodes[1]->token.str, tmp, {});
        vm.WriteCommandMov(tmp, SUB(0));
        return tmp;
    }
    return SUB(0);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl 0x2c(%rdi), %eax
movl %eax, 0x765d0(%rip)     # 0x11f288
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa8d71
movq %rsi, %rbx
movq %rdi, %r15
cmpl $0xe, 0x28(%rdi)
jne 0xa8d83
leaq 0x100(%rbx), %rcx
movq (%rcx), %rcx
testq %rcx, %rcx
je 0xa8cf8
movb 0xc(%rcx), %dl
testb %dl, %dl
jne 0xa8cf4
movb $0x1, 0xc(%rcx)
movl 0x8(%rcx), %r14d
testb %dl, %dl
jne 0xa8cdd
testq %rcx, %rcx
jne 0xa8d0e
movl 0xe0(%rbx), %r14d
leal 0x1(%r14), %ecx
movl %ecx, 0xe0(%rbx)
movq 0xe8(%rbx), %rdi
movq 0x8(%rax), %rsi
addq $0x40, %rsi
xorps %xmm0, %xmm0
movq %rsp, %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
movl %r14d, %edx
callq 0x99e82
movq (%rsp), %rdi
testq %rdi, %rdi
je 0xa8d4c
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq 0xe8(%rbx), %r12
movq 0x10(%r15), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r14d, %esi
movl %eax, %edx
callq 0x9a0ee
jmp 0xa8d74
xorl %r14d, %r14d
movl %r14d, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq (%rax), %rdi
movq (%rdi), %rax
movq (%rax), %rax
movq %rbx, %rsi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmpq *%rax
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0xa8db5
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq %rbx, %rdi
callq 0x11580
nop
// File: /workspace/github_cpp_makefile_star2_O1/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::Mul::CompileAST(Gos::Compiler::VMCompiler&)
Compile(Mul) {
    START();
    if (tokenList.size() == 0) {
        return SUB(0);
    }
    int tmp = code.GetTmpVar();
    vm.WriteCommandClone(tmp, SUB(0));
    for (int i = 0; i < tokenList.size(); i++) {
        if (tokenList[i].type == MUL) {
            vm.WriteCommandMul(tmp, SUB(i + 1));
        } else if (tokenList[i].type == DIV) {
            vm.WriteCommandDiv(tmp, SUB(i + 1));
        } else if (tokenList[i].type == REM) {
            vm.WriteCommandRem(tmp, SUB(i + 1));
        }
    }
    return tmp;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl 0x2c(%rdi), %eax
movl %eax, 0x764b6(%rip)     # 0x11f288
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa8f13
movq %rsi, %rbx
movq %rdi, %r14
movq 0x68(%rdi), %rcx
cmpq 0x60(%rdi), %rcx
je 0xa8f28
leaq 0x100(%rbx), %rcx
movq (%rcx), %rcx
testq %rcx, %rcx
je 0xa8e16
movb 0xc(%rcx), %dl
testb %dl, %dl
jne 0xa8e12
movb $0x1, 0xc(%rcx)
movl 0x8(%rcx), %r15d
testb %dl, %dl
jne 0xa8dfb
testq %rcx, %rcx
jne 0xa8e2c
movl 0xe0(%rbx), %r15d
leal 0x1(%r15), %ecx
movl %ecx, 0xe0(%rbx)
movq 0xe8(%rbx), %r12
movq (%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x9a1c2
movq 0x60(%r14), %rax
cmpq %rax, 0x68(%r14)
je 0xa8f16
xorl %r13d, %r13d
xorl %ebp, %ebp
movl (%rax,%r13), %eax
cmpl $0x1f, %eax
je 0xa8ebf
cmpl $0x1e, %eax
je 0xa8e98
cmpl $0x1c, %eax
jne 0xa8ee4
movq 0xe8(%rbx), %r12
movq 0x10(%r14), %rax
movq 0x8(%rax,%rbp,8), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x9a44c
jmp 0xa8ee4
movq 0xe8(%rbx), %r12
movq 0x10(%r14), %rax
movq 0x8(%rax,%rbp,8), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x9a4b6
jmp 0xa8ee4
movq 0xe8(%rbx), %r12
movq 0x10(%r14), %rax
movq 0x8(%rax,%rbp,8), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x9a520
incq %rbp
movq 0x60(%r14), %rax
movq 0x68(%r14), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
movabsq $0x6db6db6db6db6db7, %rdx # imm = 0x6DB6DB6DB6DB6DB7
imulq %rdx, %rcx
addq $0x38, %r13
cmpq %rbp, %rcx
ja 0xa8e5e
jmp 0xa8f16
xorl %r15d, %r15d
movl %r15d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rax), %rdi
movq (%rdi), %rax
movq (%rax), %rax
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
// File: /workspace/github_cpp_makefile_star2_O1/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::Add::CompileAST(Gos::Compiler::VMCompiler&)
Compile(Add) {
    START();
    if (tokenList.size() == 0) {
        return SUB(0);
    }
    int tmp = code.GetTmpVar();
    vm.WriteCommandClone(tmp, SUB(0));
    for (int i = 0; i < tokenList.size(); i++) {
        if (tokenList[i].type == ADD) {
            vm.WriteCommandAdd(tmp, SUB(i + 1));
        } else if (tokenList[i].type == SUB) {
            vm.WriteCommandSub(tmp, SUB(i + 1));
        }
    }
    return tmp;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl 0x2c(%rdi), %eax
movl %eax, 0x76330(%rip)     # 0x11f288
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa906d
movq %rsi, %rbx
movq %rdi, %r14
movq 0x68(%rdi), %rcx
cmpq 0x60(%rdi), %rcx
je 0xa9082
leaq 0x100(%rbx), %rcx
movq (%rcx), %rcx
testq %rcx, %rcx
je 0xa8f9c
movb 0xc(%rcx), %dl
testb %dl, %dl
jne 0xa8f98
movb $0x1, 0xc(%rcx)
movl 0x8(%rcx), %r15d
testb %dl, %dl
jne 0xa8f81
testq %rcx, %rcx
jne 0xa8fb2
movl 0xe0(%rbx), %r15d
leal 0x1(%r15), %ecx
movl %ecx, 0xe0(%rbx)
movq 0xe8(%rbx), %r12
movq (%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x9a1c2
movq 0x60(%r14), %rax
cmpq %rax, 0x68(%r14)
je 0xa9070
xorl %r13d, %r13d
xorl %ebp, %ebp
movl (%rax,%r13), %eax
cmpl $0x1b, %eax
je 0xa9019
cmpl $0x1a, %eax
jne 0xa903e
movq 0xe8(%rbx), %r12
movq 0x10(%r14), %rax
movq 0x8(%rax,%rbp,8), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x9a378
jmp 0xa903e
movq 0xe8(%rbx), %r12
movq 0x10(%r14), %rax
movq 0x8(%rax,%rbp,8), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x9a3e2
incq %rbp
movq 0x60(%r14), %rax
movq 0x68(%r14), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
movabsq $0x6db6db6db6db6db7, %rdx # imm = 0x6DB6DB6DB6DB6DB7
imulq %rdx, %rcx
addq $0x38, %r13
cmpq %rbp, %rcx
ja 0xa8fe4
jmp 0xa9070
xorl %r15d, %r15d
movl %r15d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rax), %rdi
movq (%rdi), %rax
movq (%rax), %rax
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
// File: /workspace/github_cpp_makefile_star2_O1/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::LogicAnd::CompileAST(Gos::Compiler::VMCompiler&)
Compile(LogicAnd) {
    START();
    if (tokenList.size() == 0) {
        return SUB(0);
    }
    int tmp = code.GetTmpVar();
    vm.WriteCommandClone(tmp, SUB(0));
    for (int i = 0; i < tokenList.size(); i++) {
        vm.WriteCommandAnd(tmp, SUB(i + 1));
    }
    return tmp;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl 0x2c(%rdi), %eax
movl %eax, 0x75ab4(%rip)     # 0x11f288
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa98a3
movq %rsi, %rbx
movq %rdi, %r14
movq 0x68(%rdi), %rcx
cmpq 0x60(%rdi), %rcx
je 0xa98b8
leaq 0x100(%rbx), %rcx
movq (%rcx), %rcx
testq %rcx, %rcx
je 0xa9818
movb 0xc(%rcx), %dl
testb %dl, %dl
jne 0xa9814
movb $0x1, 0xc(%rcx)
movl 0x8(%rcx), %r15d
testb %dl, %dl
jne 0xa97fd
testq %rcx, %rcx
jne 0xa982e
movl 0xe0(%rbx), %r15d
leal 0x1(%r15), %ecx
movl %ecx, 0xe0(%rbx)
movq 0xe8(%rbx), %r12
movq (%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x9a1c2
movq 0x68(%r14), %rax
cmpq 0x60(%r14), %rax
je 0xa98a6
xorl %r13d, %r13d
movabsq $0x6db6db6db6db6db7, %rbp # imm = 0x6DB6DB6DB6DB6DB7
movq 0xe8(%rbx), %r12
movq 0x10(%r14), %rax
movq 0x8(%rax,%r13,8), %rdi
incq %r13
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x9a5f4
movq 0x68(%r14), %rax
subq 0x60(%r14), %rax
sarq $0x3, %rax
imulq %rbp, %rax
cmpq %r13, %rax
ja 0xa9864
jmp 0xa98a6
xorl %r15d, %r15d
movl %r15d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rax), %rdi
movq (%rdi), %rax
movq (%rax), %rax
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
// File: /workspace/github_cpp_makefile_star2_O1/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::LogicOr::CompileAST(Gos::Compiler::VMCompiler&)
Compile(LogicOr) {
    START();
    if (tokenList.size() == 0) {
        return SUB(0);
    }
    int tmp = code.GetTmpVar();
    vm.WriteCommandClone(tmp, SUB(0));
    for (int i = 0; i < tokenList.size(); i++) {
        vm.WriteCommandOr(tmp, SUB(i + 1));
    }
    return tmp;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl 0x2c(%rdi), %eax
movl %eax, 0x759a0(%rip)     # 0x11f288
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa99b7
movq %rsi, %rbx
movq %rdi, %r14
movq 0x68(%rdi), %rcx
cmpq 0x60(%rdi), %rcx
je 0xa99cc
leaq 0x100(%rbx), %rcx
movq (%rcx), %rcx
testq %rcx, %rcx
je 0xa992c
movb 0xc(%rcx), %dl
testb %dl, %dl
jne 0xa9928
movb $0x1, 0xc(%rcx)
movl 0x8(%rcx), %r15d
testb %dl, %dl
jne 0xa9911
testq %rcx, %rcx
jne 0xa9942
movl 0xe0(%rbx), %r15d
leal 0x1(%r15), %ecx
movl %ecx, 0xe0(%rbx)
movq 0xe8(%rbx), %r12
movq (%rax), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x9a1c2
movq 0x68(%r14), %rax
cmpq 0x60(%r14), %rax
je 0xa99ba
xorl %r13d, %r13d
movabsq $0x6db6db6db6db6db7, %rbp # imm = 0x6DB6DB6DB6DB6DB7
movq 0xe8(%rbx), %r12
movq 0x10(%r14), %rax
movq 0x8(%rax,%r13,8), %rdi
incq %r13
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
movq %r12, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x9a65e
movq 0x68(%r14), %rax
subq 0x60(%r14), %rax
sarq $0x3, %rax
imulq %rbp, %rax
cmpq %r13, %rax
ja 0xa9978
jmp 0xa99ba
xorl %r15d, %r15d
movl %r15d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rax), %rdi
movq (%rdi), %rax
movq (%rax), %rax
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
// File: /workspace/github_cpp_makefile_star2_O1/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::Cond::CompileAST(Gos::Compiler::VMCompiler&)
Compile(Cond) {
    START();
    if (branch == 1) {
        int tmp = code.GetTmpVar();
        int val = SUB(0);
        auto ifJmp = vm.WriteCommandIf(val);
        vm.WriteCommandClone(tmp, SUB(2));
        auto outJmp = vm.WriteCommandJmp();
        ifJmp(vm.GetProgress());
        vm.WriteCommandClone(tmp, SUB(1));
        outJmp(vm.GetProgress());
        return tmp;
    }
    return SUB(0);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl 0x2c(%rdi), %eax
movl %eax, 0x7588c(%rip)     # 0x11f288
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa9b48
movq %rsi, %r14
movq %rdi, %r15
cmpl $0x1, 0x8(%rdi)
jne 0xa9b58
leaq 0x100(%r14), %rcx
movq (%rcx), %rcx
testq %rcx, %rcx
je 0xa9a3b
movb 0xc(%rcx), %dl
testb %dl, %dl
jne 0xa9a37
movb $0x1, 0xc(%rcx)
movl 0x8(%rcx), %ebx
testb %dl, %dl
jne 0xa9a21
testq %rcx, %rcx
jne 0xa9a51
movl 0xe0(%r14), %ebx
leal 0x1(%rbx), %ecx
movl %ecx, 0xe0(%r14)
movq (%rax), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *(%rax)
movq 0xe8(%r14), %rsi
leaq 0x28(%rsp), %rdi
movl %eax, %edx
callq 0x9a7b8
movq 0xe8(%r14), %r12
movq 0x10(%r15), %rax
movq 0x10(%rax), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *(%rax)
movq %r12, %rdi
movl %ebx, %esi
movl %eax, %edx
callq 0x9a1c2
movq 0xe8(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x9a744
movq 0xe8(%r14), %rdi
callq 0x9ab88
movl %eax, 0x4(%rsp)
cmpq $0x0, 0x38(%rsp)
je 0xa9b71
leaq 0x28(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq *0x18(%rdi)
movq 0xe8(%r14), %r12
movq 0x10(%r15), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *(%rax)
movq %r12, %rdi
movl %ebx, %esi
movl %eax, %edx
callq 0x9a1c2
movq 0xe8(%r14), %rdi
callq 0x9ab88
movl %eax, 0x4(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0xa9b71
leaq 0x8(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq *0x18(%rdi)
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xa9b2d
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x38(%rsp), %rax
testq %rax, %rax
je 0xa9b4a
leaq 0x28(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xa9b4a
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq (%rax), %rdi
movq (%rdi), %rax
movq (%rax), %rax
movq %r14, %rsi
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmpq *%rax
callq 0x11150
jmp 0xa9bc0
jmp 0xa9bc0
jmp 0xa9b7c
movq %rax, %rbx
jmp 0xa9b9d
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xa9b9d
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x38(%rsp), %rax
testq %rax, %rax
je 0xa9bb6
leaq 0x28(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq %rbx, %rdi
callq 0x11580
jmp 0xa9bc0
movq %rax, %rdi
callq 0x2789a
// File: /workspace/github_cpp_makefile_star2_O1/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::Assign::CompileAST(Gos::Compiler::VMCompiler&)
Compile(Assign) {
    START();
    int dest = SUB(0);
    int src = SUB(1);
    switch (token.type) {
        case ASSIGN:     vm.WriteCommandMov(dest, src); break;
        case ASSIGN_ADD: vm.WriteCommandAdd(dest, src); break;
        case ASSIGN_SUB: vm.WriteCommandSub(dest, src); break;
        case ASSIGN_MUL: vm.WriteCommandMul(dest, src); break;
        case ASSIGN_DIV: vm.WriteCommandDiv(dest, src); break;
        case ASSIGN_REM: vm.WriteCommandRem(dest, src); break;
        case ASSIGN_XOR: vm.WriteCommandXor(dest, src); break;
        case ASSIGN_AND: vm.WriteCommandAnd(dest, src); break;
        case ASSIGN_OR:  vm.WriteCommandOr(dest, src);  break;
        default: return dest;
    }
    return dest;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movl 0x2c(%rdi), %eax
movl %eax, 0x75690(%rip)     # 0x11f288
movq 0x10(%rdi), %rax
cmpq %rax, 0x18(%rdi)
je 0xa9c50
movq %rsi, %r14
movq %rdi, %r15
movq (%rax), %rdi
movq (%rdi), %rax
callq *(%rax)
movl %eax, %ebx
movq 0x10(%r15), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *(%rax)
movl 0x28(%r15), %ecx
addl $-0xf, %ecx
cmpl $0x8, %ecx
ja 0xa9c52
leaq 0x271db(%rip), %rdx     # 0xd0e10
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq 0xe8(%r14), %rdi
movl %ebx, %esi
movl %eax, %edx
callq 0x9a0ee
jmp 0xa9c52
xorl %ebx, %ebx
movl %ebx, %eax
popq %rbx
popq %r14
popq %r15
retq
movq 0xe8(%r14), %rdi
movl %ebx, %esi
movl %eax, %edx
callq 0x9a4b6
jmp 0xa9c52
movq 0xe8(%r14), %rdi
movl %ebx, %esi
movl %eax, %edx
callq 0x9a3e2
jmp 0xa9c52
movq 0xe8(%r14), %rdi
movl %ebx, %esi
movl %eax, %edx
callq 0x9a44c
jmp 0xa9c52
movq 0xe8(%r14), %rdi
movl %ebx, %esi
movl %eax, %edx
callq 0x9a5f4
jmp 0xa9c52
movq 0xe8(%r14), %rdi
movl %ebx, %esi
movl %eax, %edx
callq 0x9a378
jmp 0xa9c52
movq 0xe8(%r14), %rdi
movl %ebx, %esi
movl %eax, %edx
callq 0x9a520
jmp 0xa9c52
movq 0xe8(%r14), %rdi
movl %ebx, %esi
movl %eax, %edx
callq 0x9a58a
jmp 0xa9c52
movq 0xe8(%r14), %rdi
movl %ebx, %esi
movl %eax, %edx
callq 0x9a65e
jmp 0xa9c52
// File: /workspace/github_cpp_makefile_star2_O1/Heptagon196[P]Gos/GosASTCompiler.cpp
// Function: Gos::AST::StatBlock::CompileAST(Gos::Compiler::VMCompiler&)
Compile(StatBlock) {
    compilingLine = token.line;
    blockDepth++;
    for (auto* ast : nodes) {
        ast->CompileAST(code);
    }
    blockDepth--;
    return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movl 0x2c(%rdi), %eax
incl 0x741ca(%rip)           # 0x11f340
movl %eax, 0x7410c(%rip)     # 0x11f288
movq 0x10(%rdi), %r14
movq 0x18(%rdi), %r15
cmpq %r15, %r14
je 0xab1a0
movq %rsi, %rbx
movq (%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *(%rax)
addq $0x8, %r14
cmpq %r15, %r14
jne 0xab18c
decl 0x7419a(%rip)           # 0x11f340
xorl %eax, %eax
popq %rbx
popq %r14
popq %r15
retq