// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/reads2twobit.c
// Function: gt_reads2twobit_encode_interleaved_paired_fasta_library
static void gt_reads2twobit_encode_interleaved_paired_fasta_library(
    GtReads2TwobitEncodeState *state, GtReadsLibraryInfo *rli, FILE *file,
    char *line)
{
  char *fgetsretval = NULL;
  bool processing_mate = true;
  do {
    if (line[0] == '>')
    {
      processing_mate = !processing_mate;
      if (state->current.nofseqs > rli->first_seqnum)
      {
        if (!state->invalid_mode)
          gt_reads2twobit_process_sequence_end(state);
        if (!processing_mate)
          gt_reads2twobit_finalize_descriptions(state);
      }
      gt_reads2twobit_process_desc_line(state, line, processing_mate, false);
      GT_READS2TWOBIT_HANDLE_LONG_DESCRIPTIONS(line, file, fgetsretval, true,
          state, processing_mate);
      if (processing_mate)
      {
        if (!state->invalid_mode)
          state->current.nofseqs++;
        state->seqlen_mate = state->seqlen;
        state->seqlen = 0;
        state->exp_qlen = 0;
      }
      else
      {
        gt_reads2twobit_prepare_for_new_sequence(state);
      }
    }
    else
    {
      gt_reads2twobit_process_sequence_line(state, line);
    }
  } while ((fgetsretval = fgets(line, (int)GT_READS2TWOBIT_READBUFFER_SIZE,
            file)) == line);
  if (!state->invalid_mode)
    gt_reads2twobit_process_sequence_end(state);
  gt_reads2twobit_finalize_descriptions(state);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x1, 0xf(%rsp)
movq 0x18(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0x2a71de
movb 0xf(%rsp), %al
xorb $-0x1, %al
andb $0x1, %al
movb %al, 0xf(%rsp)
movq 0x30(%rsp), %rax
movq 0x860(%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x38(%rcx), %rax
jbe 0x2a70c5
movq 0x30(%rsp), %rax
testb $0x1, 0x8f1(%rax)
jne 0x2a70b2
movq 0x30(%rsp), %rdi
callq 0x2a57b0
testb $0x1, 0xf(%rsp)
jne 0x2a70c3
movq 0x30(%rsp), %rdi
callq 0x2a5b50
jmp 0x2a70c5
movq 0x30(%rsp), %rdi
movq 0x18(%rsp), %rsi
movb 0xf(%rsp), %al
xorl %ecx, %ecx
andb $0x1, %al
movzbl %al, %edx
callq 0x2a5c70
movq 0x18(%rsp), %rdi
callq 0x192b0
movq %rax, %rcx
xorl %eax, %eax
cmpq $0xff, %rcx
movb %al, 0xe(%rsp)
jne 0x2a711f
movq 0x18(%rsp), %rax
movsbl 0xfe(%rax), %ecx
xorl %eax, %eax
cmpl $0xa, %ecx
movb %al, 0xe(%rsp)
je 0x2a711f
cmpq $0x0, 0x10(%rsp)
setne %al
movb %al, 0xe(%rsp)
movb 0xe(%rsp), %al
testb $0x1, %al
jne 0x2a7129
jmp 0x2a716c
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rdx
movl $0x100, %esi            # imm = 0x100
callq 0x19b60
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x2a7167
movq 0x30(%rsp), %rdi
movq 0x18(%rsp), %rsi
movb 0xf(%rsp), %al
movl $0x1, %ecx
andb $0x1, %al
movzbl %al, %edx
callq 0x2a5c70
jmp 0x2a70df
testb $0x1, 0xf(%rsp)
je 0x2a71d2
movq 0x30(%rsp), %rax
testb $0x1, 0x8f1(%rax)
jne 0x2a7198
movq 0x30(%rsp), %rax
movq 0x860(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x860(%rax)
movq 0x30(%rsp), %rax
movq 0x808(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x810(%rax)
movq 0x30(%rsp), %rax
movq $0x0, 0x808(%rax)
movq 0x30(%rsp), %rax
movq $0x0, 0x818(%rax)
jmp 0x2a71dc
movq 0x30(%rsp), %rdi
callq 0x2a5d20
jmp 0x2a71ed
movq 0x30(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x2a5db0
jmp 0x2a71ef
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rdx
movl $0x100, %esi            # imm = 0x100
callq 0x19b60
movq %rax, 0x10(%rsp)
cmpq 0x18(%rsp), %rax
je 0x2a7066
movq 0x30(%rsp), %rax
testb $0x1, 0x8f1(%rax)
jne 0x2a722b
movq 0x30(%rsp), %rdi
callq 0x2a57b0
movq 0x30(%rsp), %rdi
callq 0x2a5b50
addq $0x38, %rsp
retq
nopw (%rax,%rax)