// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x476e3
movq 0x5f48ee(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4ce957(%rip), %rsi    # 0x516013
leaq 0x53349c(%rip), %rdx    # 0x57ab5f
leaq 0x4dabf1(%rip), %rcx    # 0x5222bb
leaq 0x4dabd1(%rip), %r8     # 0x5222a2
movl $0x4f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x476e5
leaq 0x4dabee(%rip), %rdi    # 0x5222da
leaq 0x4dac10(%rip), %rsi    # 0x522303
callq 0xf1420
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdx
leaq 0x4ec939(%rip), %rdi    # 0x534046
leaq 0x4dac23(%rip), %rsi    # 0x522337
callq 0xf6a50
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdx
addq $0x20, %rdx
leaq 0x4dac59(%rip), %rdi    # 0x522394
leaq 0x4dac5a(%rip), %rsi    # 0x52239c
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdx
addq $0x8, %rdx
leaq 0x51932b(%rip), %rdi    # 0x560a98
leaq 0x4dac58(%rip), %rsi    # 0x5223cc
movl $0x1e, %r8d
movl %r8d, %ecx
callq 0xf6510
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdx
addq $0xc, %rdx
leaq 0x54dab5(%rip), %rdi    # 0x59525b
leaq 0x4dac35(%rip), %rsi    # 0x5223e2
movl $0x2710, %ecx           # imm = 0x2710
movl $0xf4240, %r8d          # imm = 0xF4240
callq 0xf6570
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdi
addq $0x21, %rdi
callq 0xf5f90
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
callq 0xf7d50
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x28(%rax), %rsi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x1d4480
movq 0x10(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax)