// File: /workspace/github_cpp_makefile_star2_O3/luooofan[P]hblzbd_compiler/src/ast.cpp
// Function: ast::IfElseStatement::PrintNode(int, std::ostream&)
void IfElseStatement::PrintNode(int indentation, std::ostream &outfile) {
  PRINT_INDENT;
  outfile << "IfElseStatement" << LINE_NO << std::endl;

  ++indentation;
  PRINT_INDENT;
  outfile << "Condition" << LINE_NO << std::endl;
  this->cond_.PRINT_NODE;
  PRINT_INDENT;
  outfile << "Then" << LINE_NO << std::endl;
  this->thenstmt_.PRINT_NODE;

  if (nullptr != this->elsestmt_) {
    PRINT_INDENT;
    outfile << "Else" << LINE_NO << std::endl;
    this->elsestmt_->PRINT_NODE;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movl %esi, %r14d
movq %rdi, %r15
movl %esi, %edi
movq %rdx, %rsi
callq 0xd5bc
leaq 0x5fc92(%rip), %rsi     # 0x6e573
movl $0xf, %edx
movq %rbx, %rdi
callq 0x8330
leaq 0x617b4(%rip), %r12     # 0x700a9
movl $0x2, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x8330
movl 0x8(%r15), %esi
movq %rbx, %rdi
callq 0x8520
movq %rax, %rbp
leaq 0x5fb91(%rip), %r13     # 0x6e4ac
movl $0x2, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x8330
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x8270
movsbl %al, %esi
movq %rbp, %rdi
callq 0x8030
movq %rax, %rdi
callq 0x81f0
leal 0x1(%r14), %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xd5bc
leaq 0x5fc1b(%rip), %rsi     # 0x6e583
movl $0x9, %edx
movq %rbx, %rdi
callq 0x8330
movl $0x2, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x8330
movl 0x8(%r15), %esi
movq %rbx, %rdi
callq 0x8520
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x8330
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x8270
movsbl %al, %esi
movq %r12, %rdi
callq 0x8030
movq %rax, %rdi
callq 0x81f0
movq 0x10(%r15), %rdi
addl $0x2, %r14d
movq (%rdi), %rax
movl %r14d, %esi
movq %rbx, %rdx
callq *0x20(%rax)
movl %ebp, %edi
movq %rbx, %rsi
callq 0xd5bc
leaq 0x5fb9c(%rip), %rsi     # 0x6e58d
movl $0x4, %edx
movq %rbx, %rdi
callq 0x8330
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x6169c(%rip), %rsi     # 0x700a9
callq 0x8330
movl 0x8(%r15), %esi
movq %rbx, %rdi
callq 0x8520
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x8330
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x8270
movsbl %al, %esi
movq %r12, %rdi
callq 0x8030
movq %rax, %rdi
callq 0x81f0
movq 0x18(%r15), %rdi
movq (%rdi), %rax
movl %r14d, %esi
movq %rbx, %rdx
callq *0x18(%rax)
cmpq $0x0, 0x20(%r15)
je 0xeb12
movl %ebp, %edi
movq %rbx, %rsi
callq 0xd5bc
leaq 0x5fb0d(%rip), %rsi     # 0x6e592
movl $0x4, %edx
movq %rbx, %rdi
callq 0x8330
leaq 0x61610(%rip), %rsi     # 0x700a9
movl $0x2, %edx
movq %rbx, %rdi
callq 0x8330
movl 0x8(%r15), %esi
movq %rbx, %rdi
callq 0x8520
movq %rax, %r12
leaq 0x5f9f0(%rip), %rsi     # 0x6e4ac
movl $0x2, %edx
movq %rax, %rdi
callq 0x8330
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x8270
movsbl %al, %esi
movq %r12, %rdi
callq 0x8030
movq %rax, %rdi
callq 0x81f0
movq 0x20(%r15), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
movl %r14d, %esi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop