// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/tagerator.c
// Function: gt_runtagerator
int gt_runtagerator(const TageratorOptions *tageratoroptions,GtError *err)
{
  bool haserr = false, firstitem;
  int retval;
  Myersonlineresources *mor = NULL;
  Genericindex *genericindex = NULL;
  const GtEncseq *encseq = NULL;
  GtLogger *logger;

  logger = gt_logger_new(tageratoroptions->verbose,
                         GT_LOGGER_DEFLT_PREFIX, stdout);
  if (tageratoroptions->doonline)
  {
    GtEncseqLoader *el;
    el = gt_encseq_loader_new();
    gt_encseq_loader_do_not_require_des_tab(el);
    gt_encseq_loader_do_not_require_ssp_tab(el);
    gt_encseq_loader_do_not_require_sds_tab(el);
    gt_encseq_loader_set_logger(el, logger);
    encseq = gt_encseq_loader_load(el, gt_str_get(tageratoroptions->indexname),
                                   err);
    gt_encseq_loader_delete(el);
    if (encseq == NULL)
    {
      haserr = true;
    }
  } else
  {
    genericindex = genericindex_new(gt_str_get(tageratoroptions->indexname),
                                    tageratoroptions->withesa,
                                    tageratoroptions->withesa ||
                                    tageratoroptions->docompare,
                                    false,
                                    (tageratoroptions->outputmode &
                                     TAGOUT_DBABSPOS) ? false : true,
                                    tageratoroptions->userdefinedmaxdepth,
                                    logger,
                                    err);
    if (genericindex == NULL)
    {
      haserr = true;
    } else
    {
      encseq = genericindex_getencseq(genericindex);
    }
  }
  if (!haserr)
  {
    TgrTagwithlength twl;
    uint64_t tagnumber;
    unsigned int numofchars;
    const GtUchar *symbolmap, *currenttag;
    char *desc = NULL;
    ProcessIdxMatch processmatch;
    TgrShowmatchinfo showmatchinfo;
    void *processmatchinfoonline, *processmatchinfooffline;
    Limdfsresources *limdfsresources = NULL;
    const GtAlphabet *alpha;
    ArrayTgrSimplematch storeonline, storeoffline;
    const AbstractDfstransformer *dfst;
    GtSeqIterator *seqit = NULL;

    if (tageratoroptions->userdefinedmaxdistance >= 0)
    {
      dfst = gt_apme_AbstractDfstransformer();
    } else
    {
      dfst = gt_pms_AbstractDfstransformer();
    }
    GT_INITARRAY(&storeonline,TgrSimplematch);
    GT_INITARRAY(&storeoffline,TgrSimplematch);
    storeonline.twlptr = storeoffline.twlptr = &twl;
    alpha = gt_encseq_alphabet(encseq);
    symbolmap = gt_alphabet_symbolmap(alpha);
    numofchars = gt_alphabet_num_of_chars(alpha);
    if (tageratoroptions->docompare)
    {
      processmatch = tgr_storematch;
      processmatchinfoonline = &storeonline;
      processmatchinfooffline = &storeoffline;
      showmatchinfo.eqsvector = NULL;
      showmatchinfo.encseq = encseq;
    } else
    {
      processmatch = tgr_showmatch;
      showmatchinfo.twlptr = &twl;
      showmatchinfo.tageratoroptions = tageratoroptions;
      showmatchinfo.alphasize = (unsigned int) numofchars;
      showmatchinfo.alpha = alpha;
      showmatchinfo.eqsvector = gt_malloc(sizeof (*showmatchinfo.eqsvector) *
                                          showmatchinfo.alphasize);
      showmatchinfo.encseq = encseq;
      processmatchinfooffline = &showmatchinfo;
      processmatchinfoonline = &showmatchinfo;
    }
    if (tageratoroptions->doonline || tageratoroptions->docompare)
    {
      gt_assert(encseq != NULL);
      mor = gt_newMyersonlineresources(numofchars,
                                    tageratoroptions->nowildcards,
                                    encseq,
                                    processmatch,
                                    processmatchinfoonline);
    }
    if (!tageratoroptions->doonline || tageratoroptions->docompare)
    {
      GtUword maxpathlength;

      if (tageratoroptions->userdefinedmaxdistance >= 0)
      {
        maxpathlength = (GtUword) (1+ MAXTAGSIZE +
                                         tageratoroptions->
                                         userdefinedmaxdistance);
      } else
      {
        maxpathlength = (GtUword) (1+MAXTAGSIZE);
      }
      limdfsresources = gt_newLimdfsresources(genericindex,
                                           tageratoroptions->nowildcards,
                                           tageratoroptions->maxintervalwidth,
                                           maxpathlength,
                                           false, /* keepexpandedonstack */
                                           processmatch,
                                           processmatchinfooffline,
                                           tageratoroptions->docompare
                                             ? checkmstats
                                             : showmstats,
                                           &twl, /* refer to uninit structure */
                                           dfst);
    }
    printf("# for each match show: ");
    gt_getsetargmodekeywords(tageratoroptions->modedesc,
                             tageratoroptions->numberofmodedescentries,
                             tageratoroptions->outputmode);
    seqit = gt_seq_iterator_sequence_buffer_new(tageratoroptions->tagfiles,
                                                err);
    if (!seqit)
    {
      haserr = true;
    }
    if (!haserr)
    {
      for (tagnumber = 0; !haserr; tagnumber++)
      {
        retval = gt_seq_iterator_next(seqit, &currenttag, &twl.taglen, &desc,
                                     err);
        if (retval != 1)
        {
          break;
        }
        if (dotransformtag(twl.transformedtag,
                           symbolmap,
                           currenttag,
                           twl.taglen,
                           tagnumber,
                           tageratoroptions->replacewildcard,
                           err) != 0)
        {
          haserr = true;
          break;
        }
        gt_copy_reverse_complement(twl.rctransformedtag,twl.transformedtag,
                                   twl.taglen);
        twl.tagptr = twl.transformedtag;
        firstitem = true;
        printf("#");
        if (tageratoroptions->outputmode & TAGOUT_TAGNUM)
        {
          printf("\t" Formatuint64_t,PRINTuint64_tcast(tagnumber));
          firstitem = false;
        }
        if (tageratoroptions->outputmode & TAGOUT_TAGLENGTH)
        {
          ADDTABULATOR;
          printf(""GT_WU"",twl.taglen);
        }
        if (tageratoroptions->outputmode & TAGOUT_TAGSEQ)
        {
          ADDTABULATOR;
          gt_alphabet_decode_seq_to_fp(alpha,stdout,twl.transformedtag,
                                       twl.taglen);
        }
        printf("\n");
        storeoffline.nextfreeTgrSimplematch = 0;
        storeonline.nextfreeTgrSimplematch = 0;
        if (tageratoroptions->userdefinedmaxdistance > 0 &&
            twl.taglen <= (GtUword)
                          tageratoroptions->userdefinedmaxdistance)
        {
          gt_error_set(err,"tag \"%*.*s\" of length "GT_WU"; "
                       "tags must be longer than the allowed number of errors "
                       "(which is "GT_WD")",
                       (int) twl.taglen,
                       (int) twl.taglen,currenttag,
                       twl.taglen,
                       tageratoroptions->userdefinedmaxdistance);
          haserr = true;
          break;
        }
        gt_assert(tageratoroptions->userdefinedmaxdistance < 0 ||
                  twl.taglen > (GtUword)
                               tageratoroptions->userdefinedmaxdistance);
        searchoverstrands(tageratoroptions,
                          &twl,
                          dfst,
                          mor,
                          limdfsresources,
                          &showmatchinfo,
                          &storeonline,
                          &storeoffline);
      }
      gt_seq_iterator_delete(seqit);
    }
    GT_FREEARRAY(&storeonline,TgrSimplematch);
    GT_FREEARRAY(&storeoffline,TgrSimplematch);
    gt_free(showmatchinfo.eqsvector);
    if (limdfsresources != NULL)
    {
      gt_freeLimdfsresources(&limdfsresources,dfst);
    }
  }
  gt_freeMyersonlineresources(mor);
  if (genericindex == NULL)
  {
    if (encseq != NULL)
    {
      gt_encseq_delete((GtEncseq *) encseq);
      encseq = NULL;
    }
  } else
  {
    genericindex_delete(genericindex);
  }
  gt_logger_delete(logger);
  return haserr ? -1 : 0;
}

// Assembly:
pushq %rbx
subq $0x1f0, %rsp            # imm = 0x1F0
movq %rdi, 0x1e8(%rsp)
movq %rsi, 0x1e0(%rsp)
movb $0x0, 0x1df(%rsp)
movq $0x0, 0x1d0(%rsp)
movq $0x0, 0x1c8(%rsp)
movq $0x0, 0x1c0(%rsp)
movq 0x1e8(%rsp), %rax
movb 0x38(%rax), %al
movq 0x34d142(%rip), %rcx    # 0x63bf38
movq (%rcx), %rdx
leaq 0x228aec(%rip), %rsi    # 0x5178ec
andb $0x1, %al
movzbl %al, %edi
callq 0xe7870
movq %rax, 0x1b8(%rsp)
movq 0x1e8(%rsp), %rax
testb $0x1, 0x3a(%rax)
je 0x2eeecd
callq 0xb7a40
movq %rax, 0x1b0(%rsp)
movq 0x1b0(%rsp), %rdi
callq 0xba820
movq 0x1b0(%rsp), %rdi
callq 0xba910
movq 0x1b0(%rsp), %rdi
callq 0xbaa10
movq 0x1b0(%rsp), %rdi
movq 0x1b8(%rsp), %rsi
callq 0xbacf0
movq 0x1b0(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq 0x38(%rsp), %rdi
movq %rax, %rsi
movq 0x1e0(%rsp), %rdx
callq 0xb7aa0
movq %rax, 0x1c0(%rsp)
movq 0x1b0(%rsp), %rdi
callq 0xb7e50
cmpq $0x0, 0x1c0(%rsp)
jne 0x2eeec8
movb $0x1, 0x1df(%rsp)
jmp 0x2eefbb
movq 0x1e8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq %rax, 0x28(%rsp)
movq 0x1e8(%rsp), %rax
movb 0x39(%rax), %al
movb %al, 0x36(%rsp)
movq 0x1e8(%rsp), %rcx
movb $0x1, %al
testb $0x1, 0x39(%rcx)
movb %al, 0x37(%rsp)
jne 0x2eef15
movq 0x1e8(%rsp), %rax
movb 0x3b(%rax), %al
movb %al, 0x37(%rsp)
movq 0x28(%rsp), %rdi
movb 0x36(%rsp), %dl
movb 0x37(%rsp), %cl
movq 0x1e8(%rsp), %rax
movl 0x54(%rax), %r8d
andl $0x10, %r8d
movl $0x1, %eax
xorl %esi, %esi
cmpl $0x0, %r8d
cmovnel %esi, %eax
cmpl $0x0, %eax
setne %al
movq 0x1e8(%rsp), %rsi
movl 0x50(%rsi), %r9d
movq 0x1b8(%rsp), %r8
movq 0x1e0(%rsp), %r10
movq %rsp, %rsi
movq %r10, 0x8(%rsi)
movq %r8, (%rsi)
movzbl %dl, %esi
andl $0x1, %esi
movzbl %cl, %edx
andl $0x1, %edx
movzbl %al, %r8d
andl $0x1, %r8d
xorl %ecx, %ecx
callq 0x254a90
movq %rax, 0x1c8(%rsp)
cmpq $0x0, 0x1c8(%rsp)
jne 0x2eefa4
movb $0x1, 0x1df(%rsp)
jmp 0x2eefb9
movq 0x1c8(%rsp), %rdi
callq 0x2549d0
movq %rax, 0x1c0(%rsp)
jmp 0x2eefbb
testb $0x1, 0x1df(%rsp)
jne 0x2ef7a4
movq $0x0, 0xf8(%rsp)
movq $0x0, 0xa0(%rsp)
movq $0x0, 0x48(%rsp)
movq 0x1e8(%rsp), %rax
cmpq $0x0, 0x48(%rax)
jl 0x2ef005
callq 0x4a23d0
movq %rax, 0x50(%rsp)
jmp 0x2ef00f
callq 0x4d30c0
movq %rax, 0x50(%rsp)
jmp 0x2ef011
movq $0x0, 0x78(%rsp)
movq $0x0, 0x80(%rsp)
movq $0x0, 0x88(%rsp)
jmp 0x2ef034
movq $0x0, 0x58(%rsp)
movq $0x0, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
leaq 0x120(%rsp), %rax
movq %rax, 0x70(%rsp)
leaq 0x120(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0x1c0(%rsp), %rdi
callq 0xb0f00
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rdi
callq 0x7e870
movq %rax, 0x108(%rsp)
movq 0x98(%rsp), %rdi
callq 0x7e8c0
movl %eax, 0x114(%rsp)
movq 0x1e8(%rsp), %rax
testb $0x1, 0x3b(%rax)
je 0x2ef102
leaq 0x761(%rip), %rax       # 0x2ef820
movq %rax, 0xf0(%rsp)
leaq 0x78(%rsp), %rax
movq %rax, 0xb0(%rsp)
leaq 0x58(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq $0x0, 0xd8(%rsp)
movq 0x1c0(%rsp), %rax
movq %rax, 0xe8(%rsp)
jmp 0x2ef1a5
leaq 0x8a7(%rip), %rax       # 0x2ef9b0
movq %rax, 0xf0(%rsp)
leaq 0x120(%rsp), %rax
movq %rax, 0xe0(%rsp)
movq 0x1e8(%rsp), %rax
movq %rax, 0xb8(%rsp)
movl 0x114(%rsp), %eax
movl %eax, 0xc0(%rsp)
movq 0x98(%rsp), %rax
movq %rax, 0xd0(%rsp)
movl 0xc0(%rsp), %eax
movl %eax, %edi
shlq $0x3, %rdi
leaq 0x29fd27(%rip), %rsi    # 0x58ee8a
movl $0x274, %edx            # imm = 0x274
callq 0xe80f0
movq %rax, 0xd8(%rsp)
movq 0x1c0(%rsp), %rax
movq %rax, 0xe8(%rsp)
leaq 0xb8(%rsp), %rax
movq %rax, 0xa8(%rsp)
leaq 0xb8(%rsp), %rax
movq %rax, 0xb0(%rsp)
movq 0x1e8(%rsp), %rax
testb $0x1, 0x3a(%rax)
jne 0x2ef1c5
movq 0x1e8(%rsp), %rax
testb $0x1, 0x3b(%rax)
je 0x2ef248
jmp 0x2ef1c7
cmpq $0x0, 0x1c0(%rsp)
jne 0x2ef20a
movq 0x34cdc7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x226e30(%rip), %rsi    # 0x516013
leaq 0x2831f8(%rip), %rdx    # 0x5723e2
leaq 0x29fcaf(%rip), %rcx    # 0x58eea0
leaq 0x29fc92(%rip), %r8     # 0x58ee8a
movl $0x27b, %r9d            # imm = 0x27B
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2ef20c
movl 0x114(%rsp), %edi
movq 0x1e8(%rsp), %rax
movb 0x3f(%rax), %al
movq 0x1c0(%rsp), %rdx
movq 0xf0(%rsp), %rcx
movq 0xb0(%rsp), %r8
andb $0x1, %al
movzbl %al, %esi
callq 0x4d3990
movq %rax, 0x1d0(%rsp)
movq 0x1e8(%rsp), %rax
testb $0x1, 0x3a(%rax)
je 0x2ef268
movq 0x1e8(%rsp), %rax
testb $0x1, 0x3b(%rax)
je 0x2ef326
movq 0x1e8(%rsp), %rax
cmpq $0x0, 0x48(%rax)
jl 0x2ef28e
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rax
addq $0x41, %rax
movq %rax, 0x40(%rsp)
jmp 0x2ef297
movq $0x41, 0x40(%rsp)
movq 0x1c8(%rsp), %rdi
movq 0x1e8(%rsp), %rax
movb 0x3f(%rax), %sil
movq 0x1e8(%rsp), %rax
movq 0x58(%rax), %rdx
movq 0x40(%rsp), %rcx
movq 0xf0(%rsp), %r9
movq 0xa8(%rsp), %rbx
movq 0x1e8(%rsp), %rax
movb 0x3b(%rax), %r8b
leaq 0xe71(%rip), %r11       # 0x2f0150
leaq 0xc6a(%rip), %rax       # 0x2eff50
testb $0x1, %r8b
cmovneq %rax, %r11
movq 0x50(%rsp), %rax
xorl %r8d, %r8d
leaq 0x120(%rsp), %r10
andb $0x1, %sil
movzbl %sil, %esi
movq %rbx, (%rsp)
movq %r11, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0x254d60
movq %rax, 0xa0(%rsp)
leaq 0x29fb83(%rip), %rdi    # 0x58eeb0
movb $0x0, %al
callq 0x19070
movq 0x1e8(%rsp), %rax
movq 0x30(%rax), %rdi
movq 0x1e8(%rsp), %rax
movq 0x60(%rax), %rsi
movq 0x1e8(%rsp), %rax
movl 0x54(%rax), %edx
callq 0x261730
movq 0x1e8(%rsp), %rax
movq (%rax), %rdi
movq 0x1e0(%rsp), %rsi
callq 0x113240
movq %rax, 0x48(%rsp)
cmpq $0x0, 0x48(%rsp)
jne 0x2ef389
movb $0x1, 0x1df(%rsp)
testb $0x1, 0x1df(%rsp)
jne 0x2ef6ec
movq $0x0, 0x118(%rsp)
movb 0x1df(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x2ef3b5
jmp 0x2ef6e2
movq 0x48(%rsp), %rdi
leaq 0x120(%rsp), %rdx
addq $0x88, %rdx
movq 0x1e0(%rsp), %r8
leaq 0x100(%rsp), %rsi
leaq 0xf8(%rsp), %rcx
callq 0x111ab0
movl %eax, 0x1d8(%rsp)
cmpl $0x1, 0x1d8(%rsp)
je 0x2ef3fc
jmp 0x2ef6e2
leaq 0x120(%rsp), %rdi
addq $0x8, %rdi
movq 0x108(%rsp), %rsi
movq 0x100(%rsp), %rdx
movq 0x1a8(%rsp), %rcx
movq 0x118(%rsp), %r8
movq 0x1e8(%rsp), %rax
movb 0x3c(%rax), %r9b
movq 0x1e0(%rsp), %rax
andb $0x1, %r9b
movzbl %r9b, %r9d
movq %rax, (%rsp)
callq 0x2f0250
cmpl $0x0, %eax
je 0x2ef45f
movb $0x1, 0x1df(%rsp)
jmp 0x2ef6e2
leaq 0x120(%rsp), %rdi
addq $0x48, %rdi
leaq 0x120(%rsp), %rsi
addq $0x8, %rsi
movq 0x1a8(%rsp), %rdx
callq 0x2a9cb0
leaq 0x120(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x120(%rsp)
movb $0x1, 0x1de(%rsp)
leaq 0x2628e4(%rip), %rdi    # 0x551d8b
movb $0x0, %al
callq 0x19070
movq 0x1e8(%rsp), %rax
movl 0x54(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x2ef4df
movq 0x118(%rsp), %rsi
leaq 0x29fb38(%rip), %rdi    # 0x58f008
movb $0x0, %al
callq 0x19070
movb $0x0, 0x1de(%rsp)
movq 0x1e8(%rsp), %rax
movl 0x54(%rax), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
je 0x2ef528
testb $0x1, 0x1de(%rsp)
je 0x2ef508
movb $0x0, 0x1de(%rsp)
jmp 0x2ef512
movl $0x9, %edi
callq 0x19960
movq 0x1a8(%rsp), %rsi
leaq 0x29fae8(%rip), %rdi    # 0x58f009
movb $0x0, %al
callq 0x19070
movq 0x1e8(%rsp), %rax
movl 0x54(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x2ef584
testb $0x1, 0x1de(%rsp)
je 0x2ef54f
movb $0x0, 0x1de(%rsp)
jmp 0x2ef559
movl $0x9, %edi
callq 0x19960
movq 0x98(%rsp), %rdi
movq 0x34c9d0(%rip), %rax    # 0x63bf38
movq (%rax), %rsi
leaq 0x120(%rsp), %rdx
addq $0x8, %rdx
movq 0x1a8(%rsp), %rcx
callq 0x7ed90
leaq 0x2a3ce8(%rip), %rdi    # 0x593273
movb $0x0, %al
callq 0x19070
movq $0x0, 0x60(%rsp)
movq $0x0, 0x80(%rsp)
movq 0x1e8(%rsp), %rax
cmpq $0x0, 0x48(%rax)
jle 0x2ef623
movq 0x1a8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
cmpq 0x48(%rcx), %rax
ja 0x2ef623
movq 0x1e0(%rsp), %rdi
movq 0x1a8(%rsp), %rax
movl %eax, %edx
movq 0x1a8(%rsp), %rax
movl %eax, %ecx
movq 0x100(%rsp), %r8
movq 0x1a8(%rsp), %r9
movq 0x1e8(%rsp), %rax
movq 0x48(%rax), %rax
leaq 0x29f8bd(%rip), %rsi    # 0x58eec8
movq %rax, (%rsp)
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x1df(%rsp)
jmp 0x2ef6e2
jmp 0x2ef625
movq 0x1e8(%rsp), %rax
cmpq $0x0, 0x48(%rax)
jl 0x2ef682
movq 0x1a8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
cmpq 0x48(%rcx), %rax
ja 0x2ef682
movq 0x34c94f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2269b8(%rip), %rsi    # 0x516013
leaq 0x29f8c6(%rip), %rdx    # 0x58ef28
leaq 0x29f837(%rip), %rcx    # 0x58eea0
leaq 0x29f81a(%rip), %r8     # 0x58ee8a
movl $0x2e3, %r9d            # imm = 0x2E3
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2ef684
movq 0x1e8(%rsp), %rdi
movq 0x50(%rsp), %rdx
movq 0x1d0(%rsp), %rcx
movq 0xa0(%rsp), %r8
leaq 0x120(%rsp), %rsi
leaq 0xb8(%rsp), %r9
leaq 0x78(%rsp), %r10
leaq 0x58(%rsp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x2f03b0
movq 0x118(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x118(%rsp)
jmp 0x2ef3a3
movq 0x48(%rsp), %rdi
callq 0x111c10
jmp 0x2ef6ee
cmpq $0x0, 0x78(%rsp)
je 0x2ef72d
movq 0x78(%rsp), %rdi
leaq 0x29f788(%rip), %rsi    # 0x58ee8a
movl $0x2ef, %edx            # imm = 0x2EF
callq 0xe88c0
movq $0x0, 0x88(%rsp)
movq $0x0, 0x80(%rsp)
movq $0x0, 0x78(%rsp)
jmp 0x2ef72f
jmp 0x2ef731
cmpq $0x0, 0x58(%rsp)
je 0x2ef76a
movq 0x58(%rsp), %rdi
leaq 0x29f745(%rip), %rsi    # 0x58ee8a
movl $0x2f0, %edx            # imm = 0x2F0
callq 0xe88c0
movq $0x0, 0x68(%rsp)
movq $0x0, 0x60(%rsp)
movq $0x0, 0x58(%rsp)
jmp 0x2ef76c
movq 0xd8(%rsp), %rdi
leaq 0x29f70f(%rip), %rsi    # 0x58ee8a
movl $0x2f1, %edx            # imm = 0x2F1
callq 0xe88c0
cmpq $0x0, 0xa0(%rsp)
je 0x2ef7a2
movq 0x50(%rsp), %rsi
leaq 0xa0(%rsp), %rdi
callq 0x2550d0
jmp 0x2ef7a4
movq 0x1d0(%rsp), %rdi
callq 0x4d3ae0
cmpq $0x0, 0x1c8(%rsp)
jne 0x2ef7e2
cmpq $0x0, 0x1c0(%rsp)
je 0x2ef7e0
movq 0x1c0(%rsp), %rdi
callq 0xae070
movq $0x0, 0x1c0(%rsp)
jmp 0x2ef7ef
movq 0x1c8(%rsp), %rdi
callq 0x254960
movq 0x1b8(%rsp), %rdi
callq 0xe7ed0
movb 0x1df(%rsp), %dl
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
testb $0x1, %dl
cmovnel %ecx, %eax
addq $0x1f0, %rsp            # imm = 0x1F0
popq %rbx
retq
nopl (%rax)