// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/match_iterator_blast.c
// Function: gt_match_iterator_blastn_process_new
GtMatchIterator* gt_match_iterator_blastn_process_new(const char *query,
                                                      const char *db_name,
                                                      double evalue,
                                                      bool dust,
                                                      int word_size,
                                                      int gapopen,
                                                      int gapextend,
                                                      int penalty,
                                                      int reward,
                                                      double perc_identity,
                                                      int num_threads,
                                                      double xdrop_gap_final,
                                                      const char *moreblast,
                                                      GtError *err)
{
  GtBlastProcessCall *call = gt_blast_process_call_new_all_nucl();
  char buffer[BUFSIZ];

  gt_blast_process_call_set_query(call, query);
  gt_blast_process_call_set_db(call, db_name);
  if (evalue != GT_UNDEF_DOUBLE)
    gt_blast_process_call_set_evalue(call, evalue);
  if (dust)
    gt_blast_process_call_set_opt(call, " -dust yes");
  if (word_size != GT_UNDEF_INT)
    gt_blast_process_call_set_wordsize(call, word_size);
  if (gapopen != GT_UNDEF_INT)
    gt_blast_process_call_set_gapopen(call, gapopen);
  if (gapextend != GT_UNDEF_INT)
    gt_blast_process_call_set_gapextend(call, gapextend);
  if (penalty != GT_UNDEF_INT)
    gt_blast_process_call_set_penalty(call, penalty);
  if (reward != GT_UNDEF_INT)
    gt_blast_process_call_set_reward(call, reward);
  if (perc_identity != GT_UNDEF_DOUBLE) {
    GT_UNUSED int ret;
    ret = snprintf(buffer, BUFSIZ, " -perc_identity %.2f", perc_identity);
    gt_assert((size_t) ret < BUFSIZ);
    gt_blast_process_call_set_opt(call, buffer);
  }
  if (num_threads != GT_UNDEF_INT)
    gt_blast_process_call_set_num_threads(call, num_threads);
  if (xdrop_gap_final != GT_UNDEF_DOUBLE)
    gt_blast_process_call_set_xdrop_gap_final(call, xdrop_gap_final);
  if (moreblast != NULL) {
    GT_UNUSED int ret;
    ret = snprintf(buffer, BUFSIZ, " %s", moreblast);
    gt_assert((size_t) ret < BUFSIZ);
    gt_blast_process_call_set_opt(call, buffer);
  }
  return gt_match_iterator_blast_process_new(call, err);
}

// Assembly:
subq $0x2058, %rsp           # imm = 0x2058
movb %dl, %al
movq 0x2080(%rsp), %rdx
movq 0x2078(%rsp), %rdx
movl 0x2070(%rsp), %edx
movl 0x2068(%rsp), %edx
movl 0x2060(%rsp), %edx
movq %rdi, 0x2050(%rsp)
movq %rsi, 0x2048(%rsp)
movsd %xmm0, 0x2040(%rsp)
andb $0x1, %al
movb %al, 0x203f(%rsp)
movl %ecx, 0x2038(%rsp)
movl %r8d, 0x2034(%rsp)
movl %r9d, 0x2030(%rsp)
movsd %xmm1, 0x2028(%rsp)
movsd %xmm2, 0x2020(%rsp)
callq 0x136e70
movq %rax, 0x2018(%rsp)
movq 0x2018(%rsp), %rdi
movq 0x2050(%rsp), %rsi
callq 0x137080
movq 0x2018(%rsp), %rdi
movq 0x2048(%rsp), %rsi
callq 0x137130
movsd 0x2040(%rsp), %xmm0
movsd 0x370b3f(%rip), %xmm1   # 0x518d50
ucomisd %xmm1, %xmm0
jne 0x1a821b
jp 0x1a821b
jmp 0x1a8231
movq 0x2018(%rsp), %rdi
movsd 0x2040(%rsp), %xmm0
callq 0x1371e0
testb $0x1, 0x203f(%rsp)
je 0x1a824f
movq 0x2018(%rsp), %rdi
leaq 0x3b153c(%rip), %rsi    # 0x559786
callq 0x137970
cmpl $0x80000000, 0x2038(%rsp) # imm = 0x80000000
je 0x1a8270
movq 0x2018(%rsp), %rdi
movl 0x2038(%rsp), %esi
callq 0x137290
cmpl $0x80000000, 0x2034(%rsp) # imm = 0x80000000
je 0x1a8291
movq 0x2018(%rsp), %rdi
movl 0x2034(%rsp), %esi
callq 0x137340
cmpl $0x80000000, 0x2030(%rsp) # imm = 0x80000000
je 0x1a82b2
movq 0x2018(%rsp), %rdi
movl 0x2030(%rsp), %esi
callq 0x1373f0
cmpl $0x80000000, 0x2060(%rsp) # imm = 0x80000000
je 0x1a82d3
movq 0x2018(%rsp), %rdi
movl 0x2060(%rsp), %esi
callq 0x1374a0
cmpl $0x80000000, 0x2068(%rsp) # imm = 0x80000000
je 0x1a82f4
movq 0x2018(%rsp), %rdi
movl 0x2068(%rsp), %esi
callq 0x137590
movsd 0x2028(%rsp), %xmm0
movsd 0x370a4b(%rip), %xmm1   # 0x518d50
ucomisd %xmm1, %xmm0
jne 0x1a830f
jp 0x1a830f
jmp 0x1a838d
leaq 0x10(%rsp), %rdi
movsd 0x2028(%rsp), %xmm0
movl $0x2000, %esi           # imm = 0x2000
leaq 0x3b1468(%rip), %rdx    # 0x559791
movb $0x1, %al
callq 0x19b90
movl %eax, 0xc(%rsp)
movslq 0xc(%rsp), %rax
cmpq $0x2000, %rax           # imm = 0x2000
jb 0x1a8379
movq 0x493c58(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x36dcc1(%rip), %rsi    # 0x516013
leaq 0x3b13ef(%rip), %rdx    # 0x559748
leaq 0x3b1446(%rip), %rcx    # 0x5597a6
leaq 0x3b1381(%rip), %r8     # 0x5596e8
movl $0x15a, %r9d            # imm = 0x15A
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1a837b
movq 0x2018(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x137970
cmpl $0x80000000, 0x2070(%rsp) # imm = 0x80000000
je 0x1a83ae
movq 0x2018(%rsp), %rdi
movl 0x2070(%rsp), %esi
callq 0x137680
movsd 0x2020(%rsp), %xmm0
movsd 0x370991(%rip), %xmm1   # 0x518d50
ucomisd %xmm1, %xmm0
jne 0x1a83c9
jp 0x1a83c9
jmp 0x1a83df
movq 0x2018(%rsp), %rdi
movsd 0x2020(%rsp), %xmm0
callq 0x137730
cmpq $0x0, 0x2078(%rsp)
je 0x1a8467
leaq 0x10(%rsp), %rdi
movq 0x2078(%rsp), %rcx
movl $0x2000, %esi           # imm = 0x2000
leaq 0x3d56c8(%rip), %rdx    # 0x57dacb
movb $0x0, %al
callq 0x19b90
movl %eax, 0x8(%rsp)
movslq 0x8(%rsp), %rax
cmpq $0x2000, %rax           # imm = 0x2000
jb 0x1a8453
movq 0x493b7e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x36dbe7(%rip), %rsi    # 0x516013
leaq 0x3b1315(%rip), %rdx    # 0x559748
leaq 0x3b136c(%rip), %rcx    # 0x5597a6
leaq 0x3b12a7(%rip), %r8     # 0x5596e8
movl $0x164, %r9d            # imm = 0x164
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1a8455
movq 0x2018(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x137970
movq 0x2018(%rsp), %rdi
movq 0x2080(%rsp), %rsi
callq 0x1a7cc0
addq $0x2058, %rsp           # imm = 0x2058
retq
nopw %cs:(%rax,%rax)