// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/tools/gt_patternmatch.c
// Function: parse_options
static GtOPrval parse_options(Pmatchoptions *pmopt,
                              int *parsed_args,
                              int argc, const char **argv, GtError *err)
{
  GtOptionParser *op;
  GtOption *option, *optionimm, *optionbck;
  GtOPrval oprval;

  gt_error_check(err);
  op = gt_option_parser_new("[options] -ii indexname",
                         "Perform pattern matches.");
  gt_option_parser_set_mail_address(op, "<kurtz@zbh.uni-hamburg.de>");

  option = gt_option_new_uword("minpl","Specify minimum length of pattern",
                           &pmopt->minpatternlen,
                           (GtUword) 20);
  gt_option_parser_add_option(op, option);
  option = gt_option_new_uword("maxpl","Specify maximum length of pattern",
                            &pmopt->maxpatternlen,
                            (GtUword) 30);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_uword("samples","Specify number of samples",
                            &pmopt->numofsamples,
                           (GtUword) 100000);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("s","Show generated pattern",
                            &pmopt->showpatt,
                            false);
  gt_option_parser_add_option(op, option);

  optionbck = gt_option_new_bool("bck","Use the bucket boundaries",
                              &pmopt->usebcktab,
                              false);
  gt_option_parser_add_option(op, optionbck);

  optionimm = gt_option_new_bool("imm","Start with offset 0",
                              &pmopt->immediate,
                              false);
  gt_option_parser_add_option(op, optionimm);

  option = gt_option_new_string("ii",
                             "Specify input index",
                             pmopt->indexname, NULL);
  gt_option_parser_add_option(op, option);
  gt_option_is_mandatory(option);

  oprval = gt_option_parser_parse(op, parsed_args, argc, argv,
                               gt_versionfunc, err);
  gt_option_parser_delete(op);

  return oprval;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %rbx
movq %rcx, %r14
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, %r13
testq %r8, %r8
je 0xb3e1f
movq %rbx, %rdi
callq 0xfcc32
testb %al, %al
jne 0xb3f88
leaq 0x29e478(%rip), %rdi    # 0x35229e
leaq 0x29e489(%rip), %rsi    # 0x3522b6
callq 0x107bfe
movq %rax, %r12
leaq 0x292490(%rip), %rsi    # 0x3462cc
movq %rax, %rdi
callq 0x107e5c
leaq 0x29e484(%rip), %rdi    # 0x3522cf
leaq 0x29e483(%rip), %rsi    # 0x3522d5
movl $0x14, %ecx
movq %r13, %rdx
callq 0x10a2ab
movq %r12, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x8(%r13), %rdx
leaq 0x29e482(%rip), %rdi    # 0x3522f7
leaq 0x29e481(%rip), %rsi    # 0x3522fd
movl $0x1e, %ecx
callq 0x10a2ab
movq %r12, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x10(%r13), %rdx
leaq 0x29e495(%rip), %rdi    # 0x352331
leaq 0x29e47c(%rip), %rsi    # 0x35231f
movl $0x186a0, %ecx          # imm = 0x186A0
callq 0x10a2ab
movq %r12, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x18(%r13), %rdx
leaq 0x2a7850(%rip), %rdi    # 0x35b713
leaq 0x29e46f(%rip), %rsi    # 0x352339
xorl %ecx, %ecx
callq 0x10a235
movq %r12, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x19(%r13), %rdx
leaq 0x2ea9c4(%rip), %rdi    # 0x39e8ab
leaq 0x29e462(%rip), %rsi    # 0x352350
xorl %ecx, %ecx
callq 0x10a235
movq %r12, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x1a(%r13), %rdx
leaq 0x29e45f(%rip), %rdi    # 0x35236a
leaq 0x29e45c(%rip), %rsi    # 0x35236e
xorl %ecx, %ecx
callq 0x10a235
movq %r12, %rdi
movq %rax, %rsi
callq 0x107cc0
movq 0x20(%r13), %rdx
leaq 0x2ff544(%rip), %rdi    # 0x3b3473
leaq 0x29e44c(%rip), %rsi    # 0x352382
xorl %ecx, %ecx
callq 0x10a770
movq %rax, %r13
movq %r12, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r13, %rdi
callq 0x10a87b
leaq 0x6b6b2(%rip), %r8      # 0x11f60c
movq %r12, %rdi
movq %r15, %rsi
movl %ebp, %edx
movq %r14, %rcx
movq %rbx, %r9
callq 0x10875d
movl %eax, %ebx
movq %r12, %rdi
callq 0x10a0b4
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1d45b
nopl (%rax)