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

Disassembly:
mov dword [rsp + 0x10], edx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x58
xor eax, eax
mov ebx, edx
mov r12, rcx
test rcx, rcx
je 0x180004195
mov rdi, qword [rcx + 0x28]
test rdi, rdi
je 0x180004195
cmp qword [rcx + 0x10], rax
je 0x180004195
cmp qword [rcx], rax
jne 0x180003b0c
cmp dword [rcx + 8], eax
jne 0x180004195
cmp dword [rdi], 0xb
jne 0x180003b17
mov dword [rdi], 0xc
mov r9d, dword [rcx + 0x18]
lea r15, [rdi + 0x68]
mov r11, qword [rcx + 0x10]
mov r8d, r9d
mov r10, qword [rcx]
mov r13d, dword [rcx + 8]
mov r14d, dword [rdi + 0x40]
mov esi, dword [rdi + 0x44]
mov qword [rbp - 0x10], r11
mov qword [rbp - 0x18], r10
mov dword [rbp + 0x58], r9d
mov dword [rbp - 0x20], r13d
mov dword [rbp + 0x60], r9d
mov dword [rbp + 0x48], eax
jmp 0x1800050a0
xor eax, eax
mov ecx, dword [rdi]
cmp ecx, 0xf
jg 0x180004511
je 0x180004219
mov eax, 7
cmp ecx, eax
jg 0x180004162
je 0x1800040a5
xor eax, eax
test ecx, ecx
je 0x180003f3b
sub ecx, 1
je 0x180003bba
sub ecx, 1
je 0x180003c6b
sub ecx, 1
je 0x180003cf1
sub ecx, 1
je 0x180003d79
sub ecx, 1
je 0x180003e0a
cmp ecx, 1
jne 0x180004195
xor r15d, r15d
jmp 0x180003e9e
mov ecx, 0x10
cmp esi, ecx
jae 0x180003bed
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
mov eax, 0x10
dec r13d
add esi, 8
cmp esi, eax
jb 0x180003bc3
mov dword [rdi + 0x10], r14d
cmp r14b, 8
je 0x180003c03
lea rax, str.unknown_compression_method
jmp 0x180004dcf
test r14d, 0xe000
je 0x180003c18
lea rax, str.unknown_header_flags_set
jmp 0x180004dcf
mov rcx, qword [rdi + 0x20]
xor r15d, r15d
test rcx, rcx
je 0x180003c2f
mov eax, r14d
shr eax, 8
and eax, 1
mov dword [rcx], eax
test dword [rdi + 0x10], 0x200
je 0x180003c5d
mov byte [rbp - 0x28], r14b
lea rdx, [rbp - 0x28]
shr r14d, 8
mov r8d, 2
mov byte [rbp - 0x27], r14b
mov ecx, dword [rdi + 0x18]
call fcn.1800012e0
mov r10, qword [rbp - 0x18]
mov dword [rdi + 0x18], eax
mov r14d, r15d
mov dword [rdi], 2
mov esi, r15d
jmp 0x180003c91
xor r15d, r15d
jmp 0x180003c91
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x180003c70
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x180003ca3
mov dword [rax + 4], r14d
test dword [rdi + 0x10], 0x200
je 0x180003cdf
mov eax, r14d
mov byte [rbp - 0x28], r14b
shr eax, 8
lea rdx, [rbp - 0x28]
mov byte [rbp - 0x27], al
mov r8d, 4
mov eax, r14d
shr r14d, 0x18
shr eax, 0x10
mov byte [rbp - 0x26], al
mov byte [rbp - 0x25], r14b
mov ecx, dword [rdi + 0x18]
call fcn.1800012e0
mov dword [rdi + 0x18], eax
mov r10, qword [rbp - 0x18]
mov r14d, r15d
mov esi, r15d
mov dword [rdi], 3
jmp 0x180003cf4
xor r15d, r15d
mov ebx, 0x10
jmp 0x180003d1c
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, ebx
jb 0x180003cfb
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x180003d3d
movzx eax, r14b
mov dword [rcx + 8], eax
mov ecx, r14d
mov rax, qword [rdi + 0x20]
shr ecx, 8
mov dword [rax + 0xc], ecx
test dword [rdi + 0x10], 0x200
je 0x180003d67
mov byte [rbp - 0x28], r14b
lea rdx, [rbp - 0x28]
shr r14d, 8
mov r8d, 2
mov byte [rbp - 0x27], r14b
mov ecx, dword [rdi + 0x18]
call fcn.1800012e0
mov dword [rdi + 0x18], eax
mov r10, qword [rbp - 0x18]
mov r14d, r15d
mov esi, r15d
mov dword [rdi], 4
jmp 0x180003d80
xor r15d, r15d
lea ebx, [r15 + 0x10]
test dword [rdi + 0x10], 0x400
jne 0x180003dc3
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x180003d96
mov qword [rax + 0x10], r15
mov r10, qword [rbp - 0x18]
mov dword [rdi], 5
jmp 0x180003e0d
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, ebx
jb 0x180003da2
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x48], r14d
test rax, rax
je 0x180003dd8
mov dword [rax + 0x18], r14d
test dword [rdi + 0x10], 0x200
je 0x180003e02
mov byte [rbp - 0x28], r14b
lea rdx, [rbp - 0x28]
shr r14d, 8
mov r8d, 2
mov byte [rbp - 0x27], r14b
mov ecx, dword [rdi + 0x18]
call fcn.1800012e0
mov dword [rdi + 0x18], eax
mov r14d, r15d
mov esi, r15d
jmp 0x180003d96
xor r15d, r15d
test dword [rdi + 0x10], 0x400
je 0x180003e94
mov ebx, dword [rdi + 0x48]
cmp ebx, r13d
cmova ebx, r13d
test ebx, ebx
je 0x180003e8a
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x180003e5c
mov r9, qword [rax + 0x10]
test r9, r9
je 0x180003e5c
mov edx, dword [rax + 0x18]
sub edx, dword [rdi + 0x48]
mov ecx, dword [rax + 0x1c]
lea eax, [rbx + rdx]
cmp eax, ecx
jbe 0x180003e4a
sub ecx, edx
jmp 0x180003e4c
mov ecx, ebx
mov r8d, ecx
mov ecx, edx
mov rdx, r10
add rcx, r9
call sub.VCRUNTIME140.dll_memcpy
test dword [rdi + 0x10], 0x200
je 0x180003e77
mov rdx, qword [rbp - 0x18]
mov r8d, ebx
mov ecx, dword [rdi + 0x18]
call fcn.1800012e0
mov dword [rdi + 0x18], eax
mov r10, qword [rbp - 0x18]
sub r13d, ebx
mov eax, ebx
add r10, rax
sub dword [rdi + 0x48], ebx
mov qword [rbp - 0x18], r10
cmp dword [rdi + 0x48], r15d
jne 0x1800043f7
mov dword [rdi + 0x48], r15d
mov dword [rdi], 6
test dword [rdi + 0x10], 0x800
je 0x180003f1f
test r13d, r13d
je 0x1800043f7
mov ebx, r15d
mov eax, ebx
inc ebx
movzx r15d, byte [rax + r10]
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x180003edd
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x180003edd
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x28]
jae 0x180003edd
mov byte [rcx + rdx], r15b
inc dword [rdi + 0x48]
test r15d, r15d
je 0x180003ee7
cmp ebx, r13d
jb 0x180003eb3
test dword [rdi + 0x10], 0x200
je 0x180003f05
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r10
call fcn.1800012e0
mov r10, qword [rbp - 0x18]
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r10, rax
mov qword [rbp - 0x18], r10
test r15d, r15d
jne 0x1800043fb
xor r15d, r15d
jmp 0x180003f2c
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x180003f2c
mov qword [rax + 0x20], r15
mov dword [rdi + 0x48], r15d
mov dword [rdi], 7
jmp 0x1800040a8
cmp dword [rdi + 8], eax
jne 0x180003f4b
mov dword [rdi], 0xc
jmp 0x180003b52
mov ecx, 0x10
cmp esi, ecx
jae 0x180003f83
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
mov eax, 0x10
dec r13d
add esi, 8
cmp esi, eax
mov eax, 0
jb 0x180003f54
test byte [rdi + 8], 2
je 0x180003fdd
cmp r14d, 0x8b1f
jne 0x180003fdd
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.1800012e0
mov dword [rdi + 0x18], eax
lea rdx, [rbp - 0x28]
mov word [rbp - 0x28], r14w
mov r8d, 2
mov ecx, dword [rdi + 0x18]
call fcn.1800012e0
mov dword [rdi + 0x18], eax
mov dword [rdi], 1
mov r10, qword [rbp - 0x18]
xor eax, eax
mov r8d, dword [rbp + 0x60]
mov esi, eax
mov r9d, dword [rbp + 0x58]
mov r14d, eax
mov r11, qword [rbp - 0x10]
jmp 0x1800050a0
mov dword [rdi + 0x10], eax
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x180003fed
or dword [rax + 0x40], 0xffffffff
test byte [rdi + 8], 1
je 0x180004099
movzx ecx, r14b
mov eax, r14d
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 0x180004095
mov eax, r14d
and al, 0xf
cmp al, 8
je 0x180004038
lea rax, str.unknown_compression_method
lea rdx, [rdi + 0x6c]
jmp 0x180004dcf
shr r14d, 4
add esi, 0xfffffffc
mov ecx, r14d
xor eax, eax
and ecx, 0xf
add ecx, 8
cmp dword [rdi + 0x28], eax
jne 0x180004087
mov dword [rdi + 0x28], ecx
mov eax, 1
xor r8d, r8d
shl eax, cl
xor edx, edx
xor ecx, ecx
mov dword [rdi + 0x14], eax
call section..text
shr r14d, 8
not r14d
mov dword [rdi + 0x18], eax
and r14d, 2
mov dword [r12 + 0x4c], eax
or r14d, 9
mov dword [rdi], r14d
jmp 0x180003fc1
cmp ecx, dword [rdi + 0x28]
jbe 0x180004052
lea rax, str.invalid_window_size
jmp 0x18000402f
lea rdx, [rdi + 0x6c]
lea rax, str.incorrect_header_check
jmp 0x180004dcf
xor r15d, r15d
test dword [rdi + 0x10], 0x1000
je 0x180004126
test r13d, r13d
je 0x1800043f7
mov ebx, r15d
mov eax, ebx
inc ebx
movzx r15d, byte [rax + r10]
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x1800040e7
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x1800040e7
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x38]
jae 0x1800040e7
mov byte [rcx + rdx], r15b
inc dword [rdi + 0x48]
test r15d, r15d
je 0x1800040f1
cmp ebx, r13d
jb 0x1800040bd
test dword [rdi + 0x10], 0x200
je 0x18000410f
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r10
call fcn.1800012e0
mov r10, qword [rbp - 0x18]
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r10, rax
mov qword [rbp - 0x18], r10
test r15d, r15d
jne 0x1800043fb
jmp 0x180004133
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x180004133
mov qword [rax + 0x30], r15
mov r8d, dword [rbp + 0x60]
lea r15, [rdi + 0x68]
mov r9d, dword [rbp + 0x58]
lea rdx, [rdi + 0x6c]
mov r11, qword [rbp - 0x10]
mov ebx, dword [rbp + 0x50]
mov dword [rdi], 8
test dword [rdi + 0x10], 0x200
je 0x1800044af
jmp 0x18000448a
sub ecx, 8
je 0x180004150
sub ecx, 1
je 0x1800042a3
sub ecx, 1
je 0x1800042e5
sub ecx, 1
je 0x18000431e
sub ecx, 1
je 0x180004330
sub ecx, 1
je 0x1800041ab
cmp ecx, 1
je 0x180004211
mov eax, 0xfffffffe
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, esi
and ecx, eax
shr r14d, cl
sub esi, ecx
jmp 0x1800041d7
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x1800041b6
mov eax, r14d
movzx ecx, r14w
not eax
shr eax, 0x10
cmp ecx, eax
je 0x1800041f8
lea rax, str.invalid_stored_block_lengths
jmp 0x180004dcf
xor eax, eax
mov dword [rdi + 0x48], ecx
mov dword [rdi], 0xe
mov r14d, eax
mov esi, eax
cmp ebx, 6
je 0x1800043f7
mov dword [rdi], 0xf
xor eax, eax
mov r15d, dword [rdi + 0x48]
test r15d, r15d
je 0x180004502
cmp r15d, r13d
cmova r15d, r13d
cmp r15d, r9d
cmova r15d, r9d
test r15d, r15d
je 0x1800043f7
mov r8d, r15d
mov rdx, r10
mov rcx, r11
mov ebx, r15d
call sub.VCRUNTIME140.dll_memcpy
mov r10, qword [rbp - 0x18]
sub r13d, r15d
mov r9d, dword [rbp + 0x58]
add r10, rbx
mov r11, qword [rbp - 0x10]
sub r9d, r15d
add r11, rbx
mov qword [rbp - 0x18], r10
sub dword [rdi + 0x48], r15d
mov dword [rbp + 0x58], r9d
mov qword [rbp - 0x10], r11
mov ebx, dword [rbp + 0x50]
lea r15, [rdi + 0x68]
jmp 0x1800044f5
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x180004282
mov eax, r14d
mov ecx, r14d
shl eax, 0x10
mov edx, 0xff00
and ecx, edx
add ecx, eax
mov eax, r14d
shr eax, 8
and eax, edx
shr r14d, 0x18
shl ecx, 8
add eax, ecx
add eax, r14d
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
xor eax, eax
mov r14d, eax
mov dword [rdi], 0xa
mov esi, eax
jmp 0x1800042e7
xor eax, eax
cmp dword [rdi + 0xc], eax
je 0x1800050a9
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call section..text
mov r10, qword [rbp - 0x18]
lea rdx, [rdi + 0x6c]
mov r8d, dword [rbp + 0x60]
mov r9d, dword [rbp + 0x58]
mov r11, qword [rbp - 0x10]
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
mov dword [rdi], 0xb
cmp ebx, 5
je 0x1800043f7
cmp ebx, 6
je 0x1800043f7
xor eax, eax
cmp dword [rdi + 4], eax
je 0x18000436d
mov ecx, esi
mov dword [rdi], 0x1a
and ecx, 7
shr r14d, cl
sub esi, ecx
jmp 0x180003b52
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, 3
jb 0x18000434c
mov eax, r14d
dec esi
and eax, 1
shr r14d, 1
mov dword [rdi + 4], eax
mov eax, r14d
and eax, 3
je 0x18000445b
sub eax, 1
je 0x1800043c2
sub eax, 1
je 0x1800043b6
cmp eax, 1
jne 0x180004461
lea rax, str.invalid_block_type
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x180004461
mov eax, 0x10
mov dword [rdi], eax
jmp 0x180004461
mov dword [r15], 9
lea rax, [0x18000fdb0]
mov qword [rdi + 0x58], rax
lea rax, [0x1800105b0]
mov qword [rdi + 0x60], rax
mov dword [rdx], 5
mov dword [rdi], 0x13
cmp ebx, 6
jne 0x180004461
shr r14d, 2
add esi, 0xfffffffe
mov r10, qword [rbp - 0x18]
mov r15d, dword [rbp + 0x48]
mov rax, qword [rbp - 0x10]
mov ebx, dword [rbp + 0x60]
mov qword [r12 + 0x10], rax
mov eax, dword [rbp + 0x58]
mov dword [r12 + 0x18], eax
mov qword [r12], r10
mov dword [r12 + 8], r13d
mov dword [rdi + 0x44], esi
xor esi, esi
mov dword [rdi + 0x40], r14d
cmp dword [rdi + 0x2c], esi
jne 0x18000443e
cmp dword [rdi], 0x1a
jge 0x1800050f7
cmp ebx, dword [r12 + 0x18]
je 0x1800050f7
mov edx, ebx
mov rcx, r12
call fcn.1800053c4
test eax, eax
je 0x1800050f7
mov dword [rdi], 0x1e
jmp 0x180004ed7
mov dword [rdi], 0xd
shr r14d, 2
add esi, 0xfffffffe
jmp 0x180003b50
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
mov eax, 0x10
cmp esi, eax
jb 0x18000446d
movzx eax, word [rdi + 0x18]
cmp r14d, eax
je 0x1800044a8
lea rax, str.header_crc_mismatch
jmp 0x180004dcf
xor eax, eax
mov r14d, eax
mov esi, eax
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x1800044cf
mov eax, dword [rdi + 0x10]
sar eax, 9
and eax, 1
mov dword [rcx + 0x3c], eax
mov rax, qword [rdi + 0x20]
mov dword [rax + 0x40], 1
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.1800012e0
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
mov dword [rdi], 0xb
mov r10, qword [rbp - 0x18]
mov r11, qword [rbp - 0x10]
mov r9d, dword [rbp + 0x58]
mov r8d, dword [rbp + 0x60]
lea rdx, [rdi + 0x6c]
jmp 0x180003b50
mov dword [rdi], 0xb
lea r15, [rdi + 0x68]
jmp 0x180003b52
cmp ecx, 0x17
jg 0x180004ea0
je 0x180004df6
sub ecx, 0x10
je 0x180004581
sub ecx, 1
je 0x1800045dc
sub ecx, 1
je 0x1800046d0
sub ecx, 1
je 0x1800049ff
sub ecx, 1
je 0x180004a05
sub ecx, 1
je 0x180004c18
cmp ecx, 1
jne 0x180004195
jmp 0x180004c75
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, 0xe
jb 0x180004560
mov ecx, r14d
add esi, 0xfffffff2
shr r14d, 5
and ecx, 0x1f
mov edx, r14d
add ecx, 0x101
shr r14d, 5
and edx, 0x1f
mov eax, r14d
mov dword [rdi + 0x74], ecx
and eax, 0xf
shr r14d, 4
add eax, 4
inc edx
mov dword [rdi + 0x78], edx
mov dword [rdi + 0x70], eax
cmp ecx, 0x11e
ja 0x180004dff
cmp edx, 0x1e
ja 0x180004dff
xor edx, edx
mov dword [rdi + 0x7c], edx
lea eax, [rdx + 0x11]
mov dword [rdi], eax
jmp 0x1800045de
xor edx, edx
mov eax, dword [rdi + 0x70]
lea r9, [0x180010630]
mov r8d, 7
cmp dword [rdi + 0x7c], eax
jae 0x18000465a
jmp 0x180004616
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, 3
jb 0x1800045f5
mov eax, dword [rdi + 0x7c]
movzx ecx, r14w
and cx, r8w
shr r14d, 3
add esi, 0xfffffffd
movzx eax, word [r9 + rax*2]
mov word [rdi + rax*2 + 0x88], cx
inc dword [rdi + 0x7c]
mov eax, dword [rdi + 0x7c]
cmp eax, dword [rdi + 0x70]
jb 0x180004616
jmp 0x18000465a
mov eax, dword [rdi + 0x7c]
movzx ecx, word [r9 + rax*2]
mov word [rdi + rcx*2 + 0x88], dx
inc dword [rdi + 0x7c]
cmp dword [rdi + 0x7c], 0x13
jb 0x180004647
lea rax, [rdi + 0x548]
mov dword [r15], r8d
lea r9, [rdi + 0x80]
mov qword [rdi + 0x58], rax
xor ecx, ecx
mov qword [r9], rax
lea rax, [rdi + 0x308]
mov qword [rsp + 0x28], rax
lea rdx, [rdi + 0x88]
mov qword [rsp + 0x20], r15
lea r8d, [rcx + 0x13]
call fcn.1800054c4
xor r8d, r8d
mov dword [rbp + 0x48], eax
test eax, eax
je 0x1800046bc
lea rax, str.invalid_code_lengths_set
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1800044e9
mov r10, qword [rbp - 0x18]
mov r11, qword [rbp - 0x10]
mov dword [rdi + 0x7c], r8d
mov dword [rdi], 0x12
jmp 0x1800046d3
xor r8d, r8d
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp dword [rdi + 0x7c], eax
jae 0x1800048f3
jmp 0x180004705
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
mov ecx, dword [r15]
mov eax, 1
shl eax, cl
lea ecx, [rax - 1]
mov eax, r14d
and rcx, rax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [rbp - 0x24], eax
cmp ecx, esi
ja 0x1800046e4
mov ecx, eax
mov edx, 0x10
shr ecx, 0x10
cmp cx, dx
jae 0x18000478d
shr eax, 8
movzx edx, al
jmp 0x180004766
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, edx
jb 0x180004745
movzx ecx, byte [rbp - 0x23]
movzx eax, word [rbp - 0x22]
sub esi, ecx
shr r14d, cl
mov ecx, dword [rdi + 0x7c]
mov word [rdi + rcx*2 + 0x88], ax
inc dword [rdi + 0x7c]
mov ecx, dword [rdi + 0x7c]
jmp 0x1800048b8
cmp word [rbp - 0x22], dx
jne 0x1800047f5
movzx edx, byte [rbp - 0x23]
lea r8d, [rdx + 2]
cmp esi, r8d
jae 0x1800047c3
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
jmp 0x18000479b
mov eax, dword [rdi + 0x7c]
mov ecx, edx
shr r14d, cl
sub esi, edx
test eax, eax
je 0x1800048ca
mov edx, r14d
dec eax
and edx, 3
shr r14d, 2
add edx, 3
add esi, 0xfffffffe
movzx r8d, word [rdi + rax*2 + 0x88]
jmp 0x180004892
movzx r9d, byte [rbp - 0x23]
mov eax, 0x11
cmp word [rbp - 0x22], ax
jne 0x18000484a
lea edx, [r9 + 3]
jmp 0x18000482c
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, edx
jb 0x18000480b
mov ecx, r9d
mov eax, 0xfffffffd
shr r14d, cl
mov edx, r14d
and edx, 7
add edx, 3
shr r14d, 3
jmp 0x18000488d
lea edx, [r9 + 7]
jmp 0x180004871
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, edx
jb 0x180004850
mov ecx, r9d
mov eax, 0xfffffff9
shr r14d, cl
mov edx, r14d
and edx, 0x7f
add edx, 0xb
shr r14d, 7
sub eax, r9d
add esi, eax
mov ecx, dword [rdi + 0x7c]
mov eax, dword [rdi + 0x78]
add ecx, edx
add eax, dword [rdi + 0x74]
cmp ecx, eax
ja 0x1800048e1
mov eax, dword [rdi + 0x7c]
mov word [rdi + rax*2 + 0x88], r8w
inc dword [rdi + 0x7c]
mov ecx, dword [rdi + 0x7c]
add edx, 0xffffffff
jne 0x1800048a1
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp ecx, eax
jae 0x1800048f3
xor r8d, r8d
jmp 0x180004705
lea rax, str.invalid_bit_length_repeat
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1800044f1
lea rax, str.invalid_bit_length_repeat
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
cmp dword [rdi], 0x1d
lea rdx, [rdi + 0x6c]
mov r8d, dword [rbp + 0x60]
mov r9d, dword [rbp + 0x58]
je 0x180003b50
xor eax, eax
cmp word [rdi + 0x288], ax
jne 0x18000491f
lea rax, str.invalid_code____missing_end_of_block
jmp 0x180004e06
mov r8d, dword [rdi + 0x74]
lea rax, [rdi + 0x548]
lea rbx, [rdi + 0x80]
mov dword [r15], 9
mov qword [rbx], rax
lea r15, [rdi + 0x308]
mov qword [rdi + 0x58], rax
lea rdx, [rdi + 0x88]
lea rax, [rdi + 0x68]
mov qword [rsp + 0x28], r15
mov r9, rbx
mov qword [rsp + 0x20], rax
mov ecx, 1
call fcn.1800054c4
mov dword [rbp + 0x48], eax
test eax, eax
je 0x180004992
lea rax, str.invalid_literal_lengths_set
mov r10, qword [rbp - 0x18]
mov r9d, dword [rbp + 0x58]
mov r11, qword [rbp - 0x10]
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x180004276
mov rax, qword [rbx]
lea rcx, [rdi + 0x6c]
mov r8d, dword [rdi + 0x78]
mov r9, rbx
mov qword [rdi + 0x60], rax
mov eax, dword [rdi + 0x74]
add rax, 0x44
mov dword [rcx], 6
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rcx
mov ecx, 2
lea rdx, [rdi + rax*2]
call fcn.1800054c4
mov dword [rbp + 0x48], eax
test eax, eax
je 0x1800049d9
lea rax, str.invalid_distances_set
jmp 0x180004976
mov ebx, dword [rbp + 0x50]
mov r10, qword [rbp - 0x18]
mov dword [rdi], 0x13
cmp ebx, 6
je 0x1800050ef
mov r8d, dword [rbp + 0x60]
lea r15, [rdi + 0x68]
mov r9d, dword [rbp + 0x58]
mov r11, qword [rbp - 0x10]
mov dword [rdi], 0x14
cmp r13d, 6
jb 0x180004a81
cmp r9d, 0x102
jb 0x180004a81
mov qword [r12 + 0x10], r11
mov edx, r8d
mov dword [r12 + 0x18], r9d
mov rcx, r12
mov qword [r12], r10
mov dword [r12 + 8], r13d
mov dword [rdi + 0x40], r14d
mov dword [rdi + 0x44], esi
call fcn.180003678
cmp dword [rdi], 0xb
lea rdx, [rdi + 0x6c]
mov r11, qword [r12 + 0x10]
mov eax, 0
mov r10, qword [r12]
mov r9d, dword [r12 + 0x18]
mov r13d, dword [r12 + 8]
mov r14d, dword [rdi + 0x40]
mov esi, dword [rdi + 0x44]
mov r8d, dword [rbp + 0x60]
mov qword [rbp - 0x10], r11
mov qword [rbp - 0x18], r10
mov dword [rbp + 0x58], r9d
jne 0x180003b52
or dword [rdi + 0x1bdc], 0xffffffff
jmp 0x1800050a0
mov ecx, dword [r15]
xor r8d, r8d
mov r11, qword [rdi + 0x58]
mov dword [rdi + 0x1bdc], r8d
lea r9d, [r8 + 1]
mov eax, r9d
shl eax, cl
sub eax, r9d
mov ecx, eax
mov eax, r14d
and rcx, rax
mov eax, dword [r11 + rcx*4]
jmp 0x180004ae7
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
add r10, r9
mov ecx, dword [r15]
add r14d, eax
mov eax, r9d
mov qword [rbp - 0x18], r10
shl eax, cl
dec r13d
sub eax, r9d
add esi, 8
mov ecx, eax
mov eax, r14d
and rcx, rax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x180004aac
test al, al
je 0x180004bbb
test al, 0xf0
jne 0x180004bbb
mov r10d, eax
movzx ecx, al
shr r10d, 8
mov edx, eax
movzx r8d, r10b
add ecx, r8d
mov dword [rbp - 0x24], eax
shl r9d, cl
mov ecx, r8d
dec r9d
shr eax, 0x10
and r9d, r14d
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
cmp r8d, esi
jbe 0x180004bac
mov r10, qword [rbp - 0x18]
test r13d, r13d
je 0x1800043fb
movzx eax, byte [r10]
mov ecx, esi
movzx r9d, byte [rbp - 0x23]
mov r8d, 1
shl eax, cl
inc r10
add r14d, eax
movzx ecx, dl
movzx eax, word [rbp - 0x22]
add ecx, r9d
shl r8d, cl
dec r13d
dec r8d
mov qword [rbp - 0x18], r10
and r8d, r14d
mov ecx, r9d
shr r8d, cl
add esi, 8
add r8d, eax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, esi
ja 0x180004b4b
movzx ecx, byte [rbp - 0x23]
shr r14d, cl
sub esi, ecx
mov dword [rdi + 0x1bdc], ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [rdi + 0x1bdc], ecx
sub esi, ecx
shr r14d, cl
mov ecx, eax
shr ecx, 0x10
mov dword [rdi + 0x48], ecx
test al, al
jne 0x180004be5
mov dword [rdi], 0x19
jmp 0x1800044e9
test al, 0x20
je 0x180004bf5
or dword [rdi + 0x1bdc], 0xffffffff
jmp 0x1800044e3
test al, 0x40
je 0x180004c05
lea rax, str.invalid_literal_length_code
jmp 0x1800046ac
mov r10, qword [rbp - 0x18]
movzx ecx, al
and ecx, 0xf
mov dword [rdi], 0x15
mov dword [rdi + 0x50], ecx
mov edx, dword [rdi + 0x50]
test edx, edx
je 0x180004c62
jmp 0x180004c42
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, edx
jb 0x180004c21
mov ecx, edx
mov eax, 1
shl eax, cl
sub esi, edx
dec eax
and eax, r14d
shr r14d, cl
add dword [rdi + 0x48], eax
add dword [rdi + 0x1bdc], edx
mov eax, dword [rdi + 0x48]
lea rdx, [rdi + 0x6c]
mov dword [rdi + 0x1be0], eax
mov dword [rdi], 0x16
mov ecx, dword [rdx]
mov r9d, 1
mov r11, qword [rdi + 0x60]
mov eax, r9d
shl eax, cl
sub eax, r9d
mov ecx, eax
mov eax, r14d
and rcx, rax
mov eax, dword [r11 + rcx*4]
jmp 0x180004cd1
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
add r10, r9
mov ecx, dword [rdx]
add r14d, eax
mov eax, r9d
mov qword [rbp - 0x18], r10
shl eax, cl
dec r13d
sub eax, r9d
add esi, 8
mov ecx, eax
mov eax, r14d
and rcx, rax
mov rax, qword [rdi + 0x60]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x180004c97
test al, 0xf0
jne 0x180004da1
mov r10d, eax
movzx ecx, al
shr r10d, 8
mov edx, eax
movzx r8d, r10b
add ecx, r8d
mov dword [rbp - 0x24], eax
shl r9d, cl
mov ecx, r8d
dec r9d
shr eax, 0x10
and r9d, r14d
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
cmp r8d, esi
jbe 0x180004d8e
mov r10, qword [rbp - 0x18]
test r13d, r13d
je 0x1800043fb
movzx eax, byte [r10]
mov ecx, esi
movzx r9d, byte [rbp - 0x23]
mov r8d, 1
shl eax, cl
inc r10
add r14d, eax
movzx ecx, dl
movzx eax, word [rbp - 0x22]
add ecx, r9d
shl r8d, cl
dec r13d
dec r8d
mov qword [rbp - 0x18], r10
and r8d, r14d
mov ecx, r9d
shr r8d, cl
add esi, 8
add r8d, eax
mov rax, qword [rdi + 0x60]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, esi
ja 0x180004d2d
movzx ecx, byte [rbp - 0x23]
lea rdx, [rdi + 0x6c]
shr r14d, cl
sub esi, ecx
add dword [rdi + 0x1bdc], ecx
mov r10, qword [rbp - 0x18]
mov ecx, eax
mov r8d, dword [rbp + 0x60]
mov r9d, dword [rbp + 0x58]
mov r11, qword [rbp - 0x10]
shr ecx, 8
movzx ecx, cl
add dword [rdi + 0x1bdc], ecx
sub esi, ecx
shr r14d, cl
test al, 0x40
je 0x180004ddf
lea rax, str.invalid_distance_code
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x180003b50
mov ecx, eax
mov dword [rdi], 0x17
shr ecx, 0x10
mov dword [rdi + 0x4c], ecx
movzx ecx, al
and ecx, 0xf
mov dword [rdi + 0x50], ecx
mov edx, dword [rdi + 0x50]
test edx, edx
je 0x180004e57
jmp 0x180004e37
lea rax, str.too_many_length_or_distance_symbols
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1800044f9
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
add esi, 8
cmp esi, edx
jb 0x180004e16
mov ecx, edx
mov eax, 1
shl eax, cl
sub esi, edx
dec eax
and eax, r14d
shr r14d, cl
add dword [rdi + 0x4c], eax
add dword [rdi + 0x1bdc], edx
mov dword [rdi], 0x18
lea rdx, [rdi + 0x6c]
test r9d, r9d
je 0x1800043f7
mov ecx, dword [rdi + 0x4c]
mov eax, r8d
sub eax, r9d
cmp ecx, eax
jbe 0x180005057
sub ecx, eax
cmp ecx, dword [rdi + 0x30]
jbe 0x180005036
xor eax, eax
cmp dword [rdi + 0x1bd8], eax
je 0x180005036
lea rax, str.invalid_distance_too_far_back
jmp 0x180004dcf
sub ecx, 0x18
je 0x180004e61
sub ecx, 1
je 0x18000500e
sub ecx, 1
je 0x180004ee1
sub ecx, 1
je 0x180004fb7
sub ecx, 1
je 0x1800050e7
sub ecx, 1
je 0x1800050cd
cmp ecx, 1
jne 0x180004195
mov eax, 0xfffffffc
jmp 0x18000419a
xor eax, eax
cmp dword [rdi + 8], eax
je 0x180004fb1
jmp 0x180004f14
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
mov eax, 0
add esi, 8
cmp esi, 0x20
jb 0x180004eee
sub r8d, r9d
add dword [r12 + 0x1c], r8d
add dword [rdi + 0x1c], r8d
test r8d, r8d
je 0x180004f62
cmp dword [rdi + 0x10], eax
mov rdx, r11
mov ecx, dword [rdi + 0x18]
mov eax, r8d
je 0x180004f42
sub rdx, rax
call fcn.1800012e0
jmp 0x180004f4a
sub rdx, rax
call section..text
mov r10, qword [rbp - 0x18]
lea rdx, [rdi + 0x6c]
mov r9d, dword [rbp + 0x58]
mov r11, qword [rbp - 0x10]
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
mov eax, r14d
mov dword [rbp + 0x60], r9d
shl eax, 0x10
mov ecx, r14d
and ecx, 0xff00
mov r8d, r9d
add ecx, eax
mov eax, r14d
shr eax, 8
and eax, 0xff00
shl ecx, 8
add ecx, eax
mov eax, r14d
shr eax, 0x18
add ecx, eax
xor eax, eax
cmp dword [rdi + 0x10], eax
cmovne ecx, r14d
cmp ecx, dword [rdi + 0x18]
je 0x180004fac
lea rax, str.incorrect_data_check
jmp 0x180004dcf
mov r14d, eax
mov esi, eax
mov dword [rdi], 0x1b
xor eax, eax
cmp dword [rdi + 8], eax
je 0x1800050e1
cmp dword [rdi + 0x10], eax
je 0x1800050e1
jmp 0x180004ff3
test r13d, r13d
je 0x1800043f7
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x18], r10
dec r13d
mov eax, 0
add esi, 8
cmp esi, 0x20
jb 0x180004fcd
cmp r14d, dword [rdi + 0x1c]
je 0x1800050dc
lea rax, str.incorrect_length_check
jmp 0x180004dcf
test r9d, r9d
je 0x1800043f7
mov al, byte [rdi + 0x48]
mov byte [r11], al
inc r11
dec r9d
mov qword [rbp - 0x10], r11
mov dword [rbp + 0x58], r9d
mov dword [rdi], 0x14
jmp 0x180003b50
mov eax, dword [rdi + 0x34]
cmp ecx, eax
jbe 0x180005046
mov edx, dword [rdi + 0x2c]
sub ecx, eax
sub edx, ecx
jmp 0x18000504a
sub eax, ecx
mov edx, eax
add rdx, qword [rdi + 0x38]
mov eax, dword [rdi + 0x48]
cmp ecx, eax
jbe 0x180005062
jmp 0x180005060
mov eax, dword [rdi + 0x48]
mov rdx, r11
sub rdx, rcx
mov ecx, eax
cmp ecx, r9d
cmova ecx, r9d
sub r9d, ecx
sub eax, ecx
mov dword [rbp + 0x58], r9d
sub rdx, r11
mov dword [rdi + 0x48], eax
mov al, byte [rdx + r11]
mov byte [r11], al
inc r11
add ecx, 0xffffffff
jne 0x180005078
xor eax, eax
mov qword [rbp - 0x10], r11
lea rdx, [rdi + 0x6c]
cmp dword [rdi + 0x48], eax
jne 0x180003b52
mov dword [rdi], 0x14
lea rdx, [rdi + 0x6c]
jmp 0x180003b52
mov qword [r12 + 0x10], r11
mov eax, 2
mov dword [r12 + 0x18], r9d
mov qword [r12], r10
mov dword [r12 + 8], r13d
mov dword [rdi + 0x40], r14d
mov dword [rdi + 0x44], esi
jmp 0x18000419a
mov r15d, 0xfffffffd
mov r10, qword [rbp - 0x18]
jmp 0x1800043ff
mov r14d, eax
mov esi, eax
mov dword [rdi], 0x1c
mov r15d, 1
jmp 0x1800050d3
mov r15d, eax
jmp 0x1800043ff
sub ebx, dword [r12 + 0x18]
mov r9d, dword [rbp - 0x20]
sub r9d, dword [r12 + 8]
add dword [r12 + 0xc], r9d
add dword [r12 + 0x1c], ebx
add dword [rdi + 0x1c], ebx
mov dword [rbp - 0x20], r9d
cmp dword [rdi + 8], esi
je 0x18000514c
test ebx, ebx
je 0x18000514c
mov rdx, qword [r12 + 0x10]
mov r8d, ebx
mov ecx, dword [rdi + 0x18]
mov eax, ebx
sub rdx, rax
cmp dword [rdi + 0x10], esi
je 0x18000513b
call fcn.1800012e0
jmp 0x180005140
call section..text
mov r9d, dword [rbp - 0x20]
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
cmp dword [rdi], 0x13
je 0x180005159
cmp dword [rdi], 0xe
mov r8d, esi
jne 0x18000515f
mov r8d, pe_nt_image_headers64
mov eax, dword [rdi + 4]
mov edx, esi
neg eax
mov eax, 0x80
sbb ecx, ecx
and ecx, 0x40
cmp dword [rdi], 0xb
cmove edx, eax
lea eax, [r8 + rcx]
add edx, eax
add edx, dword [rdi + 0x44]
mov dword [r12 + 0x48], edx
test r9d, r9d
jne 0x18000518d
test ebx, ebx
je 0x180005193
cmp dword [rbp + 0x50], 4
jne 0x18000519f
test r15d, r15d
mov eax, 0xfffffffb
cmove r15d, eax
mov eax, r15d
jmp 0x18000419a