// File: /workspace/github_c_makefile_star2_O2/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 %r15
pushq %r14
pushq %rbx
testq %rdi, %rdi
je 0x47166
movq %rdi, %rbx
leaq 0x2b15a9(%rip), %rdi    # 0x2f85e5
leaq 0x2b15c3(%rip), %rsi    # 0x2f8606
callq 0x97df5
movq %rax, %r14
leaq 0x20(%rbx), %rdx
leaq 0x2fdcb6(%rip), %rdi    # 0x344d0c
leaq 0x2b15eb(%rip), %rsi    # 0x2f8648
pushq $-0x1
popq %r15
movq %r15, %rcx
callq 0x9a9e6
movq %r14, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x10(%rbx), %rdx
leaq 0x2ec426(%rip), %rdi    # 0x3334a5
leaq 0x2b15fd(%rip), %rsi    # 0x2f8683
movq %r15, %rcx
callq 0x9a9e6
movq %r14, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x18(%rbx), %rdx
leaq 0x2b1619(%rip), %rdi    # 0x2f86bd
leaq 0x2b161c(%rip), %rsi    # 0x2f86c7
movq %r15, %rcx
callq 0x9a9e6
movq %r14, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x38(%rbx), %rdx
leaq 0x30fdfa(%rip), %rdi    # 0x356ec3
leaq 0x2b1635(%rip), %rsi    # 0x2f8705
movsd 0x29f150(%rip), %xmm0   # 0x2e6228
xorps %xmm1, %xmm1
movaps %xmm0, %xmm2
callq 0x9ab20
movq %r14, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x28(%rbx), %rdx
leaq 0x319eec(%rip), %rdi    # 0x360fe5
leaq 0x2b163c(%rip), %rsi    # 0x2f873c
pushq $0x1
popq %rcx
movq %rcx, %r8
callq 0x9ac58
movq %r14, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x40(%rbx), %rdx
leaq 0x33d80d(%rip), %rdi    # 0x38492e
leaq 0x2b1644(%rip), %rsi    # 0x2f876c
xorl %ecx, %ecx
callq 0x9a997
movq %r14, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x30(%rbx), %rdi
callq 0x9a9ce
movq %r14, %rdi
movq %rax, %rsi
callq 0x97f31
movq 0x8(%rbx), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x9b6d7
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
movq 0x3f0dfb(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x29de9c(%rip), %rsi    # 0x2e5013
leaq 0x3014d5(%rip), %rdx    # 0x348653
leaq 0x2b1441(%rip), %rcx    # 0x2f85c6
leaq 0x2b1421(%rip), %r8     # 0x2f85ad
pushq $0x43
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390