// File: Alcaro[P]bridges/arlib/deps/miniz.c
// Function: tdefl_compress_normal
static mz_bool tdefl_compress_normal(tdefl_compressor *d)
{
  const mz_uint8 *pSrc = d->m_pSrc; size_t src_buf_left = d->m_src_buf_left;
  tdefl_flush flush = d->m_flush;

  while ((src_buf_left) || ((flush) && (d->m_lookahead_size)))
  {
    mz_uint len_to_move, cur_match_dist, cur_match_len, cur_pos;
    // Update dictionary and hash chains. Keeps the lookahead size equal to TDEFL_MAX_MATCH_LEN.
    if ((d->m_lookahead_size + d->m_dict_size) >= (TDEFL_MIN_MATCH_LEN - 1))
    {
      mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK, ins_pos = d->m_lookahead_pos + d->m_lookahead_size - 2;
      mz_uint hash = (d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK];
      mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(src_buf_left, TDEFL_MAX_MATCH_LEN - d->m_lookahead_size);
      const mz_uint8 *pSrc_end = pSrc + num_bytes_to_process;
      src_buf_left -= num_bytes_to_process;
      d->m_lookahead_size += num_bytes_to_process;
      while (pSrc != pSrc_end)
      {
        mz_uint8 c = *pSrc++; d->m_dict[dst_pos] = c; if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c;
        hash = ((hash << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1);
        d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; d->m_hash[hash] = (mz_uint16)(ins_pos);
        dst_pos = (dst_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; ins_pos++;
      }
    }
    else
    {
      while ((src_buf_left) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN))
      {
        mz_uint8 c = *pSrc++;
        mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK;
        src_buf_left--;
        d->m_dict[dst_pos] = c;
        if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1))
          d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c;
        if ((++d->m_lookahead_size + d->m_dict_size) >= TDEFL_MIN_MATCH_LEN)
        {
          mz_uint ins_pos = d->m_lookahead_pos + (d->m_lookahead_size - 1) - 2;
          mz_uint hash = ((d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << (TDEFL_LZ_HASH_SHIFT * 2)) ^ (d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1);
          d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; d->m_hash[hash] = (mz_uint16)(ins_pos);
        }
      }
    }
    d->m_dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - d->m_lookahead_size, d->m_dict_size);
    if ((!flush) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN))
      break;

    // Simple lazy/greedy parsing state machine.
    len_to_move = 1; cur_match_dist = 0; cur_match_len = d->m_saved_match_len ? d->m_saved_match_len : (TDEFL_MIN_MATCH_LEN - 1); cur_pos = d->m_lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK;
    if (d->m_flags & (TDEFL_RLE_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS))
    {
      if ((d->m_dict_size) && (!(d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS)))
      {
        mz_uint8 c = d->m_dict[(cur_pos - 1) & TDEFL_LZ_DICT_SIZE_MASK];
        cur_match_len = 0; while (cur_match_len < d->m_lookahead_size) { if (d->m_dict[cur_pos + cur_match_len] != c) break; cur_match_len++; }
        if (cur_match_len < TDEFL_MIN_MATCH_LEN) cur_match_len = 0; else cur_match_dist = 1;
      }
    }
    else
    {
      tdefl_find_match(d, d->m_lookahead_pos, d->m_dict_size, d->m_lookahead_size, &cur_match_dist, &cur_match_len);
    }
    if (((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U*1024U)) || (cur_pos == cur_match_dist) || ((d->m_flags & TDEFL_FILTER_MATCHES) && (cur_match_len <= 5)))
    {
      cur_match_dist = cur_match_len = 0;
    }
    if (d->m_saved_match_len)
    {
      if (cur_match_len > d->m_saved_match_len)
      {
        tdefl_record_literal(d, (mz_uint8)d->m_saved_lit);
        if (cur_match_len >= 128)
        {
          tdefl_record_match(d, cur_match_len, cur_match_dist);
          d->m_saved_match_len = 0; len_to_move = cur_match_len;
        }
        else
        {
          d->m_saved_lit = d->m_dict[cur_pos]; d->m_saved_match_dist = cur_match_dist; d->m_saved_match_len = cur_match_len;
        }
      }
      else
      {
        tdefl_record_match(d, d->m_saved_match_len, d->m_saved_match_dist);
        len_to_move = d->m_saved_match_len - 1; d->m_saved_match_len = 0;
      }
    }
    else if (!cur_match_dist)
      tdefl_record_literal(d, d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]);
    else if ((d->m_greedy_parsing) || (d->m_flags & TDEFL_RLE_MATCHES) || (cur_match_len >= 128))
    {
      tdefl_record_match(d, cur_match_len, cur_match_dist);
      len_to_move = cur_match_len;
    }
    else
    {
      d->m_saved_lit = d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]; d->m_saved_match_dist = cur_match_dist; d->m_saved_match_len = cur_match_len;
    }
    // Move the lookahead forward by len_to_move bytes.
    d->m_lookahead_pos += len_to_move;
    MZ_ASSERT(d->m_lookahead_size >= len_to_move);
    d->m_lookahead_size -= len_to_move;
    d->m_dict_size = MZ_MIN(d->m_dict_size + len_to_move, TDEFL_LZ_DICT_SIZE);
    // Check if it's time to flush the current LZ codes to the internal output buffer.
    if ( (d->m_pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) ||
         ( (d->m_total_lz_bytes > 31*1024) && (((((mz_uint)(d->m_pLZ_code_buf - d->m_lz_code_buf) * 115) >> 7) >= d->m_total_lz_bytes) || (d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS))) )
    {
      int n;
      d->m_pSrc = pSrc; d->m_src_buf_left = src_buf_left;
      if ((n = tdefl_flush_block(d, 0)) != 0)
        return (n < 0) ? MZ_FALSE : MZ_TRUE;
    }
  }

  d->m_pSrc = pSrc; d->m_src_buf_left = src_buf_left;
  return MZ_TRUE;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
movq %rdi, -0xd8(%rbp)
movq -0xd8(%rbp), %rax
movq 0xb0(%rax), %rax
movq %rax, -0xe0(%rbp)
movq -0xd8(%rbp), %rax
movq 0xb8(%rax), %rax
movq %rax, -0xe8(%rbp)
movq -0xd8(%rbp), %rax
movl 0xa8(%rax), %eax
movl %eax, -0xec(%rbp)
movb $0x1, %al
cmpq $0x0, -0xe8(%rbp)
movb %al, -0x131(%rbp)
jne 0x5d692
xorl %eax, %eax
cmpl $0x0, -0xec(%rbp)
movb %al, -0x132(%rbp)
je 0x5d686
movq -0xd8(%rbp), %rax
cmpl $0x0, 0x28(%rax)
setne %al
movb %al, -0x132(%rbp)
movb -0x132(%rbp), %al
movb %al, -0x131(%rbp)
movb -0x131(%rbp), %al
testb $0x1, %al
jne 0x5d6a1
jmp 0x5ec1a
movq -0xd8(%rbp), %rax
movl 0x28(%rax), %eax
movq -0xd8(%rbp), %rcx
addl 0x2c(%rcx), %eax
cmpl $0x2, %eax
jb 0x5d8ea
movq -0xd8(%rbp), %rax
movl 0x24(%rax), %eax
movq -0xd8(%rbp), %rcx
addl 0x28(%rcx), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movl %eax, -0x100(%rbp)
movq -0xd8(%rbp), %rax
movl 0x24(%rax), %eax
movq -0xd8(%rbp), %rcx
addl 0x28(%rcx), %eax
subl $0x2, %eax
movl %eax, -0x104(%rbp)
movq -0xd8(%rbp), %rax
movl -0x104(%rbp), %ecx
andl $0x7fff, %ecx           # imm = 0x7FFF
movl %ecx, %ecx
movzbl 0xc8(%rax,%rcx), %eax
shll $0x5, %eax
movq -0xd8(%rbp), %rcx
movl -0x104(%rbp), %edx
addl $0x1, %edx
andl $0x7fff, %edx           # imm = 0x7FFF
movl %edx, %edx
movzbl 0xc8(%rcx,%rdx), %ecx
xorl %ecx, %eax
movl %eax, -0x108(%rbp)
movq -0xe8(%rbp), %rax
movq -0xd8(%rbp), %rdx
movl $0x102, %ecx            # imm = 0x102
subl 0x28(%rdx), %ecx
movl %ecx, %ecx
cmpq %rcx, %rax
jae 0x5d76f
movq -0xe8(%rbp), %rax
movq %rax, -0x140(%rbp)
jmp 0x5d787
movq -0xd8(%rbp), %rcx
movl $0x102, %eax            # imm = 0x102
subl 0x28(%rcx), %eax
movl %eax, %eax
movq %rax, -0x140(%rbp)
movq -0x140(%rbp), %rax
movl %eax, -0x10c(%rbp)
movq -0xe0(%rbp), %rax
movl -0x10c(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0x118(%rbp)
movl -0x10c(%rbp), %eax
movl %eax, %ecx
movq -0xe8(%rbp), %rax
subq %rcx, %rax
movq %rax, -0xe8(%rbp)
movl -0x10c(%rbp), %ecx
movq -0xd8(%rbp), %rax
addl 0x28(%rax), %ecx
movl %ecx, 0x28(%rax)
movq -0xe0(%rbp), %rax
cmpq -0x118(%rbp), %rax
je 0x5d8e5
movq -0xe0(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0xe0(%rbp)
movb (%rax), %al
movb %al, -0x119(%rbp)
movb -0x119(%rbp), %dl
movq -0xd8(%rbp), %rax
movl -0x100(%rbp), %ecx
movb %dl, 0xc8(%rax,%rcx)
cmpl $0x101, -0x100(%rbp)    # imm = 0x101
jae 0x5d850
movb -0x119(%rbp), %dl
movq -0xd8(%rbp), %rax
movl -0x100(%rbp), %ecx
addl $0x8000, %ecx           # imm = 0x8000
movl %ecx, %ecx
movb %dl, 0xc8(%rax,%rcx)
movl -0x108(%rbp), %eax
shll $0x5, %eax
movzbl -0x119(%rbp), %ecx
xorl %ecx, %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movl %eax, -0x108(%rbp)
movq -0xd8(%rbp), %rax
movl -0x108(%rbp), %ecx
movw 0x292aa(%rax,%rcx,2), %dx
movq -0xd8(%rbp), %rax
movl -0x104(%rbp), %ecx
andl $0x7fff, %ecx           # imm = 0x7FFF
movl %ecx, %ecx
movw %dx, 0x192aa(%rax,%rcx,2)
movl -0x104(%rbp), %eax
movw %ax, %dx
movq -0xd8(%rbp), %rax
movl -0x108(%rbp), %ecx
movw %dx, 0x292aa(%rax,%rcx,2)
movl -0x100(%rbp), %eax
addl $0x1, %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movl %eax, -0x100(%rbp)
movl -0x104(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x104(%rbp)
jmp 0x5d7d7
jmp 0x5daaf
jmp 0x5d8ec
xorl %eax, %eax
cmpq $0x0, -0xe8(%rbp)
movb %al, -0x141(%rbp)
je 0x5d915
movq -0xd8(%rbp), %rax
cmpl $0x102, 0x28(%rax)      # imm = 0x102
setb %al
movb %al, -0x141(%rbp)
movb -0x141(%rbp), %al
testb $0x1, %al
jne 0x5d924
jmp 0x5daad
movq -0xe0(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0xe0(%rbp)
movb (%rax), %al
movb %al, -0x11a(%rbp)
movq -0xd8(%rbp), %rax
movl 0x24(%rax), %eax
movq -0xd8(%rbp), %rcx
addl 0x28(%rcx), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movl %eax, -0x120(%rbp)
movq -0xe8(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0xe8(%rbp)
movb -0x11a(%rbp), %dl
movq -0xd8(%rbp), %rax
movl -0x120(%rbp), %ecx
movb %dl, 0xc8(%rax,%rcx)
cmpl $0x101, -0x120(%rbp)    # imm = 0x101
jae 0x5d9ba
movb -0x11a(%rbp), %dl
movq -0xd8(%rbp), %rax
movl -0x120(%rbp), %ecx
addl $0x8000, %ecx           # imm = 0x8000
movl %ecx, %ecx
movb %dl, 0xc8(%rax,%rcx)
movq -0xd8(%rbp), %rcx
movl 0x28(%rcx), %eax
addl $0x1, %eax
movl %eax, 0x28(%rcx)
movq -0xd8(%rbp), %rcx
addl 0x2c(%rcx), %eax
cmpl $0x3, %eax
jb 0x5daa8
movq -0xd8(%rbp), %rax
movl 0x24(%rax), %eax
movq -0xd8(%rbp), %rcx
movl 0x28(%rcx), %ecx
subl $0x1, %ecx
addl %ecx, %eax
subl $0x2, %eax
movl %eax, -0x124(%rbp)
movq -0xd8(%rbp), %rax
movl -0x124(%rbp), %ecx
andl $0x7fff, %ecx           # imm = 0x7FFF
movl %ecx, %ecx
movzbl 0xc8(%rax,%rcx), %eax
shll $0xa, %eax
movq -0xd8(%rbp), %rcx
movl -0x124(%rbp), %edx
addl $0x1, %edx
andl $0x7fff, %edx           # imm = 0x7FFF
movl %edx, %edx
movzbl 0xc8(%rcx,%rdx), %ecx
shll $0x5, %ecx
xorl %ecx, %eax
movzbl -0x11a(%rbp), %ecx
xorl %ecx, %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movl %eax, -0x128(%rbp)
movq -0xd8(%rbp), %rax
movl -0x128(%rbp), %ecx
movw 0x292aa(%rax,%rcx,2), %dx
movq -0xd8(%rbp), %rax
movl -0x124(%rbp), %ecx
andl $0x7fff, %ecx           # imm = 0x7FFF
movl %ecx, %ecx
movw %dx, 0x192aa(%rax,%rcx,2)
movl -0x124(%rbp), %eax
movw %ax, %dx
movq -0xd8(%rbp), %rax
movl -0x128(%rbp), %ecx
movw %dx, 0x292aa(%rax,%rcx,2)
jmp 0x5d8ec
jmp 0x5daaf
movq -0xd8(%rbp), %rcx
movl $0x8000, %eax           # imm = 0x8000
subl 0x28(%rcx), %eax
movq -0xd8(%rbp), %rcx
cmpl 0x2c(%rcx), %eax
jae 0x5dae1
movq -0xd8(%rbp), %rcx
movl $0x8000, %eax           # imm = 0x8000
subl 0x28(%rcx), %eax
movl %eax, -0x148(%rbp)
jmp 0x5daf1
movq -0xd8(%rbp), %rax
movl 0x2c(%rax), %eax
movl %eax, -0x148(%rbp)
movl -0x148(%rbp), %ecx
movq -0xd8(%rbp), %rax
movl %ecx, 0x2c(%rax)
cmpl $0x0, -0xec(%rbp)
jne 0x5db1f
movq -0xd8(%rbp), %rax
cmpl $0x102, 0x28(%rax)      # imm = 0x102
jae 0x5db1f
jmp 0x5ec1a
movl $0x1, -0xf0(%rbp)
movl $0x0, -0xf4(%rbp)
movq -0xd8(%rbp), %rax
cmpl $0x0, 0x68(%rax)
je 0x5db52
movq -0xd8(%rbp), %rax
movl 0x68(%rax), %eax
movl %eax, -0x14c(%rbp)
jmp 0x5db5f
movl $0x2, %eax
movl %eax, -0x14c(%rbp)
jmp 0x5db5f
movl -0x14c(%rbp), %eax
movl %eax, -0xf8(%rbp)
movq -0xd8(%rbp), %rax
movl 0x24(%rax), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movl %eax, -0xfc(%rbp)
movq -0xd8(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x90000, %eax          # imm = 0x90000
cmpl $0x0, %eax
je 0x5dc63
movq -0xd8(%rbp), %rax
cmpl $0x0, 0x2c(%rax)
je 0x5dc5e
movq -0xd8(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x80000, %eax          # imm = 0x80000
cmpl $0x0, %eax
jne 0x5dc5e
movq -0xd8(%rbp), %rax
movl -0xfc(%rbp), %ecx
subl $0x1, %ecx
andl $0x7fff, %ecx           # imm = 0x7FFF
movl %ecx, %ecx
movb 0xc8(%rax,%rcx), %al
movb %al, -0x129(%rbp)
movl $0x0, -0xf8(%rbp)
movl -0xf8(%rbp), %eax
movq -0xd8(%rbp), %rcx
cmpl 0x28(%rcx), %eax
jae 0x5dc3d
movq -0xd8(%rbp), %rax
movl -0xfc(%rbp), %ecx
addl -0xf8(%rbp), %ecx
movl %ecx, %ecx
movzbl 0xc8(%rax,%rcx), %eax
movzbl -0x129(%rbp), %ecx
cmpl %ecx, %eax
je 0x5dc2c
jmp 0x5dc3d
movl -0xf8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xf8(%rbp)
jmp 0x5dbf0
cmpl $0x3, -0xf8(%rbp)
jae 0x5dc52
movl $0x0, -0xf8(%rbp)
jmp 0x5dc5c
movl $0x1, -0xf4(%rbp)
jmp 0x5dc5e
jmp 0x5e19e
movq -0xd8(%rbp), %rsi
movq -0xd8(%rbp), %rax
movl 0x24(%rax), %edx
movq -0xd8(%rbp), %rax
movl 0x2c(%rax), %ecx
movq -0xd8(%rbp), %rax
movl 0x28(%rax), %eax
movq %rsi, -0x70(%rbp)
movl %edx, -0x74(%rbp)
movl %ecx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0xf4(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq -0xf8(%rbp), %rax
movq %rax, -0x90(%rbp)
movl -0x74(%rbp), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movl %eax, -0x98(%rbp)
movq -0x90(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x9c(%rbp)
movl -0x98(%rbp), %eax
movl %eax, -0xa0(%rbp)
movq -0x70(%rbp), %rax
cmpl $0x20, -0x9c(%rbp)
setae %cl
andb $0x1, %cl
movzbl %cl, %ecx
movslq %ecx, %rcx
movl 0x14(%rax,%rcx,4), %eax
movl %eax, -0xac(%rbp)
movq -0x70(%rbp), %rax
addq $0xc8, %rax
movl -0x98(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0x70(%rbp), %rax
movl -0x98(%rbp), %ecx
addl -0x9c(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movw 0xc8(%rax,%rcx), %ax
movw %ax, -0xca(%rbp)
movq -0xb8(%rbp), %rax
movw (%rax), %ax
movw %ax, -0xcc(%rbp)
cmpl $0x102, -0x7c(%rbp)     # imm = 0x102
ja 0x5dd60
movl -0x7c(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jbe 0x5dd7f
jmp 0x5dd84
leaq 0xd3f1(%rip), %rdi      # 0x6b158
leaq 0xd26e(%rip), %rsi      # 0x6afdc
movl $0x329, %edx            # imm = 0x329
leaq 0xd403(%rip), %rcx      # 0x6b17d
callq 0x4200
jmp 0x5e19c
jmp 0x5dd86
jmp 0x5dd88
movl -0xac(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xac(%rbp)
cmpl $0x0, %eax
jne 0x5dda1
jmp 0x5e19c
movq -0x70(%rbp), %rax
movl -0xa0(%rbp), %ecx
movzwl 0x192aa(%rax,%rcx,2), %eax
movl %eax, -0xa4(%rbp)
cmpl $0x0, -0xa4(%rbp)
je 0x5ddd9
movl -0x74(%rbp), %eax
subl -0xa4(%rbp), %eax
movzwl %ax, %eax
movl %eax, -0x94(%rbp)
cmpl -0x78(%rbp), %eax
jbe 0x5ddde
jmp 0x5e19c
movl -0xa4(%rbp), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movl %eax, -0xa0(%rbp)
movq -0x70(%rbp), %rax
movl -0xa0(%rbp), %ecx
addl -0x9c(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movzwl 0xc8(%rax,%rcx), %eax
movzwl -0xca(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5de1c
jmp 0x5df11
movq -0x70(%rbp), %rax
movl -0xa0(%rbp), %ecx
movzwl 0x192aa(%rax,%rcx,2), %eax
movl %eax, -0xa4(%rbp)
cmpl $0x0, -0xa4(%rbp)
je 0x5de54
movl -0x74(%rbp), %eax
subl -0xa4(%rbp), %eax
movzwl %ax, %eax
movl %eax, -0x94(%rbp)
cmpl -0x78(%rbp), %eax
jbe 0x5de59
jmp 0x5e19c
movl -0xa4(%rbp), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movl %eax, -0xa0(%rbp)
movq -0x70(%rbp), %rax
movl -0xa0(%rbp), %ecx
addl -0x9c(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movzwl 0xc8(%rax,%rcx), %eax
movzwl -0xca(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5de94
jmp 0x5df11
movq -0x70(%rbp), %rax
movl -0xa0(%rbp), %ecx
movzwl 0x192aa(%rax,%rcx,2), %eax
movl %eax, -0xa4(%rbp)
cmpl $0x0, -0xa4(%rbp)
je 0x5decc
movl -0x74(%rbp), %eax
subl -0xa4(%rbp), %eax
movzwl %ax, %eax
movl %eax, -0x94(%rbp)
cmpl -0x78(%rbp), %eax
jbe 0x5ded1
jmp 0x5e19c
movl -0xa4(%rbp), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movl %eax, -0xa0(%rbp)
movq -0x70(%rbp), %rax
movl -0xa0(%rbp), %ecx
addl -0x9c(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movzwl 0xc8(%rax,%rcx), %eax
movzwl -0xca(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5df0c
jmp 0x5df11
jmp 0x5dd88
cmpl $0x0, -0x94(%rbp)
jne 0x5df1f
jmp 0x5e19c
movq -0x70(%rbp), %rax
addq $0xc8, %rax
movl -0xa0(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
movzwl (%rax), %eax
movzwl -0xcc(%rbp), %ecx
cmpl %ecx, %eax
je 0x5df53
jmp 0x5dd86
movq -0xb8(%rbp), %rax
movq %rax, -0xc0(%rbp)
movl $0x20, -0xa8(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, %rcx
addq $0x2, %rcx
movq %rcx, -0xc0(%rbp)
movzwl 0x2(%rax), %ecx
movq -0xc8(%rbp), %rax
movq %rax, %rdx
addq $0x2, %rdx
movq %rdx, -0xc8(%rbp)
movzwl 0x2(%rax), %edx
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0x14d(%rbp)
jne 0x5e086
movq -0xc0(%rbp), %rax
movq %rax, %rcx
addq $0x2, %rcx
movq %rcx, -0xc0(%rbp)
movzwl 0x2(%rax), %ecx
movq -0xc8(%rbp), %rax
movq %rax, %rdx
addq $0x2, %rdx
movq %rdx, -0xc8(%rbp)
movzwl 0x2(%rax), %edx
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0x14d(%rbp)
jne 0x5e086
movq -0xc0(%rbp), %rax
movq %rax, %rcx
addq $0x2, %rcx
movq %rcx, -0xc0(%rbp)
movzwl 0x2(%rax), %ecx
movq -0xc8(%rbp), %rax
movq %rax, %rdx
addq $0x2, %rdx
movq %rdx, -0xc8(%rbp)
movzwl 0x2(%rax), %edx
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0x14d(%rbp)
jne 0x5e086
movq -0xc0(%rbp), %rax
movq %rax, %rcx
addq $0x2, %rcx
movq %rcx, -0xc0(%rbp)
movzwl 0x2(%rax), %ecx
movq -0xc8(%rbp), %rax
movq %rax, %rdx
addq $0x2, %rdx
movq %rdx, -0xc8(%rbp)
movzwl 0x2(%rax), %edx
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0x14d(%rbp)
jne 0x5e086
movl -0xa8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xa8(%rbp)
cmpl $0x0, %eax
seta %al
movb %al, -0x14d(%rbp)
movb -0x14d(%rbp), %al
testb $0x1, %al
jne 0x5df6b
cmpl $0x0, -0xa8(%rbp)
jne 0x5e0e1
movl -0x94(%rbp), %ecx
movq -0x88(%rbp), %rax
movl %ecx, (%rax)
cmpl $0x102, -0x7c(%rbp)     # imm = 0x102
jae 0x5e0c0
movl -0x7c(%rbp), %eax
movl %eax, -0x154(%rbp)
jmp 0x5e0cd
movl $0x102, %eax            # imm = 0x102
movl %eax, -0x154(%rbp)
jmp 0x5e0cd
movl -0x154(%rbp), %ecx
movq -0x90(%rbp), %rax
movl %ecx, (%rax)
jmp 0x5e19c
movq -0xc0(%rbp), %rax
movq -0xb8(%rbp), %rcx
subq %rcx, %rax
sarq %rax
shll %eax
movq -0xc0(%rbp), %rcx
movzbl (%rcx), %ecx
movq -0xc8(%rbp), %rdx
movzbl (%rdx), %edx
cmpl %edx, %ecx
sete %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movl %eax, -0xa8(%rbp)
cmpl -0x9c(%rbp), %eax
jbe 0x5e197
movl -0x94(%rbp), %ecx
movq -0x88(%rbp), %rax
movl %ecx, (%rax)
movl -0x7c(%rbp), %eax
cmpl -0xa8(%rbp), %eax
jae 0x5e14b
movl -0x7c(%rbp), %eax
movl %eax, -0x158(%rbp)
jmp 0x5e157
movl -0xa8(%rbp), %eax
movl %eax, -0x158(%rbp)
movl -0x158(%rbp), %eax
movl %eax, -0x9c(%rbp)
movq -0x90(%rbp), %rcx
movl %eax, (%rcx)
cmpl -0x7c(%rbp), %eax
jne 0x5e173
jmp 0x5e19c
movq -0x70(%rbp), %rax
movl -0x98(%rbp), %ecx
addl -0x9c(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movw 0xc8(%rax,%rcx), %ax
movw %ax, -0xca(%rbp)
jmp 0x5dd86
jmp 0x5e19e
cmpl $0x3, -0xf8(%rbp)
jne 0x5e1b3
cmpl $0x2000, -0xf4(%rbp)    # imm = 0x2000
jae 0x5e1de
movl -0xfc(%rbp), %eax
cmpl -0xf4(%rbp), %eax
je 0x5e1de
movq -0xd8(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x20000, %eax          # imm = 0x20000
cmpl $0x0, %eax
je 0x5e1f2
cmpl $0x5, -0xf8(%rbp)
ja 0x5e1f2
movl $0x0, -0xf8(%rbp)
movl $0x0, -0xf4(%rbp)
movq -0xd8(%rbp), %rax
cmpl $0x0, 0x68(%rax)
je 0x5e6f9
movl -0xf8(%rbp), %eax
movq -0xd8(%rbp), %rcx
cmpl 0x68(%rcx), %eax
jbe 0x5e4ff
movq -0xd8(%rbp), %rcx
movq -0xd8(%rbp), %rax
movl 0x6c(%rax), %eax
movq %rcx, -0x50(%rbp)
movb %al, -0x51(%rbp)
movq -0x50(%rbp), %rax
movl 0x54(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x54(%rax)
movb -0x51(%rbp), %cl
movq -0x50(%rbp), %rdx
movq 0x30(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x30(%rdx)
movb %cl, (%rax)
movq -0x50(%rbp), %rax
movq 0x38(%rax), %rax
movzbl (%rax), %eax
sarl %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movq 0x38(%rax), %rax
movb %cl, (%rax)
movq -0x50(%rbp), %rcx
movl 0x50(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x50(%rcx)
cmpl $0x0, %eax
jne 0x5e2a7
movq -0x50(%rbp), %rax
movl $0x8, 0x50(%rax)
movq -0x50(%rbp), %rax
movq 0x30(%rax), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x30(%rax)
movq -0x50(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x50(%rbp), %rax
movzbl -0x51(%rbp), %ecx
movw 0x81ca(%rax,%rcx,2), %dx
addw $0x1, %dx
movw %dx, 0x81ca(%rax,%rcx,2)
cmpl $0x80, -0xf8(%rbp)
jb 0x5e4bb
movq -0xd8(%rbp), %rdx
movl -0xf8(%rbp), %ecx
movl -0xf4(%rbp), %eax
movq %rdx, -0x8(%rbp)
movl %ecx, -0xc(%rbp)
movl %eax, -0x10(%rbp)
cmpl $0x3, -0xc(%rbp)
jb 0x5e3a3
cmpl $0x1, -0x10(%rbp)
jb 0x5e3a3
cmpl $0x8000, -0x10(%rbp)    # imm = 0x8000
ja 0x5e3a3
movl -0xc(%rbp), %ecx
movq -0x8(%rbp), %rax
addl 0x54(%rax), %ecx
movl %ecx, 0x54(%rax)
movl -0xc(%rbp), %eax
subl $0x3, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movb %cl, (%rax)
movl -0x10(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x10(%rbp)
movl -0x10(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movb %cl, 0x1(%rax)
movl -0x10(%rbp), %eax
shrl $0x8, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movb %cl, 0x2(%rax)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rcx
addq $0x3, %rcx
movq %rcx, 0x30(%rax)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movzbl (%rax), %eax
sarl %eax
orl $0x80, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movb %cl, (%rax)
movq -0x8(%rbp), %rcx
movl 0x50(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x50(%rcx)
cmpl $0x0, %eax
je 0x5e3c2
jmp 0x5e3e8
leaq 0xce2e(%rip), %rdi      # 0x6b1d8
leaq 0xcc2b(%rip), %rsi      # 0x6afdc
movl $0x3f9, %edx            # imm = 0x3F9
leaq 0xce79(%rip), %rcx      # 0x6b236
callq 0x4200
movq -0x8(%rbp), %rax
movl $0x8, 0x50(%rax)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x30(%rax)
movq -0x8(%rbp), %rax
movq %rcx, 0x38(%rax)
movl -0x10(%rbp), %eax
andl $0x1ff, %eax            # imm = 0x1FF
movl %eax, %eax
movl %eax, %ecx
leaq 0xd035(%rip), %rax      # 0x6b430
movzbl (%rax,%rcx), %eax
movl %eax, -0x14(%rbp)
movl -0x10(%rbp), %eax
shrl $0x8, %eax
andl $0x7f, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0xd21a(%rip), %rax      # 0x6b630
movzbl (%rax,%rcx), %eax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rax
addq $0x81ca, %rax           # imm = 0x81CA
addq $0x240, %rax            # imm = 0x240
movq %rax, -0x160(%rbp)
cmpl $0x200, -0x10(%rbp)     # imm = 0x200
jae 0x5e448
movl -0x14(%rbp), %eax
movl %eax, -0x164(%rbp)
jmp 0x5e451
movl -0x18(%rbp), %eax
movl %eax, -0x164(%rbp)
movq -0x160(%rbp), %rax
movl -0x164(%rbp), %ecx
movl %ecx, %ecx
movw (%rax,%rcx,2), %dx
addw $0x1, %dx
movw %dx, (%rax,%rcx,2)
cmpl $0x3, -0xc(%rbp)
jb 0x5e49f
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
subl $0x3, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0xd229(%rip), %rcx      # 0x6b6b0
movzwl (%rcx,%rdx,2), %ecx
movw 0x81ca(%rax,%rcx,2), %dx
addw $0x1, %dx
movw %dx, 0x81ca(%rax,%rcx,2)
movq -0xd8(%rbp), %rax
movl $0x0, 0x68(%rax)
movl -0xf8(%rbp), %eax
movl %eax, -0xf0(%rbp)
jmp 0x5e4fa
movq -0xd8(%rbp), %rax
movl -0xfc(%rbp), %ecx
movzbl 0xc8(%rax,%rcx), %ecx
movq -0xd8(%rbp), %rax
movl %ecx, 0x6c(%rax)
movl -0xf4(%rbp), %ecx
movq -0xd8(%rbp), %rax
movl %ecx, 0x64(%rax)
movl -0xf8(%rbp), %ecx
movq -0xd8(%rbp), %rax
movl %ecx, 0x68(%rax)
jmp 0x5e6f4
movq -0xd8(%rbp), %rdx
movq -0xd8(%rbp), %rax
movl 0x68(%rax), %ecx
movq -0xd8(%rbp), %rax
movl 0x64(%rax), %eax
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movl %eax, -0x28(%rbp)
cmpl $0x3, -0x24(%rbp)
jb 0x5e5d7
cmpl $0x1, -0x28(%rbp)
jb 0x5e5d7
cmpl $0x8000, -0x28(%rbp)    # imm = 0x8000
ja 0x5e5d7
movl -0x24(%rbp), %ecx
movq -0x20(%rbp), %rax
addl 0x54(%rax), %ecx
movl %ecx, 0x54(%rax)
movl -0x24(%rbp), %eax
subl $0x3, %eax
movb %al, %cl
movq -0x20(%rbp), %rax
movq 0x30(%rax), %rax
movb %cl, (%rax)
movl -0x28(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x20(%rbp), %rax
movq 0x30(%rax), %rax
movb %cl, 0x1(%rax)
movl -0x28(%rbp), %eax
shrl $0x8, %eax
movb %al, %cl
movq -0x20(%rbp), %rax
movq 0x30(%rax), %rax
movb %cl, 0x2(%rax)
movq -0x20(%rbp), %rax
movq 0x30(%rax), %rcx
addq $0x3, %rcx
movq %rcx, 0x30(%rax)
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rax
movzbl (%rax), %eax
sarl %eax
orl $0x80, %eax
movb %al, %cl
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rax
movb %cl, (%rax)
movq -0x20(%rbp), %rcx
movl 0x50(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x50(%rcx)
cmpl $0x0, %eax
je 0x5e5f6
jmp 0x5e61c
leaq 0xcbfa(%rip), %rdi      # 0x6b1d8
leaq 0xc9f7(%rip), %rsi      # 0x6afdc
movl $0x3f9, %edx            # imm = 0x3F9
leaq 0xcc45(%rip), %rcx      # 0x6b236
callq 0x4200
movq -0x20(%rbp), %rax
movl $0x8, 0x50(%rax)
movq -0x20(%rbp), %rax
movq 0x30(%rax), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x30(%rax)
movq -0x20(%rbp), %rax
movq %rcx, 0x38(%rax)
movl -0x28(%rbp), %eax
andl $0x1ff, %eax            # imm = 0x1FF
movl %eax, %eax
movl %eax, %ecx
leaq 0xce01(%rip), %rax      # 0x6b430
movzbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movl -0x28(%rbp), %eax
shrl $0x8, %eax
andl $0x7f, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0xcfe6(%rip), %rax      # 0x6b630
movzbl (%rax,%rcx), %eax
movl %eax, -0x30(%rbp)
movq -0x20(%rbp), %rax
addq $0x81ca, %rax           # imm = 0x81CA
addq $0x240, %rax            # imm = 0x240
movq %rax, -0x170(%rbp)
cmpl $0x200, -0x28(%rbp)     # imm = 0x200
jae 0x5e67c
movl -0x2c(%rbp), %eax
movl %eax, -0x174(%rbp)
jmp 0x5e685
movl -0x30(%rbp), %eax
movl %eax, -0x174(%rbp)
movq -0x170(%rbp), %rax
movl -0x174(%rbp), %ecx
movl %ecx, %ecx
movw (%rax,%rcx,2), %dx
addw $0x1, %dx
movw %dx, (%rax,%rcx,2)
cmpl $0x3, -0x24(%rbp)
jb 0x5e6d3
movq -0x20(%rbp), %rax
movl -0x24(%rbp), %ecx
subl $0x3, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0xcff5(%rip), %rcx      # 0x6b6b0
movzwl (%rcx,%rdx,2), %ecx
movw 0x81ca(%rax,%rcx,2), %dx
addw $0x1, %dx
movw %dx, 0x81ca(%rax,%rcx,2)
movq -0xd8(%rbp), %rax
movl 0x68(%rax), %eax
subl $0x1, %eax
movl %eax, -0xf0(%rbp)
movq -0xd8(%rbp), %rax
movl $0x0, 0x68(%rax)
jmp 0x5ea93
cmpl $0x0, -0xf4(%rbp)
jne 0x5e809
movq -0xd8(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0xd8(%rbp), %rax
addq $0xc8, %rax
movq %rax, -0x180(%rbp)
movl -0xfc(%rbp), %eax
cmpq $0x8100, %rax           # imm = 0x8100
jae 0x5e745
movl -0xfc(%rbp), %eax
movq %rax, -0x190(%rbp)
jmp 0x5e753
movl $0x8100, %eax           # imm = 0x8100
movq %rax, -0x190(%rbp)
jmp 0x5e753
movq -0x188(%rbp), %rcx
movq -0x180(%rbp), %rax
movq -0x190(%rbp), %rdx
movb (%rax,%rdx), %al
movq %rcx, -0x60(%rbp)
movb %al, -0x61(%rbp)
movq -0x60(%rbp), %rax
movl 0x54(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x54(%rax)
movb -0x61(%rbp), %cl
movq -0x60(%rbp), %rdx
movq 0x30(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x30(%rdx)
movb %cl, (%rax)
movq -0x60(%rbp), %rax
movq 0x38(%rax), %rax
movzbl (%rax), %eax
sarl %eax
movb %al, %cl
movq -0x60(%rbp), %rax
movq 0x38(%rax), %rax
movb %cl, (%rax)
movq -0x60(%rbp), %rcx
movl 0x50(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x50(%rcx)
cmpl $0x0, %eax
jne 0x5e7e8
movq -0x60(%rbp), %rax
movl $0x8, 0x50(%rax)
movq -0x60(%rbp), %rax
movq 0x30(%rax), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x30(%rax)
movq -0x60(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x60(%rbp), %rax
movzbl -0x61(%rbp), %ecx
movw 0x81ca(%rax,%rcx,2), %dx
addw $0x1, %dx
movw %dx, 0x81ca(%rax,%rcx,2)
jmp 0x5ea91
movq -0xd8(%rbp), %rax
cmpl $0x0, 0x1c(%rax)
jne 0x5e83a
movq -0xd8(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x10000, %eax          # imm = 0x10000
cmpl $0x0, %eax
jne 0x5e83a
cmpl $0x80, -0xf8(%rbp)
jb 0x5ea14
movq -0xd8(%rbp), %rdx
movl -0xf8(%rbp), %ecx
movl -0xf4(%rbp), %eax
movq %rdx, -0x38(%rbp)
movl %ecx, -0x3c(%rbp)
movl %eax, -0x40(%rbp)
cmpl $0x3, -0x3c(%rbp)
jb 0x5e90a
cmpl $0x1, -0x40(%rbp)
jb 0x5e90a
cmpl $0x8000, -0x40(%rbp)    # imm = 0x8000
ja 0x5e90a
movl -0x3c(%rbp), %ecx
movq -0x38(%rbp), %rax
addl 0x54(%rax), %ecx
movl %ecx, 0x54(%rax)
movl -0x3c(%rbp), %eax
subl $0x3, %eax
movb %al, %cl
movq -0x38(%rbp), %rax
movq 0x30(%rax), %rax
movb %cl, (%rax)
movl -0x40(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x38(%rbp), %rax
movq 0x30(%rax), %rax
movb %cl, 0x1(%rax)
movl -0x40(%rbp), %eax
shrl $0x8, %eax
movb %al, %cl
movq -0x38(%rbp), %rax
movq 0x30(%rax), %rax
movb %cl, 0x2(%rax)
movq -0x38(%rbp), %rax
movq 0x30(%rax), %rcx
addq $0x3, %rcx
movq %rcx, 0x30(%rax)
movq -0x38(%rbp), %rax
movq 0x38(%rax), %rax
movzbl (%rax), %eax
sarl %eax
orl $0x80, %eax
movb %al, %cl
movq -0x38(%rbp), %rax
movq 0x38(%rax), %rax
movb %cl, (%rax)
movq -0x38(%rbp), %rcx
movl 0x50(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x50(%rcx)
cmpl $0x0, %eax
je 0x5e929
jmp 0x5e94f
leaq 0xc8c7(%rip), %rdi      # 0x6b1d8
leaq 0xc6c4(%rip), %rsi      # 0x6afdc
movl $0x3f9, %edx            # imm = 0x3F9
leaq 0xc912(%rip), %rcx      # 0x6b236
callq 0x4200
movq -0x38(%rbp), %rax
movl $0x8, 0x50(%rax)
movq -0x38(%rbp), %rax
movq 0x30(%rax), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x30(%rax)
movq -0x38(%rbp), %rax
movq %rcx, 0x38(%rax)
movl -0x40(%rbp), %eax
andl $0x1ff, %eax            # imm = 0x1FF
movl %eax, %eax
movl %eax, %ecx
leaq 0xcace(%rip), %rax      # 0x6b430
movzbl (%rax,%rcx), %eax
movl %eax, -0x44(%rbp)
movl -0x40(%rbp), %eax
shrl $0x8, %eax
andl $0x7f, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0xccb3(%rip), %rax      # 0x6b630
movzbl (%rax,%rcx), %eax
movl %eax, -0x48(%rbp)
movq -0x38(%rbp), %rax
addq $0x81ca, %rax           # imm = 0x81CA
addq $0x240, %rax            # imm = 0x240
movq %rax, -0x198(%rbp)
cmpl $0x200, -0x40(%rbp)     # imm = 0x200
jae 0x5e9af
movl -0x44(%rbp), %eax
movl %eax, -0x19c(%rbp)
jmp 0x5e9b8
movl -0x48(%rbp), %eax
movl %eax, -0x19c(%rbp)
movq -0x198(%rbp), %rax
movl -0x19c(%rbp), %ecx
movl %ecx, %ecx
movw (%rax,%rcx,2), %dx
addw $0x1, %dx
movw %dx, (%rax,%rcx,2)
cmpl $0x3, -0x3c(%rbp)
jb 0x5ea06
movq -0x38(%rbp), %rax
movl -0x3c(%rbp), %ecx
subl $0x3, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0xccc2(%rip), %rcx      # 0x6b6b0
movzwl (%rcx,%rdx,2), %ecx
movw 0x81ca(%rax,%rcx,2), %dx
addw $0x1, %dx
movw %dx, 0x81ca(%rax,%rcx,2)
movl -0xf8(%rbp), %eax
movl %eax, -0xf0(%rbp)
jmp 0x5ea8f
movq -0xd8(%rbp), %rax
addq $0xc8, %rax
movq %rax, -0x1a8(%rbp)
movl -0xfc(%rbp), %eax
cmpq $0x8100, %rax           # imm = 0x8100
jae 0x5ea45
movl -0xfc(%rbp), %eax
movq %rax, -0x1b0(%rbp)
jmp 0x5ea53
movl $0x8100, %eax           # imm = 0x8100
movq %rax, -0x1b0(%rbp)
jmp 0x5ea53
movq -0x1a8(%rbp), %rax
movq -0x1b0(%rbp), %rcx
movzbl (%rax,%rcx), %ecx
movq -0xd8(%rbp), %rax
movl %ecx, 0x6c(%rax)
movl -0xf4(%rbp), %ecx
movq -0xd8(%rbp), %rax
movl %ecx, 0x64(%rax)
movl -0xf8(%rbp), %ecx
movq -0xd8(%rbp), %rax
movl %ecx, 0x68(%rax)
jmp 0x5ea91
jmp 0x5ea93
movl -0xf0(%rbp), %ecx
movq -0xd8(%rbp), %rax
addl 0x24(%rax), %ecx
movl %ecx, 0x24(%rax)
movq -0xd8(%rbp), %rax
movl 0x28(%rax), %eax
cmpl -0xf0(%rbp), %eax
jb 0x5eaba
jmp 0x5ead9
leaq 0xc642(%rip), %rdi      # 0x6b103
leaq 0xc514(%rip), %rsi      # 0x6afdc
movl $0x46f, %edx            # imm = 0x46F
leaq 0xc652(%rip), %rcx      # 0x6b126
callq 0x4200
movl -0xf0(%rbp), %edx
movq -0xd8(%rbp), %rax
movl 0x28(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x28(%rax)
movq -0xd8(%rbp), %rax
movl 0x2c(%rax), %eax
addl -0xf0(%rbp), %eax
cmpl $0x8000, %eax           # imm = 0x8000
jae 0x5eb1d
movq -0xd8(%rbp), %rax
movl 0x2c(%rax), %eax
addl -0xf0(%rbp), %eax
movl %eax, -0x1b4(%rbp)
jmp 0x5eb2a
movl $0x8000, %eax           # imm = 0x8000
movl %eax, -0x1b4(%rbp)
jmp 0x5eb2a
movl -0x1b4(%rbp), %ecx
movq -0xd8(%rbp), %rax
movl %ecx, 0x2c(%rax)
movq -0xd8(%rbp), %rax
movq 0x30(%rax), %rax
movq -0xd8(%rbp), %rcx
addq $0x92aa, %rcx           # imm = 0x92AA
addq $0xfff8, %rcx           # imm = 0xFFF8
cmpq %rcx, %rax
ja 0x5ebb5
movq -0xd8(%rbp), %rax
cmpl $0x7c00, 0x54(%rax)     # imm = 0x7C00
jbe 0x5ec15
movq -0xd8(%rbp), %rax
movq 0x30(%rax), %rax
movq -0xd8(%rbp), %rcx
addq $0x92aa, %rcx           # imm = 0x92AA
subq %rcx, %rax
imull $0x73, %eax, %eax
shrl $0x7, %eax
movq -0xd8(%rbp), %rcx
cmpl 0x54(%rcx), %eax
jae 0x5ebb5
movq -0xd8(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x80000, %eax          # imm = 0x80000
cmpl $0x0, %eax
je 0x5ec15
movq -0xe0(%rbp), %rcx
movq -0xd8(%rbp), %rax
movq %rcx, 0xb0(%rax)
movq -0xe8(%rbp), %rcx
movq -0xd8(%rbp), %rax
movq %rcx, 0xb8(%rax)
movq -0xd8(%rbp), %rdi
xorl %esi, %esi
callq 0x5ec60
movl %eax, -0x130(%rbp)
cmpl $0x0, %eax
je 0x5ec13
movl -0x130(%rbp), %edx
movl $0x1, %eax
xorl %ecx, %ecx
cmpl $0x0, %edx
cmovll %ecx, %eax
movl %eax, -0xd0(%rbp)
jmp 0x5ec4e
jmp 0x5ec15
jmp 0x5d64f
movq -0xe0(%rbp), %rcx
movq -0xd8(%rbp), %rax
movq %rcx, 0xb0(%rax)
movq -0xe8(%rbp), %rcx
movq -0xd8(%rbp), %rax
movq %rcx, 0xb8(%rax)
movl $0x1, -0xd0(%rbp)
movl -0xd0(%rbp), %eax
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
nopl (%rax)