// File: /workspace/github_cpp_makefile_star2_O3/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 0x4d883(%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 0x6b151
cmpq $0x0, 0x270(%r15)
je 0x6b1f5
leaq 0x268(%r15), %r12
movq (%r12), %rax
cmpb $0x3e, (%rax)
jne 0x6b299
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 0x6b089
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 0x13a0c
movq %rbx, %rdi
callq 0x6b85e
movq %r14, %rdi
movq %r13, %rsi
callq 0xb900
movq %r15, %rdi
callq 0x1012e
testb %al, %al
je 0x6b10e
movq %r12, %rdi
callq 0x144b9
testb %al, %al
jne 0x6b10e
movq (%r12), %rax
cmpb $0x3e, (%rax)
je 0x6b10e
movq %r12, %rdi
callq 0x1382d
movq 0x268(%r15), %rsi
movq 0x270(%r15), %rdx
movq %r14, %rdi
callq 0xb1b0
jmp 0x6b0b9
movq %r12, %rdi
callq 0x144b9
testb %al, %al
je 0x6b118
movq %r15, %rdi
callq 0x1012e
cmpb $0x0, 0x218(%r15)
je 0x6b0fa
cmpb $0x0, 0x6c(%rsp)
je 0x6b129
movq %r14, %rdi
callq 0x1489c
jmp 0x6b131
movq %r14, %rdi
callq 0x148cc
cmpb $0x0, 0x48(%rbx)
jne 0x6b13f
movq %rbx, %rdi
callq 0x8e498
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 0x6b33d
leaq 0xa0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2cede(%rip), %rsi     # 0x98052
leaq 0x2cee7(%rip), %rdx     # 0x98062
leaq 0x90(%rsp), %rdi
callq 0xdc76
leaq 0xc8(%rsp), %rdi
movl $0x98, %esi
callq 0xe1b2
leaq 0xe8(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0xe10a
leaq 0x28013(%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 0x6b347
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x6b354
movq %rbx, %r14
callq 0xb6b0
testl %eax, %eax
jne 0x6b33d
leaq 0xa0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2ce3a(%rip), %rsi     # 0x98052
leaq 0x2ce43(%rip), %rdx     # 0x98062
leaq 0x90(%rsp), %rdi
callq 0xdc76
leaq 0xc8(%rsp), %rdi
movl $0x99, %esi
callq 0xe1b2
leaq 0xe8(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0xe10a
leaq 0x27f6f(%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 0x6b3c8
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x6b3d5
movq %rbx, %r14
callq 0xb6b0
testl %eax, %eax
jne 0x6b33d
leaq 0xa0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2cd96(%rip), %rsi     # 0x98052
leaq 0x2cd9f(%rip), %rdx     # 0x98062
leaq 0x90(%rsp), %rdi
callq 0xdc76
leaq 0xc8(%rsp), %rdi
movl $0x9a, %esi
callq 0xe1b2
leaq 0xe8(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0xe10a
leaq 0x27ecb(%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 0x6b449
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x6b456
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 0x2cd3e(%rip), %rsi     # 0x980bd
leaq 0x2cd68(%rip), %rdx     # 0x980ee
leaq 0x70(%rsp), %rdi
callq 0xdc76
leaq 0x2851a(%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 0x6b4ca
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
jmp 0x6b4d7
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 0x2ccbd(%rip), %rsi     # 0x980bd
leaq 0x2cce7(%rip), %rdx     # 0x980ee
leaq 0x70(%rsp), %rdi
callq 0xdc76
leaq 0x28499(%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 0x6b545
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
jmp 0x6b552
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 0x2cc3c(%rip), %rsi     # 0x980bd
leaq 0x2cc66(%rip), %rdx     # 0x980ee
leaq 0x70(%rsp), %rdi
callq 0xdc76
leaq 0x28418(%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 0x6b5c0
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
jmp 0x6b5cd
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 0xe10a
leaq 0x2cbe3(%rip), %rsi     # 0x980ef
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 0x6b634
movups (%rcx), %xmm0
leaq 0x18(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x6b641
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 0xe10a
leaq 0x2cb75(%rip), %rsi     # 0x980fc
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 0x6b662
movups (%rcx), %xmm0
leaq 0x18(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x6b66f
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 0xe10a
leaq 0x2cb12(%rip), %rsi     # 0x98114
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 0x6b690
movups (%rcx), %xmm0
leaq 0x18(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x6b69d
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 0x1155a
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 0x1155a
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 0x1155a
jmp 0x6b6c6
jmp 0x6b6e7
jmp 0x6b6c6
jmp 0x6b6e7
movq %rax, %r15
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x6b6ea
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b6ea
movq %rax, %r15
leaq 0x118(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b714
movq 0x118(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b714
jmp 0x6b711
jmp 0x6b711
movq %rax, %r15
movq 0x48(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6b734
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b734
jmp 0x6b731
jmp 0x6b731
movq %rax, %r15
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x6b757
movq 0x80(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b757
jmp 0x6b754
jmp 0x6b754
movq %rax, %r15
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x6b777
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b777
jmp 0x6b774
jmp 0x6b774
movq %rax, %r15
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b7a1
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b7a1
jmp 0x6b79e
jmp 0x6b79e
movq %rax, %r15
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b7cb
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b7cb
jmp 0x6b7c8
jmp 0x6b7c8
movq %rax, %r15
movq 0x90(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6b7ff
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6b7ff
jmp 0x6b7fc
jmp 0x6b7fc
jmp 0x6b7fc
movq %rax, %r15
movq %rbx, %r14
jmp 0x6b7ff
jmp 0x6b7fc
jmp 0x6b7fc
movq %rax, %r15
movq (%r14), %rdi
cmpq 0xb0(%rsp), %rdi
je 0x6b81f
movq 0xb0(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
leaq 0x4c172(%rip), %rax     # 0xb7998
addq $0x10, %rax
movq 0xc0(%rsp), %rcx
movq %rax, (%rcx)
movq 0x8(%rcx), %rdi
cmpq 0xb8(%rsp), %rdi
je 0x6b856
movq 0xb8(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
movq %r15, %rdi
callq 0xba60