// File: /workspace/github_cpp_makefile_star2_O3/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 0xc89c
addq $0x10, %rbx
leaq -0x50(%rbp), %r15
movq %r15, %rdi
movq %rbx, -0x30(%rbp)
movq %rbx, %rsi
callq 0x6368
movq (%r15), %r14
cmpq %r15, %r14
je 0xc85c
movq 0xbc01(%rip), %rbx      # 0x17fd0
leaq 0x62ea(%rip), %r13      # 0x126c0
movl 0x10(%r14), %eax
cmpq $0x10, %rax
ja 0xc6ba
movslq (%r13,%rax,4), %rax
addq %r13, %rax
jmpq *%rax
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5ee9(%rip), %rsi      # 0x122e6
callq 0x32d0
movq 0x18(%r14), %rsi
movq 0x20(%r14), %rdx
movq %rbx, %rdi
callq 0x32d0
movq %rax, %r12
movl $0x4, %edx
movq %rax, %rdi
leaq 0x633e(%rip), %rsi      # 0x12762
callq 0x32d0
movq 0x38(%r14), %rsi
movq 0x40(%r14), %rdx
movq %r12, %rdi
callq 0x32d0
movq %rax, %r12
movl $0x3, %edx
movq %rax, %rdi
leaq 0x631c(%rip), %rsi      # 0x12767
callq 0x32d0
jmp 0xc6ab
movl $0xf, %r12d
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5e7c(%rip), %rsi      # 0x122e6
callq 0x32d0
leaq 0x6366(%rip), %rsi      # 0x127dc
jmp 0xc7d3
movl $0x10, %r12d
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5e56(%rip), %rsi      # 0x122e6
callq 0x32d0
movq %rbx, %rdi
leaq 0x5bfa(%rip), %rsi      # 0x12099
jmp 0xc821
movl $0xa, %r12d
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5e2d(%rip), %rsi      # 0x122e6
callq 0x32d0
leaq 0x62e6(%rip), %rsi      # 0x127ab
jmp 0xc7d3
movl $0x5, %r12d
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5e07(%rip), %rsi      # 0x122e6
callq 0x32d0
leaq 0x6284(%rip), %rsi      # 0x1276f
jmp 0xc7d3
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5de7(%rip), %rsi      # 0x122e6
callq 0x32d0
movl $0x8, %edx
movq %rbx, %rdi
leaq 0x62a3(%rip), %rsi      # 0x127b6
callq 0x32d0
movq 0x18(%r14), %rsi
movq 0x20(%r14), %rdx
movq %rbx, %rdi
callq 0x32d0
movq %rax, %r12
movl $0x4, %edx
movq %rax, %rdi
leaq 0x6285(%rip), %rsi      # 0x127bf
callq 0x32d0
jmp 0xc7a6
movl $0x5, %r12d
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5d8d(%rip), %rsi      # 0x122e6
callq 0x32d0
leaq 0x6235(%rip), %rsi      # 0x1279a
jmp 0xc7d3
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5d6d(%rip), %rsi      # 0x122e6
callq 0x32d0
movq 0x18(%r14), %rsi
movq 0x20(%r14), %rdx
movq %rbx, %rdi
callq 0x32d0
movq %rax, %r12
movl $0x4, %edx
movq %rax, %rdi
leaq 0x61c2(%rip), %rsi      # 0x12762
callq 0x32d0
jmp 0xc7a6
movl $0xf, %r12d
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5d27(%rip), %rsi      # 0x122e6
callq 0x32d0
leaq 0x6201(%rip), %rsi      # 0x127cc
jmp 0xc7d3
movq 0x18(%r14), %rsi
movq 0x20(%r14), %rdx
movq %rbx, %rdi
callq 0x32d0
movq %rax, %rdi
movl $0x1, %r12d
leaq 0x62cb(%rip), %rsi      # 0x128bb
jmp 0xc821
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5ce2(%rip), %rsi      # 0x122e6
callq 0x32d0
movl $0xa, %edx
movq %rbx, %rdi
leaq 0x616f(%rip), %rsi      # 0x12787
callq 0x32d0
movq 0x18(%r14), %rsi
movq 0x20(%r14), %rdx
movq %rbx, %rdi
callq 0x32d0
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
leaq 0x6213(%rip), %rsi      # 0x12852
callq 0x32d0
jmp 0xc7a6
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5c8e(%rip), %rsi      # 0x122e6
callq 0x32d0
movq 0x18(%r14), %rsi
movq 0x20(%r14), %rdx
movq %rbx, %rdi
callq 0x32d0
movq %rax, %r12
movl $0x4, %edx
movq %rax, %rdi
leaq 0x60e3(%rip), %rsi      # 0x12762
callq 0x32d0
movq 0x38(%r14), %rsi
movq 0x40(%r14), %rdx
movq %r12, %rdi
callq 0x32d0
movq %rax, %r12
movl $0x3, %edx
movq %rax, %rdi
leaq 0x60c5(%rip), %rsi      # 0x1276b
callq 0x32d0
movl $0x60, %eax
movl $0x58, %ecx
jmp 0xc7eb
movl $0x1c, %r12d
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5c17(%rip), %rsi      # 0x122e6
callq 0x32d0
movq %rbx, %rdi
leaq 0x610e(%rip), %rsi      # 0x127ec
jmp 0xc821
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5bf4(%rip), %rsi      # 0x122e6
callq 0x32d0
movl $0x3, %edx
movq %rbx, %rdi
leaq 0x606f(%rip), %rsi      # 0x12775
callq 0x32d0
movq 0x18(%r14), %rsi
movq 0x20(%r14), %rdx
movq %rbx, %rdi
callq 0x32d0
movq %rax, %r12
movl $0x6, %edx
movq %rax, %rdi
leaq 0x604c(%rip), %rsi      # 0x12779
callq 0x32d0
jmp 0xc7a6
movl $0x7, %r12d
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5b9d(%rip), %rsi      # 0x122e6
callq 0x32d0
leaq 0x606f(%rip), %rsi      # 0x127c4
jmp 0xc7d3
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5b80(%rip), %rsi      # 0x122e6
callq 0x32d0
movl $0x6, %edx
movq %rbx, %rdi
leaq 0x6006(%rip), %rsi      # 0x12780
callq 0x32d0
movq 0x18(%r14), %rsi
movq 0x20(%r14), %rdx
movq %rbx, %rdi
callq 0x32d0
movq %rax, %r12
movl $0x6, %edx
movq %rax, %rdi
leaq 0x5fd8(%rip), %rsi      # 0x12779
callq 0x32d0
movl $0x40, %eax
movl $0x38, %ecx
jmp 0xc7eb
movl $0xa, %r12d
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5b1f(%rip), %rsi      # 0x122e6
callq 0x32d0
leaq 0x5fcd(%rip), %rsi      # 0x127a0
movq %rbx, %rdi
movq %r12, %rdx
callq 0x32d0
movl $0x20, %eax
movl $0x18, %ecx
movq %rbx, %r12
movq (%r14,%rcx), %rsi
movq (%r14,%rax), %rdx
movq %r12, %rdi
callq 0x32d0
jmp 0xc829
movl $0x7, %r12d
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5ad4(%rip), %rsi      # 0x122e6
callq 0x32d0
movq %rbx, %rdi
leaq 0x5f71(%rip), %rsi      # 0x12792
movq %r12, %rdx
callq 0x32d0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movq (%r14), %r14
cmpq %r15, %r14
jne 0xc3d6
leaq -0x50(%rbp), %rdi
callq 0x65ca
movq -0x38(%rbp), %rbx
movq %rbx, %rdi
movq -0x30(%rbp), %rsi
callq 0x6368
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 0x65ca
movq %rbx, %rdi
callq 0x3420
nop