// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x4aa3c8(%rip), %rdi    # 0x5203b2
leaq 0x4b6a84(%rip), %rsi    # 0x52ca75
callq 0xf1420
movq %rax, 0x18(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rdx
leaq 0x4b6a9c(%rip), %rdi    # 0x52caa6
leaq 0x4b6a9e(%rip), %rsi    # 0x52caaf
callq 0xf6aa0
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x10(%rsp), %rdi
callq 0xf6ca0
movq 0x8(%rsp), %rdx
addq $0x11, %rdx
leaq 0x4b6a8e(%rip), %rdi    # 0x52cad2
leaq 0x4b6a8f(%rip), %rsi    # 0x52cada
movl $0x1, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x8(%rsp), %rdx
addq $0x13, %rdx
leaq 0x4b6a75(%rip), %rdi    # 0x52caee
leaq 0x4b6a7b(%rip), %rsi    # 0x52cafb
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x8(%rsp), %rdx
addq $0x14, %rdx
leaq 0x50505f(%rip), %rdi    # 0x57b10a
leaq 0x4b6aa1(%rip), %rsi    # 0x52cb53
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x8(%rsp), %rdx
addq $0x12, %rdx
leaq 0x4b6abd(%rip), %rdi    # 0x52cb9a
leaq 0x4b6abf(%rip), %rsi    # 0x52cba3
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdx
leaq 0x4c7b70(%rip), %rdi    # 0x53dc7f
leaq 0x4b6ae0(%rip), %rsi    # 0x52cbf6
leaq 0x523f87(%rip), %rcx    # 0x59a0a4
callq 0xf69f0
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
movq 0x18(%rsp), %rsi
leaq 0x5251d1(%rip), %rdx    # 0x59b31c
callq 0x1f48c0
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rsi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x1d4480
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %rdx
addq $0x30, %rdx
callq 0xf7d50
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
callq 0xf5f90
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rax
addq $0x28, %rsp
retq
nop