// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/tools/gt_packedindex_chk_search.c
// Function: gt_packedindex_chk_search
extern int
gt_packedindex_chk_search(int argc, const char *argv[], GtError *err)
{
  struct chkSearchOptions params;
  Suffixarray suffixarray;
  Enumpatterniterator *epi = NULL;
  bool saIsLoaded = false;
  BWTSeq *bwtSeq = NULL;
  GtStr *inputProject = NULL;
  int parsedArgs;
  bool had_err = false;
  BWTSeqExactMatchesIterator EMIter;
  bool EMIterInitialized = false;
  GtLogger *logger = NULL;
  inputProject = gt_str_new();

  do {
    gt_error_check(err);
    {
      bool exitNow = false;
      switch (parseChkBWTOptions(&parsedArgs, argc, argv, &params,
                                 inputProject, err))
      {
      case GT_OPTION_PARSER_OK:
        break;
      case GT_OPTION_PARSER_ERROR:
        had_err = true;
        exitNow = true;
        break;
      case GT_OPTION_PARSER_REQUESTS_EXIT:
        exitNow = true;
        break;
      }
      if (exitNow)
        break;
    }
    gt_str_set(inputProject, argv[parsedArgs]);

    logger = gt_logger_new(params.verboseOutput,
                           GT_LOGGER_DEFLT_PREFIX, stdout);

    bwtSeq = gt_availBWTSeq(&params.idx.final, logger, err);
    if ((had_err = bwtSeq == NULL))
      break;

    {
      enum verifyBWTSeqErrCode retval =
        gt_BWTSeqVerifyIntegrity(bwtSeq, gt_str_get(inputProject), params.flags,
                              params.progressInterval, stderr, logger, err);
      if ((had_err = (retval != VERIFY_BWTSEQ_NO_ERROR)))
      {
        fprintf(stderr, "index integrity check failed: %s\n",
                gt_error_get(err));
        gt_error_set(err, "aborted because of index integrity check fail");
        break;
      }
    }
    if (BWTSeqHasLocateInformation(bwtSeq))
    {
      if ((had_err = !gt_initEmptyEMIterator(&EMIter, bwtSeq)))
      {
        gt_error_set(err, "Cannot create matches iterator for sequence index.");
        break;
      }
      EMIterInitialized = true;
    }
    {
      GtUword totalLen, dbstart;
      GtUword trial, patternLen;

      if ((had_err =
           gt_mapsuffixarray(&suffixarray, SARR_SUFTAB | SARR_ESQTAB,
                             gt_str_get(inputProject), NULL, err) != 0))
      {
        gt_error_set(err, "Can't load suffix array project with"
                  " demand for encoded sequence and suffix table files\n");
        break;
      }
      totalLen = gt_encseq_total_length(suffixarray.encseq);
      saIsLoaded = true;
      if ((had_err = (params.minPatLen >= 0L && params.maxPatLen >= 0L
                      && params.minPatLen > params.maxPatLen)))
      {
        gt_error_set(err, "Invalid pattern lengths selected: min="GT_WD", "
                     "max="GT_WD";"
                     " min <= max is required.", params.minPatLen,
                     params.maxPatLen);
        break;
      }
      if (params.minPatLen < 0 || params.maxPatLen < 0)
      {
        unsigned int numofchars
          = gt_alphabet_num_of_chars(
                               gt_encseq_alphabet(suffixarray.encseq));
        if (params.minPatLen < 0)
          params.minPatLen
            = gt_recommendedprefixlength(numofchars,
                                         totalLen,
                                         GT_RECOMMENDED_MULTIPLIER_DEFAULT,
                                         true);
        if (params.maxPatLen < 0)
          params.maxPatLen =
            GT_MAX(params.minPatLen,
                125 * gt_recommendedprefixlength(numofchars,totalLen,
                                         GT_RECOMMENDED_MULTIPLIER_DEFAULT,
                                         true)/100);
        else
          params.maxPatLen = GT_MAX(params.maxPatLen, params.minPatLen);
      }
      fprintf(stderr, "Using patterns of lengths "GT_WU" to "GT_WU"\n",
              params.minPatLen, params.maxPatLen);
      if ((had_err = totalLen + 1 != BWTSeqLength(bwtSeq)))
      {
        gt_error_set(err, "base suffix array and index have diferrent lengths!"
                          ""GT_WU" vs. "GT_WU"",  totalLen + 1,
                  BWTSeqLength(bwtSeq));
        break;
      }
      if ((had_err =
           (epi = gt_newenumpatterniterator(params.minPatLen, params.maxPatLen,
                                         suffixarray.encseq,
                                         err)) == NULL))
      {
        fputs("Creation of pattern iterator failed!\n", stderr);
        break;
      }
      for (trial = 0; !had_err && trial < params.numOfSamples; ++trial)
      {
        const GtUchar *pptr = gt_nextEnumpatterniterator(&patternLen, epi);
        GtMMsearchiterator *mmsi =
          gt_mmsearchiterator_new_complete_plain(suffixarray.encseq,
                                            suffixarray.suftab,
                                            0,  /* leftbound */
                                            totalLen, /* rightbound */
                                            0, /* offset */
                                            suffixarray.readmode,
                                            pptr,
                                            patternLen);
        if (BWTSeqHasLocateInformation(bwtSeq))
        {
          if ((had_err = !gt_reinitEMIterator(&EMIter, bwtSeq, pptr, patternLen,
                                           false)))
          {
            fputs("Internal error: failed to reinitialize pattern match"
                  " iterator", stderr);
            abort();
          }
          gt_assert(gt_EMINumMatchesTotal(&EMIter) ==
                    gt_BWTSeqMatchCount(bwtSeq, pptr, patternLen,
                                        false));
          gt_assert(gt_EMINumMatchesTotal(&EMIter)
                      == gt_mmsearchiterator_count(mmsi));
          while (gt_mmsearchiterator_next(&dbstart,mmsi))
          {
            GtUword matchPos = 0;
            bool match = EMIGetNextMatch(&EMIter, &matchPos, bwtSeq);
            if ((had_err = !match))
            {
              gt_error_set(err,
                           "matches of packedindex expired before mmsearch!");
              break;
            }
            if ((had_err = matchPos != dbstart))
            {
              gt_error_set(err, "packedindex match doesn't equal mmsearch "
                           "match result!\n"GT_WU" vs. "GT_WU"\n",
                           matchPos, dbstart);
            }
          }
          if (!had_err)
          {
            GtUword matchPos;
            bool trailingMatch = EMIGetNextMatch(&EMIter, &matchPos, bwtSeq);
            if ((had_err = trailingMatch))
            {
              gt_error_set(err, "matches of mmsearch expired before fmindex!");
              break;
            }
          }
        }
        else
        {
          GtUword numFMIMatches = gt_BWTSeqMatchCount(bwtSeq, pptr,
                                                         patternLen,
                                                         false),
            numMMSearchMatches = gt_mmsearchiterator_count(mmsi);
          if ((had_err = numFMIMatches != numMMSearchMatches))
          {
            gt_error_set(err, "Number of matches not equal for suffix array ("
                              ""GT_WU") and fmindex ("GT_WU").\n",
                      numFMIMatches, numMMSearchMatches);
          }
        }
        gt_mmsearchiterator_delete(mmsi);
        mmsi = NULL;
        if (params.progressInterval && !((trial + 1) % params.progressInterval))
          putc('.', stderr);
      }
      if (params.progressInterval)
        putc('\n', stderr);
      fprintf(stderr, "Finished "GT_WU" of "GT_WU" matchings successfully.\n",
              trial, params.numOfSamples);
    }
  } while (0);
  if (EMIterInitialized) gt_destructEMIterator(&EMIter);
  if (saIsLoaded) gt_freesuffixarray(&suffixarray);
  gt_freeEnumpatterniterator(epi);
  if (bwtSeq) gt_deleteBWTSeq(bwtSeq);
  if (logger) gt_logger_delete(logger);
  if (inputProject) gt_str_delete(inputProject);
  return had_err?-1:0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
movq %rdx, %r12
movq %rsi, 0x10(%rsp)
movl %edi, %ebp
callq 0xacb84
movq %rax, %rbx
testq %r12, %r12
movl %ebp, 0x8(%rsp)
je 0x35778
movq %r12, %rdi
callq 0x89eb7
testb %al, %al
jne 0x35fb2
movq %r12, %rdi
callq 0x89eb7
testb %al, %al
jne 0x35fde
leaq 0x2d02de(%rip), %rdi    # 0x305a5d
leaq 0x2bc35b(%rip), %rsi    # 0x2f1ae1
callq 0x97df5
movq %rax, %r13
leaq 0x58(%rsp), %rsi
pushq $0x2
popq %rdx
movq %rax, %rdi
movq %rbx, 0x18(%rsp)
movq %rbx, %rcx
callq 0x1461a0
leaq 0x90(%rsp), %rdx
leaq 0x2bc397(%rip), %rdi    # 0x2f1b4c
leaq 0x2bc39a(%rip), %rsi    # 0x2f1b56
pushq $-0x1
popq %rbx
movq %rbx, %rcx
callq 0x9ac34
movq %r13, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x98(%rsp), %rdx
leaq 0x2bc3d4(%rip), %rdi    # 0x2f1bb5
leaq 0x2bc3d7(%rip), %rsi    # 0x2f1bbf
movq %rbx, %rcx
callq 0x9ac34
movq %r13, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0xa0(%rsp), %rdx
leaq 0x2bc414(%rip), %rdi    # 0x2f1c1e
leaq 0x2bc416(%rip), %rsi    # 0x2f1c27
movl $0x3e8, %ecx            # imm = 0x3E8
callq 0x9a9e6
movq %r13, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x2bc41c(%rip), %rdi    # 0x2f1c49
leaq 0x2bc421(%rip), %rsi    # 0x2f1c55
leaq 0x108(%rsp), %r14
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x9a997
movq %r13, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x2bc42f(%rip), %rdi    # 0x2f1c87
leaq 0x2bc433(%rip), %rsi    # 0x2f1c92
leaq 0x48(%rsp), %r15
movq %r15, %rdx
xorl %ecx, %ecx
callq 0x9a997
movq %r13, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0x2bc44e(%rip), %rdi    # 0x2f1cce
leaq 0x2bc452(%rip), %rsi    # 0x2f1cd9
leaq 0xb8(%rsp), %rbx
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x9a997
movq %r13, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0xa8(%rsp), %rdx
leaq 0x2bbdc5(%rip), %rdi    # 0x2f1678
leaq 0x2bbdc4(%rip), %rsi    # 0x2f167e
movl $0x186a0, %ecx          # imm = 0x186A0
callq 0x9a9e6
movq %r13, %rdi
movq %rax, %rsi
callq 0x97f31
leaq 0xb4(%rsp), %rbp
leaq 0x2fa292(%rip), %rdi    # 0x32fb70
leaq 0x2bbd56(%rip), %rsi    # 0x2f163b
movq %rbp, %rdx
xorl %ecx, %ecx
callq 0x9a997
movq %r13, %rdi
movq %rax, %rsi
callq 0x97f31
pushq $0x1
popq %rdx
movq %r13, %rdi
movl %edx, %esi
callq 0x98c6b
leaq 0x7d342(%rip), %r8      # 0xb2c50
leaq 0x3c(%rsp), %rsi
movq %r13, %rdi
movl 0x8(%rsp), %edx
movq 0x10(%rsp), %rcx
movq %r12, 0x8(%rsp)
movq %r12, %r9
callq 0x98cb0
movl %eax, %r12d
movzbl (%r14), %eax
movzbl (%r15), %ecx
leal (%rax,%rcx,2), %eax
movzbl (%rbx), %ecx
leal (%rax,%rcx,4), %eax
movl %eax, -0x4(%rbp)
leaq 0x58(%rsp), %rdi
xorl %esi, %esi
callq 0x14627d
movq %r13, %rdi
callq 0x9a844
movb $0x1, %r15b
cmpl $0x1, %r12d
je 0x3597b
cmpl $0x2, %r12d
jne 0x3598d
xorl %ebp, %ebp
xorl %r15d, %r15d
xorl %r12d, %r12d
xorl %r13d, %r13d
movq 0x18(%rsp), %r14
jmp 0x35b9e
xorl %r12d, %r12d
xorl %r13d, %r13d
movq 0x18(%rsp), %r14
xorl %ebp, %ebp
jmp 0x35b9e
movslq 0x3c(%rsp), %rax
movq 0x10(%rsp), %rcx
movq (%rcx,%rax,8), %rsi
movq 0x18(%rsp), %r14
movq %r14, %rdi
callq 0xacc8b
leaq 0x58(%rsp), %rbx
movzbl 0x5c(%rbx), %edi
movq 0x4024f8(%rip), %rax    # 0x437eb0
movq (%rax), %rdx
leaq 0x2b0f12(%rip), %rsi    # 0x2e68d4
callq 0x92b50
movq %rax, %rbp
movq %rbx, %rdi
movq %rax, %rsi
movq 0x8(%rsp), %rbx
movq %rbx, %rdx
callq 0x142fd8
testq %rax, %rax
je 0x35aa2
movq %rax, %r12
movq %r14, %rdi
callq 0xad1fa
movl 0xb0(%rsp), %edx
movq 0xa8(%rsp), %rcx
movq 0x402561(%rip), %r13    # 0x437f68
movq (%r13), %r8
subq $0x8, %rsp
movq %r12, %rdi
movq %rax, %rsi
movq %rbp, %r9
pushq %rbx
callq 0x147444
addq $0x10, %rsp
testl %eax, %eax
jne 0x35b5e
movq %rbp, 0x10(%rsp)
movl 0x20(%r12), %ebp
testl %ebp, %ebp
je 0x35a4c
leaq 0xb8(%rsp), %rdi
movq %r12, %rsi
callq 0x147202
testb %al, %al
je 0x35aad
movq %r14, %rdi
callq 0xad1fa
leaq 0x108(%rsp), %rdi
pushq $0x3
popq %rsi
movq %rax, %rdx
xorl %ecx, %ecx
movq 0x8(%rsp), %rbx
movq %rbx, %r8
callq 0x14de4e
testl %eax, %eax
movl %eax, 0x24(%rsp)
je 0x35acd
leaq 0x2bbd33(%rip), %rsi    # 0x2f17b3
xorl %r13d, %r13d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x89dbb
movb $0x1, %r15b
testl %ebp, %ebp
movq 0x10(%rsp), %rbp
jne 0x35b2d
jmp 0x35b9e
xorl %r12d, %r12d
xorl %r13d, %r13d
jmp 0x35b9e
leaq 0x2bbccc(%rip), %rsi    # 0x2f1780
xorl %r13d, %r13d
movq 0x8(%rsp), %rdi
xorl %eax, %eax
callq 0x89dbb
movq 0x10(%rsp), %rbp
jmp 0x35b9e
movq 0x108(%rsp), %rdi
callq 0x7055e
movq %rax, %r15
movq 0x90(%rsp), %rbx
movq 0x98(%rsp), %rcx
testq %rbx, %rbx
js 0x35be5
testq %rcx, %rcx
js 0x35be5
cmpq %rcx, %rbx
jbe 0x35be5
leaq 0x2bbcfd(%rip), %rsi    # 0x2f180c
xorl %r13d, %r13d
movq 0x8(%rsp), %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x89dbb
movb $0x1, %r15b
testl %ebp, %ebp
je 0x35b50
movq 0x10(%rsp), %rbp
leaq 0xb8(%rsp), %rdi
callq 0x147349
cmpl $0x0, 0x24(%rsp)
jne 0x35b9e
leaq 0x108(%rsp), %rdi
callq 0x14d148
jmp 0x35b9e
cmpl $0x0, 0x24(%rsp)
movq 0x10(%rsp), %rbp
jne 0x35b9e
jmp 0x35b41
movq (%r13), %rax
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x89f41
leaq 0x2bbbb5(%rip), %rsi    # 0x2f1730
xorl %r13d, %r13d
movq 0x10(%rsp), %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x17a50
leaq 0x2bbbbe(%rip), %rsi    # 0x2f1752
movq %rbx, %rdi
xorl %eax, %eax
callq 0x89dbb
movq %r13, %rdi
callq 0x14c781
testq %r12, %r12
je 0x35bb3
movq %r12, %rdi
callq 0x146b99
testq %rbp, %rbp
je 0x35bc0
movq %rbp, %rdi
callq 0x92fd0
testq %r14, %r14
je 0x35bcd
movq %r14, %rdi
callq 0xae103
movzbl %r15b, %eax
negl %eax
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %rax
orq %rcx, %rax
jns 0x35cb4
movq 0x108(%rsp), %rdi
callq 0x754dd
movq %rax, %rdi
callq 0x56c8e
movl %eax, %r14d
movq 0x90(%rsp), %rbx
testq %rbx, %rbx
jns 0x35c36
movsd 0x2bbaca(%rip), %xmm0   # 0x2f16e8
pushq $0x1
popq %rdx
movl %r14d, %edi
movq %r15, %rsi
callq 0x191cf8
movl %eax, %ebx
movq %rbx, 0x90(%rsp)
movq 0x98(%rsp), %rcx
testq %rcx, %rcx
jns 0x35c75
movsd 0x2bba9d(%rip), %xmm0   # 0x2f16e8
pushq $0x1
popq %rdx
movl %r14d, %edi
movq %r15, %rsi
callq 0x191cf8
imull $0x7d, %eax, %eax
pushq $0x64
popq %rcx
xorl %edx, %edx
divl %ecx
cmpq %rax, %rbx
jbe 0x35c7e
movq 0x90(%rsp), %rbx
movq %rbx, %rcx
jmp 0x35ca7
cmpq %rbx, %rcx
cmovbeq %rbx, %rcx
jmp 0x35ca7
movsd 0x2bba62(%rip), %xmm0   # 0x2f16e8
pushq $0x1
popq %rdx
movl %r14d, %edi
movq %r15, %rsi
movl %ecx, %ebx
callq 0x191cf8
imull $0x7d, %eax, %eax
xorl %edx, %edx
divl %ebx
movl %eax, %ecx
movq 0x90(%rsp), %rbx
movq %rcx, 0x98(%rsp)
movq 0x18(%rsp), %r14
movq 0x4022ad(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2bbb93(%rip), %rsi    # 0x2f1858
movq %rbx, %rdx
xorl %eax, %eax
callq 0x17a50
movq %r15, %rdx
incq %rdx
movq (%r12), %rax
movq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x35cf6
leaq 0x2bbb95(%rip), %rsi    # 0x2f187e
xorl %r13d, %r13d
movq 0x8(%rsp), %rdi
jmp 0x35b1a
movq %r15, 0x50(%rsp)
movq 0x90(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0x108(%rsp), %rdx
movq 0x8(%rsp), %rcx
callq 0x14c4d8
testq %rax, %rax
jne 0x35d43
movq 0x40223f(%rip), %rax    # 0x437f68
movq (%rax), %rsi
leaq 0x2bbb8a(%rip), %rdi    # 0x2f18bd
callq 0x17870
movb $0x1, %r15b
xorl %r13d, %r13d
jmp 0x35b24
movq %rax, %r13
movl %ebp, 0x38(%rsp)
xorl %r15d, %r15d
xorl %ebx, %ebx
testb $0x1, %r15b
jne 0x35f64
cmpq 0xa0(%rsp), %rbx
jae 0x35f64
movq %rbx, 0x40(%rsp)
leaq 0x30(%rsp), %rdi
movq %r13, %rsi
callq 0x14c5db
movq %rax, %r14
movq 0x108(%rsp), %rdi
movq 0x160(%rsp), %rsi
movl 0x150(%rsp), %r9d
xorl %edx, %edx
movq 0x50(%rsp), %rcx
xorl %r8d, %r8d
pushq 0x30(%rsp)
pushq %rax
callq 0x14fb98
popq %rcx
popq %rdx
movq %rax, %rbx
cmpl $0x0, 0x20(%r12)
movq 0x30(%rsp), %rcx
je 0x35e85
leaq 0xb8(%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rsi
movq %r14, %rdx
xorl %r8d, %r8d
callq 0x147329
testb %al, %al
je 0x36016
movq %rbp, %rdi
callq 0x1473a9
movq %rax, %r15
movq 0x30(%rsp), %rdx
movq %r12, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
callq 0x146eb1
cmpq %rax, %r15
jne 0x3605f
movq %rbp, %rdi
callq 0x1473a9
movq %rax, %r14
movq %rbx, %rdi
callq 0x14fc3b
cmpq %rax, %r14
jne 0x36031
movq %rbp, %r15
xorl %r14d, %r14d
leaq 0x48(%rsp), %rbp
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x14fc8c
testb %al, %al
je 0x35ec3
andq $0x0, 0x28(%rsp)
movq %r15, %rdi
leaq 0x28(%rsp), %rsi
movq %r12, %rdx
callq 0x36090
testb %al, %al
je 0x35eea
movq 0x28(%rsp), %rdx
movq 0x48(%rsp), %rcx
cmpq %rcx, %rdx
setne %r14b
je 0x35e2c
movq 0x8(%rsp), %rdi
leaq 0x2bbb6e(%rip), %rsi    # 0x2f19ea
xorl %eax, %eax
callq 0x89dbb
jmp 0x35e2c
xorl %r15d, %r15d
movq %r12, %rdi
movq %r14, %rsi
movq %rcx, %rdx
xorl %ecx, %ecx
callq 0x146eb1
movq %rax, %r14
movq %rbx, %rdi
callq 0x14fc3b
cmpq %rax, %r14
je 0x35f00
movq 0x8(%rsp), %rdi
leaq 0x2bbba6(%rip), %rsi    # 0x2f1a5a
movq %r14, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x89dbb
jmp 0x35efd
movb $0x1, %r15b
testb $0x1, %r14b
jne 0x35f00
leaq 0xb8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
movq %r12, %rdx
callq 0x36090
testb %al, %al
jne 0x35f49
xorl %r15d, %r15d
jmp 0x35f00
movq 0x8(%rsp), %rdi
leaq 0x2bbac4(%rip), %rsi    # 0x2f19ba
xorl %eax, %eax
callq 0x89dbb
movb $0x1, %r15b
movq %rbx, %rdi
callq 0x14fd61
movq 0xa8(%rsp), %rcx
movq 0x40(%rsp), %rbx
incq %rbx
testq %rcx, %rcx
je 0x35d4f
movq %rbx, %rax
xorl %edx, %edx
divq %rcx
testq %rdx, %rdx
jne 0x35d4f
movq 0x40202f(%rip), %rax    # 0x437f68
movq (%rax), %rsi
pushq $0x2e
popq %rdi
callq 0x17ee0
jmp 0x35d4f
leaq 0x2bbade(%rip), %rsi    # 0x2f1a2e
movq 0x8(%rsp), %rdi
xorl %eax, %eax
callq 0x89dbb
movb $0x1, %r15b
movq 0x40(%rsp), %rbx
cmpq $0x0, 0xa8(%rsp)
je 0x35f81
movq 0x401ff2(%rip), %rax    # 0x437f68
movq (%rax), %rsi
pushq $0xa
popq %rdi
callq 0x17ee0
movq 0x401fe0(%rip), %rax    # 0x437f68
movq (%rax), %rdi
movq 0xa0(%rsp), %rcx
leaq 0x2bbb07(%rip), %rsi    # 0x2f1aa1
movq %rbx, %rdx
xorl %eax, %eax
callq 0x17a50
movq 0x18(%rsp), %r14
movl 0x38(%rsp), %ebp
jmp 0x35b24
movq 0x401faf(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2af050(%rip), %rsi    # 0x2e5013
leaq 0x2af1f5(%rip), %rdx    # 0x2e51bf
leaq 0x2bb71f(%rip), %rcx    # 0x2f16f0
leaq 0x2bb732(%rip), %r8     # 0x2f170a
pushq $0x44
popq %r9
jmp 0x3600a
movq 0x401f83(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2af024(%rip), %rsi    # 0x2e5013
leaq 0x2af1c9(%rip), %rdx    # 0x2e51bf
leaq 0x2bbad1(%rip), %rcx    # 0x2f1ace
leaq 0x2bb706(%rip), %r8     # 0x2f170a
movl $0x112, %r9d            # imm = 0x112
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x401f4b(%rip), %rax    # 0x437f68
movq (%rax), %rsi
leaq 0x2bb8bc(%rip), %rdi    # 0x2f18e3
callq 0x17870
callq 0x17390
movq 0x401f30(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2aefd1(%rip), %rsi    # 0x2e5013
leaq 0x2bb92f(%rip), %rdx    # 0x2f1978
leaq 0x2bb6a0(%rip), %rcx    # 0x2f16f0
leaq 0x2bb6b3(%rip), %r8     # 0x2f170a
movl $0xca, %r9d
jmp 0x3600a
movq 0x401f02(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2aefa3(%rip), %rsi    # 0x2e5013
leaq 0x2bb8aa(%rip), %rdx    # 0x2f1921
leaq 0x2bb672(%rip), %rcx    # 0x2f16f0
leaq 0x2bb685(%rip), %r8     # 0x2f170a
movl $0xc8, %r9d
jmp 0x3600a