Function at 0x140123a20
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.14034dba4
xor ecx, ecx
test eax, eax
jne case.default.0x140123af4
mov r9, qword [r12 + 0x10]
mov qword [rbp - 8], r9
test r9, r9
je case.default.0x140123af4
mov r15, qword [r12]
mov qword [rbp - 0x10], r15
test r15, r15
jne 0x140123a79
cmp dword [r12 + 8], ecx
jne case.default.0x140123af4
mov rbx, qword [r12 + 0x28]
cmp dword [rbx + 8], 0x3f3f
jne 0x140123a9f
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.0x140123af4
cdqe
mov ecx, dword [rcx + rax*4 + 0x124fd0]
lea rax, [0x140000000]
add rcx, rax
jmp rcx
mov edx, dword [rbx + 0x10]
xor ecx, ecx
test edx, edx
jne 0x140123b0f
mov dword [rbx + 8], 0x3f40
mov edx, dword [rbp + 0x58]
jmp 0x140123ac9
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp esi, eax
jae 0x140123b3d
test r13d, r13d
je 0x140124e73
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 0x140123b0f
test dl, 2
je 0x140123b96
cmp r14d, 0x8b1f
jne 0x140123b96
cmp dword [rbx + 0x30], ecx
jne 0x140123b57
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.140351860
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 0x140124e1b
mov rax, qword [rbx + 0x28]
mov dword [rbx + 0x18], ecx
test rax, rax
je 0x140123ba9
or dword [rax + 0x40], 0xffffffff
mov edx, dword [rbx + 0x10]
test dl, 1
je 0x140123c5e
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 0x140123c5e
mov eax, r14d
and al, 0xf
cmp al, 8
je 0x140123bf0
lea rax, str.unknown_compression_method
jmp 0x140123c65
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 0x140123c0e
mov dword [rbx + 0x30], ecx
mov eax, ecx
cmp ecx, 0xf
ja 0x140123c55
cmp ecx, eax
ja 0x140123c55
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 0x140123b82
lea rax, str.invalid_window_size
jmp 0x140123c65
lea rax, str.incorrect_header_check
mov qword [r12 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x140123b0a
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp esi, eax
jae 0x140123ca2
test r13d, r13d
je 0x140124e6a
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.0x140123af4.16181
mov dword [rbx + 0x18], r14d
cmp r14b, 8
je 0x140123cc4
lea rax, str.unknown_compression_method
mov qword [r12 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x140123ac9
test r14d, 0xe000
je 0x140123cd6
lea rax, str.unknown_header_flags_set
jmp 0x140123cb3
mov rdx, qword [rbx + 0x28]
mov ecx, r14d
shr ecx, 8
xor r9d, r9d
mov eax, r14d
test rdx, rdx
je 0x140123cf5
mov eax, ecx
and eax, 1
mov dword [rdx], eax
mov eax, dword [rbx + 0x18]
bt eax, 9
jae 0x140123d20
test byte [rbx + 0x10], 4
je 0x140123d20
mov byte [rbp - 0x1b], cl
lea rdx, [rbp - 0x1c]
mov ecx, dword [rbx + 0x20]
mov r8d, 2
mov byte [rbp - 0x1c], r14b
call fcn.140351860
mov dword [rbx + 0x20], eax
xor r9d, r9d
mov r14d, r9d
mov dword [rbx + 8], 0x3f36
mov esi, r9d
jmp 0x140123d32
xor r9d, r9d
cmp esi, 0x20
jae 0x140123d5a
test r13d, r13d
je 0x140124e76
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 0x140123d32
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x140123d67
mov dword [rax + 4], r14d
test dword [rbx + 0x18], 0x200
je 0x140123dac
test byte [rbx + 0x10], 4
je 0x140123dac
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.140351860
mov dword [rbx + 0x20], eax
xor r9d, r9d
mov r14d, r9d
mov dword [rbx + 8], 0x3f37
mov esi, r9d
jmp 0x140123dbe
xor r9d, r9d
mov edi, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp esi, edi
jae 0x140123dea
test r13d, r13d
je 0x140124e76
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 0x140123dc3
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x140123e09
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 0x140123e0f
mov ecx, r14d
shr ecx, 8
test dword [rbx + 0x18], 0x200
je 0x140123e3d
test byte [rbx + 0x10], 4
je 0x140123e3d
mov byte [rbp - 0x1b], cl
lea rdx, [rbp - 0x1c]
mov ecx, dword [rbx + 0x20]
mov r8d, 2
mov byte [rbp - 0x1c], r14b
call fcn.140351860
mov dword [rbx + 0x20], eax
xor r9d, r9d
mov r14d, r9d
mov dword [rbx + 8], 0x3f38
mov esi, r9d
jmp 0x140123e53
xor r9d, r9d
lea edi, [r9 + 0x10]
test dword [rbx + 0x18], 0x400
je 0x140123ecf
cmp esi, edi
jae 0x140123e83
test r13d, r13d
je 0x140124e76
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 0x140123e5c
mov rax, qword [rbx + 0x28]
mov dword [rbx + 0x50], r14d
test rax, rax
je 0x140123e94
mov dword [rax + 0x18], r14d
test dword [rbx + 0x18], 0x200
je 0x140123ec7
test byte [rbx + 0x10], 4
je 0x140123ec7
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.140351860
mov dword [rbx + 0x20], eax
xor r9d, r9d
mov r14d, r9d
mov esi, r9d
jmp 0x140123edc
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x140123edc
mov qword [rax + 0x10], r9
mov dword [rbx + 8], 0x3f39
jmp 0x140123ee8
xor r9d, r9d
mov ecx, dword [rbx + 0x18]
bt ecx, 0xa
jae 0x140123f84
mov eax, dword [rbx + 0x50]
mov edi, r13d
cmp eax, r13d
cmovbe edi, eax
test edi, edi
je 0x140123f7c
mov rdx, qword [rbx + 0x28]
mov r15d, eax
test rdx, rdx
je 0x140123f4a
cmp qword [rdx + 0x10], r9
je 0x140123f4a
mov r9d, dword [rdx + 0x18]
mov ecx, dword [rdx + 0x1c]
sub r9d, eax
lea eax, [rdi + r9]
cmp eax, ecx
jbe 0x140123f2e
sub ecx, r9d
jmp 0x140123f30
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 0x140123f68
test byte [rbx + 0x10], 4
je 0x140123f68
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 0x140124e76
mov dword [rbx + 0x50], r9d
mov dword [rbx + 8], 0x3f3a
jmp 0x140123f94
xor r9d, r9d
test dword [rbx + 0x18], 0x800
je 0x14012401b
test r13d, r13d
je 0x140124e76
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 0x140123fda
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x140123fda
mov ecx, dword [rbx + 0x50]
cmp ecx, dword [rax + 0x28]
jae 0x140123fd6
mov byte [rcx + rdx], r15b
inc dword [rbx + 0x50]
mov rcx, qword [rbp - 0x10]
test r15b, r15b
je 0x140123fe4
cmp edi, r13d
jb 0x140123fad
test dword [rbx + 0x18], 0x200
je 0x140124007
test byte [rbx + 0x10], 4
je 0x140124007
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 0x140124e76
jmp 0x140124028
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x140124028
mov qword [rax + 0x20], r9
mov dword [rbx + 0x50], r9d
mov dword [rbx + 8], 0x3f3b
jmp 0x140124038
xor r9d, r9d
test dword [rbx + 0x18], 0x1000
je 0x1401240bf
test r13d, r13d
je 0x140124e76
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 0x14012407e
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x14012407e
mov ecx, dword [rbx + 0x50]
cmp ecx, dword [rax + 0x38]
jae 0x14012407a
mov byte [rcx + rdx], r15b
inc dword [rbx + 0x50]
mov rcx, qword [rbp - 0x10]
test r15b, r15b
je 0x140124088
cmp edi, r13d
jb 0x140124051
test dword [rbx + 0x18], 0x200
je 0x1401240ab
test byte [rbx + 0x10], 4
je 0x1401240ab
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 0x140124e76
jmp 0x1401240cc
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x1401240cc
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 0x1401240e7
xor r9d, r9d
mov edx, dword [rbx + 0x18]
bt edx, 9
jae 0x140124144
mov r15, qword [rbp - 0x10]
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp esi, eax
jae 0x140124120
test r13d, r13d
je 0x140124e76
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 0x1401240f4
test byte [rbx + 0x10], 4
je 0x14012413e
movzx eax, word [rbx + 0x20]
cmp r14d, eax
je 0x14012413e
lea rax, str.header_crc_mismatch
mov edx, dword [rbp + 0x58]
jmp 0x140124e0f
mov r14d, r9d
mov esi, r9d
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x140124161
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 0x140124e1b
xor edx, edx
cmp esi, 0x20
jae 0x1401241a7
test r13d, r13d
je 0x140124e73
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 0x14012417f
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 0x1401241e8
xor edx, edx
cmp dword [rbx + 0x14], edx
je 0x140124e24
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 0x140124e73
xor r9d, r9d
cmp dword [rbx + 0xc], r9d
je 0x140124246
mov ecx, esi
mov dword [rbx + 8], 0x3f4e
and ecx, 7
shr r14d, cl
sub esi, ecx
jmp 0x140124e1b
cmp esi, 3
jae 0x14012426e
test r13d, r13d
je 0x140124e76
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 0x140124246
mov eax, r14d
shr r14d, 1
and eax, 1
mov dword [rbx + 0xc], eax
mov eax, r14d
and eax, 3
je 0x1401242eb
sub eax, 1
je 0x1401242af
sub eax, 1
je 0x1401242a6
cmp eax, 1
jne 0x1401242f2
lea rax, str.invalid_block_type
mov qword [r12 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x1401242f2
mov dword [rbx + 8], 0x3f44
jmp 0x1401242f2
mov dword [r11], 9
lea rax, [0x1404271d0]
mov qword [rbx + 0x60], rax
lea rax, [0x140427150]
mov qword [rbx + 0x68], rax
mov dword [r8], 5
mov dword [rbx + 8], 0x3f47
cmp edi, 6
jne 0x1401242f2
shr r14d, 2
add esi, 0xfffffffd
jmp 0x140124e76
mov dword [rbx + 8], 0x3f41
shr r14d, 2
add esi, 0xfffffffd
jmp 0x140124e1b
mov ecx, esi
and ecx, 7
shr r14d, cl
sub esi, ecx
cmp esi, 0x20
jae 0x140124330
test r13d, r13d
je 0x140124e73
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 0x140124308
mov eax, r14d
movzx ecx, r14w
not eax
shr eax, 0x10
cmp ecx, eax
je 0x14012434c
lea rax, str.invalid_stored_block_lengths
jmp 0x140123cb3
xor eax, eax
mov dword [rbx + 0x50], ecx
mov dword [rbx + 8], 0x3f42
mov r14d, eax
mov esi, eax
cmp edi, 6
je 0x140124e73
mov dword [rbx + 8], 0x3f43
mov ecx, dword [rbx + 0x50]
test ecx, ecx
je 0x1401243c8
cmp ecx, r13d
mov eax, r13d
mov edi, r10d
cmovbe eax, ecx
cmp eax, r10d
cmovbe edi, eax
test edi, edi
je 0x140124e73
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 0x140123abd
mov dword [rbx + 8], 0x3f3f
jmp 0x140123ac9
cmp esi, 0xe
jae 0x1401243fc
test r13d, r13d
je 0x140124e73
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.0x140123af4.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 0x140124454
cmp edx, 0x1e
ja 0x140124454
xor r9d, r9d
mov dword [rbx + 8], 0x3f45
mov dword [rbx + 0x84], r9d
jmp 0x140124463
lea rax, str.too_many_length_or_distance_symbols
jmp 0x140123c65
xor r9d, r9d
mov edx, 7
lea r8, [0x140000000]
mov eax, dword [rbx + 0x84]
cmp eax, dword [rbx + 0x78]
jae 0x1401244cf
cmp esi, 3
jae 0x1401244a2
test r13d, r13d
je 0x140124e76
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 0x14012447a
mov eax, dword [rbx + 0x84]
movzx ecx, r14w
and cx, dx
shr r14d, 3
movzx eax, word [r8 + rax*2 + 0x4279d0]
mov word [rbx + rax*2 + 0x90], cx
inc dword [rbx + 0x84]
add esi, 0xfffffffd
jmp 0x14012446f
cmp eax, 0x13
jae 0x1401244fb
mov eax, dword [rbx + 0x84]
movzx eax, word [r8 + rax*2 + 0x4279d0]
mov word [rbx + rax*2 + 0x90], r9w
inc dword [rbx + 0x84]
cmp dword [rbx + 0x84], 0x13
jb 0x1401244d4
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.1403512d0
xor ecx, ecx
mov dword [rbp + 0x50], eax
lea r11, [rbx + 0x70]
test eax, eax
je 0x14012455a
lea rax, str.invalid_code_lengths_set
mov r10d, dword [rbp - 0x20]
lea r8, [rbx + 0x74]
mov edx, dword [rbp + 0x58]
jmp 0x140124e0f
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 0x14012475c
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 0x1401245d4
test r13d, r13d
je 0x140124e73
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 0x140124595
shr edx, 0x10
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmp dx, ax
jae 0x1401245ff
mov eax, dword [rbx + 0x84]
sub esi, ecx
shr r14d, cl
mov word [rbx + rax*2 + 0x90], dx
inc dword [rbx + 0x84]
jmp case.0x140123af4.16198
jne 0x140124669
movzx edx, byte [rbp - 0x17]
xor r9d, r9d
lea r8d, [rdx + 2]
cmp esi, r8d
jae 0x140124634
test r13d, r13d
je 0x140124e76
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 0x14012460c
mov eax, dword [rbx + 0x84]
mov ecx, edx
shr r14d, cl
sub esi, edx
test eax, eax
je 0x14012473d
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 0x140124705
movzx r8d, byte [rbp - 0x17]
xor r9d, r9d
cmp word [rbp - 0x16], 0x11
jne 0x1401246bd
lea edx, [r8 + 3]
cmp esi, edx
jae 0x1401246a3
test r13d, r13d
je 0x140124e76
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 0x14012467c
mov ecx, r8d
mov eax, 0xfffffffd
shr r14d, cl
mov edx, r14d
and edx, 7
add edx, 3
shr r14d, 3
jmp 0x140124700
lea edx, [r8 + 7]
cmp esi, edx
jae 0x1401246e8
test r13d, r13d
je 0x140124e76
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 0x1401246c1
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 0x140124749
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 0x140124712
jmp 0x14012456e
lea rax, str.invalid_bit_length_repeat
jmp 0x14012454a
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 0x140123ad0
xor eax, eax
cmp word [rbx + 0x290], ax
jne 0x1401247a2
lea rax, str.invalid_code____missing_end_of_block
mov qword [r12 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x140123ac5
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.1403512d0
mov dword [rbp + 0x50], eax
test eax, eax
je 0x140124805
mov edi, dword [rbp + 0x48]
lea rax, str.invalid_literal_lengths_set
mov r15, qword [rbp - 0x10]
lea r11, [rbx + 0x70]
jmp 0x14012454a
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.1403512d0
mov edi, dword [rbp + 0x48]
xor r9d, r9d
mov dword [rbp + 0x50], eax
mov r15d, eax
test eax, eax
je 0x140124858
lea rax, str.invalid_distances_set
jmp 0x1401247f8
mov dword [rbx + 8], 0x3f47
cmp edi, 6
je 0x140124e7a
mov edx, dword [rbp + 0x58]
mov r10d, dword [rbp - 0x20]
mov dword [rbx + 8], 0x3f48
cmp r13d, 6
jb 0x140124904
cmp r10d, 0x102
jb 0x140124904
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.14010c3b0
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 0x140123ad0
or dword [rbx + 0x1be4], 0xffffffff
jmp 0x140123ac1
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 0x14012495f
test r13d, r13d
je 0x140124e76
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 0x140124921
test al, al
je 0x1401249d8
test al, 0xf0
jne 0x1401249d8
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 0x1401249c5
test r13d, r13d
je 0x140124e73
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 0x140124980
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 0x140124a03
mov dword [rbx + 8], 0x3f4d
jmp 0x140123b82
test al, 0x20
je 0x140124a1a
or dword [rbx + 0x1be4], 0xffffffff
mov dword [rbx + 8], 0x3f3f
jmp 0x140123b82
lea r8, [rbx + 0x74]
test al, 0x40
je 0x140124a39
mov edx, dword [rbp + 0x58]
lea rax, str.invalid_literal_length_code
mov r10d, dword [rbp - 0x20]
lea r11, [rbx + 0x70]
jmp 0x140124e0f
movzx ecx, al
and ecx, 0xf
mov dword [rbx + 8], 0x3f49
mov dword [rbx + 0x58], ecx
jmp 0x140124a4e
xor r9d, r9d
mov edx, dword [rbx + 0x58]
test edx, edx
je 0x140124a98
cmp esi, edx
jae 0x140124a7c
test r13d, r13d
je 0x140124e76
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 0x140124a55
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 0x140124aad
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 0x140124afb
test r13d, r13d
je 0x140124e76
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 0x140124abd
test al, 0xf0
jne 0x140124b71
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 0x140124b5d
test r13d, r13d
je 0x140124e73
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 0x140124b18
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 0x140124b9c
lea rax, str.invalid_distance_code
jmp 0x140124136
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 0x140124c01
cmp esi, edx
jae 0x140124be5
test r13d, r13d
je 0x140124e76
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 0x140124bbe
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 0x140124c10
xor r9d, r9d
test r10d, r10d
je 0x140124e76
mov eax, dword [rbx + 0x54]
mov ecx, edx
sub ecx, r10d
cmp eax, ecx
jbe 0x140124c65
sub eax, ecx
cmp eax, dword [rbx + 0x38]
jbe 0x140124c41
cmp dword [rbx + 0x1be0], r9d
je 0x140124c41
lea rax, str.invalid_distance_too_far_back
jmp 0x140124e0f
mov ecx, dword [rbx + 0x3c]
cmp eax, ecx
jbe 0x140124c4d
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 0x140124c73
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 0x140124c92
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 0x140123ad0
mov dword [rbx + 8], 0x3f48
jmp 0x140123ac5
test r10d, r10d
je 0x140124e73
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 0x140123ac9
xor ecx, ecx
cmp dword [rbx + 0x10], ecx
je 0x140124dc4
cmp esi, 0x20
jae 0x140124d28
test r13d, r13d
je 0x140124e73
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 0x140124cfe
sub edx, r10d
add dword [r12 + 0x1c], edx
add dword [rbx + 0x24], edx
mov eax, dword [rbx + 0x10]
test al, 4
je 0x140124d76
test edx, edx
je 0x140124d76
mov ecx, dword [rbx + 0x20]
xor eax, eax
mov r8d, edx
mov rdx, r9
sub rdx, r8
cmp dword [rbx + 0x18], eax
je 0x140124d58
call sym.MsSense.exe_crc32_z
jmp 0x140124d5d
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 0x140124dbd
cmp dword [rbx + 0x18], ecx
mov ecx, r14d
jne 0x140124daf
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 0x140124dbd
lea rax, str.incorrect_data_check
jmp 0x140124e0f
xor eax, eax
mov r14d, eax
mov esi, eax
mov dword [rbx + 8], 0x3f4f
xor r9d, r9d
cmp dword [rbx + 0x10], r9d
je 0x140124e4e
cmp dword [rbx + 0x18], r9d
je 0x140124e4e
cmp esi, 0x20
jae 0x140124e02
test r13d, r13d
je 0x140124e76
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 0x140124dda
cmp r14d, dword [rbx + 0x24]
je 0x140124e48
lea rax, str.incorrect_length_check
mov qword [r12 + 0x20], rax
mov dword [rbx + 8], 0x3f51
mov r9, qword [rbp - 8]
jmp 0x140123ac9
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 0x140124fb6
mov r14d, r9d
mov esi, r9d
mov dword [rbx + 8], 0x3f50
jmp 0x140124e5a
xor r9d, r9d
mov r15d, 1
jmp 0x140124e7a
mov r15d, 0xfffffffd
jmp 0x140124e6e
mov r15d, dword [rbp + 0x50]
xor r9d, r9d
jmp 0x140124e7a
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 0x140124ec9
cmp edi, dword [r12 + 0x18]
je 0x140124ef6
cmp dword [rbx + 8], 0x3f51
jge 0x140124ef6
cmp dword [rbx + 8], 0x3f4e
jl 0x140124ec9
cmp esi, 4
je 0x140124ef6
mov rdx, qword [r12 + 0x10]
mov r8d, edi
sub r8d, dword [r12 + 0x18]
mov rcx, r12
call fcn.14014ec5c
xor r14d, r14d
test eax, eax
je 0x140124ef9
mov dword [rbx + 8], 0x3f52
mov eax, 0xfffffffc
jmp 0x140124fb6
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 0x140124f4e
test edi, edi
je 0x140124f4e
mov rdx, qword [r12 + 0x10]
mov ecx, dword [rbx + 0x20]
mov r8d, edi
sub rdx, r8
cmp dword [rbx + 0x18], r14d
je 0x140124f3d
call sym.MsSense.exe_crc32_z
jmp 0x140124f42
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 0x140124f7d
cmp dword [rbx + 8], 0x3f42
mov r8d, r14d
jne 0x140124f83
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 0x140124f9b
test edi, edi
je 0x140124fa0
cmp esi, 4
jne 0x140124fac
test r15d, r15d
mov eax, 0xfffffffb
cmove r15d, eax
mov eax, r15d
jmp 0x140124fb6
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