// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/sfx-diffcov.c
// Function: gt_differencecover_completelargelcpvalues
void gt_differencecover_completelargelcpvalues(const GtDifferencecover *dcov,
                                               const GtSuffixsortspace *sssp,
                                               GtLcpvalues *tableoflcpvalues,
                                               GtUword width,
                                               GtUword posoffset)
{
  GtUword idx, lcpvalue, s0, s1, r0, r1;

  gt_assert(width > 0 && sssp != NULL && tableoflcpvalues != NULL &&
            dcov->rmq != NULL);
  for (idx = 1UL; idx < width; idx++)
  {
    lcpvalue = gt_lcptab_getvalue(tableoflcpvalues,0,idx);
    if (lcpvalue >= (GtUword) dcov->vparam)
    {
      s0 = gt_suffixsortspace_get(sssp, posoffset, idx-1);
      s1 = gt_suffixsortspace_get(sssp, posoffset, idx);
      lcpvalue = (GtUword) dc_differencecover_delta(dcov,s0,s1);
      r0 = dc_inversesuftab_get(dcov,s0 + lcpvalue);
      r1 = dc_inversesuftab_get(dcov,s1 + lcpvalue);
      if (r0 < dcov->effectivesamplesize && r1 < dcov->effectivesamplesize)
      {
        gt_assert(r0 < r1);
        lcpvalue += gt_rmq_find_min_value(dcov->rmq, r0+1, r1);
      }
      gt_lcptab_update(tableoflcpvalues,0,idx,lcpvalue);
    }
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r8, 0x10(%rsp)
movq %rsi, (%rsp)
testq %rdx, %rdx
je 0x199f97
cmpq $0x0, (%rsp)
je 0x199f97
movq %rcx, %rbx
testq %rcx, %rcx
je 0x199f97
movq %rdi, %r13
cmpq $0x0, 0x150(%rdi)
je 0x199f97
movq %rdx, %r15
pushq $0x1
popq %rbp
movq %rbx, 0x8(%rsp)
cmpq %rbp, %rbx
je 0x199f5a
movq %r15, %rdi
xorl %esi, %esi
movq %rbp, %rdx
callq 0x199fcf
movl (%r13), %ecx
cmpq %rcx, %rax
jb 0x199f52
leaq -0x1(%rbp), %rdx
movq (%rsp), %r14
movq %r14, %rdi
movq 0x10(%rsp), %rbx
movq %rbx, %rsi
callq 0x1af8b2
movq %rax, %r12
movq %r14, %rdi
movq %rbx, %rsi
movq %rbp, %rdx
callq 0x1af8b2
movq %rax, %r14
movq 0x38(%r13), %rax
movl %r14d, %ecx
subl %r12d, %ecx
movl 0xc(%r13), %edx
andl %edx, %ecx
movzwl (%rax,%rcx,2), %ebx
subl %r12d, %ebx
andl %edx, %ebx
addq %rbx, %r12
movq %r13, %rdi
movq %r12, %rsi
callq 0x19a078
movq %rax, %r12
addq %rbx, %r14
movq %r13, %rdi
movq %r14, %rsi
callq 0x19a078
movq 0x78(%r13), %rcx
cmpq %rcx, %r12
jae 0x199f3d
cmpq %rcx, %rax
jae 0x199f3d
cmpq %rax, %r12
jae 0x199f69
movq 0x150(%r13), %rdi
incq %r12
movq %r12, %rsi
movq %rax, %rdx
callq 0x111f7d
movl %eax, %eax
addq %rax, %rbx
movq %r15, %rdi
xorl %esi, %esi
movq %rbp, %rdx
movq %rbx, %rcx
callq 0x19a0c7
movq 0x8(%rsp), %rbx
incq %rbp
jmp 0x199e89
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x29dff8(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x14b099(%rip), %rsi    # 0x2e5013
leaq 0x1bd0d3(%rip), %rdx    # 0x357054
leaq 0x1bd0a2(%rip), %rcx    # 0x35702a
leaq 0x1bce01(%rip), %r8     # 0x356d90
movl $0x75a, %r9d            # imm = 0x75A
jmp 0x199fc3
movq 0x29dfca(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x14b06b(%rip), %rsi    # 0x2e5013
leaq 0x1bd030(%rip), %rdx    # 0x356fdf
leaq 0x1bd074(%rip), %rcx    # 0x35702a
leaq 0x1bcdd3(%rip), %r8     # 0x356d90
movl $0x74d, %r9d            # imm = 0x74D
xorl %eax, %eax
callq 0x17a50
callq 0x17390