// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/seed-extend-iter.c
// Function: gt_seedextend_match_iterator_next
GtQuerymatch *gt_seedextend_match_iterator_next(GtSeedextendMatchIterator *semi)
{
  bool selfmatch;

  gt_assert(semi != NULL);
  if (semi->currentmatchindex < GT_UWORD_MAX)
  {
    if (semi->currentmatchindex == semi->querymatch_table.nextfreeGtQuerymatch)
    {
      semi->currentmatch = NULL;
    } else
    {
      semi->currentmatch = gt_querymatch_table_get(&semi->querymatch_table,
                                                   semi->currentmatchindex++);
    }
    return semi->currentmatch;
  }
  selfmatch = semi->aencseq == semi->bencseq ? true : false;
  while (true)
  {
    const char *line_ptr;

    semi->linenum++;
    if (gt_str_read_next_line(semi->line_buffer, semi->inputfileptr) == EOF)
    {
      break;
    }
    line_ptr = gt_str_get(semi->line_buffer);
    gt_assert(line_ptr != NULL);
    if (line_ptr[0] != '\n' && line_ptr[0] != '#')
    {
      if (semi->in_display_flag == NULL)
      {
        return NULL;
      }
      gt_querymatch_read_line(semi->querymatchptr,
                              &semi->evalue,
                              &semi->bitscore,
                              line_ptr,
                              semi->in_display_flag,
                              selfmatch,
                              semi->aencseq,
                              semi->bencseq);
      gt_str_reset(semi->line_buffer);
      return semi->querymatchptr;
    }
    gt_str_reset(semi->line_buffer);
  }
  return NULL;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x18, %rsp
testq %rdi, %rdi
je 0x18e5e9
movq %rdi, %rbx
movq 0x68(%rdi), %rsi
cmpq $-0x1, %rsi
je 0x18e4f6
cmpq 0x98(%rbx), %rsi
jne 0x18e541
xorl %r14d, %r14d
jmp 0x18e558
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %r12
xorl %r14d, %r14d
incq 0x48(%rbx)
movq 0x40(%rbx), %rdi
movq 0x50(%rbx), %rsi
callq 0xad4de
cmpl $-0x1, %eax
je 0x18e55c
movq 0x40(%rbx), %rdi
callq 0xad1fa
testq %rax, %rax
je 0x18e5b1
movzbl (%rax), %ecx
cmpl $0xa, %ecx
je 0x18e536
cmpl $0x23, %ecx
jne 0x18e56b
movq 0x40(%rbx), %rdi
callq 0xad357
jmp 0x18e501
leaq 0x88(%rbx), %rdi
leaq 0x1(%rsi), %rax
movq %rax, 0x68(%rbx)
callq 0x16bc46
movq %rax, %r14
movq %r14, 0x70(%rbx)
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq 0xa0(%rbx), %r8
testq %r8, %r8
je 0x18e5ac
xorl %r9d, %r9d
cmpq %r12, %r15
sete %r9b
movq 0x78(%rbx), %rdi
leaq 0x58(%rbx), %rsi
leaq 0x60(%rbx), %rdx
movups 0x18(%rbx), %xmm0
movups %xmm0, (%rsp)
movq %rax, %rcx
callq 0x16affb
movq 0x40(%rbx), %rdi
callq 0xad357
movq 0x78(%rbx), %r14
jmp 0x18e55c
xorl %r14d, %r14d
jmp 0x18e55c
movq 0x2a99b0(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x156a51(%rip), %rsi    # 0x2e5013
leaq 0x1c53e0(%rip), %rdx    # 0x3539a9
leaq 0x1c53b7(%rip), %rcx    # 0x353987
leaq 0x1c5259(%rip), %r8     # 0x353830
movl $0x165, %r9d            # imm = 0x165
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x2a9978(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x156a19(%rip), %rsi    # 0x2e5013
leaq 0x1b5c2d(%rip), %rdx    # 0x34422e
leaq 0x1c537f(%rip), %rcx    # 0x353987
leaq 0x1c5221(%rip), %r8     # 0x353830
movl $0x14d, %r9d            # imm = 0x14D
jmp 0x18e5dd