// File: /workspace/github_c_makefile_star2_O3/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 0xc165f
movq %rdi, %r14
leaq 0x29652c(%rip), %rdi    # 0x357951
leaq 0x296546(%rip), %rsi    # 0x357972
callq 0x107bfe
movq %rax, %rbx
leaq 0x2fd69e(%rip), %rdi    # 0x3bead9
leaq 0x29657e(%rip), %rsi    # 0x3579c0
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x10a235
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x1(%r14), %rdx
leaq 0x29658f(%rip), %rdi    # 0x3579f1
leaq 0x296592(%rip), %rsi    # 0x3579fb
xorl %ecx, %ecx
callq 0x10a235
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x8(%r14), %rdx
leaq 0x296595(%rip), %rdi    # 0x357a20
leaq 0x296599(%rip), %rsi    # 0x357a2b
movq $-0x1, %rcx
xorl %r8d, %r8d
callq 0x10a5d1
movq %rax, %r15
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x10(%r14), %rdx
leaq 0x2965d3(%rip), %rdi    # 0x357a8d
leaq 0x2965da(%rip), %rsi    # 0x357a9b
movq $-0x1, %rcx
xorl %r8d, %r8d
callq 0x10a5d1
movq %rax, 0x8(%rsp)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
movq 0x20(%r14), %rdx
leaq 0x29661c(%rip), %rdi    # 0x357b07
leaq 0x29662a(%rip), %rsi    # 0x357b1c
callq 0x10a7af
movq %rax, %rbp
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x5(%r14), %rdx
leaq 0x296694(%rip), %rdi    # 0x357ba4
leaq 0x29669b(%rip), %rsi    # 0x357bb2
xorl %ecx, %ecx
callq 0x10a235
movq %rax, (%rsp)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x2(%r14), %rdx
leaq 0x2966d8(%rip), %rdi    # 0x357c10
leaq 0x2966dc(%rip), %rsi    # 0x357c1b
xorl %ecx, %ecx
callq 0x10a235
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x3(%r14), %rdx
leaq 0x31803d(%rip), %rdi    # 0x3d9599
leaq 0x2966d9(%rip), %rsi    # 0x357c3c
xorl %ecx, %ecx
callq 0x10a235
movq %rax, %r12
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x4(%r14), %rdx
leaq 0x29e0ec(%rip), %rdi    # 0x35f66f
leaq 0x2966cb(%rip), %rsi    # 0x357c55
xorl %ecx, %ecx
callq 0x10a235
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x18(%r14), %rdi
callq 0x10a280
movq %rax, %r13
movq %rbx, %rdi
movq %rax, %rsi
callq 0x107cc0
movq 0x28(%r14), %rdi
addq $0x30, %r14
movq %rbx, %rsi
movq %r14, %rdx
callq 0x10ad87
movq %r13, %rdi
movq 0x10(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
movq %rbp, %rcx
callq 0x10aae7
movq (%rsp), %rdi
movq %r15, %rsi
movq 0x8(%rsp), %r13
movq %r13, %rdx
movq %rbp, %rcx
callq 0x10aae7
movq %r14, %rdi
movq %r12, %rsi
callq 0x10ab96
movq %r14, %rdi
movq %r15, %rsi
callq 0x10ab96
movq %r15, %rdi
movq %r12, %rsi
callq 0x10ab96
movq %r15, %rdi
movq %rbp, %rsi
callq 0x10ab96
movq %r13, %rdi
movq %r12, %rsi
callq 0x10ab96
movq %r13, %rdi
movq %r15, %rsi
callq 0x10ab96
movq %r13, %rdi
movq %rbp, %rsi
callq 0x10ab96
movq %rbx, %rdi
movl $0x1, %esi
callq 0x10872d
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1eabd