Function at 0x140123380
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 edi, edx
mov r12, rcx
call fcn.140350114
xor ecx, ecx
test eax, eax
jne case.default.0x140123454
mov r9, qword [r12 + 0x10]
mov qword [rbp - 8], r9
test r9, r9
je case.default.0x140123454
mov r15, qword [r12]
mov qword [rbp - 0x10], r15
test r15, r15
jne 0x1401233d9
cmp dword [r12 + 8], ecx
jne case.default.0x140123454
mov rbx, qword [r12 + 0x28]
cmp dword [rbx + 8], 0x3f3f
jne 0x1401233ff
mov dword [rbx + 8], 0x3f40
mov r9, qword [r12 + 0x10]
mov r15, qword [r12]
mov qword [rbp - 8], r9
mov qword [rbp - 0x10], r15
mov r10d, dword [r12 + 0x18]
mov edx, r10d
mov r13d, dword [r12 + 8]
mov r14d, dword [rbx + 0x48]
mov esi, dword [rbx + 0x4c]
mov dword [rbp + 0x58], edx
mov dword [rbp - 0x14], r13d
mov dword [rbp + 0x50], ecx
mov dword [rbp - 0x20], r10d
lea r11, [rbx + 0x70]
lea r8, [rbx + 0x74]
lea rcx, [0x140000000]
mov eax, dword [rbx + 8]
add eax, 0xffffc0cc
cmp eax, 0x1e
ja case.default.0x140123454
cdqe
mov ecx, dword [rcx + rax*4 + 0x124930]
lea rax, [0x140000000]
add rcx, rax
jmp rcx
mov edx, dword [rbx + 0x10]
xor ecx, ecx
test edx, edx
jne 0x14012346f
mov dword [rbx + 8], 0x3f40
mov edx, dword [rbp + 0x58]
jmp 0x140123429
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp esi, eax
jae 0x14012349d
test r13d, r13d
je 0x1401247d3
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
xor ecx, ecx
jmp 0x14012346f
test dl, 2
je 0x1401234f6
cmp r14d, 0x8b1f
jne 0x1401234f6
cmp dword [rbx + 0x30], ecx
jne 0x1401234b7
mov dword [rbx + 0x30], SafeArrayUnlock
mov dword [rbx + 0x20], ecx
lea rdx, [rbp - 0x1c]
xor ecx, ecx
mov word [rbp - 0x1c], 0x8b1f
mov r8d, 2
call fcn.140353dd0
xor ecx, ecx
mov dword [rbx + 0x20], eax
mov r14d, ecx
mov dword [rbx + 8], 0x3f35
mov esi, ecx
mov edx, dword [rbp + 0x58]
lea r11, [rbx + 0x70]
mov r10d, dword [rbp - 0x20]
lea r8, [rbx + 0x74]
jmp 0x14012477b
mov rax, qword [rbx + 0x28]
mov dword [rbx + 0x18], ecx
test rax, rax
je 0x140123509
or dword [rax + 0x40], 0xffffffff
mov edx, dword [rbx + 0x10]
test dl, 1
je 0x1401235be
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 0x1401235be
mov eax, r14d
and al, 0xf
cmp al, 8
je 0x140123550
lea rax, str.unknown_compression_method
jmp 0x1401235c5
mov eax, dword [rbx + 0x30]
add esi, 0xfffffffc
shr r14d, 4
xor edx, edx
mov ecx, r14d
and ecx, 0xf
add ecx, 8
test eax, eax
jne 0x14012356e
mov dword [rbx + 0x30], ecx
mov eax, ecx
cmp ecx, 0xf
ja 0x1401235b5
cmp ecx, eax
ja 0x1401235b5
mov eax, 1
xor r8d, r8d
shl eax, cl
xor ecx, ecx
mov dword [rbx + 0x1c], eax
call sym.MsSense.exe_adler32_z
shr r14d, 8
not r14d
mov dword [rbx + 0x20], eax
and r14d, 2
mov dword [r12 + 0x4c], eax
or r14d, 0x3f3d
xor eax, eax
mov dword [rbx + 8], r14d
mov r14d, eax
mov esi, eax
jmp 0x1401234e2
lea rax, str.invalid_window_size
jmp 0x1401235c5
lea rax, str.incorrect_header_check
mov qword [r12 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x14012346a
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp esi, eax
jae 0x140123602
test r13d, r13d
je 0x1401247ca
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp case.0x140123454.16181
mov dword [rbx + 0x18], r14d
cmp r14b, 8
je 0x140123624
lea rax, str.unknown_compression_method
mov qword [r12 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x140123429
test r14d, 0xe000
je 0x140123636
lea rax, str.unknown_header_flags_set
jmp 0x140123613
mov rdx, qword [rbx + 0x28]
mov ecx, r14d
shr ecx, 8
xor r9d, r9d
mov eax, r14d
test rdx, rdx
je 0x140123655
mov eax, ecx
and eax, 1
mov dword [rdx], eax
mov eax, dword [rbx + 0x18]
bt eax, 9
jae 0x140123680
test byte [rbx + 0x10], 4
je 0x140123680
mov byte [rbp - 0x1b], cl
lea rdx, [rbp - 0x1c]
mov ecx, dword [rbx + 0x20]
mov r8d, 2
mov byte [rbp - 0x1c], r14b
call fcn.140353dd0
mov dword [rbx + 0x20], eax
xor r9d, r9d
mov r14d, r9d
mov dword [rbx + 8], 0x3f36
mov esi, r9d
jmp 0x140123692
xor r9d, r9d
cmp esi, 0x20
jae 0x1401236ba
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140123692
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x1401236c7
mov dword [rax + 4], r14d
test dword [rbx + 0x18], 0x200
je 0x14012370c
test byte [rbx + 0x10], 4
je 0x14012370c
mov ecx, dword [rbx + 0x20]
lea rdx, [rbp - 0x1c]
mov eax, r14d
mov byte [rbp - 0x1c], r14b
shr eax, 8
mov r8d, 4
mov byte [rbp - 0x1b], al
mov eax, r14d
shr eax, 0x10
shr r14d, 0x18
mov byte [rbp - 0x1a], al
mov byte [rbp - 0x19], r14b
call fcn.140353dd0
mov dword [rbx + 0x20], eax
xor r9d, r9d
mov r14d, r9d
mov dword [rbx + 8], 0x3f37
mov esi, r9d
jmp 0x14012371e
xor r9d, r9d
mov edi, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp esi, edi
jae 0x14012374a
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140123723
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x140123769
movzx eax, r14b
mov dword [rcx + 8], eax
mov ecx, r14d
mov rax, qword [rbx + 0x28]
shr ecx, 8
mov dword [rax + 0xc], ecx
jmp 0x14012376f
mov ecx, r14d
shr ecx, 8
test dword [rbx + 0x18], 0x200
je 0x14012379d
test byte [rbx + 0x10], 4
je 0x14012379d
mov byte [rbp - 0x1b], cl
lea rdx, [rbp - 0x1c]
mov ecx, dword [rbx + 0x20]
mov r8d, 2
mov byte [rbp - 0x1c], r14b
call fcn.140353dd0
mov dword [rbx + 0x20], eax
xor r9d, r9d
mov r14d, r9d
mov dword [rbx + 8], 0x3f38
mov esi, r9d
jmp 0x1401237b3
xor r9d, r9d
lea edi, [r9 + 0x10]
test dword [rbx + 0x18], 0x400
je 0x14012382f
cmp esi, edi
jae 0x1401237e3
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x1401237bc
mov rax, qword [rbx + 0x28]
mov dword [rbx + 0x50], r14d
test rax, rax
je 0x1401237f4
mov dword [rax + 0x18], r14d
test dword [rbx + 0x18], 0x200
je 0x140123827
test byte [rbx + 0x10], 4
je 0x140123827
mov ecx, dword [rbx + 0x20]
lea rdx, [rbp - 0x1c]
mov byte [rbp - 0x1c], r14b
mov r8d, 2
shr r14d, 8
mov byte [rbp - 0x1b], r14b
call fcn.140353dd0
mov dword [rbx + 0x20], eax
xor r9d, r9d
mov r14d, r9d
mov esi, r9d
jmp 0x14012383c
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x14012383c
mov qword [rax + 0x10], r9
mov dword [rbx + 8], 0x3f39
jmp 0x140123848
xor r9d, r9d
mov ecx, dword [rbx + 0x18]
bt ecx, 0xa
jae 0x1401238e4
mov eax, dword [rbx + 0x50]
mov edi, r13d
cmp eax, r13d
cmovbe edi, eax
test edi, edi
je 0x1401238dc
mov rdx, qword [rbx + 0x28]
mov r15d, eax
test rdx, rdx
je 0x1401238aa
cmp qword [rdx + 0x10], r9
je 0x1401238aa
mov r9d, dword [rdx + 0x18]
mov ecx, dword [rdx + 0x1c]
sub r9d, eax
lea eax, [rdi + r9]
cmp eax, ecx
jbe 0x14012388e
sub ecx, r9d
jmp 0x140123890
mov ecx, edi
mov r8d, ecx
mov ecx, r9d
add rcx, qword [rdx + 0x10]
mov rdx, qword [rbp - 0x10]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov ecx, dword [rbx + 0x18]
mov r15d, dword [rbx + 0x50]
bt ecx, 9
jae 0x1401238c8
test byte [rbx + 0x10], 4
je 0x1401238c8
mov rdx, qword [rbp - 0x10]
mov ecx, dword [rbx + 0x20]
mov r8d, edi
call sym.MsSense.exe_crc32_z
mov dword [rbx + 0x20], eax
mov eax, edi
sub r13d, edi
add qword [rbp - 0x10], rax
mov eax, r15d
sub eax, edi
mov dword [rbx + 0x50], eax
xor r9d, r9d
test eax, eax
jne 0x1401247d6
mov dword [rbx + 0x50], r9d
mov dword [rbx + 8], 0x3f3a
jmp 0x1401238f4
xor r9d, r9d
test dword [rbx + 0x18], 0x800
je 0x14012397b
test r13d, r13d
je 0x1401247d6
mov rcx, qword [rbp - 0x10]
mov edi, r9d
mov eax, edi
inc edi
mov r15b, byte [rax + rcx]
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x14012393a
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x14012393a
mov ecx, dword [rbx + 0x50]
cmp ecx, dword [rax + 0x28]
jae 0x140123936
mov byte [rcx + rdx], r15b
inc dword [rbx + 0x50]
mov rcx, qword [rbp - 0x10]
test r15b, r15b
je 0x140123944
cmp edi, r13d
jb 0x14012390d
test dword [rbx + 0x18], 0x200
je 0x140123967
test byte [rbx + 0x10], 4
je 0x140123967
mov rdx, rcx
mov r8d, edi
mov ecx, dword [rbx + 0x20]
call sym.MsSense.exe_crc32_z
mov dword [rbx + 0x20], eax
xor r9d, r9d
mov eax, edi
sub r13d, edi
add qword [rbp - 0x10], rax
test r15b, r15b
jne 0x1401247d6
jmp 0x140123988
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x140123988
mov qword [rax + 0x20], r9
mov dword [rbx + 0x50], r9d
mov dword [rbx + 8], 0x3f3b
jmp 0x140123998
xor r9d, r9d
test dword [rbx + 0x18], 0x1000
je 0x140123a1f
test r13d, r13d
je 0x1401247d6
mov rcx, qword [rbp - 0x10]
mov edi, r9d
mov eax, edi
inc edi
mov r15b, byte [rax + rcx]
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x1401239de
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x1401239de
mov ecx, dword [rbx + 0x50]
cmp ecx, dword [rax + 0x38]
jae 0x1401239da
mov byte [rcx + rdx], r15b
inc dword [rbx + 0x50]
mov rcx, qword [rbp - 0x10]
test r15b, r15b
je 0x1401239e8
cmp edi, r13d
jb 0x1401239b1
test dword [rbx + 0x18], 0x200
je 0x140123a0b
test byte [rbx + 0x10], 4
je 0x140123a0b
mov rdx, rcx
mov r8d, edi
mov ecx, dword [rbx + 0x20]
call sym.MsSense.exe_crc32_z
mov dword [rbx + 0x20], eax
xor r9d, r9d
mov eax, edi
sub r13d, edi
add qword [rbp - 0x10], rax
test r15b, r15b
jne 0x1401247d6
jmp 0x140123a2c
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x140123a2c
mov qword [rax + 0x30], r9
mov r10d, dword [rbp - 0x20]
lea r11, [rbx + 0x70]
mov edi, dword [rbp + 0x48]
lea r8, [rbx + 0x74]
mov dword [rbx + 8], 0x3f3c
jmp 0x140123a47
xor r9d, r9d
mov edx, dword [rbx + 0x18]
bt edx, 9
jae 0x140123aa4
mov r15, qword [rbp - 0x10]
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp esi, eax
jae 0x140123a80
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140123a54
test byte [rbx + 0x10], 4
je 0x140123a9e
movzx eax, word [rbx + 0x20]
cmp r14d, eax
je 0x140123a9e
lea rax, str.header_crc_mismatch
mov edx, dword [rbp + 0x58]
jmp 0x14012476f
mov r14d, r9d
mov esi, r9d
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x140123ac1
sar edx, 9
and edx, 1
mov dword [rax + 0x3c], edx
mov rax, qword [rbx + 0x28]
mov dword [rax + 0x40], 1
mov r15, qword [rbp - 0x10]
mov edx, dword [rbp + 0x58]
mov dword [rbx + 0x20], r9d
mov dword [r12 + 0x4c], r9d
mov dword [rbx + 8], 0x3f3f
jmp 0x14012477b
xor edx, edx
cmp esi, 0x20
jae 0x140123b07
test r13d, r13d
je 0x1401247d3
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140123adf
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 [rbx + 0x20], eax
mov dword [r12 + 0x4c], eax
mov dword [rbx + 8], 0x3f3e
jmp 0x140123b48
xor edx, edx
cmp dword [rbx + 0x14], edx
je 0x140124784
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call sym.MsSense.exe_adler32_z
mov edx, dword [rbp + 0x58]
lea r11, [rbx + 0x70]
mov r10d, dword [rbp - 0x20]
lea r8, [rbx + 0x74]
mov dword [rbx + 0x20], eax
mov dword [r12 + 0x4c], eax
mov dword [rbx + 8], 0x3f3f
lea eax, [rdi - 5]
cmp eax, 1
jbe 0x1401247d3
xor r9d, r9d
cmp dword [rbx + 0xc], r9d
je 0x140123ba6
mov ecx, esi
mov dword [rbx + 8], 0x3f4e
and ecx, 7
shr r14d, cl
sub esi, ecx
jmp 0x14012477b
cmp esi, 3
jae 0x140123bce
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140123ba6
mov eax, r14d
shr r14d, 1
and eax, 1
mov dword [rbx + 0xc], eax
mov eax, r14d
and eax, 3
je 0x140123c4b
sub eax, 1
je 0x140123c0f
sub eax, 1
je 0x140123c06
cmp eax, 1
jne 0x140123c52
lea rax, str.invalid_block_type
mov qword [r12 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x140123c52
mov dword [rbx + 8], 0x3f44
jmp 0x140123c52
mov dword [r11], 9
lea rax, [0x1404296f0]
mov qword [rbx + 0x60], rax
lea rax, [0x140429f20]
mov qword [rbx + 0x68], rax
mov dword [r8], 5
mov dword [rbx + 8], 0x3f47
cmp edi, 6
jne 0x140123c52
shr r14d, 2
add esi, 0xfffffffd
jmp 0x1401247d6
mov dword [rbx + 8], 0x3f41
shr r14d, 2
add esi, 0xfffffffd
jmp 0x14012477b
mov ecx, esi
and ecx, 7
shr r14d, cl
sub esi, ecx
cmp esi, 0x20
jae 0x140123c90
test r13d, r13d
je 0x1401247d3
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140123c68
mov eax, r14d
movzx ecx, r14w
not eax
shr eax, 0x10
cmp ecx, eax
je 0x140123cac
lea rax, str.invalid_stored_block_lengths
jmp 0x140123613
xor eax, eax
mov dword [rbx + 0x50], ecx
mov dword [rbx + 8], 0x3f42
mov r14d, eax
mov esi, eax
cmp edi, 6
je 0x1401247d3
mov dword [rbx + 8], 0x3f43
mov ecx, dword [rbx + 0x50]
test ecx, ecx
je 0x140123d28
cmp ecx, r13d
mov eax, r13d
mov edi, r10d
cmovbe eax, ecx
cmp eax, r10d
cmovbe edi, eax
test edi, edi
je 0x1401247d3
mov r8d, edi
mov rdx, r15
mov rcx, r9
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov r9, qword [rbp - 8]
sub r13d, edi
mov r10d, dword [rbp - 0x20]
mov edx, dword [rbp + 0x58]
sub r10d, edi
mov eax, edi
add r15, rax
add r9, rax
sub dword [rbx + 0x50], edi
mov edi, dword [rbp + 0x48]
mov qword [rbp - 0x10], r15
mov qword [rbp - 8], r9
jmp 0x14012341d
mov dword [rbx + 8], 0x3f3f
jmp 0x140123429
cmp esi, 0xe
jae 0x140123d5c
test r13d, r13d
je 0x1401247d3
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp case.0x140123454.16196
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 [rbx + 0x7c], ecx
and eax, 0xf
shr r14d, 4
add eax, 4
inc edx
mov dword [rbx + 0x80], edx
mov dword [rbx + 0x78], eax
cmp ecx, 0x11e
ja 0x140123db4
cmp edx, 0x1e
ja 0x140123db4
xor r9d, r9d
mov dword [rbx + 8], 0x3f45
mov dword [rbx + 0x84], r9d
jmp 0x140123dc3
lea rax, str.too_many_length_or_distance_symbols
jmp 0x1401235c5
xor r9d, r9d
mov edx, 7
lea r8, [0x140000000]
mov eax, dword [rbx + 0x84]
cmp eax, dword [rbx + 0x78]
jae 0x140123e2f
cmp esi, 3
jae 0x140123e02
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140123dda
mov eax, dword [rbx + 0x84]
movzx ecx, r14w
and cx, dx
shr r14d, 3
movzx eax, word [r8 + rax*2 + 0x429ef0]
mov word [rbx + rax*2 + 0x90], cx
inc dword [rbx + 0x84]
add esi, 0xfffffffd
jmp 0x140123dcf
cmp eax, 0x13
jae 0x140123e5b
mov eax, dword [rbx + 0x84]
movzx eax, word [r8 + rax*2 + 0x429ef0]
mov word [rbx + rax*2 + 0x90], r9w
inc dword [rbx + 0x84]
cmp dword [rbx + 0x84], 0x13
jb 0x140123e34
lea rax, [rbx + 0x550]
mov dword [r11], edx
lea r9, [rbx + 0x88]
mov qword [rbx + 0x60], rax
xor ecx, ecx
mov qword [r9], rax
lea rax, [rbx + 0x310]
mov qword [rsp + 0x28], rax
lea rdx, [rbx + 0x90]
mov qword [rsp + 0x20], r11
lea r8d, [rcx + 0x13]
call fcn.140353840
xor ecx, ecx
mov dword [rbp + 0x50], eax
lea r11, [rbx + 0x70]
test eax, eax
je 0x140123eba
lea rax, str.invalid_code_lengths_set
mov r10d, dword [rbp - 0x20]
lea r8, [rbx + 0x74]
mov edx, dword [rbp + 0x58]
jmp 0x14012476f
mov dword [rbx + 0x84], ecx
mov dword [rbx + 8], 0x3f46
mov r8d, dword [rbx + 0x84]
mov r10d, dword [rbx + 0x80]
add r10d, dword [rbx + 0x7c]
cmp r8d, r10d
jae 0x1401240bc
mov ecx, dword [r11]
mov r9d, 1
mov r8, qword [rbx + 0x60]
shl r9d, cl
dec r9d
mov eax, r14d
mov ecx, r9d
and rcx, rax
mov edx, dword [r8 + rcx*4]
mov eax, edx
shr eax, 8
movzx ecx, al
mov dword [rbp - 0x18], edx
cmp ecx, esi
jbe 0x140123f34
test r13d, r13d
je 0x1401247d3
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140123ef5
shr edx, 0x10
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp dx, ax
jae 0x140123f5f
mov eax, dword [rbx + 0x84]
sub esi, ecx
shr r14d, cl
mov word [rbx + rax*2 + 0x90], dx
inc dword [rbx + 0x84]
jmp case.0x140123454.16198
jne 0x140123fc9
movzx edx, byte [rbp - 0x17]
xor r9d, r9d
lea r8d, [rdx + 2]
cmp esi, r8d
jae 0x140123f94
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140123f6c
mov eax, dword [rbx + 0x84]
mov ecx, edx
shr r14d, cl
sub esi, edx
test eax, eax
je 0x14012409d
mov edx, r14d
add esi, 0xfffffffe
and edx, 3
shr r14d, 2
add edx, 3
dec eax
movzx r9d, word [rbx + rax*2 + 0x90]
jmp 0x140124065
movzx r8d, byte [rbp - 0x17]
xor r9d, r9d
cmp word [rbp - 0x16], 0x11
jne 0x14012401d
lea edx, [r8 + 3]
cmp esi, edx
jae 0x140124003
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140123fdc
mov ecx, r8d
mov eax, 0xfffffffd
shr r14d, cl
mov edx, r14d
and edx, 7
add edx, 3
shr r14d, 3
jmp 0x140124060
lea edx, [r8 + 7]
cmp esi, edx
jae 0x140124048
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140124021
mov ecx, r8d
mov eax, 0xfffffff9
shr r14d, cl
mov edx, r14d
and edx, 0x7f
add edx, 0xb
shr r14d, 7
sub eax, r8d
add esi, eax
mov ecx, dword [rbx + 0x84]
add ecx, edx
cmp ecx, r10d
ja 0x1401240a9
mov eax, dword [rbx + 0x84]
mov word [rbx + rax*2 + 0x90], r9w
mov r8d, dword [rbx + 0x84]
lea r8d, [r8 + 1]
mov dword [rbx + 0x84], r8d
add edx, 0xffffffff
jne 0x140124072
jmp 0x140123ece
lea rax, str.invalid_bit_length_repeat
jmp 0x140123eaa
lea rax, str.invalid_bit_length_repeat
mov qword [r12 + 0x20], rax
mov dword [rbx + 8], 0x3f51
cmp dword [rbx + 8], 0x3f51
lea r8, [rbx + 0x74]
mov edx, dword [rbp + 0x58]
lea rcx, [0x140000000]
mov r9, qword [rbp - 8]
mov r10d, dword [rbp - 0x20]
je 0x140123430
xor eax, eax
cmp word [rbx + 0x290], ax
jne 0x140124102
lea rax, str.invalid_code____missing_end_of_block
mov qword [r12 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x140123425
mov r8d, dword [rbx + 0x7c]
lea rax, [rbx + 0x550]
lea rdi, [rbx + 0x88]
mov qword [rbx + 0x60], rax
lea r15, [rbx + 0x310]
mov qword [rdi], rax
mov qword [rsp + 0x28], r15
lea rdx, [rbx + 0x90]
mov r9, rdi
mov qword [rsp + 0x20], r11
mov ecx, 1
mov dword [r11], 9
call fcn.140353840
mov dword [rbp + 0x50], eax
test eax, eax
je 0x140124165
mov edi, dword [rbp + 0x48]
lea rax, str.invalid_literal_lengths_set
mov r15, qword [rbp - 0x10]
lea r11, [rbx + 0x70]
jmp 0x140123eaa
mov rax, qword [rdi]
lea rcx, [rbx + 0x74]
mov r8d, dword [rbx + 0x80]
mov r9, rdi
mov qword [rbx + 0x68], rax
mov eax, dword [rbx + 0x7c]
add rax, 0x48
mov dword [rcx], 6
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rcx
mov ecx, 2
lea rdx, [rbx + rax*2]
call fcn.140353840
mov edi, dword [rbp + 0x48]
xor r9d, r9d
mov dword [rbp + 0x50], eax
mov r15d, eax
test eax, eax
je 0x1401241b8
lea rax, str.invalid_distances_set
jmp 0x140124158
mov dword [rbx + 8], 0x3f47
cmp edi, 6
je 0x1401247da
mov edx, dword [rbp + 0x58]
mov r10d, dword [rbp - 0x20]
mov dword [rbx + 8], 0x3f48
cmp r13d, 6
jb 0x140124264
cmp r10d, 0x102
jb 0x140124264
mov rcx, qword [rbp - 8]
mov rax, qword [rbp - 0x10]
mov qword [r12 + 0x10], rcx
mov rcx, r12
mov dword [r12 + 0x18], r10d
mov qword [r12], rax
mov dword [r12 + 8], r13d
mov dword [rbx + 0x48], r14d
mov dword [rbx + 0x4c], esi
call fcn.14010b100
cmp dword [rbx + 8], 0x3f3f
lea r11, [rbx + 0x70]
mov r9, qword [r12 + 0x10]
lea r8, [rbx + 0x74]
mov r15, qword [r12]
lea rcx, [0x140000000]
mov r10d, dword [r12 + 0x18]
mov r13d, dword [r12 + 8]
mov r14d, dword [rbx + 0x48]
mov esi, dword [rbx + 0x4c]
mov edx, dword [rbp + 0x58]
mov qword [rbp - 8], r9
mov dword [rbp - 0x20], r10d
mov qword [rbp - 0x10], r15
jne 0x140123430
or dword [rbx + 0x1be4], 0xffffffff
jmp 0x140123421
mov ecx, dword [rbx + 0x70]
xor r9d, r9d
mov r11, qword [rbx + 0x60]
mov r15, qword [rbp - 0x10]
mov dword [rbx + 0x1be4], r9d
lea edx, [r9 + 1]
shl edx, cl
dec edx
mov eax, r14d
mov ecx, edx
and rcx, rax
mov eax, dword [r11 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [rbp - 0x18], eax
cmp ecx, esi
jbe 0x1401242bf
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140124281
test al, al
je 0x140124338
test al, 0xf0
jne 0x140124338
movzx r8d, byte [rbp - 0x17]
mov r9d, 1
movzx r10d, word [rbp - 0x16]
movzx ecx, al
add ecx, r8d
shl r9d, cl
lea eax, [r9 - 1]
mov ecx, r8d
and eax, r14d
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, esi
jbe 0x140124325
test r13d, r13d
je 0x1401247d3
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x1401242e0
mov ecx, r8d
mov dword [rbx + 0x1be4], r8d
shr r14d, cl
sub esi, r8d
xor r9d, r9d
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [rbx + 0x1be4], ecx
sub esi, ecx
shr r14d, cl
mov ecx, eax
shr ecx, 0x10
mov dword [rbx + 0x50], ecx
test al, al
jne 0x140124363
mov dword [rbx + 8], 0x3f4d
jmp 0x1401234e2
test al, 0x20
je 0x14012437a
or dword [rbx + 0x1be4], 0xffffffff
mov dword [rbx + 8], 0x3f3f
jmp 0x1401234e2
lea r8, [rbx + 0x74]
test al, 0x40
je 0x140124399
mov edx, dword [rbp + 0x58]
lea rax, str.invalid_literal_length_code
mov r10d, dword [rbp - 0x20]
lea r11, [rbx + 0x70]
jmp 0x14012476f
movzx ecx, al
and ecx, 0xf
mov dword [rbx + 8], 0x3f49
mov dword [rbx + 0x58], ecx
jmp 0x1401243ae
xor r9d, r9d
mov edx, dword [rbx + 0x58]
test edx, edx
je 0x1401243f8
cmp esi, edx
jae 0x1401243dc
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x1401243b5
mov ecx, edx
mov eax, 1
shl eax, cl
sub esi, edx
dec eax
and eax, r14d
shr r14d, 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
jmp 0x14012440d
xor r9d, r9d
mov ecx, dword [r8]
mov edx, 1
mov r11, qword [rbx + 0x68]
shl edx, cl
dec edx
mov eax, r14d
mov ecx, edx
and rcx, rax
mov eax, dword [r11 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [rbp - 0x18], eax
cmp ecx, esi
jbe 0x14012445b
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x14012441d
test al, 0xf0
jne 0x1401244d1
movzx r8d, byte [rbp - 0x17]
mov r9d, 1
movzx r10d, word [rbp - 0x16]
movzx ecx, al
add ecx, r8d
shl r9d, cl
lea eax, [r9 - 1]
mov ecx, r8d
and eax, r14d
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, esi
jbe 0x1401244bd
test r13d, r13d
je 0x1401247d3
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x140124478
mov ecx, r8d
sub esi, r8d
shr r14d, cl
add dword [rbx + 0x1be4], r8d
lea r8, [rbx + 0x74]
mov r10d, dword [rbp - 0x20]
lea r11, [rbx + 0x70]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [rbx + 0x1be4], ecx
sub esi, ecx
shr r14d, cl
test al, 0x40
je 0x1401244fc
lea rax, str.invalid_distance_code
jmp 0x140123a96
mov ecx, eax
mov dword [rbx + 8], 0x3f4b
shr ecx, 0x10
mov dword [rbx + 0x54], ecx
movzx ecx, al
and ecx, 0xf
mov dword [rbx + 0x58], ecx
mov edx, dword [rbx + 0x58]
xor r9d, r9d
test edx, edx
je 0x140124561
cmp esi, edx
jae 0x140124545
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x14012451e
mov ecx, edx
mov eax, 1
shl eax, cl
sub esi, edx
dec eax
and eax, r14d
shr r14d, cl
add dword [rbx + 0x54], eax
add dword [rbx + 0x1be4], edx
mov edx, dword [rbp + 0x58]
mov dword [rbx + 8], 0x3f4c
jmp 0x140124570
xor r9d, r9d
test r10d, r10d
je 0x1401247d6
mov eax, dword [rbx + 0x54]
mov ecx, edx
sub ecx, r10d
cmp eax, ecx
jbe 0x1401245c5
sub eax, ecx
cmp eax, dword [rbx + 0x38]
jbe 0x1401245a1
cmp dword [rbx + 0x1be0], r9d
je 0x1401245a1
lea rax, str.invalid_distance_too_far_back
jmp 0x14012476f
mov ecx, dword [rbx + 0x3c]
cmp eax, ecx
jbe 0x1401245ad
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 0x1401245d3
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 - 0x20], r10d
sub rdx, r9
mov dword [rbx + 0x50], r8d
mov al, byte [rdx + r9]
mov byte [r9], al
inc r9
add ecx, 0xffffffff
jne 0x1401245f2
mov edx, dword [rbp + 0x58]
lea r8, [rbx + 0x74]
xor eax, eax
mov qword [rbp - 8], r9
lea rcx, [0x140000000]
cmp dword [rbx + 0x50], eax
jne 0x140123430
mov dword [rbx + 8], 0x3f48
jmp 0x140123425
test r10d, r10d
je 0x1401247d3
mov al, byte [rbx + 0x50]
mov byte [r9], al
inc r9
dec r10d
mov qword [rbp - 8], r9
mov dword [rbp - 0x20], r10d
mov dword [rbx + 8], 0x3f48
jmp 0x140123429
xor ecx, ecx
cmp dword [rbx + 0x10], ecx
je 0x140124724
cmp esi, 0x20
jae 0x140124688
test r13d, r13d
je 0x1401247d3
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
xor ecx, ecx
jmp 0x14012465e
sub edx, r10d
add dword [r12 + 0x1c], edx
add dword [rbx + 0x24], edx
mov eax, dword [rbx + 0x10]
test al, 4
je 0x1401246d6
test edx, edx
je 0x1401246d6
mov ecx, dword [rbx + 0x20]
xor eax, eax
mov r8d, edx
mov rdx, r9
sub rdx, r8
cmp dword [rbx + 0x18], eax
je 0x1401246b8
call sym.MsSense.exe_crc32_z
jmp 0x1401246bd
call sym.MsSense.exe_adler32_z
mov r10d, dword [rbp - 0x20]
lea r11, [rbx + 0x70]
mov dword [rbx + 0x20], eax
lea r8, [rbx + 0x74]
mov dword [r12 + 0x4c], eax
xor ecx, ecx
mov eax, dword [rbx + 0x10]
mov edx, r10d
mov dword [rbp + 0x58], edx
test al, 4
je 0x14012471d
cmp dword [rbx + 0x18], ecx
mov ecx, r14d
jne 0x14012470f
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 [rbx + 0x20]
je 0x14012471d
lea rax, str.incorrect_data_check
jmp 0x14012476f
xor eax, eax
mov r14d, eax
mov esi, eax
mov dword [rbx + 8], 0x3f4f
xor r9d, r9d
cmp dword [rbx + 0x10], r9d
je 0x1401247ae
cmp dword [rbx + 0x18], r9d
je 0x1401247ae
cmp esi, 0x20
jae 0x140124762
test r13d, r13d
je 0x1401247d6
movzx eax, byte [r15]
mov ecx, esi
shl eax, cl
inc r15
add r14d, eax
mov qword [rbp - 0x10], r15
dec r13d
add esi, 8
jmp 0x14012473a
cmp r14d, dword [rbx + 0x24]
je 0x1401247a8
lea rax, str.incorrect_length_check
mov qword [r12 + 0x20], rax
mov dword [rbx + 8], 0x3f51
mov r9, qword [rbp - 8]
jmp 0x140123429
mov qword [r12 + 0x10], r9
mov eax, 2
mov dword [r12 + 0x18], r10d
mov qword [r12], r15
mov dword [r12 + 8], r13d
mov dword [rbx + 0x48], r14d
mov dword [rbx + 0x4c], esi
jmp 0x140124916
mov r14d, r9d
mov esi, r9d
mov dword [rbx + 8], 0x3f50
jmp 0x1401247ba
xor r9d, r9d
mov r15d, 1
jmp 0x1401247da
mov r15d, 0xfffffffd
jmp 0x1401247ce
mov r15d, dword [rbp + 0x50]
xor r9d, r9d
jmp 0x1401247da
xor r9d, r9d
mov r15d, dword [rbp + 0x50]
mov eax, dword [rbp - 0x20]
mov rcx, qword [rbp - 8]
mov edi, dword [rbp + 0x58]
mov dword [r12 + 0x18], eax
mov rax, qword [rbp - 0x10]
mov qword [r12], rax
mov qword [r12 + 0x10], rcx
mov dword [r12 + 8], r13d
mov dword [rbx + 0x4c], esi
mov esi, dword [rbp + 0x48]
mov dword [rbx + 0x48], r14d
cmp dword [rbx + 0x34], r9d
jne 0x140124829
cmp edi, dword [r12 + 0x18]
je 0x140124856
cmp dword [rbx + 8], 0x3f51
jge 0x140124856
cmp dword [rbx + 8], 0x3f4e
jl 0x140124829
cmp esi, 4
je 0x140124856
mov rdx, qword [r12 + 0x10]
mov r8d, edi
sub r8d, dword [r12 + 0x18]
mov rcx, r12
call fcn.14014d918
xor r14d, r14d
test eax, eax
je 0x140124859
mov dword [rbx + 8], 0x3f52
mov eax, 0xfffffffc
jmp 0x140124916
xor r14d, r14d
sub edi, dword [r12 + 0x18]
mov r9d, dword [rbp - 0x14]
sub r9d, dword [r12 + 8]
add dword [r12 + 0xc], r9d
add dword [r12 + 0x1c], edi
add dword [rbx + 0x24], edi
test byte [rbx + 0x10], 4
mov dword [rbp - 0x14], r9d
je 0x1401248ae
test edi, edi
je 0x1401248ae
mov rdx, qword [r12 + 0x10]
mov ecx, dword [rbx + 0x20]
mov r8d, edi
sub rdx, r8
cmp dword [rbx + 0x18], r14d
je 0x14012489d
call sym.MsSense.exe_crc32_z
jmp 0x1401248a2
call sym.MsSense.exe_adler32_z
mov r9d, dword [rbp - 0x14]
mov dword [rbx + 0x20], eax
mov dword [r12 + 0x4c], eax
mov eax, dword [rbx + 0xc]
mov edx, 0x80
neg eax
sbb ecx, ecx
and ecx, 0x40
cmp dword [rbx + 8], 0x3f3f
cmovne edx, r14d
cmp dword [rbx + 8], 0x3f47
je 0x1401248dd
cmp dword [rbx + 8], 0x3f42
mov r8d, r14d
jne 0x1401248e3
mov r8d, 0x100
mov eax, dword [rbx + 0x4c]
add eax, edx
add eax, ecx
add eax, r8d
mov dword [r12 + 0x48], eax
test r9d, r9d
jne 0x1401248fb
test edi, edi
je 0x140124900
cmp esi, 4
jne 0x14012490c
test r15d, r15d
mov eax, 0xfffffffb
cmove r15d, eax
mov eax, r15d
jmp 0x140124916
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