// File: /workspace/github_cpp_makefile_star2_O2/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: BodyNode::toString[abi:cxx11]()
string BodyNode::toString() {
    ostringstream oss;
    // Called from the root BodyNode
    if (bodyOuter_) {
        bodyOuter_->indent_ = indent_;
        oss << bodyOuter_->toString();
    }
    if (str_) {
        str_->indent_ = indent_;
        oss << str_->toString();
        return oss.str();
    } else if (bodyInner_) {
        bodyInner_->indent_ = indent_ + 1; 
        oss << string("  ")*indent_ << "{\n"
            << bodyInner_->toString()
            << string("  ")*indent_ << "}\n";
        return oss.str();
    } else {
        assert(false);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x228, %rsp            # imm = 0x228
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x238(%rbp), %rdi
callq 0x415a0
movq 0x40(%r14), %rsi
testq %rsi, %rsi
je 0x470e6
movl 0x58(%r14), %eax
movl %eax, 0x58(%rsi)
movq (%rsi), %rax
leaq -0x40(%rbp), %rdi
callq *(%rax)
leaq -0x238(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x41380
leaq -0x40(%rbp), %rdi
callq 0x418c8
movq 0x50(%r14), %rsi
testq %rsi, %rsi
je 0x47118
movl 0x58(%r14), %eax
movl %eax, 0x48(%rsi)
movq (%rsi), %rax
leaq -0x40(%rbp), %rdi
callq *(%rax)
leaq -0x238(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x41380
leaq -0x40(%rbp), %rdi
jmp 0x4720b
movq 0x48(%r14), %rax
testq %rax, %rax
je 0x4723c
movl 0x58(%r14), %ecx
incl %ecx
movl %ecx, 0x58(%rax)
leaq 0x33f1b(%rip), %rsi     # 0x7b050
leaq -0xc0(%rbp), %rdi
leaq -0x1a(%rbp), %rdx
callq 0x411c0
movl 0x58(%r14), %edx
leaq -0x40(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x46f27
leaq -0x238(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x41380
leaq 0x35af0(%rip), %rsi     # 0x7cc60
movq %rax, %rdi
callq 0x413d0
movq %rax, %r15
movq 0x48(%r14), %rsi
movq (%rsi), %rax
leaq -0xa0(%rbp), %rdi
callq *(%rax)
leaq -0xa0(%rbp), %rsi
movq %r15, %rdi
callq 0x41380
movq %rax, %r15
leaq 0x33eac(%rip), %rsi     # 0x7b050
leaq -0x60(%rbp), %rdi
leaq -0x19(%rbp), %rdx
callq 0x411c0
movl 0x58(%r14), %edx
leaq -0x80(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x46f27
leaq -0x80(%rbp), %rsi
movq %r15, %rdi
callq 0x41380
leaq 0x324ec(%rip), %rsi     # 0x796c1
movq %rax, %rdi
callq 0x413d0
leaq -0x80(%rbp), %rdi
callq 0x418c8
leaq -0x60(%rbp), %rdi
callq 0x418c8
leaq -0xa0(%rbp), %rdi
callq 0x418c8
leaq -0x40(%rbp), %rdi
callq 0x418c8
leaq -0xc0(%rbp), %rdi
callq 0x418c8
leaq -0x230(%rbp), %rsi
movq %rbx, %rdi
callq 0x416b0
leaq -0x238(%rbp), %rdi
callq 0x410e0
movq %rbx, %rax
addq $0x228, %rsp            # imm = 0x228
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x31ad1(%rip), %rdi     # 0x78d14
leaq 0x31ad0(%rip), %rsi     # 0x78d1a
leaq 0x31ae2(%rip), %rcx     # 0x78d33
pushq $0x65
popq %rdx
callq 0x412f0
movq %rax, %rbx
jmp 0x47289
jmp 0x47260
movq %rax, %rbx
jmp 0x47292
jmp 0x472a0
movq %rax, %rbx
jmp 0x472ac
jmp 0x472ba
jmp 0x47272
jmp 0x472ba
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
jmp 0x472b3
jmp 0x472ba
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x418c8
leaq -0x60(%rbp), %rdi
callq 0x418c8
leaq -0xa0(%rbp), %rdi
callq 0x418c8
jmp 0x472a3
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0x418c8
leaq -0xc0(%rbp), %rdi
callq 0x418c8
jmp 0x472bd
movq %rax, %rbx
leaq -0x238(%rbp), %rdi
callq 0x410e0
movq %rbx, %rdi
callq 0x41790
nop