// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/match/eis-voiditf.c
// Function: gt_Bwtseqcontextiterator_next
GtUchar gt_Bwtseqcontextiterator_next(GtUword *bound,
                                      Bwtseqcontextiterator *bsci)
{
  GtUchar cc;

  if (bsci->bound != BWTSeqTerminatorPos(bsci->bwtseq))
  {
    cc = BWTSeqGetSym(bsci->bwtseq, bsci->bound);
  } else
  {
    cc = GT_SEPARATOR;
  }
  *bound = bsci->bound = BWTSeqLFMap(bsci->bwtseq, bsci->bound, &bsci->extBits);
  return cc;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
movq %rdi, %r13
movq 0x38(%rsi), %rax
movq 0x40(%rsi), %rsi
movb $-0x1, %bpl
cmpq 0x30(%rax), %rsi
je 0x1a8409
testq %rax, %rax
je 0x1a860f
movq (%rax), %rdi
testq %rdi, %rdi
je 0x1a8614
movq 0x18(%rax), %rdx
testq %rdx, %rdx
je 0x1a8614
movq (%rdi), %rax
movq 0x8(%rdi), %rbx
callq *0x30(%rax)
cmpl $0x1, (%rbx)
jne 0x1a8619
movzbl %al, %eax
movb 0x118(%rbx,%rax), %bpl
movq 0x38(%r14), %r12
movq (%r12), %rdi
testq %rdi, %rdi
je 0x1a8605
movq 0x18(%r12), %rdx
testq %rdx, %rdx
je 0x1a8605
movq 0x40(%r14), %r15
movq (%rdi), %rax
movq %r15, %rsi
callq *0x30(%rax)
movl %eax, %ebx
cmpq %r15, 0x30(%r12)
jne 0x1a845d
cmpb 0x24(%r12), %bl
jne 0x1a861e
movq 0x10(%r12), %rax
movq 0x38(%r12), %rcx
movq -0x8(%rcx,%rax,8), %rax
jmp 0x1a85c6
movb %bpl, 0x7(%rsp)
movq %r13, 0x8(%rsp)
movq 0x8(%r12), %rbp
testq %rbp, %rbp
je 0x1a860a
movq %rbp, %rdi
callq 0x1a67a7
movzbl %bl, %r13d
cmpw %r13w, %ax
jbe 0x1a860a
movq 0x8(%rbp), %rax
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
incl %edx
cmpw %r13w, (%rax,%rdx,2)
jbe 0x1a8494
movq 0x48(%r12), %rcx
movl (%rcx,%rdx,4), %ecx
cmpl $0x2, %ecx
je 0x1a8500
testl %ecx, %ecx
jne 0x1a8623
movq 0x38(%r12), %rax
movq (%rax,%r13,8), %rbp
movb 0x24(%r12), %al
cmpb %bl, %al
jbe 0x1a8525
movq (%r12), %rbx
testq %rbx, %rbx
je 0x1a862d
movq 0x18(%r12), %r12
movq 0x8(%rbx), %rdi
callq 0x1a67a7
cmpw %r13w, %ax
jbe 0x1a8632
movq (%rbx), %rax
movq %rbx, %rdi
movl %r13d, %esi
movq %r15, %rdx
movq %r12, %rcx
callq *0x8(%rax)
jmp 0x1a85b9
cmpl %edx, 0x4(%rbp)
jbe 0x1a8628
movq 0x38(%r12), %rcx
testl %edx, %edx
movq 0x8(%rsp), %r13
movb 0x7(%rsp), %bpl
je 0x1a8585
leal -0x1(%rdx), %esi
movzbl (%rax,%rsi,2), %eax
jmp 0x1a8587
jae 0x1a8538
movq 0x10(%r12), %rcx
decq %rcx
cmpq %r13, %rcx
jne 0x1a85df
cmpb %bl, %al
jne 0x1a859e
movq (%r12), %rbx
testq %rbx, %rbx
je 0x1a8637
movq 0x18(%r12), %rax
movq %rax, 0x10(%rsp)
movq 0x8(%rbx), %rdi
callq 0x1a67a7
cmpw %r13w, %ax
jbe 0x1a8641
movq (%rbx), %rax
movq %rbx, %rdi
movl %r13d, %esi
movq %r15, %rdx
movq 0x10(%rsp), %rcx
callq *0x8(%rax)
cmpq %r15, 0x30(%r12)
sbbq $0x0, %rax
jmp 0x1a85b9
xorl %eax, %eax
movq (%rcx,%rax,8), %rbx
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rcx
callq 0x1a37f3
addq %rbx, %rax
jmp 0x1a85c6
movq 0x10(%r12), %rax
decq %rax
cmpq %r13, %rax
jne 0x1a863c
xorl %eax, %eax
cmpq %r15, 0x30(%r12)
setb %al
movq 0x8(%rsp), %r13
addq %rbp, %rax
movb 0x7(%rsp), %bpl
movq %rax, 0x40(%r14)
movq %rax, (%r13)
movl %ebp, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r12), %rbx
testq %rbx, %rbx
je 0x1a8646
movq 0x18(%r12), %r12
movq 0x8(%rbx), %rdi
callq 0x1a67a7
cmpw %r13w, %ax
ja 0x1a84e9
callq 0x622a9
callq 0x6223b
callq 0x62446
callq 0x62202
callq 0x621cb
callq 0x173b0
callq 0x6247d
callq 0x6242a
callq 0x62272
callq 0x623f3
callq 0x623bc
callq 0x62385
callq 0x62317
callq 0x6234e
callq 0x622e0