// File: /workspace/github_cpp_makefile_star2_O3/Manca[P]algorithms1/main.cpp
// Function: main
int main(int argc, const char * argv[]) {

    /*** Assignment 1 test cases ***/
    // TEST CASE 1:
    cout << "*** Assignment 1 - Test Case 1 ***" << endl;
    std::vector<int> vec{4, 5, 6, 1, 3};
    
    long long inversions = assignment1::Count(vec);
    
    cout << "Number of inversions is: " << inversions << endl;
    
    // TEST CASE 2:
    // load file
    cout << "*** Assignment 1 - Test Case 2 ***" << endl;
    std::ifstream inputFile("data/IntegerArray.txt", ios::in);
    std::vector<int> fileNumbers;

    // fill it in with numbers from the file
    if (inputFile.is_open())
    {
        int number;
        while (inputFile >> number)
        {
            fileNumbers.push_back(number);
        }
        inputFile.close();
        // do the work
        long long variations = assignment1::Count(fileNumbers);
        cout << "Total number of inversions is: " << variations << endl;
        assert(variations == 2407905288);
    }
    else
    {
        cout << "File cannot be opened!" << endl;
    }
    
    /*** Assignment 2 test cases ***/
    // TEST CASE 1:
    cout << endl << "*** Assignment 2 - Test Case 1 ***" << endl;
    ifstream as2File("data/QuickSort.txt", ios::in);
    vector<int> as2Input;
    
    if (as2File.is_open())
    {
        int number;
        while (as2File >> number)
        {
            as2Input.push_back(number);
        }
        as2File.close();
        
        // create three copies for each algorithm (input array is mutable)
        vector<int> as2Input1 = as2Input;
        vector<int> as2Input2 = as2Input;
        vector<int> as2Input3 = as2Input;
        
        // do the work
        assignment2::QuickSort(as2Input1, 0, (int)as2Input1.size(), 1);
        assignment2::QuickSort(as2Input2, 0, (int)as2Input2.size(), 2);
        assignment2::QuickSort(as2Input3, 0, (int)as2Input3.size(), 3);
        
        cout << "Number of comparisons for first pivot: " << assignment2::noCompFirst << endl;
        cout << "Number of comparisons for last pivot: " << assignment2::noCompLast << endl;
        cout << "Number of comparisons for median pivot: " << assignment2::noCompMedian << endl;
        
        assert(assignment2::noCompFirst == 162085);
        assert(assignment2::noCompLast == 164123);
        assert(assignment2::noCompMedian == 138382);
    }
    else
    {
        cout << "File cannot be opened!" << endl;
    }
    
    /*** Assignment 3 test cases ***/
    cout << endl << "*** Assignment 3 - Test Case 1 ***" << endl;
    assignment3::Graph graph("data/kargerMinCut.txt");
    for (int i = 0; i < 10; i++)
    {
        cout << "MinCut so far: " << graph.mincut() << endl;
    }
    
    // Min-Cut for this graph is 17, if we don't get exactly 17,
    // we might need to increase number of iterations above
    //assert(graph.mincut() == 17);
    
    /*** Assignment 4 test cases ***/
    cout << endl << "*** Assignment 4 - Test Case 1 ***" << endl;
    assignment4::testCase1();
    cout << "*** Assignment 4 - Test Case 2 ***" << endl;
    assignment4::testCase2();
    
    cout << "*** Assignment 4 - Main Test Case (disabled) ***" << endl;
    /**** Takes too much time... Enable when needed ****
    *
    std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now();
    assignment4::computeSCC("data/SCC.txt");
    std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();
    std::cout << "Total time assignment4 main case took to run: "
    << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()
    << "ms.\n";
    *
    ****/
    
    /*** Assignment 5 test cases ***/
    cout << endl << "*** Assignment 5 - Test Case 1 ***" << endl;
    assignment5::loadGraphAndInit("data/dijkstraData.txt");
    assignment5::computeShortestPaths();
    
    /*** Assignment 6 test cases ***/
    // 6.1) 2-SUM Problem
    cout << endl << "*** Assignment 6 - Problem 1 ***" << endl;
    long long sums = assignment6::computeTargetSums("data/algo1-programming_prob-2sum.txt");
    cout << "Number of sums is: " << sums << endl;
    
    // 6.2) Median Maintenance
    cout << endl << "*** Assignment 6 - Problem 2 ***" << endl;
    int sumOfMedians = assignment6::computeSumOfMedians("data/Median.txt") % 10000;
    std::cout << "The sum of medians mod 10000 is: " << sumOfMedians << std::endl;
    
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x510, %rsp            # imm = 0x510
movq 0x8b8c(%rip), %rbx      # 0xdfd8
leaq 0x4fe9(%rip), %rsi      # 0xa43c
movl $0x22, %edx
movq %rbx, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movups 0x5462(%rip), %xmm0     # 0xa8f0
leaq 0x300(%rsp), %rsi
movaps %xmm0, (%rsi)
movl $0x3, 0x10(%rsi)
leaq 0xe0(%rsp), %rbx
leaq 0xf8(%rsp), %rcx
movl $0x5, %edx
movq %rbx, %rdi
callq 0x64c4
movq %rbx, %rdi
callq 0x2786
movq %rax, %rbx
movq 0x8b09(%rip), %rdi      # 0xdfd8
leaq 0x4f89(%rip), %rsi      # 0xa45f
movl $0x19, %edx
callq 0x2200
movq 0x8af1(%rip), %rdi      # 0xdfd8
movq %rbx, %rsi
callq 0x20c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq 0x8ab8(%rip), %rbx      # 0xdfd8
leaq 0x4f52(%rip), %rsi      # 0xa479
movl $0x22, %edx
movq %rbx, %rdi
callq 0x2200
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x8a86(%rip), %rbx      # 0xdfd8
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq 0x4f33(%rip), %rsi      # 0xa49c
leaq 0x300(%rsp), %rdi
movl $0x8, %edx
callq 0x2330
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
leaq 0x378(%rsp), %rdi
callq 0x2070
testb %al, %al
je 0x55f8
leaq 0x300(%rsp), %r14
leaq 0xf8(%rsp), %r15
leaq 0x50(%rsp), %r12
movq %r14, %rdi
movq %r15, %rsi
callq 0x2110
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x5640
movq 0x58(%rsp), %rsi
cmpq 0x60(%rsp), %rsi
je 0x55eb
movl 0xf8(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x58(%rsp)
jmp 0x55b2
movq %r12, %rdi
movq %r15, %rdx
callq 0x733a
jmp 0x55b2
movq 0x89d9(%rip), %r14      # 0xdfd8
leaq 0x4f0b(%rip), %rsi      # 0xa511
movl $0x16, %edx
movq %r14, %rdi
callq 0x2200
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x89a7(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
jmp 0x56b9
leaq 0x300(%rsp), %rdi
callq 0x2060
leaq 0x50(%rsp), %rdi
callq 0x2786
movq %rax, %r14
movq 0x8977(%rip), %rdi      # 0xdfd8
leaq 0x4e4a(%rip), %rsi      # 0xa4b2
movl $0x1f, %edx
callq 0x2200
movq 0x895f(%rip), %rdi      # 0xdfd8
movq %r14, %rsi
callq 0x20c0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movl $0x8f85b808, %eax       # imm = 0x8F85B808
cmpq %rax, %r14
jne 0x5f27
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x8901(%rip), %rbx      # 0xdfd8
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %r14
leaq 0x4e37(%rip), %rsi      # 0xa528
movl $0x22, %edx
movq %rax, %rdi
callq 0x2200
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq 0x4e1f(%rip), %rsi      # 0xa54b
leaq 0xf8(%rsp), %rdi
movl $0x8, %edx
callq 0x2330
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
movq $0x0, 0x40(%rsp)
leaq 0x170(%rsp), %rdi
callq 0x2070
testb %al, %al
je 0x57b5
leaq 0xf8(%rsp), %r14
leaq 0x2c(%rsp), %r15
leaq 0x30(%rsp), %r12
movq %r14, %rdi
movq %r15, %rsi
callq 0x2110
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x5800
movq 0x38(%rsp), %rsi
cmpq 0x40(%rsp), %rsi
je 0x57a8
movl 0x2c(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x38(%rsp)
jmp 0x5772
movq %r12, %rdi
movq %r15, %rdx
callq 0x733a
jmp 0x5772
movq 0x881c(%rip), %r14      # 0xdfd8
leaq 0x4d4e(%rip), %rsi      # 0xa511
movl $0x16, %edx
movq %r14, %rdi
callq 0x2200
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x87ea(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
jmp 0x59f0
leaq 0xf8(%rsp), %rdi
callq 0x2060
leaq 0xa8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x6502
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x6502
leaq 0x70(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x6502
leaq 0xa8(%rsp), %rdi
movq 0x8(%rdi), %rdx
subq (%rdi), %rdx
shrq $0x2, %rdx
xorl %esi, %esi
movl $0x1, %ecx
callq 0x298c
leaq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rdx
subq (%rdi), %rdx
shrq $0x2, %rdx
xorl %esi, %esi
movl $0x2, %ecx
callq 0x298c
leaq 0x70(%rsp), %rdi
movq 0x8(%rdi), %rdx
subq (%rdi), %rdx
shrq $0x2, %rdx
xorl %esi, %esi
movl $0x3, %ecx
callq 0x298c
movq 0x873d(%rip), %rdi      # 0xdfd8
leaq 0x4cbc(%rip), %rsi      # 0xa55e
movl $0x27, %edx
callq 0x2200
movl 0x8932(%rip), %esi      # 0xe1e4
movq 0x871f(%rip), %rdi      # 0xdfd8
callq 0x2300
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq 0x86e9(%rip), %rdi      # 0xdfd8
leaq 0x4c90(%rip), %rsi      # 0xa586
movl $0x26, %edx
callq 0x2200
movl 0x88e2(%rip), %esi      # 0xe1e8
movq 0x86cb(%rip), %rdi      # 0xdfd8
callq 0x2300
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq 0x8695(%rip), %rdi      # 0xdfd8
leaq 0x4c63(%rip), %rsi      # 0xa5ad
movl $0x28, %edx
callq 0x2200
movl 0x8892(%rip), %esi      # 0xe1ec
movq 0x8677(%rip), %rdi      # 0xdfd8
callq 0x2300
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
cmpl $0x27925, 0x884a(%rip)  # imm = 0x27925
jne 0x5f46
cmpl $0x2811b, 0x883e(%rip)  # imm = 0x2811B
jne 0x5f65
cmpl $0x21c8e, 0x8832(%rip)  # imm = 0x21C8E
jne 0x5f84
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x59cf
callq 0x21b0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x59de
callq 0x21b0
movq 0xa8(%rsp), %rdi
testq %rdi, %rdi
je 0x59f0
callq 0x21b0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x85ca(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %rbx
leaq 0x4c1a(%rip), %rsi      # 0xa63f
movl $0x22, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4bf6(%rip), %rsi      # 0xa662
leaq 0x4c04(%rip), %rdx      # 0xa677
leaq 0x88(%rsp), %rdi
callq 0x7b08
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x6582
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x5aa7
callq 0x21b0
movl $0xa, %ebp
movq 0x8525(%rip), %rbx      # 0xdfd8
leaq 0x4bbe(%rip), %r14      # 0xa678
leaq 0xa8(%rsp), %r15
movl $0xf, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2200
movq %r15, %rdi
callq 0x67f0
movq %rbx, %rdi
movl %eax, %esi
callq 0x2300
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
decl %ebp
jne 0x5ac2
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x84a8(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %rbx
leaq 0x4b41(%rip), %rsi      # 0xa688
movl $0x22, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
callq 0x2d84
movq 0x8451(%rip), %rbx      # 0xdfd8
leaq 0x4b1d(%rip), %rsi      # 0xa6ab
movl $0x22, %edx
movq %rbx, %rdi
callq 0x2200
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x841f(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
callq 0x35ac
movq 0x8406(%rip), %rbx      # 0xdfd8
leaq 0x4af5(%rip), %rsi      # 0xa6ce
movl $0x30, %edx
movq %rbx, %rdi
callq 0x2200
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x83d4(%rip), %rbx      # 0xdfd8
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x83a6(%rip), %rbx      # 0xdfd8
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %r14
leaq 0x4ab3(%rip), %rsi      # 0xa6ff
movl $0x22, %edx
movq %rax, %rdi
callq 0x2200
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4a92(%rip), %rsi      # 0xa722
leaq 0x4aa0(%rip), %rdx      # 0xa737
leaq 0x8(%rsp), %rdi
callq 0x7b08
leaq 0x8(%rsp), %rdi
callq 0x46da
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5cba
callq 0x21b0
callq 0x4995
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x82fb(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %rbx
leaq 0x4a44(%rip), %rsi      # 0xa738
movl $0x20, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x4a22(%rip), %rsi      # 0xa759
leaq 0x4a3f(%rip), %rdx      # 0xa77d
callq 0x7b08
leaq 0x8(%rsp), %rdi
callq 0x4cea
movl %eax, %ebx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5d5e
callq 0x21b0
movq 0x8273(%rip), %rdi      # 0xdfd8
leaq 0x4a12(%rip), %rsi      # 0xa77e
movl $0x13, %edx
callq 0x2200
movslq %ebx, %rsi
movq 0x8258(%rip), %rbx      # 0xdfd8
movq %rbx, %rdi
callq 0x20c0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x8208(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %rbx
leaq 0x49ab(%rip), %rsi      # 0xa792
movl $0x20, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x4989(%rip), %rsi      # 0xa7b3
leaq 0x4991(%rip), %rdx      # 0xa7c2
callq 0x7b08
leaq 0x8(%rsp), %rdi
callq 0x513d
movl %eax, %ebx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5e51
callq 0x21b0
movq 0x8180(%rip), %rdi      # 0xdfd8
leaq 0x4964(%rip), %rsi      # 0xa7c3
movl $0x21, %edx
callq 0x2200
movslq %ebx, %rsi
imulq $0x68db8bad, %rsi, %rax # imm = 0x68DB8BAD
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x2c, %rax
addl %ecx, %eax
imull $0x2710, %eax, %eax     # imm = 0x2710
subl %eax, %esi
movq 0x8149(%rip), %rdi      # 0xdfd8
callq 0x2300
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq 0xa8(%rsp), %rdi
callq 0x6c3a
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x5eda
callq 0x21b0
leaq 0xf8(%rsp), %rdi
callq 0x2080
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x5ef6
callq 0x21b0
leaq 0x300(%rsp), %rdi
callq 0x2080
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x5f15
callq 0x21b0
xorl %eax, %eax
addq $0x510, %rsp            # imm = 0x510
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x45a4(%rip), %rdi      # 0xa4d2
leaq 0x45b6(%rip), %rsi      # 0xa4eb
leaq 0x45b8(%rip), %rcx      # 0xa4f4
movl $0x32, %edx
callq 0x2120
leaq 0x4689(%rip), %rdi      # 0xa5d6
leaq 0x4597(%rip), %rsi      # 0xa4eb
leaq 0x4599(%rip), %rcx      # 0xa4f4
movl $0x56, %edx
callq 0x2120
leaq 0x468d(%rip), %rdi      # 0xa5f9
leaq 0x4578(%rip), %rsi      # 0xa4eb
leaq 0x457a(%rip), %rcx      # 0xa4f4
movl $0x57, %edx
callq 0x2120
leaq 0x4690(%rip), %rdi      # 0xa61b
leaq 0x4559(%rip), %rsi      # 0xa4eb
leaq 0x455b(%rip), %rcx      # 0xa4f4
movl $0x58, %edx
callq 0x2120
movq %rax, %rbx
jmp 0x600b
movq %rax, %rbx
jmp 0x601a
jmp 0x6039
jmp 0x6039
jmp 0x603e
jmp 0x5fc7
jmp 0x6045
jmp 0x5fc7
jmp 0x6045
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6048
callq 0x21b0
jmp 0x6048
jmp 0x6045
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
jne 0x6027
jmp 0x6055
jmp 0x6039
jmp 0x603e
jmp 0x6032
jmp 0x603e
jmp 0x6045
movq %rax, %rbx
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x600b
callq 0x21b0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x601a
callq 0x21b0
movq 0xa8(%rsp), %rdi
testq %rdi, %rdi
je 0x6055
callq 0x21b0
jmp 0x6055
jmp 0x6039
jmp 0x603e
movq %rax, %rbx
jmp 0x608d
jmp 0x6045
movq %rax, %rbx
jmp 0x6055
movq %rax, %rbx
jmp 0x6071
jmp 0x6045
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x6c3a
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x6064
callq 0x21b0
leaq 0xf8(%rsp), %rdi
callq 0x2080
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x6080
callq 0x21b0
leaq 0x300(%rsp), %rdi
callq 0x2080
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x609f
callq 0x21b0
movq %rbx, %rdi
callq 0x2310
nop