// File: /workspace/github_cpp_makefile_star2_O1/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 0x8b09(%rip), %rbx      # 0xdfd8
leaq 0x4f66(%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 0x53df(%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 0x652a
movq %rbx, %rdi
callq 0x2786
movq %rax, %rbx
movq 0x8a86(%rip), %rdi      # 0xdfd8
leaq 0x4f06(%rip), %rsi      # 0xa45f
movl $0x19, %edx
callq 0x2200
movq 0x8a6e(%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 0x8a35(%rip), %rbx      # 0xdfd8
leaq 0x4ecf(%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 0x8a03(%rip), %rbx      # 0xdfd8
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq 0x4eb0(%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 0x567b
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 0x56c3
movq 0x58(%rsp), %rsi
cmpq 0x60(%rsp), %rsi
je 0x566e
movl 0xf8(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x58(%rsp)
jmp 0x5635
movq %r12, %rdi
movq %r15, %rdx
callq 0x739e
jmp 0x5635
movq 0x8956(%rip), %r14      # 0xdfd8
leaq 0x4e88(%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 0x8924(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
jmp 0x573c
leaq 0x300(%rsp), %rdi
callq 0x2060
leaq 0x50(%rsp), %rdi
callq 0x2786
movq %rax, %r14
movq 0x88f4(%rip), %rdi      # 0xdfd8
leaq 0x4dc7(%rip), %rsi      # 0xa4b2
movl $0x1f, %edx
callq 0x2200
movq 0x88dc(%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 0x5faa
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x887e(%rip), %rbx      # 0xdfd8
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %r14
leaq 0x4db4(%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 0x4d9c(%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 0x5838
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 0x5883
movq 0x38(%rsp), %rsi
cmpq 0x40(%rsp), %rsi
je 0x582b
movl 0x2c(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x38(%rsp)
jmp 0x57f5
movq %r12, %rdi
movq %r15, %rdx
callq 0x739e
jmp 0x57f5
movq 0x8799(%rip), %r14      # 0xdfd8
leaq 0x4ccb(%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 0x8767(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
jmp 0x5a73
leaq 0xf8(%rsp), %rdi
callq 0x2060
leaq 0xa8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x6568
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x6568
leaq 0x70(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x6568
leaq 0xa8(%rsp), %rdi
movq 0x8(%rdi), %rdx
subq (%rdi), %rdx
shrq $0x2, %rdx
xorl %esi, %esi
movl $0x1, %ecx
callq 0x298e
leaq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rdx
subq (%rdi), %rdx
shrq $0x2, %rdx
xorl %esi, %esi
movl $0x2, %ecx
callq 0x298e
leaq 0x70(%rsp), %rdi
movq 0x8(%rdi), %rdx
subq (%rdi), %rdx
shrq $0x2, %rdx
xorl %esi, %esi
movl $0x3, %ecx
callq 0x298e
movq 0x86ba(%rip), %rdi      # 0xdfd8
leaq 0x4c39(%rip), %rsi      # 0xa55e
movl $0x27, %edx
callq 0x2200
movl 0x88af(%rip), %esi      # 0xe1e4
movq 0x869c(%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 0x8666(%rip), %rdi      # 0xdfd8
leaq 0x4c0d(%rip), %rsi      # 0xa586
movl $0x26, %edx
callq 0x2200
movl 0x885f(%rip), %esi      # 0xe1e8
movq 0x8648(%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 0x8612(%rip), %rdi      # 0xdfd8
leaq 0x4be0(%rip), %rsi      # 0xa5ad
movl $0x28, %edx
callq 0x2200
movl 0x880f(%rip), %esi      # 0xe1ec
movq 0x85f4(%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, 0x87c7(%rip)  # imm = 0x27925
jne 0x5fc9
cmpl $0x2811b, 0x87bb(%rip)  # imm = 0x2811B
jne 0x5fe8
cmpl $0x21c8e, 0x87af(%rip)  # imm = 0x21C8E
jne 0x6007
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x5a52
callq 0x21b0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x5a61
callq 0x21b0
movq 0xa8(%rsp), %rdi
testq %rdi, %rdi
je 0x5a73
callq 0x21b0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x8547(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %rbx
leaq 0x4b97(%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 0x4b73(%rip), %rsi      # 0xa662
leaq 0x4b81(%rip), %rdx      # 0xa677
leaq 0x88(%rsp), %rdi
callq 0x7b6e
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x65e8
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x5b2a
callq 0x21b0
movl $0xa, %ebp
movq 0x84a2(%rip), %rbx      # 0xdfd8
leaq 0x4b3b(%rip), %r14      # 0xa678
leaq 0xa8(%rsp), %r15
movl $0xf, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2200
movq %r15, %rdi
callq 0x6856
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 0x5b45
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x8425(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %rbx
leaq 0x4abe(%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 0x2d90
movq 0x83ce(%rip), %rbx      # 0xdfd8
leaq 0x4a9a(%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 0x839c(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
callq 0x35cb
movq 0x8383(%rip), %rbx      # 0xdfd8
leaq 0x4a72(%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 0x8351(%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 0x8323(%rip), %rbx      # 0xdfd8
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %r14
leaq 0x4a30(%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 0x4a0f(%rip), %rsi      # 0xa722
leaq 0x4a1d(%rip), %rdx      # 0xa737
leaq 0x8(%rsp), %rdi
callq 0x7b6e
leaq 0x8(%rsp), %rdi
callq 0x4740
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5d3d
callq 0x21b0
callq 0x4a0c
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq 0x8278(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %rbx
leaq 0x49c1(%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 0x499f(%rip), %rsi      # 0xa759
leaq 0x49bc(%rip), %rdx      # 0xa77d
callq 0x7b6e
leaq 0x8(%rsp), %rdi
callq 0x4d61
movl %eax, %ebx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5de1
callq 0x21b0
movq 0x81f0(%rip), %rdi      # 0xdfd8
leaq 0x498f(%rip), %rsi      # 0xa77e
movl $0x13, %edx
callq 0x2200
movslq %ebx, %rsi
movq 0x81d5(%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 0x8185(%rip), %rdi      # 0xdfd8
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %rbx
leaq 0x4928(%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 0x4906(%rip), %rsi      # 0xa7b3
leaq 0x490e(%rip), %rdx      # 0xa7c2
callq 0x7b6e
leaq 0x8(%rsp), %rdi
callq 0x51c5
movl %eax, %ebx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5ed4
callq 0x21b0
movq 0x80fd(%rip), %rdi      # 0xdfd8
leaq 0x48e1(%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 0x80c6(%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 0x6c8e
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x5f5d
callq 0x21b0
leaq 0xf8(%rsp), %rdi
callq 0x2080
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x5f79
callq 0x21b0
leaq 0x300(%rsp), %rdi
callq 0x2080
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x5f98
callq 0x21b0
xorl %eax, %eax
addq $0x510, %rsp            # imm = 0x510
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4521(%rip), %rdi      # 0xa4d2
leaq 0x4533(%rip), %rsi      # 0xa4eb
leaq 0x4535(%rip), %rcx      # 0xa4f4
movl $0x32, %edx
callq 0x2120
leaq 0x4606(%rip), %rdi      # 0xa5d6
leaq 0x4514(%rip), %rsi      # 0xa4eb
leaq 0x4516(%rip), %rcx      # 0xa4f4
movl $0x56, %edx
callq 0x2120
leaq 0x460a(%rip), %rdi      # 0xa5f9
leaq 0x44f5(%rip), %rsi      # 0xa4eb
leaq 0x44f7(%rip), %rcx      # 0xa4f4
movl $0x57, %edx
callq 0x2120
leaq 0x460d(%rip), %rdi      # 0xa61b
leaq 0x44d6(%rip), %rsi      # 0xa4eb
leaq 0x44d8(%rip), %rcx      # 0xa4f4
movl $0x58, %edx
callq 0x2120
movq %rax, %rbx
jmp 0x608e
movq %rax, %rbx
jmp 0x609d
jmp 0x60bc
jmp 0x60bc
jmp 0x60c1
jmp 0x604a
jmp 0x60c8
jmp 0x604a
jmp 0x60c8
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x60cb
callq 0x21b0
jmp 0x60cb
jmp 0x60c8
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
jne 0x60aa
jmp 0x60d8
jmp 0x60bc
jmp 0x60c1
jmp 0x60b5
jmp 0x60c1
jmp 0x60c8
movq %rax, %rbx
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x608e
callq 0x21b0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x609d
callq 0x21b0
movq 0xa8(%rsp), %rdi
testq %rdi, %rdi
je 0x60d8
callq 0x21b0
jmp 0x60d8
jmp 0x60bc
jmp 0x60c1
movq %rax, %rbx
jmp 0x6110
jmp 0x60c8
movq %rax, %rbx
jmp 0x60d8
movq %rax, %rbx
jmp 0x60f4
jmp 0x60c8
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x6c8e
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x60e7
callq 0x21b0
leaq 0xf8(%rsp), %rdi
callq 0x2080
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x6103
callq 0x21b0
leaq 0x300(%rsp), %rdi
callq 0x2080
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x6122
callq 0x21b0
movq %rbx, %rdi
callq 0x2310