// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_packedindex_chk_search.c
// Function: parseChkBWTOptions
static GtOPrval
parseChkBWTOptions(int *parsed_args, int argc, const char **argv,
                   struct chkSearchOptions *params, const GtStr *projectName,
                   GtError *err)
{
  GtOptionParser *op;
  GtOPrval oprval;
  GtOption *option, *optionProgress;
  bool checkSuffixArrayValues, tryContextRetrieve, tryFullRegen;

  gt_error_check(err);
  op = gt_option_parser_new("indexname",
                         "Load (or build if necessary) BWT index for project"
                         " <indexname> and perform verification of search"
                         " results.");

  gt_registerPackedIndexOptions(op, &params->idx, BWTDEFOPT_MULTI_QUERY,
                             projectName);

  option = gt_option_new_word("minpatlen",
                           "minimum length of patterns searched for, -1 "
                           "implies automatic choice based on index "
                           "properties", &params->minPatLen, -1);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_word("maxpatlen",
                           "maximum length of patterns searched for, -1 "
                           "implies automatic choice based on index "
                           "properties", &params->maxPatLen, -1);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_uword("nsamples",
                            "number of sequences to search for",
                            &params->numOfSamples, 1000);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("chksfxarray",
                           "verify integrity of stored suffix array positions",
                           &checkSuffixArrayValues, false);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("full-lfmap",
                           "verify complete backwards regeneration of "
                           "original sequence", &tryFullRegen, false);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("chkcontext",
                           "verify integrity of regenerated sequence context",
                           &tryContextRetrieve, false);
  gt_option_parser_add_option(op, option);

  optionProgress = gt_option_new_uword("ticks",
                                    "print dot after this many symbols "
                                    "tested okay", &params->progressInterval,
                                    DEFAULT_PROGRESS_INTERVAL);
  gt_option_parser_add_option(op, optionProgress);

  option = gt_option_new_bool("v",
                           "print verbose progress information",
                           &params->verboseOutput,
                           false);
  gt_option_parser_add_option(op, option);

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

  /* condense boolean options to flags field */
  params->flags = (checkSuffixArrayValues?VERIFY_BWTSEQ_SUFVAL:0)
    | (tryFullRegen?VERIFY_BWTSEQ_LFMAPWALK:0)
    | (tryContextRetrieve?VERIFY_BWTSEQ_CONTEXT:0);
  /* compute parameters currently not set from command-line or
   * determined indirectly */
  gt_computePackedIndexDefaults(&params->idx, BWTBaseFeatures);

  gt_option_parser_delete(op);

  return oprval;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movl %esi, 0x4c(%rsp)
movq %rdx, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
movq %r8, 0x30(%rsp)
movq %r9, 0x28(%rsp)
cmpq $0x0, 0x28(%rsp)
je 0x49251
movq 0x28(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x49219
jmp 0x49251
movq 0x5f2d80(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4ccde9(%rip), %rsi    # 0x516013
leaq 0x4ccf8e(%rip), %rdx    # 0x5161bf
leaq 0x4d9906(%rip), %rcx    # 0x522b3e
leaq 0x4d953b(%rip), %r8     # 0x52277a
movl $0x112, %r9d            # imm = 0x112
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x49253
leaq 0x4edb85(%rip), %rdi    # 0x536ddf
leaq 0x4d98f0(%rip), %rsi    # 0x522b51
callq 0xf1420
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x30(%rsp), %rcx
movl $0x2, %edx
callq 0x224bd0
movq 0x38(%rsp), %rdx
addq $0x38, %rdx
leaq 0x4d9928(%rip), %rdi    # 0x522bbc
leaq 0x4d992b(%rip), %rsi    # 0x522bc6
movq $-0x1, %rcx
callq 0xf6650
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdx
addq $0x40, %rdx
leaq 0x4d995a(%rip), %rdi    # 0x522c25
leaq 0x4d995d(%rip), %rsi    # 0x522c2f
movq $-0x1, %rcx
callq 0xf6650
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdx
addq $0x48, %rdx
leaq 0x4d998c(%rip), %rdi    # 0x522c8e
leaq 0x4d998e(%rip), %rsi    # 0x522c97
movl $0x3e8, %ecx            # imm = 0x3E8
callq 0xf5fe0
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
leaq 0x4d998b(%rip), %rdi    # 0x522cb9
leaq 0x4d9990(%rip), %rsi    # 0x522cc5
leaq 0x7(%rsp), %rdx
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
leaq 0x4d999b(%rip), %rdi    # 0x522cf7
leaq 0x4d999f(%rip), %rsi    # 0x522d02
leaq 0x5(%rsp), %rdx
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
leaq 0x4d99b4(%rip), %rdi    # 0x522d3e
leaq 0x4d99b8(%rip), %rsi    # 0x522d49
leaq 0x6(%rsp), %rdx
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdx
addq $0x50, %rdx
leaq 0x4d9323(%rip), %rdi    # 0x5226e4
leaq 0x4d9322(%rip), %rsi    # 0x5226ea
movl $0x186a0, %ecx          # imm = 0x186A0
callq 0xf5fe0
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdx
addq $0x5c, %rdx
leaq 0x518c2d(%rip), %rdi    # 0x562023
leaq 0x4d92aa(%rip), %rsi    # 0x5226a7
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x20(%rsp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0xf2a40
movq 0x20(%rsp), %rdi
movq 0x50(%rsp), %rsi
movl 0x4c(%rsp), %edx
movq 0x40(%rsp), %rcx
movq 0x28(%rsp), %r9
leaq 0xdd2e8(%rip), %r8      # 0x126730
callq 0xf2ab0
movl %eax, 0x1c(%rsp)
movb 0x7(%rsp), %dl
xorl %ecx, %ecx
movl $0x1, %eax
testb $0x1, %dl
cmovnel %eax, %ecx
movb 0x5(%rsp), %sil
xorl %eax, %eax
movl $0x2, %edx
testb $0x1, %sil
cmovnel %edx, %eax
orl %eax, %ecx
movb 0x6(%rsp), %sil
xorl %eax, %eax
movl $0x4, %edx
testb $0x1, %sil
cmovnel %edx, %eax
orl %eax, %ecx
movq 0x38(%rsp), %rax
movl %ecx, 0x58(%rax)
movq 0x38(%rsp), %rdi
xorl %esi, %esi
callq 0x224d20
movq 0x20(%rsp), %rdi
callq 0xf5cf0
movl 0x1c(%rsp), %eax
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)