// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/match/esa-splititv-simple.c
// Function: gt_lcpintervalfindcharchildintv_simple
bool gt_lcpintervalfindcharchildintv_simple(const GtEncseq *encseq,
                                     GtReadmode readmode,
                                     GtUword totallength,
                                     const ESASuffixptr *suftab,
                                     Simplelcpinterval *itv,
                                     GtUchar cc,
                                     GtUword offset,
                                     GtUword left,
                                     GtUword right)
{
  GtUword pos;

  pos = ESASUFFIXPTRGET(suftab,left) + offset;
  if (cc < SEQUENCE(encseq,pos))
  {
    return false;
  }
  pos = ESASUFFIXPTRGET(suftab,right) + offset;
  if (cc > SEQUENCE(encseq,pos))
  {
    return false;
  }
  itv->left = lcpintervalfindfirst(encseq,
                                   readmode,
                                   totallength,
                                   suftab,
                                   cc,
                                   offset,
                                   left,
                                   right);
  if (itv->left == ULONG_MAX)
  {
    return false;
  }
  itv->right = lcpintervalfindlast(encseq,
                                   readmode,
                                   totallength,
                                   suftab,
                                   cc,
                                   offset,
                                   itv->left + 1,
                                   right);
  if (itv->right == ULONG_MAX)
  {
    itv->right = itv->left;
  }
  return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %r9d, %ebp
movq %r8, %rbx
movq %rdx, %r15
movl %esi, 0xc(%rsp)
movq %rdi, 0x18(%rsp)
movq 0x68(%rsp), %r13
movq 0x60(%rsp), %rdx
movq (%rcx,%r13,8), %rsi
addq %rdx, %rsi
movl $0xff, %eax
cmpq %r15, %rsi
movq %rcx, 0x10(%rsp)
je 0x2230af
movq 0x18(%rsp), %rdi
movl 0xc(%rsp), %edx
callq 0x2faf0
movq 0x60(%rsp), %rdx
movq 0x10(%rsp), %rcx
movzbl %al, %eax
cmpl %ebp, %eax
ja 0x22320a
movq 0x70(%rsp), %r14
movq (%rcx,%r14,8), %rsi
addq %rdx, %rsi
cmpq %r15, %rsi
je 0x2230e9
movq 0x18(%rsp), %rdi
movl 0xc(%rsp), %edx
callq 0x2faf0
movq 0x60(%rsp), %rdx
movq 0x10(%rsp), %rcx
cmpb %bpl, %al
jb 0x22320a
cmpq %r14, %r13
jbe 0x2230fa
movq $-0x1, (%rbx)
jmp 0x22320a
movq %rbx, 0x20(%rsp)
movq $-0x1, %r12
movq %r14, %rbx
subq %r13, %rbx
incq %rbx
shrq %rbx
addq %r13, %rbx
movq (%rcx,%rbx,8), %rsi
addq %rdx, %rsi
movl $0xff, %eax
cmpq %r15, %rsi
je 0x223158
movq 0x18(%rsp), %rdi
movl 0xc(%rsp), %edx
callq 0x2faf0
cmpb %bpl, %al
jae 0x22314b
incq %rbx
movq %rbx, %r13
movq 0x10(%rsp), %rcx
movq 0x60(%rsp), %rdx
jmp 0x223167
movzbl %al, %eax
movq 0x10(%rsp), %rcx
movq 0x60(%rsp), %rdx
cmpl %ebp, %eax
cmoveq %rbx, %r12
subq $0x1, %rbx
movq %rbx, %r14
jb 0x22316c
cmpq %r14, %r13
jbe 0x223106
movq 0x20(%rsp), %rsi
movq %r12, (%rsi)
cmpq $-0x1, %r12
je 0x22320a
movq 0x70(%rsp), %rbx
cmpq %rbx, %r12
jae 0x2231ff
incq %r12
movq $-0x1, %r13
movq %rbx, %r14
subq %r12, %rbx
incq %rbx
shrq %rbx
addq %r12, %rbx
movq (%rcx,%rbx,8), %rsi
addq %rdx, %rsi
movl $0xff, %eax
cmpq %r15, %rsi
je 0x2231cd
movq 0x18(%rsp), %rdi
movl 0xc(%rsp), %edx
callq 0x2faf0
movq 0x60(%rsp), %rdx
movq 0x10(%rsp), %rcx
movzbl %al, %eax
cmpl %ebp, %eax
jbe 0x2231d9
subq $0x1, %rbx
jae 0x2231e6
jmp 0x2231eb
cmoveq %rbx, %r13
incq %rbx
movq %rbx, %r12
movq %r14, %rbx
cmpq %rbx, %r12
jbe 0x223192
movq 0x20(%rsp), %rsi
movq %r13, 0x8(%rsi)
movb $0x1, %al
cmpq $-0x1, %r13
jne 0x22320c
movq (%rsi), %r12
addq $0x8, %rsi
movq %r12, (%rsi)
movb $0x1, %al
jmp 0x22320c
xorl %eax, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq