// File: sgalkina[P]data_structures/src/test_map.h
// Function: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> gtl::benchmark<gtl::vector_map<int, int>>()
std::string benchmark() {
  T map;
  return
    std::to_string(benchmark_operation<T, addition<T>>(map)) + " " +
    std::to_string(benchmark_operation<T, search<T>>(map)) + " " +
    std::to_string(benchmark_operation<T, mixed<T>>(map)) + " " +
    std::to_string(benchmark_operation<T, deletion<T>>(map)) + " " +
    "\n";
}

// Assembly:
subq $0x1c8, %rsp            # imm = 0x1C8
movq %rdi, 0x18(%rsp)
movq %rdi, %rax
movq %rax, 0x20(%rsp)
movq %rdi, 0x1c0(%rsp)
leaq 0x1a8(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x67f0
movq 0x28(%rsp), %rdi
callq 0xb1c0
movq %rax, 0x30(%rsp)
jmp 0x56cf
movq 0x30(%rsp), %rsi
leaq 0xa8(%rsp), %rdi
callq 0xb070
jmp 0x56e3
leaq 0x8afb(%rip), %rdx      # 0xe1e5
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xaf30
jmp 0x5701
leaq 0x1a8(%rsp), %rdi
callq 0xb270
movq %rax, 0x10(%rsp)
jmp 0x5715
movq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdi
callq 0xb070
jmp 0x5726
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0x78(%rsp), %rdx
callq 0xaf80
jmp 0x5742
leaq 0x8a9c(%rip), %rdx      # 0xe1e5
leaq 0x108(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0xaf30
jmp 0x5760
leaq 0x1a8(%rsp), %rdi
callq 0xb320
movq %rax, 0x8(%rsp)
jmp 0x5774
movq 0x8(%rsp), %rsi
leaq 0x58(%rsp), %rdi
callq 0xb070
jmp 0x5785
leaq 0x128(%rsp), %rdi
leaq 0x108(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0xaf80
jmp 0x57a1
leaq 0x8a3d(%rip), %rdx      # 0xe1e5
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0xaf30
jmp 0x57bf
leaq 0x1a8(%rsp), %rdi
callq 0xb3d0
movq %rax, (%rsp)
jmp 0x57d2
movq (%rsp), %rsi
leaq 0x38(%rsp), %rdi
callq 0xb070
jmp 0x57e2
leaq 0x168(%rsp), %rdi
leaq 0x148(%rsp), %rsi
leaq 0x38(%rsp), %rdx
callq 0xaf80
jmp 0x57fe
leaq 0x89e0(%rip), %rdx      # 0xe1e5
leaq 0x188(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0xaf30
jmp 0x581c
movq 0x18(%rsp), %rdi
leaq 0x899c(%rip), %rdx      # 0xe1c4
leaq 0x188(%rsp), %rsi
callq 0xaf30
jmp 0x5837
leaq 0x188(%rsp), %rdi
callq 0x2070
leaq 0x168(%rsp), %rdi
callq 0x2070
leaq 0x38(%rsp), %rdi
callq 0x2070
leaq 0x148(%rsp), %rdi
callq 0x2070
leaq 0x128(%rsp), %rdi
callq 0x2070
leaq 0x58(%rsp), %rdi
callq 0x2070
leaq 0x108(%rsp), %rdi
callq 0x2070
leaq 0xe8(%rsp), %rdi
callq 0x2070
leaq 0x78(%rsp), %rdi
callq 0x2070
leaq 0xc8(%rsp), %rdi
callq 0x2070
leaq 0xa8(%rsp), %rdi
callq 0x2070
leaq 0x1a8(%rsp), %rdi
callq 0x6b20
movq 0x20(%rsp), %rax
addq $0x1c8, %rsp            # imm = 0x1C8
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x5a7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x5a6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x5a61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x5a57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x5a4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x5a3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x5a33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x5a26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x5a19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x5a0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x5a02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
leaq 0x188(%rsp), %rdi
callq 0x2070
leaq 0x168(%rsp), %rdi
callq 0x2070
leaq 0x38(%rsp), %rdi
callq 0x2070
leaq 0x148(%rsp), %rdi
callq 0x2070
leaq 0x128(%rsp), %rdi
callq 0x2070
leaq 0x58(%rsp), %rdi
callq 0x2070
leaq 0x108(%rsp), %rdi
callq 0x2070
leaq 0xe8(%rsp), %rdi
callq 0x2070
leaq 0x78(%rsp), %rdi
callq 0x2070
leaq 0xc8(%rsp), %rdi
callq 0x2070
leaq 0xa8(%rsp), %rdi
callq 0x2070
leaq 0x1a8(%rsp), %rdi
callq 0x6b20
movq 0xa0(%rsp), %rdi
callq 0x21a0
nopw %cs:(%rax,%rax)
nop