// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-seqread.c
// Function: gt_newSequentialsuffixarrayreaderfromfile
Sequentialsuffixarrayreader *gt_newSequentialsuffixarrayreaderfromfile(
                                        const char *indexname,
                                        unsigned int demand,
                                        bool scanfile,
                                        GtLogger *logger,
                                        GtError *err)
{
  Sequentialsuffixarrayreader *ssar;

  ssar = gt_malloc(sizeof *ssar);
  ssar->suffixarray = gt_malloc(sizeof *ssar->suffixarray);
  if ((scanfile ? streamsuffixarray : gt_mapsuffixarray)(ssar->suffixarray,
                                                         demand,
                                                         indexname,
                                                         logger,
                                                         err) != 0)
  {
    gt_free(ssar->suffixarray);
    gt_free(ssar);
    return NULL;
  }
  ssar->nextsuftabindex = 0;
  ssar->nextlcptabindex = 1UL;
  ssar->largelcpindex = 0;
  ssar->scanfile = scanfile;
  ssar->suftab = NULL;
  gt_assert(ssar->suffixarray != NULL);
  ssar->encseq = ssar->suffixarray->encseq;
  ssar->readmode = ssar->suffixarray->readmode;
  ssar->numberofsuffixes = gt_encseq_total_length(ssar->encseq) + 1;
  ssar->nonspecials = gt_encseq_total_length(ssar->encseq) -
                      gt_encseq_specialcharacters(ssar->encseq);
  ssar->extrainfo = NULL;
  return ssar;
}

// Assembly:
subq $0x38, %rsp
movb %dl, %al
movq %rdi, 0x28(%rsp)
movl %esi, 0x24(%rsp)
andb $0x1, %al
movb %al, 0x23(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movl $0x58, %edi
leaq 0x33c23f(%rip), %rsi    # 0x57764a
movl $0x23, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movl $0x100, %edi            # imm = 0x100
leaq 0x33c224(%rip), %rsi    # 0x57764a
movl $0x24, %edx
callq 0xe80f0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movb 0x23(%rsp), %dl
leaq -0x7646(%rip), %rax     # 0x233e00
leaq -0x7f4d(%rip), %rcx     # 0x233500
testb $0x1, %dl
cmovneq %rcx, %rax
movq 0x8(%rsp), %rcx
movq (%rcx), %rdi
movl 0x24(%rsp), %esi
movq 0x28(%rsp), %rdx
movq 0x18(%rsp), %rcx
movq 0x10(%rsp), %r8
callq *%rax
cmpl $0x0, %eax
je 0x23b4b3
movq 0x8(%rsp), %rax
movq (%rax), %rdi
leaq 0x33c1c5(%rip), %rsi    # 0x57764a
movl $0x2b, %edx
callq 0xe88c0
movq 0x8(%rsp), %rdi
leaq 0x33c1af(%rip), %rsi    # 0x57764a
movl $0x2c, %edx
callq 0xe88c0
movq $0x0, 0x30(%rsp)
jmp 0x23b5c7
movq 0x8(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x8(%rsp), %rax
movq $0x1, 0x20(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x28(%rax)
movb 0x23(%rsp), %cl
movq 0x8(%rsp), %rax
andb $0x1, %cl
movb %cl, 0x40(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x30(%rax)
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x23b539
movq 0x400a98(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2dab01(%rip), %rsi    # 0x516013
leaq 0x33c3ae(%rip), %rdx    # 0x5778c7
leaq 0x33c142(%rip), %rcx    # 0x577662
leaq 0x33c123(%rip), %r8     # 0x57764a
movl $0x34, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x23b53b
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movl 0x48(%rax), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x50(%rax)
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0xa9d00
movq %rax, %rcx
addq $0x1, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0xa9d00
movq %rax, (%rsp)
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0xb2530
movq (%rsp), %rcx
subq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x48(%rax)
movq 0x8(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)