// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/sfx-sain.c
// Function: gt_sain_assignSstarlength
static void gt_sain_assignSstarlength(GtSainseq *sainseq,
                                      GtUsainindextype *lentab)
{
  switch (sainseq->seqtype)
  {
    case GT_SAIN_PLAINSEQ:
      gt_sain_PLAINSEQ_assignSstarlength(sainseq,sainseq->seq.plainseq,lentab);
      break;
    case GT_SAIN_ENCSEQ:
      gt_sain_ENCSEQ_assignSstarlength(sainseq,sainseq->seq.encseq,lentab);
      break;
    case GT_SAIN_INTSEQ:
      gt_sain_INTSEQ_assignSstarlength(sainseq,sainseq->seq.array,lentab);
      break;
    case GT_SAIN_BARE_ENCSEQ:
      gt_sain_BARE_ENCSEQ_assignSstarlength(sainseq,sainseq->seq.plainseq,
                                            lentab);
      break;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl 0x50(%rdi), %eax
cmpq $0x3, %rax
ja 0x1a57ca
movq %rdi, %r15
leaq 0x1b3f4c(%rip), %rcx    # 0x3594c8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq (%r15), %rbx
movq %rbx, %rdx
addq $0x100, %rdx            # imm = 0x100
pushq $0x1
popq %rax
subl %ebx, %eax
leal -0x1(%rbx), %ecx
addq 0x38(%r15), %rcx
movb $0x1, %r10b
movl %ebx, %edi
movl %edi, %r8d
movq %rdx, %r9
leal -0x1(%r8), %edi
movzbl (%rcx), %edx
cmpq %rdx, %r9
jbe 0x1a55ba
movb $0x1, %r9b
jmp 0x1a55d0
sete %r11b
movl %r10d, %r9d
andb %r11b, %r9b
notb %r10b
orb %r11b, %r10b
testb $0x1, %r10b
je 0x1a55d5
movl %ebx, %r8d
jmp 0x1a55e9
cmpl %ebx, %edi
jae 0x1a580a
addl %eax, %ebx
movl %r8d, %r10d
shrl %r10d
movl %ebx, (%rsi,%r10,4)
incl %eax
decq %rcx
movl %r8d, %ebx
movl %r9d, %r10d
testl %edi, %edi
jne 0x1a55a3
jmp 0x1a57ca
movq %rsi, 0x10(%rsp)
movq (%r15), %r12
movq 0x38(%r15), %rdi
movq %r12, %r13
addq $0x100, %r13            # imm = 0x100
movl 0x40(%r15), %eax
movl %eax, %ecx
orl $0x1, %ecx
movl %eax, %esi
decl %esi
testb $0x1, %al
cmovel %ecx, %esi
xorl %edx, %edx
callq 0x72260
movq %rax, 0x8(%rsp)
movl (%r15), %r15d
pushq $0x1
popq %rbp
subl %r15d, %ebp
decl %r15d
movb $0x1, %r14b
movq %r13, %rbx
leal 0x1(%r15), %eax
movl %eax, 0x4(%rsp)
movq 0x8(%rsp), %rdi
callq 0x70f55
leal 0x100(%r15), %ecx
cmpb $-0x2, %al
movzbl %al, %r13d
cmovaeq %rcx, %r13
cmpq %rbx, %r13
jae 0x1a566f
movb $0x1, %al
jmp 0x1a5683
sete %cl
movl %r14d, %eax
andb %cl, %al
notb %r14b
orb %cl, %r14b
testb $0x1, %r14b
je 0x1a5688
movl %r12d, %esi
jmp 0x1a56a5
cmpl %r12d, %r15d
jae 0x1a57d9
addl %ebp, %r12d
movl 0x4(%rsp), %esi
movl %esi, %ecx
shrl %ecx
movq 0x10(%rsp), %rdx
movl %r12d, (%rdx,%rcx,4)
incl %ebp
movl %esi, %r12d
movl %eax, %r14d
addl $-0x1, %r15d
jb 0x1a5640
movq 0x8(%rsp), %rdi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x722ae
movq (%r15), %rbx
movq %rbx, %rdx
addq $0x100, %rdx            # imm = 0x100
pushq $0x1
popq %rax
subl %ebx, %eax
leal -0x1(%rbx), %ecx
addq 0x38(%r15), %rcx
movb $0x1, %r10b
movl %ebx, %edi
movl %edi, %r8d
movq %rdx, %r9
leal -0x1(%r8), %edi
movzbl (%rcx), %r11d
leal 0xff(%r8), %edx
cmpq $0xfe, %r11
cmovbq %r11, %rdx
cmpq %r9, %rdx
jae 0x1a5713
movb $0x1, %r9b
jmp 0x1a5729
sete %r11b
movl %r10d, %r9d
andb %r11b, %r9b
notb %r10b
orb %r11b, %r10b
testb $0x1, %r10b
je 0x1a572e
movl %ebx, %r8d
jmp 0x1a5742
cmpl %ebx, %edi
jae 0x1a5838
addl %eax, %ebx
movl %r8d, %r10d
shrl %r10d
movl %ebx, (%rsi,%r10,4)
incl %eax
decq %rcx
movl %r8d, %ebx
movl %r9d, %r10d
testl %edi, %edi
jne 0x1a56e9
jmp 0x1a57ca
movq (%r15), %rbx
movq %rbx, %rdx
addq $0x100, %rdx            # imm = 0x100
pushq $0x1
popq %rax
subl %ebx, %eax
leal -0x1(%rbx), %ecx
shlq $0x2, %rcx
addq 0x38(%r15), %rcx
movb $0x1, %r10b
movl %ebx, %edi
movl %edi, %r8d
movq %rdx, %r9
leal -0x1(%r8), %edi
movl (%rcx), %edx
cmpq %rdx, %r9
jbe 0x1a578b
movb $0x1, %r9b
jmp 0x1a57a1
sete %r11b
movl %r10d, %r9d
andb %r11b, %r9b
notb %r10b
orb %r11b, %r10b
testb $0x1, %r10b
je 0x1a57a6
movl %ebx, %r8d
jmp 0x1a57ba
cmpl %ebx, %edi
jae 0x1a5866
addl %eax, %ebx
movl %r8d, %r10d
shrl %r10d
movl %ebx, (%rsi,%r10,4)
incl %eax
addq $-0x4, %rcx
movl %r8d, %ebx
movl %r9d, %r10d
testl %edi, %edi
jne 0x1a5775
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x292788(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x13f829(%rip), %rsi    # 0x2e5013
leaq 0x1b4598(%rip), %rdx    # 0x359d89
leaq 0x1b45d0(%rip), %rcx    # 0x359dc8
leaq 0x1b404e(%rip), %r8     # 0x35984d
movl $0x552, %r9d            # imm = 0x552
jmp 0x1a5892
movq 0x292757(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x13f7f8(%rip), %rsi    # 0x2e5013
leaq 0x1b4567(%rip), %rdx    # 0x359d89
leaq 0x1b457c(%rip), %rcx    # 0x359da5
leaq 0x1b401d(%rip), %r8     # 0x35984d
movl $0x488, %r9d            # imm = 0x488
jmp 0x1a5892
movq 0x292729(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x13f7ca(%rip), %rsi    # 0x2e5013
leaq 0x1b4539(%rip), %rdx    # 0x359d89
leaq 0x1b45b3(%rip), %rcx    # 0x359e0a
leaq 0x1b3fef(%rip), %r8     # 0x35984d
movl $0x60f, %r9d            # imm = 0x60F
jmp 0x1a5892
movq 0x2926fb(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x13f79c(%rip), %rsi    # 0x2e5013
leaq 0x1b450b(%rip), %rdx    # 0x359d89
leaq 0x1b4564(%rip), %rcx    # 0x359de9
leaq 0x1b3fc1(%rip), %r8     # 0x35984d
movl $0x6c1, %r9d            # imm = 0x6C1
xorl %eax, %eax
callq 0x17a50
callq 0x17390