// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/match/idxlocalidp.c
// Function: locali_nextLimdfsstate
static void locali_nextLimdfsstate (const Limdfsconstinfo *lci,
                                    DECLAREPTRDFSSTATE (aliasoutcol),
                                    GT_UNUSED GtUword currentdepth,
                                    GtUchar currentchar,
                                    const DECLAREPTRDFSSTATE (aliasincol))
{
  LocaliColumn *outcol = (LocaliColumn *) aliasoutcol;
  const LocaliColumn *incol = (const LocaliColumn *) aliasincol;

  if (currentdepth > 1UL)
  {
    nextcolumn (lci,outcol,currentchar,incol);
  } else
  {
    secondcolumn (lci, outcol, currentchar);
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %ecx, %ebx
movq %rsi, %r14
movq %rdi, %r15
cmpq $0x2, %rdx
jb 0x1b494a
movq %r8, %r12
cmpq %r8, %r14
je 0x1b4a70
movq (%r14), %rax
cmpq (%r12), %rax
je 0x1b4a75
movq 0x30(%r15), %rcx
leaq 0x1(%rcx), %rsi
cmpq %rsi, 0x8(%r12)
jb 0x1b4a7a
movq 0x8(%r14), %rdx
cmpq %rsi, %rdx
jae 0x1b482e
movq 0x28(%r15), %rsi
shlq $0x4, %rsi
leaq 0x1f3753(%rip), %rdx    # 0x3a7f61
movq %rax, %rdi
movl $0xe8, %ecx
callq 0x104461
movq %rax, (%r14)
movq 0x28(%r15), %rdx
movq %rdx, 0x8(%r14)
movq 0x30(%r15), %rcx
leaq 0x1(%rcx), %rsi
cmpq %rsi, %rdx
jb 0x1b4a7f
movq $-0x1, (%rax)
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r14)
testq %rcx, %rcx
je 0x1b4a67
movq (%r12), %rcx
cmpq $0x3, %rsi
movl $0x2, %edx
cmovaeq %rsi, %rdx
movl $0x1, %esi
movq $-0x1, %r9
xorl %edi, %edi
xorl %r8d, %r8d
movq $-0x1, 0x10(%rax,%rdi)
movl $0x0, 0x18(%rax,%rdi)
movq $-0x1, %r10
testq %r9, %r9
jle 0x1b48ab
addq 0x18(%r15), %r9
js 0x1b48ab
movq %r9, 0x10(%rax,%rdi)
movl $0x3, 0x18(%rax,%rdi)
movq %r9, %r10
movq (%rcx,%rdi), %r9
testq %r9, %r9
jle 0x1b48e8
cmpb $-0x2, %bl
setae %r11b
movq 0x20(%r15), %r12
cmpb %bl, -0x1(%r12,%rsi)
setne %bpl
orb %r11b, %bpl
movzbl %bpl, %r11d
addq (%r15,%r11,8), %r9
cmpq %r10, %r9
jle 0x1b48e8
movq %r9, 0x10(%rax,%rdi)
movl $0x2, 0x18(%rax,%rdi)
movq %r9, %r10
movq 0x10(%rcx,%rdi), %r11
testq %r11, %r11
jle 0x1b4910
addq 0x18(%r15), %r11
movq %r10, %r9
cmpq %r10, %r11
jle 0x1b4913
movq %r11, 0x10(%rax,%rdi)
movl $0x1, 0x18(%rax,%rdi)
movq %r11, %r9
jmp 0x1b4913
movq %r10, %r9
testq %r9, %r9
setg %r10b
cmpq %r8, %r9
setg %r11b
andb %r10b, %r11b
cmpb $0x1, %r11b
jne 0x1b4935
movq %r9, 0x18(%r14)
movq %rsi, 0x10(%r14)
movq %r9, %r8
incq %rsi
addq $0x10, %rdi
cmpq %rsi, %rdx
jne 0x1b4878
jmp 0x1b4a67
movq (%r14), %rax
movq 0x28(%r15), %rsi
cmpq %rsi, 0x8(%r14)
jae 0x1b497a
shlq $0x4, %rsi
leaq 0x1f35ff(%rip), %rdx    # 0x3a7f61
movq %rax, %rdi
movl $0xa8, %ecx
callq 0x104461
movq %rax, (%r14)
movq 0x28(%r15), %rcx
movq %rcx, 0x8(%r14)
movq $-0x1, (%rax)
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r14)
movq 0x30(%r15), %rdi
testq %rdi, %rdi
je 0x1b4a67
movq 0x18(%r15), %rcx
movq 0x20(%r15), %rdx
incq %rdi
cmpq $0x3, %rdi
movl $0x2, %esi
cmovaeq %rdi, %rsi
addq $0x18, %rax
movl $0x1, %edi
movq $-0x1, %r9
xorl %r8d, %r8d
movq $-0x1, -0x8(%rax)
movl $0x0, (%rax)
movq $-0x1, %r10
testq %r9, %r9
jle 0x1b49f4
addq %rcx, %r9
js 0x1b49f4
movq %r9, -0x8(%rax)
movl $0x3, (%rax)
movq %r9, %r10
cmpb $-0x2, %bl
setae %r9b
cmpb %bl, -0x1(%rdx,%rdi)
setne %r11b
orb %r9b, %r11b
movzbl %r11b, %r9d
movq (%r15,%r9,8), %r9
cmpq %r10, %r9
jle 0x1b4a20
movq %r9, -0x8(%rax)
movl $0x2, (%rax)
movq %r9, %r10
movq %r10, %r9
cmpq %r10, %rcx
jle 0x1b4a35
movq %rcx, -0x8(%rax)
movl $0x1, (%rax)
movq %rcx, %r9
testq %r9, %r9
setg %r10b
cmpq %r8, %r9
setg %r11b
andb %r10b, %r11b
cmpb $0x1, %r11b
jne 0x1b4a57
movq %r9, 0x18(%r14)
movq %rdi, 0x10(%r14)
movq %r9, %r8
incq %rdi
addq $0x10, %rax
cmpq %rdi, %rsi
jne 0x1b49c8
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
callq 0x65c81
callq 0x65c48
callq 0x65c0f
callq 0x65bd6