// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/tools/gt_compreads_decompress.c
// Function: gt_compreads_decompress_option_parser_new
static GtOptionParser*
gt_compreads_decompress_option_parser_new(void *tool_arguments)
{
  GtCsrHcrDecodeArguments *arguments = tool_arguments;
  GtOptionParser *op;
  GtOption *option;
  gt_assert(arguments);

  /* init */
  op = gt_option_parser_new("[option ...] (-file file)",
                         "Decodes a file of compressed reads.");

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

  option = gt_option_new_bool("descs","enable description decoding",
                              &arguments->descs, false);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_string("file", "specify base name of files containing"
                                " HCR.",
                                arguments->file, NULL);
  gt_option_is_mandatory(option);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_string("name", "specify base name for decoded hcr"
                                " (suffix will be \".fastq\")",
                                arguments->name, NULL);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_string("smap", "specify file containing alphabet"
                                "description (file must be an .al1 file)."
                                " If \"-smap\" is not set, dna alphabet is"
                                " used.",
                                arguments->smap, NULL);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_range("range", "decode multiple consecutive reads."
                               " If range is not specified, the "
                               " entire file will be decoded.",
                               &arguments->rng, NULL);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_uword("benchmark", "decode given number random reads "
                               "and report the time to do this",
                               &arguments->bench, 0);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_uword("width",
                               "set width of output, 0 disables formatting. "
                               "line breaks in quality strings can cause "
                               "problems with parsers, use with care",
                               &arguments->width, 0);
  gt_option_parser_add_option(op, option);

  gt_option_parser_set_min_max_args(op, 0U, 0U);
  return op;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
testq %rdi, %rdi
je 0x1c3ea
movq %rdi, %r14
leaq 0x2cae1e(%rip), %rdi    # 0x2e70ac
leaq 0x2cae31(%rip), %rsi    # 0x2e70c6
callq 0x97df5
movq %rax, %rbx
leaq 0x1(%r14), %rdx
leaq 0x3138c8(%rip), %rdi    # 0x32fb70
leaq 0x2cae3b(%rip), %rsi    # 0x2e70ea
xorl %ecx, %ecx
callq 0x9a997
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x3369fc(%rip), %rdi    # 0x352cc4
leaq 0x2cae26(%rip), %rsi    # 0x2e70f5
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x9a997
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
movq 0x18(%r14), %rdx
leaq 0x2cd5bd(%rip), %rdi    # 0x2e98ac
leaq 0x2cae1b(%rip), %rsi    # 0x2e7111
xorl %ecx, %ecx
callq 0x9ad12
movq %rax, %r15
movq %rax, %rdi
callq 0x9ae37
movq %rbx, %rdi
movq %r15, %rsi
callq 0x97f31
movq 0x30(%r14), %rdx
leaq 0x30684d(%rip), %rdi    # 0x322b6b
leaq 0x2cae17(%rip), %rsi    # 0x2e713c
xorl %ecx, %ecx
callq 0x9ad12
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
movq 0x20(%r14), %rdx
leaq 0x2e93a3(%rip), %rdi    # 0x3056e5
leaq 0x2cae2f(%rip), %rsi    # 0x2e7178
xorl %ecx, %ecx
callq 0x9ad12
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x38(%r14), %rdx
leaq 0x3014ee(%rip), %rdi    # 0x31d854
leaq 0x2cae81(%rip), %rsi    # 0x2e71ee
xorl %ecx, %ecx
callq 0x9aca4
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x8(%r14), %rdx
leaq 0x2cb740(%rip), %rdi    # 0x2e7aca
leaq 0x2caebd(%rip), %rsi    # 0x2e724e
xorl %ecx, %ecx
callq 0x9a9e6
movq %rax, %r15
movq %rax, %rdi
callq 0x9b10a
movq %rbx, %rdi
movq %r15, %rsi
callq 0x97f31
addq $0x10, %r14
leaq 0x33b38d(%rip), %rdi    # 0x357746
leaq 0x2caece(%rip), %rsi    # 0x2e728e
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x9a9e6
movq %rbx, %rdi
movq %rax, %rsi
callq 0x97f31
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x98c6b
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
movq 0x41bb77(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2c8c18(%rip), %rsi    # 0x2e5013
leaq 0x32c251(%rip), %rdx    # 0x348653
leaq 0x2cac79(%rip), %rcx    # 0x2e7082
leaq 0x2cac4e(%rip), %r8     # 0x2e705e
pushq $0x4d
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390