// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/tools/gt_seq.c
// Function: gt_seq_option_parser_new
static GtOptionParser* gt_seq_option_parser_new(void *tool_arguments)
{
  SeqArguments *arguments = tool_arguments;
  GtOption *option, *option_recreate, *option_showfasta, *option_showseqnum,
           *option_width, *option_stat, *option_showseqnum_inputfile,
           *option_seqnum_from_0, *option_showseqlength;
  GtOptionParser *op;
  gt_assert(arguments);

  op = gt_option_parser_new("[option ...] sequence_file [...]",
                            "Parse the given sequence file(s) and construct "
                            "the corresponding index files.");

  /* -recreate */
  option_recreate = gt_option_new_bool("recreate", "recreate index files, even "
                                       "if they exist already",
                                       &arguments->recreate, false);
  gt_option_parser_add_option(op, option_recreate);

  /* -showfasta */
  option_showfasta = gt_option_new_bool("showfasta", "show all sequences (in "
                                        "FASTA format)", &arguments->showfasta,
                                        false);
  gt_option_parser_add_option(op, option_showfasta);

  /* -showseqnum */
#define GT_COMMENT_COUNTED_FROM_0\
        "(sequences are counted from 1 unless -seqnum_from_0 is specified)"
  option_showseqnum = gt_option_new_uword_min("showseqnum",
                      "show sequence with given number "
                      GT_COMMENT_COUNTED_FROM_0,
                      &arguments->showseqnum,
                      GT_UNDEF_UWORD, 0);
  gt_option_parser_add_option(op, option_showseqnum);

  option_showseqlength = gt_option_new_uword_min("showseqlength",
                      "show length of sequence with given number "
                      GT_COMMENT_COUNTED_FROM_0,
                      &arguments->showseqlength,
                      GT_UNDEF_UWORD, 0);
  gt_option_parser_add_option(op, option_showseqlength);

  /* -showseqnum_inputfile */
  option_showseqnum_inputfile = gt_option_new_filename("showseqnum_inputfile",
                                "show sequence with given numbers "
                                "specified line by line in given file "
                                GT_COMMENT_COUNTED_FROM_0,
                                arguments->showseqnum_inputfile);
  gt_option_parser_add_option(op, option_showseqnum_inputfile);

  /* -seqnum_from_0 */
  option_seqnum_from_0 = gt_option_new_bool("seqnum_from_0",
                        "for options -showseqnum and -showseqnum_inputfile: "
                        "count sequence numbers from 0 instead of 1",
                        &arguments->seqnum_from_0, false);
  gt_option_parser_add_option(op, option_seqnum_from_0);

  /* -gc-content */
  option = gt_option_new_bool("gc-content", "print GC-content (for DNA files)",
                              &arguments->gc_content, false);
  gt_option_parser_add_option(op, option);

  /* -stat */
  option_stat = gt_option_new_bool("stat", "show sequence statistics",
                                   &arguments->stat, false);
  gt_option_parser_add_option(op, option_stat);

  /* -seqlengthdistri */
  option = gt_option_new_bool("seqlengthdistri", "show sequence length "
                              "distribution", &arguments->seqlengthdistri,
                              false);
  gt_option_parser_add_option(op, option);

  /* -width */

  option_width = gt_option_new_width(&arguments->width);
  gt_option_parser_add_option(op, option_width);

  /* output file options */
  gt_output_file_info_register_options(arguments->ofi, op, &arguments->outfp);

  /* option implications */
  gt_option_imply_either_3(option_width, option_showfasta, option_showseqnum,
                           option_showseqnum_inputfile);
  gt_option_imply_either_3(option_seqnum_from_0, option_showseqnum,
                           option_showseqlength,
                           option_showseqnum_inputfile);

  /* option exclusions */
  gt_option_exclude(option_showfasta, option_stat);
  gt_option_exclude(option_showfasta, option_showseqnum);
  gt_option_exclude(option_showseqnum, option_stat);
  gt_option_exclude(option_showseqnum, option_showseqnum_inputfile);
  gt_option_exclude(option_showseqlength, option_stat);
  gt_option_exclude(option_showseqlength, option_showseqnum);
  gt_option_exclude(option_showseqlength, option_showseqnum_inputfile);

  /* set minimal arguments */
  gt_option_parser_set_min_args(op, 1);

  return op;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
testq %rdi, %rdi
je 0xc3747
movq %rdi, %r14
leaq 0x29d497(%rip), %rdi    # 0x3609a4
leaq 0x29d4b1(%rip), %rsi    # 0x3609c5
callq 0x10cc4e
movq %rax, %rbx
leaq 0x304c36(%rip), %rdi    # 0x3c8159
leaq 0x29d4e9(%rip), %rsi    # 0x360a13
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x10f451
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x1(%r14), %rdx
leaq 0x29d4fa(%rip), %rdi    # 0x360a44
leaq 0x29d4fd(%rip), %rsi    # 0x360a4e
xorl %ecx, %ecx
callq 0x10f451
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x8(%r14), %rdx
leaq 0x29d500(%rip), %rdi    # 0x360a73
leaq 0x29d504(%rip), %rsi    # 0x360a7e
movq $-0x1, %rcx
xorl %r8d, %r8d
callq 0x10f7ed
movq %rax, %r15
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x10(%r14), %rdx
leaq 0x29d53e(%rip), %rdi    # 0x360ae0
leaq 0x29d545(%rip), %rsi    # 0x360aee
movq $-0x1, %rcx
xorl %r8d, %r8d
callq 0x10f7ed
movq %rax, 0x8(%rsp)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
movq 0x20(%r14), %rdx
leaq 0x29d587(%rip), %rdi    # 0x360b5a
leaq 0x29d595(%rip), %rsi    # 0x360b6f
callq 0x10f9c6
movq %rax, %rbp
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x5(%r14), %rdx
leaq 0x29d5ff(%rip), %rdi    # 0x360bf7
leaq 0x29d606(%rip), %rsi    # 0x360c05
xorl %ecx, %ecx
callq 0x10f451
movq %rax, (%rsp)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x2(%r14), %rdx
leaq 0x29d643(%rip), %rdi    # 0x360c63
leaq 0x29d647(%rip), %rsi    # 0x360c6e
xorl %ecx, %ecx
callq 0x10f451
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x3(%r14), %rdx
leaq 0x31f6aa(%rip), %rdi    # 0x3e2cee
leaq 0x29d644(%rip), %rsi    # 0x360c8f
xorl %ecx, %ecx
callq 0x10f451
movq %rax, %r12
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x4(%r14), %rdx
leaq 0x2a5104(%rip), %rdi    # 0x36876f
leaq 0x29d636(%rip), %rsi    # 0x360ca8
xorl %ecx, %ecx
callq 0x10f451
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
leaq 0x18(%r14), %rdi
callq 0x10f49c
movq %rax, %r13
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10cd10
movq 0x28(%r14), %rdi
addq $0x30, %r14
movq %rbx, %rsi
movq %r14, %rdx
callq 0x10ffa3
movq %r13, %rdi
movq 0x10(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
movq %rbp, %rcx
callq 0x10fcf8
movq (%rsp), %rdi
movq %r15, %rsi
movq 0x8(%rsp), %r13
movq %r13, %rdx
movq %rbp, %rcx
callq 0x10fcf8
movq %r14, %rdi
movq %r12, %rsi
callq 0x10fd9f
movq %r14, %rdi
movq %r15, %rsi
callq 0x10fd9f
movq %r15, %rdi
movq %r12, %rsi
callq 0x10fd9f
movq %r15, %rdi
movq %rbp, %rsi
callq 0x10fd9f
movq %r13, %rdi
movq %r12, %rsi
callq 0x10fd9f
movq %r13, %rdi
movq %r15, %rsi
callq 0x10fd9f
movq %r13, %rdi
movq %rbp, %rsi
callq 0x10fd9f
movq %rbx, %rdi
movl $0x1, %esi
callq 0x10d766
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1ee47