// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/eis-blockcomp.c
// Function: gt_loadBlockEncIdxSeqGen
struct encIdxSeq *
gt_loadBlockEncIdxSeqGen(MRAEnc *alphabet,
                         const char *projectName, int features, GtError *err)
{
  struct blockCompositionSeq *newSeqIdx = NULL;
  Symbol blockMapAlphabetSize, GT_UNUSED totalAlphabetSize;
  MRAEnc *blockMapAlphabet = NULL, *rangeMapAlphabet = NULL;
  size_t headerLen;
  int *modesCopy = NULL;
  char *buf = NULL;
  gt_assert(projectName && err);
  newSeqIdx = gt_calloc(sizeof (struct blockCompositionSeq), 1);
  newSeqIdx->baseClass.alphabet = alphabet;
  newSeqIdx->baseClass.classInfo = &blockCompositionSeqClass;

  if (!openOnDiskData(projectName, &newSeqIdx->externalData, "rb",err)) {
    gt_error_set(err, "error reading data from disk");
    loadBlockEncIdxSeqErrRet();
  }
  {
    size_t offset = HEADER_ID_BLOCK_LEN;
    buf = gt_malloc(HEADER_ID_BLOCK_LEN);
    if (fread(buf, HEADER_ID_BLOCK_LEN, 1,
          newSeqIdx->externalData.idxFP) != 1) {
      gt_error_set(err, "error reading header id");
      loadBlockEncIdxSeqErrRet();
    }
    if (strcmp(buf, bdxHeader)!= 0) {
      gt_error_set(err, "header is not BDX found %s instead", buf);
      loadBlockEncIdxSeqErrRet();
    }
    newSeqIdx->externalData.cwDataPos = headerLen = *(uint32_t *)(buf + 4);
    buf = gt_realloc(buf, headerLen);
    if (fread(buf + HEADER_ID_BLOCK_LEN, headerLen - HEADER_ID_BLOCK_LEN,
             1, newSeqIdx->externalData.idxFP) != 1) {
      gt_error_set(err, "error reading header");
      loadBlockEncIdxSeqErrRet();
    }
    while (offset < headerLen)
    {
      uint32_t currentHeader;
      switch (currentHeader = *(uint32_t *)(buf + offset))
      {
      case SELE_HEADER_FIELD:
        newSeqIdx->baseClass.seqLen = *(uint64_t *)(buf + offset + 4);
        offset += 12;
        break;
      case BKSZ_HEADER_FIELD:
        newSeqIdx->blockSize = *(uint32_t *)(buf + offset + 4);
        offset += 8;
        break;
      case BBLK_HEADER_FIELD:
        newSeqIdx->bucketBlocks = *(uint32_t *)(buf + offset + 4);
        offset += 8;
        break;
      case VOFF_HEADER_FIELD:
        newSeqIdx->externalData.varDataPos
          = *(uint64_t *)(buf + offset + 4);
        offset += 12;
        break;
      case ROFF_HEADER_FIELD:
        newSeqIdx->externalData.rangeEncPos = *(uint64_t *)(buf + offset + 4);
        offset += 12;
        break;
      case NMRN_HEADER_FIELD:
        {
          size_t numModes = newSeqIdx->numModes
            = *(uint32_t *)(buf + (offset += 4));
          offset += 4;
          modesCopy = newSeqIdx->modes = gt_malloc(sizeof (int) * numModes);
          size_t j;
          for (j = 0; j < numModes; ++j)
          {
            modesCopy[j] = *(uint32_t *)(buf + offset);
            offset += 4;
          }
        }
        break;
      case CBMB_HEADER_FIELD:
        newSeqIdx->callBackDataOffsetBits = *(uint32_t *)(buf + offset + 4);
        offset += 8;
        break;
      case SPBT_HEADER_FIELD:
        newSeqIdx->bitsPerUlong = *(uint32_t *)(buf + offset + 4);
        offset += 8;
        break;
      case VDOB_HEADER_FIELD:
        newSeqIdx->bitsPerVarDiskOffset = *(uint32_t *)(buf + offset + 4);
        offset += 8;
        break;
      case SSBT_HEADER_FIELD:
        {
          size_t i;
          Symbol blockMapAlphabetSize = *(uint32_t *)(buf + offset + 4);
          newSeqIdx->partialSymSumBits
            = gt_malloc(sizeof (newSeqIdx->partialSymSumBits[0])
                        * blockMapAlphabetSize * 2);
          newSeqIdx->partialSymSumBitsSums
            = newSeqIdx->partialSymSumBits + blockMapAlphabetSize;
          if (blockMapAlphabetSize)
          {
            newSeqIdx->partialSymSumBits[0]= *(uint32_t *)(buf + offset + 8);
            newSeqIdx->partialSymSumBitsSums[0] = 0;
#ifdef EIS_DEBUG
            gt_log_log("partialSymSumBits[0]=%u\n",
                    newSeqIdx->partialSymSumBits[0]);
#endif
            for (i = 1; i < blockMapAlphabetSize; ++i)
            {
              newSeqIdx->partialSymSumBits[i]
                = *(uint32_t *)(buf + offset + 8 + 4*i);
#ifdef EIS_DEBUG
              gt_log_log("partialSymSumBits[%"PRIuSymbol"]=%u\n",
                      (Symbol)i, newSeqIdx->partialSymSumBits[i]);
#endif
              newSeqIdx->partialSymSumBitsSums[i] =
                newSeqIdx->partialSymSumBitsSums[i - 1]
                + newSeqIdx->partialSymSumBits[i - 1];
            }
            newSeqIdx->symSumBits
              = newSeqIdx->partialSymSumBitsSums[blockMapAlphabetSize - 1]
              + newSeqIdx->partialSymSumBits[blockMapAlphabetSize - 1];
          }
          offset += 8 + 4 * blockMapAlphabetSize;
        }
      case BEFB_HEADER_FIELD:
        newSeqIdx->blockEncFallback = *(uint32_t *)(buf + offset + 4);
        offset += 8;
        break;
      case REFB_HEADER_FIELD:
        newSeqIdx->rangeEncFallback = *(uint32_t *)(buf + offset + 4);
        offset += 8;
        break;
      case MEXB_HEADER_FIELD:
        newSeqIdx->maxVarExtBitsPerBucket = *(uint64_t *)(buf + offset + 4);
        offset += 12;
        break;
      case CEXB_HEADER_FIELD:
        newSeqIdx->cwExtBitsPerBucket = *(uint64_t *)(buf + offset + 4);
        offset += 12;
        break;
      case 0:
        /* empty header skip to next portion */
        offset = headerLen;
        break;
      default:
        if ((currentHeader & 0xffff0000L) == EH_HEADER_PREFIX)
        {
          uint32_t extHeaderLen = *(uint32_t *)(buf + offset + 4);
          offset += EXT_HEADER_PREFIX_SIZE;
          appendExtHeaderPos(&newSeqIdx->extHeaderPos,
                             newSeqIdx->numExtHeaders++,
                             offset, currentHeader);
          offset += extHeaderLen;
        }
        else
        {
          gt_error_set(err, "Unknown header field: %4s", buf + offset);
          loadBlockEncIdxSeqErrRet();
        }
      }
    }
    gt_assert(newSeqIdx->modes
           && newSeqIdx->bucketBlocks
           && newSeqIdx->numModes
           && offset == headerLen);
    /* compute values not read from header */
    if (!newSeqIdx->bitsPerUlong)
      newSeqIdx->bitsPerUlong =
        requiredUlongBits(newSeqIdx->baseClass.seqLen - 1);
    else if (newSeqIdx->bitsPerUlong !=
            requiredUlongBits(newSeqIdx->baseClass.seqLen - 1)) {
      gt_error_set(err, "bits per ulong wrong in header found %u, expected %u",
                   newSeqIdx->bitsPerUlong,
                   requiredUlongBits(newSeqIdx->baseClass.seqLen - 1));
      loadBlockEncIdxSeqErrRet();
    }
  }
  {
    AlphabetRangeID range, numAlphabetRanges = newSeqIdx->numModes =
      MRAEncGetNumRanges(alphabet);
    totalAlphabetSize = gt_MRAEncGetSize(alphabet);
    blockMapAlphabetSize = 0;
    for (range = 0; range < numAlphabetRanges; ++range)
    {
      switch (modesCopy[range])
      {
      case BLOCK_COMPOSITION_INCLUDE:
        blockMapAlphabetSize += MRAEncGetRangeSize(alphabet, range);
        break;
      case DIRECT_SYM_ENCODE:
        /*< FIXME: insert proper code to process direct encoding regions */
        break;
      case REGIONS_LIST:
        /*< FIXME: insert proper code to process ranges */
        break;
      default:
        gt_error_set(err, "Invalid encoding request.");
        loadBlockEncIdxSeqErrRet();
        break;
      }
    }
    newSeqIdx->blockMapAlphabet = blockMapAlphabet =
      gt_MRAEncSecondaryMapping(alphabet, BLOCK_COMPOSITION_INCLUDE, modesCopy,
                             newSeqIdx->blockEncFallback);
    newSeqIdx->rangeMapAlphabet = rangeMapAlphabet =
      gt_MRAEncSecondaryMapping(alphabet, REGIONS_LIST, modesCopy,
                             newSeqIdx->rangeEncFallback);
    newSeqIdx->blockMapAlphabetSize = blockMapAlphabetSize;
    gt_assert(gt_MRAEncGetSize(blockMapAlphabet) == blockMapAlphabetSize);
  }
  if (!newSeqIdx->partialSymSumBits && blockMapAlphabetSize)
  {
    newSeqIdx->partialSymSumBits
      = gt_malloc(sizeof (newSeqIdx->partialSymSumBits[0])
                  * blockMapAlphabetSize * 2);
    newSeqIdx->partialSymSumBitsSums
      = newSeqIdx->partialSymSumBits + blockMapAlphabetSize;
    symSumBitsDefaultSetup(newSeqIdx);
  }
  if (!gt_initCompositionList(&newSeqIdx->compositionTable,
                              newSeqIdx->blockSize,
                              blockMapAlphabetSize)) {
    gt_error_set(err, "error initialising composition list");
    loadBlockEncIdxSeqErrRet();
  }
  if (newSeqIdx->bitsPerVarDiskOffset == 0)
    newSeqIdx->bitsPerVarDiskOffset =
      gt_requiredUInt64Bits(
        vwBitsSimple(newSeqIdx->baseClass.seqLen, newSeqIdx->blockSize,
                     newSeqIdx->bucketBlocks,
                     newSeqIdx->compositionTable.maxPermIdxBits,
                     newSeqIdx->maxVarExtBitsPerBucket));

  if (fseeko(newSeqIdx->externalData.idxFP,
             newSeqIdx->externalData.rangeEncPos, SEEK_SET)) {
    gt_error_set(err, "error in fseeko");
    loadBlockEncIdxSeqErrRet();
  }
  {
    int regionFeatures = SRL_NO_FEATURES;
    if (features & EIS_FEATURE_REGION_SUMS)
      regionFeatures |= SRL_PARTIAL_SYMBOL_SUMS;
    if (!(newSeqIdx->rangeEncs =
          gt_SRLReadFromStream(newSeqIdx->externalData.idxFP, rangeMapAlphabet,
                            regionFeatures, err))) {
      gt_error_set(err, "error creating rangeEncs");
      loadBlockEncIdxSeqErrRet();
    }
  }
  tryMMapOfIndex(&newSeqIdx->externalData);
  gt_free(buf);
  return &newSeqIdx->baseClass;
}

// Assembly:
subq $0xb8, %rsp
movq %rdi, 0xa8(%rsp)
movq %rsi, 0xa0(%rsp)
movl %edx, 0x9c(%rsp)
movq %rcx, 0x90(%rsp)
movq $0x0, 0x88(%rsp)
movq $0x0, 0x78(%rsp)
movq $0x0, 0x70(%rsp)
movq $0x0, 0x60(%rsp)
movq $0x0, 0x58(%rsp)
cmpq $0x0, 0xa0(%rsp)
je 0x4a7c1c
cmpq $0x0, 0x90(%rsp)
jne 0x4a7c54
movq 0x19437d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x6e3e6(%rip), %rsi     # 0x516013
leaq 0xcde65(%rip), %rdx     # 0x575a99
leaq 0x10e4fe(%rip), %rcx    # 0x5b6139
leaq 0x10e2c6(%rip), %r8     # 0x5b5f08
movl $0x84c, %r9d            # imm = 0x84C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4a7c56
movl $0xe8, %edi
movl $0x1, %esi
leaq 0x10e2a1(%rip), %rdx    # 0x5b5f08
movl $0x84d, %ecx            # imm = 0x84D
callq 0xe83c0
movq %rax, 0x88(%rsp)
movq 0xa8(%rsp), %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x88(%rsp), %rax
leaq 0x193f74(%rip), %rcx    # 0x63bc10
movq %rcx, (%rax)
movq 0xa0(%rsp), %rdi
movq 0x88(%rsp), %rsi
addq $0x18, %rsi
movq 0x90(%rsp), %rcx
leaq 0xd0223(%rip), %rdx     # 0x577ee5
callq 0x4a6980
cmpl $0x0, %eax
jne 0x4a7e0d
movq 0x90(%rsp), %rdi
leaq 0x10e473(%rip), %rsi    # 0x5b6152
movb $0x0, %al
callq 0xd88c0
movq 0x88(%rsp), %rdi
addq $0x18, %rdi
callq 0x4a6560
movq 0x88(%rsp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4a7d16
movq 0x88(%rsp), %rdi
addq $0x48, %rdi
callq 0x4af220
movq 0x88(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x4a7d36
movq 0x88(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x4afea0
movq 0x88(%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x10e1bf(%rip), %rsi    # 0x5b5f08
movl $0x853, %edx            # imm = 0x853
callq 0xe88c0
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rdi
leaq 0x10e19f(%rip), %rsi    # 0x5b5f08
movl $0x853, %edx            # imm = 0x853
callq 0xe88c0
movq 0x58(%rsp), %rdi
leaq 0x10e189(%rip), %rsi    # 0x5b5f08
movl $0x853, %edx            # imm = 0x853
callq 0xe88c0
cmpq $0x0, 0xa8(%rsp)
je 0x4a7da1
movq 0xa8(%rsp), %rdi
callq 0x22b660
movq 0x60(%rsp), %rdi
leaq 0x10e15b(%rip), %rsi    # 0x5b5f08
movl $0x853, %edx            # imm = 0x853
callq 0xe88c0
movq 0x78(%rsp), %rdi
leaq 0x10e145(%rip), %rsi    # 0x5b5f08
movl $0x853, %edx            # imm = 0x853
callq 0xe88c0
movq 0x70(%rsp), %rdi
leaq 0x10e12f(%rip), %rsi    # 0x5b5f08
movl $0x853, %edx            # imm = 0x853
callq 0xe88c0
movq 0x88(%rsp), %rdi
leaq 0x10e116(%rip), %rsi    # 0x5b5f08
movl $0x853, %edx            # imm = 0x853
callq 0xe88c0
movq $0x0, 0xb0(%rsp)
jmp 0x4a952e
movq $0x8, 0x50(%rsp)
movl $0x8, %edi
leaq 0x10e0e6(%rip), %rsi    # 0x5b5f08
movl $0x857, %edx            # imm = 0x857
callq 0xe80f0
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rdi
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rcx
movl $0x8, %esi
movl $0x1, %edx
callq 0x19a70
cmpq $0x1, %rax
je 0x4a7f98
movq 0x90(%rsp), %rdi
leaq 0x10e305(%rip), %rsi    # 0x5b616f
movb $0x0, %al
callq 0xd88c0
movq 0x88(%rsp), %rdi
addq $0x18, %rdi
callq 0x4a6560
movq 0x88(%rsp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4a7ea1
movq 0x88(%rsp), %rdi
addq $0x48, %rdi
callq 0x4af220
movq 0x88(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x4a7ec1
movq 0x88(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x4afea0
movq 0x88(%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x10e034(%rip), %rsi    # 0x5b5f08
movl $0x85b, %edx            # imm = 0x85B
callq 0xe88c0
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rdi
leaq 0x10e014(%rip), %rsi    # 0x5b5f08
movl $0x85b, %edx            # imm = 0x85B
callq 0xe88c0
movq 0x58(%rsp), %rdi
leaq 0x10dffe(%rip), %rsi    # 0x5b5f08
movl $0x85b, %edx            # imm = 0x85B
callq 0xe88c0
cmpq $0x0, 0xa8(%rsp)
je 0x4a7f2c
movq 0xa8(%rsp), %rdi
callq 0x22b660
movq 0x60(%rsp), %rdi
leaq 0x10dfd0(%rip), %rsi    # 0x5b5f08
movl $0x85b, %edx            # imm = 0x85B
callq 0xe88c0
movq 0x78(%rsp), %rdi
leaq 0x10dfba(%rip), %rsi    # 0x5b5f08
movl $0x85b, %edx            # imm = 0x85B
callq 0xe88c0
movq 0x70(%rsp), %rdi
leaq 0x10dfa4(%rip), %rsi    # 0x5b5f08
movl $0x85b, %edx            # imm = 0x85B
callq 0xe88c0
movq 0x88(%rsp), %rdi
leaq 0x10df8b(%rip), %rsi    # 0x5b5f08
movl $0x85b, %edx            # imm = 0x85B
callq 0xe88c0
movq $0x0, 0xb0(%rsp)
jmp 0x4a952e
movq 0x58(%rsp), %rdi
leaq 0x10ef63(%rip), %rsi    # 0x5b6f07
callq 0x19980
cmpl $0x0, %eax
je 0x4a80f4
movq 0x90(%rsp), %rdi
movq 0x58(%rsp), %rdx
leaq 0x10e1c1(%rip), %rsi    # 0x5b6187
movb $0x0, %al
callq 0xd88c0
movq 0x88(%rsp), %rdi
addq $0x18, %rdi
callq 0x4a6560
movq 0x88(%rsp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4a7ffd
movq 0x88(%rsp), %rdi
addq $0x48, %rdi
callq 0x4af220
movq 0x88(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x4a801d
movq 0x88(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x4afea0
movq 0x88(%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x10ded8(%rip), %rsi    # 0x5b5f08
movl $0x85f, %edx            # imm = 0x85F
callq 0xe88c0
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rdi
leaq 0x10deb8(%rip), %rsi    # 0x5b5f08
movl $0x85f, %edx            # imm = 0x85F
callq 0xe88c0
movq 0x58(%rsp), %rdi
leaq 0x10dea2(%rip), %rsi    # 0x5b5f08
movl $0x85f, %edx            # imm = 0x85F
callq 0xe88c0
cmpq $0x0, 0xa8(%rsp)
je 0x4a8088
movq 0xa8(%rsp), %rdi
callq 0x22b660
movq 0x60(%rsp), %rdi
leaq 0x10de74(%rip), %rsi    # 0x5b5f08
movl $0x85f, %edx            # imm = 0x85F
callq 0xe88c0
movq 0x78(%rsp), %rdi
leaq 0x10de5e(%rip), %rsi    # 0x5b5f08
movl $0x85f, %edx            # imm = 0x85F
callq 0xe88c0
movq 0x70(%rsp), %rdi
leaq 0x10de48(%rip), %rsi    # 0x5b5f08
movl $0x85f, %edx            # imm = 0x85F
callq 0xe88c0
movq 0x88(%rsp), %rdi
leaq 0x10de2f(%rip), %rsi    # 0x5b5f08
movl $0x85f, %edx            # imm = 0x85F
callq 0xe88c0
movq $0x0, 0xb0(%rsp)
jmp 0x4a952e
movq 0x58(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, %ecx
movq %rcx, 0x68(%rsp)
movq 0x88(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x58(%rsp), %rdi
movq 0x68(%rsp), %rsi
leaq 0x10dde8(%rip), %rdx    # 0x5b5f08
movl $0x862, %ecx            # imm = 0x862
callq 0xe8540
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rdi
addq $0x8, %rdi
movq 0x68(%rsp), %rsi
subq $0x8, %rsi
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rcx
movl $0x1, %edx
callq 0x19a70
cmpq $0x1, %rax
je 0x4a829e
movq 0x90(%rsp), %rdi
leaq 0x10e03a(%rip), %rsi    # 0x5b61aa
movb $0x0, %al
callq 0xd88c0
movq 0x88(%rsp), %rdi
addq $0x18, %rdi
callq 0x4a6560
movq 0x88(%rsp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4a81a7
movq 0x88(%rsp), %rdi
addq $0x48, %rdi
callq 0x4af220
movq 0x88(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x4a81c7
movq 0x88(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x4afea0
movq 0x88(%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x10dd2e(%rip), %rsi    # 0x5b5f08
movl $0x866, %edx            # imm = 0x866
callq 0xe88c0
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rdi
leaq 0x10dd0e(%rip), %rsi    # 0x5b5f08
movl $0x866, %edx            # imm = 0x866
callq 0xe88c0
movq 0x58(%rsp), %rdi
leaq 0x10dcf8(%rip), %rsi    # 0x5b5f08
movl $0x866, %edx            # imm = 0x866
callq 0xe88c0
cmpq $0x0, 0xa8(%rsp)
je 0x4a8232
movq 0xa8(%rsp), %rdi
callq 0x22b660
movq 0x60(%rsp), %rdi
leaq 0x10dcca(%rip), %rsi    # 0x5b5f08
movl $0x866, %edx            # imm = 0x866
callq 0xe88c0
movq 0x78(%rsp), %rdi
leaq 0x10dcb4(%rip), %rsi    # 0x5b5f08
movl $0x866, %edx            # imm = 0x866
callq 0xe88c0
movq 0x70(%rsp), %rdi
leaq 0x10dc9e(%rip), %rsi    # 0x5b5f08
movl $0x866, %edx            # imm = 0x866
callq 0xe88c0
movq 0x88(%rsp), %rdi
leaq 0x10dc85(%rip), %rsi    # 0x5b5f08
movl $0x866, %edx            # imm = 0x866
callq 0xe88c0
movq $0x0, 0xb0(%rsp)
jmp 0x4a952e
jmp 0x4a82a0
movq 0x50(%rsp), %rax
cmpq 0x68(%rsp), %rax
jae 0x4a8a49
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl (%rax,%rcx), %eax
movl %eax, 0x18(%rsp)
movl %eax, 0x4c(%rsp)
testl %eax, %eax
je 0x4a8869
jmp 0x4a82cf
movl 0x18(%rsp), %eax
subl $0x42424c4b, %eax       # imm = 0x42424C4B
je 0x4a8419
jmp 0x4a82e0
movl 0x18(%rsp), %eax
subl $0x42454642, %eax       # imm = 0x42454642
je 0x4a87a5
jmp 0x4a82f1
movl 0x18(%rsp), %eax
subl $0x424b535a, %eax       # imm = 0x424B535A
je 0x4a83ea
jmp 0x4a8302
movl 0x18(%rsp), %eax
subl $0x43424d42, %eax       # imm = 0x43424D42
je 0x4a8561
jmp 0x4a8313
movl 0x18(%rsp), %eax
subl $0x43455842, %eax       # imm = 0x43455842
je 0x4a8838
jmp 0x4a8324
movl 0x18(%rsp), %eax
subl $0x4d455842, %eax       # imm = 0x4D455842
je 0x4a8807
jmp 0x4a8335
movl 0x18(%rsp), %eax
subl $0x4e4d524e, %eax       # imm = 0x4E4D524E
je 0x4a84a4
jmp 0x4a8346
movl 0x18(%rsp), %eax
subl $0x52454642, %eax       # imm = 0x52454642
je 0x4a87d6
jmp 0x4a8357
movl 0x18(%rsp), %eax
subl $0x524f4646, %eax       # imm = 0x524F4646
je 0x4a8476
jmp 0x4a8368
movl 0x18(%rsp), %eax
subl $0x53454c45, %eax       # imm = 0x53454C45
je 0x4a83bc
jmp 0x4a8375
movl 0x18(%rsp), %eax
subl $0x53504254, %eax       # imm = 0x53504254
je 0x4a8590
jmp 0x4a8386
movl 0x18(%rsp), %eax
subl $0x53534254, %eax       # imm = 0x53534254
je 0x4a85ee
jmp 0x4a8397
movl 0x18(%rsp), %eax
subl $0x56444f42, %eax       # imm = 0x56444F42
je 0x4a85bf
jmp 0x4a83a8
movl 0x18(%rsp), %eax
subl $0x564f4646, %eax       # imm = 0x564F4646
je 0x4a8448
jmp 0x4a8878
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x4(%rax,%rcx), %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x50(%rsp), %rax
addq $0xc, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl 0x4(%rax,%rcx), %ecx
movq 0x88(%rsp), %rax
movl %ecx, 0xb4(%rax)
movq 0x50(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl 0x4(%rax,%rcx), %ecx
movq 0x88(%rsp), %rax
movl %ecx, 0xb0(%rax)
movq 0x50(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x4(%rax,%rcx), %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x50(%rsp), %rax
addq $0xc, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x4(%rax,%rcx), %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0x50(%rsp), %rax
addq $0xc, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movq %rcx, %rdx
addq $0x4, %rdx
movq %rdx, 0x50(%rsp)
movl 0x4(%rax,%rcx), %eax
movq 0x88(%rsp), %rcx
movl %eax, 0xc8(%rcx)
cltq
movq %rax, 0x40(%rsp)
movq 0x50(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x50(%rsp)
movq 0x40(%rsp), %rdi
shlq $0x2, %rdi
leaq 0x10da17(%rip), %rsi    # 0x5b5f08
movl $0x887, %edx            # imm = 0x887
callq 0xe80f0
movq 0x88(%rsp), %rcx
movq %rax, 0xa8(%rcx)
movq %rax, 0x60(%rsp)
movq $0x0, 0x38(%rsp)
movq 0x38(%rsp), %rax
cmpq 0x40(%rsp), %rax
jae 0x4a855c
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl (%rax,%rcx), %edx
movq 0x60(%rsp), %rax
movq 0x38(%rsp), %rcx
movl %edx, (%rax,%rcx,4)
movq 0x50(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x50(%rsp)
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x4a8518
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl 0x4(%rax,%rcx), %ecx
movq 0x88(%rsp), %rax
movl %ecx, 0xb8(%rax)
movq 0x50(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl 0x4(%rax,%rcx), %ecx
movq 0x88(%rsp), %rax
movl %ecx, 0xbc(%rax)
movq 0x50(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl 0x4(%rax,%rcx), %ecx
movq 0x88(%rsp), %rax
movl %ecx, 0xc0(%rax)
movq 0x50(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl 0x4(%rax,%rcx), %eax
movb %al, 0x2f(%rsp)
movzbl 0x2f(%rsp), %eax
movl %eax, %edi
shlq $0x2, %rdi
shlq %rdi
leaq 0x10d8f3(%rip), %rsi    # 0x5b5f08
movl $0x8a2, %edx            # imm = 0x8A2
callq 0xe80f0
movq %rax, %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0xd0(%rax)
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rcx
movzbl 0x2f(%rsp), %eax
cltq
shlq $0x2, %rax
addq %rax, %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0xd8(%rax)
cmpb $0x0, 0x2f(%rsp)
je 0x4a878e
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl 0x8(%rax,%rcx), %ecx
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rax
movl %ecx, (%rax)
movq 0x88(%rsp), %rax
movq 0xd8(%rax), %rax
movl $0x0, (%rax)
movq $0x1, 0x30(%rsp)
movq 0x30(%rsp), %rax
movzbl 0x2f(%rsp), %ecx
cmpq %rcx, %rax
jae 0x4a8746
movq 0x58(%rsp), %rax
addq 0x50(%rsp), %rax
movq 0x30(%rsp), %rcx
shlq $0x2, %rcx
movl 0x8(%rax,%rcx), %edx
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rax
movq 0x30(%rsp), %rcx
movl %edx, (%rax,%rcx,4)
movq 0x88(%rsp), %rax
movq 0xd8(%rax), %rax
movq 0x30(%rsp), %rcx
subq $0x1, %rcx
movl (%rax,%rcx,4), %edx
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rax
movq 0x30(%rsp), %rcx
subq $0x1, %rcx
addl (%rax,%rcx,4), %edx
movq 0x88(%rsp), %rax
movq 0xd8(%rax), %rax
movq 0x30(%rsp), %rcx
movl %edx, (%rax,%rcx,4)
movq 0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x30(%rsp)
jmp 0x4a86a5
movq 0x88(%rsp), %rax
movq 0xd8(%rax), %rax
movzbl 0x2f(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %ecx
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rax
movzbl 0x2f(%rsp), %edx
subl $0x1, %edx
movslq %edx, %rdx
addl (%rax,%rdx,4), %ecx
movq 0x88(%rsp), %rax
movl %ecx, 0xe0(%rax)
movzbl 0x2f(%rsp), %eax
shll $0x2, %eax
addl $0x8, %eax
cltq
addq 0x50(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl 0x4(%rax,%rcx), %eax
movb %al, %cl
movq 0x88(%rsp), %rax
movb %cl, 0xc6(%rax)
movq 0x50(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl 0x4(%rax,%rcx), %eax
movb %al, %cl
movq 0x88(%rsp), %rax
movb %cl, 0xc7(%rax)
movq 0x50(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x4(%rax,%rcx), %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0x88(%rax)
movq 0x50(%rsp), %rax
addq $0xc, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x4(%rax,%rcx), %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0x90(%rax)
movq 0x50(%rsp), %rax
addq $0xc, %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movq 0x68(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a44
movl 0x4c(%rsp), %eax
movabsq $0xffff0000, %rcx       # imm = 0xFFFF0000
andq %rcx, %rax
cmpq $0x45480000, %rax       # imm = 0x45480000
jne 0x4a88fb
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movl 0x4(%rax,%rcx), %eax
movl %eax, 0x28(%rsp)
movq 0x50(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x50(%rsp)
movq 0x88(%rsp), %rdi
addq $0x78, %rdi
movq 0x88(%rsp), %rax
movq 0x80(%rax), %rsi
movq %rsi, %rcx
addq $0x1, %rcx
movq %rcx, 0x80(%rax)
movq 0x50(%rsp), %rdx
movl 0x4c(%rsp), %ecx
callq 0x4a9540
movl 0x28(%rsp), %eax
addq 0x50(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x4a8a42
movq 0x90(%rsp), %rdi
movq 0x58(%rsp), %rdx
addq 0x50(%rsp), %rdx
leaq 0x10d8ab(%rip), %rsi    # 0x5b61bf
movb $0x0, %al
callq 0xd88c0
movq 0x88(%rsp), %rdi
addq $0x18, %rdi
callq 0x4a6560
movq 0x88(%rsp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4a894b
movq 0x88(%rsp), %rdi
addq $0x48, %rdi
callq 0x4af220
movq 0x88(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x4a896b
movq 0x88(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x4afea0
movq 0x88(%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x10d58a(%rip), %rsi    # 0x5b5f08
movl $0x8e0, %edx            # imm = 0x8E0
callq 0xe88c0
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rdi
leaq 0x10d56a(%rip), %rsi    # 0x5b5f08
movl $0x8e0, %edx            # imm = 0x8E0
callq 0xe88c0
movq 0x58(%rsp), %rdi
leaq 0x10d554(%rip), %rsi    # 0x5b5f08
movl $0x8e0, %edx            # imm = 0x8E0
callq 0xe88c0
cmpq $0x0, 0xa8(%rsp)
je 0x4a89d6
movq 0xa8(%rsp), %rdi
callq 0x22b660
movq 0x60(%rsp), %rdi
leaq 0x10d526(%rip), %rsi    # 0x5b5f08
movl $0x8e0, %edx            # imm = 0x8E0
callq 0xe88c0
movq 0x78(%rsp), %rdi
leaq 0x10d510(%rip), %rsi    # 0x5b5f08
movl $0x8e0, %edx            # imm = 0x8E0
callq 0xe88c0
movq 0x70(%rsp), %rdi
leaq 0x10d4fa(%rip), %rsi    # 0x5b5f08
movl $0x8e0, %edx            # imm = 0x8E0
callq 0xe88c0
movq 0x88(%rsp), %rdi
leaq 0x10d4e1(%rip), %rsi    # 0x5b5f08
movl $0x8e0, %edx            # imm = 0x8E0
callq 0xe88c0
movq $0x0, 0xb0(%rsp)
jmp 0x4a952e
jmp 0x4a8a44
jmp 0x4a82a0
jmp 0x4a8a4b
movq 0x88(%rsp), %rax
cmpq $0x0, 0xa8(%rax)
je 0x4a8a8b
movq 0x88(%rsp), %rax
cmpl $0x0, 0xb0(%rax)
je 0x4a8a8b
movq 0x88(%rsp), %rax
cmpl $0x0, 0xc8(%rax)
je 0x4a8a8b
movq 0x50(%rsp), %rax
cmpq 0x68(%rsp), %rax
je 0x4a8ac3
movq 0x19350e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x6d577(%rip), %rsi     # 0x516013
leaq 0x10d736(%rip), %rdx    # 0x5b61d9
leaq 0x10d68f(%rip), %rcx    # 0x5b6139
leaq 0x10d457(%rip), %r8     # 0x5b5f08
movl $0x8e7, %r9d            # imm = 0x8E7
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4a8ac5
movq 0x88(%rsp), %rax
cmpl $0x0, 0xbc(%rax)
jne 0x4a8b00
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rdi
subq $0x1, %rdi
callq 0x46ec80
movl %eax, %ecx
movq 0x88(%rsp), %rax
movl %ecx, 0xbc(%rax)
jmp 0x4a8cab
movq 0x88(%rsp), %rax
movl 0xbc(%rax), %eax
movl %eax, 0x14(%rsp)
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rdi
subq $0x1, %rdi
callq 0x46ec80
movl %eax, %ecx
movl 0x14(%rsp), %eax
cmpl %ecx, %eax
je 0x4a8ca9
movq 0x90(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x88(%rsp), %rax
movl 0xbc(%rax), %eax
movl %eax, 0x10(%rsp)
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rdi
subq $0x1, %rdi
callq 0x46ec80
movq 0x8(%rsp), %rdi
movl 0x10(%rsp), %edx
movl %eax, %ecx
leaq 0x10d6b8(%rip), %rsi    # 0x5b6233
movb $0x0, %al
callq 0xd88c0
movq 0x88(%rsp), %rdi
addq $0x18, %rdi
callq 0x4a6560
movq 0x88(%rsp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4a8bb2
movq 0x88(%rsp), %rdi
addq $0x48, %rdi
callq 0x4af220
movq 0x88(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x4a8bd2
movq 0x88(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x4afea0
movq 0x88(%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x10d323(%rip), %rsi    # 0x5b5f08
movl $0x8f1, %edx            # imm = 0x8F1
callq 0xe88c0
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rdi
leaq 0x10d303(%rip), %rsi    # 0x5b5f08
movl $0x8f1, %edx            # imm = 0x8F1
callq 0xe88c0
movq 0x58(%rsp), %rdi
leaq 0x10d2ed(%rip), %rsi    # 0x5b5f08
movl $0x8f1, %edx            # imm = 0x8F1
callq 0xe88c0
cmpq $0x0, 0xa8(%rsp)
je 0x4a8c3d
movq 0xa8(%rsp), %rdi
callq 0x22b660
movq 0x60(%rsp), %rdi
leaq 0x10d2bf(%rip), %rsi    # 0x5b5f08
movl $0x8f1, %edx            # imm = 0x8F1
callq 0xe88c0
movq 0x78(%rsp), %rdi
leaq 0x10d2a9(%rip), %rsi    # 0x5b5f08
movl $0x8f1, %edx            # imm = 0x8F1
callq 0xe88c0
movq 0x70(%rsp), %rdi
leaq 0x10d293(%rip), %rsi    # 0x5b5f08
movl $0x8f1, %edx            # imm = 0x8F1
callq 0xe88c0
movq 0x88(%rsp), %rdi
leaq 0x10d27a(%rip), %rsi    # 0x5b5f08
movl $0x8f1, %edx            # imm = 0x8F1
callq 0xe88c0
movq $0x0, 0xb0(%rsp)
jmp 0x4a952e
jmp 0x4a8cab
movq 0xa8(%rsp), %rdi
callq 0x4a64a0
movq 0x88(%rsp), %rcx
movl %eax, 0xc8(%rcx)
movl %eax, 0x20(%rsp)
movq 0xa8(%rsp), %rdi
callq 0x22aeb0
movb %al, 0x86(%rsp)
movb $0x0, 0x87(%rsp)
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
cmpl 0x20(%rsp), %eax
jae 0x4a8eab
movq 0x60(%rsp), %rax
movl 0x24(%rsp), %ecx
movl (%rax,%rcx,4), %eax
movl %eax, 0x4(%rsp)
testl %eax, %eax
je 0x4a8d52
jmp 0x4a8d12
movl 0x4(%rsp), %eax
subl $0x1, %eax
je 0x4a8d28
jmp 0x4a8d1d
movl 0x4(%rsp), %eax
subl $0x2, %eax
je 0x4a8d57
jmp 0x4a8d5c
movq 0xa8(%rsp), %rdi
movl 0x24(%rsp), %esi
callq 0x4a64b0
movzwl %ax, %ecx
movzbl 0x87(%rsp), %eax
addl %ecx, %eax
movb %al, 0x87(%rsp)
jmp 0x4a8e99
jmp 0x4a8e99
jmp 0x4a8e99
movq 0x90(%rsp), %rdi
leaq 0x10d4fd(%rip), %rsi    # 0x5b6268
movb $0x0, %al
callq 0xd88c0
movq 0x88(%rsp), %rdi
addq $0x18, %rdi
callq 0x4a6560
movq 0x88(%rsp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4a8da2
movq 0x88(%rsp), %rdi
addq $0x48, %rdi
callq 0x4af220
movq 0x88(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x4a8dc2
movq 0x88(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x4afea0
movq 0x88(%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x10d133(%rip), %rsi    # 0x5b5f08
movl $0x908, %edx            # imm = 0x908
callq 0xe88c0
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rdi
leaq 0x10d113(%rip), %rsi    # 0x5b5f08
movl $0x908, %edx            # imm = 0x908
callq 0xe88c0
movq 0x58(%rsp), %rdi
leaq 0x10d0fd(%rip), %rsi    # 0x5b5f08
movl $0x908, %edx            # imm = 0x908
callq 0xe88c0
cmpq $0x0, 0xa8(%rsp)
je 0x4a8e2d
movq 0xa8(%rsp), %rdi
callq 0x22b660
movq 0x60(%rsp), %rdi
leaq 0x10d0cf(%rip), %rsi    # 0x5b5f08
movl $0x908, %edx            # imm = 0x908
callq 0xe88c0
movq 0x78(%rsp), %rdi
leaq 0x10d0b9(%rip), %rsi    # 0x5b5f08
movl $0x908, %edx            # imm = 0x908
callq 0xe88c0
movq 0x70(%rsp), %rdi
leaq 0x10d0a3(%rip), %rsi    # 0x5b5f08
movl $0x908, %edx            # imm = 0x908
callq 0xe88c0
movq 0x88(%rsp), %rdi
leaq 0x10d08a(%rip), %rsi    # 0x5b5f08
movl $0x908, %edx            # imm = 0x908
callq 0xe88c0
movq $0x0, 0xb0(%rsp)
jmp 0x4a952e
jmp 0x4a8e9b
movl 0x24(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x24(%rsp)
jmp 0x4a8cee
movq 0xa8(%rsp), %rdi
movq 0x60(%rsp), %rdx
movq 0x88(%rsp), %rax
movl $0x1, %esi
movzbl 0xc6(%rax), %ecx
callq 0x22af10
movq %rax, %rcx
movq %rcx, 0x78(%rsp)
movq 0x88(%rsp), %rax
movq %rcx, 0x98(%rax)
movq 0xa8(%rsp), %rdi
movq 0x60(%rsp), %rdx
movq 0x88(%rsp), %rax
movl $0x2, %esi
movzbl 0xc7(%rax), %ecx
callq 0x22af10
movq %rax, %rcx
movq %rcx, 0x70(%rsp)
movq 0x88(%rsp), %rax
movq %rcx, 0xa0(%rax)
movzbl 0x87(%rsp), %eax
movw %ax, %cx
movq 0x88(%rsp), %rax
movw %cx, 0xc4(%rax)
movq 0x78(%rsp), %rdi
callq 0x22aeb0
movzwl %ax, %eax
movzbl 0x87(%rsp), %ecx
cmpl %ecx, %eax
je 0x4a8f90
movq 0x193041(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x6d0aa(%rip), %rsi     # 0x516013
leaq 0x10d03e(%rip), %rdx    # 0x5b5fae
leaq 0x10d1c2(%rip), %rcx    # 0x5b6139
leaq 0x10cf8a(%rip), %r8     # 0x5b5f08
movl $0x913, %r9d            # imm = 0x913
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4a8f92
movq 0x88(%rsp), %rax
cmpq $0x0, 0xd0(%rax)
jne 0x4a9021
movzbl 0x87(%rsp), %eax
cmpl $0x0, %eax
je 0x4a9021
movzbl 0x87(%rsp), %eax
movl %eax, %edi
shlq $0x2, %rdi
shlq %rdi
leaq 0x10cf3f(%rip), %rsi    # 0x5b5f08
movl $0x919, %edx            # imm = 0x919
callq 0xe80f0
movq %rax, %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0xd0(%rax)
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rcx
movzbl 0x87(%rsp), %eax
cltq
shlq $0x2, %rax
addq %rax, %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0xd8(%rax)
movq 0x88(%rsp), %rdi
callq 0x4a65f0
movq 0x88(%rsp), %rdi
addq $0x48, %rdi
movq 0x88(%rsp), %rax
movl 0xb4(%rax), %esi
movzbl 0x87(%rsp), %edx
callq 0x4ae620
cmpl $0x0, %eax
jne 0x4a918e
movq 0x90(%rsp), %rdi
leaq 0x10d222(%rip), %rsi    # 0x5b6282
movb $0x0, %al
callq 0xd88c0
movq 0x88(%rsp), %rdi
addq $0x18, %rdi
callq 0x4a6560
movq 0x88(%rsp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4a9097
movq 0x88(%rsp), %rdi
addq $0x48, %rdi
callq 0x4af220
movq 0x88(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x4a90b7
movq 0x88(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x4afea0
movq 0x88(%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x10ce3e(%rip), %rsi    # 0x5b5f08
movl $0x922, %edx            # imm = 0x922
callq 0xe88c0
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rdi
leaq 0x10ce1e(%rip), %rsi    # 0x5b5f08
movl $0x922, %edx            # imm = 0x922
callq 0xe88c0
movq 0x58(%rsp), %rdi
leaq 0x10ce08(%rip), %rsi    # 0x5b5f08
movl $0x922, %edx            # imm = 0x922
callq 0xe88c0
cmpq $0x0, 0xa8(%rsp)
je 0x4a9122
movq 0xa8(%rsp), %rdi
callq 0x22b660
movq 0x60(%rsp), %rdi
leaq 0x10cdda(%rip), %rsi    # 0x5b5f08
movl $0x922, %edx            # imm = 0x922
callq 0xe88c0
movq 0x78(%rsp), %rdi
leaq 0x10cdc4(%rip), %rsi    # 0x5b5f08
movl $0x922, %edx            # imm = 0x922
callq 0xe88c0
movq 0x70(%rsp), %rdi
leaq 0x10cdae(%rip), %rsi    # 0x5b5f08
movl $0x922, %edx            # imm = 0x922
callq 0xe88c0
movq 0x88(%rsp), %rdi
leaq 0x10cd95(%rip), %rsi    # 0x5b5f08
movl $0x922, %edx            # imm = 0x922
callq 0xe88c0
movq $0x0, 0xb0(%rsp)
jmp 0x4a952e
movq 0x88(%rsp), %rax
cmpl $0x0, 0xc0(%rax)
jne 0x4a91fe
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x88(%rsp), %rax
movl 0xb4(%rax), %esi
movq 0x88(%rsp), %rax
movl 0xb0(%rax), %edx
movq 0x88(%rsp), %rax
movl 0x6c(%rax), %ecx
movq 0x88(%rsp), %rax
movq 0x88(%rax), %r8
callq 0x4a95d0
movq %rax, %rdi
callq 0x46ec80
movl %eax, %ecx
movq 0x88(%rsp), %rax
movl %ecx, 0xc0(%rax)
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x88(%rsp), %rax
movq 0x40(%rax), %rsi
xorl %edx, %edx
callq 0x19c10
cmpl $0x0, %eax
je 0x4a9363
movq 0x90(%rsp), %rdi
leaq 0x10d071(%rip), %rsi    # 0x5b62a6
movb $0x0, %al
callq 0xd88c0
movq 0x88(%rsp), %rdi
addq $0x18, %rdi
callq 0x4a6560
movq 0x88(%rsp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4a926c
movq 0x88(%rsp), %rdi
addq $0x48, %rdi
callq 0x4af220
movq 0x88(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x4a928c
movq 0x88(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x4afea0
movq 0x88(%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x10cc69(%rip), %rsi    # 0x5b5f08
movl $0x92f, %edx            # imm = 0x92F
callq 0xe88c0
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rdi
leaq 0x10cc49(%rip), %rsi    # 0x5b5f08
movl $0x92f, %edx            # imm = 0x92F
callq 0xe88c0
movq 0x58(%rsp), %rdi
leaq 0x10cc33(%rip), %rsi    # 0x5b5f08
movl $0x92f, %edx            # imm = 0x92F
callq 0xe88c0
cmpq $0x0, 0xa8(%rsp)
je 0x4a92f7
movq 0xa8(%rsp), %rdi
callq 0x22b660
movq 0x60(%rsp), %rdi
leaq 0x10cc05(%rip), %rsi    # 0x5b5f08
movl $0x92f, %edx            # imm = 0x92F
callq 0xe88c0
movq 0x78(%rsp), %rdi
leaq 0x10cbef(%rip), %rsi    # 0x5b5f08
movl $0x92f, %edx            # imm = 0x92F
callq 0xe88c0
movq 0x70(%rsp), %rdi
leaq 0x10cbd9(%rip), %rsi    # 0x5b5f08
movl $0x92f, %edx            # imm = 0x92F
callq 0xe88c0
movq 0x88(%rsp), %rdi
leaq 0x10cbc0(%rip), %rsi    # 0x5b5f08
movl $0x92f, %edx            # imm = 0x92F
callq 0xe88c0
movq $0x0, 0xb0(%rsp)
jmp 0x4a952e
movl $0x0, 0x1c(%rsp)
movl 0x9c(%rsp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x4a9385
movl 0x1c(%rsp), %eax
orl $0x1, %eax
movl %eax, 0x1c(%rsp)
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x70(%rsp), %rsi
movl 0x1c(%rsp), %edx
movq 0x90(%rsp), %rcx
callq 0x4b16e0
movq 0x88(%rsp), %rcx
movq %rax, 0x70(%rcx)
cmpq $0x0, %rax
jne 0x4a94f7
movq 0x90(%rsp), %rdi
leaq 0x10ceea(%rip), %rsi    # 0x5b62b6
movb $0x0, %al
callq 0xd88c0
movq 0x88(%rsp), %rdi
addq $0x18, %rdi
callq 0x4a6560
movq 0x88(%rsp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4a9403
movq 0x88(%rsp), %rdi
addq $0x48, %rdi
callq 0x4af220
movq 0x88(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x4a9423
movq 0x88(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x4afea0
movq 0x88(%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x10cad2(%rip), %rsi    # 0x5b5f08
movl $0x939, %edx            # imm = 0x939
callq 0xe88c0
movq 0x88(%rsp), %rax
movq 0xd0(%rax), %rdi
leaq 0x10cab2(%rip), %rsi    # 0x5b5f08
movl $0x939, %edx            # imm = 0x939
callq 0xe88c0
movq 0x58(%rsp), %rdi
leaq 0x10ca9c(%rip), %rsi    # 0x5b5f08
movl $0x939, %edx            # imm = 0x939
callq 0xe88c0
cmpq $0x0, 0xa8(%rsp)
je 0x4a948e
movq 0xa8(%rsp), %rdi
callq 0x22b660
movq 0x60(%rsp), %rdi
leaq 0x10ca6e(%rip), %rsi    # 0x5b5f08
movl $0x939, %edx            # imm = 0x939
callq 0xe88c0
movq 0x78(%rsp), %rdi
leaq 0x10ca58(%rip), %rsi    # 0x5b5f08
movl $0x939, %edx            # imm = 0x939
callq 0xe88c0
movq 0x70(%rsp), %rdi
leaq 0x10ca42(%rip), %rsi    # 0x5b5f08
movl $0x939, %edx            # imm = 0x939
callq 0xe88c0
movq 0x88(%rsp), %rdi
leaq 0x10ca29(%rip), %rsi    # 0x5b5f08
movl $0x939, %edx            # imm = 0x939
callq 0xe88c0
movq $0x0, 0xb0(%rsp)
jmp 0x4a952e
movq 0x88(%rsp), %rdi
addq $0x18, %rdi
callq 0x4a7ab0
movq 0x58(%rsp), %rdi
leaq 0x10c9f4(%rip), %rsi    # 0x5b5f08
movl $0x93d, %edx            # imm = 0x93D
callq 0xe88c0
movq 0x88(%rsp), %rax
movq %rax, 0xb0(%rsp)
movq 0xb0(%rsp), %rax
addq $0xb8, %rsp
retq
nop