// File: /workspace/github_cpp_makefile_star2_O1/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 0x88b8
movq %rax, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x7d45(%rip), %rsi      # 0xe924
leaq 0x7d62(%rip), %rdx      # 0xe948
leaq 0x8(%rsp), %rdi
callq 0xbb3a
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x8904
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6c0c
callq 0x2200
movq 0xe3c5(%rip), %rbx      # 0x14fd8
leaq 0x7d2f(%rip), %rsi      # 0xe949
movl $0x29, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7d16(%rip), %rsi      # 0xe973
leaq 0x7d1c(%rip), %rdx      # 0xe980
callq 0xbb3a
leaq 0x8(%rsp), %rdi
callq 0x2a0b
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6c82
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %r14
leaq 0x7cce(%rip), %rsi      # 0xe981
movl $0x35, %edx
movq %rax, %rdi
callq 0x2250
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x2e47
leaq 0x7cc4(%rip), %rsi      # 0xe9b7
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x7c9a(%rip), %rsi      # 0xe9c8
movl $0x38, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7c90(%rip), %rsi      # 0xea01
leaq 0x7c97(%rip), %rdx      # 0xea0f
callq 0xbb3a
leaq 0x8(%rsp), %rdi
callq 0x313f
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6d96
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %r14
leaq 0x7c49(%rip), %rsi      # 0xea10
movl $0x2c, %edx
movq %rax, %rdi
callq 0x2250
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x348e
leaq 0x7bb0(%rip), %rsi      # 0xe9b7
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x7bfb(%rip), %rsi      # 0xea3d
movl $0x3e, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7bf7(%rip), %rsi      # 0xea7c
leaq 0x7c04(%rip), %rdx      # 0xea90
callq 0xbb3a
leaq 0x8(%rsp), %rdi
callq 0x3861
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6eac
callq 0x2200
leaq 0x7bde(%rip), %rsi      # 0xea91
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x2250
movq %rbx, %rdi
movl %ebp, %esi
callq 0x2350
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x7bb2(%rip), %rsi      # 0xeaad
movl $0x38, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7ba8(%rip), %rsi      # 0xeae6
leaq 0x7bb8(%rip), %rdx      # 0xeafd
callq 0xbb3a
leaq 0x8(%rsp), %rdi
callq 0x3ca7
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6f63
callq 0x2200
leaq 0x7b94(%rip), %rsi      # 0xeafe
movl $0x4b, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7b39(%rip), %rsi      # 0xeae6
leaq 0x7b49(%rip), %rdx      # 0xeafd
callq 0xbb3a
leaq 0x8(%rsp), %rdi
callq 0x43f7
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6fd2
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %r14
leaq 0x7b47(%rip), %rsi      # 0xeb4a
movl $0x2d, %edx
movq %rax, %rdi
callq 0x2250
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x4e3f
leaq 0x7974(%rip), %rsi      # 0xe9b7
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x7afa(%rip), %rsi      # 0xeb78
movl $0x2b, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7ae3(%rip), %rsi      # 0xeba4
leaq 0x7aee(%rip), %rdx      # 0xebb6
callq 0xbb3a
leaq 0x8(%rsp), %rdi
callq 0x4f19
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x70e6
callq 0x2200
leaq 0x7aca(%rip), %rsi      # 0xebb7
movl $0x39, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x52a8
leaq 0x788a(%rip), %rsi      # 0xe9b7
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x7a89(%rip), %rsi      # 0xebf1
movl $0x2b, %edx
movq %rbx, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7a72(%rip), %rsi      # 0xec1d
leaq 0x7a80(%rip), %rdx      # 0xec32
callq 0xbb3a
leaq 0x8(%rsp), %rdi
callq 0x5382
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x71d0
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %r14
leaq 0x7a32(%rip), %rsi      # 0xec33
movl $0x2e, %edx
movq %rax, %rdi
callq 0x2250
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x7a1e(%rip), %rsi      # 0xec62
leaq 0x7a22(%rip), %rdx      # 0xec6d
callq 0xbb3a
leaq 0x8(%rsp), %rdi
callq 0x5e9e
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7269
callq 0x2200
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x79f6(%rip), %rsi      # 0xec6e
leaq 0x79fa(%rip), %rdx      # 0xec79
callq 0xbb3a
leaq 0x8(%rsp), %rdi
callq 0x5e9e
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x729d
callq 0x2200
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x79ce(%rip), %rsi      # 0xec7a
leaq 0x79d2(%rip), %rdx      # 0xec85
callq 0xbb3a
leaq 0x8(%rsp), %rdi
callq 0x5e9e
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x72d1
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %r14
leaq 0x7984(%rip), %rsi      # 0xec86
movl $0x31, %edx
movq %rax, %rdi
callq 0x2250
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x88b8
movq %rax, %r14
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x796b(%rip), %rsi      # 0xecb8
leaq 0x7967(%rip), %rdx      # 0xecbb
callq 0xbb3a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x8904
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7375
callq 0x2200
leaq 0x70(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7937(%rip), %rsi      # 0xecbc
leaq 0x793c(%rip), %rdx      # 0xecc8
leaq 0x60(%rsp), %rdi
callq 0xbb3a
leaq 0x8(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x91d6
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x73b4
callq 0x2200
leaq 0x8(%rsp), %rdi
callq 0x9346
callq 0x88b8
movq %rax, %rdi
callq 0x894e
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq 0xdbef(%rip), %rdi      # 0x14fd8
callq 0x2040
movq %rax, %rdi
callq 0x2190
movq %rax, %rbx
leaq 0x78c9(%rip), %rsi      # 0xecc9
movl $0x24, %edx
movq %rax, %rdi
callq 0x2250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
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 0x88b8
movq %rax, %rbx
leaq 0x50(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7886(%rip), %rsi      # 0xecee
leaq 0x7884(%rip), %rdx      # 0xecf3
leaq 0x40(%rsp), %rdi
callq 0xbb3a
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0x8904
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x7495
callq 0x2200
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x7850(%rip), %rsi      # 0xecf4
leaq 0x7857(%rip), %rdx      # 0xed02
callq 0xbb3a
leaq 0x40(%rsp), %rdi
callq 0x666c
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a10
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x74d6
callq 0x2200
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x781e(%rip), %rsi      # 0xed03
leaq 0x7825(%rip), %rdx      # 0xed11
callq 0xbb3a
leaq 0x40(%rsp), %rdi
callq 0x666c
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a10
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x7517
callq 0x2200
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x77ec(%rip), %rsi      # 0xed12
leaq 0x77f3(%rip), %rdx      # 0xed20
callq 0xbb3a
leaq 0x40(%rsp), %rdi
callq 0x666c
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a10
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x7558
callq 0x2200
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x77ba(%rip), %rsi      # 0xed21
leaq 0x77c1(%rip), %rdx      # 0xed2f
callq 0xbb3a
leaq 0x40(%rsp), %rdi
callq 0x666c
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a10
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x7599
callq 0x2200
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x7788(%rip), %rsi      # 0xed30
leaq 0x778f(%rip), %rdx      # 0xed3e
callq 0xbb3a
leaq 0x40(%rsp), %rdi
callq 0x666c
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a10
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x75da
callq 0x2200
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x7756(%rip), %rsi      # 0xed3f
leaq 0x775d(%rip), %rdx      # 0xed4d
callq 0xbb3a
leaq 0x40(%rsp), %rdi
callq 0x666c
movzbl %al, %esi
leaq 0x60(%rsp), %rdi
callq 0x9a10
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x761b
callq 0x2200
callq 0x88b8
movq %rax, %rdi
callq 0x894e
movq 0xd9a9(%rip), %rdi      # 0x14fd8
leaq 0x7718(%rip), %rsi      # 0xed4e
movl $0x9, %edx
callq 0x2250
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 0x76bb
movq 0xd971(%rip), %r14      # 0x14fd8
xorl %ebx, %ebx
movq (%r12), %r15
movl $0x1, %edx
movq %r14, %rdi
leaq 0x728b(%rip), %rsi      # 0xe907
callq 0x2250
xorl %esi, %esi
btq %rbx, %r15
setb %sil
movq %r14, %rdi
callq 0x2330
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 0x7669
movq 0xd916(%rip), %rdi      # 0x14fd8
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq 0xd8fb(%rip), %rdi      # 0x14fd8
callq 0x2040
movq %rax, %rdi
callq 0x2190
callq 0x88b8
movq %rax, %rdi
callq 0x894e
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x7722
callq 0x2200
xorl %eax, %eax
movq %rax, 0x60(%rsp)
movl %eax, 0x68(%rsp)
movq %rax, 0x70(%rsp)
movl %eax, 0x78(%rsp)
movq %rax, 0x80(%rsp)
leaq 0x28(%rsp), %rbx
movq %rbx, %rdi
callq 0xa904
movq -0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x773d
callq 0x2200
xorl %eax, %eax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x77f1
jmp 0x77f1
jmp 0x77f1
jmp 0x77f1
jmp 0x77f1
jmp 0x77f1
jmp 0x77d6
jmp 0x77f1
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
jne 0x77c0
jmp 0x7829
jmp 0x77c7
jmp 0x77b3
jmp 0x77c7
jmp 0x77b3
jmp 0x77c7
jmp 0x77b3
jmp 0x77c7
jmp 0x77b3
jmp 0x77c7
jmp 0x77b3
jmp 0x77c7
jmp 0x77b3
jmp 0x77c7
jmp 0x77b3
jmp 0x77c7
jmp 0x77b3
jmp 0x77c7
jmp 0x77b3
jmp 0x77c7
jmp 0x77b3
jmp 0x77c7
jmp 0x77b3
jmp 0x77c7
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7829
callq 0x2200
jmp 0x7829
movq %rax, %rbx
jmp 0x7829
jmp 0x77d6
jmp 0x77d6
jmp 0x77d6
jmp 0x77d6
jmp 0x77d6
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x77f4
callq 0x2200
jmp 0x77f4
jmp 0x77f1
movq %rax, %rbx
jmp 0x781f
movq %rax, %rbx
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x781f
callq 0x2200
xorl %eax, %eax
movq %rax, 0x60(%rsp)
movl %eax, 0x68(%rsp)
movq %rax, 0x70(%rsp)
movl %eax, 0x78(%rsp)
movq %rax, 0x80(%rsp)
leaq 0x8(%rsp), %rdi
callq 0x9a5e
movq %rbx, %rdi
callq 0x2360