// File: /workspace/github_cpp_makefile_star2_O3/cpottamus[P]btree_lab/btree_ds.cc
// Function: BTreeNode::Print(std::ostream&) const
ostream & BTreeNode::Print(ostream &os) const 
{
  os << "BTreeNode(info="<<info;
  if (info.nodetype!=BTREE_UNALLOCATED_BLOCK && info.nodetype!=BTREE_SUPERBLOCK) { 
    os <<", ";
    if (info.nodetype==BTREE_INTERIOR_NODE || info.nodetype==BTREE_ROOT_NODE) {
      SIZE_T ptr;
      KEY_T key;
      os << "pointers_and_values=(";
      if (info.numkeys>0) { // ==0 implies an empty root node
	for (SIZE_T i=0;i<info.numkeys;i++) {
	  GetPtr(i,ptr);
	  os<<ptr<<", ";
	  GetKey(i,key);
	  os<<key<<", ";
	}
	GetPtr(info.numkeys,ptr);
	os <<ptr;
      } 
      os << ")";
	
    }
    if (info.nodetype==BTREE_LEAF_NODE) { 
      KEY_T key;
      VALUE_T val;
      os << "keys_and_values=(";
      for (SIZE_T i=0;i<info.numkeys;i++) {
	if (i>0) { 
	  os<<", ";
	}
	GetKey(i,key);
	os<<key<<", ";
	GetVal(i,val);
	os<<val;
      }
      os <<")";
    }
  }
  os <<")";
  return os;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x1936(%rip), %rsi      # 0x9b51
movl $0xf, %edx
movq %rbx, %rdi
callq 0x2230
movq %r14, %rdi
movq %rbx, %rsi
callq 0x7afa
cmpl $0x2, (%r14)
jb 0x8403
leaq 0x142f(%rip), %rsi      # 0x9673
movl $0x2, %edx
movq %rbx, %rdi
callq 0x2230
movl (%r14), %eax
movl %eax, %ecx
andl $-0x2, %ecx
cmpl $0x2, %ecx
jne 0x8334
leaq 0x8(%rsp), %rdi
callq 0x2c58
leaq 0x18ee(%rip), %rsi      # 0x9b61
movl $0x15, %edx
movq %rbx, %rdi
callq 0x2230
cmpl $0x0, 0x18(%r14)
je 0x8313
xorl %ebp, %ebp
leaq 0x13df(%rip), %r15      # 0x9673
leaq 0x8(%rsp), %r12
movq %r14, %rdi
movl %ebp, %esi
callq 0x7f6c
testq %rax, %rax
je 0x82ab
movl (%rax), %r13d
movl %r13d, %esi
movq %rbx, %rdi
callq 0x2120
movl $0x2, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x2230
movq %r14, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x802a
movq %r12, %rdi
movq %rbx, %rsi
callq 0x2ee8
movl $0x2, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x2230
incl %ebp
movl 0x18(%r14), %esi
cmpl %esi, %ebp
jb 0x8299
movq %r14, %rdi
callq 0x7f6c
testq %rax, %rax
je 0x8308
movl (%rax), %r13d
movl %r13d, %esi
movq %rbx, %rdi
callq 0x2120
leaq 0x144b(%rip), %rsi      # 0x9765
movl $0x1, %edx
movq %rbx, %rdi
callq 0x2230
leaq 0x8(%rsp), %rdi
callq 0x2e26
movl (%r14), %eax
cmpl $0x4, %eax
jne 0x8403
leaq 0x8(%rsp), %rdi
callq 0x2c58
leaq 0x30(%rsp), %rdi
callq 0x2c58
leaq 0x181f(%rip), %rsi      # 0x9b77
movl $0x11, %edx
movq %rbx, %rdi
callq 0x2230
cmpl $0x0, 0x18(%r14)
je 0x83db
xorl %ebp, %ebp
leaq 0x8(%rsp), %r15
leaq 0x12f9(%rip), %r12      # 0x9673
leaq 0x30(%rsp), %r13
testl %ebp, %ebp
je 0x8393
movl $0x2, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x2230
movq %r14, %rdi
movl %ebp, %esi
movq %r15, %rdx
callq 0x802a
movq %r15, %rdi
movq %rbx, %rsi
callq 0x2ee8
movl $0x2, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x2230
movq %r14, %rdi
movl %ebp, %esi
movq %r13, %rdx
callq 0x8096
movq %r13, %rdi
movq %rbx, %rsi
callq 0x2ee8
incl %ebp
cmpl 0x18(%r14), %ebp
jb 0x837f
leaq 0x1383(%rip), %rsi      # 0x9765
movl $0x1, %edx
movq %rbx, %rdi
callq 0x2230
leaq 0x30(%rsp), %rdi
callq 0x2e26
leaq 0x8(%rsp), %rdi
callq 0x2e26
leaq 0x135b(%rip), %rsi      # 0x9765
movl $0x1, %edx
movq %rbx, %rdi
callq 0x2230
movq %rbx, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x842f
jmp 0x8434
jmp 0x842f
movq %rax, %rbx
jmp 0x8441
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2e26
leaq 0x8(%rsp), %rdi
callq 0x2e26
movq %rbx, %rdi
callq 0x2370