// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/tools/gt_orffinder.c
// Function: gt_orffinder_option_parser_new
static GtOptionParser* gt_orffinder_option_parser_new(void *tool_arguments)
{
  GtOrffinderArguments *arguments = tool_arguments;
  GtOptionParser *op;
  GtOption *option, *optiontypes;
  gt_assert(arguments);

  /* init */
  op = gt_option_parser_new("[option ...] [indexname] [GFF3_file ...]",
                            "Identifies ORFs (open reading frames) in "
                            "sequences.");

  /* types */
  optiontypes = gt_option_new_string_array("types",
                                           "Specify regions which should be "
                                           "searched for open reading frames,\n"
                                           "e.g. 'LTR_retrotransposon'",
                                           arguments->types);
  gt_option_parser_add_option(op, optiontypes);

  /* -allorfs */
  option = gt_option_new_bool("allorfs", "search for all ORFs "
                              "instead of only the longest",
                              &arguments->allorfs, false);
  gt_option_parser_add_option(op, option);

  /* -min */
  option = gt_option_new_uint_min("min", "minimum length of ORF",
                                  &arguments->min, 30, 30);
  gt_option_parser_add_option(op, option);

  /* -max */
  option = gt_option_new_uint_max("max", "maximum length of ORF",
                                  &arguments->max, 10000, 1000000);
  gt_option_parser_add_option(op, option);

  /* -v */
  option = gt_option_new_verbose(&arguments->verbose);
  gt_option_parser_add_option(op, option);

  gt_output_file_info_register_options(arguments->ofi, op, &arguments->outfp);

  /* region mapping and sequence source options */

  gt_seqid2file_register_options_ext(op, arguments->s2fi, false, false);

  return op;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0xb3a0d
movq %rdi, %rbx
leaq 0x2a6976(%rip), %rdi    # 0x35a296
leaq 0x2a6998(%rip), %rsi    # 0x35a2bf
callq 0x10cc4e
movq %rax, %r14
movq 0x10(%rbx), %rdx
leaq 0x2b85cc(%rip), %rdi    # 0x36bf06
leaq 0x2a69b2(%rip), %rsi    # 0x35a2f3
callq 0x10f9b8
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x20(%rbx), %rdx
leaq 0x2a69f4(%rip), %rdi    # 0x35a350
leaq 0x2a69f5(%rip), %rsi    # 0x35a358
xorl %ecx, %ecx
callq 0x10f451
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x8(%rbx), %rdx
leaq 0x2e3ca2(%rip), %rdi    # 0x397622
leaq 0x2a6a01(%rip), %rsi    # 0x35a388
movl $0x1e, %ecx
movl $0x1e, %r8d
callq 0x10f73b
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0xc(%rbx), %rdx
leaq 0x317c26(%rip), %rdi    # 0x3cb5d3
leaq 0x2a69ea(%rip), %rsi    # 0x35a39e
movl $0x2710, %ecx           # imm = 0x2710
movl $0xf4240, %r8d          # imm = 0xF4240
callq 0x10f764
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x21(%rbx), %rdi
callq 0x10f473
movq %r14, %rdi
movq %rax, %rsi
callq 0x10cd10
movq 0x18(%rbx), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x10ffa3
movq 0x28(%rbx), %rsi
movq %r14, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x17b0a9
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
callq 0x1cd33