// File: /workspace/github_cpp_makefile_star2_O1/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 0xd8c4
leaq 0x6098e(%rip), %rsi     # 0x6f573
movl $0xf, %edx
movq %rbx, %rdi
callq 0x8330
leaq 0x624b6(%rip), %r12     # 0x710af
movl $0x2, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x8330
movl 0x8(%r15), %esi
movq %rbx, %rdi
callq 0x8520
movq %rax, %rbp
leaq 0x6088d(%rip), %r13     # 0x6f4ac
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 0xd8c4
leaq 0x60917(%rip), %rsi     # 0x6f583
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 0xd8c4
leaq 0x60898(%rip), %rsi     # 0x6f58d
movl $0x4, %edx
movq %rbx, %rdi
callq 0x8330
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x6239e(%rip), %rsi     # 0x710af
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 0xee16
movl %ebp, %edi
movq %rbx, %rsi
callq 0xd8c4
leaq 0x60809(%rip), %rsi     # 0x6f592
movl $0x4, %edx
movq %rbx, %rdi
callq 0x8330
leaq 0x62312(%rip), %rsi     # 0x710af
movl $0x2, %edx
movq %rbx, %rdi
callq 0x8330
movl 0x8(%r15), %esi
movq %rbx, %rdi
callq 0x8520
movq %rax, %r12
leaq 0x606ec(%rip), %rsi     # 0x6f4ac
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