// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/tools/gt_speck.c
// Function: gt_speck_option_parser_new
static GtOptionParser* gt_speck_option_parser_new(void *tool_arguments)
{
  GtOptionParser *op;
  GtOption *option;
  SpeccheckArguments *arguments = tool_arguments;

  /* init */
  op = gt_option_parser_new("[options] [GFF3_file ...]",
                            "Checks spec definition compliance in GFF3 input.");

  option = gt_option_new_filename("specfile",
                                  "file with specification definition",
                                  arguments->specfile);
  gt_option_parser_add_option(op, option);
  gt_option_is_mandatory(option);

  option = gt_option_new_bool("colored", "show colored output",
                              &arguments->colored, true);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("provideindex", "provide feature index in "
                              "specfile namespace (requires O(n) memory for n "
                              "input features)",
                              &arguments->provideindex, false);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("sort", "sort input before checking (requires "
                              "O(n) memory for n input features)",
                              &arguments->sort, false);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("failhard", "stop processing and report runtime "
                              "errors instead of recording them in the results",
                              &arguments->fail_hard, false);
  gt_option_parser_add_option(op, option);

  /* -format */
  option = gt_option_new_string("output", "output format\n"
                                "choose from: [json, text, html, statsonly, "
                                "tabular] or give path to output driver",
                                arguments->format, "text");
  gt_option_parser_add_option(op, option);

  gt_typecheck_info_register_options_with_default(arguments->tci, op, "so");
  gt_seqid2file_register_options_ext(op, arguments->s2fi, false, false);
  gt_output_file_info_register_options(arguments->ofi, op, &arguments->outfp);
  option = gt_option_new_verbose(&arguments->verbose);
  gt_option_parser_add_option(op, option);

  return op;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %r14
leaq 0x29ddba(%rip), %rdi    # 0x2ef322
leaq 0x2aa30f(%rip), %rsi    # 0x2fb87e
callq 0x97df5
movq %rax, %rbx
movq (%r14), %rdx
leaq 0x2aa32e(%rip), %rdi    # 0x2fb8af
leaq 0x2aa330(%rip), %rsi    # 0x2fb8b8
callq 0x9ad51
movq %rax, %r15
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
movq %r15, %rdi
callq 0x9ae37
leaq 0x11(%r14), %rdx
leaq 0x2aa32d(%rip), %rdi    # 0x2fb8db
leaq 0x2aa32e(%rip), %rsi    # 0x2fb8e3
pushq $0x1
popq %rcx
callq 0x9a997
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x13(%r14), %rdx
leaq 0x2aa324(%rip), %rdi    # 0x2fb8f7
leaq 0x2aa32a(%rip), %rsi    # 0x2fb904
xorl %ecx, %ecx
callq 0x9a997
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x14(%r14), %rdx
leaq 0x2f75b0(%rip), %rdi    # 0x348ba7
leaq 0x2aa35e(%rip), %rsi    # 0x2fb95c
xorl %ecx, %ecx
callq 0x9a997
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x12(%r14), %rdx
leaq 0x2aa388(%rip), %rdi    # 0x2fb9a3
leaq 0x2aa38a(%rip), %rsi    # 0x2fb9ac
xorl %ecx, %ecx
callq 0x9a997
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
movq 0x8(%r14), %rdx
leaq 0x2bacc8(%rip), %rdi    # 0x30c307
leaq 0x2aa3b9(%rip), %rsi    # 0x2fb9ff
leaq 0x315a82(%rip), %rcx    # 0x3670cf
callq 0x9ad12
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
movq 0x28(%r14), %rdi
leaq 0x316b37(%rip), %rdx    # 0x36819f
movq %rbx, %rsi
callq 0x12ab08
movq 0x18(%r14), %rsi
movq %rbx, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x1167a5
movq 0x20(%r14), %rdi
leaq 0x30(%r14), %rdx
movq %rbx, %rsi
callq 0x9b6d7
addq $0x10, %r14
movq %r14, %rdi
callq 0x9a9b6
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq