// File: jimmiebergmann[P]fbx-file/miniz.c
// Function: tdefl_compress_normal(tdefl_compressor*)
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, (mz_uint)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 $0x1d0, %rsp            # imm = 0x1D0
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 0x8862
xorl %eax, %eax
cmpl $0x0, -0xec(%rbp)
movb %al, -0x132(%rbp)
je 0x8856
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 0x8871
jmp 0x9e35
movq -0xd8(%rbp), %rax
movl 0x28(%rax), %eax
movq -0xd8(%rbp), %rcx
addl 0x2c(%rcx), %eax
cmpl $0x2, %eax
jb 0x8aba
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 0x893f
movq -0xe8(%rbp), %rax
movq %rax, -0x140(%rbp)
jmp 0x8957
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 0x8ab5
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 0x8a20
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 0x89a7
jmp 0x8c7f
jmp 0x8abc
xorl %eax, %eax
cmpq $0x0, -0xe8(%rbp)
movb %al, -0x141(%rbp)
je 0x8ae5
movq -0xd8(%rbp), %rax
cmpl $0x102, 0x28(%rax)      # imm = 0x102
setb %al
movb %al, -0x141(%rbp)
movb -0x141(%rbp), %al
testb $0x1, %al
jne 0x8af4
jmp 0x8c7d
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 0x8b8a
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 0x8c78
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 0x8abc
jmp 0x8c7f
movq -0xd8(%rbp), %rcx
movl $0x8000, %eax           # imm = 0x8000
subl 0x28(%rcx), %eax
movq -0xd8(%rbp), %rcx
cmpl 0x2c(%rcx), %eax
jae 0x8cb1
movq -0xd8(%rbp), %rcx
movl $0x8000, %eax           # imm = 0x8000
subl 0x28(%rcx), %eax
movl %eax, -0x148(%rbp)
jmp 0x8cc1
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 0x8cef
movq -0xd8(%rbp), %rax
cmpl $0x102, 0x28(%rax)      # imm = 0x102
jae 0x8cef
jmp 0x9e35
movl $0x1, -0xf0(%rbp)
movl $0x0, -0xf4(%rbp)
movq -0xd8(%rbp), %rax
cmpl $0x0, 0x68(%rax)
je 0x8d22
movq -0xd8(%rbp), %rax
movl 0x68(%rax), %eax
movl %eax, -0x14c(%rbp)
jmp 0x8d2f
movl $0x2, %eax
movl %eax, -0x14c(%rbp)
jmp 0x8d2f
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 0x8e33
movq -0xd8(%rbp), %rax
cmpl $0x0, 0x2c(%rax)
je 0x8e2e
movq -0xd8(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x80000, %eax          # imm = 0x80000
cmpl $0x0, %eax
jne 0x8e2e
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 0x8e0d
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 0x8dfc
jmp 0x8e0d
movl -0xf8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xf8(%rbp)
jmp 0x8dc0
cmpl $0x3, -0xf8(%rbp)
jae 0x8e22
movl $0x0, -0xf8(%rbp)
jmp 0x8e2c
movl $0x1, -0xf4(%rbp)
jmp 0x8e2e
jmp 0x936b
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
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 0x8f2d
movl -0x7c(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jbe 0x8f4c
jmp 0x8f51
leaq 0x2d933(%rip), %rdi     # 0x36867
leaq 0x2d1e3(%rip), %rsi     # 0x3611e
movl $0x555, %edx            # imm = 0x555
leaq 0x2d945(%rip), %rcx     # 0x3688c
callq 0x31d0
jmp 0x9369
jmp 0x8f53
jmp 0x8f55
movl -0xac(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xac(%rbp)
cmpl $0x0, %eax
jne 0x8f6e
jmp 0x9369
movq -0x70(%rbp), %rax
movl -0xa0(%rbp), %ecx
movzwl 0x192aa(%rax,%rcx,2), %eax
movl %eax, -0xa4(%rbp)
cmpl $0x0, -0xa4(%rbp)
je 0x8fa6
movl -0x74(%rbp), %eax
subl -0xa4(%rbp), %eax
movzwl %ax, %eax
movl %eax, -0x94(%rbp)
cmpl -0x78(%rbp), %eax
jbe 0x8fab
jmp 0x9369
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 0x8fe9
jmp 0x90de
movq -0x70(%rbp), %rax
movl -0xa0(%rbp), %ecx
movzwl 0x192aa(%rax,%rcx,2), %eax
movl %eax, -0xa4(%rbp)
cmpl $0x0, -0xa4(%rbp)
je 0x9021
movl -0x74(%rbp), %eax
subl -0xa4(%rbp), %eax
movzwl %ax, %eax
movl %eax, -0x94(%rbp)
cmpl -0x78(%rbp), %eax
jbe 0x9026
jmp 0x9369
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 0x9061
jmp 0x90de
movq -0x70(%rbp), %rax
movl -0xa0(%rbp), %ecx
movzwl 0x192aa(%rax,%rcx,2), %eax
movl %eax, -0xa4(%rbp)
cmpl $0x0, -0xa4(%rbp)
je 0x9099
movl -0x74(%rbp), %eax
subl -0xa4(%rbp), %eax
movzwl %ax, %eax
movl %eax, -0x94(%rbp)
cmpl -0x78(%rbp), %eax
jbe 0x909e
jmp 0x9369
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 0x90d9
jmp 0x90de
jmp 0x8f55
cmpl $0x0, -0x94(%rbp)
jne 0x90ec
jmp 0x9369
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 0x9120
jmp 0x8f53
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 0x9253
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 0x9253
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 0x9253
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 0x9253
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 0x9138
cmpl $0x0, -0xa8(%rbp)
jne 0x92ae
movl -0x94(%rbp), %ecx
movq -0x88(%rbp), %rax
movl %ecx, (%rax)
cmpl $0x102, -0x7c(%rbp)     # imm = 0x102
jae 0x928d
movl -0x7c(%rbp), %eax
movl %eax, -0x154(%rbp)
jmp 0x929a
movl $0x102, %eax            # imm = 0x102
movl %eax, -0x154(%rbp)
jmp 0x929a
movl -0x154(%rbp), %ecx
movq -0x90(%rbp), %rax
movl %ecx, (%rax)
jmp 0x9369
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 0x9364
movl -0x94(%rbp), %ecx
movq -0x88(%rbp), %rax
movl %ecx, (%rax)
movl -0x7c(%rbp), %eax
cmpl -0xa8(%rbp), %eax
jae 0x9318
movl -0x7c(%rbp), %eax
movl %eax, -0x158(%rbp)
jmp 0x9324
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 0x9340
jmp 0x9369
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 0x8f53
jmp 0x936b
cmpl $0x3, -0xf8(%rbp)
jne 0x9380
cmpl $0x2000, -0xf4(%rbp)    # imm = 0x2000
jae 0x93ab
movl -0xfc(%rbp), %eax
cmpl -0xf4(%rbp), %eax
je 0x93ab
movq -0xd8(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x20000, %eax          # imm = 0x20000
cmpl $0x0, %eax
je 0x93bf
cmpl $0x5, -0xf8(%rbp)
ja 0x93bf
movl $0x0, -0xf8(%rbp)
movl $0x0, -0xf4(%rbp)
movq -0xd8(%rbp), %rax
cmpl $0x0, 0x68(%rax)
je 0x98fa
movl -0xf8(%rbp), %eax
movq -0xd8(%rbp), %rcx
cmpl 0x68(%rcx), %eax
jbe 0x96e6
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 0x9474
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 0x96a2
movq -0xd8(%rbp), %rdx
movl -0xf8(%rbp), %ecx
movl -0xf4(%rbp), %eax
movq %rdx, -0x8(%rbp)
movl %ecx, -0xc(%rbp)
movl %eax, -0x10(%rbp)
xorl %eax, %eax
cmpl $0x3, -0xc(%rbp)
movb %al, -0x159(%rbp)
jb 0x94e9
xorl %eax, %eax
cmpl $0x1, -0x10(%rbp)
movb %al, -0x159(%rbp)
jb 0x94e9
cmpl $0x8000, -0x10(%rbp)    # imm = 0x8000
setbe %al
movb %al, -0x159(%rbp)
movb -0x159(%rbp), %al
testb $0x1, %al
jne 0x94f8
jmp 0x958a
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 0x95a9
jmp 0x95cf
leaq 0x2d356(%rip), %rdi     # 0x368e7
leaq 0x2cb86(%rip), %rsi     # 0x3611e
movl $0x66d, %edx            # imm = 0x66D
leaq 0x2d3a1(%rip), %rcx     # 0x36945
callq 0x31d0
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 0x2c25e(%rip), %rax     # 0x35840
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 0x2c443(%rip), %rax     # 0x35a40
movzbl (%rax,%rcx), %eax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rax
addq $0x81ca, %rax           # imm = 0x81CA
addq $0x240, %rax            # imm = 0x240
movq %rax, -0x168(%rbp)
cmpl $0x200, -0x10(%rbp)     # imm = 0x200
jae 0x962f
movl -0x14(%rbp), %eax
movl %eax, -0x16c(%rbp)
jmp 0x9638
movl -0x18(%rbp), %eax
movl %eax, -0x16c(%rbp)
movq -0x168(%rbp), %rax
movl -0x16c(%rbp), %ecx
movl %ecx, %ecx
movw (%rax,%rcx,2), %dx
addw $0x1, %dx
movw %dx, (%rax,%rcx,2)
cmpl $0x3, -0xc(%rbp)
jb 0x9686
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
subl $0x3, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0x2c452(%rip), %rcx     # 0x35ac0
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 0x96e1
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 0x98f5
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)
xorl %eax, %eax
cmpl $0x3, -0x24(%rbp)
movb %al, -0x16d(%rbp)
jb 0x9737
xorl %eax, %eax
cmpl $0x1, -0x28(%rbp)
movb %al, -0x16d(%rbp)
jb 0x9737
cmpl $0x8000, -0x28(%rbp)    # imm = 0x8000
setbe %al
movb %al, -0x16d(%rbp)
movb -0x16d(%rbp), %al
testb $0x1, %al
jne 0x9746
jmp 0x97d8
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 0x97f7
jmp 0x981d
leaq 0x2d108(%rip), %rdi     # 0x368e7
leaq 0x2c938(%rip), %rsi     # 0x3611e
movl $0x66d, %edx            # imm = 0x66D
leaq 0x2d153(%rip), %rcx     # 0x36945
callq 0x31d0
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 0x2c010(%rip), %rax     # 0x35840
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 0x2c1f5(%rip), %rax     # 0x35a40
movzbl (%rax,%rcx), %eax
movl %eax, -0x30(%rbp)
movq -0x20(%rbp), %rax
addq $0x81ca, %rax           # imm = 0x81CA
addq $0x240, %rax            # imm = 0x240
movq %rax, -0x178(%rbp)
cmpl $0x200, -0x28(%rbp)     # imm = 0x200
jae 0x987d
movl -0x2c(%rbp), %eax
movl %eax, -0x17c(%rbp)
jmp 0x9886
movl -0x30(%rbp), %eax
movl %eax, -0x17c(%rbp)
movq -0x178(%rbp), %rax
movl -0x17c(%rbp), %ecx
movl %ecx, %ecx
movw (%rax,%rcx,2), %dx
addw $0x1, %dx
movw %dx, (%rax,%rcx,2)
cmpl $0x3, -0x24(%rbp)
jb 0x98d4
movq -0x20(%rbp), %rax
movl -0x24(%rbp), %ecx
subl $0x3, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0x2c204(%rip), %rcx     # 0x35ac0
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 0x9cae
cmpl $0x0, -0xf4(%rbp)
jne 0x9a0a
movq -0xd8(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0xd8(%rbp), %rax
addq $0xc8, %rax
movq %rax, -0x188(%rbp)
movl -0xfc(%rbp), %eax
cmpq $0x8100, %rax           # imm = 0x8100
jae 0x9946
movl -0xfc(%rbp), %eax
movq %rax, -0x198(%rbp)
jmp 0x9954
movl $0x8100, %eax           # imm = 0x8100
movq %rax, -0x198(%rbp)
jmp 0x9954
movq -0x190(%rbp), %rcx
movq -0x188(%rbp), %rax
movq -0x198(%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 0x99e9
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 0x9cac
movq -0xd8(%rbp), %rax
cmpl $0x0, 0x1c(%rax)
jne 0x9a3b
movq -0xd8(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x10000, %eax          # imm = 0x10000
cmpl $0x0, %eax
jne 0x9a3b
cmpl $0x80, -0xf8(%rbp)
jb 0x9c2f
movq -0xd8(%rbp), %rdx
movl -0xf8(%rbp), %ecx
movl -0xf4(%rbp), %eax
movq %rdx, -0x38(%rbp)
movl %ecx, -0x3c(%rbp)
movl %eax, -0x40(%rbp)
xorl %eax, %eax
cmpl $0x3, -0x3c(%rbp)
movb %al, -0x199(%rbp)
jb 0x9a84
xorl %eax, %eax
cmpl $0x1, -0x40(%rbp)
movb %al, -0x199(%rbp)
jb 0x9a84
cmpl $0x8000, -0x40(%rbp)    # imm = 0x8000
setbe %al
movb %al, -0x199(%rbp)
movb -0x199(%rbp), %al
testb $0x1, %al
jne 0x9a93
jmp 0x9b25
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 0x9b44
jmp 0x9b6a
leaq 0x2cdbb(%rip), %rdi     # 0x368e7
leaq 0x2c5eb(%rip), %rsi     # 0x3611e
movl $0x66d, %edx            # imm = 0x66D
leaq 0x2ce06(%rip), %rcx     # 0x36945
callq 0x31d0
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 0x2bcc3(%rip), %rax     # 0x35840
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 0x2bea8(%rip), %rax     # 0x35a40
movzbl (%rax,%rcx), %eax
movl %eax, -0x48(%rbp)
movq -0x38(%rbp), %rax
addq $0x81ca, %rax           # imm = 0x81CA
addq $0x240, %rax            # imm = 0x240
movq %rax, -0x1a8(%rbp)
cmpl $0x200, -0x40(%rbp)     # imm = 0x200
jae 0x9bca
movl -0x44(%rbp), %eax
movl %eax, -0x1ac(%rbp)
jmp 0x9bd3
movl -0x48(%rbp), %eax
movl %eax, -0x1ac(%rbp)
movq -0x1a8(%rbp), %rax
movl -0x1ac(%rbp), %ecx
movl %ecx, %ecx
movw (%rax,%rcx,2), %dx
addw $0x1, %dx
movw %dx, (%rax,%rcx,2)
cmpl $0x3, -0x3c(%rbp)
jb 0x9c21
movq -0x38(%rbp), %rax
movl -0x3c(%rbp), %ecx
subl $0x3, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0x2beb7(%rip), %rcx     # 0x35ac0
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 0x9caa
movq -0xd8(%rbp), %rax
addq $0xc8, %rax
movq %rax, -0x1b8(%rbp)
movl -0xfc(%rbp), %eax
cmpq $0x8100, %rax           # imm = 0x8100
jae 0x9c60
movl -0xfc(%rbp), %eax
movq %rax, -0x1c0(%rbp)
jmp 0x9c6e
movl $0x8100, %eax           # imm = 0x8100
movq %rax, -0x1c0(%rbp)
jmp 0x9c6e
movq -0x1b8(%rbp), %rax
movq -0x1c0(%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 0x9cac
jmp 0x9cae
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 0x9cd5
jmp 0x9cf4
leaq 0x2cb36(%rip), %rdi     # 0x36812
leaq 0x2c43b(%rip), %rsi     # 0x3611e
movl $0x704, %edx            # imm = 0x704
leaq 0x2cb46(%rip), %rcx     # 0x36835
callq 0x31d0
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 0x9d38
movq -0xd8(%rbp), %rax
movl 0x2c(%rax), %eax
addl -0xf0(%rbp), %eax
movl %eax, -0x1c4(%rbp)
jmp 0x9d45
movl $0x8000, %eax           # imm = 0x8000
movl %eax, -0x1c4(%rbp)
jmp 0x9d45
movl -0x1c4(%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 0x9dd0
movq -0xd8(%rbp), %rax
cmpl $0x7c00, 0x54(%rax)     # imm = 0x7C00
jbe 0x9e30
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 0x9dd0
movq -0xd8(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x80000, %eax          # imm = 0x80000
cmpl $0x0, %eax
je 0x9e30
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 0x9e80
movl %eax, -0x130(%rbp)
cmpl $0x0, %eax
je 0x9e2e
movl -0x130(%rbp), %edx
movl $0x1, %eax
xorl %ecx, %ecx
cmpl $0x0, %edx
cmovll %ecx, %eax
movl %eax, -0xd0(%rbp)
jmp 0x9e69
jmp 0x9e30
jmp 0x881f
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 $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
nopl (%rax,%rax)