// File: /workspace/github_cpp_makefile_star2_O2/Kingsford-Group[P]ghost2/src/alignGraphs.hpp
// Function: seedAndExtend[abi:cxx11](Graph&, Graph&, std::vector<D_alpha, std::allocator<D_alpha>>&, int, double)
bmap seedAndExtend(Graph& G, Graph& H, vector<D_alpha>& minP, int k, double skipProb)
{
  srand(time(0));
  vector<D_alpha> allDists(minP);
  distmap dmap = getDistMap(allDists);
  bmap f;
  while(minP.size()>0)
  {
    auto next = getNextSeed(skipProb, &minP);
    D_alpha d = next.first;

    string n1 = d.get_n1();
    string n2 = d.get_n2();
    if(f.left.find(n1) == f.left.end() && f.right.find(n2) == f.right.end())
      extendAlignment(d, G, H, &f, allDists, dmap, k);

    for(int i = 0; i < next.second.size(); i++){
      minP.push_back(next.second[i]);
      push_heap(minP.begin(), minP.end(), CompareD_alphaG());
    }
  }
  return f;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movsd %xmm0, 0x30(%rsp)
movl %r8d, 0x1c(%rsp)
movq %rcx, %r14
movq %rdx, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdi, %r12
xorl %edi, %edi
callq 0xe4d0
movl %eax, %edi
callq 0xe510
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1a3aa
leaq 0x90(%rsp), %rdi
movq %rbx, %rsi
callq 0x16035
leaq 0xc0(%rsp), %rsi
movq %r12, %rdi
callq 0x1a404
leaq 0x98(%r12), %rbp
leaq 0xa0(%r12), %r13
pushq $0x50
popq %r15
movq %r12, 0x10(%rsp)
movq 0x8(%r14), %rax
cmpq (%r14), %rax
je 0x16403
leaq 0xc0(%rsp), %r12
movq %r12, %rdi
movsd 0x30(%rsp), %xmm0
movq %r14, %rsi
callq 0x16142
leaq 0x128(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x19f6e
leaq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq 0xe7a0
leaq 0x38(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0xe7a0
movq %rbp, %rdi
leaq 0x58(%rsp), %rsi
callq 0x19f1e
movq (%rbp), %rcx
cmpq -0x8(%rcx), %rax
jne 0x16387
movq %r13, %rdi
leaq 0x38(%rsp), %rsi
callq 0x19fde
movq (%r13), %rcx
cmpq -0x8(%rcx), %rax
jne 0x16387
leaq 0x178(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x19f6e
movl 0x1c(%rsp), %eax
movl %eax, (%rsp)
movq %r12, %rdi
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x10(%rsp), %rcx
leaq 0x90(%rsp), %r9
callq 0x15d57
movq %r12, %rdi
callq 0x19ce8
movq %r13, %rbx
xorl %r12d, %r12d
xorl %r13d, %r13d
movq 0x110(%rsp), %rsi
movq 0x118(%rsp), %rax
subq %rsi, %rax
cqto
idivq %r15
cmpq %r13, %rax
jbe 0x163cd
addq %r12, %rsi
movq %r14, %rdi
callq 0x19cbc
movq (%r14), %rdi
movq 0x8(%r14), %rsi
callq 0x1a432
incq %r13
addq $0x50, %r12
jmp 0x16390
leaq 0x38(%rsp), %rdi
callq 0xe290
leaq 0x58(%rsp), %rdi
callq 0xe290
leaq 0x128(%rsp), %rdi
callq 0x19ce8
leaq 0xc0(%rsp), %rdi
callq 0x1a4d0
movq %rbx, %r13
jmp 0x162c0
leaq 0x90(%rsp), %rdi
callq 0x3dcbc
leaq 0x78(%rsp), %rdi
callq 0x19cfe
movq 0x10(%rsp), %rax
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x164a6
movq %rax, %rbx
jmp 0x164b3
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0x19ce8
jmp 0x1646a
jmp 0x16467
jmp 0x16467
movq %rax, %rbx
jmp 0x16498
movq %rax, %rbx
jmp 0x1648b
movq %rax, %rbx
jmp 0x1647e
movq %rax, %rbx
jmp 0x16474
jmp 0x16467
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0xe290
leaq 0x58(%rsp), %rdi
callq 0xe290
leaq 0x128(%rsp), %rdi
callq 0x19ce8
leaq 0xc0(%rsp), %rdi
callq 0x1a4d0
movq 0x10(%rsp), %rdi
addq $0x10, %rdi
callq 0x21a96
leaq 0x90(%rsp), %rdi
callq 0x3dcbc
leaq 0x78(%rsp), %rdi
callq 0x19cfe
movq %rbx, %rdi
callq 0xe9f0