// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/firstcodes.c
// Function: gt_firstcodes_checksuftab_bucket
static void gt_firstcodes_checksuftab_bucket(const GtEncseq *encseq,
                                             GtReadmode readmode,
                                             GtEncseqReader *esr1,
                                             GtEncseqReader *esr2,
                                             GtUword previoussuffix,
                                             bool previousdefined,
                                             const GtUword
                                               *seqnum_relpos_bucket,
                                             const GtSeqnumrelpos *snrp,
                                             GT_UNUSED const uint16_t
                                               *lcptab_bucket,
                                             GtUword numberofsuffixes)
{
  GtUword idx, current, maxlcp,
                totallength = gt_encseq_total_length(encseq);
  const GtUword depth = 0;
  GT_UNUSED int cmp;
  const bool specialsareequal = false, specialsareequalatdepth0 = false;

  gt_assert(!previousdefined || previoussuffix < totallength);
  for (idx = 0; idx < numberofsuffixes; idx++)
  {
    current = gt_seqnumrelpos_decode_pos(snrp,seqnum_relpos_bucket[idx]);
    if (previousdefined && idx < totallength)
    {
      gt_assert(current < totallength);
      cmp = gt_encseq_check_comparetwosuffixes(encseq,
                                               readmode,
                                               &maxlcp,
                                               specialsareequal,
                                               specialsareequalatdepth0,
                                               depth,
                                               previoussuffix,
                                               current,
                                               esr1,
                                               esr2);
      gt_assert(cmp <= 0);
      gt_assert(idx == 0 || maxlcp == (GtUword) lcptab_bucket[idx]);
    }
    previoussuffix = current;
    previousdefined = true;
  }
}

// Assembly:
pushq %rbx
subq $0x80, %rsp
movb %r9b, %al
movq 0xa8(%rsp), %r9
movq 0xa0(%rsp), %r9
movq 0x98(%rsp), %r9
movq 0x90(%rsp), %r9
movq %rdi, 0x78(%rsp)
movl %esi, 0x74(%rsp)
movq %rdx, 0x68(%rsp)
movq %rcx, 0x60(%rsp)
movq %r8, 0x58(%rsp)
andb $0x1, %al
movb %al, 0x57(%rsp)
movq 0x78(%rsp), %rdi
callq 0xa9d00
movq %rax, 0x30(%rsp)
movq $0x0, 0x28(%rsp)
movb $0x0, 0x23(%rsp)
movb $0x0, 0x22(%rsp)
testb $0x1, 0x57(%rsp)
je 0x24b026
movq 0x58(%rsp), %rax
cmpq 0x30(%rsp), %rax
jb 0x24b026
movq 0x3f0fab(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2cb014(%rip), %rsi    # 0x516013
leaq 0x32dc51(%rip), %rdx    # 0x578c57
leaq 0x32dc7b(%rip), %rcx    # 0x578c88
leaq 0x32d1e8(%rip), %r8     # 0x5781fc
movl $0x110, %r9d            # imm = 0x110
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x24b028
movq $0x0, 0x48(%rsp)
movq 0x48(%rsp), %rax
cmpq 0xa8(%rsp), %rax
jae 0x24b1d7
movq 0x98(%rsp), %rdi
movq 0x90(%rsp), %rax
movq 0x48(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x2b11d0
movq %rax, 0x40(%rsp)
testb $0x1, 0x57(%rsp)
je 0x24b1b5
movq 0x48(%rsp), %rax
cmpq 0x30(%rsp), %rax
jae 0x24b1b5
jmp 0x24b084
movq 0x40(%rsp), %rax
cmpq 0x30(%rsp), %rax
jb 0x24b0c8
movq 0x3f0f09(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2caf72(%rip), %rsi    # 0x516013
leaq 0x32dc01(%rip), %rdx    # 0x578ca9
leaq 0x32dbd9(%rip), %rcx    # 0x578c88
leaq 0x32d146(%rip), %r8     # 0x5781fc
movl $0x116, %r9d            # imm = 0x116
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x24b0ca
movq 0x78(%rsp), %rdi
movl 0x74(%rsp), %esi
movq 0x58(%rsp), %rbx
movq 0x40(%rsp), %r11
movq 0x68(%rsp), %r10
movq 0x60(%rsp), %rax
leaq 0x38(%rsp), %rdx
xorl %r8d, %r8d
xorl %ecx, %ecx
movl %ecx, %r9d
movl %r8d, %ecx
movq %rbx, (%rsp)
movq %r11, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xb5f40
movl %eax, 0x24(%rsp)
cmpl $0x0, 0x24(%rsp)
jle 0x24b152
movq 0x3f0e7f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2caee8(%rip), %rsi    # 0x516013
leaq 0x32db8d(%rip), %rdx    # 0x578cbf
leaq 0x32db4f(%rip), %rcx    # 0x578c88
leaq 0x32d0bc(%rip), %r8     # 0x5781fc
movl $0x121, %r9d            # imm = 0x121
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x24b154
jmp 0x24b156
cmpq $0x0, 0x48(%rsp)
je 0x24b1b1
movq 0x38(%rsp), %rax
movq 0xa0(%rsp), %rcx
movq 0x48(%rsp), %rdx
movzwl (%rcx,%rdx,2), %ecx
cmpq %rcx, %rax
je 0x24b1b1
movq 0x3f0e20(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2cae89(%rip), %rsi    # 0x516013
leaq 0x32db37(%rip), %rdx    # 0x578cc8
leaq 0x32daf0(%rip), %rcx    # 0x578c88
leaq 0x32d05d(%rip), %r8     # 0x5781fc
movl $0x122, %r9d            # imm = 0x122
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x24b1b3
jmp 0x24b1b5
movq 0x40(%rsp), %rax
movq %rax, 0x58(%rsp)
movb $0x1, 0x57(%rsp)
movq 0x48(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x48(%rsp)
jmp 0x24b031
addq $0x80, %rsp
popq %rbx
retq