// File: harry830622[P]floorplanner/src/b_star_tree.cpp
// Function: BStarTree::Print(std::ostream&, int) const
void BStarTree::Print(ostream& os, int indent_level) const {
  const int indent_size = 2;
  os << string(indent_level * indent_size, ' ') << "BStarTree:" << endl;
  ++indent_level;
  os << string(indent_level * indent_size, ' ') << "root_id_:" << root_id_
     << endl;
  os << string(indent_level * indent_size, ' ') << "nodes_:" << endl;
  ++indent_level;
  for (int i = 0; i < nodes_.size(); ++i) {
    const Node& node = nodes_[i];
    os << string(indent_level * indent_size, ' ') << "Node: " << i << endl;
    ++indent_level;
    os << string(indent_level * indent_size, ' ')
       << "parent_id_: " << node.parent_id_ << endl;
    os << string(indent_level * indent_size, ' ')
       << "left_child_id_: " << node.left_child_id_ << endl;
    os << string(indent_level * indent_size, ' ')
       << "right_child_id_: " << node.right_child_id_ << endl;
    --indent_level;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2a0, %rsp            # imm = 0x2A0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x168(%rbp)
movl $0x2, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x160(%rbp)
movl -0x14(%rbp), %eax
addl %eax, %eax
cltq
movq %rax, -0x158(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x9910
movq -0x158(%rbp), %rsi
movq -0x150(%rbp), %rcx
leaq -0x38(%rbp), %rdi
movl $0x20, %edx
callq 0xad00
jmp 0x9f4f
movq -0x160(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x9460
movq %rax, -0x170(%rbp)
jmp 0x9f68
movq -0x170(%rbp), %rdi
leaq 0x4008e(%rip), %rsi     # 0x4a004
callq 0x94c0
movq %rax, -0x178(%rbp)
jmp 0x9f84
movq -0x178(%rbp), %rdi
movq 0x61fa6(%rip), %rsi     # 0x6bf38
callq 0x9500
jmp 0x9f99
leaq -0x38(%rbp), %rdi
callq 0x9a48
leaq -0x39(%rbp), %rdi
callq 0x9520
movl -0x14(%rbp), %eax
incl %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x190(%rbp)
movl -0x14(%rbp), %eax
addl %eax, %eax
cltq
movq %rax, -0x188(%rbp)
leaq -0x71(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0x9910
movq -0x188(%rbp), %rsi
movq -0x180(%rbp), %rcx
leaq -0x70(%rbp), %rdi
movl $0x20, %edx
callq 0xad00
jmp 0x9ffa
movq -0x190(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x9460
movq %rax, -0x198(%rbp)
jmp 0xa013
movq -0x198(%rbp), %rdi
leaq 0x3ffee(%rip), %rsi     # 0x4a00f
callq 0x94c0
movq %rax, -0x1a0(%rbp)
jmp 0xa02f
movq -0x1a0(%rbp), %rdi
movq -0x168(%rbp), %rax
movl (%rax), %esi
callq 0x98c0
movq %rax, -0x1a8(%rbp)
jmp 0xa04d
movq -0x1a8(%rbp), %rdi
movq 0x61edd(%rip), %rsi     # 0x6bf38
callq 0x9500
jmp 0xa062
leaq -0x70(%rbp), %rdi
callq 0x9a48
leaq -0x71(%rbp), %rdi
callq 0x9520
movq -0x10(%rbp), %rax
movq %rax, -0x1c0(%rbp)
movl -0x14(%rbp), %eax
addl %eax, %eax
cltq
movq %rax, -0x1b8(%rbp)
leaq -0x99(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0x9910
movq -0x1b8(%rbp), %rsi
movq -0x1b0(%rbp), %rcx
leaq -0x98(%rbp), %rdi
movl $0x20, %edx
callq 0xad00
jmp 0xa0c1
movq -0x1c0(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x9460
movq %rax, -0x1c8(%rbp)
jmp 0xa0dd
movq -0x1c8(%rbp), %rdi
leaq 0x3ff2e(%rip), %rsi     # 0x4a019
callq 0x94c0
movq %rax, -0x1d0(%rbp)
jmp 0xa0f9
movq -0x1d0(%rbp), %rdi
movq 0x61e31(%rip), %rsi     # 0x6bf38
callq 0x9500
jmp 0xa10e
leaq -0x98(%rbp), %rdi
callq 0x9a48
leaq -0x99(%rbp), %rdi
callq 0x9520
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movl $0x0, -0xa0(%rbp)
movq -0x168(%rbp), %rdi
movslq -0xa0(%rbp), %rax
movq %rax, -0x1d8(%rbp)
addq $0x8, %rdi
callq 0xacc0
movq %rax, %rcx
movq -0x1d8(%rbp), %rax
cmpq %rcx, %rax
jae 0xa658
movq -0x168(%rbp), %rdi
addq $0x8, %rdi
movslq -0xa0(%rbp), %rsi
callq 0xad70
movq %rax, -0xa8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movl -0x14(%rbp), %eax
addl %eax, %eax
cltq
movq %rax, -0x1e8(%rbp)
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x1e0(%rbp)
callq 0x9910
movq -0x1e8(%rbp), %rsi
movq -0x1e0(%rbp), %rcx
leaq -0xc8(%rbp), %rdi
movl $0x20, %edx
callq 0xad00
jmp 0xa1d5
movq -0x1f0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x9460
movq %rax, -0x1f8(%rbp)
jmp 0xa1f1
movq -0x1f8(%rbp), %rdi
leaq 0x3fe22(%rip), %rsi     # 0x4a021
callq 0x94c0
movq %rax, -0x200(%rbp)
jmp 0xa20d
movq -0x200(%rbp), %rdi
movl -0xa0(%rbp), %esi
callq 0x98c0
movq %rax, -0x208(%rbp)
jmp 0xa228
movq -0x208(%rbp), %rdi
movq 0x61d02(%rip), %rsi     # 0x6bf38
callq 0x9500
jmp 0xa23d
leaq -0xc8(%rbp), %rdi
callq 0x9a48
leaq -0xc9(%rbp), %rdi
callq 0x9520
movl -0x14(%rbp), %eax
incl %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x220(%rbp)
movl -0x14(%rbp), %eax
addl %eax, %eax
cltq
movq %rax, -0x218(%rbp)
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0x9910
movq -0x218(%rbp), %rsi
movq -0x210(%rbp), %rcx
leaq -0xf0(%rbp), %rdi
movl $0x20, %edx
callq 0xad00
jmp 0xa2aa
movq -0x220(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x9460
movq %rax, -0x228(%rbp)
jmp 0xa2c6
movq -0x228(%rbp), %rdi
leaq 0x3fd54(%rip), %rsi     # 0x4a028
callq 0x94c0
movq %rax, -0x230(%rbp)
jmp 0xa2e2
movq -0x230(%rbp), %rdi
movq -0xa8(%rbp), %rax
movl (%rax), %esi
callq 0x98c0
movq %rax, -0x238(%rbp)
jmp 0xa300
movq -0x238(%rbp), %rdi
movq 0x61c2a(%rip), %rsi     # 0x6bf38
callq 0x9500
jmp 0xa315
leaq -0xf0(%rbp), %rdi
callq 0x9a48
leaq -0xf1(%rbp), %rdi
callq 0x9520
movq -0x10(%rbp), %rax
movq %rax, -0x250(%rbp)
movl -0x14(%rbp), %eax
addl %eax, %eax
cltq
movq %rax, -0x248(%rbp)
leaq -0x119(%rbp), %rdi
movq %rdi, -0x240(%rbp)
callq 0x9910
movq -0x248(%rbp), %rsi
movq -0x240(%rbp), %rcx
leaq -0x118(%rbp), %rdi
movl $0x20, %edx
callq 0xad00
jmp 0xa37a
movq -0x250(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x9460
movq %rax, -0x258(%rbp)
jmp 0xa396
movq -0x258(%rbp), %rdi
leaq 0x3fc91(%rip), %rsi     # 0x4a035
callq 0x94c0
movq %rax, -0x260(%rbp)
jmp 0xa3b2
movq -0x260(%rbp), %rdi
movq -0xa8(%rbp), %rax
movl 0x4(%rax), %esi
callq 0x98c0
movq %rax, -0x268(%rbp)
jmp 0xa3d1
movq -0x268(%rbp), %rdi
movq 0x61b59(%rip), %rsi     # 0x6bf38
callq 0x9500
jmp 0xa3e6
leaq -0x118(%rbp), %rdi
callq 0x9a48
leaq -0x119(%rbp), %rdi
callq 0x9520
movq -0x10(%rbp), %rax
movq %rax, -0x280(%rbp)
movl -0x14(%rbp), %eax
addl %eax, %eax
cltq
movq %rax, -0x278(%rbp)
leaq -0x141(%rbp), %rdi
movq %rdi, -0x270(%rbp)
callq 0x9910
movq -0x278(%rbp), %rsi
movq -0x270(%rbp), %rcx
leaq -0x140(%rbp), %rdi
movl $0x20, %edx
callq 0xad00
jmp 0xa44b
movq -0x280(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x9460
movq %rax, -0x288(%rbp)
jmp 0xa467
movq -0x288(%rbp), %rdi
leaq 0x3fbd1(%rip), %rsi     # 0x4a046
callq 0x94c0
movq %rax, -0x290(%rbp)
jmp 0xa483
movq -0x290(%rbp), %rdi
movq -0xa8(%rbp), %rax
movl 0x8(%rax), %esi
callq 0x98c0
movq %rax, -0x298(%rbp)
jmp 0xa4a2
movq -0x298(%rbp), %rdi
movq 0x61a88(%rip), %rsi     # 0x6bf38
callq 0x9500
jmp 0xa4b7
leaq -0x140(%rbp), %rdi
callq 0x9a48
leaq -0x141(%rbp), %rdi
callq 0x9520
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
movl -0xa0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa0(%rbp)
jmp 0xa139
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xa50f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9a48
leaq -0x39(%rbp), %rdi
callq 0x9520
jmp 0xa661
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xa540
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x9a48
leaq -0x71(%rbp), %rdi
callq 0x9520
jmp 0xa661
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xa574
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x9a48
leaq -0x99(%rbp), %rdi
callq 0x9520
jmp 0xa661
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xa5ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x9a48
leaq -0xc9(%rbp), %rdi
callq 0x9520
jmp 0xa661
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xa5e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x9a48
leaq -0xf1(%rbp), %rdi
callq 0x9520
jmp 0xa661
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xa616
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x9a48
leaq -0x119(%rbp), %rdi
callq 0x9520
jmp 0xa661
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xa64a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x9a48
leaq -0x141(%rbp), %rdi
callq 0x9520
jmp 0xa661
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x98f0
nopw (%rax,%rax)