// File: /workspace/github_cpp_makefile_star2_O1/MechaDragonX[P]CPPCollections/main.cpp
// Function: main
int main() {
    Student rags("Raghav", "Vivek");
    rags.addCourse("math");
    rags.addCourse("cs");
    rags.addCourse("eng");
    std::cout << rags.toString(true) << std::endl;

    Student syke1("Dylan", "Sykes");
    syke1.addCourse("math");
    syke1.addCourse("eng");
    std::cout << syke1.toString(true) << std::endl;

    Student syke2("Mason", "Sykes");
    syke2.addCourse("math");
    syke2.addCourse("cs");
    std::cout << syke2.toString(true) << std::endl;

    Student surnameLacking("Ashley", "Koch");
    surnameLacking.addCourse("math");
    surnameLacking.addCourse("eng");
    std::cout << surnameLacking.toString(true) << std::endl;

    Student knob("Jake", "Knabner");
    knob.addCourse("cs");
    knob.addCourse("eng");
    std::cout << knob.toString(true) << std::endl << std::endl;

    // DoubleLinkedList<Student> collection = doubleLinkedListStuff(rags, syke1, syke2, surnameLacking, knob);
    // LinkedList<Student> collection = linkedListStuff(rags, syke1, syke2, surnameLacking, knob);
    // Queue<Student> collection = queueStuff(rags, syke1, syke2, surnameLacking, knob);
    Stack<Student> collection = stackStuff(rags, syke1, syke2, surnameLacking, knob);

    std::cout << "Is Mason Sykes alive? ";
    bool alive = collection.exists(syke2);
    if(alive)
        std::cout << "Yes" << std::endl;
    else
        std::cout << "No" << std::endl;

    std::cout << "Is the character that didn't have a last name until today (Ashley) alive? ";
    alive = collection.exists(surnameLacking);
    if(alive)
        std::cout << "Yes" << std::endl;
    else
        std::cout << "No" << std::endl;

    // collection.~DoubleLinkedList();
    // if(collection.toString() == "")
    //     std::cout << "All values and deleted and memory deallocated successfully!" << std::endl;
    // else
    //     std::cout << "Oh no! Something bad happened! This could be a memory leak....." << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x6e8, %rsp            # imm = 0x6E8
leaq -0x438(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1e03(%rip), %rsi      # 0x104a1
leaq 0x1e02(%rip), %rdx      # 0x104a7
leaq -0x448(%rbp), %rdi
callq 0x5bd8
leaq -0x418(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x1de5(%rip), %rsi      # 0x104a8
leaq 0x1de3(%rip), %rdx      # 0x104ad
leaq -0x428(%rbp), %rdi
callq 0x5bd8
leaq -0x6b0(%rbp), %rdi
leaq -0x448(%rbp), %rsi
leaq -0x428(%rbp), %rdx
callq 0xb80a
movq -0x428(%rbp), %rdi
cmpq %r14, %rdi
je 0xe70b
movq -0x418(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x448(%rbp), %rdi
cmpq %rbx, %rdi
je 0xe726
movq -0x438(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x3f8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1d76(%rip), %rsi      # 0x104ae
leaq 0x1d73(%rip), %rdx      # 0x104b2
leaq -0x408(%rbp), %rdi
callq 0x5bd8
leaq -0x6b0(%rbp), %rdi
leaq -0x408(%rbp), %rsi
callq 0xb99e
movq -0x408(%rbp), %rdi
cmpq %rbx, %rdi
je 0xe779
movq -0x3f8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x3d8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1d28(%rip), %rsi      # 0x104b3
leaq 0x1d23(%rip), %rdx      # 0x104b5
leaq -0x3e8(%rbp), %rdi
callq 0x5bd8
leaq -0x6b0(%rbp), %rdi
leaq -0x3e8(%rbp), %rsi
callq 0xb99e
movq -0x3e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xe7cc
movq -0x3d8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x3b8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1cd8(%rip), %rsi      # 0x104b6
leaq 0x1cd4(%rip), %rdx      # 0x104b9
leaq -0x3c8(%rbp), %rdi
callq 0x5bd8
leaq -0x6b0(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0xb99e
movq -0x3c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xe81f
movq -0x3b8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x1a8(%rbp), %rdi
leaq -0x6b0(%rbp), %rsi
movl $0x1, %edx
callq 0xba6a
movq -0x1a8(%rbp), %rsi
movq -0x1a0(%rbp), %rdx
movq 0x878c(%rip), %rdi      # 0x16fd8
callq 0x3160
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3120
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x30d0
leaq -0x198(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xe89a
movq -0x198(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x398(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1c0e(%rip), %rsi      # 0x104ba
leaq 0x1c0c(%rip), %rdx      # 0x104bf
leaq -0x3a8(%rbp), %rdi
callq 0x5bd8
leaq -0x378(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x1bef(%rip), %rsi      # 0x104c0
leaq 0x1bed(%rip), %rdx      # 0x104c5
leaq -0x388(%rbp), %rdi
callq 0x5bd8
leaq -0x1a8(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
leaq -0x388(%rbp), %rdx
callq 0xb80a
movq -0x388(%rbp), %rdi
cmpq %r14, %rdi
je 0xe919
movq -0x378(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x3a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xe934
movq -0x398(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x358(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1b68(%rip), %rsi      # 0x104ae
leaq 0x1b65(%rip), %rdx      # 0x104b2
leaq -0x368(%rbp), %rdi
callq 0x5bd8
leaq -0x1a8(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0xb99e
movq -0x368(%rbp), %rdi
cmpq %rbx, %rdi
je 0xe987
movq -0x358(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x338(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1b1d(%rip), %rsi      # 0x104b6
leaq 0x1b19(%rip), %rdx      # 0x104b9
leaq -0x348(%rbp), %rdi
callq 0x5bd8
leaq -0x1a8(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0xb99e
movq -0x348(%rbp), %rdi
cmpq %rbx, %rdi
je 0xe9da
movq -0x338(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0xd8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
movl $0x1, %edx
callq 0xba6a
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
movq 0x85d1(%rip), %rdi      # 0x16fd8
callq 0x3160
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3120
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x30d0
leaq -0xc8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xea55
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x318(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1a5f(%rip), %rsi      # 0x104c6
leaq 0x1a5d(%rip), %rdx      # 0x104cb
leaq -0x328(%rbp), %rdi
callq 0x5bd8
leaq -0x2f8(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x1a34(%rip), %rsi      # 0x104c0
leaq 0x1a32(%rip), %rdx      # 0x104c5
leaq -0x308(%rbp), %rdi
callq 0x5bd8
leaq -0xd8(%rbp), %rdi
leaq -0x328(%rbp), %rsi
leaq -0x308(%rbp), %rdx
callq 0xb80a
movq -0x308(%rbp), %rdi
cmpq %r14, %rdi
je 0xead4
movq -0x2f8(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x328(%rbp), %rdi
cmpq %rbx, %rdi
je 0xeaef
movq -0x318(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x2d8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x19ad(%rip), %rsi      # 0x104ae
leaq 0x19aa(%rip), %rdx      # 0x104b2
leaq -0x2e8(%rbp), %rdi
callq 0x5bd8
leaq -0xd8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0xb99e
movq -0x2e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xeb42
movq -0x2d8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x2b8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x195f(%rip), %rsi      # 0x104b3
leaq 0x195a(%rip), %rdx      # 0x104b5
leaq -0x2c8(%rbp), %rdi
callq 0x5bd8
leaq -0xd8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0xb99e
movq -0x2c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xeb95
movq -0x2b8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x80(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
movl $0x1, %edx
callq 0xba6a
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x841f(%rip), %rdi      # 0x16fd8
callq 0x3160
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3120
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x30d0
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xec01
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x298(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x18b9(%rip), %rsi      # 0x104cc
leaq 0x18b8(%rip), %rdx      # 0x104d2
leaq -0x2a8(%rbp), %rdi
callq 0x5bd8
leaq -0x278(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x189b(%rip), %rsi      # 0x104d3
leaq 0x1898(%rip), %rdx      # 0x104d7
leaq -0x288(%rbp), %rdi
callq 0x5bd8
leaq -0x80(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
leaq -0x288(%rbp), %rdx
callq 0xb80a
movq -0x288(%rbp), %rdi
cmpq %r14, %rdi
je 0xec7d
movq -0x278(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x2a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xec98
movq -0x298(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x258(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1804(%rip), %rsi      # 0x104ae
leaq 0x1801(%rip), %rdx      # 0x104b2
leaq -0x268(%rbp), %rdi
callq 0x5bd8
leaq -0x80(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0xb99e
movq -0x268(%rbp), %rdi
cmpq %rbx, %rdi
je 0xece8
movq -0x258(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x238(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x17bc(%rip), %rsi      # 0x104b6
leaq 0x17b8(%rip), %rdx      # 0x104b9
leaq -0x248(%rbp), %rdi
callq 0x5bd8
leaq -0x80(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0xb99e
movq -0x248(%rbp), %rdi
cmpq %rbx, %rdi
je 0xed38
movq -0x238(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x150(%rbp), %rdi
leaq -0x80(%rbp), %rsi
movl $0x1, %edx
callq 0xba6a
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
movq 0x8276(%rip), %rdi      # 0x16fd8
callq 0x3160
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3120
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x30d0
leaq -0x140(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xedb0
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x218(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1716(%rip), %rsi      # 0x104d8
leaq 0x1713(%rip), %rdx      # 0x104dc
leaq -0x228(%rbp), %rdi
callq 0x5bd8
leaq -0x1f8(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x16f6(%rip), %rsi      # 0x104dd
leaq 0x16f6(%rip), %rdx      # 0x104e4
leaq -0x208(%rbp), %rdi
callq 0x5bd8
leaq -0x150(%rbp), %rdi
leaq -0x228(%rbp), %rsi
leaq -0x208(%rbp), %rdx
callq 0xb80a
movq -0x208(%rbp), %rdi
cmpq %r14, %rdi
je 0xee2f
movq -0x1f8(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x228(%rbp), %rdi
cmpq %rbx, %rdi
je 0xee4a
movq -0x218(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x1d8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1657(%rip), %rsi      # 0x104b3
leaq 0x1652(%rip), %rdx      # 0x104b5
leaq -0x1e8(%rbp), %rdi
callq 0x5bd8
leaq -0x150(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0xb99e
movq -0x1e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xee9d
movq -0x1d8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x1b8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1607(%rip), %rsi      # 0x104b6
leaq 0x1603(%rip), %rdx      # 0x104b9
leaq -0x1c8(%rbp), %rdi
callq 0x5bd8
leaq -0x150(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0xb99e
movq -0x1c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xeef0
movq -0x1b8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0xf8(%rbp), %rdi
leaq -0x150(%rbp), %rsi
movl $0x1, %edx
callq 0xba6a
movq -0xf8(%rbp), %rsi
movq -0xf0(%rbp), %rdx
movq 0x80bb(%rip), %rdi      # 0x16fd8
callq 0x3160
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3120
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x30d0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3120
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x30d0
leaq -0xe8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xef95
movq -0xe8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x5f0(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0x6b0(%rbp), %rsi
movq -0x6a8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x600(%rbp), %rdi
callq 0x5950
leaq -0x5e0(%rbp), %rdi
leaq -0x5d0(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x690(%rbp), %rsi
movq -0x688(%rbp), %rdx
addq %rsi, %rdx
callq 0x5950
leaq -0x5c0(%rbp), %rdi
leaq -0x670(%rbp), %rsi
callq 0x59f8
leaq -0x4e8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x1a8(%rbp), %rsi
movq -0x1a0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4f8(%rbp), %rdi
callq 0x5950
leaq -0x4d8(%rbp), %rdi
leaq -0x4c8(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x188(%rbp), %rsi
movq -0x180(%rbp), %rdx
addq %rsi, %rdx
callq 0x5950
leaq -0x4b8(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x59f8
leaq -0x490(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4a0(%rbp), %rdi
callq 0x5950
leaq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
callq 0x5950
leaq -0x460(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x59f8
leaq -0x648(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
addq %rsi, %rdx
leaq -0x658(%rbp), %rdi
callq 0x5950
leaq -0x638(%rbp), %rdi
leaq -0x628(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
addq %rsi, %rdx
callq 0x5950
leaq -0x618(%rbp), %r15
leaq -0x40(%rbp), %rsi
movq %r15, %rdi
callq 0x59f8
leaq -0x598(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5a8(%rbp), %rdi
callq 0x5950
movq %r12, %rbx
leaq -0x588(%rbp), %rdi
leaq -0x578(%rbp), %r13
movq %r13, -0x10(%r13)
movq -0x130(%rbp), %rsi
movq -0x128(%rbp), %rdx
addq %rsi, %rdx
callq 0x5950
leaq -0x568(%rbp), %r12
leaq -0x110(%rbp), %rsi
movq %r12, %rdi
callq 0x59f8
leaq -0xf8(%rbp), %rdi
leaq -0x600(%rbp), %rsi
leaq -0x4f8(%rbp), %rdx
leaq -0x4a0(%rbp), %rcx
leaq -0x658(%rbp), %r8
leaq -0x5a8(%rbp), %r9
callq 0xe055
movq %r12, %rdi
callq 0x5b6e
movq -0x588(%rbp), %rdi
cmpq %r13, %rdi
je 0xf1d1
movq -0x578(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x5a8(%rbp), %rdi
leaq -0x598(%rbp), %rax
cmpq %rax, %rdi
movq %rbx, %r12
leaq -0x4b8(%rbp), %rbx
leaq -0x460(%rbp), %r13
je 0xf204
movq -0x598(%rbp), %rsi
incq %rsi
callq 0x3140
movq %r15, %rdi
callq 0x5b6e
movq -0x638(%rbp), %rdi
leaq -0x628(%rbp), %rax
cmpq %rax, %rdi
je 0xf22e
movq -0x628(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x658(%rbp), %rdi
cmpq %r14, %rdi
je 0xf249
movq -0x648(%rbp), %rsi
incq %rsi
callq 0x3140
movq %r13, %rdi
callq 0x5b6e
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0xf273
movq -0x470(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x4a0(%rbp), %rdi
leaq -0x490(%rbp), %rax
cmpq %rax, %rdi
je 0xf295
movq -0x490(%rbp), %rsi
incq %rsi
callq 0x3140
movq %rbx, %rdi
callq 0x5b6e
movq -0x4d8(%rbp), %rdi
leaq -0x4c8(%rbp), %rax
cmpq %rax, %rdi
je 0xf2bf
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x4f8(%rbp), %rdi
leaq -0x4e8(%rbp), %rax
cmpq %rax, %rdi
je 0xf2e1
movq -0x4e8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x5c0(%rbp), %rdi
callq 0x5b6e
movq -0x5e0(%rbp), %rdi
leaq -0x5d0(%rbp), %rax
cmpq %rax, %rdi
je 0xf30f
movq -0x5d0(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x600(%rbp), %rdi
cmpq %r12, %rdi
je 0xf32a
movq -0x5f0(%rbp), %rsi
incq %rsi
callq 0x3140
movq 0x7ca7(%rip), %rdi      # 0x16fd8
leaq 0x11ad(%rip), %rsi      # 0x104e5
movl $0x16, %edx
callq 0x3160
leaq -0x6f8(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x708(%rbp), %rdi
callq 0x5950
leaq -0x6e8(%rbp), %rdi
leaq -0x6d8(%rbp), %r13
movq %r13, -0x10(%r13)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
callq 0x5950
leaq -0x6c8(%rbp), %rbx
movq %rbx, %rdi
leaq -0x98(%rbp), %rsi
callq 0x59f8
leaq -0xf8(%rbp), %rdi
leaq -0x708(%rbp), %rsi
callq 0xb362
movl %eax, %r14d
movq %rbx, %rdi
callq 0x5b6e
movq -0x6e8(%rbp), %rdi
cmpq %r13, %rdi
je 0xf3e2
movq -0x6d8(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x708(%rbp), %rdi
cmpq %r12, %rdi
je 0xf3fd
movq -0x6f8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq 0x10f8(%rip), %r13      # 0x104fc
leaq 0x10f5(%rip), %rbx      # 0x10500
testb %r14b, %r14b
movq %rbx, %rsi
cmovneq %r13, %rsi
movzbl %r14b, %edx
orq $0x2, %rdx
movq 0x7bb4(%rip), %r14      # 0x16fd8
movq %r14, %rdi
callq 0x3160
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x3120
movsbl %al, %esi
movq 0x7b8e(%rip), %rdi      # 0x16fd8
callq 0x3030
movq %rax, %rdi
callq 0x30d0
movq 0x7b7a(%rip), %rdi      # 0x16fd8
leaq 0x109e(%rip), %rsi      # 0x10503
movl $0x4a, %edx
callq 0x3160
leaq -0x540(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
addq %rsi, %rdx
leaq -0x550(%rbp), %rdi
callq 0x5950
leaq -0x530(%rbp), %rdi
leaq -0x520(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
addq %rsi, %rdx
callq 0x5950
leaq -0x510(%rbp), %r15
movq %r15, %rdi
leaq -0x40(%rbp), %rsi
callq 0x59f8
leaq -0xf8(%rbp), %rdi
leaq -0x550(%rbp), %rsi
callq 0xb362
movl %eax, %r14d
movq %r15, %rdi
callq 0x5b6e
movq -0x530(%rbp), %rdi
cmpq %r12, %rdi
je 0xf500
movq -0x520(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x550(%rbp), %rdi
leaq -0x540(%rbp), %rax
cmpq %rax, %rdi
je 0xf522
movq -0x540(%rbp), %rsi
incq %rsi
callq 0x3140
testb %r14b, %r14b
cmovneq %r13, %rbx
movzbl %r14b, %edx
orq $0x2, %rdx
movq 0x7aa0(%rip), %r14      # 0x16fd8
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3160
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x3120
movsbl %al, %esi
movq 0x7a77(%rip), %rdi      # 0x16fd8
callq 0x3030
movq %rax, %rdi
callq 0x30d0
leaq -0x110(%rbp), %rdi
callq 0x5b6e
leaq -0x120(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xf599
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
leaq -0x198(%rbp), %rbx
leaq -0xc8(%rbp), %r14
leaq -0x70(%rbp), %r15
leaq -0x670(%rbp), %r12
je 0xf5d4
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x40(%rbp), %rdi
callq 0x5b6e
leaq -0x50(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xf5f6
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x80(%rbp), %rdi
cmpq %r15, %rdi
je 0xf60b
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x98(%rbp), %rdi
callq 0x5b6e
leaq -0xa8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xf636
movq -0xa8(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0xd8(%rbp), %rdi
cmpq %r14, %rdi
je 0xf651
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x168(%rbp), %rdi
callq 0x5b6e
leaq -0x178(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xf67c
movq -0x178(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x1a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xf697
movq -0x198(%rbp), %rsi
incq %rsi
callq 0x3140
movq %r12, %rdi
callq 0x5b6e
leaq -0x680(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xf6be
movq -0x680(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x6a0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xf6dd
movq -0x6a0(%rbp), %rsi
incq %rsi
callq 0x3140
xorl %eax, %eax
addq $0x6e8, %rsp            # imm = 0x6E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
leaq -0x550(%rbp), %rdi
jmp 0xf85f
movq %rax, %r15
movq -0x530(%rbp), %rdi
cmpq %r12, %rdi
je 0xf723
movq -0x520(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf723
movq %rax, %r15
movq -0x550(%rbp), %rdi
leaq -0x540(%rbp), %rax
cmpq %rax, %rdi
je 0xfce1
movq -0x540(%rbp), %rsi
jmp 0xfcd4
movq %rax, %r15
leaq -0x708(%rbp), %rdi
jmp 0xf85f
movq %rax, %r15
movq -0x6e8(%rbp), %rdi
cmpq %r13, %rdi
je 0xf778
movq -0x6d8(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf778
movq %rax, %r15
movq -0x708(%rbp), %rdi
cmpq %r12, %rdi
je 0xfce1
movq -0x6f8(%rbp), %rsi
jmp 0xfcd4
movq %rax, %r15
leaq -0x5a8(%rbp), %rdi
callq 0xfd22
jmp 0xf7ef
movq %rax, %r15
movq -0x588(%rbp), %rdi
cmpq %r13, %rdi
je 0xf7c8
movq -0x578(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf7c8
movq %rax, %r15
movq -0x5a8(%rbp), %rdi
leaq -0x598(%rbp), %rax
cmpq %rax, %rdi
je 0xf7ef
movq -0x598(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf7ef
movq %rax, %r15
leaq -0x658(%rbp), %rdi
callq 0xfd22
jmp 0xf840
movq %rax, %r15
movq -0x638(%rbp), %rdi
cmpq %rbx, %rdi
je 0xf820
movq -0x628(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf820
movq %rax, %r15
movq -0x658(%rbp), %rdi
cmpq %r14, %rdi
je 0xf840
movq -0x648(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf840
movq %rax, %r15
leaq -0x4a0(%rbp), %rdi
callq 0xfd22
leaq -0x4f8(%rbp), %rdi
callq 0xfd22
leaq -0x600(%rbp), %rdi
callq 0xfd22
jmp 0xfce1
movq %rax, %r15
movq -0x480(%rbp), %rdi
cmpq %r14, %rdi
je 0xf88c
movq -0x470(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf88c
movq %rax, %r15
movq -0x4a0(%rbp), %rdi
cmpq %rbx, %rdi
je 0xf84c
movq -0x490(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf84c
movq %rax, %r15
jmp 0xf84c
movq %rax, %r15
movq -0x4d8(%rbp), %rdi
cmpq %r14, %rdi
je 0xf8d1
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf8d1
movq %rax, %r15
movq -0x4f8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xf858
movq -0x4e8(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf858
movq %rax, %r15
jmp 0xf858
movq %rax, %r15
movq -0x5e0(%rbp), %rdi
cmpq %rbx, %rdi
je 0xf920
movq -0x5d0(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf920
movq %rax, %r15
movq -0x600(%rbp), %rdi
cmpq %r12, %rdi
je 0xfce1
movq -0x5f0(%rbp), %rsi
jmp 0xfcd4
jmp 0xfcde
movq %rax, %r15
movq -0x1c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfce1
movq -0x1b8(%rbp), %rsi
jmp 0xfcd4
jmp 0xfcde
movq %rax, %r15
movq -0x1e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfce1
movq -0x1d8(%rbp), %rsi
jmp 0xfcd4
jmp 0xfcde
movq %rax, %r15
movq -0x208(%rbp), %rdi
cmpq %r14, %rdi
je 0xf9ac
movq -0x1f8(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xf9ac
movq %rax, %r15
movq -0x228(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfced
movq -0x218(%rbp), %rsi
jmp 0xfc40
jmp 0xfa0c
jmp 0xfa0c
movq %rax, %r15
movq -0x248(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfced
movq -0x238(%rbp), %rsi
jmp 0xfc40
jmp 0xfa0c
movq %rax, %r15
movq -0x268(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfced
movq -0x258(%rbp), %rsi
jmp 0xfc40
movq %rax, %r15
jmp 0xfced
movq %rax, %r15
movq -0x288(%rbp), %rdi
cmpq %r14, %rdi
je 0xfa37
movq -0x278(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xfa37
movq %rax, %r15
movq -0x2a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfcf6
movq -0x298(%rbp), %rsi
jmp 0xfc65
jmp 0xfa97
jmp 0xfa97
movq %rax, %r15
movq -0x2c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfcf6
movq -0x2b8(%rbp), %rsi
jmp 0xfc65
jmp 0xfa97
movq %rax, %r15
movq -0x2e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfcf6
movq -0x2d8(%rbp), %rsi
jmp 0xfc65
movq %rax, %r15
jmp 0xfcf6
movq %rax, %r15
movq -0x308(%rbp), %rdi
cmpq %r14, %rdi
je 0xfac2
movq -0x2f8(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xfac2
movq %rax, %r15
movq -0x328(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfd02
movq -0x318(%rbp), %rsi
jmp 0xfc8c
jmp 0xfb22
jmp 0xfb22
movq %rax, %r15
movq -0x348(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfd02
movq -0x338(%rbp), %rsi
jmp 0xfc8c
jmp 0xfb22
movq %rax, %r15
movq -0x368(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfd02
movq -0x358(%rbp), %rsi
jmp 0xfc8c
movq %rax, %r15
jmp 0xfd02
movq %rax, %r15
movq -0x388(%rbp), %rdi
cmpq %r14, %rdi
je 0xfb4d
movq -0x378(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xfb4d
movq %rax, %r15
movq -0x3a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfd0e
movq -0x398(%rbp), %rsi
jmp 0xfcb0
jmp 0xfbce
jmp 0xfbce
movq %rax, %r15
movq -0x3c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfd0e
movq -0x3b8(%rbp), %rsi
jmp 0xfcb0
jmp 0xfbce
movq %rax, %r15
movq -0x3e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfd0e
movq -0x3d8(%rbp), %rsi
jmp 0xfcb0
jmp 0xfbce
movq %rax, %r15
movq -0x408(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfd0e
movq -0x3f8(%rbp), %rsi
jmp 0xfcb0
movq %rax, %r15
jmp 0xfd0e
movq %rax, %r15
movq -0x428(%rbp), %rdi
cmpq %r14, %rdi
je 0xfbf9
movq -0x418(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xfbf9
movq %rax, %r15
movq -0x448(%rbp), %rdi
cmpq %rbx, %rdi
je 0xfd1a
movq -0x438(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xfd1a
jmp 0xfcde
movq %rax, %r15
leaq -0x140(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfced
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xfced
movq %rax, %r15
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfcf6
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xfcf6
movq %rax, %r15
leaq -0xc8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfd02
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xfd02
movq %rax, %r15
leaq -0x198(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfd0e
movq -0x198(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xfd0e
movq %rax, %r15
leaq -0xe8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfce1
movq -0xe8(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xfce1
movq %rax, %r15
leaq -0x150(%rbp), %rdi
callq 0xfd22
leaq -0x80(%rbp), %rdi
callq 0xfd22
leaq -0xd8(%rbp), %rdi
callq 0xfd22
leaq -0x1a8(%rbp), %rdi
callq 0xfd22
leaq -0x6b0(%rbp), %rdi
callq 0xfd22
movq %r15, %rdi
callq 0x31e0