// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/seed-extend.c
// Function: gt_greedy_extend_matchinfo_new
GtGreedyextendmatchinfo *gt_greedy_extend_matchinfo_new(
                                   GtUword maxalignedlendifference,
                                   GtUword history,
                                   GtUword perc_mat_history,
                                   GtUword userdefinedleastlength,
                                   GtUword errorpercentage,
                                   double evalue_threshold,
                                   GtExtendCharAccess db_extend_char_access,
                                   GtExtendCharAccess query_extend_char_access,
                                   bool cam_generic,
                                   GtUword sensitivity,
                                   const GtFtPolishing_info *pol_info)
{
  GtGreedyextendmatchinfo *ggemi = gt_malloc(sizeof *ggemi);

  ggemi->left_front_trace = NULL;
  ggemi->right_front_trace = NULL;
  ggemi->history = history;
  ggemi->trimstrategy = GT_OUTSENSE_TRIM_ALWAYS;
  ggemi->showfrontinfo = false;
  ggemi->userdefinedleastlength = userdefinedleastlength;
  ggemi->errorpercentage = errorpercentage;
  ggemi->evalue_threshold = evalue_threshold;
  gt_optimal_maxalilendiff_perc_mat_history(&ggemi->maxalignedlendifference,
                                            &ggemi->perc_mat_history,
                                            maxalignedlendifference,
                                            perc_mat_history,
                                            errorpercentage,
                                            sensitivity);
  ggemi->pol_info = pol_info;
  ggemi->db_totallength = GT_UWORD_MAX;
  ggemi->encseq_r_in_u = NULL;
  ggemi->encseq_r_in_v = NULL;
  ggemi->usequence_cache.space = NULL;
  ggemi->usequence_cache.allocated = 0;
  ggemi->vsequence_cache.space = NULL;
  ggemi->vsequence_cache.allocated = 0;
  ggemi->frontspace_reservoir.space = NULL;
  ggemi->frontspace_reservoir.allocated = 0;
  ggemi->frontspace_reservoir.offset = 0;
  ggemi->db_extend_char_access = db_extend_char_access;
  ggemi->query_extend_char_access = query_extend_char_access;
  ggemi->check_extend_symmetry = false;
  ggemi->trimstat = NULL;
  ggemi->db_twobit_possible = false;
  ggemi->query_twobit_possible = false;
  ggemi->db_haswildcards = true;
  ggemi->query_haswildcards = true;
  ggemi->cam_generic = cam_generic;
  return ggemi;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %r9d, 0xc(%rsp)
movsd %xmm0, 0x10(%rsp)
movq %r8, %r15
movq %rcx, %r13
movq %rdx, %r12
movq %rsi, %rbp
movq %rdi, %rbx
leaq 0x1c5987(%rip), %rsi    # 0x354ce4
movl $0xc8, %edi
movl $0x212, %edx            # imm = 0x212
callq 0x93160
movq %rax, %r14
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq %rbp, 0x18(%rax)
andl $0x0, 0xb0(%rax)
xorl %ebp, %ebp
movb %bpl, 0xbd(%rax)
movq %r13, 0x38(%rax)
movq %r15, 0x40(%rax)
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x48(%rax)
leaq 0x20(%rax), %rdi
leaq 0x28(%rax), %rsi
movq %rbx, %rdx
movq %r12, %rcx
movq %r15, %r8
movq 0x60(%rsp), %r9
callq 0x18ef30
movq 0x68(%rsp), %rax
movq %rax, 0x10(%r14)
orq $-0x1, 0x30(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x58(%r14)
andq $0x0, 0x68(%r14)
movups %xmm0, 0x78(%r14)
movups %xmm0, 0x90(%r14)
movups %xmm0, 0xa0(%r14)
movl 0xc(%rsp), %eax
movl %eax, 0xb4(%r14)
movl 0x50(%rsp), %eax
movl %eax, 0xb8(%r14)
movb %bpl, 0xbc(%r14)
andq $0x0, 0x50(%r14)
movl $0x1010000, 0xbe(%r14) # imm = 0x1010000
movb 0x58(%rsp), %al
movb %al, 0xc2(%r14)
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq