// File: /workspace/github_c_makefile_star2_O1/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 %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movl %ecx, %ebx
movq %rsi, %r14
movq %rdi, %r15
cmpq $0x2, %rdx
jb 0x1bd4dc
movq %r8, %r12
cmpq %r8, %r14
je 0x1bd5e3
movq (%r14), %rdi
cmpq (%r12), %rdi
je 0x1bd5e8
movq 0x30(%r15), %rax
incq %rax
cmpq %rax, 0x8(%r12)
jb 0x1bd5ed
cmpq %rax, 0x8(%r14)
jae 0x1bd3db
movq 0x28(%r15), %rsi
shlq $0x4, %rsi
leaq 0x1f4157(%rip), %rdx    # 0x3b151d
movl $0xe8, %ecx
callq 0x1094e6
movq %rax, (%r14)
movq 0x28(%r15), %rax
movq %rax, 0x8(%r14)
movq 0x30(%r15), %rcx
leaq 0x1(%rcx), %rsi
cmpq %rsi, 0x8(%r14)
jb 0x1bd5f2
movq (%r14), %rax
movq $-0x1, (%rax)
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r14)
testq %rcx, %rcx
je 0x1bd5d7
movq (%r12), %rcx
cmpq $0x3, %rsi
movl $0x2, %edx
cmovaeq %rsi, %rdx
movl $0x1, %esi
movl $0x10, %edi
movq $-0x1, (%rax,%rdi)
movl $0x0, 0x8(%rax,%rdi)
movq -0x10(%rax,%rdi), %r8
testq %r8, %r8
jle 0x1bd456
addq 0x18(%r15), %r8
js 0x1bd456
movq %r8, (%rax,%rdi)
movl $0x3, 0x8(%rax,%rdi)
movq -0x10(%rcx,%rdi), %r8
testq %r8, %r8
jle 0x1bd491
cmpb $-0x2, %bl
setae %r9b
movq 0x20(%r15), %r10
cmpb %bl, -0x1(%r10,%rsi)
setne %r10b
orb %r9b, %r10b
movzbl %r10b, %r9d
addq (%r15,%r9,8), %r8
cmpq (%rax,%rdi), %r8
jle 0x1bd491
movq %r8, (%rax,%rdi)
movl $0x2, 0x8(%rax,%rdi)
movq (%rcx,%rdi), %r8
testq %r8, %r8
jle 0x1bd4b0
addq 0x18(%r15), %r8
cmpq (%rax,%rdi), %r8
jle 0x1bd4b0
movq %r8, (%rax,%rdi)
movl $0x1, 0x8(%rax,%rdi)
movq (%rax,%rdi), %r8
testq %r8, %r8
jle 0x1bd4c7
cmpq 0x18(%r14), %r8
jle 0x1bd4c7
movq %r8, 0x18(%r14)
movq %rsi, 0x10(%r14)
incq %rsi
addq $0x10, %rdi
cmpq %rsi, %rdx
jne 0x1bd42a
jmp 0x1bd5d7
movq 0x28(%r15), %rsi
cmpq %rsi, 0x8(%r14)
jae 0x1bd509
movq (%r14), %rdi
shlq $0x4, %rsi
leaq 0x1f4029(%rip), %rdx    # 0x3b151d
movl $0xa8, %ecx
callq 0x1094e6
movq %rax, (%r14)
movq 0x28(%r15), %rax
movq %rax, 0x8(%r14)
movq (%r14), %rax
movq $-0x1, (%rax)
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r14)
movq 0x30(%r15), %rdi
testq %rdi, %rdi
je 0x1bd5d7
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, -0x8(%rax)
movl $0x0, (%rax)
movq -0x18(%rax), %r8
testq %r8, %r8
jle 0x1bd576
addq %rcx, %r8
js 0x1bd576
movq %r8, -0x8(%rax)
movl $0x3, (%rax)
cmpb $-0x2, %bl
setae %r8b
cmpb %bl, -0x1(%rdx,%rdi)
setne %r9b
orb %r8b, %r9b
movzbl %r9b, %r8d
movq (%r15,%r8,8), %r8
cmpq -0x8(%rax), %r8
jle 0x1bd5a0
movq %r8, -0x8(%rax)
movl $0x2, (%rax)
cmpq -0x8(%rax), %rcx
jle 0x1bd5b0
movq %rcx, -0x8(%rax)
movl $0x1, (%rax)
movq -0x8(%rax), %r8
testq %r8, %r8
jle 0x1bd5c7
cmpq 0x18(%r14), %r8
jle 0x1bd5c7
movq %r8, 0x18(%r14)
movq %rdi, 0x10(%r14)
incq %rdi
addq $0x10, %rax
cmpq %rdi, %rsi
jne 0x1bd550
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
callq 0x67440
callq 0x67407
callq 0x673ce
callq 0x67395
nop