// File: /workspace/github_cpp_makefile_star2_O2/taurheim[P]AgNES/irGenerator.cpp
// Function: IRGenerator::generate[abi:cxx11]()
std::list<TAC> IRGenerator::generate() {
    // Go to main by default

    // Generate the rest of the code
    genTAC(root);
    printIRCode(intermediateCode);
    return intermediateCode;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %rbx
movq %rdi, -0x38(%rbp)
movq (%rsi), %rsi
movq %rbx, %rdi
callq 0xbda6
addq $0x10, %rbx
leaq -0x50(%rbp), %r14
movq %r14, %rdi
movq %rbx, -0x30(%rbp)
movq %rbx, %rsi
callq 0x5e7e
movq 0xc50d(%rip), %r12      # 0x17fc8
leaq 0x4829(%rip), %r13      # 0x102eb
leaq 0x4bff(%rip), %rbx      # 0x106c8
movq %r14, %r15
movq (%r15), %r15
cmpq %r14, %r15
je 0xbd67
movl 0x10(%r15), %eax
cmpq $0x10, %rax
ja 0xbc9e
movslq (%rbx,%rax,4), %rax
addq %rbx, %rax
jmpq *%rax
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x18(%r15), %rsi
movq %rax, %rdi
callq 0x3210
movq %rax, %rdi
leaq 0x4c5a(%rip), %rsi      # 0x1076a
callq 0x3230
leaq 0x38(%r15), %rsi
movq %rax, %rdi
callq 0x3210
leaq 0x4c47(%rip), %rsi      # 0x1076f
jmp 0xbc8f
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4ca5(%rip), %rsi      # 0x107e4
jmp 0xbd28
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4565(%rip), %rsi      # 0x100bb
jmp 0xbd52
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4c46(%rip), %rsi      # 0x107b3
jmp 0xbd28
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4bf3(%rip), %rsi      # 0x10777
jmp 0xbd28
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
movq %rax, %rdi
leaq 0x4c20(%rip), %rsi      # 0x107be
callq 0x3230
leaq 0x18(%r15), %rsi
movq %rax, %rdi
callq 0x3210
leaq 0x4c11(%rip), %rsi      # 0x107c7
jmp 0xbd0a
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4bd5(%rip), %rsi      # 0x107a2
jmp 0xbd28
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x18(%r15), %rsi
movq %rax, %rdi
callq 0x3210
leaq 0x4b7a(%rip), %rsi      # 0x1076a
jmp 0xbd0a
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4bcd(%rip), %rsi      # 0x107d4
jmp 0xbd28
leaq 0x18(%r15), %rsi
movq %r12, %rdi
callq 0x3210
leaq 0x4ca4(%rip), %rsi      # 0x108c3
jmp 0xbd52
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
movq %rax, %rdi
leaq 0x4b56(%rip), %rsi      # 0x1078f
callq 0x3230
leaq 0x18(%r15), %rsi
movq %rax, %rdi
callq 0x3210
leaq 0x4c09(%rip), %rsi      # 0x1085a
jmp 0xbd0a
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x18(%r15), %rsi
movq %rax, %rdi
callq 0x3210
movq %rax, %rdi
leaq 0x4af3(%rip), %rsi      # 0x1076a
callq 0x3230
leaq 0x38(%r15), %rsi
movq %rax, %rdi
callq 0x3210
leaq 0x4ae4(%rip), %rsi      # 0x10773
movq %rax, %rdi
callq 0x3230
pushq $0x58
jmp 0xbd32
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4b44(%rip), %rsi      # 0x107f4
jmp 0xbd52
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4ab6(%rip), %rsi      # 0x1077d
jmp 0xbcef
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4af1(%rip), %rsi      # 0x107cc
jmp 0xbd28
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4a99(%rip), %rsi      # 0x10788
movq %rax, %rdi
callq 0x3230
leaq 0x18(%r15), %rsi
movq %rax, %rdi
callq 0x3210
leaq 0x4a77(%rip), %rsi      # 0x10781
movq %rax, %rdi
callq 0x3230
pushq $0x38
jmp 0xbd32
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4a80(%rip), %rsi      # 0x107a8
movq %rax, %rdi
callq 0x3230
pushq $0x18
popq %rsi
addq %r15, %rsi
movq %rax, %rdi
callq 0x3210
jmp 0xbd5a
movq %r12, %rdi
movq %r13, %rsi
callq 0x3230
leaq 0x4a48(%rip), %rsi      # 0x1079a
movq %rax, %rdi
callq 0x3230
movq %r12, %rdi
callq 0x3150
jmp 0xbacc
leaq -0x50(%rbp), %rdi
callq 0x60ca
movq -0x38(%rbp), %rbx
movq %rbx, %rdi
movq -0x30(%rbp), %rsi
callq 0x5e7e
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x60ca
movq %rbx, %rdi
callq 0x33e0