// File: /workspace/github_c_makefile_star2_O3/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 0x282e2f(%rip), %rdi    # 0x34f322
leaq 0x28f42e(%rip), %rsi    # 0x35b928
callq 0x107bfe
movq %rax, %rbx
movq (%r14), %rdx
leaq 0x28f44d(%rip), %rdi    # 0x35b959
leaq 0x28f44f(%rip), %rsi    # 0x35b962
callq 0x10a7af
movq %rax, %r15
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
callq 0x10a87b
leaq 0x11(%r14), %rdx
leaq 0x28f44c(%rip), %rdi    # 0x35b985
leaq 0x28f44d(%rip), %rsi    # 0x35b98d
movl $0x1, %ecx
callq 0x10a235
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x13(%r14), %rdx
leaq 0x28f441(%rip), %rdi    # 0x35b9a1
leaq 0x28f447(%rip), %rsi    # 0x35b9ae
xorl %ecx, %ecx
callq 0x10a235
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x14(%r14), %rdx
leaq 0x2dc290(%rip), %rdi    # 0x3a8814
leaq 0x28f47b(%rip), %rsi    # 0x35ba06
xorl %ecx, %ecx
callq 0x10a235
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x12(%r14), %rdx
leaq 0x28f4a5(%rip), %rdi    # 0x35ba4d
leaq 0x28f4a7(%rip), %rsi    # 0x35ba56
xorl %ecx, %ecx
callq 0x10a235
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
movq 0x8(%r14), %rdx
leaq 0x29fa5b(%rip), %rdi    # 0x36c027
leaq 0x28f4d6(%rip), %rsi    # 0x35baa9
leaq 0x2fa6e5(%rip), %rcx    # 0x3c6cbf
callq 0x10a770
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
movq 0x28(%r14), %rdi
leaq 0x2fb7aa(%rip), %rdx    # 0x3c7d9f
movq %rbx, %rsi
callq 0x183308
movq 0x18(%r14), %rsi
movq %rbx, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x172cc9
movq 0x20(%r14), %rdi
leaq 0x30(%r14), %rdx
movq %rbx, %rsi
callq 0x10ad87
addq $0x10, %r14
movq %r14, %rdi
callq 0x10a257
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq