// File: ncbi[P]amr/gff.cpp
// Function: GFF_sp::Annot::findLoci(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) const
const Set<Locus>& Annot::findLoci (const string &fasta_prot) const
{
  ASSERT (! fasta_prot. empty ());

  string gff_prot (fasta_prot);
  if (! fasta2gff_prot. empty ())
  {
  	string s;
  	if (! find (fasta2gff_prot, gff_prot, s))
  	  throw runtime_error ("FASTA protein " + strQuote (fasta_prot) + " is not found in GFF-protein match file");
  	gff_prot = std::move (s);
  }
  ASSERT (! gff_prot. empty ());
  
  const Set<Locus>* loci = findPtr (prot2loci, gff_prot);
  if (! loci)
    throw runtime_error ("FASTA protein " + fasta_prot + (fasta_prot == gff_prot ? "" : " (converted to GFF protein " + gff_prot +")") + " is misssing in .gff-file");
  ASSERT (! loci->empty ());

  return *loci;
}

// Assembly:
subq $0x528, %rsp            # imm = 0x528
movq %rdi, 0x520(%rsp)
movq %rsi, 0x518(%rsp)
movq 0x520(%rsp), %rax
movq %rax, 0x70(%rsp)
callq 0xc090
movl $0x0, (%rax)
movq 0x518(%rsp), %rdi
callq 0xcc10
testb $0x1, %al
jne 0xb2945
jmp 0xb2bcc
callq 0xc8c0
cmpl $0x0, %eax
jne 0xb2bc2
leaq 0x477(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0xcd00
movq 0x68(%rsp), %rdx
leaq 0x1e68d(%rip), %rsi     # 0xd0ffe
leaq 0x478(%rsp), %rdi
callq 0x29fd0
jmp 0xb2980
leaq 0x440(%rsp), %rdi
movl $0x1da, %esi            # imm = 0x1DA
callq 0x2ded0
jmp 0xb2994
leaq 0x498(%rsp), %rdi
leaq 0x478(%rsp), %rsi
leaq 0x440(%rsp), %rdx
callq 0x2dde0
jmp 0xb29b3
leaq 0x191e7(%rip), %rdx     # 0xcbba1
leaq 0x4b8(%rsp), %rdi
leaq 0x498(%rsp), %rsi
callq 0x2a2f0
jmp 0xb29d1
leaq 0x3ff(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0xcd00
movq 0x60(%rsp), %rdx
leaq 0x1eae6(%rip), %rsi     # 0xd14d5
leaq 0x400(%rsp), %rdi
callq 0x29fd0
jmp 0xb29fe
leaq 0x1b011(%rip), %rdx     # 0xcda16
leaq 0x420(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0x2a2f0
jmp 0xb2a1c
leaq 0x4d8(%rsp), %rdi
leaq 0x4b8(%rsp), %rsi
leaq 0x420(%rsp), %rdx
callq 0x2dde0
jmp 0xb2a3b
leaq 0x1ead3(%rip), %rdx     # 0xd1515
leaq 0x4f8(%rsp), %rdi
leaq 0x4d8(%rsp), %rsi
callq 0x2a2f0
jmp 0xb2a59
leaq 0x4f8(%rsp), %rdi
callq 0x3e9b0
jmp 0xb2a68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2bb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2ba3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2b96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2b89
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2b6f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2b62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2b55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2b48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
leaq 0x4f8(%rsp), %rdi
callq 0xce98
leaq 0x4d8(%rsp), %rdi
callq 0xce98
leaq 0x420(%rsp), %rdi
callq 0xce98
leaq 0x400(%rsp), %rdi
callq 0xce98
leaq 0x3ff(%rsp), %rdi
callq 0xc7a0
leaq 0x4b8(%rsp), %rdi
callq 0xce98
leaq 0x498(%rsp), %rdi
callq 0xce98
leaq 0x440(%rsp), %rdi
callq 0xce98
leaq 0x478(%rsp), %rdi
callq 0xce98
leaq 0x477(%rsp), %rdi
callq 0xc7a0
jmp 0xb35ef
movl $0x1, %edi
callq 0xc8d0
movq 0x518(%rsp), %rsi
leaq 0x3d8(%rsp), %rdi
callq 0xc320
movq 0x70(%rsp), %rdi
addq $0x38, %rdi
callq 0xb3910
testb $0x1, %al
jne 0xb2dc4
leaq 0x3b8(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xca10
movq 0x70(%rsp), %rdi
movq 0x50(%rsp), %rdx
addq $0x38, %rdi
leaq 0x3d8(%rsp), %rsi
callq 0x77970
movb %al, 0x5f(%rsp)
jmp 0xb2c2a
movb 0x5f(%rsp), %al
testb $0x1, %al
jne 0xb2d8e
jmp 0xb2c38
movb $0x1, 0x357(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq %rax, 0x48(%rsp)
movq 0x518(%rsp), %rsi
leaq 0x358(%rsp), %rdi
movl $0x22, %edx
callq 0x424f0
jmp 0xb2c6b
leaq 0x1e8ba(%rip), %rsi     # 0xd152c
leaq 0x378(%rsp), %rdi
leaq 0x358(%rsp), %rdx
callq 0x2a340
jmp 0xb2c89
leaq 0x1e8ab(%rip), %rdx     # 0xd153b
leaq 0x398(%rsp), %rdi
leaq 0x378(%rsp), %rsi
callq 0x2a2f0
jmp 0xb2ca7
movq 0x48(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0xcbb0
jmp 0xb2cbb
movq 0x48(%rsp), %rdi
movb $0x0, 0x357(%rsp)
movq 0x53321(%rip), %rsi     # 0x105ff0
movq 0x5329a(%rip), %rdx     # 0x105f70
callq 0xcc80
jmp 0xb35fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2db2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2d76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2d69
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2d5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
leaq 0x398(%rsp), %rdi
callq 0xce98
leaq 0x378(%rsp), %rdi
callq 0xce98
leaq 0x358(%rsp), %rdi
callq 0xce98
testb $0x1, 0x357(%rsp)
jne 0xb2d82
jmp 0xb2d8c
movq 0x48(%rsp), %rdi
callq 0xc580
jmp 0xb2db2
leaq 0x3d8(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
callq 0xc8f0
leaq 0x3b8(%rsp), %rdi
callq 0xce98
jmp 0xb2dc4
leaq 0x3b8(%rsp), %rdi
callq 0xce98
jmp 0xb35e2
callq 0xc090
movl $0x0, (%rax)
leaq 0x3d8(%rsp), %rdi
callq 0xcc10
testb $0x1, %al
jne 0xb2de5
jmp 0xb306c
callq 0xc8c0
cmpl $0x0, %eax
jne 0xb3062
leaq 0x2af(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0xcd00
movq 0x40(%rsp), %rdx
leaq 0x1e1ed(%rip), %rsi     # 0xd0ffe
leaq 0x2b0(%rsp), %rdi
callq 0x29fd0
jmp 0xb2e20
leaq 0x288(%rsp), %rdi
movl $0x1e4, %esi            # imm = 0x1E4
callq 0x2ded0
jmp 0xb2e34
leaq 0x2d0(%rsp), %rdi
leaq 0x2b0(%rsp), %rsi
leaq 0x288(%rsp), %rdx
callq 0x2dde0
jmp 0xb2e53
leaq 0x18d47(%rip), %rdx     # 0xcbba1
leaq 0x2f0(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
callq 0x2a2f0
jmp 0xb2e71
leaq 0x247(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xcd00
movq 0x38(%rsp), %rdx
leaq 0x1e646(%rip), %rsi     # 0xd14d5
leaq 0x248(%rsp), %rdi
callq 0x29fd0
jmp 0xb2e9e
leaq 0x1ab71(%rip), %rdx     # 0xcda16
leaq 0x268(%rsp), %rdi
leaq 0x248(%rsp), %rsi
callq 0x2a2f0
jmp 0xb2ebc
leaq 0x310(%rsp), %rdi
leaq 0x2f0(%rsp), %rsi
leaq 0x268(%rsp), %rdx
callq 0x2dde0
jmp 0xb2edb
leaq 0x1e552(%rip), %rdx     # 0xd1434
leaq 0x330(%rsp), %rdi
leaq 0x310(%rsp), %rsi
callq 0x2a2f0
jmp 0xb2ef9
leaq 0x330(%rsp), %rdi
callq 0x3e9b0
jmp 0xb2f08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb3050
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb3043
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb3036
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb3029
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb300f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb3002
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2ff5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb2fe8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
leaq 0x330(%rsp), %rdi
callq 0xce98
leaq 0x310(%rsp), %rdi
callq 0xce98
leaq 0x268(%rsp), %rdi
callq 0xce98
leaq 0x248(%rsp), %rdi
callq 0xce98
leaq 0x247(%rsp), %rdi
callq 0xc7a0
leaq 0x2f0(%rsp), %rdi
callq 0xce98
leaq 0x2d0(%rsp), %rdi
callq 0xce98
leaq 0x288(%rsp), %rdi
callq 0xce98
leaq 0x2b0(%rsp), %rdi
callq 0xce98
leaq 0x2af(%rsp), %rdi
callq 0xc7a0
jmp 0xb35e2
movl $0x1, %edi
callq 0xc8d0
movq 0x70(%rsp), %rdi
addq $0x8, %rdi
leaq 0x3d8(%rsp), %rsi
callq 0xb3ae0
movq %rax, 0x30(%rsp)
jmp 0xb3089
movq 0x30(%rsp), %rax
movq %rax, 0x238(%rsp)
cmpq $0x0, 0x238(%rsp)
jne 0xb331c
movb $0x1, 0x18e(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq %rax, 0x28(%rsp)
movq 0x518(%rsp), %rdx
leaq 0x1e461(%rip), %rsi     # 0xd152c
leaq 0x1d8(%rsp), %rdi
callq 0x2a1c0
jmp 0xb30da
movq 0x518(%rsp), %rdi
leaq 0x3d8(%rsp), %rsi
callq 0x30100
movb $0x0, 0x1b6(%rsp)
movb $0x0, 0x18f(%rsp)
testb $0x1, %al
jne 0xb3105
jmp 0xb313c
leaq 0x1b7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xcd00
movq 0x20(%rsp), %rdx
movb $0x1, 0x1b6(%rsp)
leaq 0x1c8f3(%rip), %rsi     # 0xcfa1e
leaq 0x1b8(%rsp), %rdi
callq 0x29fd0
jmp 0xb313a
jmp 0xb3182
leaq 0x1e420(%rip), %rsi     # 0xd1563
leaq 0x190(%rsp), %rdi
leaq 0x3d8(%rsp), %rdx
callq 0x2a1c0
jmp 0xb315a
movb $0x1, 0x18f(%rsp)
leaq 0x1c0f5(%rip), %rdx     # 0xcf25e
leaq 0x1b8(%rsp), %rdi
leaq 0x190(%rsp), %rsi
callq 0x2a2f0
jmp 0xb3180
jmp 0xb3182
leaq 0x1f8(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
leaq 0x1b8(%rsp), %rdx
callq 0x2dde0
jmp 0xb31a1
leaq 0x1e3d7(%rip), %rdx     # 0xd157f
leaq 0x218(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0x2a2f0
jmp 0xb31bf
movq 0x28(%rsp), %rdi
leaq 0x218(%rsp), %rsi
callq 0xcbb0
jmp 0xb31d3
movq 0x28(%rsp), %rdi
movb $0x0, 0x18e(%rsp)
movq 0x52e09(%rip), %rsi     # 0x105ff0
movq 0x52d82(%rip), %rdx     # 0x105f70
callq 0xcc80
jmp 0xb35fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb35e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb3301
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb32db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb32c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb32b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb32a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
leaq 0x218(%rsp), %rdi
callq 0xce98
leaq 0x1f8(%rsp), %rdi
callq 0xce98
leaq 0x1b8(%rsp), %rdi
callq 0xce98
testb $0x1, 0x18f(%rsp)
jne 0xb32cc
jmp 0xb32d9
leaq 0x190(%rsp), %rdi
callq 0xce98
jmp 0xb32db
testb $0x1, 0x1b6(%rsp)
jne 0xb32e7
jmp 0xb32f4
leaq 0x1b7(%rsp), %rdi
callq 0xc7a0
leaq 0x1d8(%rsp), %rdi
callq 0xce98
testb $0x1, 0x18e(%rsp)
jne 0xb330d
jmp 0xb3317
movq 0x28(%rsp), %rdi
callq 0xc580
jmp 0xb35e2
callq 0xc090
movl $0x0, (%rax)
movq 0x238(%rsp), %rdi
callq 0xb3b60
testb $0x1, %al
jne 0xb333d
jmp 0xb35bb
callq 0xc8c0
cmpl $0x0, %eax
jne 0xb35b1
leaq 0xe7(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xcd00
movq 0x18(%rsp), %rdx
leaq 0x1dc95(%rip), %rsi     # 0xd0ffe
leaq 0xe8(%rsp), %rdi
callq 0x29fd0
jmp 0xb3378
leaq 0xc0(%rsp), %rdi
movl $0x1e9, %esi            # imm = 0x1E9
callq 0x2ded0
jmp 0xb338c
leaq 0x108(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x2dde0
jmp 0xb33ab
leaq 0x187ef(%rip), %rdx     # 0xcbba1
leaq 0x128(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x2a2f0
jmp 0xb33c9
leaq 0x7f(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xcd00
movq 0x10(%rsp), %rdx
leaq 0x1e0f1(%rip), %rsi     # 0xd14d5
leaq 0x80(%rsp), %rdi
callq 0x29fd0
jmp 0xb33f3
leaq 0x1a61c(%rip), %rdx     # 0xcda16
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x2a2f0
jmp 0xb3411
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
callq 0x2dde0
jmp 0xb3430
leaq 0x1e162(%rip), %rdx     # 0xd1599
leaq 0x168(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0x2a2f0
jmp 0xb344e
leaq 0x168(%rsp), %rdi
callq 0x3e9b0
jmp 0xb345d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb35a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb3595
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb3588
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb357b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb3564
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb3557
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb354a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
jmp 0xb353d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x468(%rsp)
movl %eax, 0x464(%rsp)
leaq 0x168(%rsp), %rdi
callq 0xce98
leaq 0x148(%rsp), %rdi
callq 0xce98
leaq 0xa0(%rsp), %rdi
callq 0xce98
leaq 0x80(%rsp), %rdi
callq 0xce98
leaq 0x7f(%rsp), %rdi
callq 0xc7a0
leaq 0x128(%rsp), %rdi
callq 0xce98
leaq 0x108(%rsp), %rdi
callq 0xce98
leaq 0xc0(%rsp), %rdi
callq 0xce98
leaq 0xe8(%rsp), %rdi
callq 0xce98
leaq 0xe7(%rsp), %rdi
callq 0xc7a0
jmp 0xb35e2
movl $0x1, %edi
callq 0xc8d0
movq 0x238(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x3d8(%rsp), %rdi
callq 0xce98
movq 0x8(%rsp), %rax
addq $0x528, %rsp            # imm = 0x528
retq
leaq 0x3d8(%rsp), %rdi
callq 0xce98
movq 0x468(%rsp), %rdi
callq 0xccf0
nopl (%rax)