// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/gt_ltrdigest.c
// Function: gt_ltrdigest_option_parser_new
static GtOptionParser* gt_ltrdigest_option_parser_new(void *tool_arguments)
{
  GtLTRdigestOptions *arguments = tool_arguments;
  GtOptionParser *op;
  GtOption *o, *ot, *oto;
  GtOption *oh, *oc, *oeval;
  static const char *cutoffs[] = {"NONE", "GA", "TC", NULL};
  static GtRange pptlen_defaults           = { 8UL, 30UL},
                 uboxlen_defaults          = { 3UL, 30UL},
                 pbsalilen_defaults        = {11UL, 30UL},
                 pbsoffsetlen_defaults     = { 0UL,  5UL},
                 pbstrnaoffsetlen_defaults = { 0UL,  5UL};
  gt_assert(arguments);

  /* init */
  op = gt_option_parser_new("[option ...] gff3_file",
                            "Identifies and annotates sequence features in LTR "
                            "retrotransposon candidates.");

  /* Output files */

  oto = gt_option_new_string("outfileprefix",
                             "prefix for output files (e.g. 'foo' will create "
                             "files called 'foo_*.csv' and 'foo_*.fas')\n"
                             "Omit this option for GFF3 output only.",
                             arguments->prefix,
                             NULL);
  gt_option_parser_add_option(op, oto);
  gt_option_hide_default(oto);

  o = gt_option_new_bool("metadata",
                         "output metadata (run conditions) to separate file",
                         &arguments->print_metadata,
                         true);
  gt_option_parser_add_option(op, o);
  gt_option_imply(o, oto);

  o = gt_option_new_uint("seqnamelen",
                         "set maximal length of sequence names in FASTA headers"
                         " (e.g. for clustalw or similar tools)",
                         &arguments->seqnamelen,
                         20U);
  gt_option_parser_add_option(op, o);

  /* PPT search options */

  o = gt_option_new_range("pptlen",
                          "required PPT length range",
                          &arguments->ppt_len,
                          &pptlen_defaults);
  gt_option_parser_add_option(op, o);

  o = gt_option_new_range("uboxlen",
                          "required U-box length range",
                          &arguments->ubox_len,
                          &uboxlen_defaults);
  gt_option_parser_add_option(op, o);

  o = gt_option_new_uint("uboxdist",
                         "allowed U-box distance range from PPT",
                         &arguments->max_ubox_dist, 0);
  gt_option_parser_add_option(op, o);

  o = gt_option_new_uint("pptradius",
                         "radius around beginning of 3' LTR "
                         "to search for PPT",
                         &arguments->ppt_radius,
                         30U);
  gt_option_parser_add_option(op, o);

  o = gt_option_new_probability("pptrprob",
                                "purine emission probability inside PPT",
                                &arguments->ppt_purine_prob,
                                PPT_PURINE_PROB);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);

  o = gt_option_new_probability("pptyprob",
                                "pyrimidine emission probability inside PPT",
                                &arguments->ppt_pyrimidine_prob,
                                PPT_PYRIMIDINE_PROB);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);

  o = gt_option_new_probability("pptgprob",
                                "background G emission probability outside PPT",
                                &arguments->bkg_g_prob,
                                BKG_G_PROB);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);

  o = gt_option_new_probability("pptcprob",
                                "background C emission probability outside PPT",
                                &arguments->bkg_c_prob,
                                BKG_C_PROB);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);

  o = gt_option_new_probability("pptaprob",
                                "background A emission probability outside PPT",
                                &arguments->bkg_a_prob,
                                BKG_A_PROB);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);

  o = gt_option_new_probability("ppttprob",
                                "background T emission probability outside PPT",
                                &arguments->bkg_t_prob,
                                BKG_T_PROB);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);

  o = gt_option_new_probability("pptuprob",
                                "U/T emission probability inside U-box",
                                &arguments->ubox_u_prob,
                                UBOX_U_PROB);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);

  /* PBS search options */

  ot = gt_option_new_filename("trnas",
                              "tRNA library in multiple FASTA format for PBS "
                              "detection\n"
                              "Omit this option to disable PBS search.",
                              arguments->trna_lib);
  gt_option_parser_add_option(op, ot);
  gt_option_hide_default(ot);

  o = gt_option_new_range("pbsalilen",
                          "required PBS/tRNA alignment length range",
                          &arguments->alilen,
                          &pbsalilen_defaults);
  gt_option_parser_add_option(op, o);
  gt_option_imply(o, ot);

  o = gt_option_new_range("pbsoffset",
                          "allowed PBS offset from LTR boundary range",
                          &arguments->offsetlen,
                          &pbsoffsetlen_defaults);
  gt_option_parser_add_option(op, o);
  gt_option_imply(o, ot);

  o = gt_option_new_range("pbstrnaoffset",
                          "allowed PBS/tRNA 3' end alignment offset range",
                          &arguments->trnaoffsetlen,
                          &pbstrnaoffsetlen_defaults);
  gt_option_parser_add_option(op, o);
  gt_option_imply(o, ot);

  o = gt_option_new_uint("pbsmaxedist",
                         "maximal allowed PBS/tRNA alignment unit "
                         "edit distance",
                         &arguments->max_edist,
                         1U);
  gt_option_parser_add_option(op, o);
  gt_option_imply(o, ot);

  o = gt_option_new_uint("pbsradius",
                         "radius around end of 5' LTR "
                         "to search for PBS",
                         &arguments->pbs_radius,
                         30U);
  gt_option_parser_add_option(op, o);
  gt_option_imply(o, ot);

 /* Protein domain search options */

  oh = gt_option_new_filename_array("hmms",
                                    "profile HMM models for domain detection "
                                    "(separate by spaces, finish with --) in "
                                    "HMMER3 format\n"
                                    "Omit this option to disable pHMM search.",
                                    arguments->hmm_files);
  gt_option_parser_add_option(op, oh);

  oeval = gt_option_new_probability("pdomevalcutoff",
                                    "global E-value cutoff for pHMM search\n"
                                    "default 1E-6",
                                    &arguments->evalue_cutoff,
                                    0.000001);
  gt_option_parser_add_option(op, oeval);
  gt_option_is_extended_option(oeval);
  gt_option_hide_default(oeval);
  gt_option_imply(oeval, oh);

  oc = gt_option_new_choice("pdomcutoff", "model-specific score cutoff\n"
                                       "choose from TC (trusted cutoff) | "
                                       "GA (gathering cutoff) | "
                                       "NONE (no cutoffs)",
                             arguments->cutoffs, cutoffs[0], cutoffs);
  gt_option_parser_add_option(op, oc);
  gt_option_is_extended_option(oeval);
  gt_option_imply(oeval, oh);

  o = gt_option_new_bool("aliout",
                         "output pHMM to amino acid sequence alignments",
                         &arguments->write_alignments,
                         false);
  gt_option_parser_add_option(op, o);
  gt_option_imply(o, oh);
  gt_option_imply(o, oto);

  o = gt_option_new_bool("aaout",
                         "output amino acid sequences for protein domain "
                         "hits",
                         &arguments->write_aaseqs,
                         false);
  gt_option_parser_add_option(op, o);
  gt_option_imply(o, oh);
  gt_option_imply(o, oto);

  o = gt_option_new_bool("allchains",
                           "output features from all chains and unchained "
                           "features, labeled with chain numbers",
                           &arguments->output_all_chains,
                           false);
  gt_option_parser_add_option(op, o);
  gt_option_imply(o, oh);

  o = gt_option_new_uint("maxgaplen",
                         "maximal allowed gap size between fragments (in amino "
                         "acids) when chaining pHMM hits for a protein domain",
                         &arguments->chain_max_gap_length,
                         50U);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);
  gt_option_imply(o, oh);

  o = gt_option_new_uword("threads",
                          "DEPRECATED, only included for compatibility reasons!"
                          " Use the -j parameter of the 'gt' call instead.",
                          &arguments->nthreads,
                          0);
  gt_option_parser_add_option(op, o);
  gt_option_is_development_option(o);

  o = gt_option_new_bool("force_recreate",
                         "force recreation of hmmpressed profiles",
                         &arguments->force_recreate,
                         false);
  gt_option_parser_add_option(op, o);

  /* Extended PBS options */

  o = gt_option_new_int("pbsmatchscore",
                        "match score for PBS/tRNA alignments",
                        &arguments->ali_score_match,
                        5);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);
  gt_option_imply(o, ot);

  o = gt_option_new_int("pbsmismatchscore",
                        "mismatch score for PBS/tRNA alignments",
                        &arguments->ali_score_mismatch,
                        -10);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);
  gt_option_imply(o, ot);

  o = gt_option_new_int("pbsinsertionscore",
                        "insertion score for PBS/tRNA alignments",
                        &arguments->ali_score_insertion,
                        -20);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);
  gt_option_imply(o, ot);

  o = gt_option_new_int("pbsdeletionscore",
                        "deletion score for PBS/tRNA alignments",
                        &arguments->ali_score_deletion,
                        -20);
  gt_option_parser_add_option(op, o);
  gt_option_is_extended_option(o);
  gt_option_imply(o, ot);

  /* verbosity */

  o = gt_option_new_verbose(&arguments->verbose);
  gt_option_parser_add_option(op, o);

  /* output file options */

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

  /* region mapping and sequence source options */

  gt_seqid2file_register_options_ext(op, arguments->s2fi, false, false);

  return op;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0x2faa13
movq 0x3415be(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x21b627(%rip), %rsi    # 0x516013
leaq 0x28016c(%rip), %rdx    # 0x57ab5f
leaq 0x296be8(%rip), %rcx    # 0x5915e2
leaq 0x296bca(%rip), %r8     # 0x5915cb
movl $0x7e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2faa15
leaq 0x296be5(%rip), %rdi    # 0x591601
leaq 0x296bf5(%rip), %rsi    # 0x591618
callq 0xf1420
movq %rax, 0x30(%rsp)
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rdx
leaq 0x296c29(%rip), %rdi    # 0x591666
leaq 0x296c30(%rip), %rsi    # 0x591674
xorl %eax, %eax
movl %eax, %ecx
callq 0xf69f0
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdi
callq 0xf7400
movq 0x38(%rsp), %rdx
addq $0x1c, %rdx
leaq 0x2981ef(%rip), %rdi    # 0x592c6a
leaq 0x296c73(%rip), %rsi    # 0x5916f5
movl $0x1, %ecx
callq 0xf5f20
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0x5c, %rdx
leaq 0x296c68(%rip), %rdi    # 0x591727
leaq 0x296c6c(%rip), %rsi    # 0x591732
movl $0x14, %ecx
callq 0xf64b0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdx
addq $0x60, %rdx
leaq 0x296c99(%rip), %rdi    # 0x59178d
leaq 0x296c99(%rip), %rsi    # 0x591794
leaq 0x34423e(%rip), %rcx    # 0x63ed40
callq 0xf68a0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdx
addq $0x70, %rdx
leaq 0x296c83(%rip), %rdi    # 0x5917ae
leaq 0x296c84(%rip), %rsi    # 0x5917b6
leaq 0x344217(%rip), %rcx    # 0x63ed50
callq 0xf68a0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdx
addq $0xbc, %rdx
leaq 0x296c6d(%rip), %rdi    # 0x5917d2
leaq 0x296c6f(%rip), %rsi    # 0x5917db
xorl %ecx, %ecx
callq 0xf64b0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdx
addq $0xb8, %rdx
leaq 0x296c67(%rip), %rdi    # 0x591801
leaq 0x296c6a(%rip), %rsi    # 0x59180b
movl $0x1e, %ecx
callq 0xf64b0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdx
addq $0x88, %rdx
leaq 0x296c6d(%rip), %rdi    # 0x59183f
leaq 0x296c6f(%rip), %rsi    # 0x591848
movsd 0x29694f(%rip), %xmm0   # 0x591530
callq 0xf62c0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x38(%rsp), %rdx
addq $0x80, %rdx
leaq 0x296c58(%rip), %rdi    # 0x59186f
leaq 0x296c5a(%rip), %rsi    # 0x591878
movsd 0x296902(%rip), %xmm0   # 0x591528
callq 0xf62c0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x38(%rsp), %rdx
addq $0x98, %rdx
leaq 0x296c47(%rip), %rdi    # 0x5918a3
leaq 0x296c49(%rip), %rsi    # 0x5918ac
movsd 0x227aed(%rip), %xmm0   # 0x522758
callq 0xf62c0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x38(%rsp), %rdx
addq $0xa8, %rdx
leaq 0x296c39(%rip), %rdi    # 0x5918da
leaq 0x296c3b(%rip), %rsi    # 0x5918e3
movsd 0x227aa8(%rip), %xmm0   # 0x522758
callq 0xf62c0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x38(%rsp), %rdx
addq $0x90, %rdx
leaq 0x296c2b(%rip), %rdi    # 0x591911
leaq 0x296c2d(%rip), %rsi    # 0x59191a
movsd 0x227a63(%rip), %xmm0   # 0x522758
callq 0xf62c0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x38(%rsp), %rdx
addq $0xa0, %rdx
leaq 0x296c1d(%rip), %rdi    # 0x591948
leaq 0x296c1f(%rip), %rsi    # 0x591951
movsd 0x227a1e(%rip), %xmm0   # 0x522758
callq 0xf62c0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x38(%rsp), %rdx
addq $0xb0, %rdx
leaq 0x296c0f(%rip), %rdi    # 0x59197f
leaq 0x296c11(%rip), %rsi    # 0x591988
movsd 0x2967a1(%rip), %xmm0   # 0x591520
callq 0xf62c0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x38(%rsp), %rax
movq (%rax), %rdx
leaq 0x296bfd(%rip), %rdi    # 0x5919ae
leaq 0x296bfc(%rip), %rsi    # 0x5919b4
callq 0xf6aa0
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x20(%rsp), %rdi
callq 0xf7400
movq 0x38(%rsp), %rdx
addq $0xc8, %rdx
leaq 0x296c26(%rip), %rdi    # 0x591a14
leaq 0x296c29(%rip), %rsi    # 0x591a1e
leaq 0x343f64(%rip), %rcx    # 0x63ed60
callq 0xf68a0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0xd8, %rdx
leaq 0x296c10(%rip), %rdi    # 0x591a47
leaq 0x296c13(%rip), %rsi    # 0x591a51
leaq 0x343f2b(%rip), %rcx    # 0x63ed70
callq 0xf68a0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0xe8, %rdx
leaq 0x296bfc(%rip), %rdi    # 0x591a7c
leaq 0x296c03(%rip), %rsi    # 0x591a8a
leaq 0x343ef2(%rip), %rcx    # 0x63ed80
callq 0xf68a0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0xc4, %rdx
leaq 0x296bf0(%rip), %rdi    # 0x591ab9
leaq 0x296bf5(%rip), %rsi    # 0x591ac5
movl $0x1, %ecx
callq 0xf64b0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0xc0, %rdx
leaq 0x296beb(%rip), %rdi    # 0x591afb
leaq 0x296bee(%rip), %rsi    # 0x591b05
movl $0x1e, %ecx
callq 0xf64b0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rax
movq 0x30(%rax), %rdx
leaq 0x233ba9(%rip), %rdi    # 0x52eafd
leaq 0x233ba7(%rip), %rsi    # 0x52eb02
callq 0xf6b00
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdx
addq $0x48, %rdx
leaq 0x233c05(%rip), %rdi    # 0x52eb89
leaq 0x233c0d(%rip), %rsi    # 0x52eb98
movsd 0x233775(%rip), %xmm0   # 0x52e708
callq 0xf62c0
movq %rax, (%rsp)
movq 0x30(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf1600
movq (%rsp), %rdi
callq 0xf6ff0
movq (%rsp), %rdi
callq 0xf7400
movq (%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rdx
movq 0x343d46(%rip), %rcx    # 0x63ed20
leaq 0x233bea(%rip), %rdi    # 0x52ebcb
leaq 0x233bee(%rip), %rsi    # 0x52ebd6
leaq 0x343d31(%rip), %r8     # 0x63ed20
callq 0xf6b30
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xf1600
movq (%rsp), %rdi
callq 0xf6ff0
movq (%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0x19, %rdx
leaq 0x296b04(%rip), %rdi    # 0x591b33
leaq 0x296b04(%rip), %rsi    # 0x591b3a
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf7090
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0x1a, %rdx
leaq 0x296ae9(%rip), %rdi    # 0x591b68
leaq 0x296ae8(%rip), %rsi    # 0x591b6e
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf7090
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0x1b, %rdx
leaq 0x296ad3(%rip), %rdi    # 0x591ba2
leaq 0x296ad6(%rip), %rsi    # 0x591bac
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0x58, %rdx
leaq 0x233b2e(%rip), %rdi    # 0x52ec3e
leaq 0x233b31(%rip), %rsi    # 0x52ec48
movl $0x32, %ecx
callq 0xf64b0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0x50, %rdx
leaq 0x2bfd87(%rip), %rdi    # 0x5baee5
leaq 0x296a9a(%rip), %rsi    # 0x591bff
xorl %eax, %eax
movl %eax, %ecx
callq 0xf5fe0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf7040
movq 0x38(%rsp), %rdx
addq $0x1d, %rdx
leaq 0x296ac7(%rip), %rdi    # 0x591c63
leaq 0x296acf(%rip), %rsi    # 0x591c72
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdx
addq $0xf8, %rdx
leaq 0x296ac9(%rip), %rdi    # 0x591c9a
leaq 0x296ae4(%rip), %rsi    # 0x591cbc
movl $0x5, %ecx
callq 0xf6310
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0xfc, %rdx
leaq 0x296a86(%rip), %rdi    # 0x591ca8
leaq 0x296a90(%rip), %rsi    # 0x591cb9
movl $0xfffffff6, %ecx       # imm = 0xFFFFFFF6
callq 0xf6310
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0x100, %rdx            # imm = 0x100
leaq 0x296a6d(%rip), %rdi    # 0x591ce0
leaq 0x296a78(%rip), %rsi    # 0x591cf2
movl $0xffffffec, %ecx       # imm = 0xFFFFFFEC
callq 0xf6310
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdx
addq $0x104, %rdx            # imm = 0x104
leaq 0x296a56(%rip), %rdi    # 0x591d1a
leaq 0x296a60(%rip), %rsi    # 0x591d2b
movl $0xffffffec, %ecx       # imm = 0xFFFFFFEC
callq 0xf6310
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7090
movq 0x38(%rsp), %rdi
addq $0x18, %rdi
callq 0xf5f90
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
addq $0x28, %rdx
callq 0xf7d50
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rax
movq 0x38(%rax), %rsi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x1d4480
movq 0x30(%rsp), %rax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)