// File: /workspace/github_c_makefile_star2_O3/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:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x204fd1
movq %rdi, %rbx
leaq 0x1b9be1(%rip), %rdi    # 0x3be471
leaq 0x1b9bf1(%rip), %rsi    # 0x3be488
callq 0x107bfe
movq %rax, %r14
movq 0x8(%rbx), %rdx
leaq 0x1b9c2c(%rip), %rdi    # 0x3be4d6
leaq 0x1b9c33(%rip), %rsi    # 0x3be4e4
xorl %ecx, %ecx
callq 0x10a770
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
callq 0x10ac1f
leaq 0x1c(%rbx), %rdx
leaq 0x1bb200(%rip), %rdi    # 0x3bfad9
leaq 0x1b9c85(%rip), %rsi    # 0x3be565
movl $0x1, %ecx
callq 0x10a235
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r12, %rdi
movq %r15, %rsi
callq 0x10a9e4
leaq 0x5c(%rbx), %rdx
leaq 0x1b9c89(%rip), %rdi    # 0x3be597
leaq 0x1b9c8d(%rip), %rsi    # 0x3be5a2
movl $0x14, %ecx
callq 0x10a4fd
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x60(%rbx), %rdx
leaq 0x1b9cc8(%rip), %rdi    # 0x3be5fd
leaq 0x1b9cc8(%rip), %rsi    # 0x3be604
leaq 0x2b630d(%rip), %rcx    # 0x4bac50
callq 0x10a6f7
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x70(%rbx), %rdx
leaq 0x1b9cc0(%rip), %rdi    # 0x3be61e
leaq 0x1b9cc1(%rip), %rsi    # 0x3be626
leaq 0x2b62f4(%rip), %rcx    # 0x4bac60
callq 0x10a6f7
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0xbc(%rbx), %rdx
leaq 0x1b9cb8(%rip), %rdi    # 0x3be642
leaq 0x1b9cba(%rip), %rsi    # 0x3be64b
xorl %ecx, %ecx
callq 0x10a4fd
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0xb8(%rbx), %rdx
leaq 0x1b9cc0(%rip), %rdi    # 0x3be671
leaq 0x1b9cc3(%rip), %rsi    # 0x3be67b
movl $0x1e, %ecx
callq 0x10a4fd
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x88(%rbx), %rdx
leaq 0x1b9cd4(%rip), %rdi    # 0x3be6af
leaq 0x1b9cd6(%rip), %rsi    # 0x3be6b8
movsd 0x1b99a6(%rip), %xmm0   # 0x3be390
callq 0x10a40b
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r12, %rdi
callq 0x10a9c4
leaq 0x80(%rbx), %rdx
leaq 0x1b9ccc(%rip), %rdi    # 0x3be6df
leaq 0x1b9cce(%rip), %rsi    # 0x3be6e8
movsd 0x1b9976(%rip), %xmm0   # 0x3be398
callq 0x10a40b
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r12, %rdi
callq 0x10a9c4
leaq 0x98(%rbx), %rdx
leaq 0x1b9cc8(%rip), %rdi    # 0x3be713
leaq 0x1b9cca(%rip), %rsi    # 0x3be71c
movsd 0x14cc7e(%rip), %xmm0   # 0x3516d8
callq 0x10a40b
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r12, %rdi
callq 0x10a9c4
leaq 0xa8(%rbx), %rdx
leaq 0x1b9cc7(%rip), %rdi    # 0x3be74a
leaq 0x1b9cc9(%rip), %rsi    # 0x3be753
movsd 0x14cc46(%rip), %xmm0   # 0x3516d8
callq 0x10a40b
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r12, %rdi
callq 0x10a9c4
leaq 0x90(%rbx), %rdx
leaq 0x1b9cc6(%rip), %rdi    # 0x3be781
leaq 0x1b9cc8(%rip), %rsi    # 0x3be78a
movsd 0x14cc0e(%rip), %xmm0   # 0x3516d8
callq 0x10a40b
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r12, %rdi
callq 0x10a9c4
leaq 0xa0(%rbx), %rdx
leaq 0x1b9cc5(%rip), %rdi    # 0x3be7b8
leaq 0x1b9cc7(%rip), %rsi    # 0x3be7c1
movsd 0x14cbd6(%rip), %xmm0   # 0x3516d8
callq 0x10a40b
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r12, %rdi
callq 0x10a9c4
leaq 0xb0(%rbx), %rdx
leaq 0x1b9cc4(%rip), %rdi    # 0x3be7ef
leaq 0x1b9cc6(%rip), %rsi    # 0x3be7f8
movsd 0x1b9866(%rip), %xmm0   # 0x3be3a0
callq 0x10a40b
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r12, %rdi
callq 0x10a9c4
movq (%rbx), %rdx
leaq 0x1b9cbf(%rip), %rdi    # 0x3be81e
leaq 0x1b9cbe(%rip), %rsi    # 0x3be824
callq 0x10a7af
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r12, %rdi
callq 0x10ac1f
leaq 0xc8(%rbx), %rdx
leaq 0x1b9cf5(%rip), %rdi    # 0x3be884
leaq 0x1b9cf8(%rip), %rsi    # 0x3be88e
leaq 0x2b60d3(%rip), %rcx    # 0x4bac70
callq 0x10a6f7
movq %rax, %r13
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r13, %rdi
movq %r12, %rsi
callq 0x10a9e4
leaq 0xd8(%rbx), %rdx
leaq 0x1b9cee(%rip), %rdi    # 0x3be8b7
leaq 0x1b9cf1(%rip), %rsi    # 0x3be8c1
leaq 0x2b60a9(%rip), %rcx    # 0x4bac80
callq 0x10a6f7
movq %rax, %r13
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r13, %rdi
movq %r12, %rsi
callq 0x10a9e4
leaq 0xe8(%rbx), %rdx
leaq 0x1b9ce9(%rip), %rdi    # 0x3be8ec
leaq 0x1b9cf0(%rip), %rsi    # 0x3be8fa
leaq 0x2b607f(%rip), %rcx    # 0x4bac90
callq 0x10a6f7
movq %rax, %r13
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r13, %rdi
movq %r12, %rsi
callq 0x10a9e4
leaq 0xc4(%rbx), %rdx
leaq 0x1b9cec(%rip), %rdi    # 0x3be929
leaq 0x1b9cf1(%rip), %rsi    # 0x3be935
movl $0x1, %ecx
callq 0x10a4fd
movq %rax, %r13
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r13, %rdi
movq %r12, %rsi
callq 0x10a9e4
leaq 0xc0(%rbx), %rdx
leaq 0x1b9cf6(%rip), %rdi    # 0x3be96b
leaq 0x1b9cf9(%rip), %rsi    # 0x3be975
movl $0x1e, %ecx
callq 0x10a4fd
movq %rax, %r13
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r13, %rdi
movq %r12, %rsi
callq 0x10a9e4
movq 0x30(%rbx), %rdx
leaq 0x158cc3(%rip), %rdi    # 0x35d96d
leaq 0x158cc1(%rip), %rsi    # 0x35d972
callq 0x10a7df
movq %rax, %r13
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x48(%rbx), %rdx
leaq 0x158d2a(%rip), %rdi    # 0x35d9f9
leaq 0x158d32(%rip), %rsi    # 0x35da08
movsd 0x1588a2(%rip), %xmm0   # 0x35d580
callq 0x10a40b
movq %rax, %rbp
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %rbp, %rdi
callq 0x10a9c4
movq %rbp, %rdi
callq 0x10ac1f
movq %rbp, %rdi
movq %r13, %rsi
callq 0x10a9e4
movq 0x10(%rbx), %rdx
movq 0x2b5f19(%rip), %rcx    # 0x4bac30
leaq 0x2b5f12(%rip), %r8     # 0x4bac30
leaq 0x158d16(%rip), %rdi    # 0x35da3b
leaq 0x158d1a(%rip), %rsi    # 0x35da46
callq 0x10a7ed
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %rbp, %rdi
callq 0x10a9c4
movq %rbp, %rdi
movq %r13, %rsi
callq 0x10a9e4
leaq 0x19(%rbx), %rdx
leaq 0x1b9c49(%rip), %rdi    # 0x3be9a3
leaq 0x1b9c49(%rip), %rsi    # 0x3be9aa
xorl %ecx, %ecx
callq 0x10a235
movq %rax, %rbp
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %rbp, %rdi
movq %r13, %rsi
callq 0x10a9e4
movq %rbp, %rdi
movq %r15, %rsi
callq 0x10a9e4
leaq 0x1a(%rbx), %rdx
leaq 0x1b9c41(%rip), %rdi    # 0x3be9d8
leaq 0x1b9c40(%rip), %rsi    # 0x3be9de
xorl %ecx, %ecx
callq 0x10a235
movq %rax, %rbp
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %rbp, %rdi
movq %r13, %rsi
callq 0x10a9e4
movq %rbp, %rdi
movq %r15, %rsi
callq 0x10a9e4
leaq 0x1b(%rbx), %rdx
leaq 0x1b9c3e(%rip), %rdi    # 0x3bea12
leaq 0x1b9c41(%rip), %rsi    # 0x3bea1c
xorl %ecx, %ecx
callq 0x10a235
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
movq %r13, %rsi
callq 0x10a9e4
leaq 0x58(%rbx), %rdx
leaq 0x158ca8(%rip), %rdi    # 0x35daae
leaq 0x158cab(%rip), %rsi    # 0x35dab8
movl $0x32, %ecx
callq 0x10a4fd
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
callq 0x10a9c4
movq %r15, %rdi
movq %r13, %rsi
callq 0x10a9e4
leaq 0x50(%rbx), %rdx
leaq 0x1e0712(%rip), %rdi    # 0x3e5555
leaq 0x1b9c25(%rip), %rsi    # 0x3bea6f
xorl %ecx, %ecx
callq 0x10a2ab
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
callq 0x10a9d4
leaq 0x1d(%rbx), %rdx
leaq 0x1b9c61(%rip), %rdi    # 0x3bead3
leaq 0x1b9c69(%rip), %rsi    # 0x3beae2
xorl %ecx, %ecx
callq 0x10a235
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0xf8(%rbx), %rdx
leaq 0x1b9c71(%rip), %rdi    # 0x3beb0a
leaq 0x1b9c8c(%rip), %rsi    # 0x3beb2c
movl $0x5, %ecx
callq 0x10a44d
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
callq 0x10a9c4
movq %r15, %rdi
movq %r12, %rsi
callq 0x10a9e4
leaq 0xfc(%rbx), %rdx
leaq 0x1b9c3f(%rip), %rdi    # 0x3beb18
leaq 0x1b9c49(%rip), %rsi    # 0x3beb29
movl $0xfffffff6, %ecx       # imm = 0xFFFFFFF6
callq 0x10a44d
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
callq 0x10a9c4
movq %r15, %rdi
movq %r12, %rsi
callq 0x10a9e4
leaq 0x100(%rbx), %rdx
leaq 0x1b9c37(%rip), %rdi    # 0x3beb50
leaq 0x1b9c42(%rip), %rsi    # 0x3beb62
movl $0xffffffec, %ecx       # imm = 0xFFFFFFEC
callq 0x10a44d
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
callq 0x10a9c4
movq %r15, %rdi
movq %r12, %rsi
callq 0x10a9e4
leaq 0x104(%rbx), %rdx
leaq 0x1b9c31(%rip), %rdi    # 0x3beb8a
leaq 0x1b9c3b(%rip), %rsi    # 0x3beb9b
movl $0xffffffec, %ecx       # imm = 0xFFFFFFEC
callq 0x10a44d
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r15, %rdi
callq 0x10a9c4
movq %r15, %rdi
movq %r12, %rsi
callq 0x10a9e4
leaq 0x18(%rbx), %rdi
callq 0x10a257
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq 0x20(%rbx), %rdi
leaq 0x28(%rbx), %rdx
movq %r14, %rsi
callq 0x10ad87
movq 0x38(%rbx), %rsi
movq %r14, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x172cc9
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x7ff41