// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/seq.cpp
// Function: Seq_sp::Seq::getGi() const
long /*CSeq_id::TGi*/ Seq::getGi () const
{
	const char* prefix = "gi|";
	size_t start = name. find (prefix, 0);
	size_t end;
	if (start == string::npos)
	{
		start = 0;
		end = name. find (' ');
	}
	else
	{
		ASSERT (start < getIdSize ());
		start += strlen (prefix);
	  end = name. find ('|', start);
	  ASSERT (end != string::npos);
  }
  if (end == string::npos)
  	end = name. size ();
  return str2<long> (name. substr (start, end - start));
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rdi, %r15
leaq 0x8(%rdi), %rbx
leaq 0x1adc9(%rip), %rsi     # 0x63195
movq %rbx, %rdi
xorl %edx, %edx
callq 0xcba0
cmpq $-0x1, %rax
je 0x484f4
movq %rax, %r14
callq 0xc070
movq %rax, %r12
andl $0x0, (%rax)
movq %r15, %rdi
callq 0xf262
cmpq %rax, %r14
jae 0x48551
addq $0x3, %r14
pushq $0x7c
popq %rsi
movq %rbx, %rdi
movq %r14, %rdx
callq 0xc790
andl $0x0, (%r12)
cmpq $-0x1, %rax
jne 0x48511
callq 0xc6d0
testl %eax, %eax
jne 0x48625
leaq 0x1abde(%rip), %rsi     # 0x63012
leaq 0x88(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x68(%rsp), %rdi
movl $0x114, %esi            # imm = 0x114
callq 0xe2d5
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0xe26e
leaq 0x15d5b(%rip), %rdx     # 0x5e1d1
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xe24f
leaq 0x1ad07(%rip), %rsi     # 0x63199
leaq 0x28(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x16424(%rip), %rdx     # 0x5e8cc
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x1acf6(%rip), %rdx     # 0x631ce
leaq 0x8(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0xe24f
leaq 0x8(%rsp), %rdi
callq 0x101d0
xorl %r14d, %r14d
pushq $0x20
popq %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0xc790
cmpq $-0x1, %rax
jne 0x48511
movq 0x10(%r15), %rax
xorl %r14d, %r14d
subq %r14, %rax
leaq 0x8(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
movq %rax, %rcx
callq 0xc5f0
movq %r15, %rdi
callq 0x5b078
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xcbe8
movq %rbx, %rax
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r14
popq %r15
retq
callq 0xc6d0
testl %eax, %eax
jne 0x48625
leaq 0x1aaad(%rip), %rsi     # 0x63012
leaq 0x88(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x68(%rsp), %rdi
movl $0x111, %esi            # imm = 0x111
callq 0xe2d5
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0xe26e
leaq 0x15c2a(%rip), %rdx     # 0x5e1d1
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xe24f
leaq 0x1abd6(%rip), %rsi     # 0x63199
leaq 0x28(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x162f3(%rip), %rdx     # 0x5e8cc
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x1abb0(%rip), %rdx     # 0x631b9
leaq 0x8(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0xe24f
leaq 0x8(%rsp), %rdi
callq 0x101d0
pushq $0x1
popq %rdi
callq 0xc6f0
jmp 0x48631
jmp 0x48640
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xcbe8
jmp 0x48643
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0xcbe8
jmp 0x48657
jmp 0x48654
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xcbe8
jmp 0x48668
jmp 0x48665
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xcbe8
jmp 0x48679
jmp 0x48676
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0xcbe8
jmp 0x4868d
jmp 0x4868a
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xcbe8
jmp 0x486a1
jmp 0x4869e
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xcbe8
jmp 0x486b2
jmp 0x486af
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
jmp 0x486cb
jmp 0x486be
movq %rax, %rbx
jmp 0x486d0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xcbe8
movq %rbx, %rdi
callq 0xcaa0