// File: /workspace/github_cpp_makefile_star2_O2/eschwabe[P]interview-practice/src/libds_btree.cpp
// Function: main
int main()
{
  BinaryTree t;
  t.Insert(1);
  t.Insert(97);
  t.Insert(44);
  t.Insert(4);
  t.Insert(3);
  t.Insert(10);
  t.Insert(100);
  t.Insert(5);
  t.Insert(5);
  t.Print(std::cout);
  std::cout << "Find: " << 10 << " : " << t.Find(10) << std::endl;
  std::cout << "Find: " << 100 << " : " << t.Find(100) << std::endl;
  std::cout << "Find: " << 99 << " : " << t.Find(99) << std::endl;
  t.Remove(10);
  t.Remove(5);
  t.Remove(4);
  t.Remove(100);
  t.Remove(44);
  t.Print(std::cout);
  t.Remove(5);
  t.Remove(1);
  t.Remove(3);
  t.Remove(97);
  t.Print(std::cout);
  t.Insert(5);
  t.Insert(5);
  t.Print(std::cout);

  return 0;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
leaq 0x10(%rsp), %rdi
andq $0x0, (%rdi)
leaq 0xc(%rsp), %rsi
movl $0x1, (%rsi)
callq 0x11f8
leaq 0xc(%rsp), %rsi
movl $0x61, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x11f8
leaq 0xc(%rsp), %rsi
movl $0x2c, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x11f8
leaq 0xc(%rsp), %rsi
movl $0x4, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x11f8
leaq 0xc(%rsp), %rsi
movl $0x3, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x11f8
leaq 0xc(%rsp), %rsi
movl $0xa, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x11f8
leaq 0xc(%rsp), %rsi
movl $0x64, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x11f8
leaq 0xc(%rsp), %rsi
movl $0x5, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x11f8
leaq 0xc(%rsp), %rsi
movl $0x5, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x11f8
movq 0x2b27(%rip), %rsi      # 0x3fd8
leaq 0x10(%rsp), %rdi
callq 0x1376
movq 0x2b16(%rip), %rdi      # 0x3fd8
leaq 0xb3b(%rip), %rsi       # 0x2004
callq 0x1050
pushq $0xa
popq %rsi
movq %rax, %rdi
callq 0x10a0
leaq 0xb2b(%rip), %rsi       # 0x200b
movq %rax, %rdi
callq 0x1050
movq %rax, %rbx
leaq 0xc(%rsp), %rsi
movl $0xa, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x1354
movzbl %al, %esi
movq %rbx, %rdi
callq 0x1090
movq %rax, %rdi
callq 0x1030
movq 0x2abe(%rip), %rdi      # 0x3fd8
leaq 0xae3(%rip), %rsi       # 0x2004
callq 0x1050
pushq $0x64
popq %rsi
movq %rax, %rdi
callq 0x10a0
leaq 0xad3(%rip), %rsi       # 0x200b
movq %rax, %rdi
callq 0x1050
movq %rax, %rbx
leaq 0xc(%rsp), %rsi
movl $0x64, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x1354
movzbl %al, %esi
movq %rbx, %rdi
callq 0x1090
movq %rax, %rdi
callq 0x1030
movq 0x2a66(%rip), %rdi      # 0x3fd8
leaq 0xa8b(%rip), %rsi       # 0x2004
callq 0x1050
pushq $0x63
popq %rsi
movq %rax, %rdi
callq 0x10a0
leaq 0xa7b(%rip), %rsi       # 0x200b
movq %rax, %rdi
callq 0x1050
movq %rax, %rbx
leaq 0xc(%rsp), %rsi
movl $0x63, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x1354
movzbl %al, %esi
movq %rbx, %rdi
callq 0x1090
movq %rax, %rdi
callq 0x1030
leaq 0xc(%rsp), %r14
movl $0xa, (%r14)
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x129e
movl $0x5, (%r14)
leaq 0xc(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x129e
movl $0x4, (%r14)
leaq 0xc(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x129e
movl $0x64, (%r14)
leaq 0xc(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x129e
movl $0x2c, (%r14)
leaq 0xc(%rsp), %rsi
movq %rbx, %rdi
callq 0x129e
movq 0x2999(%rip), %rsi      # 0x3fd8
movq %rbx, %rdi
callq 0x1376
leaq 0xc(%rsp), %rbx
movl $0x5, (%rbx)
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x129e
movl $0x1, (%rbx)
leaq 0xc(%rsp), %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x129e
movl $0x3, (%rbx)
leaq 0xc(%rsp), %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x129e
movl $0x61, (%rbx)
leaq 0xc(%rsp), %rsi
movq %r14, %rdi
callq 0x129e
movq 0x2930(%rip), %rsi      # 0x3fd8
movq %r14, %rdi
callq 0x1376
leaq 0xc(%rsp), %rsi
movl $0x5, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x11f8
leaq 0xc(%rsp), %rsi
movl $0x5, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x11f8
movq 0x28f7(%rip), %rsi      # 0x3fd8
leaq 0x10(%rsp), %rdi
callq 0x1376
leaq 0x10(%rsp), %rdi
callq 0x1730
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r14
retq
jmp 0x171b
jmp 0x171b
jmp 0x171b
jmp 0x171b
jmp 0x171b
jmp 0x171b
jmp 0x171b
jmp 0x171b
jmp 0x171b
jmp 0x171b
jmp 0x171b
jmp 0x171b
jmp 0x171b
jmp 0x171b
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x1730
movq %rbx, %rdi
callq 0x10b0