// File: /workspace/github_cpp_makefile_star2_O1/ncbi[P]amr/seq.cpp
// Function: Seq_sp::Seq::Seq(Common_sp::LineInput&, unsigned long, bool, bool)
Seq::Seq (LineInput &fasta,
          size_t reserveLen,
          bool sparse_arg,
     	    bool makeUpper)
: sparse (sparse_arg)
{
	QC_ASSERT (! fasta. eof);
	QC_ASSERT (! fasta. line. empty ());
  QC_ASSERT (fasta. line [0] == '>');
  name = fasta. line. substr (1);
  replace (name, '\t', ' ');
  qcName ();
  
  seq. reserve (reserveLen);

  while (   fasta. nextLine () 
         && ! (   strBlank (fasta. line)
               || fasta. line [0] == '>'
       	      )
       	)
  {
    trimTrailing (fasta. line);
    seq += fasta. line;
  }

  while (   ! fasta. eof        
         && strBlank (fasta. line)
        )
    fasta. nextLine ();

  if (makeUpper)
    strUpper (seq);
  else
    strLower (seq);

	if (! sparse)
	  unSparse ();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movl %r8d, 0x6c(%rsp)
movq %rdx, %r13
movq %rsi, %r15
movq %rdi, %r14
leaq 0x18(%rdi), %rax
movq %rax, 0xb8(%rsp)
movq %rax, 0x8(%rdi)
xorl %eax, %eax
movq %rax, 0x10(%rdi)
movb %al, 0x18(%rdi)
leaq 0x4d703(%rip), %rdx     # 0xb8860
movq %rdx, (%rdi)
leaq 0x28(%rdi), %rbx
leaq 0x38(%rdi), %rdx
movq %rdx, 0xb0(%rsp)
movq %rdx, 0x28(%rdi)
movq %rax, 0x30(%rdi)
movb %al, 0x38(%rdi)
movb %cl, 0x48(%rdi)
callq 0xb070
movl $0x0, (%rax)
cmpb $0x1, 0x218(%r15)
movq %r14, 0xc0(%rsp)
je 0x6b2dd
movl $0x0, (%rax)
cmpq $0x0, 0x270(%r15)
je 0x6b381
leaq 0x268(%r15), %r12
movl $0x0, (%rax)
movq (%r12), %rax
cmpb $0x3e, (%rax)
jne 0x6b425
leaq 0x8(%rsp), %rdi
movl $0x1, %edx
movq %r12, %rsi
movq $-0x1, %rcx
callq 0xb5d0
addq $0x8, %r14
leaq 0x8(%rsp), %rbp
movq %r14, %rdi
movq %rbp, %rsi
callq 0xb6f0
movq (%rbp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x6b215
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xb5a0
movq %r14, %rdi
movl $0x9, %esi
movl $0x20, %edx
movq %rbx, %r14
movq 0xc0(%rsp), %rbx
callq 0x139c3
movq %rbx, %rdi
callq 0x6b9ea
movq %r14, %rdi
movq %r13, %rsi
callq 0xb900
movq %r15, %rdi
callq 0x1010a
testb %al, %al
je 0x6b29a
movq %r12, %rdi
callq 0x144a2
testb %al, %al
jne 0x6b29a
movq (%r12), %rax
cmpb $0x3e, (%rax)
je 0x6b29a
movq %r12, %rdi
callq 0x137c6
movq 0x268(%r15), %rsi
movq 0x270(%r15), %rdx
movq %r14, %rdi
callq 0xb1b0
jmp 0x6b245
movq %r12, %rdi
callq 0x144a2
testb %al, %al
je 0x6b2a4
movq %r15, %rdi
callq 0x1010a
cmpb $0x0, 0x218(%r15)
je 0x6b286
cmpb $0x0, 0x6c(%rsp)
je 0x6b2b5
movq %r14, %rdi
callq 0x14899
jmp 0x6b2bd
movq %r14, %rdi
callq 0x148c9
cmpb $0x0, 0x48(%rbx)
jne 0x6b2cb
movq %rbx, %rdi
callq 0x8e8b8
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %r14
callq 0xb6b0
testl %eax, %eax
jne 0x6b4c9
leaq 0xa0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2cd62(%rip), %rsi     # 0x98062
leaq 0x2cd6b(%rip), %rdx     # 0x98072
leaq 0x90(%rsp), %rdi
callq 0xdc76
leaq 0xc8(%rsp), %rdi
movl $0x98, %esi
callq 0xe1a8
leaq 0xe8(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0xe100
leaq 0x27e87(%rip), %rsi     # 0x931d1
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x38(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6b4d3
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x6b4e0
movq %rbx, %r14
callq 0xb6b0
testl %eax, %eax
jne 0x6b4c9
leaq 0xa0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2ccbe(%rip), %rsi     # 0x98062
leaq 0x2ccc7(%rip), %rdx     # 0x98072
leaq 0x90(%rsp), %rdi
callq 0xdc76
leaq 0xc8(%rsp), %rdi
movl $0x99, %esi
callq 0xe1a8
leaq 0xe8(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0xe100
leaq 0x27de3(%rip), %rsi     # 0x931d1
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x38(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6b554
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x6b561
movq %rbx, %r14
callq 0xb6b0
testl %eax, %eax
jne 0x6b4c9
leaq 0xa0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2cc1a(%rip), %rsi     # 0x98062
leaq 0x2cc23(%rip), %rdx     # 0x98072
leaq 0x90(%rsp), %rdi
callq 0xdc76
leaq 0xc8(%rsp), %rdi
movl $0x9a, %esi
callq 0xe1a8
leaq 0xe8(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0xe100
leaq 0x27d3f(%rip), %rsi     # 0x931d1
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x38(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6b5d5
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x6b5e2
movl $0x1, %edi
callq 0xb6d0
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x80(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x2cbc2(%rip), %rsi     # 0x980cd
leaq 0x2cbec(%rip), %rdx     # 0x980fe
leaq 0x70(%rsp), %rdi
callq 0xdc76
leaq 0x2838e(%rip), %rsi     # 0x938b1
leaq 0x70(%rsp), %rdi
callq 0xbb10
leaq 0x58(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6b656
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
jmp 0x6b663
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x80(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x2cb41(%rip), %rsi     # 0x980cd
leaq 0x2cb6b(%rip), %rdx     # 0x980fe
leaq 0x70(%rsp), %rdi
callq 0xdc76
leaq 0x2830d(%rip), %rsi     # 0x938b1
leaq 0x70(%rsp), %rdi
callq 0xbb10
leaq 0x58(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6b6d1
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
jmp 0x6b6de
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x80(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x2cac0(%rip), %rsi     # 0x980cd
leaq 0x2caea(%rip), %rdx     # 0x980fe
leaq 0x70(%rsp), %rdi
callq 0xdc76
leaq 0x2828c(%rip), %rsi     # 0x938b1
leaq 0x70(%rsp), %rdi
callq 0xbb10
leaq 0x58(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6b74c
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
jmp 0x6b759
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rsi
leaq 0x48(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x108(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xe100
leaq 0x2ca67(%rip), %rsi     # 0x980ff
leaq 0x108(%rsp), %rdi
callq 0xbb10
leaq 0x18(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6b7c0
movups (%rcx), %xmm0
leaq 0x18(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x6b7cd
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rsi
leaq 0x48(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x108(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xe100
leaq 0x2c9f9(%rip), %rsi     # 0x9810c
leaq 0x108(%rsp), %rdi
callq 0xbb10
leaq 0x18(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6b7ee
movups (%rcx), %xmm0
leaq 0x18(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x6b7fb
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rsi
leaq 0x48(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x108(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xe100
leaq 0x2c996(%rip), %rsi     # 0x98124
leaq 0x108(%rsp), %rdi
callq 0xbb10
leaq 0x18(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6b81c
movups (%rcx), %xmm0
leaq 0x18(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x6b829
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
jmp 0x6b852
jmp 0x6b873
jmp 0x6b852
jmp 0x6b873
movq %rax, %r15
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x6b876
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b876
movq %rax, %r15
leaq 0x118(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b8a0
movq 0x118(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b8a0
jmp 0x6b89d
jmp 0x6b89d
movq %rax, %r15
movq 0x48(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6b8c0
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b8c0
jmp 0x6b8bd
jmp 0x6b8bd
movq %rax, %r15
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x6b8e3
movq 0x80(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b8e3
jmp 0x6b8e0
jmp 0x6b8e0
movq %rax, %r15
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x6b903
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b903
jmp 0x6b900
jmp 0x6b900
movq %rax, %r15
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b92d
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b92d
jmp 0x6b92a
jmp 0x6b92a
movq %rax, %r15
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b957
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b957
jmp 0x6b954
jmp 0x6b954
movq %rax, %r15
movq 0x90(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6b98b
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b98b
jmp 0x6b988
jmp 0x6b988
jmp 0x6b988
movq %rax, %r15
movq %rbx, %r14
jmp 0x6b98b
jmp 0x6b988
jmp 0x6b988
movq %rax, %r15
movq (%r14), %rdi
cmpq 0xb0(%rsp), %rdi
je 0x6b9ab
movq 0xb0(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
leaq 0x4bfb6(%rip), %rax     # 0xb7968
addq $0x10, %rax
movq 0xc0(%rsp), %rcx
movq %rax, (%rcx)
movq 0x8(%rcx), %rdi
cmpq 0xb8(%rsp), %rdi
je 0x6b9e2
movq 0xb8(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
movq %r15, %rdi
callq 0xba60