// File: /workspace/github_cpp_makefile_star2_O1/QiumingLu[P]conhash/sample.cc
// Function: main
int main() {
  ConHash conhash;
  Node n1("spanner", 12);
  Node n2("bigtable", 16);
  Node n3("mapreduce", 14);
  Node n4("chubby", 15);
  Node n5("gfs", 10);
  conhash.AddNode(n1);
  conhash.AddNode(n2);
  conhash.AddNode(n3);
  conhash.AddNode(n4);
  conhash.AddNode(n5);
  for (int i = 0; i < 20; ++i) {
    char buf[32];
    snprintf(buf, sizeof(buf), "megastore#%d", i);
    Node node;
    if (conhash.Lookup(buf, &node)) {
      std::cout << node.identify << std::endl;
    } else {
      std::cout << "No server" << std::endl;
    }
  }
  std::cout << "\n";
  conhash.RemoveNode(n3);
  for (int i = 0; i < 20; ++i) {
    char buf[32];
    snprintf(buf, sizeof(buf), "megastore#%d", i);
    Node node;
    if (conhash.Lookup(buf, &node)) {
      std::cout << node.identify << std::endl;
    } else {
      std::cout << "No server" << std::endl;
    }
  }

  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
leaq 0x110(%rsp), %rdi
callq 0x2ca8
leaq 0xa8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1cf7(%rip), %rsi      # 0x4004
leaq 0x1cf7(%rip), %rdx      # 0x400b
leaq 0x98(%rsp), %rdi
callq 0x2c18
leaq 0xf8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
addq %rsi, %rdx
leaq 0xe8(%rsp), %rdi
callq 0x2b04
movl $0xc, 0x108(%rsp)
movq 0x98(%rsp), %rdi
cmpq %r14, %rdi
je 0x2375
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x2110
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1c87(%rip), %rsi      # 0x400c
leaq 0x1c88(%rip), %rdx      # 0x4014
leaq 0x48(%rsp), %rdi
callq 0x2c18
leaq 0x98(%rsp), %rdi
movq %r14, (%rdi)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
callq 0x2b04
movl $0x10, 0xb8(%rsp)
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x23d5
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x2110
leaq 0x80(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1c2c(%rip), %rsi      # 0x4015
leaq 0x1c2e(%rip), %rdx      # 0x401e
leaq 0x70(%rsp), %rdi
callq 0x2c18
leaq 0x48(%rsp), %rdi
movq %r15, (%rdi)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
callq 0x2b04
movl $0xe, 0x68(%rsp)
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x2436
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x2110
leaq 0xd0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1bd6(%rip), %rsi      # 0x401f
leaq 0x1bd5(%rip), %rdx      # 0x4025
leaq 0xc0(%rsp), %rdi
callq 0x2c18
leaq 0x70(%rsp), %rdi
movq %r12, (%rdi)
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
addq %rsi, %rdx
callq 0x2b04
movl $0xf, 0x90(%rsp)
movq 0xc0(%rsp), %rdi
cmpq %r13, %rdi
je 0x24a5
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x2110
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1b71(%rip), %rsi      # 0x4026
leaq 0x1b6d(%rip), %rdx      # 0x4029
movq %rsp, %rdi
callq 0x2c18
leaq 0xc0(%rsp), %rdi
movq %r13, (%rdi)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
addq %rsi, %rdx
callq 0x2b04
movl $0xa, 0xe0(%rsp)
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x2506
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2110
leaq 0x110(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x2cc6
leaq 0x110(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x2cc6
leaq 0x110(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x2cc6
leaq 0x110(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x2cc6
leaq 0x110(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x2cc6
leaq 0x140(%rsp), %r14
leaq 0x28(%rsp), %r15
movq %rsp, %r13
movq 0x3a58(%rip), %r12      # 0x5fd8
xorl %ebx, %ebx
movl $0x20, %esi
movq %r14, %rdi
leaq 0x1a99(%rip), %rdx      # 0x402a
movl %ebx, %ecx
xorl %eax, %eax
callq 0x2170
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq $0x0, 0x8(%rsp)
movb $0x0, 0x10(%rsp)
movl $0x0, 0x20(%rsp)
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq %r14, %rdi
callq 0x2070
leaq (%rsp,%rax), %rdx
addq $0x140, %rdx            # imm = 0x140
movq %r15, %rdi
movq %r14, %rsi
callq 0x2c18
leaq 0x110(%rsp), %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x2e5a
movl %eax, %ebp
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x2612
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x2110
testb %bpl, %bpl
je 0x2641
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r12, %rdi
callq 0x2130
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x20f0
jmp 0x266d
movl $0x9, %edx
movq %r12, %rdi
leaq 0x19e7(%rip), %rsi      # 0x4037
callq 0x2130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x20f0
movq %r12, %rbp
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x269b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2110
incl %ebx
cmpl $0x14, %ebx
jne 0x2582
movq 0x392b(%rip), %r13      # 0x5fd8
leaq 0x198d(%rip), %rsi      # 0x4041
movl $0x1, %edx
movq %r13, %rdi
callq 0x2130
leaq 0x110(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x2e0a
leaq 0x140(%rsp), %r15
leaq 0x28(%rsp), %r12
movq %rsp, %rbp
xorl %r14d, %r14d
movl $0x20, %esi
movq %r15, %rdi
leaq 0x1935(%rip), %rdx      # 0x402a
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2170
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq $0x0, 0x8(%rsp)
movb $0x0, 0x10(%rsp)
movl $0x0, 0x20(%rsp)
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq %r15, %rdi
callq 0x2070
leaq (%rsp,%rax), %rdx
addq $0x140, %rdx            # imm = 0x140
movq %r12, %rdi
movq %r15, %rsi
callq 0x2c18
leaq 0x110(%rsp), %rdi
movq %r12, %rsi
movq %rbp, %rdx
callq 0x2e5a
movl %eax, %ebx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x2777
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x2110
testb %bl, %bl
je 0x27a5
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x2130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x20f0
jmp 0x27d1
movl $0x9, %edx
movq %r13, %rdi
leaq 0x1883(%rip), %rsi      # 0x4037
callq 0x2130
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x20f0
movq %r13, %rbx
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x27ff
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2110
incl %r14d
cmpl $0x14, %r14d
jne 0x26e6
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x2831
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x2110
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
leaq 0xf8(%rsp), %rbx
leaq 0xa8(%rsp), %r14
leaq 0x58(%rsp), %r15
je 0x2868
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x2110
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x287f
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x2110
movq 0x98(%rsp), %rdi
cmpq %r14, %rdi
je 0x289c
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x2110
movq 0xe8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x28b9
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x2110
leaq 0x110(%rsp), %rdi
callq 0x2ba0
xorl %eax, %eax
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r12, %r13
movq %r15, %r12
movq %r14, %r15
movq %rbx, %r14
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x2a83
movq 0x10(%rsp), %rsi
jmp 0x2a7b
movq %r12, %r13
movq %r15, %r12
movq %r14, %r15
movq %rbx, %r14
movq %rax, %rbx
jmp 0x2a83
movq %r15, %r12
movq %r14, %r15
movq %rbx, %r14
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
cmpq %r13, %rdi
je 0x2a9d
movq 0xd0(%rsp), %rsi
jmp 0x2a95
movq %r15, %r12
movq %r14, %r15
movq %rbx, %r14
movq %rax, %rbx
jmp 0x2a9d
movq %r14, %r15
movq %rbx, %r14
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x2ab4
movq 0x80(%rsp), %rsi
jmp 0x2aac
movq %r14, %r15
movq %rbx, %r14
movq %rax, %rbx
jmp 0x2ab4
movq %rbx, %r14
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x2ad1
movq 0x58(%rsp), %rsi
jmp 0x2ac9
movq %rbx, %r14
movq %rax, %rbx
jmp 0x2ad1
movq %rax, %rbx
movq 0x98(%rsp), %rdi
cmpq %r14, %rdi
je 0x2aee
movq 0xa8(%rsp), %rsi
jmp 0x2ae6
movq %rax, %rbx
jmp 0x2aee
movq %rax, %rbx
leaq 0xf8(%rsp), %r14
leaq 0xa8(%rsp), %r15
leaq 0x58(%rsp), %r12
leaq 0x80(%rsp), %r13
jmp 0x2a5e
jmp 0x2a23
jmp 0x2a00
jmp 0x2a23
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x2a26
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x2110
jmp 0x2a26
jmp 0x2a23
movq %rax, %rbx
leaq 0xf8(%rsp), %r14
leaq 0xa8(%rsp), %r15
leaq 0x58(%rsp), %r12
leaq 0x80(%rsp), %r13
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x2a5e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2110
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x2a83
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x2110
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x2a9d
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x2110
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x2ab4
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x2110
movq 0x98(%rsp), %rdi
cmpq %r15, %rdi
je 0x2ad1
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x2110
movq 0xe8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2aee
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x2110
leaq 0x110(%rsp), %rdi
callq 0x2ba0
movq %rbx, %rdi
callq 0x2190
nop