// File: /workspace/github_c_makefile_star2_O1/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 0xaea31
movq %rdi, %rbx
callq 0x1208f8
movq %rax, 0x8(%rbx)
callq 0x121b54
movq %rax, (%rbx)
leaq 0x2a99ae(%rip), %rdi    # 0x3581a2
leaq 0x2a99db(%rip), %rsi    # 0x3581d6
callq 0x10cc4e
movq %rax, %r14
leaq 0x2a0ac2(%rip), %rsi    # 0x34f2cc
movq %rax, %rdi
callq 0x10ceab
movq (%rbx), %rdx
leaq 0x2e120c(%rip), %rdi    # 0x38fa28
leaq 0x2a4526(%rip), %rsi    # 0x352d49
callq 0x10f9f6
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x30(%rbx), %rdx
leaq 0x2e179a(%rip), %rdi    # 0x38ffd8
leaq 0x2a99be(%rip), %rsi    # 0x358203
movl $0x1, %ecx
callq 0x10f7c9
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x38(%rbx), %rdx
leaq 0x32ac35(%rip), %rdi    # 0x3d949a
leaq 0x2a99ab(%rip), %rsi    # 0x358217
movq $-0x3, %rcx
callq 0x10f7c9
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x40(%rbx), %rdx
leaq 0x2a99a0(%rip), %rdi    # 0x35822e
leaq 0x2a99a2(%rip), %rsi    # 0x358237
movq $-0x5, %rcx
callq 0x10f7c9
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x48(%rbx), %rdx
leaq 0x2d2739(%rip), %rdi    # 0x380ff0
leaq 0x2a9991(%rip), %rsi    # 0x35824f
movq $-0x2, %rcx
callq 0x10f7c9
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x28(%rbx), %rdx
leaq 0x2eceec(%rip), %rdi    # 0x39b7cc
leaq 0x2a9984(%rip), %rsi    # 0x35826b
movl $0x1, %r8d
xorl %ecx, %ecx
callq 0x10f7ed
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
movq %r15, %rdi
callq 0x10fa96
movq 0x8(%rbx), %rdx
leaq 0x2b436d(%rip), %rdi    # 0x362c82
leaq 0x2a43ea(%rip), %rsi    # 0x352d06
xorl %ecx, %ecx
callq 0x10f987
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
movq %r15, %rdi
callq 0x10cc3c
movq %rax, 0x10(%rbx)
movq 0x8(%rbx), %rdx
leaq 0x2a7e96(%rip), %rdi    # 0x3567de
leaq 0x2a43dd(%rip), %rsi    # 0x352d2c
xorl %ecx, %ecx
callq 0x10f987
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
movq %r12, %rdi
callq 0x10cc3c
movq %rax, 0x18(%rbx)
movq %r15, %rdi
movq %r12, %rsi
callq 0x10fd9f
movq %r15, %rdi
movq %r12, %rsi
callq 0x10faa6
leaq 0x23(%rbx), %rdx
leaq 0x2a98f0(%rip), %rdi    # 0x358281
leaq 0x2a98f0(%rip), %rsi    # 0x358288
xorl %ecx, %ecx
callq 0x10f451
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
movq %r15, %rdi
callq 0x10fbef
leaq 0x24(%rbx), %rdx
leaq 0x2c56ef(%rip), %rdi    # 0x3740af
leaq 0x2a98d9(%rip), %rsi    # 0x3582a0
xorl %ecx, %ecx
callq 0x10f451
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
movq %r15, %rdi
movq %r12, %rsi
callq 0x10fd9f
leaq 0x22(%rbx), %rdx
leaq 0x2b5dc1(%rip), %rdi    # 0x3647b3
leaq 0x2a98d6(%rip), %rsi    # 0x3582cf
xorl %ecx, %ecx
callq 0x10f451
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
addq $0x21, %rbx
movq %rbx, %rdi
callq 0x10f473
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
callq 0x1bd71