// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x68, %rsp
movq %rdi, 0x60(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x58(%rsp)
cmpq $0x0, 0x58(%rsp)
jne 0x61443
movq 0x5dab8e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4b4bf7(%rip), %rsi    # 0x516013
leaq 0x51973c(%rip), %rdx    # 0x57ab5f
leaq 0x4c7609(%rip), %rcx    # 0x528a33
leaq 0x4c75ef(%rip), %r8     # 0x528a20
movl $0x43, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x61445
leaq 0x4c7600(%rip), %rdi    # 0x528a4c
leaq 0x4c761a(%rip), %rsi    # 0x528a6d
callq 0xf1420
movq %rax, 0x8(%rsp)
movq 0x58(%rsp), %rdx
leaq 0x530800(%rip), %rdi    # 0x591c69
leaq 0x4c764b(%rip), %rsi    # 0x528abb
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x48(%rsp)
movq 0x8(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0xf1600
movq 0x58(%rsp), %rdx
addq $0x1, %rdx
leaq 0x4c7651(%rip), %rdi    # 0x528aec
leaq 0x4c7654(%rip), %rsi    # 0x528af6
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x40(%rsp)
movq 0x8(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0xf1600
movq 0x58(%rsp), %rdx
addq $0x8, %rdx
leaq 0x4c764e(%rip), %rdi    # 0x528b1b
leaq 0x4c7652(%rip), %rsi    # 0x528b26
movq $-0x1, %rcx
xorl %eax, %eax
movl %eax, %r8d
callq 0xf66b0
movq %rax, 0x38(%rsp)
movq 0x8(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x58(%rsp), %rdx
addq $0x10, %rdx
leaq 0x4c767f(%rip), %rdi    # 0x528b88
leaq 0x4c7686(%rip), %rsi    # 0x528b96
movq $-0x1, %rcx
xorl %eax, %eax
movl %eax, %r8d
callq 0xf66b0
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rdx
leaq 0x4c76bd(%rip), %rdi    # 0x528c02
leaq 0x4c76cb(%rip), %rsi    # 0x528c17
callq 0xf6aa0
movq %rax, 0x20(%rsp)
movq 0x8(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x58(%rsp), %rdx
addq $0x5, %rdx
leaq 0x4c772a(%rip), %rdi    # 0x528c9f
leaq 0x4c7731(%rip), %rsi    # 0x528cad
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x18(%rsp)
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x58(%rsp), %rdx
addq $0x2, %rdx
leaq 0x4c7764(%rip), %rdi    # 0x528d0b
leaq 0x4c7768(%rip), %rsi    # 0x528d16
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x50(%rsp)
movq 0x8(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0xf1600
movq 0x58(%rsp), %rdx
addq $0x3, %rdx
leaq 0x54d45a(%rip), %rdi    # 0x5aea33
leaq 0x4c7757(%rip), %rsi    # 0x528d37
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x28(%rsp)
movq 0x8(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x58(%rsp), %rdx
addq $0x4, %rdx
leaq 0x4cf1d1(%rip), %rdi    # 0x5307dc
leaq 0x4c773e(%rip), %rsi    # 0x528d50
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x50(%rsp)
movq 0x8(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0xf1600
movq 0x58(%rsp), %rdi
addq $0x18, %rdi
callq 0xf5fb0
movq %rax, 0x30(%rsp)
movq 0x8(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xf1600
movq 0x58(%rsp), %rax
movq 0x28(%rax), %rdi
movq 0x8(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq $0x30, %rdx
callq 0xf7d50
movq 0x30(%rsp), %rdi
movq 0x40(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x20(%rsp), %rcx
callq 0xf7230
movq 0x18(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x20(%rsp), %rcx
callq 0xf7230
movq 0x40(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf7320
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf7320
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf7320
movq 0x38(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7320
movq 0x10(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf7320
movq 0x10(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf7320
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7320
movq 0x8(%rsp), %rdi
movl $0x1, %esi
callq 0xf2980
movq 0x8(%rsp), %rax
addq $0x68, %rsp
retq
nop