// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/seed-extend.c
// Function: gt_rf_extend_querymatch
static bool gt_rf_extend_querymatch(bool forxdrop,
                                    void *info,
                                    const GtEncseq *dbencseq,
                                    const GtQuerymatch *exactseed,
                                    const GtSeqorEncseq *queryes,
                                    bool same_encseq)
{
  GtSeedextendSeqpair sesp = {0,0,0,0,0,0,0,0,0,GT_READMODE_FORWARD,false};
  GtSeqorEncseq dbes;

  gt_assert(queryes != NULL && dbencseq != NULL);
  gt_querymatch_db_coordinates(&sesp.dbseqnum,&sesp.db_seqstart,
                               &sesp.dbseqlength,exactseed);
  gt_querymatch_query_coordinates(&sesp.queryseqnum,&sesp.query_seqstart,
                                  &sesp.query_seqlen,exactseed);
  if (queryes->encseq == NULL)
  {
    gt_assert(sesp.query_seqstart == 0);
    gt_assert(sesp.query_seqlen == queryes->seqlength);
  }
  gt_sesp_from_relative(&sesp,
                        sesp.dbseqnum,
                        gt_querymatch_dbstart_relative(exactseed),
                        same_encseq,
                        sesp.queryseqnum,
                        gt_querymatch_querystart(exactseed),
                        gt_querymatch_querylen(exactseed),
                        gt_querymatch_query_readmode(exactseed));
  GT_SEQORENCSEQ_INIT_ENCSEQ(&dbes,dbencseq);
  return gt_extend_sesp(forxdrop, info, &dbes, queryes, &sesp);
}

// Assembly:
subq $0xf8, %rsp
movb %r9b, %al
andb $0x1, %dil
movb %dil, 0xf7(%rsp)
movq %rsi, 0xe8(%rsp)
movq %rdx, 0xe0(%rsp)
movq %rcx, 0xd8(%rsp)
movq %r8, 0xd0(%rsp)
andb $0x1, %al
movb %al, 0xcf(%rsp)
leaq 0x78(%rsp), %rdi
xorl %esi, %esi
movl $0x50, %edx
callq 0x19360
cmpq $0x0, 0xd0(%rsp)
je 0x2af516
cmpq $0x0, 0xe0(%rsp)
jne 0x2af54e
movq 0x38ca83(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x266aec(%rip), %rsi    # 0x516013
leaq 0x2d894e(%rip), %rdx    # 0x587e7c
leaq 0x2d896b(%rip), %rcx    # 0x587ea0
leaq 0x2d8198(%rip), %r8     # 0x5876d4
movl $0x589, %r9d            # imm = 0x589
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2af550
leaq 0x78(%rsp), %rdi
leaq 0x78(%rsp), %rsi
addq $0x10, %rsi
leaq 0x78(%rsp), %rdx
addq $0x8, %rdx
movq 0xd8(%rsp), %rcx
callq 0x267700
leaq 0x78(%rsp), %rdi
addq $0x20, %rdi
leaq 0x78(%rsp), %rsi
addq $0x30, %rsi
leaq 0x78(%rsp), %rdx
addq $0x28, %rdx
movq 0xd8(%rsp), %rcx
callq 0x267750
movq 0xd0(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x2af64a
jmp 0x2af5b1
cmpq $0x0, 0xa8(%rsp)
je 0x2af5f4
movq 0x38c9dd(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x266a46(%rip), %rsi    # 0x516013
leaq 0x2d88e4(%rip), %rdx    # 0x587eb8
leaq 0x2d88c5(%rip), %rcx    # 0x587ea0
leaq 0x2d80f2(%rip), %r8     # 0x5876d4
movl $0x590, %r9d            # imm = 0x590
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2af5f6
jmp 0x2af5f8
movq 0xa0(%rsp), %rax
movq 0xd0(%rsp), %rcx
cmpq 0x20(%rcx), %rax
je 0x2af646
movq 0x38c98b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2669f4(%rip), %rsi    # 0x516013
leaq 0x2d88ab(%rip), %rdx    # 0x587ed1
leaq 0x2d8873(%rip), %rcx    # 0x587ea0
leaq 0x2d80a0(%rip), %r8     # 0x5876d4
movl $0x591, %r9d            # imm = 0x591
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2af648
jmp 0x2af64a
movq 0x78(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0xd8(%rsp), %rdi
callq 0x2676d0
movq %rax, 0x20(%rsp)
movb 0xcf(%rsp), %al
movb %al, 0x17(%rsp)
movq 0x98(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0xd8(%rsp), %rdi
callq 0x2676f0
movq %rax, 0x30(%rsp)
movq 0xd8(%rsp), %rdi
callq 0x2676a0
movq %rax, 0x38(%rsp)
movq 0xd8(%rsp), %rdi
callq 0x2677e0
movb 0x17(%rsp), %cl
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq 0x28(%rsp), %r8
movq 0x30(%rsp), %r9
movq 0x38(%rsp), %r10
leaq 0x78(%rsp), %rdi
andb $0x1, %cl
movzbl %cl, %ecx
movq %r10, (%rsp)
movl %eax, 0x8(%rsp)
callq 0x2ad8f0
movq 0xe0(%rsp), %rax
movq %rax, 0x48(%rsp)
movq $0x0, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
movq $-0x1, 0x60(%rsp)
movq $-0x1, 0x58(%rsp)
movq $0x0, 0x68(%rsp)
movb $0x0, 0x70(%rsp)
movb $0x1, 0x71(%rsp)
movb 0xf7(%rsp), %al
movq 0xe8(%rsp), %rsi
movq 0xd0(%rsp), %rcx
leaq 0x40(%rsp), %rdx
leaq 0x78(%rsp), %r8
andb $0x1, %al
movzbl %al, %edi
callq 0x2ad980
andb $0x1, %al
addq $0xf8, %rsp
retq
nopl (%rax)