// File: /workspace/github_cpp_makefile_star2_O2/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 $0x118, %rsp            # imm = 0x118
movl %r8d, %r14d
movq %rdx, %r13
movq %rdi, %rbp
leaq 0x18(%rdi), %rax
movq %rax, 0x8(%rdi)
andq $0x0, 0x10(%rdi)
xorl %eax, %eax
movb %al, 0x18(%rdi)
leaq 0x410af(%rip), %rdx     # 0x88870
movq %rdx, (%rdi)
leaq 0x38(%rdi), %rdx
movq %rdx, 0x28(%rdi)
andq $0x0, 0x30(%rdi)
movq %rsi, %r15
leaq 0x28(%rdi), %rbx
movb %al, 0x38(%rdi)
movb %cl, 0x48(%rdi)
callq 0xc070
andl $0x0, (%rax)
cmpb $0x1, 0x218(%r15)
je 0x4790b
cmpq $0x0, 0x270(%r15)
je 0x479df
leaq 0x268(%r15), %r12
movq (%r12), %rax
cmpb $0x3e, (%rax)
jne 0x47ab3
movq %r13, 0x110(%rsp)
movl %r14d, 0xc(%rsp)
leaq 0x10(%rsp), %rdi
pushq $0x1
popq %rdx
pushq $-0x1
popq %rcx
movq %r12, %rsi
callq 0xc5f0
movq %rbp, %r13
addq $0x8, %rbp
leaq 0x10(%rsp), %r14
movq %rbp, %rdi
movq %r14, %rsi
callq 0xc710
movq %r14, %rdi
callq 0xcbe8
pushq $0x9
popq %rsi
pushq $0x20
popq %rdx
movq %rbp, %rdi
movq %r13, %rbp
callq 0x113a3
movq %rbp, %rdi
callq 0x47c5a
movq %rbx, %rdi
movq 0x110(%rsp), %rsi
callq 0xc910
movq %r15, %rdi
callq 0xf6a8
testb %al, %al
je 0x478c8
movq %r12, %rdi
callq 0x119a7
testb %al, %al
jne 0x478c8
movq (%r12), %rax
cmpb $0x3e, (%rax)
je 0x478c8
movq %r12, %rdi
callq 0x1127f
movq %rbx, %rdi
movq %r12, %rsi
callq 0xcb70
jmp 0x4787e
movq %r12, %rdi
callq 0x119a7
testb %al, %al
je 0x478d2
movq %r15, %rdi
callq 0xf6a8
cmpb $0x0, 0x218(%r15)
je 0x478b4
cmpb $0x0, 0xc(%rsp)
je 0x478e3
movq %rbx, %rdi
callq 0x11beb
jmp 0x478eb
movq %rbx, %rdi
callq 0x11c18
cmpb $0x0, 0x48(%rbp)
jne 0x478f9
movq %rbp, %rdi
callq 0x5b01e
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xc6d0
testl %eax, %eax
jne 0x47b87
leaq 0x1b6f3(%rip), %rsi     # 0x63012
leaq 0x90(%rsp), %rdi
leaq 0xb(%rsp), %rdx
callq 0xdbbe
leaq 0x70(%rsp), %rdi
movl $0x98, %esi
callq 0xe2d5
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0xe26e
leaq 0x16870(%rip), %rdx     # 0x5e1d1
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x1b700(%rip), %rsi     # 0x6307d
leaq 0x30(%rsp), %rdi
leaq 0xa(%rsp), %rdx
callq 0xdbbe
leaq 0x16f39(%rip), %rdx     # 0x5e8cc
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xe24f
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xe26e
leaq 0x1b6ec(%rip), %rdx     # 0x630af
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0xe24f
leaq 0x10(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x47b87
leaq 0x1b61f(%rip), %rsi     # 0x63012
leaq 0x90(%rsp), %rdi
leaq 0xb(%rsp), %rdx
callq 0xdbbe
leaq 0x70(%rsp), %rdi
movl $0x99, %esi
callq 0xe2d5
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0xe26e
leaq 0x1679c(%rip), %rdx     # 0x5e1d1
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x1b62c(%rip), %rsi     # 0x6307d
leaq 0x30(%rsp), %rdi
leaq 0xa(%rsp), %rdx
callq 0xdbbe
leaq 0x16e65(%rip), %rdx     # 0x5e8cc
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xe24f
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xe26e
leaq 0x1b625(%rip), %rdx     # 0x630bc
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0xe24f
leaq 0x10(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x47b87
leaq 0x1b54b(%rip), %rsi     # 0x63012
leaq 0x90(%rsp), %rdi
leaq 0xb(%rsp), %rdx
callq 0xdbbe
leaq 0x70(%rsp), %rdi
movl $0x9a, %esi
callq 0xe2d5
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0xe26e
leaq 0x166c8(%rip), %rdx     # 0x5e1d1
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x1b558(%rip), %rsi     # 0x6307d
leaq 0x30(%rsp), %rdi
leaq 0xa(%rsp), %rdx
callq 0xdbbe
leaq 0x16d91(%rip), %rdx     # 0x5e8cc
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xe24f
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xe26e
leaq 0x1b569(%rip), %rdx     # 0x630d4
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0xe24f
leaq 0x10(%rsp), %rdi
callq 0x101d0
pushq $0x1
popq %rdi
callq 0xc6f0
jmp 0x47b97
jmp 0x47ba6
jmp 0x47b97
jmp 0x47ba6
movq %rax, %r15
leaq 0x10(%rsp), %rdi
callq 0xcbe8
jmp 0x47ba9
movq %rax, %r15
leaq 0xf0(%rsp), %rdi
callq 0xcbe8
jmp 0x47bbf
jmp 0x47bbc
jmp 0x47bbc
movq %rax, %r15
leaq 0x50(%rsp), %rdi
callq 0xcbe8
jmp 0x47bd2
jmp 0x47bcf
jmp 0x47bcf
movq %rax, %r15
leaq 0x30(%rsp), %rdi
callq 0xcbe8
jmp 0x47be5
jmp 0x47be2
jmp 0x47be2
movq %rax, %r15
leaq 0xd0(%rsp), %rdi
callq 0xcbe8
jmp 0x47bfb
jmp 0x47bf8
jmp 0x47bf8
movq %rax, %r15
leaq 0xb0(%rsp), %rdi
callq 0xcbe8
jmp 0x47c11
jmp 0x47c0e
jmp 0x47c0e
movq %rax, %r15
leaq 0x70(%rsp), %rdi
callq 0xcbe8
jmp 0x47c24
jmp 0x47c21
jmp 0x47c21
movq %rax, %r15
leaq 0x90(%rsp), %rdi
callq 0xcbe8
jmp 0x47c42
jmp 0x47c3f
jmp 0x47c3f
jmp 0x47c3f
jmp 0x47c3f
jmp 0x47c3f
jmp 0x47c3f
movq %rax, %r15
movq %rbx, %rdi
callq 0xcbe8
movq %rbp, %rdi
callq 0xe0f6
movq %r15, %rdi
callq 0xcaa0