// File: /workspace/github_c_makefile_star2_O0/wkoszek[P]mini_gzip/miniz.c
// Function: tinfl_decompress
tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags)
{
  static const int s_length_base[31] = { 3,4,5,6,7,8,9,10,11,13, 15,17,19,23,27,31,35,43,51,59, 67,83,99,115,131,163,195,227,258,0,0 };
  static const int s_length_extra[31]= { 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 };
  static const int s_dist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, 257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0};
  static const int s_dist_extra[32] = { 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
  static const mz_uint8 s_length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 };
  static const int s_min_table_sizes[3] = { 257, 1, 4 };

  tinfl_status status = TINFL_STATUS_FAILED; mz_uint32 num_bits, dist, counter, num_extra; tinfl_bit_buf_t bit_buf;
  const mz_uint8 *pIn_buf_cur = pIn_buf_next, *const pIn_buf_end = pIn_buf_next + *pIn_buf_size;
  mz_uint8 *pOut_buf_cur = pOut_buf_next, *const pOut_buf_end = pOut_buf_next + *pOut_buf_size;
  size_t out_buf_size_mask = (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF) ? (size_t)-1 : ((pOut_buf_next - pOut_buf_start) + *pOut_buf_size) - 1, dist_from_out_buf_start;

  // Ensure the output buffer's size is a power of 2, unless the output buffer is large enough to hold the entire output file (in which case it doesn't matter).
  if (((out_buf_size_mask + 1) & out_buf_size_mask) || (pOut_buf_next < pOut_buf_start)) { *pIn_buf_size = *pOut_buf_size = 0; return TINFL_STATUS_BAD_PARAM; }

  num_bits = r->m_num_bits; bit_buf = r->m_bit_buf; dist = r->m_dist; counter = r->m_counter; num_extra = r->m_num_extra; dist_from_out_buf_start = r->m_dist_from_out_buf_start;
  TINFL_CR_BEGIN

  bit_buf = num_bits = dist = counter = num_extra = r->m_zhdr0 = r->m_zhdr1 = 0; r->m_z_adler32 = r->m_check_adler32 = 1;
  if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER)
  {
    TINFL_GET_BYTE(1, r->m_zhdr0); TINFL_GET_BYTE(2, r->m_zhdr1);
    counter = (((r->m_zhdr0 * 256 + r->m_zhdr1) % 31 != 0) || (r->m_zhdr1 & 32) || ((r->m_zhdr0 & 15) != 8));
    if (!(decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) counter |= (((1U << (8U + (r->m_zhdr0 >> 4))) > 32768U) || ((out_buf_size_mask + 1) < (size_t)(1U << (8U + (r->m_zhdr0 >> 4)))));
    if (counter) { TINFL_CR_RETURN_FOREVER(36, TINFL_STATUS_FAILED); }
  }

  do
  {
    TINFL_GET_BITS(3, r->m_final, 3); r->m_type = r->m_final >> 1;
    if (r->m_type == 0)
    {
      TINFL_SKIP_BITS(5, num_bits & 7);
      for (counter = 0; counter < 4; ++counter) { if (num_bits) TINFL_GET_BITS(6, r->m_raw_header[counter], 8); else TINFL_GET_BYTE(7, r->m_raw_header[counter]); }
      if ((counter = (r->m_raw_header[0] | (r->m_raw_header[1] << 8))) != (mz_uint)(0xFFFF ^ (r->m_raw_header[2] | (r->m_raw_header[3] << 8)))) { TINFL_CR_RETURN_FOREVER(39, TINFL_STATUS_FAILED); }
      while ((counter) && (num_bits))
      {
        TINFL_GET_BITS(51, dist, 8);
        while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(52, TINFL_STATUS_HAS_MORE_OUTPUT); }
        *pOut_buf_cur++ = (mz_uint8)dist;
        counter--;
      }
      while (counter)
      {
        size_t n; while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(9, TINFL_STATUS_HAS_MORE_OUTPUT); }
        while (pIn_buf_cur >= pIn_buf_end)
        {
          if (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT)
          {
            TINFL_CR_RETURN(38, TINFL_STATUS_NEEDS_MORE_INPUT);
          }
          else
          {
            TINFL_CR_RETURN_FOREVER(40, TINFL_STATUS_FAILED);
          }
        }
        n = MZ_MIN(MZ_MIN((size_t)(pOut_buf_end - pOut_buf_cur), (size_t)(pIn_buf_end - pIn_buf_cur)), counter);
        TINFL_MEMCPY(pOut_buf_cur, pIn_buf_cur, n); pIn_buf_cur += n; pOut_buf_cur += n; counter -= (mz_uint)n;
      }
    }
    else if (r->m_type == 3)
    {
      TINFL_CR_RETURN_FOREVER(10, TINFL_STATUS_FAILED);
    }
    else
    {
      if (r->m_type == 1)
      {
        mz_uint8 *p = r->m_tables[0].m_code_size; mz_uint i;
        r->m_table_sizes[0] = 288; r->m_table_sizes[1] = 32; TINFL_MEMSET(r->m_tables[1].m_code_size, 5, 32);
        for ( i = 0; i <= 143; ++i) *p++ = 8; for ( ; i <= 255; ++i) *p++ = 9; for ( ; i <= 279; ++i) *p++ = 7; for ( ; i <= 287; ++i) *p++ = 8;
      }
      else
      {
        for (counter = 0; counter < 3; counter++) { TINFL_GET_BITS(11, r->m_table_sizes[counter], "\05\05\04"[counter]); r->m_table_sizes[counter] += s_min_table_sizes[counter]; }
        MZ_CLEAR_OBJ(r->m_tables[2].m_code_size); for (counter = 0; counter < r->m_table_sizes[2]; counter++) { mz_uint s; TINFL_GET_BITS(14, s, 3); r->m_tables[2].m_code_size[s_length_dezigzag[counter]] = (mz_uint8)s; }
        r->m_table_sizes[2] = 19;
      }
      for ( ; (int)r->m_type >= 0; r->m_type--)
      {
        int tree_next, tree_cur; tinfl_huff_table *pTable;
        mz_uint i, j, used_syms, total, sym_index, next_code[17], total_syms[16]; pTable = &r->m_tables[r->m_type]; MZ_CLEAR_OBJ(total_syms); MZ_CLEAR_OBJ(pTable->m_look_up); MZ_CLEAR_OBJ(pTable->m_tree);
        for (i = 0; i < r->m_table_sizes[r->m_type]; ++i) total_syms[pTable->m_code_size[i]]++;
        used_syms = 0, total = 0; next_code[0] = next_code[1] = 0;
        for (i = 1; i <= 15; ++i) { used_syms += total_syms[i]; next_code[i + 1] = (total = ((total + total_syms[i]) << 1)); }
        if ((65536 != total) && (used_syms > 1))
        {
          TINFL_CR_RETURN_FOREVER(35, TINFL_STATUS_FAILED);
        }
        for (tree_next = -1, sym_index = 0; sym_index < r->m_table_sizes[r->m_type]; ++sym_index)
        {
          mz_uint rev_code = 0, l, cur_code, code_size = pTable->m_code_size[sym_index]; if (!code_size) continue;
          cur_code = next_code[code_size]++; for (l = code_size; l > 0; l--, cur_code >>= 1) rev_code = (rev_code << 1) | (cur_code & 1);
          if (code_size <= TINFL_FAST_LOOKUP_BITS) { mz_int16 k = (mz_int16)((code_size << 9) | sym_index); while (rev_code < TINFL_FAST_LOOKUP_SIZE) { pTable->m_look_up[rev_code] = k; rev_code += (1 << code_size); } continue; }
          if (0 == (tree_cur = pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)])) { pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)] = (mz_int16)tree_next; tree_cur = tree_next; tree_next -= 2; }
          rev_code >>= (TINFL_FAST_LOOKUP_BITS - 1);
          for (j = code_size; j > (TINFL_FAST_LOOKUP_BITS + 1); j--)
          {
            tree_cur -= ((rev_code >>= 1) & 1);
            if (!pTable->m_tree[-tree_cur - 1]) { pTable->m_tree[-tree_cur - 1] = (mz_int16)tree_next; tree_cur = tree_next; tree_next -= 2; } else tree_cur = pTable->m_tree[-tree_cur - 1];
          }
          tree_cur -= ((rev_code >>= 1) & 1); pTable->m_tree[-tree_cur - 1] = (mz_int16)sym_index;
        }
        if (r->m_type == 2)
        {
          for (counter = 0; counter < (r->m_table_sizes[0] + r->m_table_sizes[1]); )
          {
            mz_uint s; TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]); if (dist < 16) { r->m_len_codes[counter++] = (mz_uint8)dist; continue; }
            if ((dist == 16) && (!counter))
            {
              TINFL_CR_RETURN_FOREVER(17, TINFL_STATUS_FAILED);
            }
            num_extra = "\02\03\07"[dist - 16]; TINFL_GET_BITS(18, s, num_extra); s += "\03\03\013"[dist - 16];
            TINFL_MEMSET(r->m_len_codes + counter, (dist == 16) ? r->m_len_codes[counter - 1] : 0, s); counter += s;
          }
          if ((r->m_table_sizes[0] + r->m_table_sizes[1]) != counter)
          {
            TINFL_CR_RETURN_FOREVER(21, TINFL_STATUS_FAILED);
          }
          TINFL_MEMCPY(r->m_tables[0].m_code_size, r->m_len_codes, r->m_table_sizes[0]); TINFL_MEMCPY(r->m_tables[1].m_code_size, r->m_len_codes + r->m_table_sizes[0], r->m_table_sizes[1]);
        }
      }
      for ( ; ; )
      {
        mz_uint8 *pSrc;
        for ( ; ; )
        {
          if (((pIn_buf_end - pIn_buf_cur) < 4) || ((pOut_buf_end - pOut_buf_cur) < 2))
          {
            TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]);
            if (counter >= 256)
              break;
            while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(24, TINFL_STATUS_HAS_MORE_OUTPUT); }
            *pOut_buf_cur++ = (mz_uint8)counter;
          }
          else
          {
            int sym2; mz_uint code_len;
#if TINFL_USE_64BIT_BITBUF
            if (num_bits < 30) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE32(pIn_buf_cur)) << num_bits); pIn_buf_cur += 4; num_bits += 32; }
#else
            if (num_bits < 15) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); pIn_buf_cur += 2; num_bits += 16; }
#endif
            if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0)
              code_len = sym2 >> 9;
            else
            {
              code_len = TINFL_FAST_LOOKUP_BITS; do { sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; } while (sym2 < 0);
            }
            counter = sym2; bit_buf >>= code_len; num_bits -= code_len;
            if (counter & 256)
              break;

#if !TINFL_USE_64BIT_BITBUF
            if (num_bits < 15) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); pIn_buf_cur += 2; num_bits += 16; }
#endif
            if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0)
              code_len = sym2 >> 9;
            else
            {
              code_len = TINFL_FAST_LOOKUP_BITS; do { sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; } while (sym2 < 0);
            }
            bit_buf >>= code_len; num_bits -= code_len;

            pOut_buf_cur[0] = (mz_uint8)counter;
            if (sym2 & 256)
            {
              pOut_buf_cur++;
              counter = sym2;
              break;
            }
            pOut_buf_cur[1] = (mz_uint8)sym2;
            pOut_buf_cur += 2;
          }
        }
        if ((counter &= 511) == 256) break;

        num_extra = s_length_extra[counter - 257]; counter = s_length_base[counter - 257];
        if (num_extra) { mz_uint extra_bits; TINFL_GET_BITS(25, extra_bits, num_extra); counter += extra_bits; }

        TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]);
        num_extra = s_dist_extra[dist]; dist = s_dist_base[dist];
        if (num_extra) { mz_uint extra_bits; TINFL_GET_BITS(27, extra_bits, num_extra); dist += extra_bits; }

        dist_from_out_buf_start = pOut_buf_cur - pOut_buf_start;
        if ((dist > dist_from_out_buf_start) && (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF))
        {
          TINFL_CR_RETURN_FOREVER(37, TINFL_STATUS_FAILED);
        }

        pSrc = pOut_buf_start + ((dist_from_out_buf_start - dist) & out_buf_size_mask);

        if ((MZ_MAX(pOut_buf_cur, pSrc) + counter) > pOut_buf_end)
        {
          while (counter--)
          {
            while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(53, TINFL_STATUS_HAS_MORE_OUTPUT); }
            *pOut_buf_cur++ = pOut_buf_start[(dist_from_out_buf_start++ - dist) & out_buf_size_mask];
          }
          continue;
        }
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES
        else if ((counter >= 9) && (counter <= dist))
        {
          const mz_uint8 *pSrc_end = pSrc + (counter & ~7);
          do
          {
            ((mz_uint32 *)pOut_buf_cur)[0] = ((const mz_uint32 *)pSrc)[0];
            ((mz_uint32 *)pOut_buf_cur)[1] = ((const mz_uint32 *)pSrc)[1];
            pOut_buf_cur += 8;
          } while ((pSrc += 8) < pSrc_end);
          if ((counter &= 7) < 3)
          {
            if (counter)
            {
              pOut_buf_cur[0] = pSrc[0];
              if (counter > 1)
                pOut_buf_cur[1] = pSrc[1];
              pOut_buf_cur += counter;
            }
            continue;
          }
        }
#endif
        do
        {
          pOut_buf_cur[0] = pSrc[0];
          pOut_buf_cur[1] = pSrc[1];
          pOut_buf_cur[2] = pSrc[2];
          pOut_buf_cur += 3; pSrc += 3;
        } while ((int)(counter -= 3) > 2);
        if ((int)counter > 0)
        {
          pOut_buf_cur[0] = pSrc[0];
          if ((int)counter > 1)
            pOut_buf_cur[1] = pSrc[1];
          pOut_buf_cur += counter;
        }
      }
    }
  } while (!(r->m_final & 1));
  if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER)
  {
    TINFL_SKIP_BITS(32, num_bits & 7); for (counter = 0; counter < 4; ++counter) { mz_uint s; if (num_bits) TINFL_GET_BITS(41, s, 8); else TINFL_GET_BYTE(42, s); r->m_z_adler32 = (r->m_z_adler32 << 8) | s; }
  }
  TINFL_CR_RETURN_FOREVER(34, TINFL_STATUS_DONE);
  TINFL_CR_FINISH

common_exit:
  r->m_num_bits = num_bits; r->m_bit_buf = bit_buf; r->m_dist = dist; r->m_counter = counter; r->m_num_extra = num_extra; r->m_dist_from_out_buf_start = dist_from_out_buf_start;
  *pIn_buf_size = pIn_buf_cur - pIn_buf_next; *pOut_buf_size = pOut_buf_cur - pOut_buf_next;
  if ((decomp_flags & (TINFL_FLAG_PARSE_ZLIB_HEADER | TINFL_FLAG_COMPUTE_ADLER32)) && (status >= 0))
  {
    const mz_uint8 *ptr = pOut_buf_next; size_t buf_len = *pOut_buf_size;
    mz_uint32 i, s1 = r->m_check_adler32 & 0xffff, s2 = r->m_check_adler32 >> 16; size_t block_len = buf_len % 5552;
    while (buf_len)
    {
      for (i = 0; i + 7 < block_len; i += 8, ptr += 8)
      {
        s1 += ptr[0], s2 += s1; s1 += ptr[1], s2 += s1; s1 += ptr[2], s2 += s1; s1 += ptr[3], s2 += s1;
        s1 += ptr[4], s2 += s1; s1 += ptr[5], s2 += s1; s1 += ptr[6], s2 += s1; s1 += ptr[7], s2 += s1;
      }
      for ( ; i < block_len; ++i) s1 += *ptr++, s2 += s1;
      s1 %= 65521U, s2 %= 65521U; buf_len -= block_len; block_len = 5552;
    }
    r->m_check_adler32 = (s2 << 16) + s1; if ((status == TINFL_STATUS_DONE) && (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) && (r->m_check_adler32 != r->m_z_adler32)) status = TINFL_STATUS_ADLER32_MISMATCH;
  }
  return status;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2a0, %rsp            # imm = 0x2A0
movl 0x10(%rbp), %eax
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
addq (%rcx), %rax
movq %rax, -0x68(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
addq (%rcx), %rax
movq %rax, -0x78(%rbp)
movl 0x10(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x33d6
movq $-0x1, %rax
movq %rax, -0x208(%rbp)
jmp 0x33f3
movq -0x30(%rbp), %rax
movq -0x28(%rbp), %rcx
subq %rcx, %rax
movq -0x38(%rbp), %rcx
addq (%rcx), %rax
subq $0x1, %rax
movq %rax, -0x208(%rbp)
movq -0x208(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
addq $0x1, %rax
andq -0x80(%rbp), %rax
cmpq $0x0, %rax
jne 0x341a
movq -0x30(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0x343c
movq -0x38(%rbp), %rax
movq $0x0, (%rax)
movq -0x20(%rbp), %rax
movq $0x0, (%rax)
movl $0xfffffffd, -0x4(%rbp) # imm = 0xFFFFFFFD
jmp 0x5fb4
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
movl %eax, -0x44(%rbp)
movq -0x10(%rbp), %rax
movl 0x2c(%rax), %eax
movl %eax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x4c(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x88(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x210(%rbp)
subq $0x35, %rax
ja 0x5c52
movq -0x210(%rbp), %rax
leaq 0x8d2c(%rip), %rcx      # 0xc1d0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movl $0x0, 0xc(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x8(%rax)
movl $0x0, -0x4c(%rbp)
movl $0x0, -0x48(%rbp)
movl $0x0, -0x44(%rbp)
movl $0x0, -0x40(%rbp)
movq $0x0, -0x58(%rbp)
movq -0x10(%rbp), %rax
movl $0x1, 0x20(%rax)
movq -0x10(%rbp), %rax
movl $0x1, 0x10(%rax)
movl 0x10(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x3710
jmp 0x350e
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x3577
jmp 0x351a
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x3566
jmp 0x3527
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x1, (%rax)
jmp 0x5c54
jmp 0x353f
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x3564
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x8(%rax)
jmp 0x3575
jmp 0x3573
movq -0x10(%rbp), %rax
movl $0x0, 0x8(%rax)
jmp 0x3575
jmp 0x351a
jmp 0x3590
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x8(%rax)
jmp 0x3592
jmp 0x3594
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x35fd
jmp 0x35a0
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x35ec
jmp 0x35ad
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x2, (%rax)
jmp 0x5c54
jmp 0x35c5
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x35ea
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xc(%rax)
jmp 0x35fb
jmp 0x35f9
movq -0x10(%rbp), %rax
movl $0x0, 0xc(%rax)
jmp 0x35fb
jmp 0x35a0
jmp 0x3616
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xc(%rax)
jmp 0x3618
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
shll $0x8, %eax
movq -0x10(%rbp), %rcx
addl 0xc(%rcx), %eax
movl $0x1f, %ecx
xorl %edx, %edx
divl %ecx
movb $0x1, %al
cmpl $0x0, %edx
movb %al, -0x211(%rbp)
jne 0x366c
movq -0x10(%rbp), %rax
movl 0xc(%rax), %ecx
andl $0x20, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x211(%rbp)
jne 0x366c
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
andl $0xf, %eax
cmpl $0x8, %eax
setne %al
movb %al, -0x211(%rbp)
movb -0x211(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x48(%rbp)
movl 0x10(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jne 0x36e8
movq -0x10(%rbp), %rax
movl 0x8(%rax), %ecx
shrl $0x4, %ecx
addl $0x8, %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
movb $0x1, %al
cmpl $0x8000, %ecx           # imm = 0x8000
movb %al, -0x212(%rbp)
ja 0x36d7
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq -0x10(%rbp), %rcx
movl 0x8(%rcx), %ecx
shrl $0x4, %ecx
addl $0x8, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
movl %ecx, %ecx
cmpq %rcx, %rax
setb %al
movb %al, -0x212(%rbp)
movb -0x212(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
orl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
cmpl $0x0, -0x48(%rbp)
je 0x370e
jmp 0x36f0
jmp 0x36f2
jmp 0x36f4
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0x24, (%rax)
jmp 0x5c54
jmp 0x370c
jmp 0x36f2
jmp 0x3710
jmp 0x3712
jmp 0x3714
cmpl $0x3, -0x40(%rbp)
jae 0x37cc
jmp 0x3720
jmp 0x3722
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x3789
jmp 0x372e
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x3779
jmp 0x373b
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x3, (%rax)
jmp 0x5c54
jmp 0x3753
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x3777
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x8c(%rbp)
jmp 0x3787
jmp 0x3785
movl $0x0, -0x8c(%rbp)
jmp 0x3787
jmp 0x372e
jmp 0x37a1
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x8c(%rbp)
jmp 0x37a3
movl -0x8c(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
cmpl $0x3, -0x40(%rbp)
jb 0x3720
jmp 0x37cc
movq -0x58(%rbp), %rax
andq $0x7, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x58(%rbp), %rax
shrq $0x3, %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
subl $0x3, %eax
movl %eax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movl 0x18(%rax), %ecx
shrl %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x1c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x1c(%rax)
jne 0x3df0
jmp 0x3812
movl -0x40(%rbp), %eax
movl -0x40(%rbp), %ecx
andl $0x7, %ecx
cmpl %ecx, %eax
jae 0x38d8
jmp 0x3825
jmp 0x3827
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x388e
jmp 0x3833
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x387e
jmp 0x3840
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x5, (%rax)
jmp 0x5c54
jmp 0x3858
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x387c
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x90(%rbp)
jmp 0x388c
jmp 0x388a
movl $0x0, -0x90(%rbp)
jmp 0x388c
jmp 0x3833
jmp 0x38a6
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x90(%rbp)
jmp 0x38a8
movl -0x90(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
movl -0x40(%rbp), %ecx
andl $0x7, %ecx
cmpl %ecx, %eax
jb 0x3825
jmp 0x38d8
movl -0x40(%rbp), %ecx
andl $0x7, %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %ecx
andl $0x7, %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl $0x0, -0x48(%rbp)
cmpl $0x4, -0x48(%rbp)
jae 0x3aaa
cmpl $0x0, -0x40(%rbp)
je 0x3a02
jmp 0x3916
cmpl $0x8, -0x40(%rbp)
jae 0x39ce
jmp 0x3922
jmp 0x3924
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x398b
jmp 0x3930
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x397b
jmp 0x393d
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x6, (%rax)
jmp 0x5c54
jmp 0x3955
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x3979
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x94(%rbp)
jmp 0x3989
jmp 0x3987
movl $0x0, -0x94(%rbp)
jmp 0x3989
jmp 0x3930
jmp 0x39a3
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x94(%rbp)
jmp 0x39a5
movl -0x94(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
cmpl $0x8, -0x40(%rbp)
jb 0x3922
jmp 0x39ce
movq -0x58(%rbp), %rax
andq $0xff, %rax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x48(%rbp), %ecx
movb %dl, 0x2930(%rax,%rcx)
movq -0x58(%rbp), %rax
shrq $0x8, %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
subl $0x8, %eax
movl %eax, -0x40(%rbp)
jmp 0x3a9a
jmp 0x3a04
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x3a77
jmp 0x3a10
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x3a62
jmp 0x3a1d
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x7, (%rax)
jmp 0x5c54
jmp 0x3a35
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x3a60
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movb (%rax), %dl
movq -0x10(%rbp), %rax
movl -0x48(%rbp), %ecx
movb %dl, 0x2930(%rax,%rcx)
jmp 0x3a75
jmp 0x3a73
movq -0x10(%rbp), %rax
movl -0x48(%rbp), %ecx
movb $0x0, 0x2930(%rax,%rcx)
jmp 0x3a75
jmp 0x3a10
jmp 0x3a96
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movb (%rax), %dl
movq -0x10(%rbp), %rax
movl -0x48(%rbp), %ecx
movb %dl, 0x2930(%rax,%rcx)
jmp 0x3a98
jmp 0x3a9a
jmp 0x3a9c
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x3900
movq -0x10(%rbp), %rax
movzbl 0x2930(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0x2931(%rcx), %ecx
shll $0x8, %ecx
orl %ecx, %eax
movl %eax, -0x48(%rbp)
movq -0x10(%rbp), %rcx
movzbl 0x2932(%rcx), %ecx
movq -0x10(%rbp), %rdx
movzbl 0x2933(%rdx), %edx
shll $0x8, %edx
orl %edx, %ecx
xorl $0xffff, %ecx           # imm = 0xFFFF
cmpl %ecx, %eax
je 0x3b0d
jmp 0x3aef
jmp 0x3af1
jmp 0x3af3
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0x27, (%rax)
jmp 0x5c54
jmp 0x3b0b
jmp 0x3af1
jmp 0x3b0f
xorl %eax, %eax
cmpl $0x0, -0x48(%rbp)
movb %al, -0x213(%rbp)
je 0x3b2a
cmpl $0x0, -0x40(%rbp)
setne %al
movb %al, -0x213(%rbp)
movb -0x213(%rbp), %al
testb $0x1, %al
jne 0x3b39
jmp 0x3c61
jmp 0x3b3b
cmpl $0x8, -0x40(%rbp)
jae 0x3bf3
jmp 0x3b47
jmp 0x3b49
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x3bb0
jmp 0x3b55
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x3ba0
jmp 0x3b62
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x33, (%rax)
jmp 0x5c54
jmp 0x3b7a
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x3b9e
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x98(%rbp)
jmp 0x3bae
jmp 0x3bac
movl $0x0, -0x98(%rbp)
jmp 0x3bae
jmp 0x3b55
jmp 0x3bc8
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x98(%rbp)
jmp 0x3bca
movl -0x98(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
cmpl $0x8, -0x40(%rbp)
jb 0x3b47
jmp 0x3bf3
movq -0x58(%rbp), %rax
andq $0xff, %rax
movl %eax, -0x44(%rbp)
movq -0x58(%rbp), %rax
shrq $0x8, %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
subl $0x8, %eax
movl %eax, -0x40(%rbp)
jmp 0x3c17
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jb 0x3c3d
jmp 0x3c23
movl $0x2, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x34, (%rax)
jmp 0x5c54
jmp 0x3c3b
jmp 0x3c17
movl -0x44(%rbp), %eax
movb %al, %cl
movq -0x70(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x70(%rbp)
movb %cl, (%rax)
movl -0x48(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x3b0f
jmp 0x3c63
cmpl $0x0, -0x48(%rbp)
je 0x3deb
jmp 0x3c6f
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jb 0x3c95
jmp 0x3c7b
movl $0x2, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x9, (%rax)
jmp 0x5c54
jmp 0x3c93
jmp 0x3c6f
jmp 0x3c97
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x3cea
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x3cc8
jmp 0x3cae
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x26, (%rax)
jmp 0x5c54
jmp 0x3cc6
jmp 0x3ce8
jmp 0x3cca
jmp 0x3ccc
jmp 0x3cce
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0x28, (%rax)
jmp 0x5c54
jmp 0x3ce6
jmp 0x3ccc
jmp 0x3c97
movq -0x78(%rbp), %rax
movq -0x70(%rbp), %rcx
subq %rcx, %rax
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %rdx
subq %rdx, %rcx
cmpq %rcx, %rax
jae 0x3d19
movq -0x78(%rbp), %rax
movq -0x70(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x220(%rbp)
jmp 0x3d2b
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x220(%rbp)
movq -0x220(%rbp), %rax
movl -0x48(%rbp), %ecx
cmpq %rcx, %rax
jae 0x3d8b
movq -0x78(%rbp), %rax
movq -0x70(%rbp), %rcx
subq %rcx, %rax
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %rdx
subq %rdx, %rcx
cmpq %rcx, %rax
jae 0x3d69
movq -0x78(%rbp), %rax
movq -0x70(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x228(%rbp)
jmp 0x3d7b
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x228(%rbp)
movq -0x228(%rbp), %rax
movq %rax, -0x230(%rbp)
jmp 0x3d95
movl -0x48(%rbp), %eax
movq %rax, -0x230(%rbp)
movq -0x230(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x70(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq -0xa0(%rbp), %rdx
callq 0x10d0
movq -0xa0(%rbp), %rax
addq -0x60(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0xa0(%rbp), %rax
addq -0x70(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0xa0(%rbp), %rax
movl %eax, %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
jmp 0x3c63
jmp 0x5976
movq -0x10(%rbp), %rax
cmpl $0x3, 0x1c(%rax)
jne 0x3e1a
jmp 0x3dfc
jmp 0x3dfe
jmp 0x3e00
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0xa, (%rax)
jmp 0x5c54
jmp 0x3e18
jmp 0x3dfe
movq -0x10(%rbp), %rax
cmpl $0x1, 0x1c(%rax)
jne 0x3f54
movq -0x10(%rbp), %rax
addq $0x50, %rax
movq %rax, -0xa8(%rbp)
movq -0x10(%rbp), %rax
movl $0x120, 0x34(%rax)      # imm = 0x120
movq -0x10(%rbp), %rax
movl $0x20, 0x38(%rax)
movq -0x10(%rbp), %rdi
addq $0x50, %rdi
addq $0xda0, %rdi            # imm = 0xDA0
movl $0x5, %esi
movl $0x20, %edx
callq 0x1090
movl $0x0, -0xac(%rbp)
cmpl $0x8f, -0xac(%rbp)
ja 0x3eaa
movq -0xa8(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0xa8(%rbp)
movb $0x8, (%rax)
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0x3e75
jmp 0x3eac
cmpl $0xff, -0xac(%rbp)
ja 0x3ee1
movq -0xa8(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0xa8(%rbp)
movb $0x9, (%rax)
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0x3eac
jmp 0x3ee3
cmpl $0x117, -0xac(%rbp)     # imm = 0x117
ja 0x3f18
movq -0xa8(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0xa8(%rbp)
movb $0x7, (%rax)
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0x3ee3
jmp 0x3f1a
cmpl $0x11f, -0xac(%rbp)     # imm = 0x11F
ja 0x3f4f
movq -0xa8(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0xa8(%rbp)
movb $0x8, (%rax)
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0x3f1a
jmp 0x4220
movl $0x0, -0x48(%rbp)
cmpl $0x3, -0x48(%rbp)
jae 0x40d5
jmp 0x3f67
movl -0x40(%rbp), %eax
movl -0x48(%rbp), %ecx
movl %ecx, %edx
leaq 0x8eb5(%rip), %rcx      # 0xce2b
movsbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
jae 0x4041
jmp 0x3f84
jmp 0x3f86
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x3fed
jmp 0x3f92
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x3fdd
jmp 0x3f9f
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0xb, (%rax)
jmp 0x5c54
jmp 0x3fb7
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x3fdb
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0xb0(%rbp)
jmp 0x3feb
jmp 0x3fe9
movl $0x0, -0xb0(%rbp)
jmp 0x3feb
jmp 0x3f92
jmp 0x4005
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0xb0(%rbp)
jmp 0x4007
movl -0xb0(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
movl -0x48(%rbp), %ecx
movl %ecx, %edx
leaq 0x8df8(%rip), %rcx      # 0xce2b
movsbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
jb 0x3f84
jmp 0x4041
movq -0x58(%rbp), %rax
movl -0x48(%rbp), %ecx
movl %ecx, %edx
leaq 0x8dda(%rip), %rcx      # 0xce2b
movsbl (%rcx,%rdx), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
andq %rcx, %rax
movl %eax, %edx
movq -0x10(%rbp), %rax
movl -0x48(%rbp), %ecx
movl %edx, 0x34(%rax,%rcx,4)
movl -0x48(%rbp), %eax
movl %eax, %ecx
leaq 0x8dab(%rip), %rax      # 0xce2b
movsbl (%rax,%rcx), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x58(%rbp)
movl -0x48(%rbp), %eax
movl %eax, %ecx
leaq 0x8d8e(%rip), %rax      # 0xce2b
movsbl (%rax,%rcx), %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x48(%rbp), %eax
movl %eax, %ecx
leaq 0x844f(%rip), %rax      # 0xc504
movl (%rax,%rcx,4), %edx
movq -0x10(%rbp), %rax
movl -0x48(%rbp), %ecx
addl 0x34(%rax,%rcx,4), %edx
movl %edx, 0x34(%rax,%rcx,4)
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x3f5b
movq -0x10(%rbp), %rdi
addq $0x50, %rdi
addq $0x1b40, %rdi           # imm = 0x1B40
xorl %esi, %esi
movl $0x120, %edx            # imm = 0x120
callq 0x1090
movl $0x0, -0x48(%rbp)
movl -0x48(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x3c(%rcx), %eax
jae 0x4215
jmp 0x4109
cmpl $0x3, -0x40(%rbp)
jae 0x41c1
jmp 0x4115
jmp 0x4117
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x417e
jmp 0x4123
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x416e
jmp 0x4130
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0xe, (%rax)
jmp 0x5c54
jmp 0x4148
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x416c
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0xb8(%rbp)
jmp 0x417c
jmp 0x417a
movl $0x0, -0xb8(%rbp)
jmp 0x417c
jmp 0x4123
jmp 0x4196
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0xb8(%rbp)
jmp 0x4198
movl -0xb8(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
cmpl $0x3, -0x40(%rbp)
jb 0x4115
jmp 0x41c1
movq -0x58(%rbp), %rax
andq $0x7, %rax
movl %eax, -0xb4(%rbp)
movq -0x58(%rbp), %rax
shrq $0x3, %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
subl $0x3, %eax
movl %eax, -0x40(%rbp)
movl -0xb4(%rbp), %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x48(%rbp), %ecx
movl %ecx, %esi
leaq 0x82f4(%rip), %rcx      # 0xc4f0
movzbl (%rcx,%rsi), %ecx
movb %dl, 0x1b90(%rax,%rcx)
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x40f7
movq -0x10(%rbp), %rax
movl $0x13, 0x3c(%rax)
jmp 0x4222
movq -0x10(%rbp), %rax
cmpl $0x0, 0x1c(%rax)
jl 0x4c26
movq -0x10(%rbp), %rax
addq $0x50, %rax
movq -0x10(%rbp), %rcx
movl 0x1c(%rcx), %ecx
imulq $0xda0, %rcx, %rcx      # imm = 0xDA0
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
leaq -0x160(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x1090
movq -0xc8(%rbp), %rdi
addq $0x120, %rdi            # imm = 0x120
xorl %esi, %esi
movl $0x800, %edx            # imm = 0x800
callq 0x1090
movq -0xc8(%rbp), %rdi
addq $0x920, %rdi            # imm = 0x920
xorl %esi, %esi
movl $0x480, %edx            # imm = 0x480
callq 0x1090
movl $0x0, -0xcc(%rbp)
movl -0xcc(%rbp), %eax
movq -0x10(%rbp), %rcx
movq -0x10(%rbp), %rdx
movl 0x1c(%rdx), %edx
cmpl 0x34(%rcx,%rdx,4), %eax
jae 0x42eb
movq -0xc8(%rbp), %rax
movl -0xcc(%rbp), %ecx
movzbl (%rax,%rcx), %eax
movl -0x160(%rbp,%rax,4), %ecx
addl $0x1, %ecx
movl %ecx, -0x160(%rbp,%rax,4)
movl -0xcc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xcc(%rbp)
jmp 0x42a1
movl $0x0, -0xd4(%rbp)
movl $0x0, -0xd8(%rbp)
movl $0x0, -0x11c(%rbp)
movl $0x0, -0x120(%rbp)
movl $0x1, -0xcc(%rbp)
cmpl $0xf, -0xcc(%rbp)
ja 0x437d
movl -0xcc(%rbp), %eax
movl -0x160(%rbp,%rax,4), %eax
addl -0xd4(%rbp), %eax
movl %eax, -0xd4(%rbp)
movl -0xd8(%rbp), %ecx
movl -0xcc(%rbp), %eax
addl -0x160(%rbp,%rax,4), %ecx
shll %ecx
movl %ecx, -0xd8(%rbp)
movl -0xcc(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %ecx, -0x120(%rbp,%rax,4)
movl -0xcc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xcc(%rbp)
jmp 0x431d
movl $0x10000, %eax          # imm = 0x10000
cmpl -0xd8(%rbp), %eax
je 0x43b3
cmpl $0x1, -0xd4(%rbp)
jbe 0x43b3
jmp 0x4395
jmp 0x4397
jmp 0x4399
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0x23, (%rax)
jmp 0x5c54
jmp 0x43b1
jmp 0x4397
movl $0xffffffff, -0xbc(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0xdc(%rbp)
movl -0xdc(%rbp), %eax
movq -0x10(%rbp), %rcx
movq -0x10(%rbp), %rdx
movl 0x1c(%rdx), %edx
cmpl 0x34(%rcx,%rdx,4), %eax
jae 0x468c
movl $0x0, -0x164(%rbp)
movq -0xc8(%rbp), %rax
movl -0xdc(%rbp), %ecx
movzbl (%rax,%rcx), %eax
movl %eax, -0x170(%rbp)
cmpl $0x0, -0x170(%rbp)
jne 0x4411
jmp 0x4678
movl -0x170(%rbp), %eax
movl %eax, %ecx
movl -0x120(%rbp,%rcx,4), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x120(%rbp,%rcx,4)
movl %eax, -0x16c(%rbp)
movl -0x170(%rbp), %eax
movl %eax, -0x168(%rbp)
cmpl $0x0, -0x168(%rbp)
jbe 0x447f
movl -0x164(%rbp), %eax
shll %eax
movl -0x16c(%rbp), %ecx
andl $0x1, %ecx
orl %ecx, %eax
movl %eax, -0x164(%rbp)
movl -0x168(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x168(%rbp)
movl -0x16c(%rbp), %eax
shrl %eax
movl %eax, -0x16c(%rbp)
jmp 0x443e
cmpl $0xa, -0x170(%rbp)
ja 0x44e6
movl -0x170(%rbp), %eax
shll $0x9, %eax
orl -0xdc(%rbp), %eax
movw %ax, -0x172(%rbp)
cmpl $0x400, -0x164(%rbp)    # imm = 0x400
jae 0x44e1
movw -0x172(%rbp), %dx
movq -0xc8(%rbp), %rax
movl -0x164(%rbp), %ecx
movw %dx, 0x120(%rax,%rcx,2)
movl -0x170(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
addl -0x164(%rbp), %eax
movl %eax, -0x164(%rbp)
jmp 0x449e
jmp 0x4678
movq -0xc8(%rbp), %rax
movl -0x164(%rbp), %ecx
andl $0x3ff, %ecx            # imm = 0x3FF
movl %ecx, %ecx
movswl 0x120(%rax,%rcx,2), %ecx
movl %ecx, -0xc0(%rbp)
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x4550
movl -0xbc(%rbp), %eax
movw %ax, %dx
movq -0xc8(%rbp), %rax
movl -0x164(%rbp), %ecx
andl $0x3ff, %ecx            # imm = 0x3FF
movl %ecx, %ecx
movw %dx, 0x120(%rax,%rcx,2)
movl -0xbc(%rbp), %eax
movl %eax, -0xc0(%rbp)
movl -0xbc(%rbp), %eax
subl $0x2, %eax
movl %eax, -0xbc(%rbp)
movl -0x164(%rbp), %eax
shrl $0x9, %eax
movl %eax, -0x164(%rbp)
movl -0x170(%rbp), %eax
movl %eax, -0xd0(%rbp)
cmpl $0xb, -0xd0(%rbp)
jbe 0x4633
movl -0x164(%rbp), %ecx
shrl %ecx
movl %ecx, -0x164(%rbp)
andl $0x1, %ecx
movl -0xc0(%rbp), %eax
subl %ecx, %eax
movl %eax, -0xc0(%rbp)
movq -0xc8(%rbp), %rax
xorl %ecx, %ecx
subl -0xc0(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
cmpw $0x0, 0x920(%rax,%rcx,2)
jne 0x45fa
movl -0xbc(%rbp), %eax
movw %ax, %dx
movq -0xc8(%rbp), %rax
xorl %ecx, %ecx
subl -0xc0(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movw %dx, 0x920(%rax,%rcx,2)
movl -0xbc(%rbp), %eax
movl %eax, -0xc0(%rbp)
movl -0xbc(%rbp), %eax
subl $0x2, %eax
movl %eax, -0xbc(%rbp)
jmp 0x461d
movq -0xc8(%rbp), %rax
xorl %ecx, %ecx
subl -0xc0(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movswl 0x920(%rax,%rcx,2), %eax
movl %eax, -0xc0(%rbp)
jmp 0x461f
movl -0xd0(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xd0(%rbp)
jmp 0x456b
movl -0x164(%rbp), %ecx
shrl %ecx
movl %ecx, -0x164(%rbp)
andl $0x1, %ecx
movl -0xc0(%rbp), %eax
subl %ecx, %eax
movl %eax, -0xc0(%rbp)
movl -0xdc(%rbp), %eax
movw %ax, %dx
movq -0xc8(%rbp), %rax
xorl %ecx, %ecx
subl -0xc0(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movw %dx, 0x920(%rax,%rcx,2)
movl -0xdc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xdc(%rbp)
jmp 0x43c7
movq -0x10(%rbp), %rax
cmpl $0x2, 0x1c(%rax)
jne 0x4c12
movl $0x0, -0x48(%rbp)
movl -0x48(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x34(%rcx), %ecx
movq -0x10(%rbp), %rdx
addl 0x38(%rdx), %ecx
cmpl %ecx, %eax
jae 0x4b8c
jmp 0x46bc
cmpl $0xf, -0x40(%rbp)
jae 0x48c8
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
subq %rcx, %rax
cmpq $0x2, %rax
jge 0x4881
jmp 0x46dd
movq -0x10(%rbp), %rax
movq -0x58(%rbp), %rcx
andq $0x3ff, %rcx            # imm = 0x3FF
movswl 0x1cb0(%rax,%rcx,2), %eax
movl %eax, -0x17c(%rbp)
cmpl $0x0, -0x17c(%rbp)
jl 0x4730
movl -0x17c(%rbp), %eax
sarl $0x9, %eax
movl %eax, -0x180(%rbp)
cmpl $0x0, -0x180(%rbp)
je 0x472b
movl -0x40(%rbp), %eax
cmpl -0x180(%rbp), %eax
jb 0x472b
jmp 0x487f
jmp 0x47d5
cmpl $0xa, -0x40(%rbp)
jbe 0x47d3
movl $0xa, -0x180(%rbp)
movq -0x10(%rbp), %rax
movl -0x17c(%rbp), %ecx
xorl $-0x1, %ecx
movslq %ecx, %rcx
movq %rcx, -0x238(%rbp)
movq -0x58(%rbp), %rdx
movl -0x180(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x180(%rbp)
movl %ecx, %ecx
shrq %cl, %rdx
movq -0x238(%rbp), %rcx
andq $0x1, %rdx
addq %rdx, %rcx
movswl 0x24b0(%rax,%rcx,2), %eax
movl %eax, -0x17c(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x17c(%rbp)
movb %al, -0x239(%rbp)
jge 0x47b9
movl -0x40(%rbp), %eax
movl -0x180(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
setae %al
movb %al, -0x239(%rbp)
movb -0x239(%rbp), %al
testb $0x1, %al
jne 0x4744
cmpl $0x0, -0x17c(%rbp)
jl 0x47d1
jmp 0x487f
jmp 0x47d3
jmp 0x47d5
jmp 0x47d7
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x483e
jmp 0x47e3
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x482e
jmp 0x47f0
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x10, (%rax)
jmp 0x5c54
jmp 0x4808
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x482c
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x184(%rbp)
jmp 0x483c
jmp 0x483a
movl $0x0, -0x184(%rbp)
jmp 0x483c
jmp 0x47e3
jmp 0x4856
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x184(%rbp)
jmp 0x4858
movl -0x184(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
cmpl $0xf, -0x40(%rbp)
jb 0x46dd
jmp 0x48c6
movq -0x60(%rbp), %rax
movzbl (%rax), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
movq -0x60(%rbp), %rcx
movzbl 0x1(%rcx), %ecx
movl %ecx, %edx
movl -0x40(%rbp), %ecx
addl $0x8, %ecx
movl %ecx, %ecx
shlq %cl, %rdx
movq %rdx, %rcx
orq %rcx, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x60(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x60(%rbp)
movl -0x40(%rbp), %eax
addl $0x10, %eax
movl %eax, -0x40(%rbp)
jmp 0x48c8
movq -0x10(%rbp), %rax
movq -0x58(%rbp), %rcx
andq $0x3ff, %rcx            # imm = 0x3FF
movswl 0x1cb0(%rax,%rcx,2), %eax
movl %eax, -0x17c(%rbp)
cmpl $0x0, %eax
jl 0x490c
movl -0x17c(%rbp), %eax
sarl $0x9, %eax
movl %eax, -0x180(%rbp)
movl -0x17c(%rbp), %eax
andl $0x1ff, %eax            # imm = 0x1FF
movl %eax, -0x17c(%rbp)
jmp 0x496e
movl $0xa, -0x180(%rbp)
movq -0x10(%rbp), %rax
movl -0x17c(%rbp), %ecx
xorl $-0x1, %ecx
movslq %ecx, %rcx
movq %rcx, -0x248(%rbp)
movq -0x58(%rbp), %rdx
movl -0x180(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x180(%rbp)
movl %ecx, %ecx
shrq %cl, %rdx
movq -0x248(%rbp), %rcx
andq $0x1, %rdx
addq %rdx, %rcx
movswl 0x24b0(%rax,%rcx,2), %eax
movl %eax, -0x17c(%rbp)
cmpl $0x0, -0x17c(%rbp)
jl 0x4916
jmp 0x496e
movl -0x17c(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x180(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x58(%rbp)
movl -0x180(%rbp), %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
cmpl $0x10, -0x44(%rbp)
jae 0x49c0
movl -0x44(%rbp), %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x48(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x48(%rbp)
movl %ecx, %ecx
movb %dl, 0x2934(%rax,%rcx)
jmp 0x46a1
cmpl $0x10, -0x44(%rbp)
jne 0x49ec
cmpl $0x0, -0x48(%rbp)
jne 0x49ec
jmp 0x49ce
jmp 0x49d0
jmp 0x49d2
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0x11, (%rax)
jmp 0x5c54
jmp 0x49ea
jmp 0x49d0
movl -0x44(%rbp), %eax
subl $0x10, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0x8432(%rip), %rax      # 0xce2f
movsbl (%rax,%rcx), %eax
movl %eax, -0x4c(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jae 0x4ac0
jmp 0x4a12
jmp 0x4a14
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x4a7b
jmp 0x4a20
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x4a6b
jmp 0x4a2d
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x12, (%rax)
jmp 0x5c54
jmp 0x4a45
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x4a69
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x188(%rbp)
jmp 0x4a79
jmp 0x4a77
movl $0x0, -0x188(%rbp)
jmp 0x4a79
jmp 0x4a20
jmp 0x4a93
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x188(%rbp)
jmp 0x4a95
movl -0x188(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jb 0x4a12
jmp 0x4ac0
movq -0x58(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
andq %rcx, %rax
movl %eax, -0x178(%rbp)
movl -0x4c(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x58(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x44(%rbp), %eax
subl $0x10, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0x8328(%rip), %rax      # 0xce33
movsbl (%rax,%rcx), %eax
addl -0x178(%rbp), %eax
movl %eax, -0x178(%rbp)
movq -0x10(%rbp), %rax
addq $0x2934, %rax           # imm = 0x2934
movl -0x48(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0x250(%rbp)
cmpl $0x10, -0x44(%rbp)
jne 0x4b54
movq -0x10(%rbp), %rax
movl -0x48(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movzbl 0x2934(%rax,%rcx), %eax
movl %eax, -0x254(%rbp)
jmp 0x4b5e
xorl %eax, %eax
movl %eax, -0x254(%rbp)
jmp 0x4b5e
movq -0x250(%rbp), %rdi
movl -0x254(%rbp), %eax
movl -0x178(%rbp), %ecx
movl %ecx, %edx
movzbl %al, %esi
callq 0x1090
movl -0x178(%rbp), %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
jmp 0x46a1
movq -0x10(%rbp), %rax
movl 0x34(%rax), %eax
movq -0x10(%rbp), %rcx
addl 0x38(%rcx), %eax
cmpl -0x48(%rbp), %eax
je 0x4bbf
jmp 0x4ba1
jmp 0x4ba3
jmp 0x4ba5
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0x15, (%rax)
jmp 0x5c54
jmp 0x4bbd
jmp 0x4ba3
movq -0x10(%rbp), %rdi
addq $0x50, %rdi
movq -0x10(%rbp), %rsi
addq $0x2934, %rsi           # imm = 0x2934
movq -0x10(%rbp), %rax
movl 0x34(%rax), %eax
movl %eax, %edx
callq 0x10d0
movq -0x10(%rbp), %rdi
addq $0x50, %rdi
addq $0xda0, %rdi            # imm = 0xDA0
movq -0x10(%rbp), %rsi
addq $0x2934, %rsi           # imm = 0x2934
movq -0x10(%rbp), %rax
movl 0x34(%rax), %eax
addq %rax, %rsi
movq -0x10(%rbp), %rax
movl 0x38(%rax), %eax
movl %eax, %edx
callq 0x10d0
jmp 0x4c14
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x1c(%rax)
jmp 0x4222
jmp 0x4c28
jmp 0x4c2a
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
subq %rcx, %rax
cmpq $0x4, %rax
jl 0x4c50
movq -0x78(%rbp), %rax
movq -0x70(%rbp), %rcx
subq %rcx, %rax
cmpq $0x2, %rax
jge 0x4f7f
jmp 0x4c52
cmpl $0xf, -0x40(%rbp)
jae 0x4e5e
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
subq %rcx, %rax
cmpq $0x2, %rax
jge 0x4e17
jmp 0x4c73
movq -0x10(%rbp), %rax
movq -0x58(%rbp), %rcx
andq $0x3ff, %rcx            # imm = 0x3FF
movswl 0x170(%rax,%rcx,2), %eax
movl %eax, -0x194(%rbp)
cmpl $0x0, -0x194(%rbp)
jl 0x4cc6
movl -0x194(%rbp), %eax
sarl $0x9, %eax
movl %eax, -0x198(%rbp)
cmpl $0x0, -0x198(%rbp)
je 0x4cc1
movl -0x40(%rbp), %eax
cmpl -0x198(%rbp), %eax
jb 0x4cc1
jmp 0x4e15
jmp 0x4d6b
cmpl $0xa, -0x40(%rbp)
jbe 0x4d69
movl $0xa, -0x198(%rbp)
movq -0x10(%rbp), %rax
movl -0x194(%rbp), %ecx
xorl $-0x1, %ecx
movslq %ecx, %rcx
movq %rcx, -0x260(%rbp)
movq -0x58(%rbp), %rdx
movl -0x198(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x198(%rbp)
movl %ecx, %ecx
shrq %cl, %rdx
movq -0x260(%rbp), %rcx
andq $0x1, %rdx
addq %rdx, %rcx
movswl 0x970(%rax,%rcx,2), %eax
movl %eax, -0x194(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x194(%rbp)
movb %al, -0x261(%rbp)
jge 0x4d4f
movl -0x40(%rbp), %eax
movl -0x198(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
setae %al
movb %al, -0x261(%rbp)
movb -0x261(%rbp), %al
testb $0x1, %al
jne 0x4cda
cmpl $0x0, -0x194(%rbp)
jl 0x4d67
jmp 0x4e15
jmp 0x4d69
jmp 0x4d6b
jmp 0x4d6d
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x4dd4
jmp 0x4d79
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x4dc4
jmp 0x4d86
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x17, (%rax)
jmp 0x5c54
jmp 0x4d9e
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x4dc2
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x19c(%rbp)
jmp 0x4dd2
jmp 0x4dd0
movl $0x0, -0x19c(%rbp)
jmp 0x4dd2
jmp 0x4d79
jmp 0x4dec
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x19c(%rbp)
jmp 0x4dee
movl -0x19c(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
cmpl $0xf, -0x40(%rbp)
jb 0x4c73
jmp 0x4e5c
movq -0x60(%rbp), %rax
movzbl (%rax), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
movq -0x60(%rbp), %rcx
movzbl 0x1(%rcx), %ecx
movl %ecx, %edx
movl -0x40(%rbp), %ecx
addl $0x8, %ecx
movl %ecx, %ecx
shlq %cl, %rdx
movq %rdx, %rcx
orq %rcx, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x60(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x60(%rbp)
movl -0x40(%rbp), %eax
addl $0x10, %eax
movl %eax, -0x40(%rbp)
jmp 0x4e5e
movq -0x10(%rbp), %rax
movq -0x58(%rbp), %rcx
andq $0x3ff, %rcx            # imm = 0x3FF
movswl 0x170(%rax,%rcx,2), %eax
movl %eax, -0x194(%rbp)
cmpl $0x0, %eax
jl 0x4ea2
movl -0x194(%rbp), %eax
sarl $0x9, %eax
movl %eax, -0x198(%rbp)
movl -0x194(%rbp), %eax
andl $0x1ff, %eax            # imm = 0x1FF
movl %eax, -0x194(%rbp)
jmp 0x4f04
movl $0xa, -0x198(%rbp)
movq -0x10(%rbp), %rax
movl -0x194(%rbp), %ecx
xorl $-0x1, %ecx
movslq %ecx, %rcx
movq %rcx, -0x270(%rbp)
movq -0x58(%rbp), %rdx
movl -0x198(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x198(%rbp)
movl %ecx, %ecx
shrq %cl, %rdx
movq -0x270(%rbp), %rcx
andq $0x1, %rdx
addq %rdx, %rcx
movswl 0x970(%rax,%rcx,2), %eax
movl %eax, -0x194(%rbp)
cmpl $0x0, -0x194(%rbp)
jl 0x4eac
jmp 0x4f04
movl -0x194(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x198(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x58(%rbp)
movl -0x198(%rbp), %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
cmpl $0x100, -0x48(%rbp)     # imm = 0x100
jb 0x4f3c
jmp 0x5187
jmp 0x4f3e
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jb 0x4f64
jmp 0x4f4a
movl $0x2, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x18, (%rax)
jmp 0x5c54
jmp 0x4f62
jmp 0x4f3e
movl -0x48(%rbp), %eax
movb %al, %cl
movq -0x70(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x70(%rbp)
movb %cl, (%rax)
jmp 0x5182
cmpl $0x1e, -0x40(%rbp)
jae 0x4fae
movq -0x60(%rbp), %rax
movl (%rax), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x60(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x60(%rbp)
movl -0x40(%rbp), %eax
addl $0x20, %eax
movl %eax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq -0x58(%rbp), %rcx
andq $0x3ff, %rcx            # imm = 0x3FF
movswl 0x170(%rax,%rcx,2), %eax
movl %eax, -0x1a0(%rbp)
cmpl $0x0, %eax
jl 0x4fe1
movl -0x1a0(%rbp), %eax
sarl $0x9, %eax
movl %eax, -0x1a4(%rbp)
jmp 0x5043
movl $0xa, -0x1a4(%rbp)
movq -0x10(%rbp), %rax
movl -0x1a0(%rbp), %ecx
xorl $-0x1, %ecx
movslq %ecx, %rcx
movq %rcx, -0x278(%rbp)
movq -0x58(%rbp), %rdx
movl -0x1a4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x1a4(%rbp)
movl %ecx, %ecx
shrq %cl, %rdx
movq -0x278(%rbp), %rcx
andq $0x1, %rdx
addq %rdx, %rcx
movswl 0x970(%rax,%rcx,2), %eax
movl %eax, -0x1a0(%rbp)
cmpl $0x0, -0x1a0(%rbp)
jl 0x4feb
jmp 0x5043
movl -0x1a0(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x1a4(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x58(%rbp)
movl -0x1a4(%rbp), %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x48(%rbp), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x507f
jmp 0x5187
movq -0x10(%rbp), %rax
movq -0x58(%rbp), %rcx
andq $0x3ff, %rcx            # imm = 0x3FF
movswl 0x170(%rax,%rcx,2), %eax
movl %eax, -0x1a0(%rbp)
cmpl $0x0, %eax
jl 0x50b2
movl -0x1a0(%rbp), %eax
sarl $0x9, %eax
movl %eax, -0x1a4(%rbp)
jmp 0x5114
movl $0xa, -0x1a4(%rbp)
movq -0x10(%rbp), %rax
movl -0x1a0(%rbp), %ecx
xorl $-0x1, %ecx
movslq %ecx, %rcx
movq %rcx, -0x280(%rbp)
movq -0x58(%rbp), %rdx
movl -0x1a4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x1a4(%rbp)
movl %ecx, %ecx
shrq %cl, %rdx
movq -0x280(%rbp), %rcx
andq $0x1, %rdx
addq %rdx, %rcx
movswl 0x970(%rax,%rcx,2), %eax
movl %eax, -0x1a0(%rbp)
cmpl $0x0, -0x1a0(%rbp)
jl 0x50bc
jmp 0x5114
movl -0x1a4(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x58(%rbp)
movl -0x1a4(%rbp), %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x48(%rbp), %eax
movb %al, %cl
movq -0x70(%rbp), %rax
movb %cl, (%rax)
movl -0x1a0(%rbp), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x5167
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
movl -0x1a0(%rbp), %eax
movl %eax, -0x48(%rbp)
jmp 0x5187
movl -0x1a0(%rbp), %eax
movb %al, %cl
movq -0x70(%rbp), %rax
movb %cl, 0x1(%rax)
movq -0x70(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x70(%rbp)
jmp 0x4c2a
movl -0x48(%rbp), %eax
andl $0x1ff, %eax            # imm = 0x1FF
movl %eax, -0x48(%rbp)
cmpl $0x100, %eax            # imm = 0x100
jne 0x519e
jmp 0x5972
movl -0x48(%rbp), %eax
subl $0x101, %eax            # imm = 0x101
movl %eax, %eax
movl %eax, %ecx
leaq 0x71bf(%rip), %rax      # 0xc370
movl (%rax,%rcx,4), %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %eax
subl $0x101, %eax            # imm = 0x101
movl %eax, %eax
movl %eax, %ecx
leaq 0x7126(%rip), %rax      # 0xc2f0
movl (%rax,%rcx,4), %eax
movl %eax, -0x48(%rbp)
cmpl $0x0, -0x4c(%rbp)
je 0x52de
jmp 0x51dc
movl -0x40(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jae 0x5298
jmp 0x51ea
jmp 0x51ec
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x5253
jmp 0x51f8
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5243
jmp 0x5205
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x19, (%rax)
jmp 0x5c54
jmp 0x521d
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x5241
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1ac(%rbp)
jmp 0x5251
jmp 0x524f
movl $0x0, -0x1ac(%rbp)
jmp 0x5251
jmp 0x51f8
jmp 0x526b
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1ac(%rbp)
jmp 0x526d
movl -0x1ac(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jb 0x51ea
jmp 0x5298
movq -0x58(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
andq %rcx, %rax
movl %eax, -0x1a8(%rbp)
movl -0x4c(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x58(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x1a8(%rbp), %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
jmp 0x52e0
cmpl $0xf, -0x40(%rbp)
jae 0x54ec
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
subq %rcx, %rax
cmpq $0x2, %rax
jge 0x54a5
jmp 0x5301
movq -0x10(%rbp), %rax
movq -0x58(%rbp), %rcx
andq $0x3ff, %rcx            # imm = 0x3FF
movswl 0xf10(%rax,%rcx,2), %eax
movl %eax, -0x1b0(%rbp)
cmpl $0x0, -0x1b0(%rbp)
jl 0x5354
movl -0x1b0(%rbp), %eax
sarl $0x9, %eax
movl %eax, -0x1b4(%rbp)
cmpl $0x0, -0x1b4(%rbp)
je 0x534f
movl -0x40(%rbp), %eax
cmpl -0x1b4(%rbp), %eax
jb 0x534f
jmp 0x54a3
jmp 0x53f9
cmpl $0xa, -0x40(%rbp)
jbe 0x53f7
movl $0xa, -0x1b4(%rbp)
movq -0x10(%rbp), %rax
movl -0x1b0(%rbp), %ecx
xorl $-0x1, %ecx
movslq %ecx, %rcx
movq %rcx, -0x288(%rbp)
movq -0x58(%rbp), %rdx
movl -0x1b4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x1b4(%rbp)
movl %ecx, %ecx
shrq %cl, %rdx
movq -0x288(%rbp), %rcx
andq $0x1, %rdx
addq %rdx, %rcx
movswl 0x1710(%rax,%rcx,2), %eax
movl %eax, -0x1b0(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x1b0(%rbp)
movb %al, -0x289(%rbp)
jge 0x53dd
movl -0x40(%rbp), %eax
movl -0x1b4(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
setae %al
movb %al, -0x289(%rbp)
movb -0x289(%rbp), %al
testb $0x1, %al
jne 0x5368
cmpl $0x0, -0x1b0(%rbp)
jl 0x53f5
jmp 0x54a3
jmp 0x53f7
jmp 0x53f9
jmp 0x53fb
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x5462
jmp 0x5407
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5452
jmp 0x5414
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x1a, (%rax)
jmp 0x5c54
jmp 0x542c
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x5450
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1b8(%rbp)
jmp 0x5460
jmp 0x545e
movl $0x0, -0x1b8(%rbp)
jmp 0x5460
jmp 0x5407
jmp 0x547a
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1b8(%rbp)
jmp 0x547c
movl -0x1b8(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
cmpl $0xf, -0x40(%rbp)
jb 0x5301
jmp 0x54ea
movq -0x60(%rbp), %rax
movzbl (%rax), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
movq -0x60(%rbp), %rcx
movzbl 0x1(%rcx), %ecx
movl %ecx, %edx
movl -0x40(%rbp), %ecx
addl $0x8, %ecx
movl %ecx, %ecx
shlq %cl, %rdx
movq %rdx, %rcx
orq %rcx, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x60(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x60(%rbp)
movl -0x40(%rbp), %eax
addl $0x10, %eax
movl %eax, -0x40(%rbp)
jmp 0x54ec
movq -0x10(%rbp), %rax
movq -0x58(%rbp), %rcx
andq $0x3ff, %rcx            # imm = 0x3FF
movswl 0xf10(%rax,%rcx,2), %eax
movl %eax, -0x1b0(%rbp)
cmpl $0x0, %eax
jl 0x5530
movl -0x1b0(%rbp), %eax
sarl $0x9, %eax
movl %eax, -0x1b4(%rbp)
movl -0x1b0(%rbp), %eax
andl $0x1ff, %eax            # imm = 0x1FF
movl %eax, -0x1b0(%rbp)
jmp 0x5592
movl $0xa, -0x1b4(%rbp)
movq -0x10(%rbp), %rax
movl -0x1b0(%rbp), %ecx
xorl $-0x1, %ecx
movslq %ecx, %rcx
movq %rcx, -0x298(%rbp)
movq -0x58(%rbp), %rdx
movl -0x1b4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x1b4(%rbp)
movl %ecx, %ecx
shrq %cl, %rdx
movq -0x298(%rbp), %rcx
andq $0x1, %rdx
addq %rdx, %rcx
movswl 0x1710(%rax,%rcx,2), %eax
movl %eax, -0x1b0(%rbp)
cmpl $0x0, -0x1b0(%rbp)
jl 0x553a
jmp 0x5592
movl -0x1b0(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x1b4(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x58(%rbp)
movl -0x1b4(%rbp), %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x44(%rbp), %eax
movl %eax, %ecx
leaq 0x6ea8(%rip), %rax      # 0xc470
movl (%rax,%rcx,4), %eax
movl %eax, -0x4c(%rbp)
movl -0x44(%rbp), %eax
movl %eax, %ecx
leaq 0x6e16(%rip), %rax      # 0xc3f0
movl (%rax,%rcx,4), %eax
movl %eax, -0x44(%rbp)
cmpl $0x0, -0x4c(%rbp)
je 0x56ee
jmp 0x55ec
movl -0x40(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jae 0x56a8
jmp 0x55fa
jmp 0x55fc
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x5663
jmp 0x5608
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5653
jmp 0x5615
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x1b, (%rax)
jmp 0x5c54
jmp 0x562d
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x5651
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1c0(%rbp)
jmp 0x5661
jmp 0x565f
movl $0x0, -0x1c0(%rbp)
jmp 0x5661
jmp 0x5608
jmp 0x567b
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1c0(%rbp)
jmp 0x567d
movl -0x1c0(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jb 0x55fa
jmp 0x56a8
movq -0x58(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
andq %rcx, %rax
movl %eax, -0x1bc(%rbp)
movl -0x4c(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x58(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x1bc(%rbp), %eax
addl -0x44(%rbp), %eax
movl %eax, -0x44(%rbp)
movq -0x70(%rbp), %rax
movq -0x28(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x88(%rbp)
movl -0x44(%rbp), %eax
cmpq -0x88(%rbp), %rax
jbe 0x5737
movl 0x10(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5737
jmp 0x5719
jmp 0x571b
jmp 0x571d
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0x25, (%rax)
jmp 0x5c54
jmp 0x5735
jmp 0x571b
movq -0x28(%rbp), %rax
movq -0x88(%rbp), %rcx
movl -0x44(%rbp), %edx
subq %rdx, %rcx
andq -0x80(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x190(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x190(%rbp), %rax
jbe 0x5770
movq -0x70(%rbp), %rax
movq %rax, -0x2a0(%rbp)
jmp 0x577e
movq -0x190(%rbp), %rax
movq %rax, -0x2a0(%rbp)
movq -0x2a0(%rbp), %rax
movl -0x48(%rbp), %ecx
addq %rcx, %rax
cmpq -0x78(%rbp), %rax
jbe 0x5809
jmp 0x5793
movl -0x48(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x48(%rbp)
cmpl $0x0, %eax
je 0x5804
jmp 0x57a5
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jb 0x57cb
jmp 0x57b1
movl $0x2, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x35, (%rax)
jmp 0x5c54
jmp 0x57c9
jmp 0x57a5
movq -0x28(%rbp), %rax
movq -0x88(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x88(%rbp)
movl -0x44(%rbp), %edx
subq %rdx, %rcx
andq -0x80(%rbp), %rcx
movb (%rax,%rcx), %cl
movq -0x70(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x70(%rbp)
movb %cl, (%rax)
jmp 0x5793
jmp 0x4c28
cmpl $0x9, -0x48(%rbp)
jb 0x58d0
movl -0x48(%rbp), %eax
cmpl -0x44(%rbp), %eax
ja 0x58d0
movq -0x190(%rbp), %rax
movl -0x48(%rbp), %ecx
andl $-0x8, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x1c8(%rbp)
movq -0x190(%rbp), %rax
movl (%rax), %ecx
movq -0x70(%rbp), %rax
movl %ecx, (%rax)
movq -0x190(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x70(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x70(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x70(%rbp)
movq -0x190(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x190(%rbp)
cmpq -0x1c8(%rbp), %rax
jb 0x5838
movl -0x48(%rbp), %eax
andl $0x7, %eax
movl %eax, -0x48(%rbp)
cmpl $0x3, %eax
jae 0x58ce
cmpl $0x0, -0x48(%rbp)
je 0x58c9
movq -0x190(%rbp), %rax
movb (%rax), %cl
movq -0x70(%rbp), %rax
movb %cl, (%rax)
cmpl $0x1, -0x48(%rbp)
jbe 0x58b9
movq -0x190(%rbp), %rax
movb 0x1(%rax), %cl
movq -0x70(%rbp), %rax
movb %cl, 0x1(%rax)
movl -0x48(%rbp), %ecx
movq -0x70(%rbp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0x4c28
jmp 0x58d0
jmp 0x58d2
jmp 0x58d4
movq -0x190(%rbp), %rax
movb (%rax), %cl
movq -0x70(%rbp), %rax
movb %cl, (%rax)
movq -0x190(%rbp), %rax
movb 0x1(%rax), %cl
movq -0x70(%rbp), %rax
movb %cl, 0x1(%rax)
movq -0x190(%rbp), %rax
movb 0x2(%rax), %cl
movq -0x70(%rbp), %rax
movb %cl, 0x2(%rax)
movq -0x70(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x70(%rbp)
movq -0x190(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x190(%rbp)
movl -0x48(%rbp), %eax
subl $0x3, %eax
movl %eax, -0x48(%rbp)
cmpl $0x2, %eax
jg 0x58d4
cmpl $0x0, -0x48(%rbp)
jle 0x596d
movq -0x190(%rbp), %rax
movb (%rax), %cl
movq -0x70(%rbp), %rax
movb %cl, (%rax)
cmpl $0x1, -0x48(%rbp)
jle 0x595d
movq -0x190(%rbp), %rax
movb 0x1(%rax), %cl
movq -0x70(%rbp), %rax
movb %cl, 0x1(%rax)
movl -0x48(%rbp), %ecx
movq -0x70(%rbp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0x4c28
jmp 0x5974
jmp 0x5976
jmp 0x5978
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x3712
movl 0x10(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5c35
jmp 0x59a3
movl -0x40(%rbp), %eax
movl -0x40(%rbp), %ecx
andl $0x7, %ecx
cmpl %ecx, %eax
jae 0x5a69
jmp 0x59b6
jmp 0x59b8
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x5a1f
jmp 0x59c4
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5a0f
jmp 0x59d1
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x20, (%rax)
jmp 0x5c54
jmp 0x59e9
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x5a0d
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1cc(%rbp)
jmp 0x5a1d
jmp 0x5a1b
movl $0x0, -0x1cc(%rbp)
jmp 0x5a1d
jmp 0x59c4
jmp 0x5a37
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1cc(%rbp)
jmp 0x5a39
movl -0x1cc(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
movl -0x40(%rbp), %ecx
andl $0x7, %ecx
cmpl %ecx, %eax
jb 0x59b6
jmp 0x5a69
movl -0x40(%rbp), %ecx
andl $0x7, %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %ecx
andl $0x7, %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl $0x0, -0x48(%rbp)
cmpl $0x4, -0x48(%rbp)
jae 0x5c33
cmpl $0x0, -0x40(%rbp)
je 0x5b89
jmp 0x5aa7
cmpl $0x8, -0x40(%rbp)
jae 0x5b5f
jmp 0x5ab3
jmp 0x5ab5
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x5b1c
jmp 0x5ac1
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5b0c
jmp 0x5ace
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x29, (%rax)
jmp 0x5c54
jmp 0x5ae6
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x5b0a
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1d4(%rbp)
jmp 0x5b1a
jmp 0x5b18
movl $0x0, -0x1d4(%rbp)
jmp 0x5b1a
jmp 0x5ac1
jmp 0x5b34
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1d4(%rbp)
jmp 0x5b36
movl -0x1d4(%rbp), %eax
movl -0x40(%rbp), %ecx
shlq %cl, %rax
orq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x40(%rbp)
cmpl $0x8, -0x40(%rbp)
jb 0x5ab3
jmp 0x5b5f
movq -0x58(%rbp), %rax
andq $0xff, %rax
movl %eax, -0x1d0(%rbp)
movq -0x58(%rbp), %rax
shrq $0x8, %rax
movq %rax, -0x58(%rbp)
movl -0x40(%rbp), %eax
subl $0x8, %eax
movl %eax, -0x40(%rbp)
jmp 0x5c0e
jmp 0x5b8b
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jb 0x5bf2
jmp 0x5b97
movl 0x10(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5be2
jmp 0x5ba4
movl $0x1, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x2a, (%rax)
jmp 0x5c54
jmp 0x5bbc
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x5be0
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1d0(%rbp)
jmp 0x5bf0
jmp 0x5bee
movl $0x0, -0x1d0(%rbp)
jmp 0x5bf0
jmp 0x5b97
jmp 0x5c0a
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1d0(%rbp)
jmp 0x5c0c
jmp 0x5c0e
movq -0x10(%rbp), %rax
movl 0x10(%rax), %ecx
shll $0x8, %ecx
orl -0x1d0(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x10(%rax)
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x5a91
jmp 0x5c35
jmp 0x5c37
jmp 0x5c39
jmp 0x5c3b
movl $0x0, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl $0x22, (%rax)
jmp 0x5c54
jmp 0x5c50
jmp 0x5c39
jmp 0x5c54
movl -0x40(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x58(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x40(%rax)
movl -0x44(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x28(%rax)
movl -0x48(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x2c(%rax)
movl -0x4c(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x30(%rax)
movq -0x88(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x48(%rax)
movq -0x60(%rbp), %rcx
movq -0x18(%rbp), %rax
subq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x70(%rbp), %rcx
movq -0x30(%rbp), %rax
subq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, (%rax)
movl 0x10(%rbp), %eax
andl $0x9, %eax
cmpl $0x0, %eax
je 0x5fae
cmpl $0x0, -0x3c(%rbp)
jl 0x5fae
movq -0x30(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1e8(%rbp)
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
andl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0x1f0(%rbp)
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
shrl $0x10, %eax
movl %eax, -0x1f4(%rbp)
movq -0x1e8(%rbp), %rax
movl $0x15b0, %ecx           # imm = 0x15B0
xorl %edx, %edx
divq %rcx
movq %rdx, -0x200(%rbp)
cmpq $0x0, -0x1e8(%rbp)
je 0x5f6e
movl $0x0, -0x1ec(%rbp)
movl -0x1ec(%rbp), %eax
addl $0x7, %eax
movl %eax, %eax
cmpq -0x200(%rbp), %rax
jae 0x5ec4
movq -0x1e0(%rbp), %rax
movzbl (%rax), %eax
addl -0x1f0(%rbp), %eax
movl %eax, -0x1f0(%rbp)
movl -0x1f0(%rbp), %eax
addl -0x1f4(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movq -0x1e0(%rbp), %rax
movzbl 0x1(%rax), %eax
addl -0x1f0(%rbp), %eax
movl %eax, -0x1f0(%rbp)
movl -0x1f0(%rbp), %eax
addl -0x1f4(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movq -0x1e0(%rbp), %rax
movzbl 0x2(%rax), %eax
addl -0x1f0(%rbp), %eax
movl %eax, -0x1f0(%rbp)
movl -0x1f0(%rbp), %eax
addl -0x1f4(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movq -0x1e0(%rbp), %rax
movzbl 0x3(%rax), %eax
addl -0x1f0(%rbp), %eax
movl %eax, -0x1f0(%rbp)
movl -0x1f0(%rbp), %eax
addl -0x1f4(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movq -0x1e0(%rbp), %rax
movzbl 0x4(%rax), %eax
addl -0x1f0(%rbp), %eax
movl %eax, -0x1f0(%rbp)
movl -0x1f0(%rbp), %eax
addl -0x1f4(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movq -0x1e0(%rbp), %rax
movzbl 0x5(%rax), %eax
addl -0x1f0(%rbp), %eax
movl %eax, -0x1f0(%rbp)
movl -0x1f0(%rbp), %eax
addl -0x1f4(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movq -0x1e0(%rbp), %rax
movzbl 0x6(%rax), %eax
addl -0x1f0(%rbp), %eax
movl %eax, -0x1f0(%rbp)
movl -0x1f0(%rbp), %eax
addl -0x1f4(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movq -0x1e0(%rbp), %rax
movzbl 0x7(%rax), %eax
addl -0x1f0(%rbp), %eax
movl %eax, -0x1f0(%rbp)
movl -0x1f0(%rbp), %eax
addl -0x1f4(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movl -0x1ec(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x1ec(%rbp)
movq -0x1e0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x1e0(%rbp)
jmp 0x5d3f
jmp 0x5ec6
movl -0x1ec(%rbp), %eax
cmpq -0x200(%rbp), %rax
jae 0x5f1c
movq -0x1e0(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x1e0(%rbp)
movzbl (%rax), %eax
addl -0x1f0(%rbp), %eax
movl %eax, -0x1f0(%rbp)
movl -0x1f0(%rbp), %eax
addl -0x1f4(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movl -0x1ec(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1ec(%rbp)
jmp 0x5ec6
movl -0x1f0(%rbp), %eax
movl $0xfff1, %ecx           # imm = 0xFFF1
xorl %edx, %edx
divl %ecx
movl %edx, -0x1f0(%rbp)
movl -0x1f4(%rbp), %eax
movl $0xfff1, %ecx           # imm = 0xFFF1
xorl %edx, %edx
divl %ecx
movl %edx, -0x1f4(%rbp)
movq -0x200(%rbp), %rcx
movq -0x1e8(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x1e8(%rbp)
movq $0x15b0, -0x200(%rbp) # imm = 0x15B0
jmp 0x5d27
movl -0x1f4(%rbp), %ecx
shll $0x10, %ecx
addl -0x1f0(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x20(%rax)
cmpl $0x0, -0x3c(%rbp)
jne 0x5fac
movl 0x10(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5fac
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl 0x10(%rcx), %eax
je 0x5fac
movl $0xfffffffe, -0x3c(%rbp) # imm = 0xFFFFFFFE
jmp 0x5fae
movl -0x3c(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbp
retq