// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/tools/gt_readreads.c
// Function: gt_readreads_option_parser_new
static GtOptionParser* gt_readreads_option_parser_new(void *tool_arguments)
{
  GtReadreads *opts = tool_arguments;
  GtOptionParser *op;
  GtOption *option, *fasta;
  static const char *qualformats[] = {
    "phred",
    "solexa",
    NULL
  };
  gt_assert(opts);

  /* init */
  op = gt_option_parser_new("[option ...] file [...]",
                            "Read in FASTQ reads with PHRED or Solexa "
                            "qualities and print them.");

  option = gt_option_new_bool("v","be verbose",
                              &opts->verbose, false);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("showseq","show sequences",
                              &opts->showseq, false);
  gt_option_parser_add_option(op, option);

  fasta = gt_option_new_bool("fasta","output reads in fasta format",
                              &opts->fasta, false);
  gt_option_exclude(fasta, option);
  gt_option_parser_add_option(op, fasta);

  option = gt_option_new_uword("fastawidth",
                               "fasta output line width, 0 for unlimited",
                               &opts->fastawidth, 60UL);
  gt_option_imply(option, fasta);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_choice("format", "quality score scale\n"
                                          "can be 'phred' or 'solexa'",
                                opts->qualformat,
                                qualformats[0],
                                qualformats);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("colorspace", "reads are color space coded",
                              &opts->colorspace,
                              false);
  gt_option_parser_add_option(op, option);

  gt_option_parser_set_min_args(op, 1U);
  return op;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x3edaf
movq %rdi, %r14
leaq 0x2b60f6(%rip), %rdi    # 0x2f4d76
leaq 0x2b6107(%rip), %rsi    # 0x2f4d8e
callq 0x97df5
movq %rax, %rbx
leaq 0x2f0eda(%rip), %rdi    # 0x32fb70
leaq 0x2a844d(%rip), %rsi    # 0x2e70ea
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x9a997
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x1(%r14), %rdx
leaq 0x2b6114(%rip), %rdi    # 0x2f4dd1
leaq 0x2ab429(%rip), %rsi    # 0x2ea0ed
xorl %ecx, %ecx
callq 0x9a997
movq %rax, %r15
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x2(%r14), %rdx
leaq 0x2db17a(%rip), %rdi    # 0x319e5e
leaq 0x2b60ee(%rip), %rsi    # 0x2f4dd9
xorl %ecx, %ecx
callq 0x9a997
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
callq 0x9b38d
movq %rbx, %rdi
movq %r12, %rsi
callq 0x97f31
leaq 0x10(%r14), %rdx
leaq 0x2ab3e6(%rip), %rdi    # 0x2ea0fc
leaq 0x2b60d9(%rip), %rsi    # 0x2f4df6
pushq $0x3c
popq %rcx
callq 0x9a9e6
movq %rax, %r15
movq %rax, %rdi
movq %r12, %rsi
callq 0x9b14d
movq %rbx, %rdi
movq %r15, %rsi
callq 0x97f31
movq 0x8(%r14), %rdx
movq 0x3f9b97(%rip), %rcx    # 0x4388e0
leaq 0x3f9b90(%rip), %r8     # 0x4388e0
leaq 0x2bcdb3(%rip), %rdi    # 0x2fbb0a
leaq 0x2b60c1(%rip), %rsi    # 0x2f4e1f
callq 0x9ad83
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
addq $0x3, %r14
leaq 0x2b60d5(%rip), %rdi    # 0x2f4e4e
leaq 0x2b60d9(%rip), %rsi    # 0x2f4e59
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x9a997
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0x98be7
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq 0x3f91b2(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2a6253(%rip), %rsi    # 0x2e5013
leaq 0x2acabf(%rip), %rdx    # 0x2eb886
leaq 0x2b5f89(%rip), %rcx    # 0x2f4d57
leaq 0x2b5f69(%rip), %r8     # 0x2f4d3e
pushq $0x42
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390