// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/querymatch.c
// Function: gt_querymatch_alignment_prepare
static void gt_querymatch_alignment_prepare(GtQuerymatch *querymatch,
                                            const GtSeqorEncseq *dbes,
                                            const GtSeqorEncseq *queryes,
                                            bool greedyextension)
{
  bool seeded_alignment;
  GtUword abs_querystart_fwdstrand;

  gt_assert(querymatch != NULL);
  if (querymatch->ref_querymatchoutoptions == NULL)
  {
    return;
  }
  gt_assert(queryes != NULL);
  if (querymatch->distance > 0)
  {
    gt_querymatchoutoptions_seededmatch2eoplist(
                        querymatch->ref_querymatchoutoptions,
                        dbes,
                        gt_querymatch_dbstart_relative(querymatch),
                        querymatch->db_seqstart,
                        gt_querymatch_dblen(querymatch),
                        querymatch->query_readmode,
                        queryes,
                        querymatch->query_seqstart,
                        querymatch->query_seqlen,
                        querymatch->querystart,
                        querymatch->querylen,
                        querymatch->db_seedpos_rel,
                        querymatch->query_seedpos_rel,
                        querymatch->seedlen,
                        querymatch->verify_alignment,
                        greedyextension);
    seeded_alignment = true;
  } else
  {
    seeded_alignment = false;
  }
  abs_querystart_fwdstrand = querymatch->query_seqstart +
                             querymatch->querystart_fwdstrand;
  gt_querymatchoutoptions_extract_seq(querymatch->ref_querymatchoutoptions,
                                      dbes,
                                      querymatch->dbstart_relative,
                                      gt_querymatch_dbstart(querymatch),
                                      gt_querymatch_dblen(querymatch),
                                      querymatch->query_readmode,
                                      queryes,
                                      querymatch->querystart,
                                      abs_querystart_fwdstrand,
                                      querymatch->querylen,
                                      seeded_alignment);
  if (seeded_alignment && !greedyextension)
  {
    gt_querymatch_applycorrection(querymatch);
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movb %cl, %al
movq %rdi, 0xc0(%rsp)
movq %rsi, 0xb8(%rsp)
movq %rdx, 0xb0(%rsp)
andb $0x1, %al
movb %al, 0xaf(%rsp)
cmpq $0x0, 0xc0(%rsp)
jne 0x26a317
movq 0x3d1cba(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2abd23(%rip), %rsi    # 0x516013
leaq 0x31db54(%rip), %rdx    # 0x587e4b
leaq 0x314498(%rip), %rcx    # 0x57e796
leaq 0x313e7b(%rip), %r8     # 0x57e180
movl $0x356, %r9d            # imm = 0x356
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x26a319
movq 0xc0(%rsp), %rax
cmpq $0x0, 0x90(%rax)
jne 0x26a330
jmp 0x26a5f9
jmp 0x26a332
cmpq $0x0, 0xb0(%rsp)
jne 0x26a375
movq 0x3d1c5c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2abcc5(%rip), %rsi    # 0x516013
leaq 0x314299(%rip), %rdx    # 0x57e5ee
leaq 0x31443a(%rip), %rcx    # 0x57e796
leaq 0x313e1d(%rip), %r8     # 0x57e180
movl $0x35b, %r9d            # imm = 0x35B
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x26a377
movq 0xc0(%rsp), %rax
cmpq $0x0, 0x70(%rax)
jbe 0x26a4e9
movq 0xc0(%rsp), %rax
movq 0x90(%rax), %rax
movq %rax, 0x70(%rsp)
movq 0xb8(%rsp), %rax
movq %rax, 0x78(%rsp)
movq 0xc0(%rsp), %rdi
callq 0x2676d0
movq %rax, 0x80(%rsp)
movq 0xc0(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0x88(%rsp)
movq 0xc0(%rsp), %rdi
callq 0x2676e0
movq 0x70(%rsp), %rdi
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq 0x88(%rsp), %rcx
movq %rax, %r8
movq 0xc0(%rsp), %rax
movl 0x88(%rax), %r9d
movq 0xb0(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0xc0(%rsp), %rax
movq 0x50(%rax), %rbp
movq 0xc0(%rsp), %rax
movq 0x48(%rax), %r13
movq 0xc0(%rsp), %rax
movq 0x30(%rax), %r12
movq 0xc0(%rsp), %rax
movq 0x40(%rax), %r15
movq 0xc0(%rsp), %rax
movq 0x58(%rax), %r14
movq 0xc0(%rsp), %rax
movq 0x60(%rax), %rbx
movq 0xc0(%rsp), %rax
movq 0x68(%rax), %r11
movq 0xc0(%rsp), %rax
movb 0x8d(%rax), %r10b
movb 0xaf(%rsp), %al
andb $0x1, %r10b
andb $0x1, %al
movb %al, 0x9f(%rsp)
movq 0x90(%rsp), %rax
movq %rax, (%rsp)
movb 0x9f(%rsp), %al
movq %rbp, 0x8(%rsp)
movq %r13, 0x10(%rsp)
movq %r12, 0x18(%rsp)
movq %r15, 0x20(%rsp)
movq %r14, 0x28(%rsp)
movq %rbx, 0x30(%rsp)
movq %r11, 0x38(%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x40(%rsp)
movzbl %al, %eax
movl %eax, 0x48(%rsp)
callq 0x264000
movb $0x1, 0xae(%rsp)
jmp 0x26a4f1
movb $0x0, 0xae(%rsp)
movq 0xc0(%rsp), %rax
movq 0x50(%rax), %rax
movq 0xc0(%rsp), %rcx
addq 0x38(%rcx), %rax
movq %rax, 0xa0(%rsp)
movq 0xc0(%rsp), %rax
movq 0x90(%rax), %rax
movq %rax, 0x50(%rsp)
movq 0xb8(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0xc0(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x60(%rsp)
movq 0xc0(%rsp), %rdi
callq 0x2676b0
movq %rax, 0x68(%rsp)
movq 0xc0(%rsp), %rdi
callq 0x2676e0
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
movq 0x68(%rsp), %rcx
movq %rax, %r8
movq 0xc0(%rsp), %rax
movl 0x88(%rax), %r9d
movq 0xb0(%rsp), %r14
movq 0xc0(%rsp), %rax
movq 0x30(%rax), %rbx
movq 0xa0(%rsp), %r11
movq 0xc0(%rsp), %rax
movq 0x40(%rax), %r10
movb 0xae(%rsp), %al
andb $0x1, %al
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movzbl %al, %eax
movl %eax, 0x20(%rsp)
callq 0x264d30
testb $0x1, 0xae(%rsp)
je 0x26a5f9
testb $0x1, 0xaf(%rsp)
jne 0x26a5f9
movq 0xc0(%rsp), %rdi
callq 0x26b2a0
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax,%rax)