// File: /workspace/github_c_makefile_star2_O2/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, (%rsp)
movq %r8, %rbx
movl %esi, 0x4(%rsp)
movq %rdi, 0x8(%rsp)
movq 0x68(%rsp), %r14
movq %rcx, 0x18(%rsp)
movq (%rcx,%r14,8), %rsi
addq 0x60(%rsp), %rsi
movl $0xff, %eax
movq %rdx, 0x10(%rsp)
cmpq %rdx, %rsi
je 0x1c6b55
movq 0x8(%rsp), %rdi
movl 0x4(%rsp), %edx
callq 0x30b40
movzbl %al, %eax
cmpl (%rsp), %eax
ja 0x1c6c69
movq 0x70(%rsp), %rbp
movq 0x18(%rsp), %rax
movq (%rax,%rbp,8), %rsi
addq 0x60(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x1c6b8f
movq 0x8(%rsp), %rdi
movl 0x4(%rsp), %edx
callq 0x30b40
cmpb (%rsp), %al
jb 0x1c6c69
movq %rbx, 0x20(%rsp)
pushq $-0x1
popq %r12
movq %rbp, %rbx
leaq 0x1(%rbx), %r15
cmpq %rbx, %r14
ja 0x1c6bfa
movq %r15, %r13
subq %r14, %r13
shrq %r13
addq %r14, %r13
movq 0x18(%rsp), %rax
movq (%rax,%r13,8), %rsi
addq 0x60(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x1c6be0
movq 0x8(%rsp), %rdi
movl 0x4(%rsp), %edx
callq 0x30b40
cmpb (%rsp), %al
jae 0x1c6be7
incq %r13
movq %r13, %r14
jmp 0x1c6b9f
movl $0xff, %eax
jmp 0x1c6bea
movzbl %al, %eax
cmpl (%rsp), %eax
cmoveq %r13, %r12
subq $0x1, %r13
movq %r13, %rbx
jae 0x1c6b9b
movq 0x20(%rsp), %rax
movq %r12, (%rax)
cmpq $-0x1, %r12
je 0x1c6c69
pushq $-0x1
popq %r13
leaq 0x1(%r12), %rbx
cmpq %rbp, %rbx
ja 0x1c6c7a
movq %rbp, %r15
subq %r12, %r15
shrq %r15
leaq (%r15,%rbx), %r14
movq 0x18(%rsp), %rax
movq (%rax,%r14,8), %rsi
addq 0x60(%rsp), %rsi
movl $0xff, %eax
cmpq 0x10(%rsp), %rsi
je 0x1c6c4e
movq 0x8(%rsp), %rdi
movl 0x4(%rsp), %edx
callq 0x30b40
movzbl %al, %eax
cmpl (%rsp), %eax
jbe 0x1c6c60
addq %r12, %r15
movq %r15, %rbp
testq %r14, %r14
jne 0x1c6c11
jmp 0x1c6c7a
cmoveq %r14, %r13
movq %r14, %r12
jmp 0x1c6c0c
xorl %eax, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x20(%rsp), %rdx
movq %r13, 0x8(%rdx)
movb $0x1, %al
cmpq $-0x1, %r13
jne 0x1c6c6b
movq (%rdx), %rcx
movq %rcx, 0x8(%rdx)
jmp 0x1c6c6b