// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x68, %rsp
movb %r9b, %al
movq 0x80(%rsp), %r9
movq 0x78(%rsp), %r9
movq 0x70(%rsp), %r9
movq %rdi, 0x58(%rsp)
movl %esi, 0x54(%rsp)
movq %rdx, 0x48(%rsp)
movq %rcx, 0x40(%rsp)
movq %r8, 0x38(%rsp)
movb %al, 0x37(%rsp)
movq 0x40(%rsp), %rax
movq 0x78(%rsp), %rcx
movq (%rax,%rcx,8), %rax
addq 0x70(%rsp), %rax
movq %rax, 0x28(%rsp)
movzbl 0x37(%rsp), %eax
movl %eax, 0x24(%rsp)
movq 0x28(%rsp), %rax
cmpq 0x48(%rsp), %rax
jne 0x2f442d
movl $0xff, %eax
movl %eax, 0x20(%rsp)
jmp 0x2f4447
movq 0x58(%rsp), %rdi
movq 0x28(%rsp), %rsi
movl 0x54(%rsp), %edx
callq 0x31b50
movzbl %al, %eax
movl %eax, 0x20(%rsp)
movl 0x24(%rsp), %eax
movl 0x20(%rsp), %ecx
cmpl %ecx, %eax
jge 0x2f445d
movb $0x0, 0x67(%rsp)
jmp 0x2f4592
movq 0x40(%rsp), %rax
movq 0x80(%rsp), %rcx
movq (%rax,%rcx,8), %rax
addq 0x70(%rsp), %rax
movq %rax, 0x28(%rsp)
movzbl 0x37(%rsp), %eax
movl %eax, 0x1c(%rsp)
movq 0x28(%rsp), %rax
cmpq 0x48(%rsp), %rax
jne 0x2f4498
movl $0xff, %eax
movl %eax, 0x18(%rsp)
jmp 0x2f44b2
movq 0x58(%rsp), %rdi
movq 0x28(%rsp), %rsi
movl 0x54(%rsp), %edx
callq 0x31b50
movzbl %al, %eax
movl %eax, 0x18(%rsp)
movl 0x1c(%rsp), %eax
movl 0x18(%rsp), %ecx
cmpl %ecx, %eax
jle 0x2f44c8
movb $0x0, 0x67(%rsp)
jmp 0x2f4592
movq 0x58(%rsp), %rdi
movl 0x54(%rsp), %esi
movq 0x48(%rsp), %rdx
movq 0x40(%rsp), %rcx
movb 0x37(%rsp), %r8b
movq 0x70(%rsp), %r9
movq 0x78(%rsp), %r10
movq 0x80(%rsp), %rax
movzbl %r8b, %r8d
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x2f45a0
movq %rax, %rcx
movq 0x38(%rsp), %rax
movq %rcx, (%rax)
movq 0x38(%rsp), %rax
cmpq $-0x1, (%rax)
jne 0x2f4521
movb $0x0, 0x67(%rsp)
jmp 0x2f4592
movq 0x58(%rsp), %rdi
movl 0x54(%rsp), %esi
movq 0x48(%rsp), %rdx
movq 0x40(%rsp), %rcx
movb 0x37(%rsp), %r8b
movq 0x70(%rsp), %r9
movq 0x38(%rsp), %rax
movq (%rax), %r10
addq $0x1, %r10
movq 0x80(%rsp), %rax
movzbl %r8b, %r8d
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x2f46c0
movq %rax, %rcx
movq 0x38(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x38(%rsp), %rax
cmpq $-0x1, 0x8(%rax)
jne 0x2f458d
movq 0x38(%rsp), %rax
movq (%rax), %rcx
movq 0x38(%rsp), %rax
movq %rcx, 0x8(%rax)
movb $0x1, 0x67(%rsp)
movb 0x67(%rsp), %al
andb $0x1, %al
addq $0x68, %rsp
retq
nopl (%rax)