// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/reads2twobit.c
// Function: gt_reads2twobit_process_sequence_end
static inline void gt_reads2twobit_process_sequence_end(
    GtReads2TwobitEncodeState *state)
{
  GT_READS2TWOBIT_WRITECODE_NOCOUNT(state->current,
      GT_READS2TWOBIT_DEFAULT_SEPARATOR, state->seqlen);
  if (state->use_rle)
  {
    gt_assert(state->current.globalpos > 1UL);
    gt_hplstore_set(state->hplengths, state->current.globalpos - 2UL,
        state->hplength);
    state->hsum += state->hplength;
    state->nofh++;
    gt_hplstore_set(state->hplengths, state->current.globalpos - 1UL, 0);
    state->prevcode = GT_READS2TWOBIT_CODE_UNDEF;
  }
  state->exp_qlen++;
  gt_assert(!state->invalid_mode);
  if (state->varlen_mode)
  {
    if (state->seqlen > state->current.seqlen_max)
      state->current.seqlen_max = state->seqlen;
    if (state->seqlen < state->current.seqlen_min)
      state->current.seqlen_min = state->seqlen;
    gt_reads2twobit_append_seppos(state, state->current.globalpos - 1UL);
  }
  else
  {
    if (state->current.nofseqs > 1UL)
    {
      if (state->seqlen != state->current.seqlen_first)
        gt_reads2twobit_switch_to_varlen_mode(state);
    }
    else
    {
      state->current.seqlen_first = state->seqlen;
    }
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
incq 0x808(%rdi)
incq 0x858(%rdi)
movq 0x828(%rdi), %rax
leaq 0x3(,%rax,4), %rax
movq %rax, 0x828(%rdi)
movl 0x830(%rdi), %ecx
incl %ecx
movw %cx, 0x830(%rdi)
cmpw $0x20, %cx
jne 0x18c016
movq 0x820(%rbx), %rcx
leaq 0x8(%rcx), %rdx
movq %rdx, 0x820(%rbx)
movq %rax, (%rcx)
andw $0x0, 0x830(%rbx)
andq $0x0, 0x828(%rbx)
cmpb $0x1, 0x960(%rbx)
jne 0x18c08f
movq 0x858(%rbx), %rsi
cmpq $0x1, %rsi
jbe 0x18c2a4
movq 0x970(%rbx), %rdi
addq $-0x2, %rsi
movzbl 0x978(%rbx), %edx
callq 0x2c0328
movzbl 0x978(%rbx), %eax
movdqu 0x980(%rbx), %xmm0
movd %eax, %xmm1
shufpd $0x2, 0x1c65bd(%rip), %xmm1 # xmm1 = xmm1[0],mem[1]
paddq %xmm0, %xmm1
movdqu %xmm1, 0x980(%rbx)
movq 0x858(%rbx), %rsi
movq 0x970(%rbx), %rdi
decq %rsi
xorl %edx, %edx
callq 0x2c0328
orq $-0x1, 0x968(%rbx)
incq 0x818(%rbx)
cmpb $0x1, 0x8f1(%rbx)
je 0x18c276
movb 0x8f0(%rbx), %al
cmpb $0x1, %al
jne 0x18c0eb
movq 0x808(%rbx), %rax
cmpq 0x870(%rbx), %rax
jbe 0x18c0c4
movq %rax, 0x870(%rbx)
cmpq 0x878(%rbx), %rax
jae 0x18c0d4
movq %rax, 0x878(%rbx)
movq 0x858(%rbx), %rsi
decq %rsi
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x18cb92
movq 0x808(%rbx), %r8
movq 0x860(%rbx), %rcx
cmpq $0x2, %rcx
jb 0x18c202
movq 0x880(%rbx), %rdx
cmpq %rdx, %r8
je 0x18c270
testb %al, %al
jne 0x18c2dc
movb $0x1, 0x8f0(%rbx)
cmpq $0x1, %r8
jbe 0x18c30a
leaq -0x2(%rcx), %rsi
decq %rdx
decq %rcx
decq %r8
leaq 0x1c6e39(%rip), %rdi    # 0x352f79
xorl %eax, %eax
callq 0x92a82
cmpq $0x0, 0x908(%rbx)
jne 0x18c338
movq 0x860(%rbx), %rcx
addq $-0x2, %rcx
imulq 0x880(%rbx), %rcx
addq 0x808(%rbx), %rcx
je 0x18c369
movq 0x800(%rbx), %rax
cmpq %rcx, %rax
jbe 0x18c39a
xorl %r14d, %r14d
xorl %edx, %edx
divq %rcx
movq %rax, 0x910(%rbx)
leaq 0x1c6f0c(%rip), %rdi    # 0x3530a7
movq %rax, %rsi
xorl %eax, %eax
callq 0x92a82
movq 0x910(%rbx), %rdi
shlq $0x3, %rdi
leaq 0x1c649f(%rip), %rsi    # 0x352656
movl $0x192, %edx            # imm = 0x192
callq 0x93160
movq %rax, 0x908(%rbx)
andq $0x0, 0x868(%rbx)
xorl %esi, %esi
movq 0x860(%rbx), %rax
decq %rax
cmpq %rax, %r14
jae 0x18c20b
movq 0x880(%rbx), %rax
leaq (%rax,%rsi), %r15
addq %rax, %rsi
decq %rsi
movq %rbx, %rdi
callq 0x18cb92
incq %r14
movq %r15, %rsi
jmp 0x18c1d2
movq %r8, 0x880(%rbx)
jmp 0x18c270
addq 0x808(%rbx), %rsi
cmpq 0x858(%rbx), %rsi
jne 0x18c3cb
decq %rsi
movq %rbx, %rdi
callq 0x18cb92
movq 0x868(%rbx), %rax
cmpq 0x860(%rbx), %rax
jne 0x18c3fc
movq 0x808(%rbx), %rax
movq 0x880(%rbx), %rcx
cmpq %rax, %rcx
movq %rax, %rdx
cmovaq %rcx, %rdx
movq %rdx, 0x870(%rbx)
cmovbq %rcx, %rax
movq %rax, 0x878(%rbx)
andq $0x0, 0x880(%rbx)
popq %rbx
popq %r14
popq %r15
retq
movq 0x2abceb(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x158d8c(%rip), %rsi    # 0x2e5013
leaq 0x1c6b3e(%rip), %rdx    # 0x352dcc
leaq 0x1c6c35(%rip), %rcx    # 0x352eca
leaq 0x1c63ba(%rip), %r8     # 0x352656
movl $0x1d9, %r9d            # imm = 0x1D9
jmp 0x18c2d0
movq 0x2abcbd(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x158d5e(%rip), %rsi    # 0x2e5013
leaq 0x1c6bef(%rip), %rdx    # 0x352eab
leaq 0x1c6c07(%rip), %rcx    # 0x352eca
leaq 0x1c638c(%rip), %r8     # 0x352656
movl $0x1d0, %r9d            # imm = 0x1D0
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x2abc85(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x158d26(%rip), %rsi    # 0x2e5013
leaq 0x1c6c2f(%rip), %rdx    # 0x352f23
leaq 0x1c6c44(%rip), %rcx    # 0x352f3f
leaq 0x1c6354(%rip), %r8     # 0x352656
movl $0x1ab, %r9d            # imm = 0x1AB
jmp 0x18c2d0
movq 0x2abc57(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x158cf8(%rip), %rsi    # 0x2e5013
leaq 0x1c6c43(%rip), %rdx    # 0x352f65
leaq 0x1c6c16(%rip), %rcx    # 0x352f3f
leaq 0x1c6326(%rip), %r8     # 0x352656
movl $0x1af, %r9d            # imm = 0x1AF
jmp 0x18c2d0
movq 0x2abc29(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x158cca(%rip), %rsi    # 0x2e5013
leaq 0x1c6ceb(%rip), %rdx    # 0x35303b
leaq 0x1c6cfa(%rip), %rcx    # 0x353051
leaq 0x1c62f8(%rip), %r8     # 0x352656
movl $0x18d, %r9d            # imm = 0x18D
jmp 0x18c2d0
movq 0x2abbf8(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x158c99(%rip), %rsi    # 0x2e5013
leaq 0x1c6cec(%rip), %rdx    # 0x35306d
leaq 0x1c6cc9(%rip), %rcx    # 0x353051
leaq 0x1c62c7(%rip), %r8     # 0x352656
movl $0x18e, %r9d            # imm = 0x18E
jmp 0x18c2d0
movq 0x2abbc7(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x158c68(%rip), %rsi    # 0x2e5013
leaq 0x1c6cca(%rip), %rdx    # 0x35307c
leaq 0x1c6c98(%rip), %rcx    # 0x353051
leaq 0x1c6296(%rip), %r8     # 0x352656
movl $0x18f, %r9d            # imm = 0x18F
jmp 0x18c2d0
movq 0x2abb96(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x158c37(%rip), %rsi    # 0x2e5013
leaq 0x1c6be7(%rip), %rdx    # 0x352fca
leaq 0x1c6b55(%rip), %rcx    # 0x352f3f
leaq 0x1c6265(%rip), %r8     # 0x352656
movl $0x1bd, %r9d            # imm = 0x1BD
jmp 0x18c2d0
movq 0x2abb65(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x158c06(%rip), %rsi    # 0x2e5013
leaq 0x1c6bee(%rip), %rdx    # 0x353002
leaq 0x1c6b24(%rip), %rcx    # 0x352f3f
leaq 0x1c6234(%rip), %r8     # 0x352656
movl $0x1bf, %r9d            # imm = 0x1BF
jmp 0x18c2d0