Function at 0x4d46b0
Capabilities:
Compress data via zlib inflate or deflate

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
movaps xmmword [rsp + 0x70], xmm6
lea rax, [0x005a43c0]
movq xmm6, rax
mov dword [rsp + 0xd8], edx
lea rdx, [0x005a4340]
mov r15, rcx
movq xmm1, rdx
call fcn.004d42a0
punpcklqdq xmm6, xmm1
test eax, eax
mov r13d, eax
jne case.default.0x4d4776
mov r11, qword [rcx + 0x10]
test r11, r11
je case.default.0x4d4776
mov rdi, qword [rcx]
mov r14d, dword [rcx + 8]
test rdi, rdi
je 0x4d48e8
mov r12, qword [r15 + 0x28]
mov eax, dword [r12 + 8]
cmp eax, 0x3f3f
jne 0x4d4739
mov dword [r12 + 8], 0x3f40
mov eax, 0x3f40
mov esi, dword [r15 + 0x18]
mov dword [rsp + 0x3c], r13d
mov r13, r11
mov ebp, dword [r12 + 0x48]
mov ebx, dword [r12 + 0x4c]
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x38], esi
mov esi, r14d
sub eax, 0x3f34
cmp eax, 0x1e
ja case.default.0x4d4776
lea rdx, [0x005a42b8]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
cmp ebx, 0x1f
ja 0x4d47b6
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d47a0
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0x1f
jbe 0x4d4798
bswap ebp
xor ebx, ebx
mov dword [r12 + 0x20], ebp
mov dword [r15 + 0x4c], ebp
xor ebp, ebp
mov dword [r12 + 8], 0x3f3e
mov r10d, dword [r12 + 0x14]
test r10d, r10d
je 0x4d61a1
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.004d9520
mov dword [r12 + 0x20], eax
mov dword [r15 + 0x4c], eax
mov dword [r12 + 8], 0x3f3f
mov eax, dword [rsp + 0xd8]
sub eax, 5
cmp eax, 1
jbe 0x4d5598
mov r9d, dword [r12 + 0xc]
test r9d, r9d
je 0x4d49b8
mov dword [r12 + 8], 0x3f4e
mov r11, r13
mov ecx, ebx
mov r13d, dword [rsp + 0x3c]
and ecx, 7
and ebx, 0xfffffff8
shr ebp, cl
mov edx, dword [r12 + 0x10]
test edx, edx
je 0x4d5990
cmp ebx, 0x1f
ja 0x4d4878
test esi, esi
mov ecx, ebx
jne 0x4d4860
jmp 0x4d56e2
test esi, esi
je 0x4d56e0
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0x1f
jbe 0x4d4858
mov ebx, ecx
mov eax, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x30]
sub r8d, eax
mov eax, edx
add dword [r15 + 0x1c], r8d
add dword [r12 + 0x24], r8d
and eax, 4
je 0x4d5e89
test r8d, r8d
jne 0x4d5f7c
test eax, eax
je 0x4d5e89
mov ecx, dword [r12 + 0x18]
mov eax, ebp
test ecx, ecx
jne 0x4d48b6
bswap eax
cmp dword [r12 + 0x20], eax
je 0x4d5e89
lea rax, str.incorrect_data_check
mov qword [r15 + 0x20], rax
mov eax, dword [rsp + 0x38]
mov dword [r12 + 8], 0x3f51
mov dword [rsp + 0x30], eax
jmp 0x4d4b0d
test r14d, r14d
je 0x4d471b
mov r13d, 0xfffffffe
jmp 0x4d4c18
mov rax, qword [0x005a4bf0]
movups xmmword [r12 + 0x60], xmm6
cmp dword [rsp + 0xd8], 6
mov dword [r12 + 8], 0x3f47
mov qword [r12 + 0x70], rax
je 0x4d6433
shr ebp, 3
sub ebx, 3
mov rdi, rdx
nop
mov dword [r12 + 8], 0x3f48
cmp esi, 5
jbe 0x4d57b0
mov eax, dword [rsp + 0x38]
cmp eax, 0x101
jbe 0x4d57b0
mov edx, dword [rsp + 0x30]
mov qword [r15 + 0x10], r13
mov rcx, r15
mov dword [r15 + 0x18], eax
mov qword [r15], rdi
mov dword [r15 + 8], esi
mov dword [r12 + 0x48], ebp
mov dword [r12 + 0x4c], ebx
call fcn.004d9b50
mov eax, dword [r15 + 0x18]
mov r13, qword [r15 + 0x10]
mov rdi, qword [r15]
mov esi, dword [r15 + 8]
mov dword [rsp + 0x38], eax
mov eax, dword [r12 + 8]
mov ebp, dword [r12 + 0x48]
mov ebx, dword [r12 + 0x4c]
cmp eax, 0x3f3f
jne 0x4d475a
mov dword [r12 + 0x1be4], 0xffffffff
jmp case.0x4d4776.16191
cmp ebx, 2
ja 0x4d60b6
test esi, esi
je 0x4d60d5
movzx eax, byte [rdi]
lea rdx, [rdi + 1]
mov ecx, ebx
sub esi, 1
add ebx, 8
shl eax, cl
add ebp, eax
mov eax, ebp
and eax, 1
mov dword [r12 + 0xc], eax
mov eax, ebp
shr eax, 1
and eax, 3
cmp eax, 2
je 0x4d5493
cmp eax, 3
je 0x4d5d2f
cmp eax, 1
je 0x4d48fc
mov dword [r12 + 8], 0x3f41
shr ebp, 3
sub ebx, 3
mov rdi, rdx
nop word [rax + rax]
mov ecx, ebx
and ebx, 0xfffffff8
and ecx, 7
shr ebp, cl
cmp ebx, 0x1f
ja 0x4d4a63
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d4a48
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0x1f
jbe 0x4d4a40
mov ebx, 0x20
mov edx, ebp
movzx eax, bp
shr edx, 0x10
xor edx, 0xffff
cmp eax, edx
je 0x4d5ca9
lea rax, str.invalid_stored_block_lengths
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
mov r8d, dword [r12 + 0x58]
test r8d, r8d
jne 0x4d5b58
mov dword [r12 + 8], 0x3f4c
mov ecx, dword [rsp + 0x38]
test ecx, ecx
je 0x4d5f6a
mov r10d, dword [rsp + 0x30]
mov eax, dword [r12 + 0x54]
mov edx, r10d
sub edx, ecx
cmp edx, eax
jae 0x4d5b10
lea edx, [rcx + rax]
mov eax, edx
sub eax, r10d
cmp dword [r12 + 0x38], eax
jae 0x4d5888
mov r11d, dword [r12 + 0x1be0]
test r11d, r11d
je 0x4d5888
lea rax, [0x005a4251]
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
mov r8d, dword [rsp + 0x30]
mov r13d, 0xfffffffd
mov eax, dword [rsp + 0x38]
sub r8d, eax
nop
mov r10d, dword [r12 + 0x34]
movd xmm0, ebp
movd xmm2, ebx
mov qword [r15], rdi
mov eax, dword [rsp + 0x38]
mov qword [r15 + 0x10], r11
punpckldq xmm0, xmm2
mov dword [r15 + 8], esi
test r10d, r10d
mov dword [r15 + 0x18], eax
movq qword [r12 + 0x48], xmm0
jne 0x4d4b78
cmp dword [rsp + 0x30], eax
je 0x4d4b98
mov eax, dword [r12 + 8]
cmp eax, 0x3f50
ja 0x4d4b98
cmp eax, 0x3f4d
jbe 0x4d4b78
cmp dword [rsp + 0xd8], 4
je 0x4d4b98
nop dword [rax + rax]
mov rdx, r11
mov rcx, r15
call fcn.004d4170
test eax, eax
jne 0x4d5910
mov r8d, dword [rsp + 0x30]
mov esi, dword [r15 + 8]
sub r8d, dword [r15 + 0x18]
add dword [r15 + 0x1c], r8d
mov ebx, r14d
sub ebx, esi
add dword [r15 + 0xc], ebx
add dword [r12 + 0x24], r8d
test byte [r12 + 0x10], 4
je 0x4d4bbb
test r8d, r8d
jne 0x4d55e0
mov edx, dword [r12 + 0xc]
xor eax, eax
mov ecx, dword [r12 + 8]
test edx, edx
setne al
shl eax, 6
add eax, dword [r12 + 0x4c]
cmp ecx, 0x3f3f
je 0x4d55d8
cmp ecx, 0x3f47
sete dl
cmp ecx, 0x3f42
sete cl
or edx, ecx
movzx edx, dl
shl edx, 8
add eax, edx
or ebx, r8d
mov dword [r15 + 0x48], eax
je 0x4d4c0f
cmp dword [rsp + 0xd8], 4
jne 0x4d4c18
test r13d, r13d
je 0x4d5cce
movaps xmm6, xmmword [rsp + 0x70]
mov eax, r13d
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [r12 + 0x58]
test edx, edx
jne 0x4d5930
mov eax, dword [r12 + 0x50]
mov dword [r12 + 0x1be8], eax
mov dword [r12 + 8], 0x3f4a
mov ecx, dword [r12 + 0x74]
mov eax, 0xffffffff
mov r10, qword [r12 + 0x68]
shl eax, cl
mov ecx, eax
not ecx
mov eax, ecx
mov r11d, ecx
and eax, ebp
lea rax, [r10 + rax*4]
movzx edx, byte [rax + 1]
movzx r8d, byte [rax]
movzx r9d, word [rax + 2]
movzx eax, dl
cmp ebx, eax
mov dword [rsp + 0x40], eax
jae 0x4d4cdc
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d4ca8
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
mov eax, r11d
and eax, ebp
lea rax, [r10 + rax*4]
movzx edx, byte [rax + 1]
movzx r8d, byte [rax]
movzx r9d, word [rax + 2]
movzx eax, dl
cmp ecx, eax
jb 0x4d4ca0
mov dword [rsp + 0x40], eax
mov ebx, ecx
cmp r8b, 0xf
mov dword [rsp + 0x48], eax
jbe 0x4d5a44
mov edx, dword [r12 + 0x1be4]
mov ecx, eax
sub ebx, eax
add eax, edx
shr ebp, cl
test r8b, 0x40
mov dword [r12 + 0x1be4], eax
je 0x4d5b28
lea rax, [0x005a423b]
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
mov r8d, dword [r12 + 0x18]
test r8d, 0x200
jne 0x4d4db6
nop
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x4d4d5d
sar r8d, 9
mov dword [rax + 0x40], 1
and r8d, 1
mov dword [rax + 0x3c], r8d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.004d9b10
mov dword [r12 + 0x20], eax
mov dword [r15 + 0x4c], eax
mov dword [r12 + 8], 0x3f3f
jmp case.0x4d4776.16191
mov r8d, dword [r12 + 0x18]
test r8d, 0x1000
jne 0x4d5630
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x4d4da4
mov qword [rax + 0x30], 0
mov dword [r12 + 8], 0x3f3c
test r8d, 0x200
je 0x4d4d40
cmp ebx, 0xf
ja 0x4d4df0
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d4dd8
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xf
jbe 0x4d4dd0
mov ebx, ecx
test byte [r12 + 0x10], 4
je 0x4d5a20
movzx eax, word [r12 + 0x20]
cmp eax, ebp
je 0x4d5a20
lea rax, str.header_crc_mismatch
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
mov eax, dword [r12 + 0x50]
mov dword [r12 + 8], 0x3f43
test eax, eax
je 0x4d47f1
mov edx, dword [rsp + 0x38]
cmp esi, eax
cmovbe eax, esi
cmp eax, edx
cmova eax, edx
test eax, eax
je 0x4d623c
mov r8d, eax
mov rdx, rdi
mov rcx, r13
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x40], r8
call sub.msvcrt.dll_memcpy
mov r9d, dword [rsp + 0x48]
mov r8, qword [rsp + 0x40]
sub dword [rsp + 0x38], r9d
sub dword [r12 + 0x50], r9d
mov eax, dword [r12 + 8]
sub esi, r9d
add rdi, r8
add r13, r8
jmp 0x4d475a
mov eax, dword [r12 + 0x50]
jmp 0x4d4e3e
mov r11, r13
mov edx, dword [r12 + 0x10]
mov r13d, dword [rsp + 0x3c]
test edx, edx
je 0x4d5990
mov eax, dword [r12 + 0x18]
test eax, eax
je 0x4d5990
cmp ebx, 0x1f
ja 0x4d4f08
test esi, esi
mov ecx, ebx
jne 0x4d4ef0
jmp 0x4d56e2
test esi, esi
je 0x4d56e0
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0x1f
jbe 0x4d4ee8
mov ebx, ecx
cmp ebp, dword [r12 + 0x24]
je 0x4d5987
lea rax, str.incorrect_length_check
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
mov r8d, dword [rsp + 0x30]
mov r11, r13
mov r13d, 1
mov eax, dword [rsp + 0x38]
sub r8d, eax
jmp 0x4d4b20
mov r8d, dword [r12 + 0x7c]
mov eax, dword [r12 + 0x80]
mov r10d, dword [r12 + 0x84]
add eax, r8d
cmp r10d, eax
mov dword [rsp + 0x40], eax
jae 0x4d59de
mov ecx, dword [r12 + 0x70]
mov edx, 0xffffffff
mov dword [rsp + 0x48], r8d
mov r9, qword [r12 + 0x60]
shl edx, cl
not edx
mov eax, edx
and eax, ebp
lea rax, [r9 + rax*4]
movzx ecx, byte [rax + 1]
movzx r11d, word [rax + 2]
movzx eax, cl
cmp ebx, eax
jae 0x4d4ff0
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d4fc0
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
mov eax, ebp
and eax, edx
lea rax, [r9 + rax*4]
movzx r8d, byte [rax + 1]
movzx r11d, word [rax + 2]
movzx eax, r8b
cmp ecx, eax
jb 0x4d4fb8
mov ebx, ecx
mov ecx, r8d
cmp r11w, 0xf
jbe 0x4d59b0
cmp r11w, 0x10
je 0x4d5eff
cmp r11w, 0x11
je 0x4d5cd9
lea r8d, [rax + 7]
cmp ebx, r8d
jae 0x4d5053
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d5038
test esi, esi
je 0x4d55b8
movzx r11d, byte [rdi]
add rdi, 1
sub esi, 1
shl r11d, cl
add ecx, 8
add ebp, r11d
cmp ecx, r8d
jb 0x4d5030
mov ebx, ecx
mov ecx, eax
sub ebx, eax
xor r11d, r11d
shr ebp, cl
sub ebx, 7
mov ecx, ebp
shr ebp, 7
and ecx, 0x7f
add ecx, 0xb
add r10d, ecx
cmp dword [rsp + 0x40], r10d
jb 0x4d632f
mov eax, dword [r12 + 0x84]
lea r10d, [rax + rcx]
nop dword [rax]
mov ecx, eax
add eax, 1
mov word [r12 + rcx*2 + 0x90], r11w
cmp eax, r10d
jne 0x4d5088
mov dword [r12 + 0x84], r10d
jmp 0x4d59cc
mov r10d, dword [r12 + 0x78]
mov r8d, dword [r12 + 0x84]
cmp r8d, r10d
jae 0x4d5d59
lea rdx, [0x005a4bc0]
mov ecx, ebx
mov eax, r8d
lea r9, [rdx + rax*2]
cmp ecx, 2
ja 0x4d512f
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
lea rdx, [rdi + 1]
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
movzx eax, word [r9]
add r8d, 1
mov r11d, ebp
sub ecx, 3
and r11d, 7
shr ebp, 3
add r9, 2
mov dword [r12 + 0x84], r8d
cmp r8d, r10d
mov word [r12 + rax*2 + 0x90], r11w
je 0x4d5d54
cmp ecx, 2
mov rdi, rdx
jbe 0x4d50db
mov rdx, rdi
jmp 0x4d50f4
mov edx, dword [r12 + 0x10]
test edx, edx
jne 0x4d5bc3
mov dword [r12 + 8], 0x3f40
jmp case.0x4d4776.16192
cmp ebx, 0x1f
ja 0x4d518e
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d5178
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0x1f
jbe 0x4d5170
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x4d519b
mov dword [rax + 4], ebp
test byte [r12 + 0x19], 2
je 0x4d51af
test byte [r12 + 0x10], 4
jne 0x4d5ea3
mov dword [r12 + 8], 0x3f37
xor ebx, ebx
xor ebp, ebp
jmp 0x4d51c5
cmp ebx, 0xf
ja 0x4d51f6
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d51e0
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xf
jbe 0x4d51d8
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x4d521a
mov edx, ebp
movzx ebx, bpl
shr edx, 8
movd xmm0, ebx
movd xmm3, edx
punpckldq xmm0, xmm3
movq qword [rax + 8], xmm0
mov edx, dword [r12 + 0x18]
test dh, 2
mov r8d, edx
je 0x4d5260
test byte [r12 + 0x10], 4
je 0x4d5260
mov ecx, dword [r12 + 0x20]
lea rdx, [rsp + 0x6c]
mov r8d, 2
mov word [rsp + 0x6c], bp
call fcn.004d9b10
mov edx, dword [r12 + 0x18]
mov dword [r12 + 0x20], eax
mov r8d, edx
nop word cs:[rax + rax]
mov dword [r12 + 8], 0x3f38
xor ebx, ebx
xor ebp, ebp
test dh, 4
je 0x4d52e9
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d5288
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xf
jbe 0x4d5280
mov rax, qword [r12 + 0x28]
mov dword [r12 + 0x50], ebp
test rax, rax
je 0x4d52b0
mov dword [rax + 0x18], ebp
test dh, 2
je 0x4d52c1
test byte [r12 + 0x10], 4
jne 0x4d6126
mov eax, edx
mov r8d, edx
xor ebx, ebx
and eax, 0x400
xor ebp, ebp
jmp 0x4d52fd
mov edx, dword [r12 + 0x18]
test dh, 4
mov r8d, edx
jne 0x4d5bb5
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x4d52fb
mov qword [rax + 0x10], 0
xor eax, eax
mov dword [r12 + 8], 0x3f39
test eax, eax
je 0x4d53c1
mov eax, dword [r12 + 0x50]
cmp esi, eax
mov r9d, eax
cmovbe r9d, esi
test r9d, r9d
je 0x4d53b4
mov rcx, qword [r12 + 0x28]
mov edx, r9d
mov qword [rsp + 0x40], rdx
test rcx, rcx
je 0x4d5387
mov r10, qword [rcx + 0x10]
test r10, r10
mov qword [rsp + 0x48], r10
je 0x4d5387
mov r11d, dword [rcx + 0x18]
mov r8, rdx
mov ecx, dword [rcx + 0x1c]
mov r10d, r11d
sub r10d, eax
lea edx, [r9 + r10]
cmp ecx, edx
jae 0x4d5365
add ecx, eax
mov r8d, ecx
sub r8d, r11d
mov rcx, qword [rsp + 0x48]
mov eax, r10d
mov rdx, rdi
mov dword [rsp + 0x50], r9d
add rcx, rax
call sub.msvcrt.dll_memcpy
mov r8d, dword [r12 + 0x18]
mov r9d, dword [rsp + 0x50]
and r8d, 0x200
je 0x4d539c
test byte [r12 + 0x10], 4
jne 0x4d5e40
mov rax, qword [rsp + 0x40]
sub esi, r9d
add rdi, rax
mov eax, dword [r12 + 0x50]
sub eax, r9d
mov dword [r12 + 0x50], eax
test eax, eax
jne 0x4d5598
mov r8d, dword [r12 + 0x18]
mov dword [r12 + 0x50], 0
mov dword [r12 + 8], 0x3f3a
jmp 0x4d53f5
mov r8d, dword [r12 + 0x18]
mov eax, r8d
and eax, 0x400
jmp 0x4d5306
mov r8d, dword [r12 + 0x18]
test r8d, 0x800
jne 0x4d56f8
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x4d5414
mov qword [rax + 0x20], 0
mov dword [r12 + 0x50], 0
mov dword [r12 + 8], 0x3f3b
jmp 0x4d4d85
cmp ebx, 0xf
ja 0x4d5468
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d5450
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xf
jbe 0x4d5448
mov ebx, ecx
cmp bpl, 8
mov dword [r12 + 0x18], ebp
je 0x4d5c8e
lea rax, str.unknown_compression_method
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
mov dword [r12 + 8], 0x3f44
shr ebp, 3
sub ebx, 3
mov rdi, rdx
nop dword [rax]
cmp ebx, 0xd
ja 0x4d54e0
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d54c8
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xd
jbe 0x4d54c0
mov ebx, ecx
mov edx, ebp
mov eax, ebp
mov r10d, ebp
and edx, 0x1f
shr eax, 5
sub ebx, 0xe
shr r10d, 0xa
add edx, 0x101
and eax, 0x1f
and r10d, 0xf
add eax, 1
shr ebp, 0xe
mov dword [r12 + 0x7c], edx
add r10d, 4
cmp edx, 0x11e
mov dword [r12 + 0x80], eax
mov dword [r12 + 0x78], r10d
ja 0x4d552e
cmp eax, 0x1e
jbe 0x4d5ee2
lea rax, str.too_many_length_or_distance_symbols
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
shr ebp, cl
sub ebx, eax
mov dword [r12 + 0x50], r9d
mov dword [r12 + 0x1be4], eax
mov dword [r12 + 8], 0x3f4d
mov edx, dword [rsp + 0x38]
test edx, edx
je 0x4d5f6a
mov eax, dword [r12 + 0x50]
sub edx, 1
add r13, 1
mov dword [rsp + 0x38], edx
mov byte [r13 - 1], al
mov dword [r12 + 8], 0x3f48
jmp case.0x4d4776.16200
mov r8d, dword [rsp + 0x30]
mov r11, r13
mov eax, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x3c]
sub r8d, eax
jmp 0x4d4b20
mov r8d, dword [rsp + 0x30]
mov r11, r13
mov ebx, ecx
mov eax, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x3c]
sub r8d, eax
jmp 0x4d4b20
sub eax, 0xffffff80
jmp 0x4d4bfc
mov rdx, qword [r15 + 0x10]
mov eax, r8d
mov dword [rsp + 0x38], r8d
mov r9d, dword [r12 + 0x18]
mov ecx, dword [r12 + 0x20]
sub rdx, rax
test r9d, r9d
je 0x4d5620
call fcn.004d9b10
mov r8d, dword [rsp + 0x38]
mov dword [r12 + 0x20], eax
mov dword [r15 + 0x4c], eax
jmp 0x4d4bbb
call fcn.004d9520
mov r8d, dword [rsp + 0x38]
jmp 0x4d5608
test esi, esi
je 0x4d5598
mov rdx, rdi
xor r8d, r8d
jmp 0x4d5645
cmp r8d, esi
jae 0x4d567f
mov rax, qword [r12 + 0x28]
add r8d, 1
movzx r9d, byte [rdx]
test rax, rax
je 0x4d5676
mov r10, qword [rax + 0x30]
test r10, r10
je 0x4d5676
mov ecx, dword [r12 + 0x50]
cmp ecx, dword [rax + 0x38]
jae 0x4d5676
lea eax, [rcx + 1]
mov dword [r12 + 0x50], eax
mov byte [r10 + rcx], r9b
add rdx, 1
test r9b, r9b
jne 0x4d5640
test byte [r12 + 0x19], 2
je 0x4d56c0
test byte [r12 + 0x10], 4
je 0x4d56c0
mov ecx, dword [r12 + 0x20]
mov rdx, rdi
mov byte [rsp + 0x48], r9b
mov dword [rsp + 0x40], r8d
call fcn.004d9b10
movzx r9d, byte [rsp + 0x48]
mov r8d, dword [rsp + 0x40]
mov dword [r12 + 0x20], eax
nop word cs:[rax + rax]
sub esi, r8d
add rdi, r8
test r9b, r9b
jne 0x4d5598
mov r8d, dword [r12 + 0x18]
jmp 0x4d4da4
mov ebx, ecx
mov r8d, dword [rsp + 0x30]
mov eax, dword [rsp + 0x38]
sub r8d, eax
jmp 0x4d4b20
test esi, esi
je 0x4d5598
mov rdx, rdi
xor r8d, r8d
nop word cs:[rax + rax]
mov rax, qword [r12 + 0x28]
add r8d, 1
movzx r9d, byte [rdx]
test rax, rax
je 0x4d5741
mov r10, qword [rax + 0x20]
test r10, r10
je 0x4d5741
mov ecx, dword [r12 + 0x50]
cmp ecx, dword [rax + 0x28]
jae 0x4d5741
lea eax, [rcx + 1]
mov dword [r12 + 0x50], eax
mov byte [r10 + rcx], r9b
add rdx, 1
test r9b, r9b
je 0x4d574f
cmp r8d, esi
jb 0x4d5710
test byte [r12 + 0x19], 2
je 0x4d5790
test byte [r12 + 0x10], 4
je 0x4d5790
mov ecx, dword [r12 + 0x20]
mov rdx, rdi
mov byte [rsp + 0x48], r9b
mov dword [rsp + 0x40], r8d
call fcn.004d9b10
movzx r9d, byte [rsp + 0x48]
mov r8d, dword [rsp + 0x40]
mov dword [r12 + 0x20], eax
nop word cs:[rax + rax]
sub esi, r8d
add rdi, r8
test r9b, r9b
jne 0x4d5598
mov r8d, dword [r12 + 0x18]
jmp 0x4d5414
mov ecx, dword [r12 + 0x70]
mov r10d, 0xffffffff
mov eax, ebp
mov dword [r12 + 0x1be4], 0
mov r8, qword [r12 + 0x60]
shl r10d, cl
not r10d
and eax, r10d
lea rax, [r8 + rax*4]
movzx ecx, byte [rax + 1]
movzx edx, byte [rax]
movzx r9d, word [rax + 2]
movzx eax, cl
cmp ebx, eax
jae 0x4d583c
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d5808
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
mov eax, ebp
and eax, r10d
lea rax, [r8 + rax*4]
movzx r11d, byte [rax + 1]
movzx edx, byte [rax]
movzx r9d, word [rax + 2]
movzx eax, r11b
cmp ecx, eax
jb 0x4d5800
mov ebx, ecx
mov ecx, r11d
test dl, dl
je 0x4d554a
cmp dl, 0xf
jbe 0x4d5fbf
mov ecx, eax
sub ebx, eax
mov dword [r12 + 0x50], r9d
shr ebp, cl
mov dword [r12 + 0x1be4], eax
test dl, 0x20
je 0x4d5e64
mov dword [r12 + 0x1be4], 0xffffffff
mov dword [r12 + 8], 0x3f3f
jmp case.0x4d4776.16191
mov r8d, dword [r12 + 0x3c]
mov r9d, dword [rsp + 0x30]
mov rcx, qword [r12 + 0x40]
sub r9d, edx
cmp r8d, eax
jb 0x4d5a30
lea edx, [r8 + r9]
add rcx, rdx
mov edx, dword [r12 + 0x50]
cmp edx, eax
cmovbe eax, edx
mov r10d, dword [rsp + 0x38]
cmp r10d, eax
cmovbe eax, r10d
lea r8d, [rax - 1]
sub r10d, eax
sub edx, eax
mov dword [rsp + 0x38], r10d
lea r9, [r8 + 1]
xor eax, eax
mov dword [r12 + 0x50], edx
nop dword [rax]
movzx edx, byte [rcx + rax]
mov byte [r13 + rax], dl
mov rdx, rax
add rax, 1
cmp rdx, r8
jne 0x4d58e0
mov r10d, dword [r12 + 0x50]
add r13, r9
test r10d, r10d
je case.0x4d4776.16199
mov eax, dword [r12 + 8]
jmp 0x4d475a
mov dword [r12 + 8], 0x3f52
nop dword [rax]
mov r13d, 0xfffffffc
jmp 0x4d4c18
cmp ebx, edx
jae 0x4d595f
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d5948
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, edx
jb 0x4d5940
mov ebx, ecx
mov ecx, edx
mov eax, 0xffffffff
sub ebx, edx
add dword [r12 + 0x1be4], edx
shl eax, cl
not eax
and eax, ebp
add eax, dword [r12 + 0x50]
shr ebp, cl
mov dword [r12 + 0x50], eax
jmp 0x4d4c4a
xor ebx, ebx
xor ebp, ebp
nop dword [rax + rax]
mov r8d, dword [rsp + 0x30]
mov r13d, 1
mov dword [r12 + 8], 0x3f50
mov eax, dword [rsp + 0x38]
sub r8d, eax
jmp 0x4d4b20
sub ebx, eax
shr ebp, cl
lea eax, [r10 + 1]
mov dword [r12 + 0x84], eax
mov word [r12 + r10*2 + 0x90], r11w
mov r10d, eax
mov eax, dword [rsp + 0x40]
cmp r10d, eax
jb 0x4d4f8d
mov r8d, dword [rsp + 0x48]
cmp dword [r12 + 8], 0x3f51
je case.0x4d4776.16209
cmp word [r12 + 0x290], 0
jne 0x4d6296
lea rax, str.invalid_code____missing_end_of_block
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
xor ebx, ebx
xor ebp, ebp
jmp 0x4d4d40
sub eax, r8d
add r8d, dword [r12 + 0x34]
lea edx, [r8 + r9]
add rcx, rdx
jmp 0x4d58aa
lea ecx, [r8 + rax]
mov eax, 0xffffffff
mov r11d, r9d
shl eax, cl
mov ecx, edx
mov edx, dword [rsp + 0x48]
not eax
mov dword [rsp + 0x50], eax
and eax, ebp
shr eax, cl
add eax, r9d
mov eax, eax
lea rax, [r10 + rax*4]
movzx r8d, byte [rax]
movzx r9d, word [rax + 2]
movzx eax, byte [rax + 1]
add edx, eax
cmp ebx, edx
jae 0x4d5ae6
test esi, esi
je 0x4d5598
mov qword [rsp + 0x58], r12
mov edx, dword [rsp + 0x48]
mov r12d, dword [rsp + 0x50]
jmp 0x4d5aa8
test esi, esi
je 0x4d5e22
movzx eax, byte [rdi]
mov ecx, ebx
add ebx, 8
add rdi, 1
sub esi, 1
shl eax, cl
mov ecx, edx
add ebp, eax
mov eax, r12d
and eax, ebp
shr eax, cl
add eax, r11d
mov eax, eax
lea rax, [r10 + rax*4]
movzx r8d, byte [rax]
movzx r9d, word [rax + 2]
movzx eax, byte [rax + 1]
lea ecx, [rax + rdx]
cmp ebx, ecx
jb 0x4d5aa0
mov r12, qword [rsp + 0x58]
mov edx, dword [rsp + 0x48]
mov ecx, edx
add edx, dword [r12 + 0x1be4]
shr ebp, cl
mov ecx, dword [rsp + 0x40]
sub ebx, ecx
jmp 0x4d4cf2
mov r11, r13
mov r13d, dword [rsp + 0x3c]
jmp 0x4d4836
mov rcx, r13
sub rcx, rax
mov eax, dword [r12 + 0x50]
mov edx, eax
jmp 0x4d58b4
and r8d, 0xf
movzx eax, r9w
mov dword [r12 + 8], 0x3f4b
movd xmm0, eax
movd xmm4, r8d
punpckldq xmm0, xmm4
movq qword [r12 + 0x54], xmm0
jmp 0x4d4a9d
cmp ebx, r8d
jae 0x4d5b90
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d5b78
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, r8d
jb 0x4d5b70
mov ebx, ecx
mov ecx, r8d
mov eax, 0xffffffff
sub ebx, r8d
add dword [r12 + 0x1be4], r8d
shl eax, cl
not eax
and eax, ebp
shr ebp, cl
add dword [r12 + 0x54], eax
jmp 0x4d4aa6
cmp ebx, 0xf
jbe 0x4d5272
jmp 0x4d529e
cmp ebx, 0xf
ja 0x4d5bf8
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d5be0
test esi, esi
je 0x4d55b8
movzx eax, byte [rdi]
add rdi, 1
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xf
jbe 0x4d5bd8
mov ebx, ecx
test dl, 2
je 0x4d5c09
cmp ebp, 0x8b1f
je 0x4d61e4
mov dword [r12 + 0x18], 0
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x4d5c23
mov dword [rax + 0x40], 0xffffffff
and edx, 1
je 0x4d5ec6
mov edx, ebp
mov eax, ebp
shl edx, 8
shr eax, 8
movzx edx, dx
lea ecx, [rdx + rax]
mov rdx, rcx
imul rcx, rcx, 0x8421085
mov eax, edx
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 4
mov ecx, eax
shl ecx, 5
sub ecx, eax
cmp edx, ecx
jne 0x4d5ec6
mov eax, ebp
and eax, 0xf
cmp eax, 8
je 0x4d6251
lea rax, str.unknown_compression_method
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
test ebp, 0xe000
je 0x4d60ec
lea rax, str.unknown_header_flags_set
mov r11, r13
jmp 0x4d5481
cmp dword [rsp + 0xd8], 6
mov dword [r12 + 0x50], eax
mov dword [r12 + 8], 0x3f42
je 0x4d63b0
xor ebx, ebx
xor ebp, ebp
jmp 0x4d4e35
mov r13d, 0xfffffffb
jmp 0x4d4c18
lea ecx, [rax + 3]
cmp ebx, ecx
jae 0x4d5d13
test esi, esi
je 0x4d5598
mov r11d, ecx
mov ecx, ebx
jmp 0x4d5cf8
test esi, esi
je 0x4d55b8
movzx r8d, byte [rdi]
add rdi, 1
sub esi, 1
shl r8d, cl
add ecx, 8
add ebp, r8d
cmp ecx, r11d
jb 0x4d5cf0
mov ebx, ecx
mov ecx, eax
sub ebx, eax
xor r11d, r11d
shr ebp, cl
sub ebx, 3
mov ecx, ebp
shr ebp, 3
and ecx, 7
add ecx, 3
jmp 0x4d506a
lea rax, str.invalid_block_type
mov r11, r13
shr ebp, 3
mov qword [r15 + 0x20], rax
sub ebx, 3
mov rdi, rdx
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
mov ebx, ecx
mov rdi, rdx
cmp r8d, 0x12
ja 0x4d5dac
lea rax, [0x005a4bc0]
mov edx, 0x12
mov ecx, r8d
lea rax, [rax + rcx*2]
sub edx, r8d
add rdx, rcx
lea rcx, [0x005a4bc2]
lea rcx, [rcx + rdx*2]
nop dword [rax + rax]
movzx edx, word [rax]
add rax, 2
xor r8d, r8d
cmp rcx, rax
mov word [r12 + rdx*2 + 0x90], r8w
jne 0x4d5d88
mov dword [r12 + 0x84], 0x13
lea rax, [r12 + 0x550]
xor ecx, ecx
mov r8d, 0x13
mov dword [r12 + 0x70], 7
mov qword [r12 + 0x88], rax
lea rdx, [r12 + 0x90]
mov qword [r12 + 0x60], rax
lea rax, [r12 + 0x310]
mov qword [rsp + 0x28], rax
lea rax, [r12 + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [r12 + 0x88]
call fcn.004d6e00
test eax, eax
je 0x4d615b
lea rax, str.invalid_code_lengths_set
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
mov r8d, dword [rsp + 0x30]
mov r11, r13
mov eax, dword [rsp + 0x38]
mov r12, qword [rsp + 0x58]
mov r13d, dword [rsp + 0x3c]
sub r8d, eax
jmp 0x4d4b20
mov ecx, dword [r12 + 0x20]
mov r8d, r9d
mov rdx, rdi
mov dword [rsp + 0x48], r9d
call fcn.004d9b10
mov r9d, dword [rsp + 0x48]
mov dword [r12 + 0x20], eax
jmp 0x4d539c
test dl, 0x40
je 0x4d60a0
lea rax, [0x005a421f]
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
mov eax, dword [rsp + 0x38]
xor ebx, ebx
xor ebp, ebp
mov dword [r12 + 8], 0x3f4f
mov dword [rsp + 0x30], eax
jmp 0x4d4ebd
mov ecx, dword [r12 + 0x20]
lea rdx, [rsp + 0x6c]
mov r8d, 4
mov dword [rsp + 0x6c], ebp
call fcn.004d9b10
mov dword [r12 + 0x20], eax
jmp 0x4d51af
lea rax, str.incorrect_header_check
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
mov dword [r12 + 0x84], 0
xor r8d, r8d
mov dword [r12 + 8], 0x3f45
jmp 0x4d50c6
lea r8d, [rax + 2]
cmp ebx, r8d
jae 0x4d5f3b
test esi, esi
je 0x4d5598
mov ecx, ebx
jmp 0x4d5f20
test esi, esi
je 0x4d55b8
movzx r11d, byte [rdi]
add rdi, 1
sub esi, 1
shl r11d, cl
add ecx, 8
add ebp, r11d
cmp ecx, r8d
jb 0x4d5f18
mov ebx, ecx
mov ecx, eax
sub ebx, eax
shr ebp, cl
test r10d, r10d
je 0x4d632f
lea eax, [r10 - 1]
mov ecx, ebp
sub ebx, 2
movzx r11d, word [r12 + rax*2 + 0x90]
and ecx, 3
shr ebp, 2
add ecx, 3
jmp 0x4d506a
mov r11, r13
mov r8d, dword [rsp + 0x30]
mov r13d, dword [rsp + 0x3c]
jmp 0x4d4b20
mov r9d, dword [r12 + 0x18]
mov eax, r8d
mov rdx, r11
mov qword [rsp + 0x30], r11
sub rdx, rax
mov ecx, dword [r12 + 0x20]
test r9d, r9d
je 0x4d6192
call fcn.004d9b10
mov r11, qword [rsp + 0x30]
mov edx, dword [r12 + 0x10]
mov dword [r12 + 0x20], eax
mov dword [r15 + 0x4c], eax
mov eax, edx
and eax, 4
jmp 0x4d48a1
add edx, eax
movzx r10d, r9w
mov r9d, 0xffffffff
mov ecx, edx
mov dword [rsp + 0x50], r10d
shl r9d, cl
mov ecx, eax
not r9d
mov edx, r9d
mov dword [rsp + 0x48], r9d
and edx, ebp
shr edx, cl
add edx, r10d
mov edx, edx
lea rcx, [r8 + rdx*4]
movzx r9d, byte [rcx + 1]
movzx edx, byte [rcx]
movzx r11d, word [rcx + 2]
lea r10d, [r9 + rax]
cmp ebx, r10d
jae 0x4d606f
test esi, esi
je 0x4d5598
mov qword [rsp + 0x40], r13
mov edx, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x48]
jmp 0x4d6028
test esi, esi
je 0x4d61c9
movzx r9d, byte [rdi]
mov ecx, ebx
add ebx, 8
add rdi, 1
sub esi, 1
shl r9d, cl
mov ecx, eax
add ebp, r9d
mov r9d, r13d
and r9d, ebp
shr r9d, cl
lea ecx, [r9 + rdx]
lea r9, [r8 + rcx*4]
movzx ecx, byte [r9]
movzx r11d, word [r9 + 2]
movzx r9d, byte [r9 + 1]
lea r10d, [r9 + rax]
cmp ebx, r10d
jb 0x4d6020
mov r13, qword [rsp + 0x40]
mov edx, ecx
mov ecx, eax
sub ebx, eax
mov dword [r12 + 0x50], r11d
shr ebp, cl
mov ecx, r9d
sub ebx, r9d
mov dword [r12 + 0x1be4], r10d
shr ebp, cl
test dl, dl
jne 0x4d5860
jmp 0x4d555b
mov dword [r12 + 8], 0x3f49
and edx, 0xf
mov dword [r12 + 0x58], edx
jmp 0x4d4c3d
mov rdx, rdi
jmp 0x4d49dc
cmp dword [rsp + 0xd8], 6
mov dword [r12 + 8], 0x3f47
jne case.0x4d4776.16199
mov r8d, dword [rsp + 0x30]
mov r11, r13
xor r13d, r13d
mov eax, dword [rsp + 0x38]
sub r8d, eax
jmp 0x4d4b20
mov rdx, qword [r12 + 0x28]
test rdx, rdx
je 0x4d6100
mov eax, ebp
shr eax, 8
and eax, 1
mov dword [rdx], eax
test ebp, 0x200
je 0x4d6114
test byte [r12 + 0x10], 4
jne 0x4d633e
mov dword [r12 + 8], 0x3f36
xor ebp, ebp
xor ebx, ebx
jmp 0x4d515d
mov ecx, dword [r12 + 0x20]
mov r8d, 2
mov word [rsp + 0x6c], bp
xor ebx, ebx
lea rdx, [rsp + 0x6c]
xor ebp, ebp
call fcn.004d9b10
mov r8d, dword [r12 + 0x18]
mov dword [r12 + 0x20], eax
mov eax, r8d
and eax, 0x400
jmp 0x4d52fd
mov dword [r12 + 8], 0x3f46
mov r8d, dword [r12 + 0x7c]
mov dword [r12 + 0x84], 0
mov eax, r8d
add eax, dword [r12 + 0x80]
mov dword [rsp + 0x40], eax
je 0x4d59ed
xor r10d, r10d
jmp 0x4d4f75
call fcn.004d9520
mov r11, qword [rsp + 0x30]
jmp 0x4d5fa7
mov eax, dword [rsp + 0x38]
mov qword [r15 + 0x10], r13
mov r13d, 2
mov qword [r15], rdi
mov dword [r15 + 8], esi
mov dword [r15 + 0x18], eax
mov dword [r12 + 0x48], ebp
mov dword [r12 + 0x4c], ebx
jmp 0x4d4c18
mov r8d, dword [rsp + 0x30]
mov eax, dword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x3c]
sub r8d, eax
jmp 0x4d4b20
mov ebx, dword [r12 + 0x30]
test ebx, ebx
jne 0x4d61f6
mov dword [r12 + 0x30], 0xf
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.004d9b10
mov r11d, 0xffff8b1f
xor ebp, ebp
xor ebx, ebx
mov ecx, eax
mov dword [r12 + 0x20], eax
mov r8d, 2
lea rdx, [rsp + 0x6c]
mov word [rsp + 0x6c], r11w
call fcn.004d9b10
mov dword [r12 + 8], 0x3f35
mov dword [r12 + 0x20], eax
jmp 0x4d5435
mov r8d, dword [rsp + 0x30]
mov r11, r13
mov r13d, dword [rsp + 0x3c]
sub r8d, edx
jmp 0x4d4b20
mov eax, dword [r12 + 0x30]
shr ebp, 4
mov ecx, ebp
and ecx, 0xf
add ecx, 8
test eax, eax
jne 0x4d6362
cmp ecx, 0xf
mov dword [r12 + 0x30], ecx
jbe 0x4d6373
lea rax, str.invalid_window_size
mov r11, r13
sub ebx, 4
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
lea rax, [r12 + 0x550]
mov ecx, 1
mov dword [r12 + 0x70], 9
mov qword [r12 + 0x88], rax
lea r10, [r12 + 0x310]
mov qword [r12 + 0x60], rax
lea rax, [r12 + 0x70]
lea r9, [r12 + 0x88]
mov qword [rsp + 0x28], r10
lea rdx, [r12 + 0x90]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x40], rdx
call fcn.004d6e00
mov rdx, qword [rsp + 0x40]
test eax, eax
mov r9, qword [rsp + 0x48]
mov r10, qword [rsp + 0x50]
je 0x4d63cd
lea rax, str.invalid_literal_lengths_set
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
mov r11, r13
jmp 0x4d4b0d
lea rax, str.invalid_bit_length_repeat
mov r11, r13
jmp 0x4d5481
mov ecx, dword [r12 + 0x20]
lea rdx, [rsp + 0x6c]
mov r8d, 2
mov word [rsp + 0x6c], bp
call fcn.004d9b10
mov dword [r12 + 0x20], eax
jmp 0x4d6114
cmp ecx, 0xf
ja 0x4d6277
cmp eax, ecx
jb 0x4d6277
mov eax, 1
xor r8d, r8d
xor edx, edx
shl eax, cl
xor ecx, ecx
mov dword [r12 + 0x1c], eax
call fcn.004d9520
and ebp, 0x200
mov dword [r12 + 0x20], eax
mov dword [r15 + 0x4c], eax
jne 0x4d6453
mov dword [r12 + 8], 0x3f3f
xor ebx, ebx
jmp case.0x4d4776.16191
mov r8d, dword [rsp + 0x30]
mov r11, r13
xor ebx, ebx
xor ebp, ebp
mov eax, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x3c]
sub r8d, eax
jmp 0x4d4b20
mov rax, qword [r12 + 0x88]
mov ecx, 2
mov dword [r12 + 0x74], 6
mov r8d, dword [r12 + 0x80]
mov qword [r12 + 0x68], rax
mov eax, dword [r12 + 0x7c]
mov qword [rsp + 0x28], r10
add rax, rax
add rdx, rax
lea rax, [r12 + 0x74]
mov qword [rsp + 0x20], rax
call fcn.004d6e00
test eax, eax
je 0x4d60be
lea rax, str.invalid_distances_set
mov r11, r13
mov qword [r15 + 0x20], rax
mov dword [r12 + 8], 0x3f51
jmp 0x4d4b0d
mov r8d, dword [rsp + 0x30]
mov r11, r13
shr ebp, 3
sub ebx, 3
mov eax, dword [rsp + 0x38]
xor r13d, r13d
mov rdi, rdx
sub r8d, eax
jmp 0x4d4b20
mov dword [r12 + 8], 0x3f3d
xor ebp, ebp
xor ebx, ebx
jmp 0x4d4785