// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x48, %rsp
movq 0x68(%rsp), %rax
movq 0x60(%rsp), %rax
movb 0x58(%rsp), %al
movl 0x50(%rsp), %r10d
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq %rcx, 0x28(%rsp)
movq %r8, 0x20(%rsp)
movsd %xmm0, 0x18(%rsp)
movl %r9d, 0x14(%rsp)
andb $0x1, %al
movb %al, 0x13(%rsp)
movl $0xc8, %edi
leaq 0x2db877(%rip), %rsi    # 0x5876d4
movl $0x212, %edx            # imm = 0x212
callq 0xe80f0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq $0x0, (%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x38(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rax
movl $0x0, 0xb0(%rax)
movq 0x8(%rsp), %rax
movb $0x0, 0xbd(%rax)
movq 0x28(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x20(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x40(%rax)
movsd 0x18(%rsp), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x48(%rax)
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
movq 0x8(%rsp), %rsi
addq $0x28, %rsi
movq 0x40(%rsp), %rdx
movq 0x30(%rsp), %rcx
movq 0x20(%rsp), %r8
movq 0x60(%rsp), %r9
callq 0x2ab720
movq 0x68(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq $-0x1, 0x30(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x58(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x60(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x68(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x78(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x80(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x90(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x98(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0xa8(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0xa0(%rax)
movl 0x14(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0xb4(%rax)
movl 0x50(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0xb8(%rax)
movq 0x8(%rsp), %rax
movb $0x0, 0xbc(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x50(%rax)
movq 0x8(%rsp), %rax
movb $0x0, 0xbe(%rax)
movq 0x8(%rsp), %rax
movb $0x0, 0xbf(%rax)
movq 0x8(%rsp), %rax
movb $0x1, 0xc0(%rax)
movq 0x8(%rsp), %rax
movb $0x1, 0xc1(%rax)
movb 0x13(%rsp), %cl
movq 0x8(%rsp), %rax
andb $0x1, %cl
movb %cl, 0xc2(%rax)
movq 0x8(%rsp), %rax
addq $0x48, %rsp
retq
nopw (%rax,%rax)