// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/tools/gt_idxlocali.c
// Function: gt_idxlocali_option_parser_new
static GtOptionParser *gt_idxlocali_option_parser_new(void *tool_arguments)
{
  IdxlocaliOptions *arguments = tool_arguments;
  GtOptionParser *op;
  GtOption *option, *optionesaindex, *optionpckindex, *optiononline, *optioncmp;

  gt_assert(arguments != NULL);
  arguments->indexname = gt_str_new ();
  arguments->queryfiles = gt_str_array_new ();

  op = gt_option_parser_new
    ("[options] -q query-file-names [-esa|-pck] indexname",
     "Find all local alignments using suffix tree.");

  gt_option_parser_set_mail_address(op, "<kurtz@zbh.uni-hamburg.de>");
  option = gt_option_new_filename_array("q","Specify files containing the "
                                            "query sequences",
                                        arguments->queryfiles);
  gt_option_parser_add_option (op, option);

  option = gt_option_new_word("match",
                              "Specify match score",
                              &arguments->matchscore, 1L);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_word("mismatch",
                              "Specify mismatch score",
                              &arguments->mismatchscore, -3L);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_word("gapstart",
                              "Specify gap start score",
                              &arguments->gapstart, -5L);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_word("gapextend",
                              "Specify gap extension score",
                              &arguments->gapextend, -2L);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_uword_min("th",
                                   "Specify the threshold",
                                    &arguments->threshold, 0, 1UL);
  gt_option_parser_add_option(op, option);
  gt_option_is_mandatory(option);

  optionesaindex = gt_option_new_string("esa",
                                        "Specify index "
                                        "(enhanced suffix array)",
                                        arguments->indexname, NULL);
  gt_option_parser_add_option(op, optionesaindex);
  arguments->refoptionesaindex = gt_option_ref(optionesaindex);

  optionpckindex = gt_option_new_string("pck",
                                        "Specify index (packed index)",
                                        arguments->indexname, NULL);
  gt_option_parser_add_option(op, optionpckindex);
  arguments->refoptionpckindex = gt_option_ref (optionpckindex);
  gt_option_exclude (optionesaindex, optionpckindex);
  gt_option_is_mandatory_either(optionesaindex, optionpckindex);

  optiononline = gt_option_new_bool("online","Perform online searches",
                                    &arguments->doonline, false);
  gt_option_parser_add_option(op, optiononline);
  gt_option_is_development_option(optiononline);

  optioncmp = gt_option_new_bool("cmp","Compare results of offline and online "
                                 "searches",
                                 &arguments->docompare, false);
  gt_option_parser_add_option(op,optioncmp);
  gt_option_exclude(optiononline,optioncmp);

  option = gt_option_new_bool("s",
                              "Show alignments",
                              &arguments->showalignment, false);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_verbose(&arguments->verbose);
  gt_option_parser_add_option(op, option);
  return op;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0xac719
movq %rdi, %rbx
callq 0x11ac6c
movq %rax, 0x8(%rbx)
callq 0x11be10
movq %rax, (%rbx)
leaq 0x2a2c96(%rip), %rdi    # 0x34f172
leaq 0x2a2cc3(%rip), %rsi    # 0x34f1a6
callq 0x107bfe
movq %rax, %r14
leaq 0x299dda(%rip), %rsi    # 0x3462cc
movq %rax, %rdi
callq 0x107e5c
movq (%rbx), %rdx
leaq 0x2da144(%rip), %rdi    # 0x386648
leaq 0x29d82e(%rip), %rsi    # 0x349d39
callq 0x10a7df
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x30(%rbx), %rdx
leaq 0x2da6d2(%rip), %rdi    # 0x386bf8
leaq 0x2a2ca6(%rip), %rsi    # 0x34f1d3
movl $0x1, %ecx
callq 0x10a5ad
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x38(%rbx), %rdx
leaq 0x3237fd(%rip), %rdi    # 0x3cfd4a
leaq 0x2a2c93(%rip), %rsi    # 0x34f1e7
movq $-0x3, %rcx
callq 0x10a5ad
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x40(%rbx), %rdx
leaq 0x2a2c88(%rip), %rdi    # 0x34f1fe
leaq 0x2a2c8a(%rip), %rsi    # 0x34f207
movq $-0x5, %rcx
callq 0x10a5ad
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x48(%rbx), %rdx
leaq 0x2cb7b3(%rip), %rdi    # 0x377d52
leaq 0x2a2c79(%rip), %rsi    # 0x34f21f
movq $-0x2, %rcx
callq 0x10a5ad
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x28(%rbx), %rdx
leaq 0x2e5de4(%rip), %rdi    # 0x3923ac
leaq 0x2a2c6c(%rip), %rsi    # 0x34f23b
movl $0x1, %r8d
xorl %ecx, %ecx
callq 0x10a5d1
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
callq 0x10a87b
movq 0x8(%rbx), %rdx
leaq 0x2ad628(%rip), %rdi    # 0x359c25
leaq 0x29d6f2(%rip), %rsi    # 0x349cf6
xorl %ecx, %ecx
callq 0x10a770
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
callq 0x107bec
movq %rax, 0x10(%rbx)
movq 0x8(%rbx), %rdx
leaq 0x2a117e(%rip), %rdi    # 0x34d7ae
leaq 0x29d6e5(%rip), %rsi    # 0x349d1c
xorl %ecx, %ecx
callq 0x10a770
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r12, %rdi
callq 0x107bec
movq %rax, 0x18(%rbx)
movq %r15, %rdi
movq %r12, %rsi
callq 0x10ab96
movq %r15, %rdi
movq %r12, %rsi
callq 0x10a88b
leaq 0x23(%rbx), %rdx
leaq 0x2a2bd8(%rip), %rdi    # 0x34f251
leaq 0x2a2bd8(%rip), %rsi    # 0x34f258
xorl %ecx, %ecx
callq 0x10a235
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
callq 0x10a9d4
leaq 0x24(%rbx), %rdx
leaq 0x2be7b7(%rip), %rdi    # 0x36ae5f
leaq 0x2a2bc1(%rip), %rsi    # 0x34f270
xorl %ecx, %ecx
callq 0x10a235
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
movq %r12, %rsi
callq 0x10ab96
leaq 0x22(%rbx), %rdx
leaq 0x2af039(%rip), %rdi    # 0x35b713
leaq 0x2a2bbe(%rip), %rsi    # 0x34f29f
xorl %ecx, %ecx
callq 0x10a235
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
addq $0x21, %rbx
movq %rbx, %rdi
callq 0x10a257
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
callq 0x1bc75