// File: /workspace/github_c_makefile_star2_O0/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 %rax
movq %rdi, (%rsp)
movq (%rsp), %rax
movq 0x808(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x808(%rax)
movq (%rsp), %rax
movq 0x858(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x858(%rax)
movq (%rsp), %rax
movq 0x828(%rax), %rcx
shlq $0x2, %rcx
orq $0x3, %rcx
movq (%rsp), %rax
movq %rcx, 0x828(%rax)
movq (%rsp), %rcx
movw 0x830(%rcx), %ax
addw $0x1, %ax
movw %ax, 0x830(%rcx)
movzwl %ax, %eax
cmpl $0x20, %eax
jne 0x2a5860
movq (%rsp), %rax
movq 0x828(%rax), %rcx
movq (%rsp), %rdx
movq 0x820(%rdx), %rax
movq %rax, %rsi
addq $0x8, %rsi
movq %rsi, 0x820(%rdx)
movq %rcx, (%rax)
movq (%rsp), %rax
movw $0x0, 0x830(%rax)
movq (%rsp), %rax
movq $0x0, 0x828(%rax)
movq (%rsp), %rax
testb $0x1, 0x960(%rax)
je 0x2a594a
jmp 0x2a5873
movq (%rsp), %rax
cmpq $0x1, 0x858(%rax)
ja 0x2a58b9
movq 0x396718(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x270781(%rip), %rsi    # 0x516013
leaq 0x2dff9c(%rip), %rdx    # 0x585835
leaq 0x2dffb4(%rip), %rcx    # 0x585854
leaq 0x2df709(%rip), %r8     # 0x584fb0
movl $0x1d0, %r9d            # imm = 0x1D0
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2a58bb
movq (%rsp), %rax
movq 0x970(%rax), %rdi
movq (%rsp), %rax
movq 0x858(%rax), %rsi
subq $0x2, %rsi
movq (%rsp), %rax
movzbl 0x978(%rax), %edx
callq 0x4d1440
movq (%rsp), %rax
movzbl 0x978(%rax), %eax
movl %eax, %ecx
movq (%rsp), %rax
addq 0x980(%rax), %rcx
movq %rcx, 0x980(%rax)
movq (%rsp), %rax
movq 0x988(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x988(%rax)
movq (%rsp), %rax
movq 0x970(%rax), %rdi
movq (%rsp), %rax
movq 0x858(%rax), %rsi
subq $0x1, %rsi
xorl %edx, %edx
callq 0x4d1440
movq (%rsp), %rax
movq $-0x1, 0x968(%rax)
movq (%rsp), %rax
movq 0x818(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x818(%rax)
movq (%rsp), %rax
testb $0x1, 0x8f1(%rax)
je 0x2a59a5
movq 0x39662c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x270695(%rip), %rsi    # 0x516013
leaq 0x2dfdbc(%rip), %rdx    # 0x585741
leaq 0x2dfec8(%rip), %rcx    # 0x585854
leaq 0x2df61d(%rip), %r8     # 0x584fb0
movl $0x1d9, %r9d            # imm = 0x1D9
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2a59a7
movq (%rsp), %rax
testb $0x1, 0x8f0(%rax)
je 0x2a5a2a
movq (%rsp), %rax
movq 0x808(%rax), %rax
movq (%rsp), %rcx
cmpq 0x870(%rcx), %rax
jbe 0x2a59e2
movq (%rsp), %rax
movq 0x808(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x870(%rax)
movq (%rsp), %rax
movq 0x808(%rax), %rax
movq (%rsp), %rcx
cmpq 0x878(%rcx), %rax
jae 0x2a5a10
movq (%rsp), %rax
movq 0x808(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x878(%rax)
movq (%rsp), %rdi
movq (%rsp), %rax
movq 0x858(%rax), %rsi
subq $0x1, %rsi
callq 0x2a6a10
jmp 0x2a5a73
movq (%rsp), %rax
cmpq $0x1, 0x860(%rax)
jbe 0x2a5a5b
movq (%rsp), %rax
movq 0x808(%rax), %rax
movq (%rsp), %rcx
cmpq 0x880(%rcx), %rax
je 0x2a5a59
movq (%rsp), %rdi
callq 0x2a6b20
jmp 0x2a5a71
movq (%rsp), %rax
movq 0x808(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x880(%rax)
jmp 0x2a5a73
popq %rax
retq
nopw %cs:(%rax,%rax)