// File: /workspace/github_c_makefile_star2_O1/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 0x2898db(%rip), %rdi    # 0x358352
leaq 0x295f4a(%rip), %rsi    # 0x3649c8
callq 0x10cc4e
movq %rax, %rbx
movq (%r14), %rdx
leaq 0x295f69(%rip), %rdi    # 0x3649f9
leaq 0x295f6b(%rip), %rsi    # 0x364a02
callq 0x10f9c6
movq %rax, %r15
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
movq %r15, %rdi
callq 0x10fa96
leaq 0x11(%r14), %rdx
leaq 0x295f68(%rip), %rdi    # 0x364a25
leaq 0x295f69(%rip), %rsi    # 0x364a2d
movl $0x1, %ecx
callq 0x10f451
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x13(%r14), %rdx
leaq 0x295f5d(%rip), %rdi    # 0x364a41
leaq 0x295f63(%rip), %rsi    # 0x364a4e
xorl %ecx, %ecx
callq 0x10f451
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x14(%r14), %rdx
leaq 0x2e32c8(%rip), %rdi    # 0x3b1dd0
leaq 0x295f97(%rip), %rsi    # 0x364aa6
xorl %ecx, %ecx
callq 0x10f451
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x12(%r14), %rdx
leaq 0x295fc1(%rip), %rdi    # 0x364aed
leaq 0x295fc3(%rip), %rsi    # 0x364af6
xorl %ecx, %ecx
callq 0x10f451
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
movq 0x8(%r14), %rdx
leaq 0x2a6727(%rip), %rdi    # 0x375277
leaq 0x295ff2(%rip), %rsi    # 0x364b49
leaq 0x301891(%rip), %rcx    # 0x3d03ef
callq 0x10f987
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
movq 0x28(%r14), %rdi
leaq 0x30294e(%rip), %rdx    # 0x3d14c7
movq %rbx, %rsi
callq 0x18ba18
movq 0x18(%r14), %rsi
movq %rbx, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x17b0a9
movq 0x20(%r14), %rdi
leaq 0x30(%r14), %rdx
movq %rbx, %rsi
callq 0x10ffa3
addq $0x10, %r14
movq %r14, %rdi
callq 0x10f473
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq