// File: /workspace/github_cpp_makefile_star2_O3/Manca[P]algorithms2/main.cpp
// Function: main
int main(int argc, const char * argv[]) 
{
    PROFILE("All problems for Algorithms 2 course")

    ///////////////////// Assignment 1 //////////////////////////
	std::cout << "*** Assignment 1 - Scheduling problem ***" << std::endl;
	assignment1::scheduling_problem::run_algorithm("data/jobs.txt");

	std::cout << std::endl << "*** Assignment 1 - Prim's algorithm - Test Case 1 ***" << std::endl;
	if (assignment1::prims_algorithm::test1())
		std::cout << "... Test passed!" << std::endl;

	std::cout << "*** Assignment 1 - Prim's algorithm - Main Test Case ***" << std::endl;
	assignment1::prims_algorithm::run_algorithm("data/edges.txt");

    ///////////////////// Assignment 2 //////////////////////////
    std::cout << std::endl << "*** Assignment 2 - UnionFind Test Case 1 ***" << std::endl;
    if (DataStructures::TestCase1())
        std::cout << "... Test passed!" << std::endl;

    std::cout << "*** Assignment 2 - Clustering - Max-Spacing K=4 Clustering ***" << std::endl;
    int max_spacing = assignment2::four_clustering::four_clustering("data/clustering1.txt");
    std::cout << "Max-Spacing clustering is: " << max_spacing << std::endl;

    std::cout << "*** Assignment 2 - Big Clustering - Hamming distance ***" << std::endl;
    assignment2::clustering_big::run_algorithm("data/clustering_big.txt");
    std::cout << "*** Assignment 2 - Big Clustering - Hamming distance - Faster Algorithm ***" << std::endl;
    assignment2::clustering_big::run_faster_algorithm("data/clustering_big.txt");

    ///////////////////// Assignment 3 //////////////////////////
    std::cout << std::endl << "*** Assignment 3 - Knapsack - Test Case 1 ***" << std::endl;
    if (assignment3::knapsack_1::testCase1())
        std::cout << "... Test passed!" << std::endl;
    std::cout << "*** Assignment 3 - Knapsack - Problem 1 ***" << std::endl;
    assignment3::knapsack_1::run_algorithm("data/knapsack1.txt");

    std::cout << "*** Assignment 3 - Knapsack - Problem 2 - Test Case 1 ***" << std::endl;
    if (assignment3::knapsack_big::testCase1())
        std::cout << "... Test passed!" << std::endl;
    std::cout << "*** Assignment 3 - Knapsack - Problem 2 ***" << std::endl;
    assignment3::knapsack_big::run_algorithm("data/knapsack_big.txt");

    ///////////////////// Assignment 4 //////////////////////////
    std::cout << std::endl << "*** Assignment 4 - All-Pairs Shortest Path ***" << std::endl;
    assignment4::run_algorithm("data/g1.txt");
    assignment4::run_algorithm("data/g2.txt");
    assignment4::run_algorithm("data/g3.txt"); 

    ///////////////////// Assignment 5 //////////////////////////
    std::cout << std::endl << "*** Assignment 5 - Traveling Salesman Problem ***" << std::endl;
    PROFILE("TSP")
    assignment5::TSP tsp("data/tsp.txt");
    tsp.solve();
    PROFILE_STOP();
    
    ///////////////////// Assignment 6 //////////////////////////
    std::cout << std::endl << "*** Assignment 6 - 2-SAT Problem ***" << std::endl;
    std::vector<bool> res;
    PROFILE("2 SAT");
    res.push_back(assignment6::run_algorithm("data/2sat1.txt"));
    res.push_back(assignment6::run_algorithm("data/2sat2.txt"));
    res.push_back(assignment6::run_algorithm("data/2sat3.txt"));
    res.push_back(assignment6::run_algorithm("data/2sat4.txt"));
    res.push_back(assignment6::run_algorithm("data/2sat5.txt"));
    res.push_back(assignment6::run_algorithm("data/2sat6.txt"));
    PROFILE_STOP();
    std::cout << "Solution:";
    for (bool sln : res)
        std::cout << " " << sln;
    
    std::cout << std::endl;
    PROFILE_STOP(); // main
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
callq 0x88f8
movq %rax, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x7e48(%rip), %rsi      # 0xe924
leaq 0x7e65(%rip), %rdx      # 0xe948
leaq 0x8(%rsp), %rdi
callq 0xbb78
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x8942
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6b09
callq 0x21f0
movq 0xe4c8(%rip), %rbx      # 0x14fd8
leaq 0x7e32(%rip), %rsi      # 0xe949
movl $0x29, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7e19(%rip), %rsi      # 0xe973
leaq 0x7e1f(%rip), %rdx      # 0xe980
callq 0xbb78
leaq 0x8(%rsp), %rdi
callq 0x2a15
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6b7f
callq 0x21f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %r14
leaq 0x7dd1(%rip), %rsi      # 0xe981
movl $0x35, %edx
movq %rax, %rdi
callq 0x2240
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x2e63
leaq 0x7dc7(%rip), %rsi      # 0xe9b7
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x7d9d(%rip), %rsi      # 0xe9c8
movl $0x38, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7d93(%rip), %rsi      # 0xea01
leaq 0x7d9a(%rip), %rdx      # 0xea0f
callq 0xbb78
leaq 0x8(%rsp), %rdi
callq 0x3123
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6c93
callq 0x21f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %r14
leaq 0x7d4c(%rip), %rsi      # 0xea10
movl $0x2c, %edx
movq %rax, %rdi
callq 0x2240
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x3472
leaq 0x7cb3(%rip), %rsi      # 0xe9b7
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x7cfe(%rip), %rsi      # 0xea3d
movl $0x3e, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7cfa(%rip), %rsi      # 0xea7c
leaq 0x7d07(%rip), %rdx      # 0xea90
callq 0xbb78
leaq 0x8(%rsp), %rdi
callq 0x3845
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6da9
callq 0x21f0
leaq 0x7ce1(%rip), %rsi      # 0xea91
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x2240
movq %rbx, %rdi
movl %ebp, %esi
callq 0x2340
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x7cb5(%rip), %rsi      # 0xeaad
movl $0x38, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7cab(%rip), %rsi      # 0xeae6
leaq 0x7cbb(%rip), %rdx      # 0xeafd
callq 0xbb78
leaq 0x8(%rsp), %rdi
callq 0x3c7e
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6e60
callq 0x21f0
leaq 0x7c97(%rip), %rsi      # 0xeafe
movl $0x4b, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7c3c(%rip), %rsi      # 0xeae6
leaq 0x7c4c(%rip), %rdx      # 0xeafd
callq 0xbb78
leaq 0x8(%rsp), %rdi
callq 0x4369
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6ecf
callq 0x21f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %r14
leaq 0x7c4a(%rip), %rsi      # 0xeb4a
movl $0x2d, %edx
movq %rax, %rdi
callq 0x2240
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x4dc1
leaq 0x7a77(%rip), %rsi      # 0xe9b7
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x7bfd(%rip), %rsi      # 0xeb78
movl $0x2b, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7be6(%rip), %rsi      # 0xeba4
leaq 0x7bf1(%rip), %rdx      # 0xebb6
callq 0xbb78
leaq 0x8(%rsp), %rdi
callq 0x4e9b
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6fe3
callq 0x21f0
leaq 0x7bcd(%rip), %rsi      # 0xebb7
movl $0x39, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x51fc
leaq 0x798d(%rip), %rsi      # 0xe9b7
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x7b8c(%rip), %rsi      # 0xebf1
movl $0x2b, %edx
movq %rbx, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7b75(%rip), %rsi      # 0xec1d
leaq 0x7b83(%rip), %rdx      # 0xec32
callq 0xbb78
leaq 0x8(%rsp), %rdi
callq 0x52d6
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x70cd
callq 0x21f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %r14
leaq 0x7b35(%rip), %rsi      # 0xec33
movl $0x2e, %edx
movq %rax, %rdi
callq 0x2240
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7b21(%rip), %rsi      # 0xec62
leaq 0x7b25(%rip), %rdx      # 0xec6d
callq 0xbb78
leaq 0x8(%rsp), %rdi
callq 0x5db6
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7166
callq 0x21f0
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7af9(%rip), %rsi      # 0xec6e
leaq 0x7afd(%rip), %rdx      # 0xec79
callq 0xbb78
leaq 0x8(%rsp), %rdi
callq 0x5db6
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x719a
callq 0x21f0
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7ad1(%rip), %rsi      # 0xec7a
leaq 0x7ad5(%rip), %rdx      # 0xec85
callq 0xbb78
leaq 0x8(%rsp), %rdi
callq 0x5db6
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x71ce
callq 0x21f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %r14
leaq 0x7a87(%rip), %rsi      # 0xec86
movl $0x31, %edx
movq %rax, %rdi
callq 0x2240
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x88f8
movq %rax, %r14
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7a6e(%rip), %rsi      # 0xecb8
leaq 0x7a6a(%rip), %rdx      # 0xecbb
callq 0xbb78
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x8942
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7272
callq 0x21f0
leaq 0x70(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7a3a(%rip), %rsi      # 0xecbc
leaq 0x7a3f(%rip), %rdx      # 0xecc8
leaq 0x60(%rsp), %rdi
callq 0xbb78
leaq 0x8(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x9222
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x72b1
callq 0x21f0
leaq 0x8(%rsp), %rdi
callq 0x938e
callq 0x88f8
movq %rax, %rdi
callq 0x898c
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq 0xdcf2(%rip), %rdi      # 0x14fd8
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %rbx
leaq 0x79cc(%rip), %rsi      # 0xecc9
movl $0x24, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
xorl %eax, %eax
movq %rax, 0x60(%rsp)
movl %eax, 0x68(%rsp)
movq %rax, 0x70(%rsp)
movl %eax, 0x78(%rsp)
movq %rax, 0x80(%rsp)
callq 0x88f8
movq %rax, %rbx
leaq 0x50(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7989(%rip), %rsi      # 0xecee
leaq 0x7987(%rip), %rdx      # 0xecf3
leaq 0x40(%rsp), %rdi
callq 0xbb78
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0x8942
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x7392
callq 0x21f0
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x7953(%rip), %rsi      # 0xecf4
leaq 0x795a(%rip), %rdx      # 0xed02
callq 0xbb78
leaq 0x40(%rsp), %rdi
callq 0x6569
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a56
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x73d3
callq 0x21f0
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x7921(%rip), %rsi      # 0xed03
leaq 0x7928(%rip), %rdx      # 0xed11
callq 0xbb78
leaq 0x40(%rsp), %rdi
callq 0x6569
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a56
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x7414
callq 0x21f0
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x78ef(%rip), %rsi      # 0xed12
leaq 0x78f6(%rip), %rdx      # 0xed20
callq 0xbb78
leaq 0x40(%rsp), %rdi
callq 0x6569
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a56
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x7455
callq 0x21f0
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x78bd(%rip), %rsi      # 0xed21
leaq 0x78c4(%rip), %rdx      # 0xed2f
callq 0xbb78
leaq 0x40(%rsp), %rdi
callq 0x6569
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a56
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x7496
callq 0x21f0
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x788b(%rip), %rsi      # 0xed30
leaq 0x7892(%rip), %rdx      # 0xed3e
callq 0xbb78
leaq 0x40(%rsp), %rdi
callq 0x6569
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a56
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x74d7
callq 0x21f0
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x7859(%rip), %rsi      # 0xed3f
leaq 0x7860(%rip), %rdx      # 0xed4d
callq 0xbb78
leaq 0x40(%rsp), %rdi
callq 0x6569
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a56
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x7518
callq 0x21f0
callq 0x88f8
movq %rax, %rdi
callq 0x898c
movq 0xdaac(%rip), %rdi      # 0x14fd8
leaq 0x781b(%rip), %rsi      # 0xed4e
movl $0x9, %edx
callq 0x2240
movq 0x60(%rsp), %r12
movq 0x70(%rsp), %r13
movl 0x78(%rsp), %ebp
cmpq %r13, %r12
setne %al
testl %ebp, %ebp
setne %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x75b8
movq 0xda74(%rip), %r14      # 0x14fd8
xorl %ebx, %ebx
movq (%r12), %r15
movl $0x1, %edx
movq %r14, %rdi
leaq 0x738e(%rip), %rsi      # 0xe907
callq 0x2240
xorl %esi, %esi
btq %rbx, %r15
setb %sil
movq %r14, %rdi
callq 0x2320
xorl %eax, %eax
cmpl $0x3f, %ebx
leal 0x1(%rbx), %ecx
sete %al
leaq (%r12,%rax,8), %r12
movl $0x0, %eax
cmovel %eax, %ecx
cmpq %r13, %r12
setne %al
cmpl %ebp, %ecx
setne %dl
orb %al, %dl
movl %ecx, %ebx
jne 0x7566
movq 0xda19(%rip), %rdi      # 0x14fd8
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq 0xd9fe(%rip), %rdi      # 0x14fd8
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x88f8
movq %rax, %rdi
callq 0x898c
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x7603
callq 0x21f0
leaq 0x28(%rsp), %rbx
movq %rbx, %rdi
callq 0xa92c
movq -0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x761e
callq 0x21f0
xorl %eax, %eax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x76d2
jmp 0x76d2
jmp 0x76d2
jmp 0x76d2
jmp 0x76d2
jmp 0x76d2
jmp 0x76b7
jmp 0x76d2
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
jne 0x76a1
jmp 0x7702
jmp 0x76a8
jmp 0x7694
jmp 0x76a8
jmp 0x7694
jmp 0x76a8
jmp 0x7694
jmp 0x76a8
jmp 0x7694
jmp 0x76a8
jmp 0x7694
jmp 0x76a8
jmp 0x7694
jmp 0x76a8
jmp 0x7694
jmp 0x76a8
jmp 0x7694
jmp 0x76a8
jmp 0x7694
jmp 0x76a8
jmp 0x7694
jmp 0x76a8
jmp 0x7694
jmp 0x76a8
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7702
callq 0x21f0
jmp 0x7702
movq %rax, %rbx
jmp 0x7702
jmp 0x76b7
jmp 0x76b7
jmp 0x76b7
jmp 0x76b7
jmp 0x76b7
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x76d5
callq 0x21f0
jmp 0x76d5
jmp 0x76d2
movq %rax, %rbx
jmp 0x76f8
movq %rax, %rbx
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x76f8
callq 0x21f0
xorl %eax, %eax
movq %rax, 0x60(%rsp)
movl %eax, 0x68(%rsp)
movq %rax, 0x70(%rsp)
movl %eax, 0x78(%rsp)
leaq 0x8(%rsp), %rdi
callq 0x9aa4
movq %rbx, %rdi
callq 0x2350