// File: /workspace/github_cpp_makefile_star2_O3/canzarlab[P]Trajan/src/Parallel.cpp
// Function: MakeSolver(Graph&, Graph&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double, bool, int, ParallelSolver&)
GenericBnBSolver* MakeSolver(Graph& t1, Graph& t2, string d, double k, bool dag, int threadid, ParallelSolver& s)
{
    if (threadid < 0 || threadid >= MAX_THREADS)
        return nullptr;
    else if (threadid == 0)
        return new BnBBFMF(t1, t2, d, k, dag, s);
    else if (threadid == 1)
        return new BnBBFLF(t1, t2, d, k, dag, s);
    else if (threadid == 2)
        return new BnBBFWF(t1, t2, d, k, dag, s);
    else if (threadid == 3)
        return new BnBDFMF(t1, t2, d, k, dag, s);
    else if (threadid == 4)
        return new BnBDFLF(t1, t2, d, k, dag, s);
    else if (threadid == 5)
        return new BnBDFWF(t1, t2, d, k, dag, s);
    else if (threadid == 6)
        return new BnBHMF (t1, t2, d, k, dag, s);
    else if (threadid == 7)
        return new BnBHLF (t1, t2, d, k, dag, s);
    else if (threadid == 8)
        return new BnBHWF (t1, t2, d, k, dag, s);
    else if (threadid == 9)
        return new BnBHA  (t1, t2, d, k, dag, s);
    else if (threadid == 10)
        return new BnBBFA (t1, t2, d, k, dag, s);
    else if (threadid == 11)
        return new BnBDFA (t1, t2, d, k, dag, s);
    else if (threadid == 12)
        return new BnBBFF (t1, t2, d, k, dag, s);
    else if (threadid == 13)
        return new BnBDFF (t1, t2, d, k, dag, s);
    else if (threadid == 14)
        return new BnBHF  (t1, t2, d, k, dag, s);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1f8, %rsp            # imm = 0x1F8
cmpl $0xe, %r8d
jbe 0x4aa2b
xorl %r13d, %r13d
jmp 0x4af7e
movq %r9, %r14
movl %r8d, %ebx
movl %ecx, %ebp
movq %rdx, %r13
movq %rsi, %r15
movq %rdi, %r12
movsd %xmm0, 0x10(%rsp)
movl $0x188, %edi            # imm = 0x188
callq 0x9340
movq %rax, 0x8(%rsp)
cmpl $0xd, %ebx
ja 0x4af26
movl %ebx, %eax
leaq 0x2586d(%rip), %rcx     # 0x702d0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1e8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x1d8(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x1d8(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4beb6
movq 0x1d8(%rsp), %rdi
jmp 0x4af6e
leaq 0x88(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x78(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x78(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c6e0
movq 0x78(%rsp), %rdi
jmp 0x4af6e
leaq 0x168(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x158(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x158(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c1ae
movq 0x158(%rsp), %rdi
jmp 0x4af6e
leaq 0x68(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x58(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x58(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c79e
movq 0x58(%rsp), %rdi
jmp 0x4af6e
leaq 0xc8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0xb8(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0xb8(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c564
movq 0xb8(%rsp), %rdi
jmp 0x4af6e
leaq 0x1a8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x198(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x198(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c032
movq 0x198(%rsp), %rdi
jmp 0x4af6e
leaq 0x188(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x178(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x178(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c0f0
movq 0x178(%rsp), %rdi
jmp 0x4af6e
leaq 0x108(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0xf8(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0xf8(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c3e8
movq 0xf8(%rsp), %rdi
jmp 0x4af6e
leaq 0x1c8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x1b8(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x1b8(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4bf74
movq 0x1b8(%rsp), %rdi
jmp 0x4af6e
leaq 0x148(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x138(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x138(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c26c
movq 0x138(%rsp), %rdi
jmp 0x4af6e
leaq 0x48(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x38(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x38(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c85c
movq 0x38(%rsp), %rdi
jmp 0x4af6e
leaq 0x128(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x118(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x118(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c32a
movq 0x118(%rsp), %rdi
jmp 0x4af6e
leaq 0xa8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x98(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x98(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c622
movq 0x98(%rsp), %rdi
jmp 0x4af6e
leaq 0xe8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0xd8(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0xd8(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c4a6
movq 0xd8(%rsp), %rdi
jmp 0x4af6e
leaq 0x28(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x18(%rsp), %rdi
callq 0xda46
movzbl %bpl, %r8d
leaq 0x18(%rsp), %rcx
movq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movsd 0x10(%rsp), %xmm0
movq %r14, %r9
callq 0x4c91a
movq 0x18(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4af7e
movq (%rbx), %rsi
incq %rsi
callq 0x9350
movq %r13, %rax
addq $0x1f8, %rsp            # imm = 0x1F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x28(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0xd8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0xe8(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0x98(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0xa8(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0x118(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x128(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0x38(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x48(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0x138(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x148(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0x1b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x1c8(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0xf8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x108(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0x178(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x188(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0x1d8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x1e8(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0x198(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x1a8(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0xb8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0xc8(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0x58(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x68(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0x158(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x168(%rsp), %rsi
jmp 0x4b149
movq %rax, %r14
movq 0x78(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b172
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x9350
jmp 0x4b172
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
jmp 0x4b16f
movq %rax, %r14
movl $0x188, %esi            # imm = 0x188
movq 0x8(%rsp), %rdi
callq 0x9350
movq %r14, %rdi
callq 0x9680
nop