// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/tools/gt_seqfilter.c
// Function: gt_seqfilter_option_parser_new
static GtOptionParser* gt_seqfilter_option_parser_new(void *tool_arguments)
{
  SeqFilterArguments *arguments = tool_arguments;
  GtOption *option;
  GtOptionParser *op;
  gt_assert(arguments);

  op = gt_option_parser_new("[option ...] [sequence_file ...]",
                            "Filter the given sequence file(s) and show the "
                            "results on stdout.");

  /* -minlength */
  option = gt_option_new_uword("minlength",
                               "set minimum length a sequence must "
                               "have to pass the filter", &arguments->minlength,
                               GT_UNDEF_UWORD);
  gt_option_parser_add_option(op, option);

  /* -maxlength */
  option = gt_option_new_uword("maxlength", "set maximum length a sequence can "
                               "have to pass the filter", &arguments->maxlength,
                               GT_UNDEF_UWORD);
  gt_option_parser_add_option(op, option);

  /* -maxseqnum */
  option = gt_option_new_uword("maxseqnum", "set the maximum number of "
                               "sequences which can pass the filter",
                               &arguments->maxseqnum, GT_UNDEF_UWORD);
  gt_option_parser_add_option(op, option);

  /* -sample */
  option = gt_option_new_double_min_max("sample", "set a probability for each "
                                        "sequence to pass the filter",
                                        &arguments->sample_prob,
                                        SEQFILTER_DEF_PROB,
                                        SEQFILTER_MIN_PROB,
                                        SEQFILTER_MAX_PROB);
  gt_option_parser_add_option(op, option);

  /* -step */
  option = gt_option_new_uword_min("step", "only every 'step'-th sequence "
                                   "passes the filter",
                                   &arguments->step,
                                   SEQFILTER_DEF_STEP,
                                   SEQFILTER_MIN_STEP);
  gt_option_parser_add_option(op, option);

  /* -nowildcards */
  option = gt_option_new_bool("nowildcards", "filter out seqences containing "
                              "wildcards",
                              &arguments->nowildcards, false);
  gt_option_parser_add_option(op, option);

  /* -width */
  option = gt_option_new_width(&arguments->width);
  gt_option_parser_add_option(op, option);

  gt_output_file_info_register_options(arguments->ofi, op, &arguments->outfp);

  return op;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0xc30f8
movq %rdi, %rbx
leaq 0x295616(%rip), %rdi    # 0x3585d5
leaq 0x295630(%rip), %rsi    # 0x3585f6
callq 0x107bfe
movq %rax, %r14
leaq 0x20(%rbx), %rdx
leaq 0x2e19b3(%rip), %rdi    # 0x3a498c
leaq 0x295658(%rip), %rsi    # 0x358638
movq $-0x1, %rcx
callq 0x10a2ab
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x10(%rbx), %rdx
leaq 0x2d014a(%rip), %rdi    # 0x39314c
leaq 0x29566a(%rip), %rsi    # 0x358673
movq $-0x1, %rcx
callq 0x10a2ab
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x18(%rbx), %rdx
leaq 0x295682(%rip), %rdi    # 0x3586ad
leaq 0x295685(%rip), %rsi    # 0x3586b7
movq $-0x1, %rcx
callq 0x10a2ab
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x38(%rbx), %rdx
leaq 0x2f3a0f(%rip), %rdi    # 0x3b6a63
leaq 0x29569a(%rip), %rsi    # 0x3586f5
movsd 0x2831c5(%rip), %xmm0   # 0x346228
xorps %xmm1, %xmm1
movaps %xmm0, %xmm2
callq 0x10a3b5
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x28(%rbx), %rdx
leaq 0x2fdb51(%rip), %rdi    # 0x3c0bd5
leaq 0x2956a1(%rip), %rsi    # 0x35872c
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x10a5d1
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x40(%rbx), %rdx
leaq 0x32149d(%rip), %rdi    # 0x3e454e
leaq 0x2956a4(%rip), %rsi    # 0x35875c
xorl %ecx, %ecx
callq 0x10a235
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x30(%rbx), %rdi
callq 0x10a280
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq 0x8(%rbx), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x10ad87
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
callq 0x1ee10