// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/src/../foreign/miniz-c.h
// Function: tdefl_flush_block
static int tdefl_flush_block(tdefl_compressor *d, int flush)
{
    mz_uint saved_bit_buf, saved_bits_in;
    mz_uint8 *pSaved_output_buf;
    mz_bool comp_block_succeeded = MZ_FALSE;
    int n, use_raw_block = ((d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS) != 0) && (d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size;
    mz_uint8 *pOutput_buf_start = ((d->m_pPut_buf_func == NULL) && ((*d->m_pOut_buf_size - d->m_out_buf_ofs) >= TDEFL_OUT_BUF_SIZE)) ? ((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs) : d->m_output_buf;

    d->m_pOutput_buf = pOutput_buf_start;
    d->m_pOutput_buf_end = d->m_pOutput_buf + TDEFL_OUT_BUF_SIZE - 16;

    MZ_ASSERT(!d->m_output_flush_remaining);
    d->m_output_flush_ofs = 0;
    d->m_output_flush_remaining = 0;

    *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> d->m_num_flags_left);
    d->m_pLZ_code_buf -= (d->m_num_flags_left == 8);

    if ((d->m_flags & TDEFL_WRITE_ZLIB_HEADER) && (!d->m_block_index))
    {
        const mz_uint8 cmf = 0x78;
        mz_uint8 flg, flevel = 3;
        mz_uint header, i, mz_un = sizeof(s_tdefl_num_probes) / sizeof(mz_uint);

        /* Determine compression level by reversing the process in tdefl_create_comp_flags_from_zip_params() */
        for (i = 0; i < mz_un; i++)
            if (s_tdefl_num_probes[i] == (d->m_flags & 0xFFF)) break;

        if (i < 2)
            flevel = 0;
        else if (i < 6)
            flevel = 1;
        else if (i == 6)
            flevel = 2;

        header = cmf << 8 | (flevel << 6);
        header += 31 - (header % 31);
        flg = header & 0xFF;

        TDEFL_PUT_BITS(cmf, 8);
        TDEFL_PUT_BITS(flg, 8);
    }

    TDEFL_PUT_BITS(flush == TDEFL_FINISH, 1);

    pSaved_output_buf = d->m_pOutput_buf;
    saved_bit_buf = d->m_bit_buffer;
    saved_bits_in = d->m_bits_in;

    if (!use_raw_block)
        comp_block_succeeded = tdefl_compress_block(d, (d->m_flags & TDEFL_FORCE_ALL_STATIC_BLOCKS) || (d->m_total_lz_bytes < 48));

    /* If the block gets expanded, forget the current contents of the output buffer and send a raw block instead. */
    if (((use_raw_block) || ((d->m_total_lz_bytes) && ((d->m_pOutput_buf - pSaved_output_buf + 1U) >= d->m_total_lz_bytes))) &&
        ((d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size))
    {
        mz_uint i;
        d->m_pOutput_buf = pSaved_output_buf;
        d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in;
        TDEFL_PUT_BITS(0, 2);
        if (d->m_bits_in)
        {
            TDEFL_PUT_BITS(0, 8 - d->m_bits_in);
        }
        for (i = 2; i; --i, d->m_total_lz_bytes ^= 0xFFFF)
        {
            TDEFL_PUT_BITS(d->m_total_lz_bytes & 0xFFFF, 16);
        }
        for (i = 0; i < d->m_total_lz_bytes; ++i)
        {
            TDEFL_PUT_BITS(d->m_dict[(d->m_lz_code_buf_dict_pos + i) & TDEFL_LZ_DICT_SIZE_MASK], 8);
        }
    }
    /* Check for the extremely unlikely (if not impossible) case of the compressed block not fitting into the output buffer when using dynamic codes. */
    else if (!comp_block_succeeded)
    {
        d->m_pOutput_buf = pSaved_output_buf;
        d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in;
        tdefl_compress_block(d, MZ_TRUE);
    }

    if (flush)
    {
        if (flush == TDEFL_FINISH)
        {
            if (d->m_bits_in)
            {
                TDEFL_PUT_BITS(0, 8 - d->m_bits_in);
            }
            if (d->m_flags & TDEFL_WRITE_ZLIB_HEADER)
            {
                mz_uint i, a = d->m_adler32;
                for (i = 0; i < 4; i++)
                {
                    TDEFL_PUT_BITS((a >> 24) & 0xFF, 8);
                    a <<= 8;
                }
            }
        }
        else
        {
            mz_uint i, z = 0;
            TDEFL_PUT_BITS(0, 3);
            if (d->m_bits_in)
            {
                TDEFL_PUT_BITS(0, 8 - d->m_bits_in);
            }
            for (i = 2; i; --i, z ^= 0xFFFF)
            {
                TDEFL_PUT_BITS(z & 0xFFFF, 16);
            }
        }
    }

    MZ_ASSERT(d->m_pOutput_buf < d->m_pOutput_buf_end);

    memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0);
    memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1);

    d->m_pLZ_code_buf = d->m_lz_code_buf + 1;
    d->m_pLZ_flags = d->m_lz_code_buf;
    d->m_num_flags_left = 8;
    d->m_lz_code_buf_dict_pos += d->m_total_lz_bytes;
    d->m_total_lz_bytes = 0;
    d->m_block_index++;

    if ((n = (int)(d->m_pOutput_buf - pOutput_buf_start)) != 0)
    {
        if (d->m_pPut_buf_func)
        {
            *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf;
            if (!(*d->m_pPut_buf_func)(d->m_output_buf, n, d->m_pPut_buf_user))
                return (d->m_prev_return_status = TDEFL_STATUS_PUT_BUF_FAILED);
        }
        else if (pOutput_buf_start == d->m_output_buf)
        {
            int bytes_to_copy = (int)MZ_MIN((size_t)n, (size_t)(*d->m_pOut_buf_size - d->m_out_buf_ofs));
            memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf, bytes_to_copy);
            d->m_out_buf_ofs += bytes_to_copy;
            if ((n -= bytes_to_copy) != 0)
            {
                d->m_output_flush_ofs = bytes_to_copy;
                d->m_output_flush_remaining = n;
            }
        }
        else
        {
            d->m_out_buf_ofs += n;
        }
    }

    return d->m_output_flush_remaining;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl $0x0, -0x2c(%rbp)
movq -0x10(%rbp), %rax
movl 0x10(%rax), %ecx
andl $0x80000, %ecx          # imm = 0x80000
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xc9(%rbp)
je 0x1961b1
movq -0x10(%rbp), %rax
movl 0x24(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x58(%rcx), %eax
movq -0x10(%rbp), %rcx
cmpl 0x2c(%rcx), %eax
setbe %al
movb %al, -0xc9(%rbp)
movb -0xc9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x34(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x196209
movq -0x10(%rbp), %rax
movq 0xa0(%rax), %rax
movq (%rax), %rax
movq -0x10(%rbp), %rcx
subq 0xc0(%rcx), %rax
cmpq $0x14ccc, %rax          # imm = 0x14CCC
jb 0x196209
movq -0x10(%rbp), %rax
movq 0x90(%rax), %rax
movq -0x10(%rbp), %rcx
addq 0xc0(%rcx), %rax
movq %rax, -0xd8(%rbp)
jmp 0x19621a
movq -0x10(%rbp), %rax
addq $0x392aa, %rax          # imm = 0x392AA
movq %rax, -0xd8(%rbp)
movq -0xd8(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rcx
addq $0x14ccc, %rcx          # imm = 0x14CCC
addq $-0x10, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x48(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x74(%rax)
jne 0x196258
jmp 0x196277
leaq 0x43097(%rip), %rdi     # 0x1d92f6
leaq 0x42e08(%rip), %rsi     # 0x1d906e
movl $0x4f3, %edx            # imm = 0x4F3
leaq 0x430a1(%rip), %rcx     # 0x1d9313
callq 0x19120
movq -0x10(%rbp), %rax
movl $0x0, 0x70(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x74(%rax)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movzbl (%rax), %eax
movq -0x10(%rbp), %rcx
movl 0x50(%rcx), %ecx
sarl %cl, %eax
movb %al, %cl
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movb %cl, (%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x50(%rax)
sete %al
andb $0x1, %al
movzbl %al, %edx
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rcx
movslq %edx, %rsi
xorl %edx, %edx
subq %rsi, %rdx
addq %rdx, %rcx
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
je 0x196525
movq -0x10(%rbp), %rax
cmpl $0x0, 0x7c(%rax)
jne 0x196525
movb $0x78, -0x41(%rbp)
movb $0x3, -0x43(%rbp)
movl $0xb, -0x50(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jae 0x196344
movl -0x4c(%rbp), %eax
movl %eax, %ecx
leaq 0x4233f(%rip), %rax     # 0x1d8660
movl (%rax,%rcx,4), %eax
movq -0x10(%rbp), %rcx
movl 0x10(%rcx), %ecx
andl $0xfff, %ecx            # imm = 0xFFF
cmpl %ecx, %eax
jne 0x196337
jmp 0x196344
jmp 0x196339
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x19630d
cmpl $0x2, -0x4c(%rbp)
jae 0x196350
movb $0x0, -0x43(%rbp)
jmp 0x19636a
cmpl $0x6, -0x4c(%rbp)
jae 0x19635c
movb $0x1, -0x43(%rbp)
jmp 0x196368
cmpl $0x6, -0x4c(%rbp)
jne 0x196366
movb $0x2, -0x43(%rbp)
jmp 0x196368
jmp 0x19636a
movzbl -0x43(%rbp), %eax
shll $0x6, %eax
orl $0x7800, %eax           # imm = 0x7800
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
movl $0x1f, %ecx
xorl %edx, %edx
divl %ecx
movl $0x1f, %eax
subl %edx, %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
andl $0xff, %eax
movb %al, -0x42(%rbp)
movl $0x78, -0x54(%rbp)
movl $0x8, -0x58(%rbp)
movl -0x54(%rbp), %eax
movl -0x58(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x1963c3
jmp 0x1963e2
leaq 0x42f78(%rip), %rdi     # 0x1d9342
leaq 0x42c9d(%rip), %rsi     # 0x1d906e
movl $0x50f, %edx            # imm = 0x50F
leaq 0x42f36(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0x54(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0x58(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x19645d
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x196441
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x196407
jmp 0x19645f
jmp 0x196461
movzbl -0x42(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl $0x8, -0x60(%rbp)
movl -0x5c(%rbp), %eax
movl -0x60(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x196487
jmp 0x1964a6
leaq 0x42eb4(%rip), %rdi     # 0x1d9342
leaq 0x42bd9(%rip), %rsi     # 0x1d906e
movl $0x510, %edx            # imm = 0x510
leaq 0x42e72(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0x5c(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0x60(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x196521
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x196505
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x1964cb
jmp 0x196523
jmp 0x196525
jmp 0x196527
cmpl $0x4, -0x14(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x64(%rbp)
movl $0x1, -0x68(%rbp)
movl -0x64(%rbp), %eax
movl -0x68(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x196555
jmp 0x196574
leaq 0x42de6(%rip), %rdi     # 0x1d9342
leaq 0x42b0b(%rip), %rsi     # 0x1d906e
movl $0x513, %edx            # imm = 0x513
leaq 0x42da4(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0x64(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0x68(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x1965ef
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x1965d3
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x196599
jmp 0x1965f1
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %eax
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x34(%rbp)
jne 0x196667
movq -0x10(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0x10(%rbp), %rax
movl 0x10(%rax), %ecx
andl $0x40000, %ecx          # imm = 0x40000
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xd9(%rbp)
jne 0x19664d
movq -0x10(%rbp), %rax
cmpl $0x30, 0x54(%rax)
setb %al
movb %al, -0xd9(%rbp)
movq -0xe8(%rbp), %rdi
movb -0xd9(%rbp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x1983b0
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x34(%rbp)
jne 0x19669e
movq -0x10(%rbp), %rax
cmpl $0x0, 0x54(%rax)
je 0x196a96
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x28(%rbp), %rcx
subq %rcx, %rax
addq $0x1, %rax
movq -0x10(%rbp), %rcx
movl 0x54(%rcx), %ecx
cmpq %rcx, %rax
jl 0x196a96
movq -0x10(%rbp), %rax
movl 0x24(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x58(%rcx), %eax
movq -0x10(%rbp), %rcx
cmpl 0x2c(%rcx), %eax
ja 0x196a96
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x40(%rax)
movl -0x18(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x60(%rax)
movl -0x1c(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x5c(%rax)
movl $0x0, -0x70(%rbp)
movl $0x2, -0x74(%rbp)
movl -0x70(%rbp), %eax
movl -0x74(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x1966ff
jmp 0x19671e
leaq 0x42c3c(%rip), %rdi     # 0x1d9342
leaq 0x42961(%rip), %rsi     # 0x1d906e
movl $0x523, %edx            # imm = 0x523
leaq 0x42bfa(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0x70(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0x74(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x196799
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x19677d
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x196743
jmp 0x19679b
movq -0x10(%rbp), %rax
cmpl $0x0, 0x5c(%rax)
je 0x196877
jmp 0x1967ab
movl $0x0, -0x78(%rbp)
movq -0x10(%rbp), %rcx
movl $0x8, %eax
subl 0x5c(%rcx), %eax
movl %eax, -0x7c(%rbp)
movl -0x78(%rbp), %eax
movl -0x7c(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x1967d9
jmp 0x1967f8
leaq 0x42b62(%rip), %rdi     # 0x1d9342
leaq 0x42887(%rip), %rsi     # 0x1d906e
movl $0x526, %edx            # imm = 0x526
leaq 0x42b20(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0x78(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0x7c(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x196873
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x196857
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x19681d
jmp 0x196875
jmp 0x196877
movl $0x2, -0x6c(%rbp)
cmpl $0x0, -0x6c(%rbp)
je 0x19697d
jmp 0x19688a
movq -0x10(%rbp), %rax
movl 0x54(%rax), %eax
andl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0x80(%rbp)
movl $0x10, -0x84(%rbp)
movl -0x80(%rbp), %eax
movl -0x84(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x1968be
jmp 0x1968dd
leaq 0x42a7d(%rip), %rdi     # 0x1d9342
leaq 0x427a2(%rip), %rsi     # 0x1d906e
movl $0x52a, %edx            # imm = 0x52A
leaq 0x42a3b(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0x80(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0x84(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x19695b
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x19693f
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x196905
jmp 0x19695d
jmp 0x19695f
movl -0x6c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x6c(%rbp)
movq -0x10(%rbp), %rax
movl 0x54(%rax), %ecx
xorl $0xffff, %ecx           # imm = 0xFFFF
movl %ecx, 0x54(%rax)
jmp 0x19687e
movl $0x0, -0x6c(%rbp)
movl -0x6c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x54(%rcx), %eax
jae 0x196a94
jmp 0x196996
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movl 0x58(%rcx), %ecx
addl -0x6c(%rbp), %ecx
andl $0x7fff, %ecx           # imm = 0x7FFF
movl %ecx, %ecx
movzbl 0xc8(%rax,%rcx), %eax
movl %eax, -0x88(%rbp)
movl $0x8, -0x8c(%rbp)
movl -0x88(%rbp), %eax
movl -0x8c(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x1969e2
jmp 0x196a01
leaq 0x42959(%rip), %rdi     # 0x1d9342
leaq 0x4267e(%rip), %rsi     # 0x1d906e
movl $0x52e, %edx            # imm = 0x52E
leaq 0x42917(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0x88(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0x8c(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x196a82
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x196a66
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x196a2c
jmp 0x196a84
jmp 0x196a86
movl -0x6c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6c(%rbp)
jmp 0x196984
jmp 0x196acc
cmpl $0x0, -0x2c(%rbp)
jne 0x196aca
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x40(%rax)
movl -0x18(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x60(%rax)
movl -0x1c(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x1983b0
jmp 0x196acc
cmpl $0x0, -0x14(%rbp)
je 0x196ffc
cmpl $0x4, -0x14(%rbp)
jne 0x196d11
movq -0x10(%rbp), %rax
cmpl $0x0, 0x5c(%rax)
je 0x196bce
jmp 0x196af0
movl $0x0, -0x90(%rbp)
movq -0x10(%rbp), %rcx
movl $0x8, %eax
subl 0x5c(%rcx), %eax
movl %eax, -0x94(%rbp)
movl -0x90(%rbp), %eax
movl -0x94(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x196b2a
jmp 0x196b49
leaq 0x42811(%rip), %rdi     # 0x1d9342
leaq 0x42536(%rip), %rsi     # 0x1d906e
movl $0x53f, %edx            # imm = 0x53F
leaq 0x427cf(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0x90(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0x94(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x196bca
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x196bae
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x196b74
jmp 0x196bcc
jmp 0x196bce
movq -0x10(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
je 0x196d0c
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
movl %eax, -0x9c(%rbp)
movl $0x0, -0x98(%rbp)
cmpl $0x4, -0x98(%rbp)
jae 0x196d0a
jmp 0x196c09
movl -0x9c(%rbp), %eax
shrl $0x18, %eax
andl $0xff, %eax
movl %eax, -0xa0(%rbp)
movl $0x8, -0xa4(%rbp)
movl -0xa0(%rbp), %eax
movl -0xa4(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x196c45
jmp 0x196c64
leaq 0x426f6(%rip), %rdi     # 0x1d9342
leaq 0x4241b(%rip), %rsi     # 0x1d906e
movl $0x546, %edx            # imm = 0x546
leaq 0x426b4(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0xa0(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0xa4(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x196ce5
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x196cc9
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x196c8f
jmp 0x196ce7
movl -0x9c(%rbp), %eax
shll $0x8, %eax
movl %eax, -0x9c(%rbp)
movl -0x98(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x98(%rbp)
jmp 0x196bfa
jmp 0x196d0c
jmp 0x196ffa
movl $0x0, -0xac(%rbp)
movl $0x0, -0xb0(%rbp)
movl $0x3, -0xb4(%rbp)
movl -0xb0(%rbp), %eax
movl -0xb4(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x196d4d
jmp 0x196d6c
leaq 0x425ee(%rip), %rdi     # 0x1d9342
leaq 0x42313(%rip), %rsi     # 0x1d906e
movl $0x54e, %edx            # imm = 0x54E
leaq 0x425ac(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0xb0(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0xb4(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x196ded
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x196dd1
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x196d97
jmp 0x196def
movq -0x10(%rbp), %rax
cmpl $0x0, 0x5c(%rax)
je 0x196edd
jmp 0x196dff
movl $0x0, -0xb8(%rbp)
movq -0x10(%rbp), %rcx
movl $0x8, %eax
subl 0x5c(%rcx), %eax
movl %eax, -0xbc(%rbp)
movl -0xb8(%rbp), %eax
movl -0xbc(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x196e39
jmp 0x196e58
leaq 0x42502(%rip), %rdi     # 0x1d9342
leaq 0x42227(%rip), %rsi     # 0x1d906e
movl $0x551, %edx            # imm = 0x551
leaq 0x424c0(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0xb8(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0xbc(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x196ed9
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x196ebd
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x196e83
jmp 0x196edb
jmp 0x196edd
movl $0x2, -0xa8(%rbp)
cmpl $0x0, -0xa8(%rbp)
je 0x196ff8
jmp 0x196ef6
movl -0xac(%rbp), %eax
andl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xc0(%rbp)
movl $0x10, -0xc4(%rbp)
movl -0xc0(%rbp), %eax
movl -0xc4(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
ja 0x196f2f
jmp 0x196f4e
leaq 0x4240c(%rip), %rdi     # 0x1d9342
leaq 0x42131(%rip), %rsi     # 0x1d906e
movl $0x555, %edx            # imm = 0x555
leaq 0x423ca(%rip), %rcx     # 0x1d9313
callq 0x19120
movl -0xc0(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x5c(%rcx), %ecx
shll %cl, %eax
movl %eax, %ecx
movq -0x10(%rbp), %rax
orl 0x60(%rax), %ecx
movl %ecx, 0x60(%rax)
movl -0xc4(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8, 0x5c(%rax)
jb 0x196fcf
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x196fb3
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x40(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x40(%rdx)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x5c(%rax)
jmp 0x196f79
jmp 0x196fd1
jmp 0x196fd3
movl -0xa8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xa8(%rbp)
movl -0xac(%rbp), %eax
xorl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xac(%rbp)
jmp 0x196ee7
jmp 0x196ffa
jmp 0x196ffc
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x197010
jmp 0x19702f
leaq 0x42346(%rip), %rdi     # 0x1d935d
leaq 0x42050(%rip), %rsi     # 0x1d906e
movl $0x55a, %edx            # imm = 0x55A
leaq 0x422e9(%rip), %rcx     # 0x1d9313
callq 0x19120
movq -0x10(%rbp), %rdi
addq $0x81ca, %rdi           # imm = 0x81CA
xorl %esi, %esi
movl $0x240, %edx            # imm = 0x240
callq 0x19140
movq -0x10(%rbp), %rdi
addq $0x81ca, %rdi           # imm = 0x81CA
addq $0x240, %rdi            # imm = 0x240
xorl %esi, %esi
movl $0x40, %edx
callq 0x19140
movq -0x10(%rbp), %rcx
addq $0x92aa, %rcx           # imm = 0x92AA
addq $0x1, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rcx
addq $0x92aa, %rcx           # imm = 0x92AA
movq -0x10(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x10(%rbp), %rax
movl $0x8, 0x50(%rax)
movq -0x10(%rbp), %rax
movl 0x54(%rax), %ecx
movq -0x10(%rbp), %rax
addl 0x58(%rax), %ecx
movl %ecx, 0x58(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x54(%rax)
movq -0x10(%rbp), %rax
movl 0x7c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x7c(%rax)
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x40(%rbp), %rcx
subq %rcx, %rax
movl %eax, -0x30(%rbp)
cmpl $0x0, %eax
je 0x197251
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x197151
movq -0x10(%rbp), %rax
movq 0xb0(%rax), %rcx
movq -0x10(%rbp), %rax
movq 0x88(%rax), %rax
subq %rax, %rcx
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq -0x10(%rbp), %rdi
addq $0x392aa, %rdi          # imm = 0x392AA
movl -0x30(%rbp), %esi
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rdx
callq *%rax
cmpl $0x0, %eax
jne 0x19714c
movq -0x10(%rbp), %rax
movl $0xffffffff, 0x84(%rax) # imm = 0xFFFFFFFF
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x19725b
jmp 0x19724f
movq -0x40(%rbp), %rax
movq -0x10(%rbp), %rcx
addq $0x392aa, %rcx          # imm = 0x392AA
cmpq %rcx, %rax
jne 0x197237
movslq -0x30(%rbp), %rax
movq -0x10(%rbp), %rcx
movq 0xa0(%rcx), %rcx
movq (%rcx), %rcx
movq -0x10(%rbp), %rdx
subq 0xc0(%rdx), %rcx
cmpq %rcx, %rax
jae 0x197198
movslq -0x30(%rbp), %rax
movq %rax, -0xf0(%rbp)
jmp 0x1971b8
movq -0x10(%rbp), %rax
movq 0xa0(%rax), %rax
movq (%rax), %rax
movq -0x10(%rbp), %rcx
subq 0xc0(%rcx), %rax
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rax
movl %eax, -0xc8(%rbp)
movq -0x10(%rbp), %rax
movq 0x90(%rax), %rdi
movq -0x10(%rbp), %rax
addq 0xc0(%rax), %rdi
movq -0x10(%rbp), %rsi
addq $0x392aa, %rsi          # imm = 0x392AA
movslq -0xc8(%rbp), %rdx
callq 0x191e0
movslq -0xc8(%rbp), %rcx
movq -0x10(%rbp), %rax
addq 0xc0(%rax), %rcx
movq %rcx, 0xc0(%rax)
movl -0xc8(%rbp), %ecx
movl -0x30(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x30(%rbp)
cmpl $0x0, %eax
je 0x197235
movl -0xc8(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x70(%rax)
movl -0x30(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x74(%rax)
jmp 0x19724d
movslq -0x30(%rbp), %rcx
movq -0x10(%rbp), %rax
addq 0xc0(%rax), %rcx
movq %rcx, 0xc0(%rax)
jmp 0x19724f
jmp 0x197251
movq -0x10(%rbp), %rax
movl 0x74(%rax), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xf0, %rsp
popq %rbp
retq
nopw (%rax,%rax)