// File: /workspace/github_cpp_makefile_star2_O2/jaycelq[P]BPlusTree/main.cpp
// Function: main
int main()
{
    BPlusTree bt;
    bt.put(10, "a");
    bt.put(9, "e");
    bt.put(8, "b");
    bt.put(7, "c");
    bt.put(6, "d");
    bt.put(5, "e");
    bt.put(3, "f");
    bt.put(3, "i");
    bt.put(2, "k");
    bt.put(1, "a");
    bt.put(0, "b");
    bt.put(17, "d");
    bt.put(18, "g");
    bt.put(13, "h");
    bt.put(19, "i");
    bt.put(23, "k");
    bt.put(20, "a");
    bt.put(24, "b");
    bt.put(28, "c");
    bt.put(27, "d");
    bt.put(21, "f");
    bt.put(16, "g");
    bt.put(23, "h");
    bt.put(26, "i");
    bt.put(29, "k");
    string r;
    map<int, string> res = bt.getrange(1,16);
    map<int, string>::iterator it;
    for (it = res.begin(); it != res.end(); ++it)
        std::cout << it->first << " => " << it->second << '\n';
    if(bt.get(16, r)) {
        cout << r << endl;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x380, %rsp            # imm = 0x380
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xdc3(%rip), %rsi       # 0x4074
leaq 0x360(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0xa
popq %rsi
leaq 0x360(%rsp), %rdx
callq 0x27c8
leaq 0x360(%rsp), %rdi
callq 0x2080
leaq 0xd8c(%rip), %rsi       # 0x4076
leaq 0x340(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x9
popq %rsi
leaq 0x340(%rsp), %rdx
callq 0x27c8
leaq 0x340(%rsp), %rdi
callq 0x2080
leaq 0xd55(%rip), %rsi       # 0x4078
leaq 0x320(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x8
popq %rsi
leaq 0x320(%rsp), %rdx
callq 0x27c8
leaq 0x320(%rsp), %rdi
callq 0x2080
leaq 0xd1e(%rip), %rsi       # 0x407a
leaq 0x300(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x7
popq %rsi
leaq 0x300(%rsp), %rdx
callq 0x27c8
leaq 0x300(%rsp), %rdi
callq 0x2080
leaq 0xd1e(%rip), %rsi       # 0x40b3
leaq 0x2e0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x6
popq %rsi
leaq 0x2e0(%rsp), %rdx
callq 0x27c8
leaq 0x2e0(%rsp), %rdi
callq 0x2080
leaq 0xca8(%rip), %rsi       # 0x4076
leaq 0x2c0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x5
popq %rsi
leaq 0x2c0(%rsp), %rdx
callq 0x27c8
leaq 0x2c0(%rsp), %rdi
callq 0x2080
leaq 0xc75(%rip), %rsi       # 0x407c
leaq 0x2a0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x3
popq %rsi
leaq 0x2a0(%rsp), %rdx
callq 0x27c8
leaq 0x2a0(%rsp), %rdi
callq 0x2080
leaq 0xc3e(%rip), %rsi       # 0x407e
leaq 0x280(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x3
popq %rsi
leaq 0x280(%rsp), %rdx
callq 0x27c8
leaq 0x280(%rsp), %rdi
callq 0x2080
leaq 0xc07(%rip), %rsi       # 0x4080
leaq 0x260(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x2
popq %rsi
leaq 0x260(%rsp), %rdx
callq 0x27c8
leaq 0x260(%rsp), %rdi
callq 0x2080
leaq 0xbc2(%rip), %rsi       # 0x4074
leaq 0x240(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x1
popq %rsi
leaq 0x240(%rsp), %rdx
callq 0x27c8
leaq 0x240(%rsp), %rdi
callq 0x2080
leaq 0xb8d(%rip), %rsi       # 0x4078
leaq 0x220(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
leaq 0x220(%rsp), %rdx
xorl %esi, %esi
callq 0x27c8
leaq 0x220(%rsp), %rdi
callq 0x2080
leaq 0xb90(%rip), %rsi       # 0x40b3
leaq 0x200(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x11
popq %rsi
leaq 0x200(%rsp), %rdx
callq 0x27c8
leaq 0x200(%rsp), %rdi
callq 0x2080
leaq 0xb26(%rip), %rsi       # 0x4082
leaq 0x1e0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x12
popq %rsi
leaq 0x1e0(%rsp), %rdx
callq 0x27c8
leaq 0x1e0(%rsp), %rdi
callq 0x2080
leaq 0xaef(%rip), %rsi       # 0x4084
leaq 0x1c0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0xd
popq %rsi
leaq 0x1c0(%rsp), %rdx
callq 0x27c8
leaq 0x1c0(%rsp), %rdi
callq 0x2080
leaq 0xab0(%rip), %rsi       # 0x407e
leaq 0x1a0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x13
popq %rsi
leaq 0x1a0(%rsp), %rdx
callq 0x27c8
leaq 0x1a0(%rsp), %rdi
callq 0x2080
leaq 0xa79(%rip), %rsi       # 0x4080
leaq 0x180(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x17
popq %rsi
leaq 0x180(%rsp), %rdx
callq 0x27c8
leaq 0x180(%rsp), %rdi
callq 0x2080
leaq 0xa34(%rip), %rsi       # 0x4074
leaq 0x160(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x14
popq %rsi
leaq 0x160(%rsp), %rdx
callq 0x27c8
leaq 0x160(%rsp), %rdi
callq 0x2080
leaq 0x9ff(%rip), %rsi       # 0x4078
leaq 0x140(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x18
popq %rsi
leaq 0x140(%rsp), %rdx
callq 0x27c8
leaq 0x140(%rsp), %rdi
callq 0x2080
leaq 0x9c8(%rip), %rsi       # 0x407a
leaq 0x120(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x1c
popq %rsi
leaq 0x120(%rsp), %rdx
callq 0x27c8
leaq 0x120(%rsp), %rdi
callq 0x2080
leaq 0x9c8(%rip), %rsi       # 0x40b3
leaq 0x100(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x1b
popq %rsi
leaq 0x100(%rsp), %rdx
callq 0x27c8
leaq 0x100(%rsp), %rdi
callq 0x2080
leaq 0x958(%rip), %rsi       # 0x407c
leaq 0xe0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x15
popq %rsi
leaq 0xe0(%rsp), %rdx
callq 0x27c8
leaq 0xe0(%rsp), %rdi
callq 0x2080
leaq 0x925(%rip), %rsi       # 0x4082
leaq 0xc0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x10
popq %rsi
leaq 0xc0(%rsp), %rdx
callq 0x27c8
leaq 0xc0(%rsp), %rdi
callq 0x2080
leaq 0x8ee(%rip), %rsi       # 0x4084
leaq 0xa0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x17
popq %rsi
leaq 0xa0(%rsp), %rdx
callq 0x27c8
leaq 0xa0(%rsp), %rdi
callq 0x2080
leaq 0x8af(%rip), %rsi       # 0x407e
leaq 0x80(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x1a
popq %rsi
leaq 0x80(%rsp), %rdx
callq 0x27c8
leaq 0x80(%rsp), %rdi
callq 0x2080
leaq 0x878(%rip), %rsi       # 0x4080
leaq 0x60(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3b08
movq %rsp, %rdi
pushq $0x1d
popq %rsi
leaq 0x60(%rsp), %rdx
callq 0x27c8
leaq 0x60(%rsp), %rdi
callq 0x2080
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x10(%rsp), %rdi
movq %rsp, %rsi
pushq $0x1
popq %rdx
pushq $0x10
popq %rcx
callq 0x2946
leaq 0x18(%rsp), %r12
movq 0x10(%r12), %r15
movq 0x3772(%rip), %rbx      # 0x6fd8
leaq 0x819(%rip), %r14       # 0x4086
pushq $0xa
popq %rbp
cmpq %r12, %r15
je 0x38af
movl 0x20(%r15), %esi
movq %rbx, %rdi
callq 0x21c0
movq %rax, %rdi
movq %r14, %rsi
callq 0x2120
leaq 0x28(%r15), %rsi
movq %rax, %rdi
callq 0x2110
movq %rax, %rdi
movl %ebp, %esi
callq 0x2160
movq %r15, %rdi
callq 0x20c0
movq %rax, %r15
jmp 0x3870
movq %rsp, %rdi
pushq $0x10
popq %rsi
leaq 0x40(%rsp), %rdx
callq 0x2582
testb %al, %al
je 0x38dc
movq 0x370e(%rip), %rdi      # 0x6fd8
leaq 0x40(%rsp), %rsi
callq 0x2110
movq %rax, %rdi
callq 0x2090
leaq 0x10(%rsp), %rdi
callq 0x2b4c
leaq 0x40(%rsp), %rdi
callq 0x2080
xorl %eax, %eax
addq $0x380, %rsp            # imm = 0x380
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x3af6
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x140(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x160(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x1c0(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x1e0(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x200(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x220(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x280(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x2a0(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x2c0(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x2e0(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x300(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x320(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x340(%rsp), %rdi
jmp 0x3afb
jmp 0x3ae2
movq %rax, %rbx
leaq 0x360(%rsp), %rdi
jmp 0x3afb
movq %rax, %rbx
jmp 0x3b00
jmp 0x3ae9
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2b4c
leaq 0x40(%rsp), %rdi
callq 0x2080
movq %rbx, %rdi
callq 0x21d0