Function at 0x18008c0a8
Capabilities:
Compress data via zlib inflate or deflate
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov r14, rcx
call fcn.18008bda4
xor r11d, r11d
test eax, eax
jne case.default.0x18008c175
mov r9, qword [r14 + 0x10]
mov qword [rbp - 8], r9
test r9, r9
je case.default.0x18008c175
mov r13, qword [r14]
mov qword [rbp - 0x10], r13
test r13, r13
jne 0x18008c0fd
cmp dword [r14 + 8], r11d
jne case.default.0x18008c175
mov rbx, qword [r14 + 0x28]
mov eax, 0x3f40
mov edx, dword [rbx + 8]
cmp edx, 0x3f3f
jne 0x18008c125
mov dword [rbx + 8], eax
mov edx, eax
mov r9, qword [r14 + 0x10]
mov r13, qword [r14]
mov qword [rbp - 8], r9
mov qword [rbp - 0x10], r13
mov r10d, dword [r14 + 0x18]
lea eax, [rdx - 0x3f34]
mov r12d, dword [r14 + 8]
mov r8d, r10d
mov esi, dword [rbx + 0x48]
mov edi, dword [rbx + 0x4c]
mov dword [rbp + 0x58], r10d
mov dword [rbp - 0x18], r12d
mov dword [rbp + 0x48], r10d
mov dword [rbp + 0x50], r11d
cmp eax, 0x1e
ja case.default.0x18008c175
cdqe
lea rcx, [0x180000000]
mov r15d, 1
mov ecx, dword [rcx + rax*4 + 0x8d60c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov edx, dword [rbx + 0x10]
test edx, edx
jne 0x18008c18a
mov dword [rbx + 8], 0x3f40
jmp 0x18008c7d3
mov r8d, reloc.WS2_32.dll_recv
jmp 0x18008c1b3
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, r8d
jb 0x18008c192
test dl, 2
je 0x18008c219
cmp esi, 0x8b1f
jne 0x18008c219
cmp dword [rbx + 0x30], r11d
jne 0x18008c1d2
mov dword [rbx + 0x30], reloc.WS2_32.dll_ntohs
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18008a43c
mov dword [rbx + 0x20], eax
lea rdx, [rbp - 0x20]
mov word [rbp - 0x20], 0x8b1f
mov r8d, 2
mov ecx, dword [rbx + 0x20]
call fcn.18008a43c
mov dword [rbx + 0x20], eax
mov dword [rbx + 8], 0x3f35
xor r11d, r11d
mov edi, r11d
mov esi, r11d
mov r9, qword [rbp - 8]
mov r10d, dword [rbp + 0x58]
jmp 0x18008c7d3
mov rax, qword [rbx + 0x28]
mov dword [rbx + 0x18], r11d
test rax, rax
je 0x18008c22d
or dword [rax + 0x40], 0xffffffff
mov edx, dword [rbx + 0x10]
test r15b, dl
je 0x18008c2cb
movzx ecx, sil
mov eax, esi
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 0x18008c2cb
mov eax, esi
and al, 0xf
cmp al, 8
je 0x18008c26e
lea rax, str.unknown_compression_method
jmp 0x18008c2d2
mov eax, dword [rbx + 0x30]
add edi, 0xfffffffc
shr esi, 4
mov ecx, esi
and ecx, 0xf
add ecx, 8
test eax, eax
jne 0x18008c288
mov dword [rbx + 0x30], ecx
mov eax, ecx
cmp ecx, 0xf
ja 0x18008c2c2
cmp ecx, eax
ja 0x18008c2c2
mov eax, r15d
xor r8d, r8d
shl eax, cl
xor edx, edx
xor ecx, ecx
mov dword [rbx + 0x1c], eax
call fcn.18008a154
shr esi, 8
not esi
mov dword [rbx + 0x20], eax
and esi, 2
mov dword [r14 + 0x4c], eax
or esi, 0x3f3d
mov dword [rbx + 8], esi
jmp 0x18008c203
lea rax, str.invalid_window_size
jmp 0x18008c2d2
lea rax, str.incorrect_header_check
mov qword [r14 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x18008c7d3
mov r8d, reloc.WS2_32.dll_recv
jmp 0x18008c30b
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, r8d
jb 0x18008c2ea
mov dword [rbx + 0x18], esi
cmp sil, 8
jne 0x18008c265
test esi, 0xe000
je 0x18008c32e
lea rax, str.unknown_header_flags_set
jmp 0x18008c2d2
mov rdx, qword [rbx + 0x28]
mov ecx, esi
shr ecx, 8
mov eax, esi
test rdx, rdx
je 0x18008c348
mov eax, ecx
and eax, r15d
mov dword [rdx], eax
mov eax, dword [rbx + 0x18]
bt eax, 9
jae 0x18008c373
test byte [rbx + 0x10], 4
je 0x18008c373
mov byte [rbp - 0x20], sil
lea rdx, [rbp - 0x20]
mov byte [rbp - 0x1f], cl
mov r8d, 2
mov ecx, dword [rbx + 0x20]
call fcn.18008a43c
mov dword [rbx + 0x20], eax
xor r11d, r11d
mov esi, r11d
mov dword [rbx + 8], 0x3f36
mov edi, r11d
jmp case.0x18008c175.16182
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, 0x20
jb 0x18008c382
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x18008c3b4
mov dword [rax + 4], esi
test dword [rbx + 0x18], 0x200
je 0x18008c3f6
test byte [rbx + 0x10], 4
je 0x18008c3f6
mov eax, esi
mov byte [rbp - 0x20], sil
shr eax, 8
lea rdx, [rbp - 0x20]
mov byte [rbp - 0x1f], al
mov r8d, 4
mov eax, esi
shr esi, 0x18
shr eax, 0x10
mov byte [rbp - 0x1e], al
mov byte [rbp - 0x1d], sil
mov ecx, dword [rbx + 0x20]
call fcn.18008a43c
mov dword [rbx + 0x20], eax
xor r11d, r11d
mov esi, r11d
mov dword [rbx + 8], 0x3f37
mov edi, r11d
mov edx, reloc.WS2_32.dll_recv
jmp 0x18008c42b
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, edx
jb 0x18008c40a
mov rdx, qword [rbx + 0x28]
mov ecx, esi
shr ecx, 8
test rdx, rdx
je 0x18008c44b
movzx eax, sil
mov dword [rdx + 8], eax
mov rax, qword [rbx + 0x28]
mov dword [rax + 0xc], ecx
test dword [rbx + 0x18], 0x200
je 0x18008c479
test byte [rbx + 0x10], 4
je 0x18008c479
mov byte [rbp - 0x20], sil
lea rdx, [rbp - 0x20]
mov byte [rbp - 0x1f], cl
mov r8d, 2
mov ecx, dword [rbx + 0x20]
call fcn.18008a43c
mov dword [rbx + 0x20], eax
xor r11d, r11d
mov esi, r11d
mov dword [rbx + 8], 0x3f38
mov edi, r11d
test dword [rbx + 0x18], 0x400
je 0x18008c504
mov edx, reloc.WS2_32.dll_recv
jmp 0x18008c4b7
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, edx
jb 0x18008c496
mov rax, qword [rbx + 0x28]
mov dword [rbx + 0x50], esi
test rax, rax
je 0x18008c4ca
mov dword [rax + 0x18], esi
test dword [rbx + 0x18], 0x200
je 0x18008c4fc
test byte [rbx + 0x10], 4
je 0x18008c4fc
mov byte [rbp - 0x20], sil
lea rdx, [rbp - 0x20]
shr esi, 8
mov r8d, 2
mov byte [rbp - 0x1f], sil
mov ecx, dword [rbx + 0x20]
call fcn.18008a43c
mov dword [rbx + 0x20], eax
xor r11d, r11d
mov esi, r11d
mov edi, r11d
jmp 0x18008c511
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x18008c511
mov qword [rax + 0x10], r11
mov dword [rbx + 8], 0x3f39
mov eax, dword [rbx + 0x18]
bt eax, 0xa
jae 0x18008c5b1
mov ecx, dword [rbx + 0x50]
mov r15d, r12d
cmp ecx, r12d
cmovbe r15d, ecx
test r15d, r15d
je 0x18008c5a9
mov r8, qword [rbx + 0x28]
test r8, r8
je 0x18008c575
mov r9, qword [r8 + 0x10]
test r9, r9
je 0x18008c575
mov edx, dword [r8 + 0x18]
sub edx, ecx
mov ecx, dword [r8 + 0x1c]
lea eax, [r15 + rdx]
cmp eax, ecx
jbe 0x18008c55f
sub ecx, edx
jmp 0x18008c562
mov ecx, r15d
mov r8d, ecx
mov ecx, edx
mov rdx, r13
add rcx, r9
call fcn.1801c2370
mov eax, dword [rbx + 0x18]
bt eax, 9
jae 0x18008c592
test byte [rbx + 0x10], 4
je 0x18008c592
mov ecx, dword [rbx + 0x20]
mov rdx, r13
mov r8d, r15d
call fcn.18008a43c
mov dword [rbx + 0x20], eax
sub dword [rbx + 0x50], r15d
sub r12d, r15d
mov ecx, dword [rbx + 0x50]
mov eax, r15d
add r13, rax
mov qword [rbp - 0x10], r13
xor r11d, r11d
test ecx, ecx
jne 0x18008d4d7
mov dword [rbx + 0x50], r11d
mov dword [rbx + 8], 0x3f3a
test dword [rbx + 0x18], 0x800
mov rcx, qword [rbp - 0x10]
je 0x18008c651
test r12d, r12d
je 0x18008d4db
mov r15d, r11d
mov eax, r15d
inc r15d
mov r13b, byte [rax + rcx]
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x18008c608
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x18008c608
mov ecx, dword [rbx + 0x50]
cmp ecx, dword [rax + 0x28]
jae 0x18008c604
mov byte [rcx + rdx], r13b
inc dword [rbx + 0x50]
mov rcx, qword [rbp - 0x10]
test r13b, r13b
je 0x18008c612
cmp r15d, r12d
jb 0x18008c5d9
test dword [rbx + 0x18], 0x200
je 0x18008c635
test byte [rbx + 0x10], 4
je 0x18008c635
mov rdx, rcx
mov r8d, r15d
mov ecx, dword [rbx + 0x20]
call fcn.18008a43c
mov dword [rbx + 0x20], eax
xor r11d, r11d
mov rcx, qword [rbp - 0x10]
sub r12d, r15d
mov eax, r15d
add rcx, rax
mov qword [rbp - 0x10], rcx
test r13b, r13b
jne 0x18008d4db
jmp 0x18008c65e
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x18008c65e
mov qword [rax + 0x20], r11
mov dword [rbx + 0x50], r11d
mov dword [rbx + 8], 0x3f3b
jmp 0x18008c66f
mov rcx, qword [rbp - 0x10]
test dword [rbx + 0x18], 0x1000
je 0x18008c704
test r12d, r12d
je 0x18008d4db
mov rcx, qword [rbp - 0x10]
mov r15d, r11d
mov eax, r15d
inc r15d
mov r13b, byte [rax + rcx]
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x18008c6bb
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x18008c6bb
mov ecx, dword [rbx + 0x50]
cmp ecx, dword [rax + 0x38]
jae 0x18008c6b7
mov byte [rcx + rdx], r13b
inc dword [rbx + 0x50]
mov rcx, qword [rbp - 0x10]
test r13b, r13b
je 0x18008c6c5
cmp r15d, r12d
jb 0x18008c68c
test dword [rbx + 0x18], 0x200
je 0x18008c6e8
test byte [rbx + 0x10], 4
je 0x18008c6e8
mov rdx, rcx
mov r8d, r15d
mov ecx, dword [rbx + 0x20]
call fcn.18008a43c
mov dword [rbx + 0x20], eax
xor r11d, r11d
mov rcx, qword [rbp - 0x10]
sub r12d, r15d
mov eax, r15d
add rcx, rax
mov qword [rbp - 0x10], rcx
test r13b, r13b
jne 0x18008d4db
jmp 0x18008c711
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x18008c711
mov qword [rax + 0x30], r11
mov r10d, dword [rbp + 0x58]
mov r15d, 1
mov dword [rbx + 8], 0x3f3c
mov edx, dword [rbx + 0x18]
bt edx, 9
jae 0x18008c790
mov r8d, reloc.WS2_32.dll_recv
cmp edi, r8d
jae 0x18008c760
mov r13, qword [rbp - 0x10]
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, r8d
jb 0x18008c73a
test byte [rbx + 0x10], 4
je 0x18008c78a
movzx eax, word [rbx + 0x20]
cmp esi, eax
je 0x18008c78a
lea rax, str.header_crc_mismatch
mov r13, qword [rbp - 0x10]
mov qword [r14 + 0x20], rax
mov dword [rbx + 8], 0x3f51
mov r9, qword [rbp - 8]
jmp 0x18008c7d3
mov esi, r11d
mov edi, r11d
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x18008c7aa
sar edx, 9
and edx, r15d
mov dword [rax + 0x3c], edx
mov rax, qword [rbx + 0x28]
mov dword [rax + 0x40], r15d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18008a43c
mov r13, qword [rbp - 0x10]
mov r9, qword [rbp - 8]
mov r10d, dword [rbp + 0x58]
mov dword [rbx + 0x20], eax
mov dword [r14 + 0x4c], eax
mov dword [rbx + 8], 0x3f3f
xor r11d, r11d
mov edx, dword [rbx + 8]
lea eax, [rdx - 0x3f34]
cmp eax, 0x1e
ja case.default.0x18008c175
mov r8d, dword [rbp + 0x48]
jmp 0x18008c155
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, 0x20
jb 0x18008c7ee
mov ecx, esi
mov eax, esi
shl eax, 0x10
mov edx, 0xff00
and ecx, edx
mov edi, r11d
add ecx, eax
mov eax, esi
shr eax, 8
and eax, edx
shl ecx, 8
shr esi, 0x18
add eax, ecx
add eax, esi
mov esi, r11d
mov dword [rbx + 0x20], eax
mov dword [r14 + 0x4c], eax
mov dword [rbx + 8], 0x3f3e
cmp dword [rbx + 0x14], r11d
je 0x18008d480
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18008a154
mov r10d, dword [rbp + 0x58]
xor r11d, r11d
mov dword [rbx + 0x20], eax
mov dword [r14 + 0x4c], eax
mov dword [rbx + 8], 0x3f3f
cmp dword [rbx + 0xc], r11d
je 0x18008c8b0
mov ecx, edi
mov dword [rbx + 8], 0x3f4e
and ecx, 7
shr esi, cl
sub edi, ecx
jmp 0x18008c784
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, 3
jb 0x18008c88f
mov eax, esi
shr esi, 1
and eax, r15d
mov dword [rbx + 0xc], eax
mov eax, esi
and eax, 3
je 0x18008c91f
sub eax, 1
je 0x18008c8f2
sub eax, 1
je 0x18008c8e9
cmp eax, 1
jne 0x18008c926
lea rax, str.invalid_block_type
mov qword [r14 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x18008c926
mov dword [rbx + 8], 0x3f44
jmp 0x18008c926
lea rax, [0x18027fcf0]
mov dword [rbx + 0x70], 9
mov qword [rbx + 0x60], rax
lea rax, [0x1802804f0]
mov qword [rbx + 0x68], rax
mov dword [rbx + 0x74], 5
mov dword [rbx + 8], 0x3f47
jmp 0x18008c926
mov dword [rbx + 8], 0x3f41
shr esi, 2
add edi, 0xfffffffd
jmp 0x18008c784
mov ecx, edi
and ecx, 7
shr esi, cl
sub edi, ecx
jmp 0x18008c95d
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, 0x20
jb 0x18008c93c
mov eax, esi
movzx ecx, si
not eax
shr eax, 0x10
cmp ecx, eax
je 0x18008c97c
lea rax, str.invalid_stored_block_lengths
jmp 0x18008c2d2
mov dword [rbx + 0x50], ecx
mov esi, r11d
mov edi, r11d
mov dword [rbx + 8], 0x3f43
mov ecx, dword [rbx + 0x50]
test ecx, ecx
je 0x18008c9e9
cmp ecx, r12d
mov eax, r12d
mov r15d, r10d
cmovbe eax, ecx
cmp eax, r10d
cmovbe r15d, eax
test r15d, r15d
je 0x18008d4d7
mov r8d, r15d
mov rdx, r13
mov rcx, r9
call fcn.1801c2370
mov r10d, dword [rbp + 0x58]
sub r12d, r15d
mov r9, qword [rbp - 8]
sub r10d, r15d
mov eax, r15d
add r13, rax
mov dword [rbp + 0x58], r10d
add r9, rax
mov qword [rbp - 0x10], r13
sub dword [rbx + 0x50], r15d
mov qword [rbp - 8], r9
jmp 0x18008c7d0
mov dword [rbx + 8], 0x3f3f
jmp 0x18008c7d3
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, 0xe
jb 0x18008c9f5
mov ecx, esi
add edi, 0xfffffff2
shr esi, 5
and ecx, 0x1f
mov edx, esi
add ecx, 0x101
shr esi, 5
and edx, 0x1f
mov eax, esi
mov dword [rbx + 0x7c], ecx
and eax, 0xf
shr esi, 4
add eax, 4
inc edx
mov dword [rbx + 0x80], edx
mov dword [rbx + 0x78], eax
cmp ecx, 0x11e
ja 0x18008cb10
cmp edx, 0x1e
ja 0x18008cb10
mov dword [rbx + 0x84], r11d
mov dword [rbx + 8], 0x3f45
mov edx, 7
lea r8, [0x180000000]
mov eax, dword [rbx + 0x84]
cmp eax, dword [rbx + 0x78]
jb 0x18008cb3d
cmp eax, 0x13
jae 0x18008cab8
mov eax, dword [rbx + 0x84]
movzx eax, word [r8 + rax*2 + 0x27d3a8]
mov word [rbx + rax*2 + 0x90], r11w
add dword [rbx + 0x84], r15d
cmp dword [rbx + 0x84], 0x13
jb 0x18008ca90
lea rcx, [rbx + 0x70]
lea rax, [rbx + 0x550]
mov dword [rcx], edx
lea r9, [rbx + 0x88]
mov qword [rbx + 0x60], rax
mov qword [r9], rax
lea rdx, [rbx + 0x90]
lea rax, [rbx + 0x310]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
xor ecx, ecx
lea r8d, [rcx + 0x13]
call fcn.18008d6d0
mov r10d, dword [rbp + 0x58]
xor r11d, r11d
mov dword [rbp + 0x50], eax
test eax, eax
je 0x18008cb71
lea rax, str.invalid_code_lengths_set
jmp 0x18008c779
lea rax, str.too_many_length_or_distance_symbols
jmp 0x18008c2d2
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, 3
jb 0x18008cb1c
mov eax, dword [rbx + 0x84]
movzx ecx, si
and cx, dx
shr esi, 3
movzx eax, word [r8 + rax*2 + 0x27d3a8]
mov word [rbx + rax*2 + 0x90], cx
add dword [rbx + 0x84], r15d
add edi, 0xfffffffd
jmp 0x18008ca7c
mov eax, 0x3f46
mov dword [rbx + 0x84], r11d
mov dword [rbx + 8], eax
mov edx, eax
mov eax, dword [rbx + 0x80]
add eax, dword [rbx + 0x7c]
cmp dword [rbx + 0x84], eax
jae 0x18008cda5
mov ecx, dword [rbx + 0x70]
mov edx, r15d
mov r8, qword [rbx + 0x60]
shl edx, cl
dec edx
mov eax, esi
mov ecx, edx
and rcx, rax
mov eax, dword [r8 + rcx*4]
mov ecx, eax
shr ecx, 8
or r9d, 0xffffffff
movzx ecx, cl
mov dword [rbp - 0x1c], eax
cmp ecx, edi
jbe 0x18008cbf6
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
mov eax, edx
add r12d, r9d
mov ecx, esi
add edi, 8
and rcx, rax
mov eax, dword [r8 + rcx*4]
mov ecx, eax
shr ecx, 8
jmp 0x18008cbb9
mov edx, eax
mov r8d, reloc.WS2_32.dll_recv
shr edx, 0x10
cmp dx, r8w
jae 0x18008cc31
shr eax, 8
movzx ecx, al
mov eax, dword [rbx + 0x84]
sub edi, ecx
shr esi, cl
mov word [rbx + rax*2 + 0x90], dx
add dword [rbx + 0x84], r15d
mov ecx, dword [rbx + 0x84]
jmp 0x18008cd6c
jne 0x18008cc97
shr eax, 8
movzx edx, al
add edx, 2
jmp 0x18008cc5f
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
add r12d, r9d
add edi, 8
cmp edi, edx
jb 0x18008cc3e
movzx ecx, byte [rbp - 0x1b]
mov eax, dword [rbx + 0x84]
sub edi, ecx
shr esi, cl
test eax, eax
je 0x18008cd82
mov edx, esi
add edi, 0xfffffffe
and edx, 3
shr esi, 2
add edx, 3
dec eax
movzx r8d, word [rbx + rax*2 + 0x90]
jmp 0x18008cd34
cmp word [rbp - 0x1a], 0x11
movzx r8d, byte [rbp - 0x1b]
jne 0x18008cceb
lea edx, [r8 + 3]
jmp 0x18008ccca
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
add r12d, r9d
add edi, 8
cmp edi, edx
jb 0x18008cca9
mov ecx, r8d
mov eax, 0xfffffffd
shr esi, cl
mov edx, esi
shr esi, 3
and edx, 7
add edx, 3
sub eax, r8d
mov r8d, r11d
jmp 0x18008cd32
lea edx, [r8 + 7]
jmp 0x18008cd12
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
add r12d, r9d
add edi, 8
cmp edi, edx
jb 0x18008ccf1
mov ecx, r8d
mov eax, 0xfffffff9
shr esi, cl
mov edx, esi
shr esi, 7
and edx, 0x7f
add edx, 0xb
sub eax, r8d
movzx r8d, r11w
add edi, eax
mov ecx, dword [rbx + 0x84]
mov eax, dword [rbx + 0x80]
add ecx, edx
add eax, dword [rbx + 0x7c]
cmp ecx, eax
ja 0x18008cd8e
mov eax, dword [rbx + 0x84]
mov word [rbx + rax*2 + 0x90], r8w
mov ecx, dword [rbx + 0x84]
lea ecx, [rcx + 1]
mov dword [rbx + 0x84], ecx
add edx, r9d
jne 0x18008cd49
mov eax, dword [rbx + 0x80]
add eax, dword [rbx + 0x7c]
cmp ecx, eax
jb 0x18008cb97
mov edx, dword [rbx + 8]
jmp 0x18008cda5
lea rax, str.invalid_bit_length_repeat
jmp 0x18008c779
lea rax, str.invalid_bit_length_repeat
mov edx, 0x3f51
mov qword [r14 + 0x20], rax
mov dword [rbx + 8], 0x3f51
cmp edx, 0x3f51
je 0x18008c784
cmp word [rbx + 0x290], r11w
jne 0x18008cdc7
lea rax, str.invalid_code____missing_end_of_block
jmp 0x18008c779
mov r8d, dword [rbx + 0x7c]
lea rax, [rbx + 0x550]
lea r15, [rbx + 0x88]
mov qword [rbx + 0x60], rax
mov qword [r15], rax
lea r13, [rbx + 0x310]
lea rax, [rbx + 0x70]
mov qword [rsp + 0x28], r13
lea rdx, [rbx + 0x90]
mov dword [rax], 9
mov r9, r15
mov qword [rsp + 0x20], rax
mov ecx, 1
call fcn.18008d6d0
xor r11d, r11d
mov dword [rbp + 0x50], eax
test eax, eax
je 0x18008ce34
mov r13, qword [rbp - 0x10]
lea rax, str.invalid_literal_lengths_set
mov qword [r14 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x18008c20c
mov rax, qword [r15]
lea rcx, [rbx + 0x74]
mov r8d, dword [rbx + 0x80]
mov r9, r15
mov qword [rbx + 0x68], rax
mov eax, dword [rbx + 0x7c]
add rax, 0x48
mov dword [rcx], 6
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rcx
mov ecx, 2
lea rdx, [rbx + rax*2]
call fcn.18008d6d0
mov r10d, dword [rbp + 0x58]
xor r11d, r11d
mov dword [rbp + 0x50], eax
test eax, eax
je 0x18008ce88
lea rax, str.invalid_distances_set
jmp 0x18008c775
mov r8d, dword [rbp + 0x48]
mov r15d, 1
mov dword [rbx + 8], 0x3f48
cmp r12d, 6
jb 0x18008cf0a
cmp r10d, 0x102
jb 0x18008cf0a
mov rdx, qword [rbp - 8]
mov rcx, qword [rbp - 0x10]
mov qword [r14 + 0x10], rdx
mov edx, r8d
mov qword [r14], rcx
mov rcx, r14
mov dword [r14 + 0x18], r10d
mov dword [r14 + 8], r12d
mov dword [rbx + 0x48], esi
mov dword [rbx + 0x4c], edi
call fcn.18008b964
cmp dword [rbx + 8], 0x3f3f
mov r9, qword [r14 + 0x10]
mov r13, qword [r14]
mov r10d, dword [r14 + 0x18]
mov r12d, dword [r14 + 8]
mov esi, dword [rbx + 0x48]
mov edi, dword [rbx + 0x4c]
mov qword [rbp - 8], r9
mov dword [rbp + 0x58], r10d
mov qword [rbp - 0x10], r13
jne 0x18008c7d0
or dword [rbx + 0x1be4], 0xffffffff
jmp 0x18008c7d0
mov ecx, dword [rbx + 0x70]
mov edx, r15d
mov r13, qword [rbp - 0x10]
shl edx, cl
dec edx
mov dword [rbx + 0x1be4], r11d
mov r11, qword [rbx + 0x60]
mov ecx, edx
mov eax, esi
and rcx, rax
mov eax, dword [r11 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, edi
jbe 0x18008cf61
test r12d, r12d
je 0x18008d4d4
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
mov ecx, esi
add edi, 8
mov eax, edx
jmp 0x18008cf27
test al, al
je 0x18008d01d
test al, 0xf0
jne 0x18008d01d
mov r10d, eax
movzx ecx, al
shr r10d, 8
mov r9d, r15d
movzx r8d, r10b
mov edx, eax
add ecx, r8d
mov dword [rbp - 0x1c], eax
shl r9d, cl
mov ecx, r8d
sub r9d, r15d
shr eax, 0x10
and r9d, esi
shr r9d, cl
add r9d, eax
mov eax, dword [r11 + r9*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r10b
add r8d, ecx
jmp 0x18008d00a
test r12d, r12d
je 0x18008d4d4
movzx r9d, byte [rbp - 0x1b]
mov ecx, edi
movzx eax, byte [r13]
mov r8d, r15d
shl eax, cl
add r13, r15
add esi, eax
movzx ecx, dl
movzx eax, word [rbp - 0x1a]
add ecx, r9d
shl r8d, cl
dec r12d
sub r8d, r15d
mov qword [rbp - 0x10], r13
and r8d, esi
mov ecx, r9d
shr r8d, cl
add edi, 8
add r8d, eax
mov eax, dword [r11 + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, edi
ja 0x18008cfb5
movzx ecx, byte [rbp - 0x1b]
shr esi, cl
sub edi, ecx
mov dword [rbx + 0x1be4], ecx
mov ecx, eax
xor r11d, r11d
shr ecx, 8
movzx ecx, cl
add dword [rbx + 0x1be4], ecx
sub edi, ecx
shr esi, cl
mov ecx, eax
shr ecx, 0x10
mov dword [rbx + 0x50], ecx
test al, al
jne 0x18008d04a
mov dword [rbx + 8], 0x3f4d
jmp 0x18008c20c
test al, 0x20
je 0x18008d061
or dword [rbx + 0x1be4], 0xffffffff
mov dword [rbx + 8], 0x3f3f
jmp 0x18008c20c
test al, 0x40
je 0x18008d07c
lea rax, str.invalid_literal_length_code
mov qword [r14 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x18008c20c
movzx ecx, al
and ecx, 0xf
mov dword [rbx + 8], 0x3f49
mov dword [rbx + 0x58], ecx
mov edx, dword [rbx + 0x58]
test edx, edx
je 0x18008d0d9
cmp edi, edx
jae 0x18008d0c0
mov r13, qword [rbp - 0x10]
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, edx
jb 0x18008d09b
mov ecx, edx
mov eax, r15d
shl eax, cl
sub edi, edx
sub eax, r15d
and eax, esi
shr esi, cl
add dword [rbx + 0x50], eax
add dword [rbx + 0x1be4], edx
mov eax, dword [rbx + 0x50]
mov dword [rbx + 0x1be8], eax
mov dword [rbx + 8], 0x3f4a
mov ecx, dword [rbx + 0x74]
mov edx, r15d
mov r11, qword [rbx + 0x68]
mov r13, qword [rbp - 0x10]
shl edx, cl
dec edx
mov eax, esi
mov ecx, edx
and rcx, rax
mov eax, dword [r11 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, edi
jbe 0x18008d140
test r12d, r12d
je 0x18008d4d4
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
mov ecx, esi
dec r12d
add edi, 8
mov eax, edx
and rax, rcx
mov eax, dword [r11 + rax*4]
jmp 0x18008d106
test al, 0xf0
jne 0x18008d1f4
mov r10d, eax
movzx ecx, al
shr r10d, 8
mov r9d, r15d
movzx r8d, r10b
mov edx, eax
add ecx, r8d
mov dword [rbp - 0x1c], eax
shl r9d, cl
mov ecx, r8d
sub r9d, r15d
shr eax, 0x10
and r9d, esi
shr r9d, cl
add r9d, eax
mov eax, dword [r11 + r9*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r10b
add r8d, ecx
jmp 0x18008d1e1
test r12d, r12d
je 0x18008d4d4
movzx r9d, byte [rbp - 0x1b]
mov ecx, edi
movzx eax, byte [r13]
mov r8d, r15d
shl eax, cl
add r13, r15
add esi, eax
movzx ecx, dl
movzx eax, word [rbp - 0x1a]
add ecx, r9d
shl r8d, cl
dec r12d
sub r8d, r15d
mov qword [rbp - 0x10], r13
and r8d, esi
mov ecx, r9d
shr r8d, cl
add edi, 8
add r8d, eax
mov eax, dword [r11 + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, edi
ja 0x18008d18c
movzx ecx, byte [rbp - 0x1b]
shr esi, cl
sub edi, ecx
add dword [rbx + 0x1be4], ecx
mov r10d, dword [rbp + 0x58]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [rbx + 0x1be4], ecx
sub edi, ecx
shr esi, cl
test al, 0x40
je 0x18008d229
mov r9, qword [rbp - 8]
lea rax, str.invalid_distance_code
mov qword [r14 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x18008c7d0
mov r8d, dword [rbp + 0x48]
mov ecx, eax
shr ecx, 0x10
mov dword [rbx + 0x54], ecx
movzx ecx, al
and ecx, 0xf
mov dword [rbx + 8], 0x3f4b
mov dword [rbx + 0x58], ecx
xor r11d, r11d
mov edx, dword [rbx + 0x58]
test edx, edx
je 0x18008d295
cmp edi, edx
jae 0x18008d27c
mov r13, qword [rbp - 0x10]
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, edx
jb 0x18008d257
mov ecx, edx
mov eax, r15d
shl eax, cl
sub edi, edx
sub eax, r15d
and eax, esi
shr esi, cl
add dword [rbx + 0x54], eax
add dword [rbx + 0x1be4], edx
mov dword [rbx + 8], 0x3f4c
test r10d, r10d
je 0x18008d4d7
mov eax, dword [rbx + 0x54]
mov ecx, r8d
sub ecx, r10d
cmp eax, ecx
jbe 0x18008d2f2
sub eax, ecx
cmp eax, dword [rbx + 0x38]
jbe 0x18008d2ce
cmp dword [rbx + 0x1be0], r11d
je 0x18008d2ce
lea rax, str.invalid_distance_too_far_back
jmp 0x18008c775
mov ecx, dword [rbx + 0x3c]
cmp eax, ecx
jbe 0x18008d2da
sub eax, ecx
mov ecx, dword [rbx + 0x34]
mov r8d, dword [rbx + 0x50]
sub ecx, eax
mov edx, ecx
mov r9d, r8d
add rdx, qword [rbx + 0x40]
cmp eax, r8d
cmovbe r9d, eax
jmp 0x18008d300
mov rdx, qword [rbp - 8]
mov r8d, dword [rbx + 0x50]
sub rdx, rax
mov r9d, r8d
cmp r9d, r10d
mov ecx, r10d
cmovbe ecx, r9d
mov r9, qword [rbp - 8]
sub r10d, ecx
sub r8d, ecx
mov dword [rbp + 0x58], r10d
sub rdx, r9
mov dword [rbx + 0x50], r8d
mov al, byte [rdx + r9]
mov byte [r9], al
add r9, r15
add ecx, 0xffffffff
jne 0x18008d31f
mov r13, qword [rbp - 0x10]
mov qword [rbp - 8], r9
cmp dword [rbx + 0x50], r11d
jne 0x18008c7d3
mov dword [rbx + 8], 0x3f48
jmp 0x18008c7d3
test r10d, r10d
je 0x18008d4d7
mov al, byte [rbx + 0x50]
mov byte [r9], al
add r9, r15
dec r10d
mov qword [rbp - 8], r9
mov dword [rbp + 0x58], r10d
jmp 0x18008d340
cmp dword [rbx + 0x10], r11d
jne 0x18008d3a2
mov r15d, dword [rbp + 0x48]
mov dword [rbx + 8], 0x3f4f
jmp 0x18008d43f
test r12d, r12d
je 0x18008d4d7
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
add r13, r15
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, 0x20
jb 0x18008d381
sub r8d, r10d
add dword [r14 + 0x1c], r8d
add dword [rbx + 0x24], r8d
mov eax, dword [rbx + 0x10]
test al, 4
je 0x18008d3ea
test r8d, r8d
je 0x18008d3ea
mov ecx, dword [rbx + 0x20]
mov rdx, r9
sub rdx, r8
cmp dword [rbx + 0x18], r11d
je 0x18008d3d4
call fcn.18008a43c
jmp 0x18008d3d9
call fcn.18008a154
mov r10d, dword [rbp + 0x58]
xor r11d, r11d
mov dword [rbx + 0x20], eax
mov dword [r14 + 0x4c], eax
mov eax, dword [rbx + 0x10]
mov dword [rbp + 0x48], r10d
mov r15d, r10d
test al, 4
je 0x18008d430
mov edx, 0xff00
mov ecx, esi
and ecx, edx
mov eax, esi
shl eax, 0x10
add ecx, eax
mov eax, esi
shr eax, 8
and eax, edx
shl ecx, 8
add ecx, eax
mov eax, esi
shr eax, 0x18
add ecx, eax
cmp dword [rbx + 0x18], r11d
cmovne ecx, esi
cmp ecx, dword [rbx + 0x20]
je 0x18008d430
lea rax, str.incorrect_data_check
jmp 0x18008c779
mov esi, r11d
mov edi, r11d
jmp 0x18008d375
mov r15d, dword [rbp + 0x48]
cmp dword [rbx + 0x10], r11d
je 0x18008d4a5
cmp dword [rbx + 0x18], r11d
je 0x18008d4a5
jmp 0x18008d46a
test r12d, r12d
je 0x18008d4ca
movzx eax, byte [r13]
mov ecx, edi
shl eax, cl
inc r13
add esi, eax
mov qword [rbp - 0x10], r13
dec r12d
add edi, 8
cmp edi, 0x20
jb 0x18008d44d
cmp esi, dword [rbx + 0x24]
je 0x18008d49f
lea rax, str.incorrect_length_check
jmp 0x18008c779
mov qword [r14 + 0x10], r9
mov eax, 2
mov dword [r14 + 0x18], r10d
mov qword [r14], r13
mov dword [r14 + 8], r12d
mov dword [rbx + 0x48], esi
mov dword [rbx + 0x4c], edi
jmp 0x18008d5f2
mov esi, r11d
mov edi, r11d
mov dword [rbx + 8], 0x3f50
jmp 0x18008d4b2
mov r15d, dword [rbp + 0x48]
mov rcx, qword [rbp - 0x10]
mov r13d, 1
jmp 0x18008d4e3
mov rcx, qword [rbp - 0x10]
mov r13d, 0xfffffffd
jmp 0x18008d4df
mov rcx, qword [rbp - 0x10]
mov r13d, dword [rbp + 0x50]
jmp 0x18008d4e3
xor r11d, r11d
mov rcx, qword [rbp - 0x10]
mov r13d, dword [rbp + 0x50]
mov r15d, dword [rbp + 0x48]
mov rdx, qword [rbp - 8]
mov eax, dword [rbp + 0x58]
mov qword [r14 + 0x10], rdx
mov dword [r14 + 0x18], eax
mov qword [r14], rcx
mov dword [r14 + 8], r12d
mov dword [rbx + 0x48], esi
mov dword [rbx + 0x4c], edi
cmp dword [rbx + 0x34], r11d
jne 0x18008d514
cmp r15d, dword [r14 + 0x18]
je 0x18008d53f
cmp dword [rbx + 8], 0x3f51
jge 0x18008d53f
mov rdx, qword [r14 + 0x10]
mov r8d, r15d
sub r8d, dword [r14 + 0x18]
mov rcx, r14
call fcn.18008bfa4
xor r11d, r11d
test eax, eax
je 0x18008d53f
mov dword [rbx + 8], 0x3f52
mov eax, 0xfffffffc
jmp 0x18008d5f2
sub r15d, dword [r14 + 0x18]
mov r8d, dword [rbp - 0x18]
sub r8d, dword [r14 + 8]
add dword [r14 + 0xc], r8d
add dword [r14 + 0x1c], r15d
add dword [rbx + 0x24], r15d
test byte [rbx + 0x10], 4
mov dword [rbp - 0x18], r8d
je 0x18008d590
test r15d, r15d
je 0x18008d590
mov rdx, qword [r14 + 0x10]
mov ecx, dword [rbx + 0x20]
mov r8d, r15d
sub rdx, r8
cmp dword [rbx + 0x18], r11d
je 0x18008d580
call fcn.18008a43c
jmp 0x18008d585
call fcn.18008a154
mov r8d, dword [rbp - 0x18]
mov dword [rbx + 0x20], eax
mov dword [r14 + 0x4c], eax
cmp dword [rbx + 8], 0x3f47
je 0x18008d5a6
cmp dword [rbx + 8], 0x3f42
je 0x18008d5a6
xor edx, edx
jmp 0x18008d5ab
mov edx, 0x100
mov eax, dword [rbx + 0xc]
mov r9d, pe_nt_image_headers64
neg eax
sbb ecx, ecx
xor eax, eax
and ecx, 0x40
cmp dword [rbx + 8], 0x3f3f
cmove eax, r9d
add ecx, eax
add ecx, dword [rbx + 0x4c]
add ecx, edx
mov dword [r14 + 0x48], ecx
test r8d, r8d
jne 0x18008d5e8
test r15d, r15d
jne 0x18008d5e8
test r13d, r13d
lea eax, [r8 - 5]
cmove r13d, eax
mov eax, r13d
jmp 0x18008d5f2
mov eax, 0xfffffffe
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret