// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/encseq.c
// Function: gt_equallength_specialrangeiterator_next
static bool gt_equallength_specialrangeiterator_next(GtRange *range,
                                                    GtSpecialrangeiterator *sri)
{
  if (sri->exhausted)
    return false;
  gt_assert(!issinglepositioninspecialrangeViaequallength(sri->esr->encseq,
                                                          sri->jumppos));
  if (sri->moveforward) {
    if (sri->jumppos + sri->esr->encseq->equallength.valueunsignedlong >=
        sri->esr->encseq->totallength) {
      sri->exhausted = true;
      return false;
    }
    sri->jumppos += sri->esr->encseq->equallength.valueunsignedlong + 1;
    range->start = sri->jumppos - 1;
    range->end = sri->jumppos;
  }
  else {
    if (sri->jumppos < sri->esr->encseq->equallength.valueunsignedlong) {
      sri->exhausted = true;
      return false;
    }
    gt_assert(sri->jumppos >=
              sri->esr->encseq->equallength.valueunsignedlong + 1);
    sri->jumppos -= sri->esr->encseq->equallength.valueunsignedlong + 1;
    range->start = sri->jumppos + 1;
    range->end = sri->jumppos + 2;
  }
  return true;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq %rsi, (%rsp)
movq (%rsp), %rax
testb $0x1, 0x61(%rax)
je 0x130231
movb $0x0, 0x17(%rsp)
jmp 0x130402
jmp 0x130233
movq (%rsp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rdi
movq (%rsp), %rax
movq 0x78(%rax), %rsi
callq 0x1144a0
testb $0x1, %al
jne 0x130251
jmp 0x130289
movq 0x83d80(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x2de04(%rip), %rsi     # 0x15e066
leaq 0x58d1e(%rip), %rdx     # 0x188f87
leaq 0x58d65(%rip), %rcx     # 0x188fd5
leaq 0x553e7(%rip), %r8      # 0x18565e
movl $0xd8c, %r9d            # imm = 0xD8C
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x13028b
movq (%rsp), %rax
testb $0x1, 0x60(%rax)
je 0x130322
movq (%rsp), %rax
movq 0x78(%rax), %rax
movq (%rsp), %rcx
movq 0x68(%rcx), %rcx
movq (%rcx), %rcx
addq 0x1f0(%rcx), %rax
movq (%rsp), %rcx
movq 0x68(%rcx), %rcx
movq (%rcx), %rcx
cmpq 0x30(%rcx), %rax
jb 0x1302d6
movq (%rsp), %rax
movb $0x1, 0x61(%rax)
movb $0x0, 0x17(%rsp)
jmp 0x130402
movq (%rsp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rax
movq 0x1f0(%rax), %rcx
addq $0x1, %rcx
movq (%rsp), %rax
addq 0x78(%rax), %rcx
movq %rcx, 0x78(%rax)
movq (%rsp), %rax
movq 0x78(%rax), %rcx
subq $0x1, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq 0x78(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x1303fd
movq (%rsp), %rax
movq 0x78(%rax), %rax
movq (%rsp), %rcx
movq 0x68(%rcx), %rcx
movq (%rcx), %rcx
cmpq 0x1f0(%rcx), %rax
jae 0x130350
movq (%rsp), %rax
movb $0x1, 0x61(%rax)
movb $0x0, 0x17(%rsp)
jmp 0x130402
jmp 0x130352
movq (%rsp), %rax
movq 0x78(%rax), %rax
movq (%rsp), %rcx
movq 0x68(%rcx), %rcx
movq (%rcx), %rcx
movq 0x1f0(%rcx), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jae 0x1303ad
movq 0x83c5c(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x2dce0(%rip), %rsi     # 0x15e066
leaq 0x58c71(%rip), %rdx     # 0x188ffe
leaq 0x58c41(%rip), %rcx     # 0x188fd5
leaq 0x552c3(%rip), %r8      # 0x18565e
movl $0xd9d, %r9d            # imm = 0xD9D
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x1303af
movq (%rsp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rax
movq 0x1f0(%rax), %rdx
addq $0x1, %rdx
movq (%rsp), %rax
movq 0x78(%rax), %rcx
subq %rdx, %rcx
movq %rcx, 0x78(%rax)
movq (%rsp), %rax
movq 0x78(%rax), %rcx
addq $0x1, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq 0x78(%rax), %rcx
addq $0x2, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movb $0x1, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopl (%rax)