// File: /workspace/github_cpp_makefile_star2_O1/killwing[P]PTree/test.cpp
// Function: main
int main() {
    PTree<string> pt;    

    // normal get
    string name("Alice");
    pt.put("person.name", name);
    string nameOut = pt.get("person.name"); // assignment syntax
    assert(name == nameOut);
    string nameEx(pt.get<string>("person.name")); // explicit syntax, need convert explicitly
    assert(name == nameEx);
    assert(pt.isValidPath("person.name"));

    // const get
    const PTree<string>& cpt = pt;
    string nameOutC = cpt.get("person.name");
    assert(name == nameOutC);
    string nameExC;
    nameExC = cpt.get<string>("person.name");
    assert(name == nameExC);
    const string& nameRefC = cpt.get("person.name");
    assert(name == nameRefC);

    // ref get
    string& nameRef = pt.get("person.name");
    nameRef = "Bob";
    nameOut = pt.get<string>("person.name");
    assert(nameRef == nameOut);

    // other types
    int age = 25;
    pt.put("person.age", age);
    int ageOut(pt.get("person.age"));
    assert(age == ageOut);

    float height = 1.65;
    pt.put("person.height", height);
    float heightOut(pt.get("person.height"));
    assert(height == heightOut);

    Car car;
    car.color = "black";
    car.price = 50000;
    pt.put("person.car", car);
    Car carOut(pt.get("person.car"));
    assert(car.color == carOut.color);
    assert(car.price == carOut.price);

    // push as vector
    int income = 100;
    pt.push("person.deposit", income++);
    pt.push("person.deposit", income++);
    pt.push("person.deposit", income++);
    const std::vector<int>& sum = pt.get("person.deposit");
    assert(sum.size() == 3);

    // del
    string error;
    pt.del("person.name");
    try {
        pt.get("person.name");
    } catch (const PTreeError& e) {
        error = e.what();
        cout << "catched PTreeError: " << error << endl;
    }
    assert(!error.empty());
    assert(!pt.isValidPath("person.name"));

    cout << "all test passed" << endl;
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x838, %rsp            # imm = 0x838
leaq 0x40(%rsp), %rax
movl $0x0, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x28(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x4bf6(%rip), %rsi      # 0x7020
leaq 0x4bf4(%rip), %rdx      # 0x7025
leaq 0x18(%rsp), %rdi
callq 0x4906
leaq 0x4be4(%rip), %rsi      # 0x7026
leaq 0x7e8(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x7e8(%rsp), %rsi
leaq 0x18(%rsp), %rdx
callq 0x332c
leaq 0x7e8(%rsp), %rdi
callq 0x46de
leaq 0x4bac(%rip), %rsi      # 0x7026
leaq 0x798(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x798(%rsp), %rsi
callq 0x3550
leaq 0x88(%rsp), %rdi
movq %rax, (%rdi)
callq 0x372a
leaq 0xc0(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0xb0(%rsp), %rdi
callq 0x4996
leaq 0x798(%rsp), %rdi
callq 0x46de
movq 0x20(%rsp), %rdx
cmpq 0xb8(%rsp), %rdx
jne 0x2dc9
testq %rdx, %rdx
je 0x250b
movq 0xb0(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x21a0
testl %eax, %eax
jne 0x2dc9
leaq 0x4b14(%rip), %rsi      # 0x7026
leaq 0x748(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x748(%rsp), %rsi
callq 0x37e4
leaq 0x120(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x110(%rsp), %rdi
callq 0x4996
leaq 0x748(%rsp), %rdi
callq 0x46de
movq 0x20(%rsp), %rdx
cmpq 0x118(%rsp), %rdx
jne 0x2de8
testq %rdx, %rdx
je 0x2593
movq 0x110(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x21a0
testl %eax, %eax
jne 0x2de8
leaq 0x4a8c(%rip), %rsi      # 0x7026
leaq 0x6f8(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x6f8(%rsp), %rsi
callq 0x383e
testb %al, %al
je 0x2ea2
leaq 0x6f8(%rsp), %rdi
callq 0x46de
leaq 0x4a51(%rip), %rsi      # 0x7026
leaq 0x6a8(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x6a8(%rsp), %rsi
callq 0x3916
leaq 0x88(%rsp), %rdi
movq %rax, (%rdi)
callq 0x3af0
leaq 0x100(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0xf0(%rsp), %rdi
callq 0x4996
leaq 0x6a8(%rsp), %rdi
callq 0x46de
movq 0x20(%rsp), %rdx
cmpq 0xf8(%rsp), %rdx
jne 0x2e07
testq %rdx, %rdx
je 0x2666
movq 0xf0(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x21a0
testl %eax, %eax
jne 0x2e07
leaq 0xe0(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x49a2(%rip), %rsi      # 0x7026
leaq 0x658(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x658(%rsp), %rsi
callq 0x3baa
leaq 0xd0(%rsp), %rdi
movq %rax, %rsi
callq 0x20d0
leaq 0x658(%rsp), %rdi
callq 0x46de
movq 0x20(%rsp), %rdx
cmpq 0xd8(%rsp), %rdx
jne 0x2e26
testq %rdx, %rdx
je 0x26f2
movq 0xd0(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x21a0
testl %eax, %eax
jne 0x2e26
leaq 0x492d(%rip), %rsi      # 0x7026
leaq 0x608(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x608(%rsp), %rsi
callq 0x3916
leaq 0x88(%rsp), %rdi
movq %rax, (%rdi)
callq 0x3c04
movq %rax, %rbx
leaq 0x608(%rsp), %rdi
callq 0x46de
movq 0x20(%rsp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x2e45
testq %rdx, %rdx
je 0x2761
movq (%rbx), %rsi
movq 0x18(%rsp), %rdi
callq 0x21a0
testl %eax, %eax
jne 0x2e45
leaq 0x48be(%rip), %rsi      # 0x7026
leaq 0x5b8(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x5b8(%rsp), %rsi
callq 0x3550
leaq 0x88(%rsp), %rdi
movq %rax, (%rdi)
callq 0x372a
movq %rax, %rbx
leaq 0x5b8(%rsp), %rdi
callq 0x46de
movq 0x8(%rbx), %rdx
leaq 0x48e5(%rip), %rcx      # 0x7097
movl $0x3, %r8d
movq %rbx, %rdi
xorl %esi, %esi
callq 0x2230
leaq 0x485d(%rip), %rsi      # 0x7026
leaq 0x568(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x568(%rsp), %rsi
callq 0x37e4
leaq 0xb0(%rsp), %rdi
movq %rax, %rsi
callq 0x20d0
leaq 0x568(%rsp), %rdi
callq 0x46de
movq 0x8(%rbx), %rdx
cmpq 0xb8(%rsp), %rdx
jne 0x2e64
testq %rdx, %rdx
je 0x2834
movq 0xb0(%rsp), %rsi
movq (%rbx), %rdi
callq 0x21a0
testl %eax, %eax
jne 0x2e64
movl $0x19, 0xc(%rsp)
leaq 0x486b(%rip), %rsi      # 0x70ae
leaq 0x518(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x518(%rsp), %rsi
leaq 0xc(%rsp), %rdx
callq 0x3cbe
leaq 0x518(%rsp), %rdi
callq 0x46de
leaq 0x4833(%rip), %rsi      # 0x70ae
leaq 0x4c8(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x4c8(%rsp), %rsi
callq 0x3550
leaq 0x88(%rsp), %rdi
movq %rax, (%rdi)
callq 0x3e28
movl (%rax), %ebx
leaq 0x4c8(%rsp), %rdi
callq 0x46de
cmpl %ebx, 0xc(%rsp)
jne 0x2ec1
movl $0x3fd33333, 0x8(%rsp)  # imm = 0x3FD33333
leaq 0x47f5(%rip), %rsi      # 0x70c7
leaq 0x478(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x478(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3ee2
leaq 0x478(%rsp), %rdi
callq 0x46de
leaq 0x47bd(%rip), %rsi      # 0x70c7
leaq 0x428(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x3550
leaq 0x88(%rsp), %rdi
movq %rax, (%rdi)
callq 0x404c
movss (%rax), %xmm0
movss %xmm0, 0x10(%rsp)
leaq 0x428(%rsp), %rdi
callq 0x46de
movss 0x8(%rsp), %xmm0
ucomiss 0x10(%rsp), %xmm0
jne 0x2ee0
jp 0x2ee0
leaq 0x98(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
leaq 0x4763(%rip), %rcx      # 0x70e9
leaq 0x88(%rsp), %rdi
movl $0x5, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x2230
movl $0xc350, 0xa8(%rsp) # imm = 0xC350
leaq 0x4740(%rip), %rsi      # 0x70ef
leaq 0x3d8(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x3d8(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x4106
leaq 0x3d8(%rsp), %rdi
callq 0x46de
leaq 0x4705(%rip), %rsi      # 0x70ef
leaq 0x388(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x388(%rsp), %rsi
callq 0x3550
leaq 0x68(%rsp), %rdi
movq %rax, (%rdi)
callq 0x4270
movq %rax, %rbx
leaq 0x140(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x130(%rsp), %rdi
callq 0x4996
movl 0x20(%rbx), %eax
movl %eax, 0x150(%rsp)
leaq 0x388(%rsp), %rdi
callq 0x46de
movq 0x90(%rsp), %rdx
cmpq 0x138(%rsp), %rdx
jne 0x2e83
testq %rdx, %rdx
je 0x2a8c
movq 0x130(%rsp), %rsi
movq 0x88(%rsp), %rdi
callq 0x21a0
testl %eax, %eax
jne 0x2e83
movl 0xa8(%rsp), %eax
cmpl 0x150(%rsp), %eax
jne 0x2eff
leaq 0x4687(%rip), %rsi      # 0x712e
leaq 0x338(%rsp), %rdi
callq 0x3496
leaq 0x68(%rsp), %rdx
movl $0x64, (%rdx)
leaq 0x38(%rsp), %rdi
leaq 0x338(%rsp), %rsi
callq 0x432a
leaq 0x338(%rsp), %rdi
callq 0x46de
leaq 0x4649(%rip), %rsi      # 0x712e
leaq 0x2e8(%rsp), %rdi
callq 0x3496
leaq 0x68(%rsp), %rdx
movl $0x65, (%rdx)
leaq 0x38(%rsp), %rdi
leaq 0x2e8(%rsp), %rsi
callq 0x432a
leaq 0x2e8(%rsp), %rdi
callq 0x46de
leaq 0x460b(%rip), %rsi      # 0x712e
leaq 0x298(%rsp), %rdi
callq 0x3496
leaq 0x68(%rsp), %rdx
movl $0x66, (%rdx)
leaq 0x38(%rsp), %rdi
leaq 0x298(%rsp), %rsi
callq 0x432a
leaq 0x298(%rsp), %rdi
callq 0x46de
leaq 0x45cd(%rip), %rsi      # 0x712e
leaq 0x248(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x248(%rsp), %rsi
callq 0x3550
leaq 0x68(%rsp), %rdi
movq %rax, (%rdi)
callq 0x453a
movq %rax, %rbx
leaq 0x248(%rsp), %rdi
callq 0x46de
movq 0x8(%rbx), %rax
subq (%rbx), %rax
cmpq $0xc, %rax
jne 0x2f1e
leaq 0x78(%rsp), %r13
movq %r13, -0x10(%r13)
movq $0x0, -0x8(%r13)
movb $0x0, (%r13)
leaq 0x445b(%rip), %rsi      # 0x7026
leaq 0x1f8(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0x45f4
leaq 0x1f8(%rsp), %rdi
callq 0x46de
leaq 0x4428(%rip), %rsi      # 0x7026
leaq 0x1a8(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0x3550
leaq 0x1a8(%rsp), %rdi
callq 0x46de
cmpq $0x0, 0x70(%rsp)
je 0x2f3d
leaq 0x43e9(%rip), %rsi      # 0x7026
leaq 0x158(%rsp), %rdi
callq 0x3496
leaq 0x38(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x383e
testb %al, %al
jne 0x2f5c
leaq 0x158(%rsp), %rdi
callq 0x46de
movq 0x8358(%rip), %rbx      # 0xafd0
leaq 0x4511(%rip), %rsi      # 0x7190
movl $0xf, %edx
movq %rbx, %rdi
callq 0x21d0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2170
movsbl %al, %esi
movq 0x8326(%rip), %rdi      # 0xafd0
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x2cce
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x130(%rsp), %rdi
cmpq %r12, %rdi
je 0x2ceb
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
leaq 0x120(%rsp), %rbx
leaq 0x100(%rsp), %r15
leaq 0xe0(%rsp), %r12
je 0x2d20
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0xd0(%rsp), %rdi
cmpq %r12, %rdi
je 0x2d3d
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0xf0(%rsp), %rdi
cmpq %r15, %rdi
je 0x2d5a
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x110(%rsp), %rdi
cmpq %rbx, %rdi
je 0x2d77
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0xb0(%rsp), %rdi
cmpq %r14, %rdi
je 0x2d94
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x18(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2dab
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x38(%rsp), %rdi
callq 0x487c
xorl %eax, %eax
addq $0x838, %rsp            # imm = 0x838
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4262(%rip), %rdi      # 0x7032
leaq 0x426b(%rip), %rsi      # 0x7042
leaq 0x426d(%rip), %rcx      # 0x704b
movl $0x14, %edx
callq 0x20f0
leaq 0x4267(%rip), %rdi      # 0x7056
leaq 0x424c(%rip), %rsi      # 0x7042
leaq 0x424e(%rip), %rcx      # 0x704b
movl $0x16, %edx
callq 0x20f0
leaq 0x4257(%rip), %rdi      # 0x7065
leaq 0x422d(%rip), %rsi      # 0x7042
leaq 0x422f(%rip), %rcx      # 0x704b
movl $0x1c, %edx
callq 0x20f0
leaq 0x4249(%rip), %rdi      # 0x7076
leaq 0x420e(%rip), %rsi      # 0x7042
leaq 0x4210(%rip), %rcx      # 0x704b
movl $0x1f, %edx
callq 0x20f0
leaq 0x423a(%rip), %rdi      # 0x7086
leaq 0x41ef(%rip), %rsi      # 0x7042
leaq 0x41f1(%rip), %rcx      # 0x704b
movl $0x21, %edx
callq 0x20f0
leaq 0x4230(%rip), %rdi      # 0x709b
leaq 0x41d0(%rip), %rsi      # 0x7042
leaq 0x41d2(%rip), %rcx      # 0x704b
movl $0x27, %edx
callq 0x20f0
leaq 0x4270(%rip), %rdi      # 0x70fa
leaq 0x41b1(%rip), %rsi      # 0x7042
leaq 0x41b3(%rip), %rcx      # 0x704b
movl $0x39, %edx
callq 0x20f0
leaq 0x42c9(%rip), %rdi      # 0x7172
leaq 0x4192(%rip), %rsi      # 0x7042
leaq 0x4194(%rip), %rcx      # 0x704b
movl $0x17, %edx
callq 0x20f0
leaq 0x41f1(%rip), %rdi      # 0x70b9
leaq 0x4173(%rip), %rsi      # 0x7042
leaq 0x4175(%rip), %rcx      # 0x704b
movl $0x2d, %edx
callq 0x20f0
leaq 0x41ee(%rip), %rdi      # 0x70d5
leaq 0x4154(%rip), %rsi      # 0x7042
leaq 0x4156(%rip), %rcx      # 0x704b
movl $0x32, %edx
callq 0x20f0
leaq 0x420e(%rip), %rdi      # 0x7114
leaq 0x4135(%rip), %rsi      # 0x7042
leaq 0x4137(%rip), %rcx      # 0x704b
movl $0x3a, %edx
callq 0x20f0
leaq 0x4218(%rip), %rdi      # 0x713d
leaq 0x4116(%rip), %rsi      # 0x7042
leaq 0x4118(%rip), %rcx      # 0x704b
movl $0x42, %edx
callq 0x20f0
leaq 0x421e(%rip), %rdi      # 0x7162
leaq 0x40f7(%rip), %rsi      # 0x7042
leaq 0x40f9(%rip), %rcx      # 0x704b
movl $0x4d, %edx
callq 0x20f0
leaq 0x420e(%rip), %rdi      # 0x7171
leaq 0x40d8(%rip), %rsi      # 0x7042
leaq 0x40da(%rip), %rcx      # 0x704b
movl $0x4e, %edx
callq 0x20f0
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
jmp 0x3038
movq %rdx, 0x10(%rsp)
movq %rax, %rbx
leaq 0x1a8(%rsp), %rdi
callq 0x46de
jmp 0x2faa
movq %rdx, 0x10(%rsp)
movq %rax, %rbx
cmpl $0x1, 0x10(%rsp)
jne 0x31e7
movq %rbx, %rdi
callq 0x2080
movq (%rax), %rcx
movq %rax, %rdi
callq *0x10(%rcx)
leaq 0x68(%rsp), %rdi
movq %rax, %rsi
callq 0x21f0
movq 0x7ff6(%rip), %rdi      # 0xafd0
leaq 0x416c(%rip), %rsi      # 0x714d
movl $0x14, %edx
callq 0x21d0
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
movq 0x7fd4(%rip), %rdi      # 0xafd0
callq 0x21d0
movq %rax, %rdi
callq 0x20a0
callq 0x2250
jmp 0x2c2a
jmp 0x31e4
movq %rax, %rbx
callq 0x2250
jmp 0x31e7
movq %rax, %rdi
callq 0x46d2
movq %rax, %rbx
leaq 0x1f8(%rsp), %rdi
callq 0x46de
jmp 0x31e7
jmp 0x31a3
movq %rax, %rbx
leaq 0x298(%rsp), %rdi
jmp 0x311e
movq %rax, %rbx
leaq 0x2e8(%rsp), %rdi
jmp 0x311e
movq %rax, %rbx
leaq 0x338(%rsp), %rdi
jmp 0x311e
jmp 0x3128
movq %rax, %rbx
leaq 0x3d8(%rsp), %rdi
jmp 0x31b3
jmp 0x3157
movq %rax, %rbx
leaq 0x478(%rsp), %rdi
jmp 0x3184
jmp 0x3157
jmp 0x3157
movq %rax, %rbx
leaq 0x518(%rsp), %rdi
jmp 0x3184
jmp 0x3157
jmp 0x3157
jmp 0x3157
jmp 0x3157
jmp 0x30e1
movq %rax, %rbx
leaq 0x6f8(%rsp), %rdi
jmp 0x31c5
movq %rax, %rbx
jmp 0x3282
movq %rax, %rbx
jmp 0x32a7
jmp 0x3103
movq %rax, %rbx
leaq 0x7e8(%rsp), %rdi
jmp 0x31da
movq %rax, %rbx
jmp 0x32c4
movq %rax, %rbx
jmp 0x32db
movq %rax, %rbx
leaq 0x248(%rsp), %rdi
callq 0x46de
jmp 0x31fe
movq %rax, %rbx
jmp 0x321b
movq %rax, %rbx
leaq 0x428(%rsp), %rdi
jmp 0x3184
movq %rax, %rbx
leaq 0x4c8(%rsp), %rdi
jmp 0x3184
movq %rax, %rbx
leaq 0x568(%rsp), %rdi
jmp 0x3184
movq %rax, %rbx
jmp 0x3238
movq %rax, %rbx
leaq 0x5b8(%rsp), %rdi
jmp 0x3184
movq %rax, %rbx
leaq 0x608(%rsp), %rdi
jmp 0x3184
movq %rax, %rbx
leaq 0x658(%rsp), %rdi
callq 0x46de
jmp 0x3238
movq %rax, %rbx
leaq 0x748(%rsp), %rdi
callq 0x46de
jmp 0x32a7
movq %rax, %rbx
jmp 0x31fe
movq %rax, %rbx
leaq 0x388(%rsp), %rdi
callq 0x46de
jmp 0x321b
movq %rax, %rbx
leaq 0x6a8(%rsp), %rdi
callq 0x46de
jmp 0x3282
movq %rax, %rbx
leaq 0x798(%rsp), %rdi
callq 0x46de
jmp 0x32c4
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x31fe
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x130(%rsp), %rdi
cmpq %r12, %rdi
je 0x321b
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x3238
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x325d
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x3282
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x110(%rsp), %rdi
leaq 0x120(%rsp), %rax
cmpq %rax, %rdi
je 0x32a7
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0xb0(%rsp), %rdi
cmpq %r14, %rdi
je 0x32c4
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x18(%rsp), %rdi
cmpq %rbp, %rdi
je 0x32db
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x38(%rsp), %rdi
callq 0x487c
movq %rbx, %rdi
callq 0x2280
nop