Function at 0x1800592c8
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 edx, edx
mov r12, rcx
test rcx, rcx
je 0x1800c26b3
mov rdi, qword [rcx + 0x28]
test rdi, rdi
je 0x1800c26b3
mov r9, qword [rcx + 0x10]
mov qword [rbp - 0x10], r9
test r9, r9
je 0x1800c26b3
mov r15, qword [rcx]
mov qword [rbp - 0x18], r15
test r15, r15
je 0x1800c26aa
cmp dword [rdi], 0xb
je 0x1800c26bd
mov r10d, dword [rcx + 0x18]
mov r8d, r10d
mov r13d, dword [rcx + 8]
mov r14d, dword [rdi + 0x40]
mov esi, dword [rdi + 0x44]
mov dword [rbp + 0x60], r10d
mov dword [rbp - 0x20], r13d
mov dword [rbp + 0x58], r10d
mov dword [rbp + 0x48], edx
lea rbx, [rdi + 0x6c]
lea r11, [rdi + 0x68]
mov eax, 7
mov ecx, dword [rdi]
cmp ecx, 0xf
jle 0x18005942e
cmp ecx, 0x17
jg 0x180059486
je 0x1800c3187
mov edx, ecx
sub edx, 0x10
je 0x1800597be
sub edx, 1
je 0x1800c2e4e
sub edx, 1
je 0x18005990f
sub edx, 1
je 0x180059a6e
sub edx, 1
jne 0x1800c2e37
cmp r13d, 6
jb 0x180059ba0
cmp r10d, 0x102
jb 0x180059ba0
mov rdx, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x18]
mov qword [r12 + 0x10], rdx
mov edx, r8d
mov qword [r12], rcx
mov rcx, r12
mov dword [r12 + 0x18], r10d
mov dword [r12 + 8], r13d
mov dword [rdi + 0x40], r14d
mov dword [rdi + 0x44], esi
call fcn.180059d4c
cmp dword [rdi], 0xb
lea r11, [rdi + 0x68]
mov r9, qword [r12 + 0x10]
mov edx, 0
mov r15, qword [r12]
mov r10d, dword [r12 + 0x18]
mov r13d, dword [r12 + 8]
mov r14d, dword [rdi + 0x40]
lea eax, [rdx + 7]
mov esi, dword [rdi + 0x44]
mov r8d, dword [rbp + 0x58]
mov qword [rbp - 0x10], r9
mov dword [rbp + 0x60], r10d
mov qword [rbp - 0x18], r15
jne 0x180059352
or dword [rdi + 0x1bdc], 0xffffffff
lea r11, [rdi + 0x68]
jmp 0x180059352
je 0x1800c2cc6
cmp ecx, eax
jle 0x1800594d6
sub ecx, 8
je 0x1800c2c08
sub ecx, 1
je 0x1800c2d13
sub ecx, 1
je 0x1800c2d54
sub ecx, 1
jne 0x1800c2c4c
cmp dword [rdi + 4], edx
je 0x18005953e
mov r9, qword [rbp - 0x10]
mov ecx, esi
mov eax, 7
mov dword [rdi], 0x1a
and ecx, eax
shr r14d, cl
sub esi, ecx
jmp 0x180059352
sub ecx, 0x18
je 0x1800c31e5
sub ecx, 1
je 0x180059d19
sub ecx, 1
jne 0x1800c322d
cmp dword [rdi + 8], edx
je 0x1800596ce
cmp esi, 0x20
jae 0x18005964b
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
jmp 0x1800594aa
je 0x1800c2b5b
test ecx, ecx
jne 0x1800c26d7
cmp dword [rdi + 8], edx
je 0x1800c2a68
mov eax, 0x10
cmp esi, eax
jae 0x180059584
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
jmp 0x1800594ed
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
cmp esi, 3
jb 0x18005951d
mov eax, r14d
shr r14d, 1
and eax, 1
mov dword [rdi + 4], eax
mov eax, r14d
and eax, 3
je 0x1800c2daa
sub eax, 1
je 0x180059ce0
sub eax, 1
jne 0x1800c2d8a
mov eax, 0x10
mov dword [rdi], eax
shr r14d, 2
add esi, 0xfffffffd
mov r9, qword [rbp - 0x10]
jmp 0x18005934d
test byte [rdi + 8], 2
jne 0x1800c2a73
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x10], edx
test rax, rax
jne 0x1800c2ab4
test byte [rdi + 8], 1
je 0x1800c2b3b
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 0x1800c2b39
mov eax, r14d
and al, 0xf
cmp al, 8
jne 0x1800c2abd
shr r14d, 4
add esi, 0xfffffffc
mov ecx, r14d
xor edx, edx
and ecx, 0xf
add ecx, 8
cmp dword [rdi + 0x28], edx
je 0x1800c2b28
cmp ecx, dword [rdi + 0x28]
ja 0x1800c2b30
mov eax, 1
xor r8d, r8d
shl eax, cl
xor ecx, ecx
mov dword [rdi + 0x14], eax
call fcn.18003784c
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
xor edx, edx
mov esi, edx
mov r14d, edx
mov r8d, dword [rbp + 0x58]
mov r9, qword [rbp - 0x10]
mov r10d, dword [rbp + 0x60]
jmp 0x180059349
sub r8d, r10d
add dword [r12 + 0x1c], r8d
add dword [rdi + 0x1c], r8d
test r8d, r8d
je 0x18005968a
mov ecx, dword [rdi + 0x18]
mov rdx, r9
mov eax, r8d
sub rdx, rax
xor eax, eax
cmp dword [rdi + 0x10], eax
jne 0x1800c3256
call fcn.18003784c
mov r10d, dword [rbp + 0x60]
lea r11, [rdi + 0x68]
mov dword [rdi + 0x18], eax
xor edx, edx
mov dword [r12 + 0x4c], eax
mov r8d, r10d
mov dword [rbp + 0x58], r10d
mov ecx, r14d
cmp dword [rdi + 0x10], edx
jne 0x1800596c0
mov r9d, 0xff00
mov eax, r14d
shl eax, 0x10
and ecx, r9d
add ecx, eax
mov eax, r14d
shr eax, 8
and eax, r9d
shl ecx, 8
add ecx, eax
mov eax, r14d
shr eax, 0x18
add ecx, eax
cmp ecx, dword [rdi + 0x18]
jne 0x1800c3261
mov r14d, edx
mov esi, edx
mov dword [rdi], 0x1b
cmp dword [rdi + 8], edx
je 0x1800596e2
cmp dword [rdi + 0x10], edx
jne 0x1800c328b
mov dword [rdi], 0x1c
mov r15d, 1
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x10]
mov eax, dword [rbp + 0x60]
mov ebx, dword [rbp + 0x58]
mov qword [r12 + 0x10], rdx
mov dword [r12 + 0x18], eax
mov qword [r12], rcx
mov dword [r12 + 8], r13d
mov dword [rdi + 0x44], esi
xor esi, esi
mov dword [rdi + 0x40], r14d
cmp dword [rdi + 0x2c], esi
jne 0x1800c337b
cmp dword [rdi], 0x1a
jl 0x1800c3370
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 0x180059756
test ebx, ebx
jne 0x1800c338f
mov eax, dword [rdi + 4]
mov edx, 0x80
neg eax
sbb ecx, ecx
and ecx, 0x40
cmp dword [rdi], 0xb
cmovne edx, esi
cmp dword [rdi], 0x13
je 0x1800c33c1
cmp dword [rdi], 0xe
mov r8d, esi
je 0x1800c33c1
mov eax, dword [rdi + 0x44]
add eax, r8d
add eax, edx
add eax, ecx
mov dword [r12 + 0x48], eax
test r9d, r9d
je 0x1800c33cc
cmp dword [rbp + 0x50], 4
jne 0x1800597aa
test r15d, r15d
mov eax, 0xfffffffb
cmove r15d, eax
mov eax, r15d
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp esi, 0xe
jae 0x1800597e6
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
jmp 0x1800597be
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 0x1800c3190
cmp edx, 0x1e
ja 0x1800c3190
xor edx, edx
mov dword [rdi + 0x7c], edx
lea eax, [rdx + 0x11]
mov dword [rdi], eax
mov r8d, 7
lea r9, [0x18016dd40]
mov eax, dword [rdi + 0x7c]
cmp eax, dword [rdi + 0x70]
jae 0x18005989b
cmp esi, 3
jb 0x180059878
mov eax, dword [rdi + 0x7c]
movzx ecx, r14w
and cx, r8w
shr r14d, 3
movzx eax, word [r9 + rax*2]
mov word [rdi + rax*2 + 0x88], cx
inc dword [rdi + 0x7c]
add esi, 0xfffffffd
jmp 0x180059847
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
jmp 0x18005984f
cmp eax, 0x13
jae 0x1800598b9
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 0x1800598a0
lea rax, [rdi + 0x548]
mov dword [r11], 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], r11
lea r8d, [rcx + 0x13]
call fcn.180037fcc
xor edx, edx
mov dword [rbp + 0x48], eax
test eax, eax
jne 0x1800c2e55
lea eax, [rdx + 0x12]
mov dword [rdi + 0x7c], edx
mov dword [rdi], eax
lea r11, [rdi + 0x68]
mov ecx, eax
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
mov r10d, dword [rdi + 0x7c]
cmp r10d, eax
jae 0x18005999c
mov ecx, dword [r11]
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
or r8d, 0xffffffff
movzx ecx, cl
mov dword [rbp - 0x24], eax
cmp ecx, esi
ja 0x180059a79
mov ecx, eax
mov edx, 0x10
shr ecx, 0x10
cmp cx, dx
jae 0x180059abe
shr eax, 8
movzx edx, al
cmp esi, edx
jb 0x1800c2e75
movzx ecx, byte [rbp - 0x23]
movzx eax, word [rbp - 0x22]
sub esi, ecx
shr r14d, cl
mov ecx, r10d
mov word [rdi + rcx*2 + 0x88], ax
inc dword [rdi + 0x7c]
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
mov r10d, dword [rdi + 0x7c]
cmp r10d, eax
jb 0x18005991e
mov ecx, dword [rdi]
mov r8d, dword [rbp + 0x58]
mov edx, 0
mov r9, qword [rbp - 0x10]
mov r10d, dword [rbp + 0x60]
lea eax, [rdx + 7]
cmp ecx, 0x1d
je 0x180059352
cmp word [rdi + 0x288], dx
je 0x1800c2b44
mov r8d, dword [rdi + 0x74]
lea rax, [rdi + 0x548]
lea rbx, [rdi + 0x80]
mov qword [rdi + 0x58], rax
lea r15, [rdi + 0x308]
mov qword [rbx], rax
mov qword [rsp + 0x28], r15
lea rdx, [rdi + 0x88]
mov r9, rbx
mov qword [rsp + 0x20], r11
mov ecx, 1
mov dword [r11], 9
call fcn.180037fcc
xor edx, edx
mov dword [rbp + 0x48], eax
test eax, eax
jne 0x1800c2f27
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.180037fcc
xor edx, edx
mov dword [rbp + 0x48], eax
test eax, eax
jne 0x1800c2f30
mov r8d, dword [rbp + 0x58]
lea rbx, [rdi + 0x6c]
mov r10d, dword [rbp + 0x60]
mov dword [rdi], 0x13
mov dword [rdi], 0x14
jmp 0x18005939b
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
mov ecx, dword [r11]
add r14d, eax
mov eax, 1
mov edx, r14d
shl eax, cl
add r13d, r8d
add esi, 8
mov qword [rbp - 0x18], r15
lea ecx, [rax - 1]
mov rax, qword [rdi + 0x58]
and rcx, rdx
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
jmp 0x180059941
cmp word [rbp - 0x22], dx
jne 0x180059b59
movzx edx, byte [rbp - 0x23]
lea r8d, [rdx + 2]
cmp esi, r8d
jb 0x180059b33
mov ecx, edx
sub esi, edx
shr r14d, cl
xor edx, edx
test r10d, r10d
je 0x1800c2ee8
mov edx, r14d
lea eax, [r10 - 1]
movzx r8d, word [rdi + rax*2 + 0x88]
and edx, 3
add edx, 3
shr r14d, 2
add esi, 0xfffffffe
mov eax, dword [rdi + 0x78]
lea ecx, [r10 + rdx]
add eax, dword [rdi + 0x74]
cmp ecx, eax
ja 0x1800c2f0b
mov eax, dword [rdi + 0x7c]
mov word [rdi + rax*2 + 0x88], r8w
inc dword [rdi + 0x7c]
add edx, 0xffffffff
jne 0x180059b16
lea rbx, [rdi + 0x6c]
jmp 0x18005998b
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
jmp 0x180059ad0
movzx r9d, byte [rbp - 0x23]
mov eax, 0x11
cmp word [rbp - 0x22], ax
jne 0x1800c2e9b
lea edx, [r9 + 3]
cmp esi, edx
jb 0x180059cbe
xor eax, eax
mov ecx, r9d
shr r14d, cl
mov r8d, eax
mov edx, r14d
mov eax, 0xfffffffd
and edx, 7
add edx, 3
shr r14d, 3
sub eax, r9d
add esi, eax
jmp 0x180059b04
mov ecx, dword [rdi + 0x68]
xor edx, edx
mov r11, qword [rdi + 0x58]
mov r15, qword [rbp - 0x18]
mov dword [rdi + 0x1bdc], edx
lea eax, [rdx + 1]
shl eax, cl
lea ecx, [rax - 1]
mov eax, r14d
and rcx, rax
mov eax, dword [r11 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x180059c79
test al, al
je 0x180059c3c
test al, 0xf0
jne 0x180059c3c
mov r10d, eax
movzx ecx, al
shr r10d, 8
mov r9d, 1
movzx r8d, r10b
mov edx, eax
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
ja 0x1800c2f57
movzx ecx, byte [rbp - 0x23]
shr r14d, cl
sub esi, ecx
xor edx, edx
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
je 0x180059d0e
test al, 0x20
je 0x1800c2fb8
or dword [rdi + 0x1bdc], 0xffffffff
mov dword [rdi], 0xb
jmp 0x18005963a
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
mov ecx, dword [rdi + 0x68]
add r14d, eax
mov eax, 1
mov edx, r14d
shl eax, cl
dec r13d
add esi, 8
mov qword [rbp - 0x18], r15
lea ecx, [rax - 1]
mov rax, qword [rdi + 0x58]
and rcx, rdx
mov edx, 0
mov eax, dword [rax + rcx*4]
jmp 0x180059bc5
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
add r13d, r8d
add esi, 8
jmp 0x180059b71
lea rax, [0x180179ef0]
mov dword [r11], 9
mov qword [rdi + 0x58], rax
lea rax, [0x18017a6f0]
mov qword [rdi + 0x60], rax
mov dword [rbx], 5
mov dword [rdi], 0x13
jmp 0x180059574
mov dword [rdi], 0x19
jmp 0x18005963a
test r10d, r10d
je 0x180059d3d
mov al, byte [rdi + 0x48]
mov byte [r9], al
inc r9
dec r10d
mov qword [rbp - 0x10], r9
mov dword [rbp + 0x60], r10d
mov dword [rdi], 0x14
jmp 0x18005934d
mov rcx, qword [rbp - 0x18]
jmp 0x1800c2a44
cmp dword [rcx + 8], edx
je 0x18005931b
mov eax, 0xfffffffe
jmp 0x1800597ad
mov dword [rdi], 0xc
mov r9, qword [rcx + 0x10]
mov r15, qword [rcx]
mov qword [rbp - 0x10], r9
mov qword [rbp - 0x18], r15
jmp 0x180059324
sub ecx, 1
je 0x1800c270b
sub ecx, 1
je 0x1800c27d3
sub ecx, 1
je 0x1800c282e
sub ecx, 1
je 0x1800c28ab
sub ecx, 1
je 0x1800c2935
cmp ecx, 1
je 0x1800c29c5
jmp 0x1800c26b3
mov eax, 0x10
cmp esi, eax
jae 0x1800c273a
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
cmp esi, 0x10
jb 0x1800c2714
mov dword [rdi + 0x10], r14d
cmp r14b, 8
je 0x1800c2750
lea rax, str.unknown_compression_method
jmp 0x1800c2b4b
test r14d, 0xe000
je 0x1800c2765
lea rax, str.unknown_header_flags_set
jmp 0x1800c2b4b
mov rdx, qword [rdi + 0x20]
mov ecx, r14d
shr ecx, 8
mov eax, r14d
test rdx, rdx
je 0x1800c2781
mov eax, ecx
and eax, 1
mov dword [rdx], eax
mov eax, dword [rdi + 0x10]
bt eax, 9
jae 0x1800c27a3
mov byte [rbp - 0x28], r14b
lea rdx, [rbp - 0x28]
mov byte [rbp - 0x27], cl
mov r8d, 2
mov ecx, dword [rdi + 0x18]
call fcn.18004a8b0
mov dword [rdi + 0x18], eax
xor edx, edx
mov dword [rdi], 2
mov r14d, edx
mov esi, edx
jmp 0x1800c27d3
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x1800c27b2
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x1800c27e5
mov dword [rax + 4], r14d
test dword [rdi + 0x10], 0x200
je 0x1800c2823
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.18004a8b0
mov dword [rdi + 0x18], eax
xor edx, edx
mov r14d, edx
mov dword [rdi], 3
mov esi, edx
mov ebx, 0x10
jmp 0x1800c2856
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
cmp esi, ebx
jb 0x1800c2835
mov rdx, qword [rdi + 0x20]
mov ecx, r14d
shr ecx, 8
test rdx, rdx
je 0x1800c2877
movzx eax, r14b
mov dword [rdx + 8], eax
mov rax, qword [rdi + 0x20]
mov dword [rax + 0xc], ecx
test dword [rdi + 0x10], 0x200
je 0x1800c289c
mov byte [rbp - 0x28], r14b
lea rdx, [rbp - 0x28]
mov byte [rbp - 0x27], cl
mov r8d, 2
mov ecx, dword [rdi + 0x18]
call fcn.18004a8b0
mov dword [rdi + 0x18], eax
xor edx, edx
mov dword [rdi], 4
mov r14d, edx
mov esi, edx
jmp 0x1800c28b0
mov ebx, 0x10
test dword [rdi + 0x10], 0x400
jne 0x1800c28e9
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x1800c292f
mov qword [rax + 0x10], rdx
jmp 0x1800c292f
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
cmp esi, ebx
jb 0x1800c28c8
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x48], r14d
test rax, rax
je 0x1800c28fe
mov dword [rax + 0x18], r14d
test dword [rdi + 0x10], 0x200
je 0x1800c292a
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.18004a8b0
mov dword [rdi + 0x18], eax
xor edx, edx
mov r14d, edx
mov esi, edx
mov dword [rdi], 5
mov eax, dword [rdi + 0x10]
bt eax, 0xa
jae 0x1800c29bc
mov ecx, dword [rdi + 0x48]
mov ebx, r13d
cmp ecx, r13d
cmovbe ebx, ecx
test ebx, ebx
je 0x1800c29b4
mov r8, qword [rdi + 0x20]
test r8, r8
je 0x1800c2989
mov r9, qword [r8 + 0x10]
test r9, r9
je 0x1800c2989
mov edx, dword [r8 + 0x18]
sub edx, ecx
mov ecx, dword [r8 + 0x1c]
sub ecx, edx
lea eax, [rbx + rdx]
cmp eax, dword [r8 + 0x1c]
cmovbe ecx, ebx
mov r8d, ecx
mov ecx, edx
mov rdx, r15
add rcx, r9
call sub.msvcrt.dll_memcpy
mov eax, dword [rdi + 0x10]
bt eax, 9
jae 0x1800c29a0
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.18004a8b0
mov dword [rdi + 0x18], eax
sub dword [rdi + 0x48], ebx
sub r13d, ebx
mov ecx, dword [rdi + 0x48]
mov eax, ebx
add r15, rax
mov qword [rbp - 0x18], r15
xor edx, edx
test ecx, ecx
jne 0x180059d3d
mov dword [rdi + 0x48], edx
mov dword [rdi], 6
test dword [rdi + 0x10], 0x800
mov rcx, qword [rbp - 0x18]
je 0x1800c2a4d
test r13d, r13d
je 0x1800c2a44
mov ebx, edx
mov eax, ebx
inc ebx
movzx r15d, byte [rax + rcx]
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x1800c2a09
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x1800c2a07
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x28]
jae 0x1800c2a03
mov byte [rcx + rdx], r15b
inc dword [rdi + 0x48]
mov rcx, qword [rbp - 0x18]
xor edx, edx
test r15d, r15d
je 0x1800c2a13
cmp ebx, r13d
jb 0x1800c29d9
test dword [rdi + 0x10], 0x200
je 0x1800c2a2f
mov rdx, rcx
mov r8d, ebx
mov ecx, dword [rdi + 0x18]
call fcn.18004a8b0
mov dword [rdi + 0x18], eax
xor edx, edx
mov rcx, qword [rbp - 0x18]
sub r13d, ebx
mov eax, ebx
add rcx, rax
mov qword [rbp - 0x18], rcx
test r15d, r15d
je 0x1800c2a5a
mov r15d, dword [rbp + 0x48]
jmp 0x1800596f2
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x1800c2a5a
mov qword [rax + 0x20], rdx
mov dword [rdi + 0x48], edx
mov dword [rdi], 7
jmp 0x1800c2b5f
mov dword [rdi], 0xc
jmp 0x18005934d
cmp r14d, 0x8b1f
jne 0x18005958e
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18004a8b0
mov dword [rdi + 0x18], eax
lea rdx, [rbp - 0x28]
mov word [rbp - 0x28], r14w
mov r8d, 2
mov ecx, dword [rdi + 0x18]
call fcn.18004a8b0
mov dword [rdi + 0x18], eax
mov dword [rdi], 1
jmp 0x180059633
or dword [rax + 0x40], 0xffffffff
jmp 0x18005959e
lea rax, str.unknown_compression_method
jmp 0x1800c2ad1
mov r9, qword [rbp - 0x10]
lea rax, str.header_crc_mismatch
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1800c2b21
mov rdx, qword [rbp - 0x18]
mov rcx, r9
mov r8d, r15d
mov ebx, r15d
call sub.msvcrt.dll_memcpy
add qword [rbp - 0x18], rbx
lea r11, [rdi + 0x68]
mov r10d, dword [rbp + 0x60]
sub r13d, r15d
mov r9, qword [rbp - 0x10]
sub r10d, r15d
mov r8d, dword [rbp + 0x58]
add r9, rbx
sub dword [rdi + 0x48], r15d
lea rbx, [rdi + 0x6c]
mov r15, qword [rbp - 0x18]
mov dword [rbp + 0x60], r10d
mov qword [rbp - 0x10], r9
xor edx, edx
jmp 0x18005934d
mov dword [rdi + 0x28], ecx
jmp 0x180059605
lea rax, str.invalid_window_size
jmp 0x1800c2b4b
xor edx, edx
lea rax, str.incorrect_header_check
jmp 0x1800c2b4b
lea rax, str.invalid_code____missing_end_of_block
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x18005934d
mov rcx, qword [rbp - 0x18]
test dword [rdi + 0x10], 0x1000
je 0x1800c2be5
test r13d, r13d
je 0x1800c2a44
mov rcx, qword [rbp - 0x18]
mov ebx, edx
mov eax, ebx
inc ebx
movzx r15d, byte [rax + rcx]
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x1800c2ba7
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x1800c2ba5
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x38]
jae 0x1800c2ba1
mov byte [rcx + rdx], r15b
inc dword [rdi + 0x48]
mov rcx, qword [rbp - 0x18]
xor edx, edx
test r15d, r15d
je 0x1800c2bb1
cmp ebx, r13d
jb 0x1800c2b77
test dword [rdi + 0x10], 0x200
je 0x1800c2bcb
mov rdx, rcx
mov r8d, ebx
mov ecx, dword [rdi + 0x18]
call fcn.18004a8b0
mov dword [rdi + 0x18], eax
mov rcx, qword [rbp - 0x18]
sub r13d, ebx
mov eax, ebx
add rcx, rax
mov qword [rbp - 0x18], rcx
test r15d, r15d
je 0x1800c2bf2
jmp 0x1800c2a44
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x1800c2bf2
mov qword [rax + 0x30], rdx
mov r8d, dword [rbp + 0x58]
lea r11, [rdi + 0x68]
mov r10d, dword [rbp + 0x60]
lea rbx, [rdi + 0x6c]
mov dword [rdi], 8
mov edx, dword [rdi + 0x10]
bt edx, 9
jae 0x1800c2dc8
mov r15, qword [rbp - 0x18]
xor r9d, r9d
mov eax, 0x10
cmp esi, eax
jae 0x1800c2db5
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
jmp 0x1800c2c1c
sub ecx, 1
je 0x180059460
sub ecx, 1
je 0x1800c2c64
cmp ecx, 1
je 0x1800c2cc0
jmp 0x1800c26b3
mov ecx, esi
and ecx, 7
shr r14d, cl
sub esi, ecx
jmp 0x1800c2c91
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x1800c2c70
mov eax, r14d
movzx ecx, r14w
not eax
shr eax, 0x10
cmp ecx, eax
je 0x1800c2cb2
lea rax, str.invalid_stored_block_lengths
jmp 0x1800c2b4b
mov dword [rdi + 0x48], ecx
mov r14d, edx
mov esi, edx
mov dword [rdi], 0xe
mov dword [rdi], 0xf
mov ecx, dword [rdi + 0x48]
test ecx, ecx
je 0x1800c2e2c
cmp ecx, r13d
mov eax, r13d
mov r15d, r10d
cmovbe eax, ecx
cmp eax, r10d
cmovbe r15d, eax
test r15d, r15d
je 0x180059d3d
jmp 0x1800c2ade
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x1800c2cf2
mov ecx, r14d
mov eax, r14d
shl eax, 0x10
mov r8d, 0xff00
and ecx, r8d
mov esi, edx
add ecx, eax
mov eax, r14d
shr eax, 8
and eax, r8d
shl ecx, 8
shr r14d, 0x18
add eax, ecx
add eax, r14d
mov r14d, edx
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
mov dword [rdi], 0xa
cmp dword [rdi + 0xc], edx
je 0x1800c3327
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18003784c
mov r8d, dword [rbp + 0x58]
lea r11, [rdi + 0x68]
mov r10d, dword [rbp + 0x60]
xor edx, edx
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
mov dword [rdi], 0xb
jmp 0x180059460
cmp eax, 1
jne 0x180059574
lea rax, str.invalid_block_type
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x180059574
mov dword [rdi], 0xd
jmp 0x180059574
movzx eax, word [rdi + 0x18]
cmp r14d, eax
jne 0x1800c2ac6
mov r14d, r9d
mov esi, r9d
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x1800c2de5
sar edx, 9
and edx, 1
mov dword [rax + 0x3c], edx
mov rax, qword [rdi + 0x20]
mov dword [rax + 0x40], 1
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18004a8b0
mov r15, qword [rbp - 0x18]
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
mov dword [rdi], 0xb
jmp 0x1800c2e17
lea rax, str.invalid_distance_code
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
mov r8d, dword [rbp + 0x58]
lea r11, [rdi + 0x68]
mov r9, qword [rbp - 0x10]
mov r10d, dword [rbp + 0x60]
jmp 0x1800c2b21
mov dword [rdi], 0xb
jmp 0x18005934d
sub edx, 1
je 0x1800c2fcf
cmp edx, 1
je 0x1800c3028
jmp 0x1800c26b3
xor edx, edx
jmp 0x18005983a
lea rax, str.invalid_code_lengths_set
jmp 0x1800c2e65
lea rax, str.invalid_literal_length_code
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x18005963a
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
add r13d, r8d
add esi, 8
jmp 0x180059968
lea edx, [r9 + 7]
jmp 0x1800c2ec2
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
add r13d, r8d
add esi, 8
cmp esi, edx
jb 0x1800c2ea1
xor eax, eax
mov ecx, r9d
shr r14d, cl
mov r8d, eax
mov edx, r14d
mov eax, 0xfffffff9
and edx, 0x7f
add edx, 0xb
shr r14d, 7
jmp 0x180059b96
mov r8d, dword [rbp + 0x58]
lea rax, str.invalid_bit_length_repeat
mov r9, qword [rbp - 0x10]
mov r10d, dword [rbp + 0x60]
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x18005934d
lea rax, str.invalid_bit_length_repeat
mov ecx, 0x1d
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x18005999c
lea rax, str.invalid_literal_lengths_set
jmp 0x1800c2f37
lea rax, str.invalid_distances_set
mov r15, qword [rbp - 0x18]
mov r8d, dword [rbp + 0x58]
mov r9, qword [rbp - 0x10]
mov r10d, dword [rbp + 0x60]
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x180059345
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
movzx r9d, byte [rbp - 0x23]
mov r8d, 1
shl eax, cl
inc r15
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], r15
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
jmp 0x180059c22
test al, 0x40
jne 0x1800c2e5e
movzx ecx, al
and ecx, 0xf
mov dword [rdi], 0x15
mov dword [rdi + 0x50], ecx
mov edx, dword [rdi + 0x50]
test edx, edx
jne 0x1800c2ff9
jmp 0x1800c3019
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
cmp esi, edx
jb 0x1800c2fd8
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]
mov dword [rdi + 0x1be0], eax
mov dword [rdi], 0x16
mov ecx, dword [rbx]
mov eax, 1
mov r11, qword [rdi + 0x60]
shl eax, cl
lea ecx, [rax - 1]
mov eax, r14d
and rcx, rax
mov eax, dword [r11 + rcx*4]
jmp 0x1800c307e
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
mov ecx, dword [rbx]
add r14d, eax
mov eax, 1
mov edx, r14d
shl eax, cl
dec r13d
add esi, 8
mov qword [rbp - 0x18], r15
lea ecx, [rax - 1]
mov rax, qword [rdi + 0x60]
and rcx, rdx
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x1800c3044
test al, 0xf0
jne 0x1800c3149
mov r10d, eax
movzx ecx, al
shr r10d, 8
mov r9d, 1
movzx r8d, r10b
mov edx, eax
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
jmp 0x1800c3135
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
movzx r9d, byte [rbp - 0x23]
mov r8d, 1
shl eax, cl
inc r15
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], r15
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 0x1800c30d9
movzx ecx, byte [rbp - 0x23]
shr r14d, cl
sub esi, ecx
add dword [rdi + 0x1bdc], ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [rdi + 0x1bdc], ecx
sub esi, ecx
shr r14d, cl
test al, 0x40
jne 0x1800c2e05
mov r8d, dword [rbp + 0x58]
lea r11, [rdi + 0x68]
mov r10d, dword [rbp + 0x60]
mov ecx, eax
shr ecx, 0x10
mov dword [rdi + 0x4c], ecx
movzx ecx, al
and ecx, 0xf
mov dword [rdi], 0x17
mov dword [rdi + 0x50], ecx
mov edx, dword [rdi + 0x50]
test edx, edx
jne 0x1800c31bd
jmp 0x1800c31dd
lea rax, str.too_many_length_or_distance_symbols
jmp 0x1800c2ad1
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
cmp esi, edx
jb 0x1800c319c
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
xor edx, edx
test r10d, r10d
je 0x180059d3d
mov eax, dword [rdi + 0x4c]
mov ecx, r8d
sub ecx, r10d
cmp eax, ecx
jbe 0x1800c32ca
sub eax, ecx
cmp eax, dword [rdi + 0x30]
jbe 0x1800c32a6
cmp dword [rdi + 0x1bd8], edx
je 0x1800c32a6
lea rax, str.invalid_distance_too_far_back
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x18005957b
sub ecx, 1
je 0x1800596d4
sub ecx, 1
je 0x1800596e8
sub ecx, 1
je 0x1800c335b
cmp ecx, 1
je 0x1800c3351
jmp 0x1800c26b3
call fcn.18004a8b0
nop
jmp 0x180059678
lea rax, str.incorrect_data_check
jmp 0x1800c321d
test r13d, r13d
je 0x180059d3d
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x18], r15
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x1800c326a
cmp r14d, dword [rdi + 0x1c]
je 0x1800c3366
lea rax, str.incorrect_length_check
jmp 0x1800c321d
mov ecx, dword [rdi + 0x34]
cmp eax, ecx
jbe 0x1800c32b2
sub eax, ecx
mov ecx, dword [rdi + 0x2c]
mov r8d, dword [rdi + 0x48]
sub ecx, eax
mov edx, ecx
mov r9d, r8d
add rdx, qword [rdi + 0x38]
cmp eax, r8d
cmovbe r9d, eax
jmp 0x1800c32d8
mov rdx, qword [rbp - 0x10]
mov r8d, dword [rdi + 0x48]
sub rdx, rax
mov r9d, r8d
cmp r9d, r10d
mov ecx, r10d
cmovbe ecx, r9d
mov r9, qword [rbp - 0x10]
sub r10d, ecx
sub r8d, ecx
mov dword [rbp + 0x60], r10d
sub rdx, r9
mov dword [rdi + 0x48], r8d
mov al, byte [rdx + r9]
mov byte [r9], al
inc r9
add ecx, 0xffffffff
jne 0x1800c32f7
mov r8d, dword [rbp + 0x58]
lea eax, [rcx + 7]
xor edx, edx
mov qword [rbp - 0x10], r9
cmp dword [rdi + 0x48], edx
jne 0x180059352
mov dword [rdi], 0x14
jmp 0x180059352
mov qword [r12 + 0x10], r9
mov eax, 2
mov dword [r12 + 0x18], r10d
mov qword [r12], r15
mov dword [r12 + 8], r13d
mov dword [rdi + 0x40], r14d
mov dword [rdi + 0x44], esi
jmp 0x1800597ad
mov dword [rdi], 0x1e
mov eax, 0xfffffffc
jmp 0x1800597ad
mov r15d, 0xfffffffd
jmp 0x1800596ee
mov r14d, edx
mov esi, edx
jmp 0x1800596e2
cmp ebx, dword [r12 + 0x18]
je 0x18005972a
mov edx, ebx
mov rcx, r12
call fcn.180140820
test eax, eax
je 0x18005972a
jmp 0x1800c334b
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 0x1800c33ab
call fcn.18004a8b0
jmp 0x1800c33b0
call fcn.18003784c
mov r9d, dword [rbp - 0x20]
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
jmp 0x180059756
mov r8d, 0x100
jmp 0x180059780
test ebx, ebx
je 0x18005979e
jmp 0x180059798