Function at 0x140309ee8
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 0x140309fe2
mov rbx, qword [rcx + 0x28]
test rbx, rbx
je 0x140309fe2
mov r9, qword [rcx + 0x10]
mov qword [rbp - 0x18], r9
test r9, r9
je 0x140309fe2
mov rsi, qword [rcx]
mov qword [rbp - 0x20], rsi
test rsi, rsi
jne 0x140309f40
cmp dword [rcx + 8], edx
jne 0x140309fe2
cmp dword [rbx], 0xb
jne 0x140309f5a
mov dword [rbx], SafeArrayGetDim
mov r9, qword [rcx + 0x10]
mov rsi, qword [rcx]
mov qword [rbp - 0x18], r9
mov qword [rbp - 0x20], rsi
mov r10d, dword [rcx + 0x18]
mov r8d, r10d
mov r13d, dword [rcx + 8]
mov r15d, dword [rbx + 0x40]
mov r14d, dword [rbx + 0x44]
mov dword [rbp + 0x58], r10d
mov dword [rbp - 0x24], r13d
mov dword [rbp + 0x48], r10d
mov dword [rbp + 0x50], edx
lea rdi, [rbx + 0x6c]
lea r11, [rbx + 0x68]
mov eax, 7
mov ecx, dword [rbx]
cmp ecx, 0xf
jg 0x14030a897
je 0x14030a65e
cmp ecx, eax
jg 0x14030a5c4
je 0x14030a4d1
test ecx, ecx
je 0x14030a36a
sub ecx, 1
je 0x140309ff9
sub ecx, 1
je 0x14030a09e
sub ecx, 1
je 0x14030a11f
sub ecx, 1
je 0x14030a19f
sub ecx, 1
je 0x14030a22e
cmp ecx, 1
je 0x14030a2c7
mov eax, 0xfffffffe
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp r14d, eax
jae 0x14030a027
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x140309ff9
mov dword [rbx + 0x10], r15d
cmp r15b, 8
je 0x14030a03d
lea rax, str.unknown_compression_method
jmp 0x14030a4aa
test r15d, 0xe000
je 0x14030a052
lea rax, str.unknown_header_flags_set
jmp 0x14030a4aa
mov rdx, qword [rbx + 0x20]
mov ecx, r15d
shr ecx, 8
mov eax, r15d
test rdx, rdx
je 0x14030a06e
mov eax, ecx
and eax, 1
mov dword [rdx], eax
mov eax, dword [rbx + 0x10]
bt eax, 9
jae 0x14030a090
mov byte [rbp + 0x60], r15b
lea rdx, [rbp + 0x60]
mov byte [rbp + 0x61], cl
mov r8d, 2
mov ecx, dword [rbx + 0x18]
call fcn.14030e858
mov dword [rbx + 0x18], eax
xor edx, edx
mov dword [rbx], 2
mov r15d, edx
mov r14d, edx
cmp r14d, 0x20
jae 0x14030a0c8
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030a09e
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14030a0d5
mov dword [rax + 4], r15d
test dword [rbx + 0x10], 0x200
je 0x14030a113
mov eax, r15d
mov byte [rbp + 0x60], r15b
shr eax, 8
lea rdx, [rbp + 0x60]
mov byte [rbp + 0x61], al
mov r8d, 4
mov eax, r15d
shr r15d, 0x18
shr eax, 0x10
mov byte [rbp + 0x62], al
mov byte [rbp + 0x63], r15b
mov ecx, dword [rbx + 0x18]
call fcn.14030e858
mov dword [rbx + 0x18], eax
xor edx, edx
mov r15d, edx
mov dword [rbx], 3
mov r14d, edx
mov edi, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp r14d, edi
jae 0x14030a14d
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030a124
mov rdx, qword [rbx + 0x20]
mov ecx, r15d
shr ecx, 8
test rdx, rdx
je 0x14030a16a
movzx eax, r15b
mov dword [rdx + 8], eax
mov rax, qword [rbx + 0x20]
mov dword [rax + 0xc], ecx
test dword [rbx + 0x10], 0x200
je 0x14030a18f
mov byte [rbp + 0x60], r15b
lea rdx, [rbp + 0x60]
mov byte [rbp + 0x61], cl
mov r8d, 2
mov ecx, dword [rbx + 0x18]
call fcn.14030e858
mov dword [rbx + 0x18], eax
xor edx, edx
mov dword [rbx], 4
mov r15d, edx
mov r14d, edx
jmp 0x14030a1a4
mov edi, reloc.OLEAUT32.dll_SafeArrayGetDim
test dword [rbx + 0x10], 0x400
je 0x14030a21b
cmp r14d, edi
jae 0x14030a1d6
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030a1ad
mov rax, qword [rbx + 0x20]
mov dword [rbx + 0x48], r15d
test rax, rax
je 0x14030a1e7
mov dword [rax + 0x18], r15d
test dword [rbx + 0x10], 0x200
je 0x14030a213
mov byte [rbp + 0x60], r15b
lea rdx, [rbp + 0x60]
shr r15d, 8
mov r8d, 2
mov byte [rbp + 0x61], r15b
mov ecx, dword [rbx + 0x18]
call fcn.14030e858
mov dword [rbx + 0x18], eax
xor edx, edx
mov r15d, edx
mov r14d, edx
jmp 0x14030a228
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14030a228
mov qword [rax + 0x10], rdx
mov dword [rbx], 5
mov eax, dword [rbx + 0x10]
bt eax, 0xa
jae 0x14030a2be
mov ecx, dword [rbx + 0x48]
mov edi, r13d
cmp ecx, r13d
cmovbe edi, ecx
test edi, edi
je 0x14030a2b6
mov rdx, qword [rbx + 0x20]
xor r8d, r8d
test rdx, rdx
je 0x14030a28b
cmp qword [rdx + 0x10], r8
je 0x14030a28b
mov r9d, dword [rdx + 0x18]
sub r9d, ecx
mov ecx, dword [rdx + 0x1c]
lea eax, [rdi + r9]
cmp eax, ecx
jbe 0x14030a274
sub ecx, r9d
jmp 0x14030a276
mov ecx, edi
mov r8d, ecx
mov ecx, r9d
add rcx, qword [rdx + 0x10]
mov rdx, rsi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov eax, dword [rbx + 0x10]
bt eax, 9
jae 0x14030a2a2
mov ecx, dword [rbx + 0x18]
mov r8d, edi
mov rdx, rsi
call fcn.14030e858
mov dword [rbx + 0x18], eax
sub dword [rbx + 0x48], edi
sub r13d, edi
mov ecx, dword [rbx + 0x48]
mov eax, edi
add rsi, rax
mov qword [rbp - 0x20], rsi
xor edx, edx
test ecx, ecx
jne 0x14030b3a1
mov dword [rbx + 0x48], edx
mov dword [rbx], 6
test dword [rbx + 0x10], 0x800
mov rcx, qword [rbp - 0x20]
je 0x14030a34f
test r13d, r13d
je 0x14030b3a5
mov edi, edx
mov eax, edi
inc edi
mov sil, byte [rax + rcx]
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14030a30e
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x14030a30c
mov ecx, dword [rbx + 0x48]
cmp ecx, dword [rax + 0x28]
jae 0x14030a308
mov byte [rcx + rdx], sil
inc dword [rbx + 0x48]
mov rcx, qword [rbp - 0x20]
xor edx, edx
test sil, sil
je 0x14030a318
cmp edi, r13d
jb 0x14030a2df
test dword [rbx + 0x10], 0x200
je 0x14030a334
mov rdx, rcx
mov r8d, edi
mov ecx, dword [rbx + 0x18]
call fcn.14030e858
mov dword [rbx + 0x18], eax
xor edx, edx
mov rcx, qword [rbp - 0x20]
sub r13d, edi
mov eax, edi
add rcx, rax
mov qword [rbp - 0x20], rcx
test sil, sil
jne 0x14030b3a5
jmp 0x14030a35c
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14030a35c
mov qword [rax + 0x20], rdx
mov dword [rbx + 0x48], edx
mov dword [rbx], 7
jmp 0x14030a4d5
mov edx, dword [rbx + 8]
xor ecx, ecx
test edx, edx
jne 0x14030a380
mov dword [rbx], SafeArrayGetDim
xor edx, edx
jmp 0x140309f84
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp r14d, eax
jae 0x14030a3b0
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
xor ecx, ecx
jmp 0x14030a380
test dl, 2
je 0x14030a3fa
cmp r15d, 0x8b1f
jne 0x14030a3fa
mov dword [rbx + 0x18], ecx
lea rdx, [rbp + 0x60]
mov word [rbp + 0x60], r15w
mov r8d, 2
mov ecx, dword [rbx + 0x18]
call fcn.14030e858
mov dword [rbx + 0x18], eax
mov dword [rbx], 1
xor edx, edx
mov r14d, edx
mov r15d, edx
mov r8d, dword [rbp + 0x48]
mov r9, qword [rbp - 0x18]
mov r10d, dword [rbp + 0x58]
jmp 0x140309f80
mov rax, qword [rbx + 0x20]
mov dword [rbx + 0x10], ecx
test rax, rax
je 0x14030a40d
or dword [rax + 0x40], 0xffffffff
mov edx, dword [rbx + 8]
test dl, 1
je 0x14030a4ba
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 0x14030a4ba
mov eax, r15d
and al, 0xf
cmp al, 8
je 0x14030a450
lea rax, str.unknown_compression_method
jmp 0x14030a4c1
shr r15d, 4
add r14d, 0xfffffffc
mov ecx, r15d
xor edx, edx
and ecx, 0xf
add ecx, 8
cmp dword [rbx + 0x28], edx
jne 0x14030a49e
mov dword [rbx + 0x28], ecx
mov eax, 1
xor r8d, r8d
shl eax, cl
xor ecx, ecx
mov dword [rbx + 0x14], eax
call fcn.14030dce4
shr r15d, 8
not r15d
mov dword [rbx + 0x18], eax
and r15d, 2
mov dword [r12 + 0x4c], eax
or r15d, 9
mov dword [rbx], r15d
jmp 0x14030a3e1
cmp ecx, dword [rbx + 0x28]
jbe 0x14030a46b
lea rax, str.invalid_window_size
mov qword [r12 + 0x20], rax
mov dword [rbx], Compress
jmp 0x140309f84
lea rax, str.incorrect_header_check
mov qword [r12 + 0x20], rax
mov dword [rbx], Compress
jmp 0x14030a379
mov rcx, qword [rbp - 0x20]
test dword [rbx + 0x10], 0x1000
je 0x14030a55b
test r13d, r13d
je 0x14030b3a5
mov rcx, qword [rbp - 0x20]
mov edi, edx
mov eax, edi
inc edi
mov sil, byte [rax + rcx]
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14030a51c
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x14030a51a
mov ecx, dword [rbx + 0x48]
cmp ecx, dword [rax + 0x38]
jae 0x14030a516
mov byte [rcx + rdx], sil
inc dword [rbx + 0x48]
mov rcx, qword [rbp - 0x20]
xor edx, edx
test sil, sil
je 0x14030a526
cmp edi, r13d
jb 0x14030a4ed
test dword [rbx + 0x10], 0x200
je 0x14030a540
mov rdx, rcx
mov r8d, edi
mov ecx, dword [rbx + 0x18]
call fcn.14030e858
mov dword [rbx + 0x18], eax
mov rcx, qword [rbp - 0x20]
sub r13d, edi
mov eax, edi
add rcx, rax
mov qword [rbp - 0x20], rcx
test sil, sil
jne 0x14030b3a5
jmp 0x14030a568
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14030a568
mov qword [rax + 0x30], rdx
mov r8d, dword [rbp + 0x48]
lea r11, [rbx + 0x68]
mov r10d, dword [rbp + 0x58]
lea rdi, [rbx + 0x6c]
mov dword [rbx], 8
mov edx, dword [rbx + 0x10]
bt edx, 9
jae 0x14030a852
mov rsi, qword [rbp - 0x20]
xor r9d, r9d
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp r14d, eax
jae 0x14030a828
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030a592
sub ecx, 8
je 0x14030a57e
sub ecx, 1
je 0x14030a6c7
sub ecx, 1
je 0x14030a72e
sub ecx, 1
je 0x14030a75f
sub ecx, 1
je 0x14030a75f
sub ecx, 1
je 0x14030a5fd
cmp ecx, 1
jne 0x140309fe2
jmp 0x14030a658
mov ecx, r14d
and ecx, 7
shr r15d, cl
sub r14d, ecx
cmp r14d, 0x20
jae 0x14030a633
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030a609
mov eax, r15d
movzx ecx, r15w
not eax
shr eax, 0x10
cmp ecx, eax
je 0x14030a64f
lea rax, str.invalid_stored_block_lengths
jmp 0x14030a4aa
mov dword [rbx + 0x48], ecx
mov r15d, edx
mov r14d, edx
mov dword [rbx], SafeArrayLock
mov ecx, dword [rbx + 0x48]
test ecx, ecx
je 0x14030a88c
cmp ecx, r13d
mov eax, r13d
mov edi, r10d
cmovbe eax, ecx
cmp eax, r10d
cmovbe edi, eax
test edi, edi
je 0x14030b3a1
mov r8d, edi
mov rdx, rsi
mov rcx, r9
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov r10d, dword [rbp + 0x58]
lea r11, [rbx + 0x68]
mov r9, qword [rbp - 0x18]
sub r10d, edi
mov r8d, dword [rbp + 0x48]
sub r13d, edi
mov eax, edi
add rsi, rax
mov dword [rbp + 0x58], r10d
add r9, rax
mov qword [rbp - 0x20], rsi
sub dword [rbx + 0x48], edi
lea rdi, [rbx + 0x6c]
mov qword [rbp - 0x18], r9
jmp 0x14030a379
cmp r14d, 0x20
jae 0x14030a6f1
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030a6c7
mov ecx, r15d
mov eax, r15d
shl eax, 0x10
mov r8d, 0xff00
and ecx, r8d
mov r14d, edx
add ecx, eax
mov eax, r15d
shr eax, 8
and eax, r8d
shl ecx, 8
shr r15d, 0x18
add eax, ecx
add eax, r15d
mov r15d, edx
mov dword [rbx + 0x18], eax
mov dword [r12 + 0x4c], eax
mov dword [rbx], 0xa
cmp dword [rbx + 0xc], edx
je 0x14030b35e
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14030dce4
mov r8d, dword [rbp + 0x48]
lea r11, [rbx + 0x68]
mov r10d, dword [rbp + 0x58]
xor edx, edx
mov dword [rbx + 0x18], eax
mov dword [r12 + 0x4c], eax
mov dword [rbx], SafeArrayGetDim
cmp dword [rbx + 4], edx
je 0x14030a783
mov r9, qword [rbp - 0x18]
mov ecx, r14d
mov eax, 7
mov dword [rbx], DispGetParam
and ecx, eax
shr r15d, cl
sub r14d, ecx
jmp 0x140309f89
cmp r14d, 3
jae 0x14030a7ad
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030a783
mov eax, r15d
shr r15d, 1
and eax, 1
mov dword [rbx + 4], eax
mov eax, r15d
and eax, 3
je 0x14030a818
sub eax, 1
je 0x14030a7ed
sub eax, 1
je 0x14030a7e4
cmp eax, 1
jne 0x14030a81e
lea rax, str.invalid_block_type
mov qword [r12 + 0x20], rax
mov dword [rbx], Compress
jmp 0x14030a81e
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
mov dword [rbx], eax
jmp 0x14030a81e
lea rax, [0x14040b330]
mov dword [r11], 9
mov qword [rbx + 0x58], rax
lea rax, [0x14040bb60]
mov qword [rbx + 0x60], rax
mov dword [rdi], 5
mov dword [rbx], reloc.OLEAUT32.dll_SafeArrayGetLBound
jmp 0x14030a81e
mov dword [rbx], SafeArrayGetDim
shr r15d, 2
add r14d, 0xfffffffd
jmp 0x14030a883
movzx eax, word [rbx + 0x18]
cmp r15d, eax
je 0x14030a84c
lea rax, str.header_crc_mismatch
mov r9, qword [rbp - 0x18]
mov qword [r12 + 0x20], rax
mov dword [rbx], Compress
jmp 0x14030a379
mov r15d, r9d
mov r14d, r9d
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14030a86f
sar edx, 9
and edx, 1
mov dword [rax + 0x3c], edx
mov rax, qword [rbx + 0x20]
mov dword [rax + 0x40], 1
mov rsi, qword [rbp - 0x20]
xor edx, edx
mov dword [rbx + 0x18], edx
mov dword [r12 + 0x4c], edx
mov dword [rbx], SafeArrayGetDim
mov r9, qword [rbp - 0x18]
jmp 0x140309f84
mov dword [rbx], SafeArrayGetDim
jmp 0x140309f84
cmp ecx, 0x17
jg 0x14030b15a
je 0x14030b0b1
sub ecx, 0x10
je 0x14030a8e6
sub ecx, 1
je 0x14030a965
sub ecx, 1
je 0x14030aa4f
sub ecx, 1
je 0x14030ad80
sub ecx, 1
je 0x14030ad86
sub ecx, 1
je 0x14030af4b
cmp ecx, 1
jne 0x140309fe2
jmp 0x14030afa7
cmp r14d, 0xe
jae 0x14030a910
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030a8e6
mov ecx, r15d
add r14d, 0xfffffff2
shr r15d, 5
and ecx, 0x1f
mov edx, r15d
add ecx, 0x101
shr r15d, 5
and edx, 0x1f
mov eax, r15d
mov dword [rbx + 0x74], ecx
and eax, 0xf
shr r15d, 4
add eax, 4
inc edx
mov dword [rbx + 0x78], edx
mov dword [rbx + 0x70], eax
cmp ecx, 0x11e
ja 0x14030b0e1
cmp edx, 0x1e
ja 0x14030b0e1
xor edx, edx
mov dword [rbx + 0x7c], edx
lea eax, [rdx + 0x11]
mov dword [rbx], eax
mov r8d, 7
lea r9, [0x14040bb30]
mov eax, dword [rbx + 0x7c]
cmp eax, dword [rbx + 0x70]
jae 0x14030a9c9
cmp r14d, 3
jae 0x14030a9a4
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030a97a
mov eax, dword [rbx + 0x7c]
movzx ecx, r15w
and cx, r8w
shr r15d, 3
movzx eax, word [r9 + rax*2]
mov word [rbx + rax*2 + 0x88], cx
inc dword [rbx + 0x7c]
add r14d, 0xfffffffd
jmp 0x14030a972
cmp eax, 0x13
jae 0x14030a9e7
mov eax, dword [rbx + 0x7c]
movzx ecx, word [r9 + rax*2]
mov word [rbx + rcx*2 + 0x88], dx
inc dword [rbx + 0x7c]
cmp dword [rbx + 0x7c], 0x13
jb 0x14030a9ce
lea rax, [rbx + 0x548]
mov dword [r11], r8d
lea r9, [rbx + 0x80]
mov qword [rbx + 0x58], rax
xor ecx, ecx
mov qword [r9], rax
lea rax, [rbx + 0x308]
mov qword [rsp + 0x28], rax
lea rdx, [rbx + 0x88]
mov qword [rsp + 0x20], r11
lea r8d, [rcx + 0x13]
call fcn.14030ded0
xor edx, edx
mov dword [rbp + 0x50], eax
test eax, eax
je 0x14030aa42
lea rax, str.invalid_code_lengths_set
mov qword [r12 + 0x20], rax
mov dword [rbx], Compress
jmp 0x14030a3e9
mov dword [rbx + 0x7c], edx
lea r11, [rbx + 0x68]
mov dword [rbx], SafeArrayLock
mov r8d, dword [rbx + 0x7c]
mov r10d, dword [rbx + 0x78]
add r10d, dword [rbx + 0x74]
cmp r8d, r10d
jae 0x14030ac84
mov ecx, dword [r11]
mov r9d, 1
mov r8, qword [rbx + 0x58]
shl r9d, cl
dec r9d
mov eax, r15d
mov ecx, r9d
and rcx, rax
mov edx, dword [r8 + rcx*4]
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [rbp - 0x28], edx
cmp eax, r14d
jbe 0x14030aab8
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030aa77
shr edx, 0x10
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp dx, ax
jae 0x14030ab11
movzx edx, byte [rbp - 0x27]
cmp r14d, edx
jae 0x14030aaf2
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030aac9
movzx eax, word [rbp - 0x26]
mov ecx, edx
shr r15d, cl
sub r14d, edx
mov ecx, dword [rbx + 0x7c]
mov word [rbx + rcx*2 + 0x88], ax
inc dword [rbx + 0x7c]
jmp 0x14030aa4f
cmp word [rbp - 0x26], ax
jne 0x14030ab7e
movzx edx, byte [rbp - 0x27]
lea r8d, [rdx + 2]
cmp r14d, r8d
jae 0x14030ab48
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030ab1f
mov eax, dword [rbx + 0x7c]
mov ecx, edx
sub r14d, edx
shr r15d, cl
xor edx, edx
test eax, eax
je 0x14030ac4f
mov edx, r15d
add r14d, 0xfffffffe
and edx, 3
shr r15d, 2
add edx, 3
dec eax
movzx r9d, word [rbx + rax*2 + 0x88]
jmp 0x14030ac23
movzx r8d, byte [rbp - 0x27]
mov eax, SafeArrayLock
xor r9d, r9d
cmp word [rbp - 0x26], ax
jne 0x14030abd8
lea edx, [r8 + 3]
cmp r14d, edx
jae 0x14030abbe
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030ab95
mov ecx, r8d
mov eax, 0xfffffffd
shr r15d, cl
mov edx, r15d
and edx, 7
add edx, 3
shr r15d, 3
jmp 0x14030ac1d
lea edx, [r8 + 7]
cmp r14d, edx
jae 0x14030ac05
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030abdc
mov ecx, r8d
mov eax, 0xfffffff9
shr r15d, cl
mov edx, r15d
and edx, 0x7f
add edx, 0xb
shr r15d, 7
sub eax, r8d
add r14d, eax
mov ecx, dword [rbx + 0x7c]
add ecx, edx
cmp ecx, r10d
ja 0x14030ac72
mov eax, dword [rbx + 0x7c]
mov word [rbx + rax*2 + 0x88], r9w
mov r8d, dword [rbx + 0x7c]
lea r8d, [r8 + 1]
mov dword [rbx + 0x7c], r8d
add edx, 0xffffffff
jne 0x14030ac2d
jmp 0x14030aa53
mov r8d, dword [rbp + 0x48]
lea rax, str.invalid_bit_length_repeat
mov r9, qword [rbp - 0x18]
mov r10d, dword [rbp + 0x58]
mov qword [r12 + 0x20], rax
mov dword [rbx], Compress
jmp 0x140309f84
lea rax, str.invalid_bit_length_repeat
mov qword [r12 + 0x20], rax
mov dword [rbx], Compress
cmp dword [rbx], 0x1d
mov edx, 0
mov r8d, dword [rbp + 0x48]
mov r9, qword [rbp - 0x18]
mov r10d, dword [rbp + 0x58]
lea eax, [rdx + 7]
je 0x140309f89
cmp word [rbx + 0x288], dx
jne 0x14030acb6
lea rax, str.invalid_code____missing_end_of_block
jmp 0x14030a4aa
mov r8d, dword [rbx + 0x74]
lea rax, [rbx + 0x548]
lea rdi, [rbx + 0x80]
mov qword [rbx + 0x58], rax
lea rsi, [rbx + 0x308]
mov qword [rdi], rax
mov qword [rsp + 0x28], rsi
lea rdx, [rbx + 0x88]
mov r9, rdi
mov qword [rsp + 0x20], r11
mov ecx, 1
mov dword [r11], 9
call fcn.14030ded0
xor edx, edx
mov dword [rbp + 0x50], eax
test eax, eax
je 0x14030ad2b
lea rax, str.invalid_literal_lengths_set
mov rsi, qword [rbp - 0x20]
mov r8d, dword [rbp + 0x48]
mov r9, qword [rbp - 0x18]
mov r10d, dword [rbp + 0x58]
mov qword [r12 + 0x20], rax
mov dword [rbx], Compress
jmp 0x140309f7c
mov rax, qword [rdi]
lea rcx, [rbx + 0x6c]
mov r8d, dword [rbx + 0x78]
mov r9, rdi
mov qword [rbx + 0x60], rax
mov eax, dword [rbx + 0x74]
add rax, 0x44
mov dword [rcx], 6
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rcx
mov ecx, 2
lea rdx, [rbx + rax*2]
call fcn.14030ded0
xor edx, edx
mov dword [rbp + 0x50], eax
test eax, eax
je 0x14030ad74
lea rax, str.invalid_distances_set
jmp 0x14030ad0b
mov r8d, dword [rbp + 0x48]
lea rdi, [rbx + 0x6c]
mov r10d, dword [rbp + 0x58]
mov dword [rbx], reloc.OLEAUT32.dll_SafeArrayLock
cmp r13d, 6
jb 0x14030ae17
cmp r10d, 0x102
jb 0x14030ae17
mov rdx, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
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 [rbx + 0x40], r15d
mov dword [rbx + 0x44], r14d
call fcn.14030e3e4
cmp dword [rbx], 0xb
lea r11, [rbx + 0x68]
mov r9, qword [r12 + 0x10]
mov edx, 0
mov rsi, qword [r12]
mov r10d, dword [r12 + 0x18]
mov r13d, dword [r12 + 8]
mov r15d, dword [rbx + 0x40]
lea eax, [rdx + 7]
mov r14d, dword [rbx + 0x44]
mov r8d, dword [rbp + 0x48]
mov qword [rbp - 0x18], r9
mov dword [rbp + 0x58], r10d
mov qword [rbp - 0x20], rsi
jne 0x140309f89
or dword [rbx + 0x1bdc], 0xffffffff
lea r11, [rbx + 0x68]
jmp 0x140309f89
mov ecx, dword [rbx + 0x68]
mov r11, qword [rbx + 0x58]
mov rsi, qword [rbp - 0x20]
mov dword [rbx + 0x1bdc], edx
mov edx, 1
shl edx, cl
dec edx
mov eax, r15d
mov ecx, edx
and rcx, rax
mov eax, dword [r11 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [rbp - 0x28], eax
cmp ecx, r14d
jbe 0x14030ae71
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030ae31
xor edx, edx
test al, al
je 0x14030aeeb
test al, 0xf0
jne 0x14030aeeb
movzx r8d, byte [rbp - 0x27]
lea r9d, [rdx + 1]
movzx r10d, word [rbp - 0x26]
movzx ecx, al
add ecx, r8d
shl r9d, cl
lea eax, [r9 - 1]
mov ecx, r8d
and eax, r15d
shr eax, cl
add eax, r10d
mov eax, dword [r11 + rax*4]
mov ecx, eax
shr ecx, 8
movzx edx, cl
add edx, r8d
cmp edx, r14d
jbe 0x14030aed9
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030ae92
mov ecx, r8d
mov dword [rbx + 0x1bdc], r8d
shr r15d, cl
sub r14d, r8d
xor edx, edx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [rbx + 0x1bdc], ecx
sub r14d, ecx
shr r15d, cl
mov ecx, eax
shr ecx, 0x10
mov dword [rbx + 0x48], ecx
test al, al
jne 0x14030af16
mov dword [rbx], DispGetParam
jmp 0x14030a3e9
test al, 0x20
je 0x14030af2c
or dword [rbx + 0x1bdc], 0xffffffff
mov dword [rbx], SafeArrayGetDim
jmp 0x14030a3e9
test al, 0x40
je 0x14030af3c
lea rax, str.invalid_literal_length_code
jmp 0x14030aa32
movzx ecx, al
and ecx, 0xf
mov dword [rbx], reloc.OLEAUT32.dll_SafeArrayUnlock
mov dword [rbx + 0x50], ecx
mov edx, dword [rbx + 0x50]
test edx, edx
je 0x14030af98
cmp r14d, edx
jae 0x14030af7b
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030af52
mov ecx, edx
mov eax, 1
shl eax, cl
sub r14d, edx
dec eax
and eax, r15d
shr r15d, cl
add dword [rbx + 0x48], eax
add dword [rbx + 0x1bdc], edx
mov eax, dword [rbx + 0x48]
mov dword [rbx + 0x1be0], eax
mov dword [rbx], reloc.OLEAUT32.dll_SafeArrayAccessData
mov ecx, dword [rdi]
mov edx, 1
mov r11, qword [rbx + 0x60]
shl edx, cl
dec edx
mov eax, r15d
mov ecx, edx
and rcx, rax
mov eax, dword [r11 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [rbp - 0x28], eax
cmp ecx, r14d
jbe 0x14030aff6
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030afb6
test al, 0xf0
jne 0x14030b06a
movzx r8d, byte [rbp - 0x27]
mov r9d, 1
movzx r10d, word [rbp - 0x26]
movzx ecx, al
add ecx, r8d
shl r9d, cl
lea eax, [r9 - 1]
mov ecx, r8d
and eax, r15d
shr eax, cl
add eax, r10d
mov eax, dword [r11 + rax*4]
mov ecx, eax
shr ecx, 8
movzx edx, cl
add edx, r8d
cmp edx, r14d
jbe 0x14030b05a
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030b013
mov ecx, r8d
sub r14d, r8d
shr r15d, cl
add dword [rbx + 0x1bdc], r8d
mov r8d, dword [rbp + 0x48]
lea r11, [rbx + 0x68]
mov r10d, dword [rbp + 0x58]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [rbx + 0x1bdc], ecx
sub r14d, ecx
shr r15d, cl
test al, 0x40
je 0x14030b09a
lea rax, str.invalid_distance_code
jmp 0x14030a838
mov ecx, eax
mov dword [rbx], DispGetParam
shr ecx, 0x10
mov dword [rbx + 0x4c], ecx
movzx ecx, al
and ecx, 0xf
mov dword [rbx + 0x50], ecx
mov edx, dword [rbx + 0x50]
test edx, edx
je 0x14030b10a
cmp r14d, edx
jae 0x14030b0ed
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030b0b8
lea rax, str.too_many_length_or_distance_symbols
jmp 0x14030a4c1
mov ecx, edx
mov eax, 1
shl eax, cl
sub r14d, edx
dec eax
and eax, r15d
shr r15d, cl
add dword [rbx + 0x4c], eax
add dword [rbx + 0x1bdc], edx
mov dword [rbx], DispGetParam
xor edx, edx
test r10d, r10d
je 0x14030b3a1
mov eax, dword [rbx + 0x4c]
mov ecx, r8d
sub ecx, r10d
cmp eax, ecx
jbe 0x14030b301
sub eax, ecx
cmp eax, dword [rbx + 0x30]
jbe 0x14030b2dd
cmp dword [rbx + 0x1bd8], edx
je 0x14030b2dd
lea rax, str.invalid_distance_too_far_back
mov qword [r12 + 0x20], rax
mov dword [rbx], Compress
jmp 0x14030a883
sub ecx, 0x18
je 0x14030b112
sub ecx, 1
je 0x14030b2b5
sub ecx, 1
je 0x14030b19b
sub ecx, 1
je 0x14030b263
sub ecx, 1
je 0x14030b39a
sub ecx, 1
je 0x14030b383
cmp ecx, 1
jne 0x140309fe2
mov eax, 0xfffffffc
jmp 0x140309fe7
cmp dword [rbx + 8], edx
je 0x14030b25d
cmp r14d, 0x20
jae 0x14030b1ce
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030b1a4
sub r8d, r10d
add dword [r12 + 0x1c], r8d
add dword [rbx + 0x1c], r8d
test r8d, r8d
je 0x14030b210
mov ecx, dword [rbx + 0x18]
mov rdx, r9
mov eax, r8d
sub rdx, rax
xor eax, eax
cmp dword [rbx + 0x10], eax
je 0x14030b1f9
call fcn.14030e858
jmp 0x14030b1fe
call fcn.14030dce4
mov r10d, dword [rbp + 0x58]
lea r11, [rbx + 0x68]
mov dword [rbx + 0x18], eax
xor edx, edx
mov dword [r12 + 0x4c], eax
mov r8d, r10d
mov dword [rbp + 0x48], r10d
mov ecx, r15d
cmp dword [rbx + 0x10], edx
jne 0x14030b246
mov r9d, 0xff00
mov eax, r15d
shl eax, 0x10
and ecx, r9d
add ecx, eax
mov eax, r15d
shr eax, 8
and eax, r9d
shl ecx, 8
add ecx, eax
mov eax, r15d
shr eax, 0x18
add ecx, eax
cmp ecx, dword [rbx + 0x18]
je 0x14030b257
lea rax, str.incorrect_data_check
jmp 0x14030b14a
mov r15d, edx
mov r14d, edx
mov dword [rbx], reloc.OLEAUT32.dll_DispGetParam
cmp dword [rbx + 8], edx
je 0x14030b394
cmp dword [rbx + 0x10], edx
je 0x14030b394
cmp r14d, 0x20
jae 0x14030b29f
test r13d, r13d
je 0x14030b3a1
movzx eax, byte [rsi]
mov ecx, r14d
shl eax, cl
inc rsi
add r15d, eax
mov qword [rbp - 0x20], rsi
dec r13d
add r14d, 8
jmp 0x14030b275
cmp r15d, dword [rbx + 0x1c]
je 0x14030b38e
lea rax, str.incorrect_length_check
jmp 0x14030b14a
test r10d, r10d
je 0x14030b3a1
mov al, byte [rbx + 0x48]
mov byte [r9], al
inc r9
dec r10d
mov qword [rbp - 0x18], r9
mov dword [rbp + 0x58], r10d
mov dword [rbx], reloc.OLEAUT32.dll_SafeArrayLock
jmp 0x140309f84
mov ecx, dword [rbx + 0x34]
cmp eax, ecx
jbe 0x14030b2e9
sub eax, ecx
mov ecx, dword [rbx + 0x2c]
mov r8d, dword [rbx + 0x48]
sub ecx, eax
mov edx, ecx
mov r9d, r8d
add rdx, qword [rbx + 0x38]
cmp eax, r8d
cmovbe r9d, eax
jmp 0x14030b30f
mov rdx, qword [rbp - 0x18]
mov r8d, dword [rbx + 0x48]
sub rdx, rax
mov r9d, r8d
cmp r9d, r10d
mov ecx, r10d
cmovbe ecx, r9d
mov r9, qword [rbp - 0x18]
sub r10d, ecx
sub r8d, ecx
mov dword [rbp + 0x58], r10d
sub rdx, r9
mov dword [rbx + 0x48], r8d
mov al, byte [rdx + r9]
mov byte [r9], al
inc r9
add ecx, 0xffffffff
jne 0x14030b32e
mov r8d, dword [rbp + 0x48]
lea eax, [rcx + 7]
xor edx, edx
mov qword [rbp - 0x18], r9
cmp dword [rbx + 0x48], edx
jne 0x140309f89
mov dword [rbx], reloc.OLEAUT32.dll_SafeArrayLock
jmp 0x140309f89
mov qword [r12 + 0x10], r9
mov eax, 2
mov dword [r12 + 0x18], r10d
mov qword [r12], rsi
mov dword [r12 + 8], r13d
mov dword [rbx + 0x40], r15d
mov dword [rbx + 0x44], r14d
jmp 0x140309fe7
mov esi, 0xfffffffd
mov rcx, qword [rbp - 0x20]
jmp 0x14030b3a8
mov r15d, edx
mov r14d, edx
mov dword [rbx], Compress
mov esi, 1
jmp 0x14030b388
mov rcx, qword [rbp - 0x20]
mov esi, dword [rbp + 0x50]
mov rdx, qword [rbp - 0x18]
mov eax, dword [rbp + 0x58]
mov edi, dword [rbp + 0x48]
mov qword [r12 + 0x10], rdx
mov dword [r12 + 0x18], eax
mov qword [r12], rcx
mov dword [r12 + 8], r13d
mov dword [rbx + 0x44], r14d
xor r14d, r14d
mov dword [rbx + 0x40], r15d
cmp dword [rbx + 0x2c], r14d
jne 0x14030b3e2
cmp dword [rbx], 0x1a
jge 0x14030b3fb
cmp edi, dword [r12 + 0x18]
je 0x14030b3fb
mov edx, edi
mov rcx, r12
call fcn.14030b6ec
test eax, eax
je 0x14030b3fb
mov dword [rbx], reloc.Cabinet.dll_CreateCompressor
jmp 0x14030b191
sub edi, dword [r12 + 0x18]
mov r9d, dword [rbp - 0x24]
sub r9d, dword [r12 + 8]
add dword [r12 + 0xc], r9d
add dword [r12 + 0x1c], edi
add dword [rbx + 0x1c], edi
mov dword [rbp - 0x24], r9d
cmp dword [rbx + 8], r14d
je 0x14030b452
test edi, edi
je 0x14030b452
mov rdx, qword [r12 + 0x10]
mov r8d, edi
mov ecx, dword [rbx + 0x18]
mov eax, edi
sub rdx, rax
cmp dword [rbx + 0x10], r14d
je 0x14030b441
call fcn.14030e858
jmp 0x14030b446
call fcn.14030dce4
mov r9d, dword [rbp - 0x24]
mov dword [rbx + 0x18], eax
mov dword [r12 + 0x4c], eax
mov eax, dword [rbx + 4]
mov edx, 0x80
neg eax
sbb ecx, ecx
and ecx, 0x40
cmp dword [rbx], 0xb
cmovne edx, r14d
cmp dword [rbx], 0x13
je 0x14030b475
cmp dword [rbx], 0xe
mov r8d, r14d
jne 0x14030b47b
mov r8d, 0x100
mov eax, dword [rbx + 0x44]
add eax, r8d
add eax, edx
add eax, ecx
mov dword [r12 + 0x48], eax
test r9d, r9d
jne 0x14030b49b
test edi, edi
jne 0x14030b49b
test esi, esi
lea eax, [rdi - 5]
cmove esi, eax
mov eax, esi
jmp 0x140309fe7