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

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rdi
push r13
mov rbp, rsp
sub rsp, 0x80
mov rdi, rcx
test rcx, rcx
je 0x14022a94a
mov r13, qword [rcx + 0x28]
test r13, r13
je 0x14022a94a
cmp qword [rcx + 0x10], 0
je 0x14022a94a
cmp qword [rcx], 0
jne 0x1402295fb
cmp dword [rcx + 8], 0
jne 0x14022a94a
cmp dword [r13], 0xb
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r15
jne 0x140229623
mov dword [r13], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov r11d, dword [rcx + 0x18]
mov eax, dword [r13]
mov r9, qword [rcx + 0x10]
mov esi, dword [rcx + 8]
mov r14, qword [rcx]
mov r15d, dword [r13 + 0x38]
mov ebx, dword [r13 + 0x3c]
xor r12d, r12d
mov qword [rbp - 0x40], r9
mov dword [rbp + 0x38], r11d
mov dword [rbp - 0x44], esi
mov r10d, r11d
mov dword [rbp - 0x48], r11d
mov dword [rbp + 0x30], r12d
cmp eax, 0x1c
ja case.default.0x140229681
cdqe
lea rcx, [0x140000000]
lea rdx, [r13 + 0x64]
mov ecx, dword [rcx + rax*4 + 0x22a95c]
lea rax, [0x140000000]
lea r8, [r13 + 0x60]
add rcx, rax
jmp rcx
mov edx, dword [r13 + 8]
test edx, edx
jne 0x140229698
mov dword [r13], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
jmp 0x14022a7df
cmp ebx, 0x10
jae 0x1402296c0
nop dword [rax]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 0x10
jb 0x1402296a0
test dl, 2
je 0x140229715
cmp r15d, 0x8b1f
jne 0x140229715
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14022aca0
lea rdx, [rbp - 0x50]
mov r8d, 2
mov dword [r13 + 0x14], eax
mov word [rbp - 0x50], r15w
mov ecx, dword [r13 + 0x14]
call fcn.14022aca0
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
mov dword [r13 + 0x14], eax
mov r15d, r12d
mov ebx, r12d
mov dword [r13], 1
jmp 0x14022a7df
mov dword [r13 + 0x10], r12d
test dl, 1
je 0x1402297ba
movzx ecx, r15b
mov eax, r15d
shr eax, 8
shl ecx, 8
add ecx, eax
mov eax, 0x8421085
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x1f
cmp ecx, eax
jne 0x1402297ba
mov eax, r15d
and al, 0xf
cmp al, 8
je 0x14022975f
lea rax, str.unknown_compression_method
jmp 0x14022a7d3
shr r15d, 4
add ebx, 0xfffffffc
mov eax, r15d
and eax, 0xf
add eax, 8
cmp eax, dword [r13 + 0x1c]
jbe 0x140229781
lea rax, str.invalid_window_size
jmp 0x14022a7d3
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14022f280
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
shr r15d, 8
mov dword [r13 + 0x14], eax
mov dword [rdi + 0x4c], eax
not r15d
mov ebx, r12d
and r15d, 2
or r15d, 9
mov dword [r13], r15d
mov r15d, r12d
jmp 0x14022a7df
lea rax, str.incorrect_header_check
jmp 0x14022a7d3
cmp ebx, 0x10
jae 0x1402297f0
nop dword [rax + rax]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 0x10
jb 0x1402297d0
mov dword [r13 + 0x10], r15d
cmp r15b, 8
je 0x140229806
lea rax, str.unknown_compression_method
jmp 0x14022a7d3
test r15d, 0xe000
je 0x14022981b
lea rax, str.unknown_header_flags_set
jmp 0x14022a7d3
bt r15d, 9
jae 0x140229845
mov byte [rbp - 0x50], r15b
shr r15d, 8
lea rdx, [rbp - 0x50]
mov byte [rbp - 0x4f], r15b
mov ecx, dword [r13 + 0x14]
mov r8d, 2
call fcn.14022aca0
mov dword [r13 + 0x14], eax
mov r15d, r12d
mov ebx, r12d
mov dword [r13], 2
jmp 0x140229860
cmp ebx, 0x20
jae 0x140229880
nop word [rax + rax]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 0x20
jb 0x140229860
test dword [r13 + 0x10], 0x200
je 0x1402298bf
mov eax, r15d
mov byte [rbp - 0x50], r15b
lea rdx, [rbp - 0x50]
shr eax, 8
mov r8d, 4
mov byte [rbp - 0x4f], al
mov eax, r15d
shr r15d, 0x18
shr eax, 0x10
mov byte [rbp - 0x4d], r15b
mov byte [rbp - 0x4e], al
mov ecx, dword [r13 + 0x14]
call fcn.14022aca0
mov dword [r13 + 0x14], eax
mov r15d, r12d
mov ebx, r12d
mov dword [r13], 3
jmp 0x1402298d4
cmp ebx, 0x10
jae 0x1402298f4
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 0x10
jb 0x1402298d4
test dword [r13 + 0x10], 0x200
je 0x140229921
mov byte [rbp - 0x50], r15b
shr r15d, 8
lea rdx, [rbp - 0x50]
mov byte [rbp - 0x4f], r15b
mov ecx, dword [r13 + 0x14]
mov r8d, 2
call fcn.14022aca0
mov dword [r13 + 0x14], eax
mov r15d, r12d
mov ebx, r12d
mov dword [r13], 4
test dword [r13 + 0x10], 0x400
je 0x140229997
cmp ebx, 0x10
jae 0x140229960
nop
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 0x10
jb 0x140229940
test dword [r13 + 0x10], 0x200
mov dword [r13 + 0x40], r15d
je 0x140229991
mov byte [rbp - 0x50], r15b
shr r15d, 8
lea rdx, [rbp - 0x50]
mov byte [rbp - 0x4f], r15b
mov ecx, dword [r13 + 0x14]
mov r8d, 2
call fcn.14022aca0
mov dword [r13 + 0x14], eax
mov r15d, r12d
mov ebx, r12d
mov dword [r13], 5
mov eax, dword [r13 + 0x10]
bt eax, 0xa
jae 0x1402299e5
mov edi, dword [r13 + 0x40]
cmp edi, esi
cmova edi, esi
test edi, edi
je 0x1402299da
bt eax, 9
jae 0x1402299cf
mov ecx, dword [r13 + 0x14]
mov r8d, edi
mov rdx, r14
call fcn.14022aca0
mov dword [r13 + 0x14], eax
mov eax, edi
sub esi, edi
add r14, rax
sub dword [r13 + 0x40], edi
cmp dword [r13 + 0x40], 0
jne 0x14022a856
mov dword [r13], 6
mov ecx, dword [r13 + 0x10]
bt ecx, 0xb
jae 0x140229a3d
test esi, esi
je 0x14022a856
mov edi, r12d
mov eax, edi
inc edi
movzx r12d, byte [rax + r14]
test r12d, r12d
je 0x140229a14
cmp edi, esi
jb 0x140229a02
bt ecx, 0xd
jae 0x140229a2d
mov ecx, dword [r13 + 0x14]
mov r8d, edi
mov rdx, r14
call fcn.14022aca0
mov dword [r13 + 0x14], eax
mov eax, edi
sub esi, edi
add r14, rax
test r12d, r12d
jne 0x14022a856
mov dword [r13], 7
mov ecx, dword [r13 + 0x10]
bt ecx, 0xc
jae 0x140229a9b
test esi, esi
je 0x14022a856
mov edi, r12d
nop word [rax + rax]
mov eax, edi
inc edi
movzx r12d, byte [rax + r14]
test r12d, r12d
je 0x140229a72
cmp edi, esi
jb 0x140229a60
bt ecx, 0xd
jae 0x140229a8b
mov ecx, dword [r13 + 0x14]
mov r8d, edi
mov rdx, r14
call fcn.14022aca0
mov dword [r13 + 0x14], eax
mov eax, edi
sub esi, edi
add r14, rax
test r12d, r12d
jne 0x14022a856
mov rdi, qword [rbp + 0x20]
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
mov dword [r13], 8
xor r12d, r12d
test dword [r13 + 0x10], 0x200
je 0x140229afd
cmp ebx, 0x10
jae 0x140229ae1
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 0x10
jb 0x140229ac1
movzx eax, word [r13 + 0x14]
cmp r15d, eax
je 0x140229af7
lea rax, str.header_crc_mismatch
jmp 0x14022a7d3
mov r15d, r12d
mov ebx, r12d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14022aca0
mov dword [r13 + 0x14], eax
mov dword [rdi + 0x4c], eax
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
mov dword [r13], SafeArrayGetDim
jmp 0x14022a7df
cmp ebx, 0x20
jae 0x140229b50
nop word [rax + rax]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 0x20
jb 0x140229b30
mov ecx, r15d
mov eax, r15d
mov ebx, r12d
shl eax, 0x10
and ecx, 0xff00
add ecx, eax
mov eax, r15d
shr r15d, 0x18
shr eax, 8
shl ecx, 8
and eax, 0xff00
add eax, ecx
add eax, r15d
mov r15d, r12d
mov dword [r13 + 0x14], eax
mov dword [rdi + 0x4c], eax
mov dword [r13], 0xa
cmp dword [r13 + 0xc], 0
je 0x14022a7f8
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14022f280
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
mov dword [r13 + 0x14], eax
mov dword [rdi + 0x4c], eax
lea r8, [r13 + 0x60]
mov dword [r13], SafeArrayGetDim
lea rdx, [r13 + 0x64]
cmp dword [rbp + 0x28], 5
je 0x14022a856
cmp dword [r13 + 4], 0
je 0x140229beb
mov ecx, ebx
mov dword [r13], 0x18
and ecx, 7
shr r15d, cl
sub ebx, ecx
jmp 0x14022a7df
cmp ebx, 3
jae 0x140229c10
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 3
jb 0x140229bf0
mov eax, r15d
shr r15d, 1
dec ebx
and eax, 1
mov dword [r13 + 4], eax
mov eax, r15d
and eax, 3
je 0x140229c9d
dec eax
je 0x140229c66
dec eax
je 0x140229c52
dec eax
jne 0x140229ca5
lea rax, str.invalid_block_type
shr r15d, 2
add ebx, 0xfffffffe
mov qword [rdi + 0x20], rax
mov dword [r13], 0x1b
jmp 0x14022a7df
shr r15d, 2
mov dword [r13], SafeArrayGetDim
add ebx, 0xfffffffe
jmp 0x14022a7df
lea rax, [0x1402c98e0]
shr r15d, 2
mov dword [r8], 9
mov qword [r13 + 0x50], rax
lea rax, [0x1402ca0e0]
mov dword [rdx], 5
mov dword [r13], 0x12
add ebx, 0xfffffffe
mov qword [r13 + 0x58], rax
jmp 0x14022a7df
mov dword [r13], SafeArrayGetDim
shr r15d, 2
add ebx, 0xfffffffe
jmp 0x14022a7df
mov ecx, ebx
and ecx, 7
sub ebx, ecx
shr r15d, cl
cmp ebx, 0x20
jae 0x140229ce0
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 0x20
jb 0x140229cc0
mov eax, r15d
movzx ecx, r15w
not eax
shr eax, 0x10
cmp ecx, eax
je 0x140229cfc
lea rax, str.invalid_stored_block_lengths
jmp 0x14022a7d3
mov dword [r13 + 0x40], ecx
mov r15d, r12d
mov ebx, r12d
mov dword [r13], SafeArrayGetDim
mov r12d, dword [r13 + 0x40]
test r12d, r12d
je 0x140229d68
cmp r12d, esi
cmova r12d, esi
cmp r12d, r11d
cmova r12d, r11d
test r12d, r12d
je 0x14022a856
mov r8d, r12d
mov rdx, r14
mov rcx, r9
mov edi, r12d
call fcn.1401f96d0
mov r11d, dword [rbp + 0x38]
mov r9, qword [rbp - 0x40]
sub r11d, r12d
add r14, rdi
add r9, rdi
mov rdi, qword [rbp + 0x20]
sub esi, r12d
sub dword [r13 + 0x40], r12d
mov dword [rbp + 0x38], r11d
mov qword [rbp - 0x40], r9
jmp 0x14022a7df
mov dword [r13], SafeArrayGetDim
jmp 0x14022a7df
cmp ebx, 0xe
jae 0x140229da0
nop word [rax + rax]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 0xe
jb 0x140229d80
mov eax, r15d
shr r15d, 5
mov dword [r13 + 0x74], r12d
and eax, 0x1f
mov dword [r13], reloc.OLEAUT32.dll_SafeArrayGetDim
add eax, 0x101
mov dword [r13 + 0x6c], eax
mov eax, r15d
shr r15d, 5
and eax, 0x1f
inc eax
mov dword [r13 + 0x70], eax
mov eax, r15d
shr r15d, 4
and eax, 0xf
add eax, 4
add ebx, 0xfffffff2
mov dword [r13 + 0x68], eax
mov eax, dword [r13 + 0x68]
lea rdx, [0x140000000]
cmp dword [r13 + 0x74], eax
jae 0x140229e52
cmp ebx, 3
jae 0x140229e20
nop dword [rax]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 3
jb 0x140229e00
mov eax, dword [r13 + 0x74]
movzx ecx, r15w
add ebx, 0xfffffffd
movzx eax, word [rdx + rax*2 + 0x2ca160]
and cx, 7
shr r15d, 3
mov word [r13 + rax*2 + 0x80], cx
inc dword [r13 + 0x74]
mov eax, dword [r13 + 0x74]
cmp eax, dword [r13 + 0x68]
jb 0x140229df4
cmp dword [r13 + 0x74], 0x13
jae 0x140229e80
nop dword [rax]
mov eax, dword [r13 + 0x74]
movzx eax, word [rdx + rax*2 + 0x2ca160]
mov word [r13 + rax*2 + 0x80], r12w
inc dword [r13 + 0x74]
cmp dword [r13 + 0x74], 0x13
jb 0x140229e60
lea rax, [r13 + 0x540]
lea r9, [r13 + 0x78]
xor ecx, ecx
mov qword [r9], rax
mov qword [r13 + 0x50], rax
lea rax, [r13 + 0x300]
mov qword [rsp + 0x28], rax
mov dword [r8], 7
mov qword [rsp + 0x20], r8
lea r8d, [rcx + 0x13]
lea rdx, [r13 + 0x80]
call fcn.1402310e0
mov dword [rbp + 0x30], eax
test eax, eax
je 0x140229ed7
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
lea rax, str.invalid_code_lengths_set
jmp 0x14022a7d3
mov dword [r13 + 0x74], r12d
mov dword [r13], 0x11
lea r8, [r13 + 0x60]
mov eax, dword [r13 + 0x70]
mov r10d, dword [r13 + 0x74]
add eax, dword [r13 + 0x6c]
cmp r10d, eax
jae 0x14022a133
nop dword [rax]
mov ecx, dword [r8]
mov eax, 1
shl eax, cl
lea ecx, [rax - 1]
mov eax, r15d
and rcx, rax
mov rax, qword [r13 + 0x50]
mov eax, dword [rax + rcx*4]
mov ecx, eax
mov dword [rbp - 0x4c], eax
shr ecx, 8
movzx ecx, cl
cmp ecx, ebx
jbe 0x140229f74
nop dword [rax]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
mov ecx, dword [r8]
dec esi
add r15d, eax
mov eax, 1
inc r14
shl eax, cl
lea ecx, [rax - 1]
mov eax, r15d
and rcx, rax
mov rax, qword [r13 + 0x50]
mov eax, dword [rax + rcx*4]
mov ecx, eax
mov dword [rbp - 0x4c], eax
shr ecx, 8
movzx ecx, cl
cmp ecx, ebx
ja 0x140229f30
mov ecx, eax
shr ecx, 0x10
cmp cx, 0x10
jae 0x140229fd1
shr eax, 8
movzx edx, al
cmp ebx, edx
jae 0x140229faf
nop dword [rax]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, edx
jb 0x140229f90
movzx ecx, byte [rbp - 0x4b]
movzx eax, word [rbp - 0x4a]
shr r15d, cl
sub ebx, ecx
mov ecx, r10d
mov word [r13 + rcx*2 + 0x80], ax
inc dword [r13 + 0x74]
jmp 0x14022a109
movzx eax, word [rbp - 0x4a]
cmp ax, 0x10
jne 0x14022a03b
movzx r8d, byte [rbp - 0x4b]
lea edx, [r8 + 2]
cmp ebx, edx
jae 0x14022a007
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, edx
jb 0x140229fe8
mov ecx, r8d
sub ebx, r8d
shr r15d, cl
test r10d, r10d
je 0x14022a120
mov edx, r15d
lea eax, [r10 - 1]
shr r15d, 2
movzx r8d, word [r13 + rax*2 + 0x80]
and edx, 3
add edx, 3
add ebx, 0xfffffffe
jmp 0x14022a0d0
movzx r9d, byte [rbp - 0x4b]
cmp ax, 0x11
jne 0x14022a089
lea edx, [r9 + 3]
cmp ebx, edx
jae 0x14022a06f
nop
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, edx
jb 0x14022a050
mov ecx, r9d
mov eax, 0xfffffffd
shr r15d, cl
mov edx, r15d
and edx, 7
add edx, 3
shr r15d, 3
jmp 0x14022a0c8
lea edx, [r9 + 7]
cmp ebx, edx
jae 0x14022a0b0
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, edx
jb 0x14022a091
mov ecx, r9d
mov eax, 0xfffffff9
shr r15d, cl
mov edx, r15d
and edx, 0x7f
add edx, 0xb
shr r15d, 7
sub eax, r9d
mov r8d, r12d
add ebx, eax
mov eax, dword [r13 + 0x70]
lea ecx, [r10 + rdx]
add eax, dword [r13 + 0x6c]
cmp ecx, eax
ja 0x14022a120
test edx, edx
je 0x14022a105
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [r13 + 0x74]
mov word [r13 + rax*2 + 0x80], r8w
inc dword [r13 + 0x74]
dec edx
jne 0x14022a0f0
lea r8, [r13 + 0x60]
mov eax, dword [r13 + 0x70]
mov r10d, dword [r13 + 0x74]
add eax, dword [r13 + 0x6c]
cmp r10d, eax
jb 0x140229f00
jmp 0x14022a133
lea rax, str.invalid_bit_length_repeat
mov qword [rdi + 0x20], rax
mov dword [r13], 0x1b
mov r8d, dword [r13 + 0x6c]
lea rax, [r13 + 0x540]
lea r12, [r13 + 0x300]
mov qword [r13 + 0x78], rax
mov qword [r13 + 0x50], rax
lea rax, [r13 + 0x60]
lea rdx, [r13 + 0x80]
lea r9, [r13 + 0x78]
mov ecx, 1
mov qword [rsp + 0x28], r12
mov dword [rax], 9
mov qword [rsp + 0x20], rax
call fcn.1402310e0
mov dword [rbp + 0x30], eax
test eax, eax
je 0x14022a195
mov rdi, qword [rbp + 0x20]
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
lea rax, str.invalid_literal_lengths_set
jmp 0x14022a7d3
mov rax, qword [r13 + 0x78]
mov r8d, dword [r13 + 0x70]
lea rcx, [r13 + 0x64]
mov qword [r13 + 0x58], rax
mov eax, dword [r13 + 0x6c]
mov dword [rcx], 6
lea rdx, [rax*2 + 0x80]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rcx
lea r9, [r13 + 0x78]
mov ecx, 2
add rdx, r13
call fcn.1402310e0
mov rdi, qword [rbp + 0x20]
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
mov dword [rbp + 0x30], eax
test eax, eax
je 0x14022a1f1
lea rax, str.invalid_distances_set
jmp 0x14022a7d3
mov r10d, dword [rbp - 0x48]
mov dword [r13], 0x12
lea r8, [r13 + 0x60]
cmp esi, 6
jb 0x14022a253
cmp r11d, 0x102
jb 0x14022a253
mov qword [rdi + 0x10], r9
mov dword [rdi + 0x18], r11d
mov qword [rdi], r14
mov dword [rdi + 8], esi
mov edx, r10d
mov rcx, rdi
mov dword [r13 + 0x38], r15d
mov dword [r13 + 0x3c], ebx
call fcn.140231620
mov r9, qword [rdi + 0x10]
mov r11d, dword [rdi + 0x18]
mov r14, qword [rdi]
mov esi, dword [rdi + 8]
mov r15d, dword [r13 + 0x38]
mov ebx, dword [r13 + 0x3c]
mov qword [rbp - 0x40], r9
mov dword [rbp + 0x38], r11d
jmp 0x14022a7df
mov ecx, dword [r8]
mov r11, qword [r13 + 0x50]
mov eax, 1
shl eax, cl
lea ecx, [rax - 1]
mov eax, r15d
and rcx, rax
mov eax, dword [r11 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, ebx
jbe 0x14022a2c1
nop word [rax + rax]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
mov ecx, dword [r8]
dec esi
add r15d, eax
mov eax, 1
inc r14
shl eax, cl
lea ecx, [rax - 1]
mov eax, r15d
and rcx, rax
mov rax, qword [r13 + 0x50]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, ebx
ja 0x14022a280
test al, al
je 0x14022a388
test al, 0xf0
jne 0x14022a388
mov r10d, eax
movzx ecx, al
mov dword [rbp - 0x4c], eax
shr r10d, 8
mov r9d, 1
mov edx, eax
movzx r8d, r10b
shr eax, 0x10
add ecx, r8d
shl r9d, cl
mov ecx, r8d
dec r9d
and r9d, r15d
shr r9d, cl
add r9d, eax
mov eax, dword [r11 + r9*4]
movzx r11d, byte [rbp - 0x4b]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r10b
add r8d, ecx
cmp r8d, ebx
jbe 0x14022a37f
movzx r10d, word [rbp - 0x4a]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
movzx r9d, r11b
shl eax, cl
mov r8d, 1
movzx ecx, dl
add ecx, r9d
add r15d, eax
movzx eax, r10w
shl r8d, cl
mov ecx, r9d
add ebx, 8
dec r8d
dec esi
inc r14
and r8d, r15d
shr r8d, cl
add r8d, eax
mov rax, qword [r13 + 0x50]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, ebx
ja 0x14022a325
movzx ecx, r11b
shr r15d, cl
sub ebx, ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
shr r15d, cl
sub ebx, ecx
mov ecx, eax
shr ecx, 0x10
mov dword [r13 + 0x40], ecx
test al, al
jne 0x14022a3b7
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
mov dword [r13], 0x17
jmp 0x14022a7df
test al, 0x20
jne 0x140229b10
test al, 0x40
je 0x14022a3d7
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
lea rax, str.invalid_literal_length_code
jmp 0x14022a7d3
movzx ecx, al
mov dword [r13], 0x13
and ecx, 0xf
mov dword [r13 + 0x48], ecx
mov edx, dword [r13 + 0x48]
test edx, edx
je 0x14022a42b
cmp ebx, edx
jae 0x14022a414
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, edx
jb 0x14022a3f5
mov ecx, edx
mov eax, 1
shl eax, cl
dec eax
and eax, r15d
shr r15d, cl
add dword [r13 + 0x40], eax
sub ebx, edx
mov dword [r13], 0x14
lea rdx, [r13 + 0x64]
mov ecx, dword [rdx]
mov r11, qword [r13 + 0x58]
mov eax, 1
shl eax, cl
lea ecx, [rax - 1]
mov eax, r15d
and rcx, rax
mov eax, dword [r11 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, ebx
jbe 0x14022a4a0
nop dword [rax]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
mov ecx, dword [rdx]
dec esi
add r15d, eax
mov eax, 1
inc r14
shl eax, cl
lea ecx, [rax - 1]
mov eax, r15d
and rcx, rax
mov rax, qword [r13 + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, ebx
ja 0x14022a460
test al, 0xf0
jne 0x14022a563
mov r10d, eax
movzx ecx, al
mov dword [rbp - 0x4c], eax
shr r10d, 8
mov r9d, 1
mov edx, eax
movzx r8d, r10b
shr eax, 0x10
add ecx, r8d
shl r9d, cl
mov ecx, r8d
dec r9d
and r9d, r15d
shr r9d, cl
add r9d, eax
mov eax, dword [r11 + r9*4]
movzx r11d, byte [rbp - 0x4b]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r10b
add r8d, ecx
cmp r8d, ebx
jbe 0x14022a55a
movzx r10d, word [rbp - 0x4a]
nop dword [rax]
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
movzx r9d, r11b
shl eax, cl
mov r8d, 1
movzx ecx, dl
add ecx, r9d
add r15d, eax
movzx eax, r10w
shl r8d, cl
mov ecx, r9d
add ebx, 8
dec r8d
dec esi
inc r14
and r8d, r15d
shr r8d, cl
add r8d, eax
mov rax, qword [r13 + 0x58]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, ebx
ja 0x14022a500
movzx ecx, r11b
shr r15d, cl
sub ebx, ecx
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
shr r15d, cl
sub ebx, ecx
test al, 0x40
je 0x14022a588
lea rax, str.invalid_distance_code
jmp 0x14022a7d3
mov r10d, dword [rbp - 0x48]
mov ecx, eax
mov dword [r13], 0x15
shr ecx, 0x10
mov dword [r13 + 0x44], ecx
movzx ecx, al
and ecx, 0xf
mov dword [r13 + 0x48], ecx
mov edx, dword [r13 + 0x48]
test edx, edx
je 0x14022a5e9
cmp ebx, edx
jae 0x14022a5d2
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, edx
jb 0x14022a5b3
mov ecx, edx
mov eax, 1
shl eax, cl
dec eax
and eax, r15d
shr r15d, cl
add dword [r13 + 0x44], eax
sub ebx, edx
mov eax, dword [r13 + 0x24]
sub eax, r11d
add eax, r10d
cmp dword [r13 + 0x44], eax
jbe 0x14022a605
lea rax, str.invalid_distance_too_far_back
jmp 0x14022a7d3
mov dword [r13], 0x16
test r11d, r11d
je 0x14022a856
mov ecx, dword [r13 + 0x44]
mov eax, r10d
sub eax, r11d
cmp ecx, eax
jbe 0x14022a64a
sub ecx, eax
mov eax, dword [r13 + 0x28]
cmp ecx, eax
jbe 0x14022a638
mov edx, dword [r13 + 0x20]
sub ecx, eax
sub edx, ecx
jmp 0x14022a63c
sub eax, ecx
mov edx, eax
mov eax, dword [r13 + 0x40]
add rdx, qword [r13 + 0x30]
cmp ecx, eax
jbe 0x14022a656
jmp 0x14022a654
mov eax, dword [r13 + 0x40]
mov rdx, r9
sub rdx, rcx
mov ecx, eax
cmp ecx, r11d
cmova ecx, r11d
sub r11d, ecx
sub eax, ecx
sub rdx, r9
mov dword [rbp + 0x38], r11d
mov dword [r13 + 0x40], eax
nop dword [rax]
movzx eax, byte [rdx + r9]
inc r9
mov byte [r9 - 1], al
dec ecx
jne 0x14022a670
mov qword [rbp - 0x40], r9
cmp dword [r13 + 0x40], ecx
jne 0x14022a7df
mov dword [r13], 0x12
jmp 0x14022a7df
test r11d, r11d
je 0x14022a856
movzx eax, byte [r13 + 0x40]
inc r9
dec r11d
mov byte [r9 - 1], al
mov dword [rbp + 0x38], r11d
mov qword [rbp - 0x40], r9
mov dword [r13], 0x12
jmp 0x14022a7df
cmp dword [r13 + 8], 0
je 0x14022a783
cmp ebx, 0x20
jae 0x14022a6f8
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 0x20
jb 0x14022a6d8
sub r10d, r11d
add dword [rdi + 0x1c], r10d
add dword [r13 + 0x18], r10d
test r10d, r10d
je 0x14022a73a
mov ecx, dword [r13 + 0x14]
mov eax, r10d
mov rdx, r9
sub rdx, rax
cmp dword [r13 + 0x10], 0
mov r8d, r10d
je 0x14022a726
call fcn.14022aca0
jmp 0x14022a72b
call fcn.14022f280
mov r9, qword [rbp - 0x40]
mov r11d, dword [rbp + 0x38]
mov dword [r13 + 0x14], eax
mov dword [rdi + 0x4c], eax
cmp dword [r13 + 0x10], 0
mov dword [rbp - 0x48], r11d
mov ecx, r15d
jne 0x14022a76e
and ecx, 0xff00
mov eax, r15d
shl eax, 0x10
add ecx, eax
mov eax, r15d
shr eax, 8
shl ecx, 8
and eax, 0xff00
add ecx, eax
mov eax, r15d
shr eax, 0x18
add ecx, eax
cmp ecx, dword [r13 + 0x14]
je 0x14022a77d
lea rax, str.incorrect_data_check
jmp 0x14022a7d3
mov r15d, r12d
mov ebx, r12d
mov dword [r13], 0x19
cmp dword [r13 + 8], 0
je 0x14022a83e
cmp dword [r13 + 0x10], 0
je 0x14022a83e
cmp ebx, 0x20
jae 0x14022a7c6
test esi, esi
je 0x14022a856
movzx eax, byte [r14]
mov ecx, ebx
add ebx, 8
shl eax, cl
dec esi
inc r14
add r15d, eax
cmp ebx, 0x20
jb 0x14022a7a6
cmp r15d, dword [r13 + 0x18]
je 0x14022a838
lea rax, str.incorrect_length_check
mov qword [rdi + 0x20], rax
mov dword [r13], 0x1b
mov eax, dword [r13]
cmp eax, 0x1c
ja case.default.0x140229681
mov r10d, dword [rbp - 0x48]
xor r12d, r12d
jmp 0x14022965f
mov qword [rdi + 0x10], r9
mov dword [rdi + 0x18], r11d
mov qword [rdi], r14
mov dword [rdi + 8], esi
mov eax, 2
mov dword [r13 + 0x38], r15d
mov dword [r13 + 0x3c], ebx
mov r14, qword [rsp + 0x60]
mov r12, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
mov r15, qword [rsp + 0x58]
add rsp, 0x80
pop r13
pop rdi
pop rbp
ret
mov r15d, r12d
mov ebx, r12d
mov dword [r13], 0x1a
mov r12d, 1
jmp 0x14022a85a
mov r12d, 0xfffffffd
jmp 0x14022a85a
mov r12d, dword [rbp + 0x30]
mov rdi, qword [rbp + 0x20]
mov rax, qword [rbp - 0x40]
mov qword [rdi + 0x10], rax
mov eax, dword [rbp + 0x38]
mov qword [rdi], r14
mov dword [rdi + 0x18], eax
mov dword [rdi + 8], esi
cmp dword [r13 + 0x20], 0
mov dword [r13 + 0x3c], ebx
mov ebx, dword [rbp - 0x48]
mov dword [r13 + 0x38], r15d
jne 0x14022a890
cmp dword [r13], 0x18
jge 0x14022a8b0
cmp ebx, dword [rdi + 0x18]
je 0x14022a8b0
mov edx, ebx
mov rcx, rdi
call fcn.14022aba0
test eax, eax
je 0x14022a8b0
mov dword [r13], 0x1c
mov eax, 0xfffffffc
jmp 0x14022a813
sub ebx, dword [rdi + 0x18]
mov esi, dword [rbp - 0x44]
sub esi, dword [rdi + 8]
add dword [rdi + 0x1c], ebx
add dword [rdi + 0xc], esi
add dword [r13 + 0x18], ebx
cmp dword [r13 + 8], 0
je 0x14022a8f8
test ebx, ebx
je 0x14022a8f8
mov rdx, qword [rdi + 0x10]
mov ecx, dword [r13 + 0x14]
mov eax, ebx
sub rdx, rax
cmp dword [r13 + 0x10], 0
mov r8d, ebx
je 0x14022a8ec
call fcn.14022aca0
jmp 0x14022a8f1
call fcn.14022f280
mov dword [r13 + 0x14], eax
mov dword [rdi + 0x4c], eax
mov eax, dword [r13 + 4]
mov edx, 0x80
neg eax
mov eax, 0
sbb ecx, ecx
and ecx, 0x40
cmp dword [r13], 0xb
cmove eax, edx
add ecx, eax
add ecx, dword [r13 + 0x3c]
mov dword [rdi + 0x48], ecx
test esi, esi
jne 0x14022a926
test ebx, ebx
je 0x14022a92c
cmp dword [rbp + 0x28], 4
jne 0x14022a938
mov eax, 0xfffffffb
test r12d, r12d
cmove r12d, eax
mov eax, r12d
jmp 0x14022a813
mov eax, 0xfffffffe
jmp 0x14022a813
mov eax, 0xfffffffe
add rsp, 0x80
pop r13
pop rdi
pop rbp
ret