// File: /workspace/github_c_makefile_star2_O0/richarddurbin[P]hash10x/seqio.c
// Function: seqIOread
BOOL seqIOread (SeqIO *si)
{
  if (!si->nb) return FALSE ;
  si->recStart = si->b - si->buf ;
  
  if (si->type == BINARY)
    { bufConfirmNbytes (si, 3*sizeof(int)) ;
      si->idLen = *((int*)si->b) ; si->b += sizeof(int) ;
      si->descLen = *((int*)si->b) ; si->b += sizeof(int) ;
      si->seqLen = *((int*)si->b) ; si->b += sizeof(int) ;
      si->nb -= 3*sizeof(int) ;
      int nBytes = si->idLen+1 + si->descLen+1
	+ (si->seqLen+3)/4 + si->isQual ? (si->seqLen+7)/8 : 0 ;
      nBytes = 4*((nBytes+3)/4) ;
      bufConfirmNbytes (si, nBytes) ;
      si->idStart = si->b - si->buf ;
      si->descStart = si->idStart + si->idLen+1 ;
      if (si->seqLen > si->seqBufSize)
	{ if (si->seqBufSize) { free (si->seqBuf) ; if (si->isQual) free (si->qualBuf) ; }
	  si->seqBufSize = 1 << 20 ; while (si->seqBufSize < si->seqLen) si->seqBufSize <<= 1 ;
	  si->seqBuf = new (si->seqBufSize, char) ;
	  if (si->isQual) si->qualBuf = new (si->seqBufSize, char) ;
	}
      si->seqStart = si->descStart + si->descLen+1 ;
      sqioSeqUnpack ((U8*)(si->buf+si->seqStart), si->seqBuf, si->seqLen) ;
      if (si->isQual)
	{ si->qualStart = si->seqStart + (si->seqLen+3)/4 ;
	  sqioQualUnpack ((U8*)(si->buf+si->qualStart), si->qualBuf, si->seqLen, si->qualThresh) ;
	}
      ++si->nSeq ;
      si->b += nBytes ; si->nb -= nBytes ;
      return TRUE ;
    }

  /* if get to here then this is a text file, FASTA or FASTQ */
  
  if (si->type == FASTA)
    { if (*si->b != '>') die ("no initial > for FASTA record line %d", si->line) ; }
  else if (si->type == FASTQ)
    { if (*si->b != '@') die ("no initial @ for FASTQ record line %d", si->line) ; }
  bufAdvanceInRecord(si) ; si->idStart = si->b - si->buf ;
  while (!isspace(*si->b)) bufAdvanceInRecord(si) ;
  si->idLen = si->b - sqioId(si) ;
  if (*si->b != '\n') /* a space or tab - whatever follows on this line is description */
    { *si->b = 0 ; bufAdvanceInRecord(si) ;
      si->descStart = si->b - si->buf ;
      while (*si->b != '\n') bufAdvanceInRecord(si) ;
      si->descLen = si->b - sqioDesc(si) ;
    }
  else { si->descLen = si->descStart = 0 ; }
  *si->b = 0 ;
  ++si->line ; bufAdvanceInRecord(si) ;	              /* line 2 */
  si->seqStart = si->b - si->buf ;
  if (si->type == FASTA)
    { while (si->nb && *si->b != '>')
	{ while (*si->b != '\n') bufAdvanceInRecord(si) ;
	  ++si->line ; bufAdvanceEndRecord(si) ;
	}
      char *s = sqioSeq(si), *t = s ;
      while (s < si->b) if ((*t++ = si->convert[*s++]) < 0) --t ;
      si->seqLen = t - sqioSeq(si) ;
    }
  else if (si->type == FASTQ)
    { while (*si->b != '\n') bufAdvanceInRecord(si) ;
      si->seqLen = si->b - sqioSeq(si) ;
      if (si->convert)
	{ char *s = sqioSeq(si) ;
	  while (s < si->b) { *s = si->convert[*s] ; ++s ; }
	}
      ++si->line ; bufAdvanceInRecord(si) ; 	      /* line 3 */
      if (*si->b != '+') die ("missing + FASTQ line %d", si->line) ;
      while (*si->b != '\n') bufAdvanceInRecord(si) ; /* ignore remainder of + line */
      ++si->line ; bufAdvanceInRecord(si) ;	      /* line 4 */
      si->qualStart = si->b - si->buf ;
      while (*si->b != '\n') bufAdvanceInRecord(si) ;
      if (si->b - si->buf - si->qualStart != si->seqLen)
	die ("qual not same length as seq line %d", si->line) ;
      if (si->isQual) { char *q = sqioQual(si), *e = q + si->seqLen ; while (q < e) *q++ -= 33 ; }
      ++si->line ; bufAdvanceEndRecord(si) ;
    }

  ++si->nSeq ;
  return TRUE ;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x2da2
movb $0x0, -0x1(%rbp)
jmp 0x3e10
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x40(%rax)
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3185
movq -0x10(%rbp), %rax
movslq 0x38(%rax), %rax
cmpq $0xc, %rax
jae 0x2dec
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x2dec
movq -0x10(%rbp), %rdi
callq 0x3e20
movq -0x10(%rbp), %rax
movslq 0x38(%rax), %rax
cmpq $0xc, %rax
jae 0x2e23
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x2e23
movq -0x10(%rbp), %rdi
callq 0x3f20
movq -0x10(%rbp), %rax
movslq 0x38(%rax), %rax
cmpq $0xc, %rax
jae 0x2e59
movq 0xa1c0(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x6a90(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movl (%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x4, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movl (%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x14(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x4, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movl (%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x4, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rax
movslq 0x38(%rax), %rcx
subq $0xc, %rcx
movl %ecx, 0x38(%rax)
movq -0x10(%rbp), %rax
movl 0x10(%rax), %eax
addl $0x1, %eax
movq -0x10(%rbp), %rcx
addl 0x14(%rcx), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
addl $0x3, %eax
movl $0x4, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x44(%rbp), %eax
addl %ecx, %eax
movq -0x10(%rbp), %rcx
movsbl 0x2c(%rcx), %ecx
addl %ecx, %eax
cmpl $0x0, %eax
je 0x2f21
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
addl $0x7, %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl %eax, -0x48(%rbp)
jmp 0x2f28
xorl %eax, %eax
movl %eax, -0x48(%rbp)
jmp 0x2f28
movl -0x48(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
addl $0x3, %eax
movl $0x4, %ecx
cltd
idivl %ecx
shll $0x2, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x38(%rax), %eax
cmpl -0x14(%rbp), %eax
jge 0x2f61
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x2f61
movq -0x10(%rbp), %rdi
callq 0x3e20
movq -0x10(%rbp), %rax
movl 0x38(%rax), %eax
cmpl -0x14(%rbp), %eax
jge 0x2f96
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x2f96
movq -0x10(%rbp), %rdi
callq 0x3f20
movq -0x10(%rbp), %rax
movl 0x38(%rax), %eax
cmpl -0x14(%rbp), %eax
jge 0x2fca
movq 0xa04f(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x691f(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x1c(%rax)
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x10(%rbp), %rax
addl 0x10(%rax), %ecx
addl $0x1, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl 0x68(%rcx), %eax
jle 0x30af
movq -0x10(%rbp), %rax
cmpl $0x0, 0x68(%rax)
je 0x3042
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rdi
callq 0x1040
movq -0x10(%rbp), %rax
cmpb $0x0, 0x2c(%rax)
je 0x3040
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rdi
callq 0x1040
jmp 0x3042
movq -0x10(%rbp), %rax
movl $0x100000, 0x68(%rax)   # imm = 0x100000
movq -0x10(%rbp), %rax
movl 0x68(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl 0x18(%rcx), %eax
jge 0x306b
movq -0x10(%rbp), %rax
movl 0x68(%rax), %ecx
shll %ecx
movl %ecx, 0x68(%rax)
jmp 0x304d
movq -0x10(%rbp), %rax
movslq 0x68(%rax), %rdi
shlq $0x0, %rdi
callq 0x8260
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x70(%rax)
movq -0x10(%rbp), %rax
cmpb $0x0, 0x2c(%rax)
je 0x30ad
movq -0x10(%rbp), %rax
movslq 0x68(%rax), %rdi
shlq $0x0, %rdi
callq 0x8260
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x78(%rax)
jmp 0x30af
movq -0x10(%rbp), %rax
movl 0x20(%rax), %ecx
movq -0x10(%rbp), %rax
addl 0x14(%rax), %ecx
addl $0x1, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x24(%rax)
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rdi
movq -0x10(%rbp), %rax
movslq 0x24(%rax), %rax
addq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rsi
movq -0x10(%rbp), %rax
movl 0x18(%rax), %edx
callq 0x3fe0
movq -0x10(%rbp), %rax
cmpb $0x0, 0x2c(%rax)
je 0x3148
movq -0x10(%rbp), %rax
movl 0x24(%rax), %ecx
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
addl $0x3, %eax
movl $0x4, %esi
cltd
idivl %esi
addl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x28(%rax)
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rdi
movq -0x10(%rbp), %rax
movslq 0x28(%rax), %rax
addq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rsi
movq -0x10(%rbp), %rax
movl 0x18(%rax), %edx
movq -0x10(%rbp), %rax
movl 0x30(%rax), %ecx
callq 0x40a0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movl -0x14(%rbp), %edx
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x58(%rax)
movl -0x14(%rbp), %edx
movq -0x10(%rbp), %rax
movl 0x38(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x38(%rax)
movb $0x1, -0x1(%rbp)
jmp 0x3e10
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x31b5
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
je 0x31b3
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %esi
leaq 0x6751(%rip), %rdi      # 0x98fd
movb $0x0, %al
callq 0x8180
jmp 0x31e7
movq -0x10(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x31e5
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
je 0x31e3
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %esi
leaq 0x6747(%rip), %rdi      # 0x9923
movb $0x0, %al
callq 0x8180
jmp 0x31e5
jmp 0x31e7
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x324b
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x321e
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x3249
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x3247
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x3249
jmp 0x324b
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x327d
movq 0x9d9c(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x666c(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x1c(%rax)
callq 0x1240
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x58(%rcx), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x32c9
jmp 0x3364
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x332d
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x3300
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x332b
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x3329
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x332b
jmp 0x332d
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x335f
movq 0x9cba(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x658a(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
jmp 0x3299
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x1c(%rdx), %rdx
addq %rdx, %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0x3534
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movb $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x340e
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x33e1
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x340c
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x340a
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x340c
jmp 0x340e
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x3440
movq 0x9bd9(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x64a9(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0x350b
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x34d4
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x34a7
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x34d2
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x34d0
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x34d2
jmp 0x34d4
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x3506
movq 0x9b13(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x63e3(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
jmp 0x345c
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x20(%rdx), %rdx
addq %rdx, %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x14(%rax)
jmp 0x354a
movq -0x10(%rbp), %rax
movl $0x0, 0x20(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x14(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movb $0x0, (%rax)
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x3c(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x35c6
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x3599
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x35c4
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x35c2
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x35c4
jmp 0x35c6
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x35f8
movq 0x9a21(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x62f1(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x24(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x3859
jmp 0x3623
movq -0x10(%rbp), %rcx
xorl %eax, %eax
cmpl $0x0, 0x38(%rcx)
movb %al, -0x49(%rbp)
je 0x3646
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
setne %al
movb %al, -0x49(%rbp)
movb -0x49(%rbp), %al
testb $0x1, %al
jne 0x3652
jmp 0x3779
jmp 0x3654
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0x3703
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x36cc
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x369f
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x36ca
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x36c8
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x36ca
jmp 0x36cc
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x36fe
movq 0x991b(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x61eb(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
jmp 0x3654
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x3c(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x3774
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x3747
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x3772
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x3770
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x3772
jmp 0x3774
jmp 0x3623
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3790
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rax
movq %rax, -0x58(%rbp)
jmp 0x37a7
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x24(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x58(%rcx), %rax
jae 0x380a
movq -0x10(%rbp), %rax
movq 0x60(%rax), %rax
movq -0x20(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x20(%rbp)
movsbq (%rcx), %rcx
movl (%rax,%rcx,4), %eax
movq -0x28(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x28(%rbp)
movb %al, (%rcx)
movsbl %al, %eax
cmpl $0x0, %eax
jge 0x3808
movq -0x28(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x37b7
movq -0x28(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3829
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rax
movq %rax, -0x68(%rbp)
jmp 0x3840
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x24(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
movq -0x68(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x18(%rax)
jmp 0x3dfc
movq -0x10(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x3dfa
jmp 0x3868
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0x3917
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x38e0
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x38b3
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x38de
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x38dc
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x38de
jmp 0x38e0
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x3912
movq 0x9707(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x5fd7(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
jmp 0x3868
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x393a
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rax
movq %rax, -0x78(%rbp)
jmp 0x3951
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x24(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x78(%rbp)
movq -0x70(%rbp), %rax
movq -0x78(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x60(%rax)
je 0x39df
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3987
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rax
movq %rax, -0x80(%rbp)
jmp 0x399e
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x24(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x58(%rcx), %rax
jae 0x39dd
movq -0x10(%rbp), %rax
movq 0x60(%rax), %rax
movq -0x30(%rbp), %rcx
movsbq (%rcx), %rcx
movl (%rax,%rcx,4), %eax
movb %al, %cl
movq -0x30(%rbp), %rax
movb %cl, (%rax)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x39a6
jmp 0x39df
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x3c(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x3a50
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x3a23
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x3a4e
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x3a4c
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x3a4e
jmp 0x3a50
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x3a82
movq 0x9597(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x5e67(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movsbl (%rax), %eax
cmpl $0x2b, %eax
je 0x3aa7
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %esi
leaq 0x5ea9(%rip), %rdi      # 0x9949
movb $0x0, %al
callq 0x8180
jmp 0x3aa9
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0x3b58
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x3b21
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x3af4
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x3b1f
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x3b1d
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x3b1f
jmp 0x3b21
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x3b53
movq 0x94c6(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x5d96(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
jmp 0x3aa9
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x3c(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x3bc9
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x3b9c
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x3bc7
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x3bc5
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x3bc7
jmp 0x3bc9
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x3bfb
movq 0x941e(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x5cee(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x28(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0x3cc6
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x3c8f
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x3c62
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x3c8d
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x3c8b
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x3c8d
jmp 0x3c8f
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x3cc1
movq 0x9358(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x5c28(%rip), %rsi      # 0x98d9
movb $0x0, %al
callq 0x1120
movb $0x0, -0x1(%rbp)
jmp 0x3e10
jmp 0x3c17
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
subq %rcx, %rax
movq -0x10(%rbp), %rcx
movslq 0x28(%rcx), %rcx
subq %rcx, %rax
movq -0x10(%rbp), %rcx
movslq 0x18(%rcx), %rcx
cmpq %rcx, %rax
je 0x3d06
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %esi
leaq 0x5c62(%rip), %rdi      # 0x9961
movb $0x0, %al
callq 0x8180
movq -0x10(%rbp), %rax
cmpb $0x0, 0x2c(%rax)
je 0x3d87
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3d2a
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rax
movq %rax, -0x88(%rbp)
jmp 0x3d44
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x28(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq 0x18(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
jae 0x3d85
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movsbl (%rax), %ecx
subl $0x21, %ecx
movb %cl, (%rax)
jmp 0x3d62
jmp 0x3d87
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x3c(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x38(%rcx)
cmpl $0x0, %eax
jne 0x3df8
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x3dcb
movq -0x10(%rbp), %rdi
callq 0x3e20
jmp 0x3df6
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x50(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x34(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x3df4
movq -0x10(%rbp), %rdi
callq 0x3f20
jmp 0x3df6
jmp 0x3df8
jmp 0x3dfa
jmp 0x3dfc
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax)