// File: 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
subq $0x950, %rsp            # imm = 0x950
movl $0x0, -0x4(%rbp)
leaq -0x81(%rbp), %rdi
movq %rdi, -0x850(%rbp)
callq 0x4310
movq -0x850(%rbp), %rdx
leaq 0x1f71(%rip), %rsi      # 0x154b4
leaq -0x80(%rbp), %rdi
callq 0x4b60
jmp 0x1354e
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x858(%rbp)
callq 0x4310
movq -0x858(%rbp), %rdx
leaq 0x1f4c(%rip), %rsi      # 0x154bb
leaq -0xb8(%rbp), %rdi
callq 0x4b60
jmp 0x1357d
leaq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rsi
leaq -0xb8(%rbp), %rdx
callq 0xff60
jmp 0x13593
leaq -0xb8(%rbp), %rdi
callq 0x4120
leaq -0xb9(%rbp), %rdi
callq 0x4210
leaq -0x80(%rbp), %rdi
callq 0x4120
leaq -0x81(%rbp), %rdi
callq 0x4210
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x860(%rbp)
callq 0x4310
movq -0x860(%rbp), %rdx
leaq 0x1ee0(%rip), %rsi      # 0x154c1
leaq -0xe0(%rbp), %rdi
callq 0x4b60
jmp 0x135ef
leaq -0x60(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x101d0
jmp 0x13601
leaq -0xe0(%rbp), %rdi
callq 0x4120
leaq -0xe1(%rbp), %rdi
callq 0x4210
leaq -0x109(%rbp), %rdi
movq %rdi, -0x868(%rbp)
callq 0x4310
movq -0x868(%rbp), %rdx
leaq 0x1e8c(%rip), %rsi      # 0x154c6
leaq -0x108(%rbp), %rdi
callq 0x4b60
jmp 0x13648
leaq -0x60(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x101d0
jmp 0x1365a
leaq -0x108(%rbp), %rdi
callq 0x4120
leaq -0x109(%rbp), %rdi
callq 0x4210
leaq -0x131(%rbp), %rdi
movq %rdi, -0x870(%rbp)
callq 0x4310
movq -0x870(%rbp), %rdx
leaq 0x1e36(%rip), %rsi      # 0x154c9
leaq -0x130(%rbp), %rdi
callq 0x4b60
jmp 0x136a1
leaq -0x60(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x101d0
jmp 0x136b3
leaq -0x130(%rbp), %rdi
callq 0x4120
leaq -0x131(%rbp), %rdi
callq 0x4210
leaq -0x158(%rbp), %rdi
leaq -0x60(%rbp), %rsi
movl $0x1, %edx
callq 0x103a0
jmp 0x136e2
movq 0x98ef(%rip), %rdi      # 0x1cfd8
leaq -0x158(%rbp), %rsi
callq 0x41a0
movq %rax, -0x878(%rbp)
jmp 0x136fe
movq -0x878(%rbp), %rdi
movq 0x98b4(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x13713
leaq -0x158(%rbp), %rdi
callq 0x4120
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0x880(%rbp)
callq 0x4310
movq -0x880(%rbp), %rdx
leaq 0x1d8d(%rip), %rsi      # 0x154cd
leaq -0x1d0(%rbp), %rdi
callq 0x4b60
jmp 0x1374e
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x888(%rbp)
callq 0x4310
movq -0x888(%rbp), %rdx
leaq 0x1d64(%rip), %rsi      # 0x154d3
leaq -0x1f8(%rbp), %rdi
callq 0x4b60
jmp 0x1377d
leaq -0x1b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
leaq -0x1f8(%rbp), %rdx
callq 0xff60
jmp 0x13799
leaq -0x1f8(%rbp), %rdi
callq 0x4120
leaq -0x1f9(%rbp), %rdi
callq 0x4210
leaq -0x1d0(%rbp), %rdi
callq 0x4120
leaq -0x1d1(%rbp), %rdi
callq 0x4210
leaq -0x221(%rbp), %rdi
movq %rdi, -0x890(%rbp)
callq 0x4310
movq -0x890(%rbp), %rdx
leaq 0x1cd7(%rip), %rsi      # 0x154c1
leaq -0x220(%rbp), %rdi
callq 0x4b60
jmp 0x137f8
leaq -0x1b0(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x101d0
jmp 0x1380d
leaq -0x220(%rbp), %rdi
callq 0x4120
leaq -0x221(%rbp), %rdi
callq 0x4210
leaq -0x249(%rbp), %rdi
movq %rdi, -0x898(%rbp)
callq 0x4310
movq -0x898(%rbp), %rdx
leaq 0x1c83(%rip), %rsi      # 0x154c9
leaq -0x248(%rbp), %rdi
callq 0x4b60
jmp 0x13854
leaq -0x1b0(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x101d0
jmp 0x13869
leaq -0x248(%rbp), %rdi
callq 0x4120
leaq -0x249(%rbp), %rdi
callq 0x4210
leaq -0x270(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
movl $0x1, %edx
callq 0x103a0
jmp 0x1389b
movq 0x9736(%rip), %rdi      # 0x1cfd8
leaq -0x270(%rbp), %rsi
callq 0x41a0
movq %rax, -0x8a0(%rbp)
jmp 0x138b7
movq -0x8a0(%rbp), %rdi
movq 0x96fb(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x138cc
leaq -0x270(%rbp), %rdi
callq 0x4120
leaq -0x2e9(%rbp), %rdi
movq %rdi, -0x8a8(%rbp)
callq 0x4310
movq -0x8a8(%rbp), %rdx
leaq 0x1be0(%rip), %rsi      # 0x154d9
leaq -0x2e8(%rbp), %rdi
callq 0x4b60
jmp 0x13907
leaq -0x311(%rbp), %rdi
movq %rdi, -0x8b0(%rbp)
callq 0x4310
movq -0x8b0(%rbp), %rdx
leaq 0x1bab(%rip), %rsi      # 0x154d3
leaq -0x310(%rbp), %rdi
callq 0x4b60
jmp 0x13936
leaq -0x2c8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
leaq -0x310(%rbp), %rdx
callq 0xff60
jmp 0x13952
leaq -0x310(%rbp), %rdi
callq 0x4120
leaq -0x311(%rbp), %rdi
callq 0x4210
leaq -0x2e8(%rbp), %rdi
callq 0x4120
leaq -0x2e9(%rbp), %rdi
callq 0x4210
leaq -0x339(%rbp), %rdi
movq %rdi, -0x8b8(%rbp)
callq 0x4310
movq -0x8b8(%rbp), %rdx
leaq 0x1b1e(%rip), %rsi      # 0x154c1
leaq -0x338(%rbp), %rdi
callq 0x4b60
jmp 0x139b1
leaq -0x2c8(%rbp), %rdi
leaq -0x338(%rbp), %rsi
callq 0x101d0
jmp 0x139c6
leaq -0x338(%rbp), %rdi
callq 0x4120
leaq -0x339(%rbp), %rdi
callq 0x4210
leaq -0x361(%rbp), %rdi
movq %rdi, -0x8c0(%rbp)
callq 0x4310
movq -0x8c0(%rbp), %rdx
leaq 0x1ac7(%rip), %rsi      # 0x154c6
leaq -0x360(%rbp), %rdi
callq 0x4b60
jmp 0x13a0d
leaq -0x2c8(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0x101d0
jmp 0x13a22
leaq -0x360(%rbp), %rdi
callq 0x4120
leaq -0x361(%rbp), %rdi
callq 0x4210
leaq -0x388(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
movl $0x1, %edx
callq 0x103a0
jmp 0x13a54
movq 0x957d(%rip), %rdi      # 0x1cfd8
leaq -0x388(%rbp), %rsi
callq 0x41a0
movq %rax, -0x8c8(%rbp)
jmp 0x13a70
movq -0x8c8(%rbp), %rdi
movq 0x9542(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x13a85
leaq -0x388(%rbp), %rdi
callq 0x4120
leaq -0x401(%rbp), %rdi
movq %rdi, -0x8d0(%rbp)
callq 0x4310
movq -0x8d0(%rbp), %rdx
leaq 0x1a2d(%rip), %rsi      # 0x154df
leaq -0x400(%rbp), %rdi
callq 0x4b60
jmp 0x13ac0
leaq -0x429(%rbp), %rdi
movq %rdi, -0x8d8(%rbp)
callq 0x4310
movq -0x8d8(%rbp), %rdx
leaq 0x1a05(%rip), %rsi      # 0x154e6
leaq -0x428(%rbp), %rdi
callq 0x4b60
jmp 0x13aef
leaq -0x3e0(%rbp), %rdi
leaq -0x400(%rbp), %rsi
leaq -0x428(%rbp), %rdx
callq 0xff60
jmp 0x13b0b
leaq -0x428(%rbp), %rdi
callq 0x4120
leaq -0x429(%rbp), %rdi
callq 0x4210
leaq -0x400(%rbp), %rdi
callq 0x4120
leaq -0x401(%rbp), %rdi
callq 0x4210
leaq -0x451(%rbp), %rdi
movq %rdi, -0x8e0(%rbp)
callq 0x4310
movq -0x8e0(%rbp), %rdx
leaq 0x1965(%rip), %rsi      # 0x154c1
leaq -0x450(%rbp), %rdi
callq 0x4b60
jmp 0x13b6a
leaq -0x3e0(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0x101d0
jmp 0x13b7f
leaq -0x450(%rbp), %rdi
callq 0x4120
leaq -0x451(%rbp), %rdi
callq 0x4210
leaq -0x479(%rbp), %rdi
movq %rdi, -0x8e8(%rbp)
callq 0x4310
movq -0x8e8(%rbp), %rdx
leaq 0x1911(%rip), %rsi      # 0x154c9
leaq -0x478(%rbp), %rdi
callq 0x4b60
jmp 0x13bc6
leaq -0x3e0(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x101d0
jmp 0x13bdb
leaq -0x478(%rbp), %rdi
callq 0x4120
leaq -0x479(%rbp), %rdi
callq 0x4210
leaq -0x4a0(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
movl $0x1, %edx
callq 0x103a0
jmp 0x13c0d
movq 0x93c4(%rip), %rdi      # 0x1cfd8
leaq -0x4a0(%rbp), %rsi
callq 0x41a0
movq %rax, -0x8f0(%rbp)
jmp 0x13c29
movq -0x8f0(%rbp), %rdi
movq 0x9389(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x13c3e
leaq -0x4a0(%rbp), %rdi
callq 0x4120
leaq -0x519(%rbp), %rdi
movq %rdi, -0x8f8(%rbp)
callq 0x4310
movq -0x8f8(%rbp), %rdx
leaq 0x1880(%rip), %rsi      # 0x154eb
leaq -0x518(%rbp), %rdi
callq 0x4b60
jmp 0x13c79
leaq -0x541(%rbp), %rdi
movq %rdi, -0x900(%rbp)
callq 0x4310
movq -0x900(%rbp), %rdx
leaq 0x1856(%rip), %rsi      # 0x154f0
leaq -0x540(%rbp), %rdi
callq 0x4b60
jmp 0x13ca8
leaq -0x4f8(%rbp), %rdi
leaq -0x518(%rbp), %rsi
leaq -0x540(%rbp), %rdx
callq 0xff60
jmp 0x13cc4
leaq -0x540(%rbp), %rdi
callq 0x4120
leaq -0x541(%rbp), %rdi
callq 0x4210
leaq -0x518(%rbp), %rdi
callq 0x4120
leaq -0x519(%rbp), %rdi
callq 0x4210
leaq -0x569(%rbp), %rdi
movq %rdi, -0x908(%rbp)
callq 0x4310
movq -0x908(%rbp), %rdx
leaq 0x17b1(%rip), %rsi      # 0x154c6
leaq -0x568(%rbp), %rdi
callq 0x4b60
jmp 0x13d23
leaq -0x4f8(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x101d0
jmp 0x13d38
leaq -0x568(%rbp), %rdi
callq 0x4120
leaq -0x569(%rbp), %rdi
callq 0x4210
leaq -0x591(%rbp), %rdi
movq %rdi, -0x910(%rbp)
callq 0x4310
movq -0x910(%rbp), %rdx
leaq 0x1758(%rip), %rsi      # 0x154c9
leaq -0x590(%rbp), %rdi
callq 0x4b60
jmp 0x13d7f
leaq -0x4f8(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0x101d0
jmp 0x13d94
leaq -0x590(%rbp), %rdi
callq 0x4120
leaq -0x591(%rbp), %rdi
callq 0x4210
leaq -0x5b8(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
movl $0x1, %edx
callq 0x103a0
jmp 0x13dc6
movq 0x920b(%rip), %rdi      # 0x1cfd8
leaq -0x5b8(%rbp), %rsi
callq 0x41a0
movq %rax, -0x918(%rbp)
jmp 0x13de2
movq -0x918(%rbp), %rdi
movq 0x91d0(%rip), %rsi      # 0x1cfc0
callq 0x41f0
movq %rax, -0x920(%rbp)
jmp 0x13dfe
movq -0x920(%rbp), %rdi
movq 0x91b4(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x13e13
leaq -0x5b8(%rbp), %rdi
callq 0x4120
leaq -0x630(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x73b0
jmp 0x13e31
leaq -0x688(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x73b0
jmp 0x13e46
leaq -0x6e0(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x73b0
jmp 0x13e5b
leaq -0x738(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
callq 0x73b0
jmp 0x13e70
leaq -0x790(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
callq 0x73b0
jmp 0x13e85
leaq -0x5d8(%rbp), %rdi
leaq -0x630(%rbp), %rsi
leaq -0x688(%rbp), %rdx
leaq -0x6e0(%rbp), %rcx
leaq -0x738(%rbp), %r8
leaq -0x790(%rbp), %r9
callq 0x131e0
jmp 0x13eb6
leaq -0x790(%rbp), %rdi
callq 0x8830
leaq -0x738(%rbp), %rdi
callq 0x8830
leaq -0x6e0(%rbp), %rdi
callq 0x8830
leaq -0x688(%rbp), %rdi
callq 0x8830
leaq -0x630(%rbp), %rdi
callq 0x8830
movq 0x90df(%rip), %rdi      # 0x1cfd8
leaq 0x15f8(%rip), %rsi      # 0x154f8
callq 0x41c0
jmp 0x13f07
leaq -0x7f0(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x73b0
jmp 0x13f1c
leaq -0x5d8(%rbp), %rdi
leaq -0x7f0(%rbp), %rsi
callq 0xfaf0
movb %al, -0x921(%rbp)
jmp 0x13f37
leaq -0x7f0(%rbp), %rdi
callq 0x8830
movb -0x921(%rbp), %al
andb $0x1, %al
movb %al, -0x791(%rbp)
testb $0x1, -0x791(%rbp)
je 0x14685
movq 0x9073(%rip), %rdi      # 0x1cfd8
leaq 0x15a3(%rip), %rsi      # 0x1550f
callq 0x41c0
movq %rax, -0x930(%rbp)
jmp 0x13f7a
movq -0x930(%rbp), %rdi
movq 0x9038(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x13f8f
jmp 0x146b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x13fef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x13fda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x4120
leaq -0xb9(%rbp), %rdi
callq 0x4210
leaq -0x80(%rbp), %rdi
callq 0x4120
leaq -0x81(%rbp), %rdi
callq 0x4210
jmp 0x14824
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14032
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x4120
leaq -0xe1(%rbp), %rdi
callq 0x4210
jmp 0x1481b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14075
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x4120
leaq -0x109(%rbp), %rdi
callq 0x4210
jmp 0x1481b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x140b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x4120
leaq -0x131(%rbp), %rdi
callq 0x4210
jmp 0x1481b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x1481b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x4120
jmp 0x1481b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14161
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14149
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x4120
leaq -0x1f9(%rbp), %rdi
callq 0x4210
leaq -0x1d0(%rbp), %rdi
callq 0x4120
leaq -0x1d1(%rbp), %rdi
callq 0x4210
jmp 0x1481b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x141a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x4120
leaq -0x221(%rbp), %rdi
callq 0x4210
jmp 0x1480f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x141e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x4120
leaq -0x249(%rbp), %rdi
callq 0x4210
jmp 0x1480f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x1480f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x4120
jmp 0x1480f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14290
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14278
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x4120
leaq -0x311(%rbp), %rdi
callq 0x4210
leaq -0x2e8(%rbp), %rdi
callq 0x4120
leaq -0x2e9(%rbp), %rdi
callq 0x4210
jmp 0x1480f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x142d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x4120
leaq -0x339(%rbp), %rdi
callq 0x4210
jmp 0x14803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14316
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x4120
leaq -0x361(%rbp), %rdi
callq 0x4210
jmp 0x14803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x4120
jmp 0x14803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x143bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x143a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x4120
leaq -0x429(%rbp), %rdi
callq 0x4210
leaq -0x400(%rbp), %rdi
callq 0x4120
leaq -0x401(%rbp), %rdi
callq 0x4210
jmp 0x14803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14402
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x4120
leaq -0x451(%rbp), %rdi
callq 0x4210
jmp 0x147f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14445
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x478(%rbp), %rdi
callq 0x4120
leaq -0x479(%rbp), %rdi
callq 0x4210
jmp 0x147f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x147f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x4a0(%rbp), %rdi
callq 0x4120
jmp 0x147f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x144ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x144d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x4120
leaq -0x541(%rbp), %rdi
callq 0x4210
leaq -0x518(%rbp), %rdi
callq 0x4120
leaq -0x519(%rbp), %rdi
callq 0x4210
jmp 0x147f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14531
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x4120
leaq -0x569(%rbp), %rdi
callq 0x4210
jmp 0x147eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14574
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x590(%rbp), %rdi
callq 0x4120
leaq -0x591(%rbp), %rdi
callq 0x4210
jmp 0x147eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x147eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x5b8(%rbp), %rdi
callq 0x4120
jmp 0x147eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14651
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14645
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x14639
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x1462d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x790(%rbp), %rdi
callq 0x8830
leaq -0x738(%rbp), %rdi
callq 0x8830
leaq -0x6e0(%rbp), %rdi
callq 0x8830
leaq -0x688(%rbp), %rdi
callq 0x8830
leaq -0x630(%rbp), %rdi
callq 0x8830
jmp 0x147eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x7f0(%rbp), %rdi
callq 0x8830
jmp 0x147eb
movq 0x894c(%rip), %rdi      # 0x1cfd8
leaq 0xe80(%rip), %rsi       # 0x15513
callq 0x41c0
movq %rax, -0x938(%rbp)
jmp 0x146a1
movq -0x938(%rbp), %rdi
movq 0x8911(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x146b6
jmp 0x146b8
movq 0x8919(%rip), %rdi      # 0x1cfd8
leaq 0xe50(%rip), %rsi       # 0x15516
callq 0x41c0
jmp 0x146cd
leaq -0x848(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
callq 0x73b0
jmp 0x146e2
leaq -0x5d8(%rbp), %rdi
leaq -0x848(%rbp), %rsi
callq 0xfaf0
movb %al, -0x939(%rbp)
jmp 0x146fd
movb -0x939(%rbp), %al
andb $0x1, %al
movb %al, -0x791(%rbp)
leaq -0x848(%rbp), %rdi
callq 0x8830
testb $0x1, -0x791(%rbp)
je 0x14773
movq 0x88b1(%rip), %rdi      # 0x1cfd8
leaq 0xde1(%rip), %rsi       # 0x1550f
callq 0x41c0
movq %rax, -0x948(%rbp)
jmp 0x1473c
movq -0x948(%rbp), %rdi
movq 0x8876(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x14751
jmp 0x147a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x848(%rbp), %rdi
callq 0x8830
jmp 0x147eb
movq 0x885e(%rip), %rdi      # 0x1cfd8
leaq 0xd92(%rip), %rsi       # 0x15513
callq 0x41c0
movq %rax, -0x950(%rbp)
jmp 0x1478f
movq -0x950(%rbp), %rdi
movq 0x8823(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x147a4
jmp 0x147a6
leaq -0x4f8(%rbp), %rdi
callq 0x8830
leaq -0x3e0(%rbp), %rdi
callq 0x8830
leaq -0x2c8(%rbp), %rdi
callq 0x8830
leaq -0x1b0(%rbp), %rdi
callq 0x8830
leaq -0x60(%rbp), %rdi
callq 0x8830
movl -0x4(%rbp), %eax
addq $0x950, %rsp            # imm = 0x950
popq %rbp
retq
leaq -0x4f8(%rbp), %rdi
callq 0x8830
leaq -0x3e0(%rbp), %rdi
callq 0x8830
leaq -0x2c8(%rbp), %rdi
callq 0x8830
leaq -0x1b0(%rbp), %rdi
callq 0x8830
leaq -0x60(%rbp), %rdi
callq 0x8830
movq -0x90(%rbp), %rdi
callq 0x4300