// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/esa-seqread.c
// Function: gt_nextSequentialsuftabvalue
int gt_nextSequentialsuftabvalue(GtUword *currentsuffix,
                                 Sequentialsuffixarrayreader *ssar)
{
  gt_assert(ssar != NULL);
  if (ssar->scanfile)
  {
#if defined (_LP64) || defined (_WIN64)
    if (ssar->suffixarray->suftabstream_GtUword.fp != NULL)
    {
      return gt_readnextfromstream_GtUword(currentsuffix,
                                 &ssar->suffixarray->suftabstream_GtUword);
    } else
    {
      uint32_t readvalue = 0;
      int ret = gt_readnextfromstream_uint32_t(
                                 &readvalue,
                                 &ssar->suffixarray->suftabstream_uint32_t);
      *currentsuffix = (GtUword) readvalue;
      return ret;
    }
#else
     return gt_readnextfromstream_GtUword(currentsuffix,
                                      &ssar->suffixarray->suftabstream_GtUword);
#endif
  }
  if (ssar->scanfile)
  {
    *currentsuffix = ESASUFFIXPTRGET(ssar->suftab,ssar->nextsuftabindex++);
  } else
  {
    *currentsuffix = ESASUFFIXPTRGET(ssar->suffixarray->suftab,
                                     ssar->nextsuftabindex++);
  }
  return 1;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
testq %rsi, %rsi
je 0x151ba8
movq %rdi, %rbx
movq (%rsi), %r15
cmpb $0x1, 0x40(%rsi)
jne 0x151b14
movq 0xb0(%r15), %rcx
testq %rcx, %rcx
je 0x151b2a
movl 0xa4(%r15), %eax
cmpl 0xa0(%r15), %eax
jb 0x151af8
movq 0xa8(%r15), %rdi
pushq $0x8
popq %rsi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17ad0
movq %rax, %r14
movl %r14d, 0xa0(%r15)
movq 0xb0(%r15), %rdi
callq 0x17e70
testl %eax, %eax
jne 0x151be0
andl $0x0, 0xa4(%r15)
xorl %eax, %eax
testl %r14d, %r14d
je 0x151b9e
movq 0xa8(%r15), %rcx
leal 0x1(%rax), %edx
movl %edx, 0xa4(%r15)
movl %eax, %eax
movq (%rcx,%rax,8), %rcx
jmp 0x151b98
movq 0x58(%r15), %rax
movq 0x18(%rsi), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%rsi)
movq (%rax,%rcx,8), %rcx
jmp 0x151b98
movl 0x8c(%r15), %eax
cmpl 0x88(%r15), %eax
jb 0x151b82
movq 0x90(%r15), %rdi
movq 0x98(%r15), %rcx
pushq $0x4
popq %rsi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17ad0
movq %rax, %r14
movl %r14d, 0x88(%r15)
movq 0x98(%r15), %rdi
callq 0x17e70
testl %eax, %eax
jne 0x151bfa
andl $0x0, 0x8c(%r15)
xorl %eax, %eax
testl %r14d, %r14d
je 0x151ba4
movq 0x90(%r15), %rcx
leal 0x1(%rax), %edx
movl %edx, 0x8c(%r15)
movl %eax, %eax
movl (%rcx,%rax,4), %ecx
pushq $0x1
popq %rax
movq %rcx, (%rbx)
popq %rbx
popq %r14
popq %r15
retq
xorl %ecx, %ecx
jmp 0x151b9b
movq 0x2e63b9(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x19345a(%rip), %rsi    # 0x2e5013
leaq 0x1f2d78(%rip), %rdx    # 0x344938
leaq 0x1f36ea(%rip), %rcx    # 0x3452b1
leaq 0x1f3634(%rip), %r8     # 0x345202
movl $0x84, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x2e6381(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1a7fd8(%rip), %rsi    # 0x2f9bc9
leaq 0x231133(%rip), %rdx    # 0x382d2b
jmp 0x151c12
movq 0x2e6367(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1a7fbe(%rip), %rsi    # 0x2f9bc9
leaq 0x1a83c1(%rip), %rdx    # 0x2f9fd3
xorl %eax, %eax
callq 0x17a50
pushq $0x2
popq %rdi
callq 0x178f0