Function at 0x1401120b0
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, 0xb8
movaps xmmword [rsp + 0xa0], xmm6
lea rax, [0x1403ebf00]
movq xmm6, rax
mov dword [rsp + 0x108], edx
lea rdx, [0x1403ebe80]
movq xmm1, rdx
mov qword [rsp + 0x100], rcx
call fcn.140111f90
punpcklqdq xmm6, xmm1
mov r14d, eax
test eax, eax
jne case.default.0x140112195
mov r11, qword [rcx + 0x10]
test r11, r11
je case.default.0x140112195
mov r13, qword [rcx]
mov edi, dword [rcx + 8]
test r13, r13
je 0x140112360
mov rax, qword [rsp + 0x100]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x38], rax
mov eax, dword [rax + 8]
cmp eax, 0x3f3f
jne 0x14011214e
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f40
mov eax, 0x3f40
mov rbx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x38]
mov dword [rsp + 0x48], edi
mov r12d, edi
mov dword [rsp + 0x54], r14d
mov r10d, dword [rbx + 0x18]
mov esi, dword [rdx + 0x48]
mov rdi, rdx
mov ebx, dword [rdx + 0x4c]
mov dword [rsp + 0x40], r10d
sub eax, 0x3f34
cmp eax, 0x1e
ja case.default.0x140112195
lea rdx, [0x1403e8f50]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
cmp ebx, 0x1f
ja 0x1401121da
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x1401121c1
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0x1f
jbe 0x1401121b8
mov rax, qword [rsp + 0x100]
bswap esi
mov dword [rdi + 0x20], esi
xor ebx, ebx
mov dword [rax + 0x4c], esi
xor esi, esi
mov dword [rdi + 8], 0x3f3e
mov ebp, dword [rdi + 0x14]
test ebp, ebp
je 0x1401142c4
mov rax, qword [rsp + 0x100]
mov dword [rdi + 0x20], 1
mov dword [rax + 0x4c], 1
mov dword [rdi + 8], 0x3f3f
mov eax, dword [rsp + 0x108]
sub eax, 5
cmp eax, 1
jbe 0x1401131d0
mov r9d, dword [rdi + 0xc]
test r9d, r9d
je 0x1401124f8
mov rax, qword [rsp + 0x38]
mov ecx, ebx
mov edi, dword [rsp + 0x48]
and ebx, 0xfffffff8
and ecx, 7
mov r14d, dword [rsp + 0x54]
mov dword [rax + 8], 0x3f4e
shr esi, cl
mov rax, qword [rsp + 0x38]
mov ebp, dword [rax + 0x10]
test ebp, ebp
je 0x1401137a8
cmp ebx, 0x1f
ja 0x1401122a4
mov ecx, ebx
test r12d, r12d
jne 0x140112289
jmp 0x140113322
test r12d, r12d
je 0x140113320
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0x1f
jbe 0x140112280
mov ebx, ecx
mov eax, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x100]
mov r15, qword [rsp + 0x38]
sub eax, r10d
add dword [rdx + 0x1c], eax
add dword [r15 + 0x24], eax
test bpl, 4
je 0x140113d40
mov ecx, dword [r15 + 0x20]
test eax, eax
je 0x140112315
mov r9d, dword [r15 + 0x18]
mov r8d, eax
mov rdx, r11
mov dword [rsp + 0x48], r10d
sub rdx, r8
mov qword [rsp + 0x40], r11
test r9d, r9d
je 0x1401142ae
call fcn.14010f230
mov r11, qword [rsp + 0x40]
mov r10d, dword [rsp + 0x48]
mov ecx, eax
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x20], ecx
mov rax, qword [rsp + 0x100]
mov dword [rax + 0x4c], ecx
mov rdx, qword [rsp + 0x38]
mov eax, esi
mov edx, dword [rdx + 0x18]
test edx, edx
jne 0x140112325
bswap eax
cmp eax, ecx
je 0x140113d40
mov rax, qword [rsp + 0x100]
lea rdx, str.incorrect_data_check
mov dword [rsp + 0x40], r10d
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
test edi, edi
je 0x140112122
mov r14d, 0xfffffffe
jmp 0x1401127c6
mov rax, qword [0x1403eca40]
shr esi, 3
sub ebx, 3
mov r13, rdx
movups xmmword [rdi + 0x60], xmm6
mov qword [rdi + 0x70], rax
mov dword [rdi + 8], 0x3f48
cmp r12d, 5
jbe 0x140113408
cmp r10d, 0x101
jbe 0x140113408
mov rax, qword [rsp + 0x100]
mov r8d, 0xffffffff
mov rbp, rdi
mov r14, qword [rax + 0x28]
mov dword [rax + 0x18], r10d
mov dword [rax + 8], r12d
mov ecx, dword [r14 + 0x70]
mov r9, qword [r14 + 0x60]
mov qword [rax + 0x10], r11
mov qword [rax], r13
lea eax, [r12 - 5]
mov r15, qword [r14 + 0x68]
lea r12, [r13 + rax]
mov eax, dword [rsp + 0x40]
mov dword [rdi + 0x4c], ebx
mov rbx, r11
shl r8d, cl
mov dword [rdi + 0x48], esi
mov edx, dword [r14 + 0x4c]
sub eax, r10d
not r8d
sub rbx, rax
lea eax, [r10 - 0x101]
mov dword [rsp + 0x60], r8d
mov r10d, 0xffffffff
add rax, r11
mov qword [rsp + 0x70], rbx
mov ebx, dword [r14 + 0x74]
mov qword [rsp + 0x58], rax
mov eax, dword [r14 + 0x34]
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x88], eax
mov eax, dword [r14 + 0x38]
mov dword [rsp + 0x84], eax
mov eax, dword [r14 + 0x3c]
mov dword [rsp + 0x80], eax
mov rax, qword [r14 + 0x40]
mov qword [rsp + 0x78], rax
mov eax, dword [r14 + 0x48]
cmp edx, 0xe
ja 0x140112480
movzx r8d, byte [r13 + 1]
lea ecx, [rdx + 8]
movzx ebx, byte [r13]
add r13, 2
shl r8d, cl
mov ecx, edx
add edx, 0x10
shl ebx, cl
add r8d, ebx
add eax, r8d
mov ecx, dword [rsp + 0x60]
and ecx, eax
jmp 0x1401124b5
test cl, 0x10
jne 0x1401134d0
test cl, 0x40
jne 0x1401136b8
mov edi, r10d
movzx r8d, word [rbx + 2]
shl edi, cl
mov ecx, edi
not ecx
and ecx, eax
add rcx, r8
lea rbx, [r9 + rcx*4]
movzx ecx, byte [rbx + 1]
shr eax, cl
sub edx, ecx
movzx ecx, byte [rbx]
mov r8d, ecx
test ecx, ecx
jne 0x140112490
movzx ecx, word [rbx + 2]
add r11, 1
mov byte [r11 - 1], cl
cmp r13, r12
jae 0x1401124ea
mov rbx, qword [rsp + 0x58]
cmp r11, rbx
jb 0x14011245a
mov rdi, rbp
jmp 0x1401135a4
cmp ebx, 2
ja 0x1401141a8
test r12d, r12d
je 0x1401141c2
movzx eax, byte [r13]
mov ecx, ebx
sub r12d, 1
lea rdx, [r13 + 1]
add ebx, 8
shl eax, cl
add esi, eax
mov eax, esi
and eax, 1
mov dword [rdi + 0xc], eax
mov eax, esi
shr eax, 1
and eax, 3
cmp eax, 2
je 0x140113061
cmp eax, 3
je 0x140113db9
cmp eax, 1
je 0x140112378
mov dword [rdi + 8], 0x3f41
shr esi, 3
sub ebx, 3
mov r13, rdx
nop word [rax + rax]
mov ecx, ebx
and ebx, 0xfffffff8
and ecx, 7
shr esi, cl
cmp ebx, 0x1f
ja 0x1401125a4
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140112589
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0x1f
jbe 0x140112580
mov ebx, ecx
mov edx, esi
movzx eax, si
shr edx, 0x10
xor edx, 0xffff
cmp eax, edx
je 0x140113c46
mov rax, qword [rsp + 0x100]
lea rdx, str.invalid_stored_block_lengths
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
mov r8d, dword [rdi + 0x58]
test r8d, r8d
jne 0x140113ad8
mov dword [rdi + 8], 0x3f4c
test r10d, r10d
je 0x1401140d1
mov ecx, dword [rsp + 0x40]
mov eax, dword [rdi + 0x54]
mov edx, ecx
sub edx, r10d
cmp edx, eax
jae 0x140113960
lea edx, [rax + r10]
mov eax, edx
sub eax, ecx
cmp dword [rdi + 0x38], eax
jae 0x140113640
mov r14d, dword [rdi + 0x1be0]
test r14d, r14d
je 0x140113640
mov rax, qword [rsp + 0x100]
lea rdx, str.invalid_distance_too_far_back
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
mov ebp, dword [rsp + 0x40]
mov r14d, 0xfffffffd
sub ebp, r10d
nop word [rax + rax]
mov rax, qword [rsp + 0x100]
mov qword [rax + 0x10], r11
mov dword [rax + 0x18], r10d
mov qword [rax], r13
mov dword [rax + 8], r12d
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x48], esi
mov esi, dword [rax + 0x34]
mov dword [rax + 0x4c], ebx
test esi, esi
jne 0x1401126c0
mov esi, dword [rax + 8]
cmp dword [rsp + 0x40], r10d
je 0x14011273c
cmp esi, 0x3f50
ja 0x14011273c
cmp dword [rsp + 0x108], 4
jne 0x1401126c0
cmp esi, 0x3f4d
ja 0x14011273c
nop dword [rax]
mov rax, qword [rsp + 0x100]
mov rsi, qword [rax + 0x28]
mov rax, qword [rsi + 0x40]
test rax, rax
je 0x1401132c0
mov r8d, dword [rsi + 0x34]
test r8d, r8d
jne 0x1401126fa
mov ecx, dword [rsi + 0x30]
mov r8d, 1
mov qword [rsi + 0x38], 0
shl r8d, cl
mov dword [rsi + 0x34], r8d
cmp ebp, r8d
jb 0x140113260
mov rdx, r11
mov rcx, rax
sub rdx, r8
call sub.msvcrt.dll_memcpy
mov eax, dword [rsi + 0x34]
mov dword [rsi + 0x3c], 0
mov dword [rsi + 0x38], eax
mov rax, qword [rsp + 0x100]
mov ebp, dword [rsp + 0x40]
mov r12d, dword [rax + 8]
sub ebp, dword [rax + 0x18]
mov rax, qword [rsp + 0x38]
mov ebx, dword [rax + 0x4c]
mov esi, dword [rax + 8]
mov rax, qword [rsp + 0x100]
sub edi, r12d
mov r13d, edi
add dword [rax + 0xc], edi
add dword [rax + 0x1c], ebp
mov rax, qword [rsp + 0x38]
add dword [rax + 0x24], ebp
test byte [rax + 0x10], 4
je 0x140112766
test ebp, ebp
jne 0x140113210
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0xc]
test eax, eax
setne al
movzx eax, al
shl eax, 6
add eax, ebx
cmp esi, 0x3f3f
je 0x140113200
cmp esi, 0x3f47
sete dl
cmp esi, 0x3f42
sete cl
or edx, ecx
movzx edx, dl
shl edx, 8
add eax, edx
mov rbx, qword [rsp + 0x100]
or r13d, ebp
mov dword [rbx + 0x48], eax
je 0x1401127bd
cmp dword [rsp + 0x108], 4
jne 0x1401127c6
test r14d, r14d
je 0x140113c6e
movaps xmm6, xmmword [rsp + 0xa0]
mov eax, r14d
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [rdi + 0x58]
test edx, edx
jne 0x140113740
mov eax, dword [rdi + 0x50]
mov dword [rdi + 0x1be8], eax
mov dword [rdi + 8], 0x3f4a
mov ecx, dword [rdi + 0x74]
mov r15d, 0xffffffff
mov r9, qword [rdi + 0x68]
shl r15d, cl
not r15d
mov eax, r15d
and eax, esi
lea rax, [r9 + rax*4]
movzx edx, byte [rax + 1]
movzx r8d, byte [rax]
movzx ebp, word [rax + 2]
movzx eax, dl
mov r14d, eax
cmp ebx, eax
jae 0x140112886
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140112851
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
mov eax, r15d
and eax, esi
lea rax, [r9 + rax*4]
movzx edx, byte [rax + 1]
movzx r8d, byte [rax]
movzx ebp, word [rax + 2]
movzx eax, dl
mov r14d, eax
cmp ecx, eax
jb 0x140112848
mov ebx, ecx
mov r15d, eax
cmp r8b, 0xf
jbe 0x140113893
mov r15d, dword [rdi + 0x1be4]
mov ecx, eax
sub ebx, eax
add eax, r15d
mov dword [rdi + 0x1be4], eax
shr esi, cl
test r8b, 0x40
je 0x1401139a0
mov rax, qword [rsp + 0x100]
lea rdx, str.invalid_distance_code
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
mov ebp, dword [rdi + 0x18]
mov r9d, ebp
and r9d, 0x200
test r9d, r9d
jne 0x14011296e
nop word [rax + rax]
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x140112911
sar ebp, 9
mov dword [rax + 0x40], 1
and ebp, 1
mov dword [rax + 0x3c], ebp
mov rax, qword [rsp + 0x100]
mov dword [rdi + 0x20], 0
mov dword [rax + 0x4c], 0
mov dword [rdi + 8], 0x3f3f
jmp case.0x140112195.16191
mov ebp, dword [rdi + 0x18]
test ebp, 0x1000
jne 0x140113160
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x140112958
mov qword [rax + 0x30], 0
mov r9d, ebp
and r9d, 0x200
mov dword [rdi + 8], 0x3f3c
test r9d, r9d
je 0x1401128f8
cmp ebx, 0xf
ja 0x1401129a4
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140112989
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0xf
jbe 0x140112980
mov ebx, ecx
test byte [rdi + 0x10], 4
je 0x140113870
movzx eax, word [rdi + 0x20]
cmp eax, esi
je 0x140113870
mov rax, qword [rsp + 0x100]
lea rdx, str.header_crc_mismatch
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
mov eax, dword [rdi + 0x50]
mov dword [rdi + 8], 0x3f43
test eax, eax
je 0x140112216
cmp r12d, eax
cmovbe eax, r12d
cmp eax, r10d
cmova eax, r10d
mov ebp, eax
test eax, eax
je 0x1401131d0
mov r14d, eax
mov rdx, r13
mov rcx, r11
mov dword [rsp + 0x58], r10d
mov r8, r14
sub r12d, ebp
add r13, r14
call sub.msvcrt.dll_memcpy
mov r10d, dword [rsp + 0x58]
sub dword [rdi + 0x50], ebp
mov r11, rax
mov eax, dword [rdi + 8]
sub r10d, ebp
add r11, r14
jmp 0x140112179
mov eax, dword [rdi + 0x50]
jmp 0x1401129f2
mov rax, qword [rsp + 0x38]
mov edi, dword [rsp + 0x48]
mov r14d, dword [rsp + 0x54]
mov ebp, dword [rax + 0x10]
test ebp, ebp
je 0x1401137a8
mov rax, qword [rsp + 0x38]
mov r15d, dword [rax + 0x18]
test r15d, r15d
je 0x1401137a8
cmp ebx, 0x1f
ja 0x140112abc
mov ecx, ebx
test r12d, r12d
jne 0x140112aa1
jmp 0x140113322
test r12d, r12d
je 0x140113320
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0x1f
jbe 0x140112a98
mov ebx, ecx
and ebp, 4
je 0x14011379d
mov rax, qword [rsp + 0x38]
cmp esi, dword [rax + 0x24]
je 0x14011379d
mov rdx, qword [rsp + 0x100]
lea rcx, str.incorrect_length_check
mov qword [rdx + 0x20], rcx
mov dword [rax + 8], 0x3f51
jmp 0x140112655
mov ebp, dword [rsp + 0x40]
mov edi, dword [rsp + 0x48]
mov r14d, 1
sub ebp, r10d
jmp 0x140112668
mov ebp, dword [rdi + 0x84]
mov r8d, dword [rdi + 0x7c]
mov r15d, dword [rdi + 0x80]
add r15d, r8d
cmp ebp, r15d
jae 0x1401137f6
mov ecx, dword [rdi + 0x70]
mov edx, 0xffffffff
mov dword [rsp + 0x58], r8d
mov r9, qword [rdi + 0x60]
shl edx, cl
not edx
mov eax, edx
and eax, esi
lea rax, [r9 + rax*4]
movzx ecx, byte [rax + 1]
movzx r14d, word [rax + 2]
movzx eax, cl
cmp ebx, eax
jae 0x140112bac
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140112b79
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
mov eax, esi
and eax, edx
lea rax, [r9 + rax*4]
movzx r8d, byte [rax + 1]
movzx r14d, word [rax + 2]
movzx eax, r8b
cmp ecx, eax
jb 0x140112b70
mov ebx, ecx
mov ecx, r8d
cmp r14w, 0xf
jbe 0x1401137d0
cmp r14w, 0x10
je 0x14011406a
cmp r14w, 0x11
je 0x140113d5a
lea r8d, [rax + 7]
cmp ebx, r8d
jae 0x140112c0c
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140112bf1
test r12d, r12d
je 0x1401131e8
movzx ebx, byte [r13]
add r13, 1
sub r12d, 1
shl ebx, cl
add ecx, 8
add esi, ebx
cmp ecx, r8d
jb 0x140112be8
mov ebx, ecx
mov ecx, eax
sub ebx, eax
xor r14d, r14d
shr esi, cl
sub ebx, 7
mov ecx, esi
shr esi, 7
and ecx, 0x7f
add ecx, 0xb
add ebp, ecx
cmp r15d, ebp
jb 0x140114456
mov eax, dword [rdi + 0x84]
lea ebp, [rcx + rax]
nop word [rax + rax]
mov ecx, eax
add eax, 1
mov word [rdi + rcx*2 + 0x90], r14w
cmp ebp, eax
jne 0x140112c40
mov dword [rdi + 0x84], ebp
jmp 0x1401137e8
mov edx, dword [rdi + 0x10]
test edx, edx
jne 0x140113b36
mov dword [rdi + 8], 0x3f40
jmp case.0x140112195.16192
cmp ebx, 0x1f
ja 0x140112cba
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140112ca1
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0x1f
jbe 0x140112c98
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x140112cc6
mov dword [rax + 4], esi
test byte [rdi + 0x19], 2
je 0x140112cd6
test byte [rdi + 0x10], 4
jne 0x140113fae
mov dword [rdi + 8], 0x3f37
xor ebx, ebx
xor esi, esi
jmp 0x140112ced
cmp ebx, 0xf
ja 0x140112d22
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140112d09
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0xf
jbe 0x140112d00
mov r15, qword [rdi + 0x28]
test r15, r15
je 0x140112d3c
movzx eax, sil
mov dword [r15 + 8], eax
mov eax, esi
shr eax, 8
mov dword [r15 + 0xc], eax
mov r14d, dword [rdi + 0x18]
mov ebp, r14d
test r14d, 0x200
je 0x140112d90
test byte [rdi + 0x10], 4
je 0x140112d90
mov ecx, dword [rdi + 0x20]
mov r8d, 2
mov dword [rsp + 0x60], r10d
lea rdx, [rsp + 0x9c]
mov qword [rsp + 0x58], r11
mov word [rsp + 0x9c], si
call fcn.14010f230
mov r10d, dword [rsp + 0x60]
mov r11, qword [rsp + 0x58]
mov dword [rdi + 0x20], eax
nop word [rax + rax]
mov dword [rdi + 8], 0x3f38
xor ebx, ebx
xor esi, esi
test r14d, 0x400
je 0x140112e28
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140112dc1
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0xf
jbe 0x140112db8
mov rax, qword [rdi + 0x28]
mov dword [rdi + 0x50], esi
test rax, rax
je 0x140112de9
mov dword [rax + 0x18], esi
test r14d, 0x200
je 0x140112dfc
test byte [rdi + 0x10], 4
jne 0x14011421b
mov eax, r14d
mov ebp, r14d
xor ebx, ebx
xor esi, esi
and eax, 0x400
jmp 0x140112e37
mov r14d, dword [rdi + 0x18]
mov ebp, r14d
test r14d, 0x400
jne 0x140113c38
mov r15, qword [rdi + 0x28]
test r15, r15
je 0x140112e35
mov qword [r15 + 0x10], 0
xor eax, eax
mov dword [rdi + 8], 0x3f39
test eax, eax
je 0x140112f02
mov ebp, dword [rdi + 0x50]
cmp r12d, ebp
mov r15d, ebp
cmovbe r15d, r12d
test r15d, r15d
je 0x140112ef7
mov rcx, qword [rdi + 0x28]
mov r9d, r15d
test rcx, rcx
je 0x140112ed8
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x140112ed8
mov r8d, dword [rcx + 0x18]
mov ecx, dword [rcx + 0x1c]
mov edx, r8d
sub edx, ebp
cmp edx, ecx
jae 0x140112ed8
lea r14d, [r15 + rdx]
mov qword [rsp + 0x58], r9
cmp ecx, r14d
jae 0x140112e9c
add ecx, ebp
mov r14d, ecx
sub r14d, r8d
mov qword [rsp + 0x58], r14
mov r8, qword [rsp + 0x58]
lea rcx, [rax + rdx]
mov rdx, r13
mov dword [rsp + 0x80], r10d
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x60], r9
call sub.msvcrt.dll_memcpy
mov r14d, dword [rdi + 0x18]
mov ebp, dword [rdi + 0x50]
mov r10d, dword [rsp + 0x80]
mov r11, qword [rsp + 0x68]
mov r9, qword [rsp + 0x60]
test r14d, 0x200
je 0x140112eeb
test byte [rdi + 0x10], 4
jne 0x140113f34
sub ebp, r15d
sub r12d, r15d
add r13, r9
mov dword [rdi + 0x50], ebp
test ebp, ebp
jne 0x1401131d0
mov ebp, r14d
mov dword [rdi + 0x50], 0
mov dword [rdi + 8], 0x3f3a
jmp 0x140112f33
mov r14d, dword [rdi + 0x18]
mov eax, r14d
mov ebp, r14d
and eax, 0x400
jmp 0x140112e3e
mov ebp, dword [rdi + 0x18]
test ebp, 0x800
jne 0x140113330
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x140112f50
mov qword [rax + 0x20], 0
mov dword [rdi + 0x50], 0
mov dword [rdi + 8], 0x3f3b
jmp 0x14011293b
mov ebp, dword [rdi + 0x78]
mov eax, dword [rdi + 0x84]
cmp eax, ebp
jae 0x140113df2
lea rdx, [0x1403ebe40]
mov ecx, ebx
lea r8d, [rax + 1]
lea r9, [rdx + rax*2]
cmp ecx, 2
ja 0x140112fe6
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
sub r12d, 1
lea rdx, [r13 + 1]
shl eax, cl
add ecx, 8
add esi, eax
movzx eax, word [r9]
mov ebx, esi
mov dword [rdi + 0x84], r8d
shr esi, 3
and ebx, 7
sub ecx, 3
add r9, 2
mov word [rdi + rax*2 + 0x90], bx
lea eax, [r8 + 1]
cmp r8d, ebp
je 0x140113dea
mov r8d, eax
mov r13, rdx
cmp ecx, 2
jbe 0x140112f8f
mov rdx, r13
jmp 0x140112fac
cmp ebx, 0xf
ja 0x14011302c
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140113011
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0xf
jbe 0x140113008
mov ebx, ecx
mov dword [rdi + 0x18], esi
cmp sil, 8
je 0x140113c52
mov edi, dword [rsp + 0x48]
lea rax, str.unknown_compression_method
mov rdx, qword [rsp + 0x100]
mov qword [rdx + 0x20], rax
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
mov dword [rdi + 8], 0x3f44
shr esi, 3
sub ebx, 3
mov r13, rdx
nop dword [rax]
cmp ebx, 0xd
ja 0x1401130b4
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140113099
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0xd
jbe 0x140113090
mov ebx, ecx
mov eax, esi
mov ebp, esi
mov edx, esi
sub ebx, 0xe
shr eax, 5
shr ebp, 0xa
and edx, 0x1f
and eax, 0x1f
and ebp, 0xf
add edx, 0x101
shr esi, 0xe
add eax, 1
add ebp, 4
mov dword [rdi + 0x7c], edx
mov dword [rdi + 0x80], eax
mov dword [rdi + 0x78], ebp
cmp edx, 0x11e
ja 0x1401130f8
cmp eax, 0x1e
jbe 0x140114052
mov rax, qword [rsp + 0x100]
lea rdx, str.too_many_length_or_distance_symbols
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
mov dword [rdi + 0x1be4], eax
shr esi, cl
sub ebx, eax
mov dword [rdi + 0x50], r9d
mov dword [rdi + 8], 0x3f4d
test r10d, r10d
je 0x1401140d1
mov eax, dword [rdi + 0x50]
sub r10d, 1
add r11, 1
mov byte [r11 - 1], al
mov dword [rdi + 8], 0x3f48
jmp case.0x140112195.16200
test r12d, r12d
je 0x1401131d0
mov rdx, r13
xor r14d, r14d
jmp 0x140113175
cmp r14d, r12d
jae 0x1401131aa
mov rax, qword [rdi + 0x28]
movzx r15d, byte [rdx]
add r14d, 1
test rax, rax
je 0x1401131a1
mov r8, qword [rax + 0x30]
test r8, r8
je 0x1401131a1
mov ecx, dword [rdi + 0x50]
cmp ecx, dword [rax + 0x38]
jae 0x1401131a1
lea eax, [rcx + 1]
mov dword [rdi + 0x50], eax
mov byte [r8 + rcx], r15b
add rdx, 1
test r15b, r15b
jne 0x140113170
mov ebp, dword [rdi + 0x18]
mov r8d, r14d
mov r9d, ebp
and r9d, 0x200
jne 0x1401136f0
sub r12d, r14d
add r13, r8
test r15b, r15b
je 0x140112962
nop
mov ebp, dword [rsp + 0x40]
mov edi, dword [rsp + 0x48]
mov r14d, dword [rsp + 0x54]
sub ebp, r10d
jmp 0x140112668
mov ebp, dword [rsp + 0x40]
mov edi, dword [rsp + 0x48]
mov ebx, ecx
mov r14d, dword [rsp + 0x54]
sub ebp, r10d
jmp 0x140112668
sub eax, 0xffffff80
jmp 0x1401127a3
mov rdi, qword [rsp + 0x100]
mov r9d, dword [rax + 0x18]
mov r8d, ebp
mov ecx, dword [rax + 0x20]
mov rdi, qword [rdi + 0x10]
mov rdx, rdi
mov qword [rsp + 0x40], rdi
sub rdx, r8
test r9d, r9d
je 0x140113310
call fcn.14010f230
mov rdi, qword [rsp + 0x38]
mov dword [rdi + 0x20], eax
mov rdi, qword [rsp + 0x100]
mov dword [rdi + 0x4c], eax
jmp 0x140112766
mov edx, dword [rsi + 0x3c]
mov qword [rsp + 0x48], r11
sub r8d, edx
lea rcx, [rax + rdx]
mov eax, ebp
mov rdx, r11
cmp r8d, ebp
mov ebx, r8d
cmova ebx, ebp
sub rdx, rax
mov r8d, ebx
call sub.msvcrt.dll_memcpy
sub ebp, ebx
mov r11, qword [rsp + 0x48]
jne 0x1401133d8
mov eax, dword [rsi + 0x3c]
mov edx, dword [rsi + 0x34]
add eax, ebx
cmp eax, edx
cmove eax, ebp
mov dword [rsi + 0x3c], eax
mov eax, dword [rsi + 0x38]
cmp eax, edx
jae 0x14011271e
add ebx, eax
mov dword [rsi + 0x38], ebx
jmp 0x14011271e
mov ecx, dword [rsi + 0x30]
mov edx, 1
mov qword [rsp + 0x48], r11
mov r8d, 1
mov rax, qword [rsp + 0x100]
shl edx, cl
mov rcx, qword [rax + 0x40]
call qword [rax + 0x30]
mov r11, qword [rsp + 0x48]
test rax, rax
mov qword [rsi + 0x40], rax
jne 0x1401126d9
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f52
mov r14d, 0xfffffffc
jmp 0x1401127c6
call fcn.14010ee50
jmp 0x14011323f
mov ebx, ecx
mov ebp, dword [rsp + 0x40]
sub ebp, r10d
jmp 0x140112668
test r12d, r12d
je 0x1401131d0
mov rdx, r13
xor r14d, r14d
nop
mov rax, qword [rdi + 0x28]
movzx r15d, byte [rdx]
add r14d, 1
test rax, rax
je 0x14011336c
mov r8, qword [rax + 0x20]
test r8, r8
je 0x14011336c
mov ecx, dword [rdi + 0x50]
cmp ecx, dword [rax + 0x28]
jae 0x14011336c
lea eax, [rcx + 1]
mov dword [rdi + 0x50], eax
mov byte [r8 + rcx], r15b
add rdx, 1
test r15b, r15b
je 0x14011337a
cmp r14d, r12d
jb 0x140113340
mov ebp, dword [rdi + 0x18]
mov r8d, r14d
test ebp, 0x200
je 0x1401133c0
test byte [rdi + 0x10], 4
je 0x1401133c0
mov ecx, dword [rdi + 0x20]
mov rdx, r13
mov dword [rsp + 0x68], r10d
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x58], r8
call fcn.14010f230
mov r10d, dword [rsp + 0x68]
mov r11, qword [rsp + 0x60]
mov dword [rdi + 0x20], eax
mov r8, qword [rsp + 0x58]
nop word [rax + rax]
sub r12d, r14d
add r13, r8
test r15b, r15b
je 0x140112f50
jmp 0x1401131d0
mov r8d, ebp
mov rdx, r11
mov rcx, qword [rsi + 0x40]
sub rdx, r8
call sub.msvcrt.dll_memcpy
movd xmm0, dword [rsi + 0x34]
movd xmm2, ebp
punpckldq xmm0, xmm2
movq qword [rsi + 0x38], xmm0
jmp 0x14011271e
mov ecx, dword [rdi + 0x70]
mov ebp, 0xffffffff
mov r8, qword [rdi + 0x60]
mov eax, esi
mov dword [rdi + 0x1be4], 0
shl ebp, cl
not ebp
and eax, ebp
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 0x140113490
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140113459
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
mov eax, esi
and eax, ebp
lea rax, [r8 + rax*4]
movzx ebx, byte [rax + 1]
movzx edx, byte [rax]
movzx r9d, word [rax + 2]
movzx eax, bl
cmp ecx, eax
jb 0x140113450
mov r15d, ecx
mov ecx, ebx
mov ebx, r15d
test dl, dl
je 0x140113120
cmp dl, 0xf
jbe 0x1401140e3
mov dword [rdi + 0x1be4], eax
mov ecx, eax
sub ebx, eax
mov dword [rdi + 0x50], r9d
shr esi, cl
test dl, 0x20
je 0x140113f68
mov dword [rdi + 0x1be4], 0xffffffff
mov dword [rdi + 8], 0x3f3f
jmp case.0x140112195.16191
movzx ebx, word [rbx + 2]
and r8d, 0xf
je 0x140113508
movzx edi, r8b
cmp edx, edi
jae 0x1401134f4
movzx esi, byte [r13]
mov ecx, edx
add r13, 1
add edx, 8
shl esi, cl
add eax, esi
mov ecx, r8d
mov esi, 0xffffffff
sub edx, edi
shl esi, cl
not esi
and esi, eax
shr eax, cl
add ebx, esi
cmp edx, 0xe
jbe 0x140113840
movzx ecx, byte [rsp + 0x68]
mov r8d, 0xffffffff
mov edi, 0xffffffff
shl r8d, cl
not r8d
and r8d, eax
lea rsi, [r15 + r8*4]
movzx ecx, byte [rsi + 1]
shr eax, cl
sub edx, ecx
movzx ecx, byte [rsi]
mov r8d, ecx
test cl, 0x10
je 0x140113580
jmp 0x1401139c0
mov r8d, edi
shl r8d, cl
mov ecx, r8d
movzx r8d, word [rsi + 2]
not ecx
and ecx, eax
add rcx, r8
lea rsi, [r15 + rcx*4]
movzx ecx, byte [rsi + 1]
shr eax, cl
sub edx, ecx
movzx ecx, byte [rsi]
mov r8d, ecx
test cl, 0x10
jne 0x1401139c0
and r8d, 0x40
je 0x140113550
mov rbx, qword [rsp + 0x100]
lea rsi, str.invalid_distance_code
mov rdi, rbp
mov qword [rbx + 0x20], rsi
mov dword [r14 + 8], 0x3f51
mov ecx, edx
and edx, 7
mov r8d, 0xffffffff
shr ecx, 3
sub r13, rcx
mov ecx, edx
shl r8d, cl
not r8d
and r8d, eax
mov rax, qword [rsp + 0x100]
mov qword [rax], r13
mov qword [rax + 0x10], r11
cmp r13, r12
jae 0x140113988
sub r12, r13
add r12d, 5
mov rax, qword [rsp + 0x100]
mov dword [rax + 8], r12d
mov rax, qword [rsp + 0x58]
cmp r11, rax
jae 0x140113970
sub rax, r11
mov r10, rax
add r10d, 0x101
mov rax, qword [rsp + 0x100]
mov dword [rax + 0x18], r10d
mov eax, dword [rdi + 8]
mov dword [r14 + 0x48], r8d
mov esi, dword [rdi + 0x48]
mov dword [r14 + 0x4c], edx
mov ebx, dword [rdi + 0x4c]
cmp eax, 0x3f3f
jne 0x140112179
mov dword [rdi + 0x1be4], 0xffffffff
jmp case.0x140112195.16191
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rdi + 0x3c]
mov rcx, qword [rdi + 0x40]
sub r9d, edx
cmp r8d, eax
jb 0x140113880
lea edx, [r8 + r9]
add rcx, rdx
mov edx, dword [rdi + 0x50]
cmp edx, eax
cmovbe eax, edx
cmp eax, r10d
cmova eax, r10d
sub edx, eax
lea r8d, [rax - 1]
sub r10d, eax
xor eax, eax
mov dword [rdi + 0x50], edx
lea r9, [r8 + 1]
nop dword [rax]
movzx edx, byte [rcx + rax]
mov byte [r11 + rax], dl
mov rdx, rax
add rax, 1
cmp rdx, r8
jne 0x140113688
mov ebp, dword [rdi + 0x50]
add r11, r9
test ebp, ebp
je case.0x140112195.16199
mov eax, dword [rdi + 8]
jmp 0x140112179
and r8d, 0x20
mov rdi, rbp
mov ecx, 0x3f3f
jne 0x1401136de
mov rbx, qword [rsp + 0x100]
lea rsi, str.invalid_literal_length_code
mov ecx, 0x3f51
mov qword [rbx + 0x20], rsi
mov dword [r14 + 8], ecx
jmp 0x1401135a4
test byte [rdi + 0x10], 4
je 0x1401131c0
mov ecx, dword [rdi + 0x20]
mov rdx, r13
mov qword [rsp + 0x68], r11
mov dword [rsp + 0x80], r10d
mov dword [rsp + 0x60], r9d
mov qword [rsp + 0x58], r8
call fcn.14010f230
mov r11, qword [rsp + 0x68]
mov r9d, dword [rsp + 0x60]
mov r10d, dword [rsp + 0x80]
mov r8, qword [rsp + 0x58]
mov dword [rdi + 0x20], eax
jmp 0x1401131c0
cmp ebx, edx
jae 0x14011377b
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140113761
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, edx
jb 0x140113758
mov ebx, ecx
mov ecx, edx
mov eax, 0xffffffff
add dword [rdi + 0x1be4], edx
sub ebx, edx
shl eax, cl
not eax
and eax, esi
add eax, dword [rdi + 0x50]
shr esi, cl
mov dword [rdi + 0x50], eax
jmp 0x1401127f6
xor ebx, ebx
xor esi, esi
nop dword [rax]
mov rax, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x40]
mov r14d, 1
mov dword [rax + 8], 0x3f50
sub ebp, r10d
jmp 0x140112668
sub ebx, eax
lea eax, [rbp + 1]
shr esi, cl
mov dword [rdi + 0x84], eax
mov word [rdi + rbp*2 + 0x90], r14w
mov ebp, eax
cmp ebp, r15d
jb 0x140112b42
mov r8d, dword [rsp + 0x58]
cmp dword [rdi + 8], 0x3f51
je case.0x140112195.16209
cmp word [rdi + 0x290], 0
jne 0x140114353
mov rax, qword [rsp + 0x100]
lea rdx, str.invalid_code____missing_end_of_block
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
movzx r8d, byte [r13 + 1]
lea ecx, [rdx + 8]
movzx esi, byte [r13]
add r13, 2
shl r8d, cl
mov ecx, edx
add edx, 0x10
shl esi, cl
add r8d, esi
add eax, r8d
jmp 0x140113511
xor ebx, ebx
xor esi, esi
jmp 0x1401128f8
sub eax, r8d
add r8d, dword [rdi + 0x34]
lea edx, [r8 + r9]
add rcx, rdx
jmp 0x140113660
lea ecx, [r8 + rax]
mov eax, 0xffffffff
mov dword [rsp + 0x60], ebp
shl eax, cl
mov ecx, edx
not eax
mov dword [rsp + 0x58], eax
and eax, esi
shr eax, cl
add eax, ebp
mov eax, eax
lea rax, [r9 + rax*4]
movzx r8d, byte [rax]
movzx ebp, word [rax + 2]
movzx eax, byte [rax + 1]
lea edx, [r15 + rax]
cmp ebx, edx
jae 0x140113935
test r12d, r12d
je 0x1401131d0
mov dword [rsp + 0x68], r14d
mov r8d, dword [rsp + 0x60]
mov r14d, dword [rsp + 0x58]
jmp 0x1401138f1
test r12d, r12d
je 0x1401131d0
movzx eax, byte [r13]
mov ecx, ebx
add ebx, 8
add r13, 1
sub r12d, 1
shl eax, cl
mov ecx, r15d
add esi, eax
mov eax, esi
and eax, r14d
shr eax, cl
add eax, r8d
mov eax, eax
lea rax, [r9 + rax*4]
movzx ecx, byte [rax]
movzx ebp, word [rax + 2]
movzx eax, byte [rax + 1]
lea edx, [rax + r15]
cmp ebx, edx
jb 0x1401138e8
mov r14d, dword [rsp + 0x68]
mov r8d, ecx
mov ecx, r15d
sub ebx, r14d
add r15d, dword [rdi + 0x1be4]
shr esi, cl
jmp 0x14011289a
mov edi, dword [rsp + 0x48]
mov r14d, dword [rsp + 0x54]
jmp 0x14011225c
mov rcx, r11
sub rcx, rax
mov eax, dword [rdi + 0x50]
mov edx, eax
jmp 0x140113668
mov eax, dword [rsp + 0x58]
sub eax, r11d
lea r10d, [rax + 0x101]
jmp 0x140113606
mov eax, r12d
sub eax, r13d
lea r12d, [rax + 5]
jmp 0x1401135df
and r8d, 0xf
mov dword [rdi + 0x54], ebp
mov dword [rdi + 0x58], r8d
mov dword [rdi + 8], 0x3f4b
jmp 0x1401125e4
movzx edi, word [rsi + 2]
mov dword [rsp + 0x8c], edi
mov edi, r8d
and r8d, 0xf
and edi, 0xf
cmp edx, r8d
jae 0x1401139f7
movzx esi, byte [r13]
mov ecx, edx
shl esi, cl
lea ecx, [rdx + 8]
add eax, esi
cmp ecx, r8d
jb 0x140113f99
add r13, 1
mov edx, ecx
mov ecx, edi
mov esi, 0xffffffff
sub edx, r8d
shl esi, cl
mov ecx, dword [rsp + 0x8c]
not esi
and esi, eax
add esi, ecx
mov ecx, edi
mov rdi, r11
shr eax, cl
mov rcx, qword [rsp + 0x70]
sub rdi, rcx
cmp edi, esi
jae 0x140113ecf
mov r8d, esi
sub r8d, edi
cmp dword [rsp + 0x84], r8d
jae 0x140113a46
mov ecx, dword [r14 + 0x1be0]
test ecx, ecx
jne 0x1401144b8
mov ecx, edi
mov edi, dword [rsp + 0x80]
sub ecx, esi
mov dword [rsp + 0x8c], ecx
test edi, edi
jne 0x140113c79
mov edi, dword [rsp + 0x88]
add ecx, edi
mov rdi, qword [rsp + 0x78]
mov ecx, ecx
add rcx, rdi
cmp r8d, ebx
jb 0x140114264
cmp ebx, 2
jbe 0x140113ab2
nop dword [rax]
movzx r8d, byte [rcx]
add rcx, 3
add r11, 3
sub ebx, 3
mov byte [r11 - 3], r8b
movzx r8d, byte [rcx - 2]
mov byte [r11 - 2], r8b
movzx r8d, byte [rcx - 1]
mov byte [r11 - 1], r8b
cmp ebx, 2
ja 0x140113a88
test ebx, ebx
je 0x1401124d7
movzx r8d, byte [rcx]
mov byte [r11], r8b
cmp ebx, 2
je 0x1401141d5
add r11, 1
jmp 0x1401124d7
cmp ebx, r8d
jae 0x140113b14
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140113af9
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, r8d
jb 0x140113af0
mov ebx, ecx
mov ecx, r8d
mov eax, 0xffffffff
add dword [rdi + 0x1be4], r8d
sub ebx, r8d
shl eax, cl
not eax
and eax, esi
shr esi, cl
add dword [rdi + 0x54], eax
jmp 0x1401125ed
cmp ebx, 0xf
ja 0x140113b74
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140113b59
test r12d, r12d
je 0x1401131e8
movzx eax, byte [r13]
add r13, 1
sub r12d, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0xf
jbe 0x140113b50
mov ebx, ecx
test dl, 2
je 0x140113b85
cmp esi, 0x8b1f
je 0x1401142f1
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x140113b95
mov dword [rax + 0x40], 0xffffffff
and edx, 1
je 0x140113fe7
mov edx, esi
mov eax, esi
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 0x140113fe7
mov eax, esi
and eax, 0xf
cmp eax, 8
jne 0x140113039
shr esi, 4
mov eax, dword [rdi + 0x30]
mov ecx, esi
and ecx, 0xf
add ecx, 8
test eax, eax
jne 0x1401143e3
mov dword [rdi + 0x30], ecx
cmp ecx, 0xf
jbe 0x1401143f4
mov rax, qword [rsp + 0x100]
lea rdx, str.invalid_window_size
mov edi, dword [rsp + 0x48]
sub ebx, 4
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
cmp ebx, 0xf
jbe 0x140112da8
jmp 0x140112dda
mov dword [rdi + 0x50], eax
xor ebx, ebx
xor esi, esi
jmp 0x1401129eb
test esi, 0xe000
je 0x1401141e6
mov edi, dword [rsp + 0x48]
lea rax, str.unknown_header_flags_set
jmp 0x140113044
mov r14d, 0xfffffffb
jmp 0x1401127c6
mov ecx, dword [rsp + 0x80]
cmp ecx, r8d
jae 0x140113ff7
mov edi, dword [rsp + 0x88]
add ecx, edi
mov edi, dword [rsp + 0x8c]
add ecx, edi
mov rdi, qword [rsp + 0x78]
mov ecx, ecx
add rcx, rdi
mov edi, dword [rsp + 0x80]
sub r8d, edi
cmp r8d, ebx
jae 0x140113a7c
add ebx, edi
mov edi, dword [rsp + 0x8c]
mov dword [rsp + 0x8c], eax
add ebx, edi
xor edi, edi
movzx eax, byte [rcx + rdi]
mov byte [r11 + rdi], al
add rdi, 1
cmp rdi, r8
jne 0x140113ccc
mov eax, dword [rsp + 0x8c]
mov rcx, qword [rsp + 0x78]
add r11, rdi
cmp dword [rsp + 0x80], ebx
jae 0x140113a7c
mov r8d, dword [rsp + 0x80]
mov rdi, qword [rsp + 0x78]
xor ecx, ecx
sub ebx, r8d
movzx eax, byte [rdi + rcx]
mov byte [r11 + rcx], al
add rcx, 1
cmp rcx, r8
jne 0x140113d0b
add r11, rcx
mov eax, dword [rsp + 0x8c]
mov rcx, r11
sub rcx, rsi
cmp ebx, 2
ja 0x140113a88
jmp 0x140113aba
mov rax, qword [rsp + 0x38]
mov dword [rsp + 0x40], r10d
xor ebx, ebx
xor esi, esi
mov dword [rax + 8], 0x3f4f
jmp 0x140112a71
lea ecx, [rax + 3]
cmp ebx, ecx
jae 0x140113d9d
test r12d, r12d
je 0x1401131d0
mov r14d, ebx
mov ebx, ecx
mov ecx, r14d
jmp 0x140113d81
test r12d, r12d
je 0x1401131e8
movzx r8d, byte [r13]
add r13, 1
sub r12d, 1
shl r8d, cl
add ecx, 8
add esi, r8d
cmp ecx, ebx
jb 0x140113d78
mov ebx, ecx
mov ecx, eax
sub ebx, eax
xor r14d, r14d
shr esi, cl
sub ebx, 3
mov ecx, esi
shr esi, 3
and ecx, 7
add ecx, 3
jmp 0x140112c23
lea rcx, str.invalid_block_type
shr esi, 3
sub ebx, 3
mov r13, rdx
mov rax, qword [rsp + 0x100]
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
mov ebx, ecx
mov eax, r8d
mov r13, rdx
cmp eax, 0x12
ja 0x140113e42
mov ecx, 0x12
mov r8d, eax
lea rdx, [0x1403ebe40]
sub ecx, eax
lea rdx, [rdx + r8*2]
lea rax, [rcx + r8]
lea rcx, [0x1403ebe42]
lea rcx, [rcx + rax*2]
nop dword [rax + rax]
movzx eax, word [rdx]
xor r8d, r8d
add rdx, 2
mov word [rdi + rax*2 + 0x90], r8w
cmp rcx, rdx
jne 0x140113e20
mov dword [rdi + 0x84], 0x13
lea rax, [rdi + 0x550]
mov dword [rdi + 0x70], 7
xor ecx, ecx
lea rdx, [rdi + 0x90]
mov qword [rdi + 0x88], rax
lea r9, [rdi + 0x88]
mov r8d, 0x13
mov qword [rdi + 0x60], rax
lea rax, [rdi + 0x310]
mov qword [rsp + 0x28], rax
lea rax, [rdi + 0x70]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x60], r10d
mov qword [rsp + 0x58], r11
call fcn.14010f620
mov r11, qword [rsp + 0x58]
mov r10d, dword [rsp + 0x60]
test eax, eax
je 0x140114296
mov rax, qword [rsp + 0x100]
lea rdx, str.invalid_code_lengths_set
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
mov rcx, r11
sub rcx, rsi
nop dword [rax]
movzx r8d, byte [rcx]
mov rdi, rcx
add rcx, 3
mov rsi, r11
sub ebx, 3
add r11, 3
mov byte [r11 - 3], r8b
movzx r8d, byte [rcx - 2]
mov byte [r11 - 2], r8b
movzx r8d, byte [rcx - 1]
mov byte [r11 - 1], r8b
cmp ebx, 2
ja 0x140113ed8
test ebx, ebx
je 0x1401124d7
movzx ecx, byte [rdi + 3]
lea r11, [rsi + 4]
mov byte [rsi + 3], cl
cmp ebx, 2
jne 0x1401124d7
movzx ecx, byte [rdi + 4]
lea r11, [rsi + 5]
mov byte [rsi + 4], cl
jmp 0x1401124d7
mov ecx, dword [rdi + 0x20]
mov r8, r9
mov rdx, r13
mov dword [rsp + 0x68], r10d
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x58], r9
call fcn.14010f230
mov r10d, dword [rsp + 0x68]
mov r11, qword [rsp + 0x60]
mov dword [rdi + 0x20], eax
mov r9, qword [rsp + 0x58]
jmp 0x140112eeb
test dl, 0x40
je 0x1401141b0
mov rax, qword [rsp + 0x100]
lea rdx, str.invalid_literal_length_code
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
movzx esi, byte [r13 + 1]
add edx, 0x10
add r13, 2
shl esi, cl
add eax, esi
jmp 0x1401139f7
mov ecx, dword [rdi + 0x20]
mov r8d, 4
mov dword [rsp + 0x60], r10d
lea rdx, [rsp + 0x9c]
mov qword [rsp + 0x58], r11
mov dword [rsp + 0x9c], esi
call fcn.14010f230
mov r10d, dword [rsp + 0x60]
mov r11, qword [rsp + 0x58]
mov dword [rdi + 0x20], eax
jmp 0x140112cd6
mov edi, dword [rsp + 0x48]
lea rax, str.incorrect_header_check
jmp 0x140113044
mov edi, dword [rsp + 0x80]
mov ecx, dword [rsp + 0x8c]
add ecx, edi
mov rdi, qword [rsp + 0x78]
mov ecx, ecx
add rcx, rdi
cmp r8d, ebx
jae 0x140113a7c
mov edi, dword [rsp + 0x8c]
mov dword [rsp + 0x8c], eax
add ebx, edi
xor edi, edi
movzx eax, byte [rcx + rdi]
mov byte [r11 + rdi], al
add rdi, 1
cmp rdi, r8
jne 0x14011402c
add r11, rdi
mov eax, dword [rsp + 0x8c]
mov rcx, r11
sub rcx, rsi
jmp 0x140113a7c
mov dword [rdi + 0x84], 0
xor eax, eax
mov dword [rdi + 8], 0x3f45
jmp 0x140112f79
lea r8d, [rax + 2]
cmp ebx, r8d
jae 0x1401140a4
test r12d, r12d
je 0x1401131d0
mov ecx, ebx
jmp 0x140114089
test r12d, r12d
je 0x1401131e8
movzx ebx, byte [r13]
add r13, 1
sub r12d, 1
shl ebx, cl
add ecx, 8
add esi, ebx
cmp ecx, r8d
jb 0x140114080
mov ebx, ecx
mov ecx, eax
sub ebx, eax
shr esi, cl
test ebp, ebp
je 0x140114456
mov ecx, esi
lea eax, [rbp - 1]
shr esi, 2
sub ebx, 2
movzx r14d, word [rdi + rax*2 + 0x90]
and ecx, 3
add ecx, 3
jmp 0x140112c23
mov edi, dword [rsp + 0x48]
mov r14d, dword [rsp + 0x54]
mov ebp, dword [rsp + 0x40]
jmp 0x140112668
add edx, eax
movzx r15d, r9w
mov r9d, 0xffffffff
mov ecx, edx
shl r9d, cl
mov ecx, eax
not r9d
mov edx, r9d
mov dword [rsp + 0x58], r9d
and edx, esi
shr edx, cl
add edx, r15d
mov edx, edx
lea rcx, [r8 + rdx*4]
movzx r9d, byte [rcx + 1]
movzx edx, byte [rcx]
movzx r14d, word [rcx + 2]
lea ebp, [r9 + rax]
cmp ebx, ebp
jae 0x14011417f
test r12d, r12d
je 0x1401131d0
mov r9d, dword [rsp + 0x58]
jmp 0x140114141
test r12d, r12d
je 0x1401131d0
movzx edx, byte [r13]
mov ecx, ebx
add ebx, 8
add r13, 1
sub r12d, 1
shl edx, cl
mov ecx, eax
add esi, edx
mov edx, r9d
and edx, esi
shr edx, cl
add edx, r15d
mov edx, edx
lea rcx, [r8 + rdx*4]
movzx edx, byte [rcx]
movzx r14d, word [rcx + 2]
movzx ecx, byte [rcx + 1]
lea ebp, [rcx + rax]
cmp ebx, ebp
jb 0x140114138
mov r9d, ecx
mov ecx, eax
sub ebx, eax
mov dword [rdi + 0x1be4], ebp
shr esi, cl
mov ecx, r9d
mov dword [rdi + 0x50], r14d
sub ebx, r9d
shr esi, cl
test dl, dl
jne 0x1401134b1
jmp 0x14011312e
mov rdx, r13
jmp 0x140112520
and edx, 0xf
mov dword [rdi + 8], 0x3f49
mov dword [rdi + 0x58], edx
jmp 0x1401127eb
mov ebp, dword [rsp + 0x40]
mov edi, dword [rsp + 0x48]
xor r14d, r14d
sub ebp, r10d
jmp 0x140112668
movzx ecx, byte [rcx + 1]
add r11, 2
mov byte [r11 - 1], cl
jmp 0x1401124d7
mov rdx, qword [rdi + 0x28]
test rdx, rdx
je 0x1401141f9
mov eax, esi
shr eax, 8
and eax, 1
mov dword [rdx], eax
test esi, 0x200
je 0x14011420b
test byte [rdi + 0x10], 4
jne 0x14011447e
mov dword [rdi + 8], 0x3f36
xor ebx, ebx
xor esi, esi
jmp 0x140112c85
mov ecx, dword [rdi + 0x20]
lea rdx, [rsp + 0x9c]
mov ebp, r14d
xor ebx, ebx
mov r8d, 2
mov dword [rsp + 0x60], r10d
mov qword [rsp + 0x58], r11
mov word [rsp + 0x9c], si
xor esi, esi
call fcn.14010f230
mov r11, qword [rsp + 0x58]
mov r10d, dword [rsp + 0x60]
mov dword [rdi + 0x20], eax
mov eax, r14d
and eax, 0x400
jmp 0x140112e37
mov edi, dword [rsp + 0x8c]
mov dword [rsp + 0x8c], eax
add ebx, edi
xor edi, edi
nop word cs:[rax + rax]
movzx eax, byte [rcx + rdi]
mov byte [r11 + rdi], al
add rdi, 1
cmp rdi, r8
jne 0x140114280
jmp 0x14011403d
mov dword [rdi + 0x84], 0
xor ebp, ebp
mov dword [rdi + 8], 0x3f46
jmp 0x140112b16
call fcn.14010ee50
mov r10d, dword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov ecx, eax
jmp 0x140112302
mov rax, qword [rsp + 0x100]
mov r14d, 2
mov qword [rax + 0x10], r11
mov dword [rax + 0x18], r10d
mov qword [rax], r13
mov dword [rax + 8], r12d
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x48], esi
mov dword [rax + 0x4c], ebx
jmp 0x1401127c6
mov r15d, dword [rdi + 0x30]
test r15d, r15d
jne 0x140114301
mov dword [rdi + 0x30], 0xf
mov dword [rdi + 0x20], 0
xor ecx, ecx
xor ebx, ebx
xor esi, esi
movzx eax, word [0x1403eca38]
mov r8d, 2
mov dword [rsp + 0x60], r10d
lea rdx, [rsp + 0x9c]
mov qword [rsp + 0x58], r11
mov word [rsp + 0x9c], ax
call fcn.14010f230
mov r11, qword [rsp + 0x58]
mov r10d, dword [rsp + 0x60]
mov dword [rdi + 8], 0x3f35
mov dword [rdi + 0x20], eax
jmp 0x140112ff5
lea rax, [rdi + 0x550]
lea rbp, [rdi + 0x310]
mov dword [rdi + 0x70], 9
mov ecx, 1
mov qword [rdi + 0x88], rax
lea r15, [rdi + 0x88]
lea r14, [rdi + 0x90]
mov qword [rdi + 0x60], rax
lea rax, [rdi + 0x70]
mov r9, r15
mov rdx, r14
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x60], r10d
mov qword [rsp + 0x58], r11
call fcn.14010f620
mov r11, qword [rsp + 0x58]
mov r10d, dword [rsp + 0x60]
test eax, eax
je 0x1401144db
mov rax, qword [rsp + 0x100]
lea rdx, str.invalid_literal_lengths_set
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
cmp ecx, 0xf
ja 0x140113c06
cmp eax, ecx
jb 0x140113c06
mov eax, 1
xor r14d, r14d
xor r8d, r8d
xor edx, edx
shl eax, cl
mov dword [rdi + 0x18], r14d
xor ecx, ecx
mov dword [rdi + 0x1c], eax
mov dword [rsp + 0x60], r10d
mov qword [rsp + 0x58], r11
call fcn.14010ee50
and esi, 0x200
mov r11, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x100]
mov dword [rdi + 0x20], eax
mov r10d, dword [rsp + 0x60]
mov dword [rbx + 0x4c], eax
jne 0x14011455d
mov dword [rdi + 8], 0x3f3f
xor ebx, ebx
jmp case.0x140112195.16191
mov edi, dword [rsp + 0x48]
jmp 0x140112655
mov rax, qword [rsp + 0x100]
lea rdx, str.invalid_bit_length_repeat
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
mov ecx, dword [rdi + 0x20]
mov r8d, 2
mov dword [rsp + 0x60], r10d
lea rdx, [rsp + 0x9c]
mov qword [rsp + 0x58], r11
mov word [rsp + 0x9c], si
call fcn.14010f230
mov r10d, dword [rsp + 0x60]
mov r11, qword [rsp + 0x58]
mov dword [rdi + 0x20], eax
jmp 0x14011420b
mov rbx, qword [rsp + 0x100]
lea rsi, str.invalid_distance_too_far_back
mov rdi, rbp
mov qword [rbx + 0x20], rsi
mov dword [r14 + 8], 0x3f51
jmp 0x1401135a4
mov rax, qword [rdi + 0x88]
mov r9, r15
mov ecx, 2
mov dword [rsp + 0x60], r10d
mov dword [rdi + 0x74], 6
mov r8d, dword [rdi + 0x80]
mov qword [rdi + 0x68], rax
mov eax, dword [rdi + 0x7c]
mov qword [rsp + 0x28], rbp
add rax, rax
mov qword [rsp + 0x58], r11
lea rdx, [r14 + rax]
lea rax, [rdi + 0x74]
mov qword [rsp + 0x20], rax
call fcn.14010f620
mov r11, qword [rsp + 0x58]
mov r10d, dword [rsp + 0x60]
test eax, eax
je case.0x140112195.16199
mov rax, qword [rsp + 0x100]
lea rdx, str.invalid_distances_set
mov edi, dword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], 0x3f51
jmp 0x140112655
mov dword [rdi + 8], 0x3f3d
xor esi, esi
xor ebx, ebx
jmp 0x1401121a5