// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/tools/gt_condenseq_hmmsearch.c
// Function: gt_condenseq_hmmsearch_option_parser_new
static GtOptionParser*
gt_condenseq_hmmsearch_option_parser_new(void *tool_arguments)
{
  GtCondenseqHmmsearchArguments *arguments = tool_arguments;
  GtOptionParser *op;
  GtOption *option;
  gt_assert(arguments);

  /* init */
  op = gt_option_parser_new("[option ...] -db DATABASE -hmm HMMPROFILE",
                            "Perform a hmmsearch on the given compressed "
                            "database.");

  /* -db and -verbose */
  gt_condenseq_search_register_options(arguments->csa, op);

  /* -hmm */
  option = gt_option_new_string("hmm", "hmm query", arguments->hmm, NULL);
  gt_option_is_mandatory(option);
  gt_option_parser_add_option(op, option);

  /* -hmmsearch */
  option = gt_option_new_string("hmmsearch", "path to hmmsearch, please set if "
                                "not installed at (linux) default location",
                                arguments->hmmsearch_path,
                                "/usr/bin/hmmsearch");
  gt_option_parser_add_option(op, option);

  /* -tblout */
  option = gt_option_new_string("tblout", "file basename to output tabular "
                                "hmmsearch output to (like hmmer option "
                                "--tblout). Depending on -max_queries will "
                                "produce multiple numbered files with .tab "
                                "ending.",
                                arguments->outtable_filename, NULL);
  gt_option_parser_add_option(op, option);

  /* -force_ow */
  option = gt_option_new_bool("force_ow", "force overwrite of existing files",
                              &arguments->force_ow, false);
  gt_option_parser_add_option(op, option);

  /* -max_queries */
  option = gt_option_new_uint("max_queries", "maximum number of queries per "
                              "fine search, influences file-size and therefore "
                              "speed!, 0 disables splitting",
                              &arguments->max_queries, 5U);
  gt_option_parser_add_option(op, option);

  /* -max_threads */
  option = gt_option_new_uint("max_threads", "maximum number of threads "
                              "hmmsearch may use",
                              &arguments->hmm_num_threads, GT_UNDEF_UINT);
  gt_option_parser_add_option(op, option);
  return op;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
testq %rdi, %rdi
je 0x9f9a5
movq %rdi, %rbx
leaq 0x2a9a77(%rip), %rdi    # 0x349308
leaq 0x2a9a9a(%rip), %rsi    # 0x349332
callq 0x107bfe
movq %rax, %r14
movq (%rbx), %rdi
movq %rax, %rsi
callq 0x130d71
movq 0x8(%rbx), %rdx
leaq 0x2a9ab2(%rip), %rdi    # 0x349368
leaq 0x2a9aaf(%rip), %rsi    # 0x34936c
xorl %ecx, %ecx
callq 0x10a770
movq %rax, %r15
movq %rax, %rdi
callq 0x10a87b
movq %r14, %rdi
movq %r15, %rsi
callq 0x107cc0
movq 0x10(%rbx), %rdx
leaq 0x2a9e0b(%rip), %rdi    # 0x3496f0
leaq 0x2a9a8a(%rip), %rsi    # 0x349376
leaq 0x2a9ace(%rip), %rcx    # 0x3493c1
callq 0x10a770
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq 0x18(%rbx), %rdx
leaq 0x2a9eaa(%rip), %rdi    # 0x3497b8
leaq 0x2a9abf(%rip), %rsi    # 0x3493d4
xorl %ecx, %ecx
callq 0x10a770
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x28(%rbx), %rdx
leaq 0x2a9b45(%rip), %rdi    # 0x349477
leaq 0x2a9b47(%rip), %rsi    # 0x349480
xorl %ecx, %ecx
callq 0x10a235
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x20(%rbx), %rdx
leaq 0x2a9b4c(%rip), %rdi    # 0x3494a2
leaq 0x2a9b51(%rip), %rsi    # 0x3494ae
movl $0x5, %ecx
callq 0x10a4fd
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
addq $0x24, %rbx
leaq 0x2a9b9c(%rip), %rdi    # 0x349519
leaq 0x2a9ba1(%rip), %rsi    # 0x349525
movq %rbx, %rdx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
callq 0x10a4fd
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
callq 0x19460