// File: JameyWoo[P]csmile/symtab.cpp
// Function: printSymtab()
void printSymtab() {
    vec_symtabs.push_back(symtabs);
    symtabOut << "-------------------" << endl;
    for (auto symtabs: vec_symtabs) {
        symtabOut << "function: " << fun_names.front() << endl;
        fun_names.erase(fun_names.begin());
        symtabOut << "id -- Param --- lines\n";
        for (auto sone: symtabs) {
            symtabOut.setf(ios::left,ios::adjustfield);
            symtabOut << setw(5) << sone.first << ": " 
            << setw(3) 
            << (sone.second.rank == 3 ? "no" : "yes")
            << " | ";
            for (auto v: sone.second.line) {
                symtabOut << setw(3) << v << ' ';
            }
            symtabOut << endl;
        }
        symtabOut << "-------------------" << endl;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
leaq 0x1de7e(%rip), %rdi     # 0x2ea40
leaq 0x1de8f(%rip), %rsi     # 0x2ea58
callq 0x11120
leaq 0x1dc0b(%rip), %rdi     # 0x2e7e0
leaq 0x109ed(%rip), %rsi     # 0x215c9
callq 0x3270
movq %rax, %rdi
movq 0x1d3c5(%rip), %rsi     # 0x2dfb0
callq 0x32b0
leaq 0x1de49(%rip), %rax     # 0x2ea40
movq %rax, -0x8(%rbp)
leaq 0x1de3e(%rip), %rdi     # 0x2ea40
callq 0x11460
movq %rax, -0x10(%rbp)
leaq 0x1de2e(%rip), %rdi     # 0x2ea40
callq 0x11490
movq %rax, -0x18(%rbp)
leaq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x114c0
testb $0x1, %al
jne 0x10c31
jmp 0x10ff0
leaq -0x10(%rbp), %rdi
callq 0x11500
movq %rax, %rsi
leaq -0x48(%rbp), %rdi
callq 0x11520
leaq 0x1db93(%rip), %rdi     # 0x2e7e0
leaq 0x10989(%rip), %rsi     # 0x215dd
callq 0x3270
movq %rax, -0x100(%rbp)
jmp 0x10c62
leaq 0x1dd7f(%rip), %rdi     # 0x2e9e8
callq 0x11550
movq -0x100(%rbp), %rdi
movq %rax, %rsi
callq 0x3240
movq %rax, -0x108(%rbp)
jmp 0x10c86
movq -0x108(%rbp), %rdi
movq 0x1d31c(%rip), %rsi     # 0x2dfb0
callq 0x32b0
jmp 0x10c9b
leaq 0x1dd46(%rip), %rdi     # 0x2e9e8
movq %rdi, -0x118(%rbp)
callq 0x5ef0
movq %rax, -0x68(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x115f0
movq -0x118(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x11580
movq %rax, -0x110(%rbp)
jmp 0x10cd8
movq -0x110(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq 0x1daf6(%rip), %rdi     # 0x2e7e0
leaq 0x108f7(%rip), %rsi     # 0x215e8
callq 0x3270
jmp 0x10cf8
leaq -0x48(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
callq 0x11630
movq %rax, -0x80(%rbp)
movq -0x78(%rbp), %rdi
callq 0x11660
movq %rax, -0x88(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x11690
testb $0x1, %al
jne 0x10d36
jmp 0x10f9d
leaq -0x80(%rbp), %rdi
callq 0x116c0
movq %rax, %rsi
leaq -0xd0(%rbp), %rdi
callq 0x116e0
jmp 0x10d50
leaq 0x1da89(%rip), %rdi     # 0x2e7e0
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0x20, %esi
movl $0xb0, %edx
callq 0x11740
jmp 0x10d72
movl $0x5, %edi
callq 0x117a0
movl %eax, -0x11c(%rbp)
jmp 0x10d84
movl -0x11c(%rbp), %eax
movl %eax, -0xd4(%rbp)
movl -0xd4(%rbp), %esi
leaq 0x1da43(%rip), %rdi     # 0x2e7e0
callq 0x3320
movq %rax, -0x128(%rbp)
jmp 0x10dab
movq -0x128(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3240
movq %rax, -0x130(%rbp)
jmp 0x10dc7
movq -0x130(%rbp), %rdi
leaq 0x104a6(%rip), %rsi     # 0x2127b
callq 0x3270
movq %rax, -0x138(%rbp)
jmp 0x10de3
movl $0x3, %edi
callq 0x117a0
movl %eax, -0x13c(%rbp)
jmp 0x10df5
movq -0x138(%rbp), %rdi
movl -0x13c(%rbp), %eax
movl %eax, -0xd8(%rbp)
movl -0xd8(%rbp), %esi
callq 0x3320
movq %rax, -0x148(%rbp)
jmp 0x10e1c
movq -0x148(%rbp), %rdi
movl -0x94(%rbp), %eax
subl $0x3, %eax
leaq 0x107cc(%rip), %rax     # 0x215ff
leaq 0x107c8(%rip), %rsi     # 0x21602
cmoveq %rax, %rsi
callq 0x3270
movq %rax, -0x150(%rbp)
jmp 0x10e4c
movq -0x150(%rbp), %rdi
leaq 0x107ac(%rip), %rsi     # 0x21606
callq 0x3270
jmp 0x10e61
leaq -0xd0(%rbp), %rax
addq $0x20, %rax
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rdi
callq 0x117c0
movq %rax, -0xe8(%rbp)
movq -0xe0(%rbp), %rdi
callq 0x117f0
movq %rax, -0xf0(%rbp)
leaq -0xe8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x11820
testb $0x1, %al
jne 0x10eb5
jmp 0x10f6e
leaq -0xe8(%rbp), %rdi
callq 0x11860
movl (%rax), %eax
movl %eax, -0xf4(%rbp)
movl $0x3, %edi
callq 0x117a0
movl %eax, -0x154(%rbp)
jmp 0x10edb
movl -0x154(%rbp), %eax
movl %eax, -0xf8(%rbp)
movl -0xf8(%rbp), %esi
leaq 0x1d8ec(%rip), %rdi     # 0x2e7e0
callq 0x3320
movq %rax, -0x160(%rbp)
jmp 0x10f02
movq -0x160(%rbp), %rdi
movl -0xf4(%rbp), %esi
callq 0x3460
movq %rax, -0x168(%rbp)
jmp 0x10f1d
movq -0x168(%rbp), %rdi
movl $0x20, %esi
callq 0x3340
jmp 0x10f30
jmp 0x10f32
leaq -0xe8(%rbp), %rdi
callq 0x11880
jmp 0x10e99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x10fe5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x118a0
jmp 0x10fe5
leaq 0x1d86b(%rip), %rdi     # 0x2e7e0
movq 0x1d034(%rip), %rsi     # 0x2dfb0
callq 0x32b0
jmp 0x10f83
leaq -0xd0(%rbp), %rdi
callq 0x118a0
leaq -0x80(%rbp), %rdi
callq 0x118d0
jmp 0x10d1d
leaq 0x1d83c(%rip), %rdi     # 0x2e7e0
leaq 0x1061e(%rip), %rsi     # 0x215c9
callq 0x3270
movq %rax, -0x170(%rbp)
jmp 0x10fb9
movq -0x170(%rbp), %rdi
movq 0x1cfe9(%rip), %rsi     # 0x2dfb0
callq 0x32b0
jmp 0x10fce
leaq -0x48(%rbp), %rdi
callq 0x110e0
leaq -0x10(%rbp), %rdi
callq 0x11900
jmp 0x10c1b
leaq -0x48(%rbp), %rdi
callq 0x110e0
jmp 0x10ff9
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x3470
nopw %cs:(%rax,%rax)