Function at 0x18030905c
Capabilities:
Compress data via zlib inflate or deflate

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov esi, edx
mov qword [rsp + 0x38], rcx
call fcn.18030845b
mov edx, 0xfffffffe
test eax, eax
jne 0x18030a004
mov rax, qword [rsp + 0x38]
mov r14, qword [rax + 0x10]
test r14, r14
je 0x18030a004
mov rax, qword [rsp + 0x38]
mov rdi, qword [rax]
test rdi, rdi
jne 0x180308702
mov rax, qword [rsp + 0x38]
cmp dword [rax + 8], 0
jne 0x18030a004
mov rax, qword [rsp + 0x38]
mov r12, qword [rax + 0x28]
lea r8, [r12 + 8]
mov ecx, dword [r12 + 8]
cmp ecx, 0x3f3f
jne 0x180308735
mov dword [r8], 0x3f40
mov rax, qword [rsp + 0x38]
mov rdi, qword [rax]
mov r14, qword [rax + 0x10]
mov ecx, 0x3f40
mov rax, qword [rsp + 0x38]
mov r13d, dword [rax + 8]
mov r10d, dword [rax + 0x18]
mov ebx, dword [r12 + 0x48]
mov ebp, dword [r12 + 0x4c]
lea rax, [r12 + 0x20]
mov qword [rsp + 0x60], rax
lea rax, [r12 + 0x550]
mov qword [rsp + 0x98], rax
lea r15, [r12 + 0x88]
lea rax, [r12 + 0x70]
mov qword [rsp + 0x90], rax
lea r11, [r12 + 0x310]
lea rax, [r12 + 0x90]
mov qword [rsp + 0x88], rax
lea rax, [r12 + 0x74]
mov qword [rsp + 0xa0], rax
mov rax, rsi
mov qword [rsp + 0x78], rsi
lea eax, [rsi - 5]
mov dword [rsp + 0x80], eax
mov dword [rsp + 0x30], 0
lea r9, [0x18030a05c]
mov dword [rsp + 0x84], r13d
mov dword [rsp + 0x6c], r10d
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x48], r11
add ecx, 0xffffc0cc
cmp ecx, 0x1e
jbe 0x1803087f2
mov edx, 0xfffffffe
jmp 0x18030a004
mov esi, 0xfffffffd
mov eax, 1
movsxd rcx, dword [r9 + rcx*4]
add rcx, r9
jmp rcx
mov r15, r8
mov r8d, dword [r12 + 0x58]
jmp 0x180309c34
mov edx, dword [r12 + 0x58]
jmp 0x180309a46
mov rdx, r8
mov esi, dword [r12 + 0x84]
jmp 0x180309465
mov eax, dword [r12 + 0x10]
jmp 0x180309e59
mov eax, dword [r12 + 0x10]
test eax, eax
je 0x180309ef3
cmp ebp, 0x10
jae 0x18030886d
test r13d, r13d
jne 0x180308859
xor r13d, r13d
mov esi, dword [rsp + 0x30]
jmp case.0x180308803.16209
dec r13d
movzx edx, byte [rdi]
mov ecx, ebp
shl edx, cl
inc rdi
add ebx, edx
add ebp, 8
jmp 0x180308843
test al, 2
je 0x1803088d1
cmp ebx, 0x8b1f
jne 0x1803088d1
mov ebx, r10d
cmp dword [r12 + 0x30], 0
jne 0x18030888d
mov dword [r12 + 0x30], 0xf
xor ecx, ecx
xor edx, edx
xor r8d, r8d
call fcn.18010f7ef
mov rsi, qword [rsp + 0x60]
mov dword [rsi], eax
lea rdx, [rsp + 0x5c]
mov word [rdx], 0x8b1f
mov ecx, eax
mov r8d, 2
call fcn.18010f7ef
mov dword [rsi], eax
mov r8, qword [rsp + 0x40]
mov dword [r8], 0x3f35
xor ebp, ebp
mov r10d, ebx
xor ebx, ebx
jmp 0x18030987c
mov dword [r12 + 0x18], 0
mov rcx, qword [r12 + 0x28]
test rcx, rcx
je 0x1803088f0
mov dword [rcx + 0x40], 0xffffffff
mov eax, dword [r12 + 0x10]
test al, 1
je 0x180308924
mov eax, ebx
shl eax, 8
movzx eax, ax
mov ecx, ebx
shr ecx, 8
add ecx, eax
imul rax, rcx, 0x8421085
shr rax, 0x20
mov edx, ecx
sub edx, eax
shr edx, 1
add edx, eax
shr edx, 4
mov eax, edx
shl eax, 5
sub edx, eax
add edx, ecx
je 0x180308940
lea rax, str.incorrect_header_check
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x20], rax
mov dword [r8], 0x3f51
jmp 0x180309efa
mov eax, ebx
and eax, 0xf
cmp eax, 8
je 0x180308953
lea rax, [0x18059ae3b]
jmp 0x18030892b
mov r15, rbx
mov eax, ebx
shr eax, 4
mov ecx, eax
and ecx, 0xf
lea edx, [rcx + 8]
mov ebx, dword [r12 + 0x30]
test ebx, ebx
jne 0x180308973
mov dword [r12 + 0x30], edx
mov ebx, edx
cmp edx, 0xf
ja 0x18030897c
cmp edx, ebx
jbe 0x1803089a2
add ebp, 0xfffffffc
lea rcx, str.invalid_window_size
mov rdx, qword [rsp + 0x38]
mov qword [rdx + 0x20], rcx
mov dword [r8], 0x3f51
mov ebx, eax
mov r15, qword [rsp + 0x50]
jmp 0x180309efa
mov eax, 0x100
shl eax, cl
mov dword [r12 + 0x1c], eax
xor ebp, ebp
xor ecx, ecx
xor edx, edx
xor r8d, r8d
mov esi, r10d
call fcn.18038f0b9
lea r9, [0x18030a05c]
mov r11, qword [rsp + 0x48]
mov r10d, esi
mov r8, qword [rsp + 0x40]
mov dword [r12 + 0x20], eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x4c], eax
xor eax, eax
bt r15d, 0xd
setae al
lea eax, [rax + rax]
add eax, 0x3f3d
mov dword [r12 + 8], eax
xor ebx, ebx
mov r15, qword [rsp + 0x50]
jmp 0x180309efa
test r13d, r13d
je 0x18030884d
dec r13d
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
inc rdi
add ebx, eax
add ebp, 8
cmp ebp, 0x10
jb 0x180308a03
mov dword [r12 + 0x18], ebx
cmp bl, 8
je 0x180308a39
lea rax, str.unknown_compression_method
jmp 0x18030892b
test ebx, 0xe000
je 0x180308a4d
lea rax, str.unknown_header_flags_set
jmp 0x18030892b
mov rax, qword [r12 + 0x28]
mov ecx, ebx
test rax, rax
je 0x180308a68
mov ecx, ebx
shr ecx, 8
and ecx, 1
mov dword [rax], ecx
mov ecx, dword [r12 + 0x18]
bt ecx, 9
jae 0x180308aac
test byte [r12 + 0x10], 4
je 0x180308aac
lea rdx, [rsp + 0x5c]
mov byte [rdx], bl
mov byte [rsp + 0x5d], bh
mov rsi, qword [rsp + 0x60]
mov ecx, dword [rsi]
mov r8d, 2
mov ebx, r10d
call fcn.18010f7ef
lea r9, [0x18030a05c]
mov r11, qword [rsp + 0x48]
mov r10d, ebx
mov r8, qword [rsp + 0x40]
mov dword [rsi], eax
mov dword [r8], 0x3f36
xor ebp, ebp
xor ebx, ebx
jmp 0x180308abe
cmp ebp, 0x1f
ja 0x180308ade
test r13d, r13d
je 0x18030884d
dec r13d
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
inc rdi
add ebx, eax
add ebp, 8
cmp ebp, 0x20
jb 0x180308abe
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x180308aeb
mov dword [rax + 4], ebx
test byte [r12 + 0x19], 2
je 0x180308b3f
test byte [r12 + 0x10], 4
je 0x180308b3f
lea rdx, [rsp + 0x5c]
mov byte [rdx], bl
mov byte [rsp + 0x5d], bh
mov eax, ebx
shr eax, 0x10
mov byte [rdx + 2], al
shr ebx, 0x18
mov byte [rdx + 3], bl
mov rsi, qword [rsp + 0x60]
mov ecx, dword [rsi]
mov r8d, 4
mov ebx, r10d
call fcn.18010f7ef
lea r9, [0x18030a05c]
mov r11, qword [rsp + 0x48]
mov r10d, ebx
mov r8, qword [rsp + 0x40]
mov dword [rsi], eax
mov dword [r8], 0x3f37
xor ebp, ebp
xor ebx, ebx
jmp 0x180308b51
cmp ebp, 0xf
ja 0x180308b71
test r13d, r13d
je 0x18030884d
dec r13d
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
inc rdi
add ebx, eax
add ebp, 8
cmp ebp, 0x10
jb 0x180308b51
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x180308b8e
movzx ecx, bl
mov dword [rax + 8], ecx
mov eax, ebx
shr eax, 8
mov rcx, qword [r12 + 0x28]
mov dword [rcx + 0xc], eax
test byte [r12 + 0x19], 2
je 0x180308bd4
test byte [r12 + 0x10], 4
je 0x180308bd4
lea rdx, [rsp + 0x5c]
mov byte [rdx], bl
mov byte [rsp + 0x5d], bh
mov rsi, qword [rsp + 0x60]
mov ecx, dword [rsi]
mov r8d, 2
mov ebx, r10d
call fcn.18010f7ef
lea r9, [0x18030a05c]
mov r11, qword [rsp + 0x48]
mov r10d, ebx
mov r8, qword [rsp + 0x40]
mov dword [rsi], eax
mov dword [r8], 0x3f38
xor ebx, ebx
xor ebp, ebp
mov eax, dword [r12 + 0x18]
bt eax, 0xa
jae 0x180308c76
cmp ebp, 0xf
ja 0x180308c13
test r13d, r13d
je 0x18030884d
dec r13d
movzx edx, byte [rdi]
mov ecx, ebp
shl edx, cl
inc rdi
add ebx, edx
add ebp, 8
cmp ebp, 0x10
jb 0x180308bf3
mov dword [r12 + 0x50], ebx
mov rcx, qword [r12 + 0x28]
test rcx, rcx
je 0x180308c2a
mov dword [rcx + 0x18], ebx
mov eax, dword [r12 + 0x18]
xor esi, esi
bt eax, 9
jb 0x180308c36
xor ebp, ebp
jmp 0x180308c8a
test byte [r12 + 0x10], 4
je 0x180308c32
lea rdx, [rsp + 0x5c]
mov byte [rdx], bl
mov byte [rsp + 0x5d], bh
mov rbx, qword [rsp + 0x60]
mov ecx, dword [rbx]
mov r8d, 2
mov ebp, r10d
call fcn.18010f7ef
lea r9, [0x18030a05c]
mov r11, qword [rsp + 0x48]
mov r10d, ebp
mov r8, qword [rsp + 0x40]
mov dword [rbx], eax
jmp 0x180308c32
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x180308c88
mov qword [rax + 0x10], 0
mov esi, ebx
mov dword [r8], 0x3f39
mov ebx, esi
mov edx, dword [r12 + 0x18]
bt edx, 0xa
jae 0x180308d71
mov eax, dword [r12 + 0x50]
cmp eax, r13d
mov r15d, eax
cmova r15d, r13d
test r15d, r15d
je 0x180308d64
mov rsi, rbx
mov rbx, qword [r12 + 0x28]
test rbx, rbx
je 0x180308d0e
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x180308d0e
mov edx, dword [rbx + 0x18]
mov ebx, dword [rbx + 0x1c]
sub edx, eax
add rcx, rdx
mov r8d, ebx
sub r8d, edx
add edx, r15d
cmp edx, ebx
cmovbe r8d, r15d
mov rdx, rdi
mov ebx, r10d
call fcn.1803e4840
lea r9, [0x18030a05c]
mov r11, qword [rsp + 0x48]
mov r10d, ebx
mov r8, qword [rsp + 0x40]
mov edx, dword [r12 + 0x18]
bt edx, 9
jae 0x180308d4b
test byte [r12 + 0x10], 4
je 0x180308d4b
mov rbx, qword [rsp + 0x60]
mov ecx, dword [rbx]
mov rdx, rdi
mov r8d, r15d
mov dword [rsp + 0x34], r10d
call fcn.18010f7ef
lea r9, [0x18030a05c]
mov r11, qword [rsp + 0x48]
mov r10d, dword [rsp + 0x34]
mov r8, qword [rsp + 0x40]
mov dword [rbx], eax
sub r13d, r15d
mov eax, r15d
add rdi, rax
mov eax, dword [r12 + 0x50]
sub eax, r15d
mov dword [r12 + 0x50], eax
mov rbx, rsi
test eax, eax
mov r15, qword [rsp + 0x50]
jne 0x180309d41
mov dword [r12 + 0x50], 0
mov dword [r12 + 8], 0x3f3a
test byte [r12 + 0x19], 8
je 0x180308e3d
mov r15, rbx
xor esi, esi
test r13d, r13d
jne 0x180308da8
xor r13d, r13d
mov eax, dword [rsp + 0x30]
mov rbx, r15
jmp case.0x180308803.16208
mov eax, esi
mov bl, byte [rdi + rax]
mov rcx, qword [r12 + 0x28]
test rcx, rcx
je 0x180308dd5
mov rax, qword [rcx + 0x20]
test rax, rax
je 0x180308dd5
mov edx, dword [r12 + 0x50]
cmp edx, dword [rcx + 0x28]
jae 0x180308dd5
lea ecx, [rdx + 1]
mov dword [r12 + 0x50], ecx
mov byte [rax + rdx], bl
inc esi
test bl, bl
je 0x180308de0
cmp r13d, esi
ja 0x180308da8
test byte [r12 + 0x19], 2
je 0x180308e24
test byte [r12 + 0x10], 4
je 0x180308e24
mov rax, qword [rsp + 0x60]
mov ecx, dword [rax]
mov rdx, rdi
mov r8d, esi
mov dword [rsp + 0x34], r10d
call fcn.18010f7ef
lea r9, [0x18030a05c]
mov r11, qword [rsp + 0x48]
mov r10d, dword [rsp + 0x34]
mov r8, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x60]
mov dword [rcx], eax
sub r13d, esi
mov eax, esi
add rdi, rax
test bl, bl
mov rbx, r15
mov r15, qword [rsp + 0x50]
je 0x180308e4f
jmp 0x180309d41
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x180308e4f
mov qword [rax + 0x20], 0
mov dword [r12 + 0x50], 0
mov dword [r12 + 8], 0x3f3b
test byte [r12 + 0x19], 0x10
je 0x180308f10
mov r15, rbx
xor esi, esi
test r13d, r13d
je 0x180308d99
mov eax, esi
mov bl, byte [rdi + rax]
mov rcx, qword [r12 + 0x28]
test rcx, rcx
je 0x180308ea8
mov rax, qword [rcx + 0x30]
test rax, rax
je 0x180308ea8
mov edx, dword [r12 + 0x50]
cmp edx, dword [rcx + 0x38]
jae 0x180308ea8
lea ecx, [rdx + 1]
mov dword [r12 + 0x50], ecx
mov byte [rax + rdx], bl
inc esi
test bl, bl
je 0x180308eb3
cmp r13d, esi
ja 0x180308e7b
test byte [r12 + 0x19], 2
je 0x180308ef7
test byte [r12 + 0x10], 4
je 0x180308ef7
mov rax, qword [rsp + 0x60]
mov ecx, dword [rax]
mov rdx, rdi
mov r8d, esi
mov dword [rsp + 0x34], r10d
call fcn.18010f7ef
lea r9, [0x18030a05c]
mov r11, qword [rsp + 0x48]
mov r10d, dword [rsp + 0x34]
mov r8, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x60]
mov dword [rcx], eax
sub r13d, esi
mov eax, esi
add rdi, rax
test bl, bl
mov rbx, r15
mov r15, qword [rsp + 0x50]
je 0x180308f22
jmp 0x180309d41
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x180308f22
mov qword [rax + 0x30], 0
mov dword [r8], 0x3f3c
mov eax, dword [r12 + 0x18]
bt eax, 9
jae 0x180308f65
cmp ebp, 0xf
ja 0x180308f59
test r13d, r13d
je 0x18030884d
dec r13d
movzx edx, byte [rdi]
mov ecx, ebp
shl edx, cl
inc rdi
add ebx, edx
add ebp, 8
cmp ebp, 0x10
jb 0x180308f39
test byte [r12 + 0x10], 4
jne 0x180308fb7
xor ebx, ebx
xor ebp, ebp
mov esi, r10d
mov rcx, qword [r12 + 0x28]
test rcx, rcx
je 0x180308f88
shr eax, 9
and eax, 1
mov dword [rcx + 0x3c], eax
mov rax, qword [r12 + 0x28]
mov ecx, 1
mov dword [rax + 0x40], ecx
xor ecx, ecx
xor edx, edx
xor r8d, r8d
call fcn.18010f7ef
mov rcx, qword [rsp + 0x60]
mov dword [rcx], eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x4c], eax
mov r8, qword [rsp + 0x40]
mov dword [r8], 0x3f3f
mov r10d, esi
jmp 0x18030987c
mov rcx, qword [rsp + 0x60]
movzx ecx, word [rcx]
cmp ebx, ecx
je 0x180308f61
lea rax, str.header_crc_mismatch
jmp 0x18030892b
test r13d, r13d
je 0x18030884d
dec r13d
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
inc rdi
add ebx, eax
add ebp, 8
cmp ebp, 0x20
jb 0x180308fcf
bswap ebx
mov rax, qword [rsp + 0x60]
mov dword [rax], ebx
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x4c], ebx
mov dword [r8], 0x3f3e
xor ebx, ebx
xor ebp, ebp
cmp dword [r12 + 0x14], 0
jne 0x18030903b
mov rax, qword [rsp + 0x38]
mov qword [rax + 0x10], r14
mov dword [rax + 0x18], r10d
mov qword [rax], rdi
mov dword [rax + 8], r13d
mov dword [r12 + 0x48], ebx
mov dword [r12 + 0x4c], ebp
mov edx, 2
jmp 0x18030a004
xor ecx, ecx
xor edx, edx
xor r8d, r8d
mov esi, r10d
call fcn.18038f0b9
lea r9, [0x18030a05c]
mov r11, qword [rsp + 0x48]
mov r10d, esi
mov r8, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x60]
mov dword [rcx], eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x4c], eax
mov dword [r8], 0x3f3f
cmp dword [rsp + 0x80], 2
jb 0x180309d41
cmp dword [r12 + 0xc], 0
jne 0x18030a01a
cmp ebp, 3
jae 0x1803090b6
test r13d, r13d
jne 0x1803090a0
xor r13d, r13d
jmp 0x180309d41
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
lea ecx, [rbp + 8]
add eax, ebx
inc rdi
dec r13d
mov ebx, eax
mov ebp, ecx
mov eax, ebx
and eax, 1
mov dword [r12 + 0xc], eax
mov eax, ebx
shr eax, 1
and eax, 3
mov ecx, 3
cmp eax, ecx
je 0x180309137
cmp eax, 2
je 0x180309130
mov ecx, 0x3f41
cmp eax, 1
jne 0x18030914c
movabs rax, 0x500000009
mov qword [r12 + 0x70], rax
lea rax, [0x180539280]
movq xmm0, rax
lea rax, [0x180538a80]
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqu xmmword [r12 + 0x60], xmm1
mov dword [r12 + 8], 0x3f47
cmp dword [rsp + 0x78], 6
jne 0x18030914f
shr ebx, 3
add ebp, 0xfffffffd
mov esi, dword [rsp + 0x30]
jmp case.0x180308803.16209
mov ecx, 0x3f44
jmp 0x18030914c
lea rax, str.invalid_block_type
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x20], rax
mov ecx, 0x3f51
mov dword [r8], ecx
shr ebx, 3
add ebp, 0xfffffffd
jmp 0x180309efa
mov ecx, ebp
and ecx, 7
shr ebx, cl
sub ebp, ecx
cmp ebp, 0x1f
ja 0x180309188
test r13d, r13d
je 0x18030884d
dec r13d
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
inc rdi
add ebx, eax
add ebp, 8
cmp ebp, 0x20
jb 0x180309168
movzx eax, bx
mov ecx, ebx
not ecx
shr ecx, 0x10
cmp eax, ecx
je 0x1803091a2
lea rax, str.invalid_stored_block_lengths
jmp 0x18030892b
xor ebx, ebx
mov dword [r12 + 0x50], eax
mov dword [r12 + 8], 0x3f42
mov ebp, 0
cmp dword [rsp + 0x78], 6
jne case.0x180308803.16194
xor ebp, ebp
jmp 0x180309d41
mov dword [r8], 0x3f43
mov qword [rsp + 0x70], rbx
mov ebx, dword [r12 + 0x50]
test ebx, ebx
je 0x180309241
cmp ebx, r13d
cmova ebx, r13d
cmp ebx, r10d
cmova ebx, r10d
test ebx, ebx
jne 0x1803091fa
mov eax, dword [rsp + 0x30]
mov rbx, qword [rsp + 0x70]
jmp case.0x180308803.16208
mov esi, ebx
mov rcx, r14
mov rdx, rdi
mov r8, rsi
mov r15d, r10d
call fcn.1803e4840
lea r9, [0x18030a05c]
mov r11, qword [rsp + 0x48]
mov r10d, r15d
mov r15, qword [rsp + 0x50]
mov r8, qword [rsp + 0x40]
sub r13d, ebx
add rdi, rsi
sub r10d, ebx
add r14, rsi
sub dword [r12 + 0x50], ebx
mov rbx, qword [rsp + 0x70]
jmp 0x180309efa
mov dword [r8], 0x3f3f
mov rbx, qword [rsp + 0x70]
jmp 0x180309efa
test r13d, r13d
je 0x18030884d
dec r13d
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
inc rdi
add ebx, eax
add ebp, 8
cmp ebp, 0xe
jb 0x180309252
mov rsi, r15
mov r15, r8
mov edx, ebx
and edx, 0x1f
add edx, 0x101
mov dword [r12 + 0x7c], edx
mov ecx, ebx
shr ecx, 5
and ecx, 0x1f
lea eax, [rcx + 1]
mov dword [r12 + 0x80], eax
mov r8d, ebx
shr r8d, 0xa
and r8d, 0xf
add r8d, 4
mov dword [r12 + 0x78], r8d
shr ebx, 0xe
add ebp, 0xfffffff2
cmp edx, 0x11e
ja 0x1803092c2
cmp ecx, 0x1e
jb 0x1803092e4
lea rax, str.too_many_length_or_distance_symbols
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x20], rax
mov r8, r15
mov dword [r15], 0x3f51
mov r15, rsi
jmp 0x180309efa
mov dword [r12 + 0x84], 0
mov dword [r12 + 8], 0x3f45
xor ecx, ecx
jmp 0x180309312
mov r15, r8
mov r8d, dword [r12 + 0x78]
mov ecx, dword [r12 + 0x84]
cmp ecx, r8d
jae 0x18030937e
mov edx, ecx
cmp ebp, 2
ja 0x180309347
test r13d, r13d
jne 0x18030932d
xor r13d, r13d
mov esi, dword [rsp + 0x30]
mov r8, r15
jmp case.0x180308803.16209
mov rax, rbx
movzx ebx, byte [rdi]
mov ecx, ebp
shl ebx, cl
lea ecx, [rbp + 8]
add eax, ebx
mov rbx, rax
inc rdi
dec r13d
mov ebp, ecx
mov rax, rbx
and ebx, 7
lea ecx, [rdx + 1]
mov dword [r12 + 0x84], ecx
mov edx, edx
lea rsi, [0x180538a50]
movzx edx, word [rsi + rdx*2]
mov word [r12 + rdx*2 + 0x90], bx
mov rbx, rax
shr ebx, 3
add ebp, 0xfffffffd
mov edx, ecx
cmp ecx, r8d
jb 0x180309314
mov r15, rbx
mov ebx, r10d
cmp ecx, 0x13
jae 0x1803093b3
mov eax, ecx
lea edx, [rcx + 1]
mov dword [r12 + 0x84], edx
lea rcx, [0x180538a50]
movzx eax, word [rcx + rax*2]
mov word [r12 + rax*2 + 0x90], 0
mov ecx, edx
cmp edx, 0x13
jb 0x180309389
mov rax, qword [rsp + 0x98]
mov qword [r12 + 0x88], rax
mov qword [r12 + 0x60], rax
mov dword [r12 + 0x70], 7
mov qword [rsp + 0x28], r11
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x20], rax
xor esi, esi
xor ecx, ecx
mov rdx, qword [rsp + 0x88]
mov r8d, 0x13
mov r9, qword [rsp + 0x50]
call fcn.180076674
test eax, eax
je 0x180309433
mov dword [rsp + 0x30], eax
lea rax, str.invalid_code_lengths_set
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x20], rax
mov r8, qword [rsp + 0x40]
mov dword [r8], 0x3f51
mov r10d, ebx
mov rbx, r15
mov r15, qword [rsp + 0x50]
jmp 0x18030987c
mov dword [r12 + 0x84], 0
mov dword [r12 + 8], 0x3f46
mov dword [rsp + 0x30], 0
mov rdx, qword [rsp + 0x40]
mov r10d, ebx
mov rbx, r15
mov r15, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
mov dword [rsp + 0x34], r10d
mov eax, dword [r12 + 0x7c]
mov r8d, dword [r12 + 0x80]
mov dword [rsp + 0x70], eax
add r8d, eax
cmp esi, r8d
jae 0x1803096cc
mov r10, qword [r12 + 0x60]
mov cl, byte [r12 + 0x70]
mov r9d, 0xffffffff
shl r9d, cl
not r9d
mov ecx, ebx
and ecx, r9d
movzx eax, byte [r10 + rcx*4 + 1]
cmp ebp, eax
jae 0x1803094e8
test r13d, r13d
jne 0x1803094c5
xor r13d, r13d
mov esi, dword [rsp + 0x30]
mov r10d, dword [rsp + 0x34]
mov r8, rdx
jmp case.0x180308803.16209
dec r13d
movzx eax, byte [rdi]
inc rdi
mov ecx, ebp
shl eax, cl
add ebx, eax
add ebp, 8
mov ecx, ebx
and ecx, r9d
movzx eax, byte [r10 + rcx*4 + 1]
cmp ebp, eax
jb 0x1803094ac
mov ecx, ecx
mov r15, rbx
movzx ebx, word [r10 + rcx*4 + 2]
cmp bx, 0xf
ja 0x180309523
mov ecx, eax
shr r15d, cl
mov r11, r15
sub ebp, eax
mov eax, esi
lea ecx, [rsi + 1]
mov dword [r12 + 0x84], ecx
mov word [r12 + rax*2 + 0x90], bx
mov esi, ecx
mov r15, qword [rsp + 0x50]
jmp 0x1803096bb
cmp bx, 0x10
je 0x180309582
cmp bx, 0x11
jne 0x18030961a
lea r11d, [rax + 3]
cmp ebp, r11d
mov rbx, r15
mov r15, qword [rsp + 0x50]
jae 0x180309566
test r13d, r13d
je 0x180309598
dec r13d
mov rdx, rbx
movzx ebx, byte [rdi]
mov ecx, ebp
shl ebx, cl
inc rdi
add edx, ebx
mov rbx, rdx
add ebp, 8
cmp ebp, r11d
jb 0x180309544
mov ecx, eax
shr ebx, cl
mov ecx, ebx
and ecx, 7
add ecx, 3
shr ebx, 3
mov r11, rbx
mov ebx, 0xfffffffd
jmp 0x180309668
lea r11d, [rax + 2]
cmp ebp, r11d
mov rbx, r15
mov r15, qword [rsp + 0x50]
jae 0x1803095cb
test r13d, r13d
jne 0x1803095ae
xor r13d, r13d
mov esi, dword [rsp + 0x30]
mov r8, qword [rsp + 0x40]
mov r10d, dword [rsp + 0x34]
jmp case.0x180308803.16209
dec r13d
mov rdx, rbx
movzx ebx, byte [rdi]
mov ecx, ebp
shl ebx, cl
inc rdi
add edx, ebx
mov rbx, rdx
add ebp, 8
cmp ebp, r11d
jb 0x180309593
mov ecx, eax
shr ebx, cl
sub ebp, eax
test esi, esi
jne 0x1803095fb
lea rax, [0x18059af1f]
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x20], rax
mov r8, qword [rsp + 0x40]
mov dword [r8], 0x3f51
mov r10d, dword [rsp + 0x34]
jmp 0x18030987c
lea eax, [rsi - 1]
movzx eax, word [r12 + rax*2 + 0x90]
mov ecx, ebx
and ecx, 3
add ecx, 3
shr ebx, 2
mov r11, rbx
add ebp, 0xfffffffe
jmp 0x18030966e
lea r11d, [rax + 7]
cmp ebp, r11d
mov rbx, r15
mov r15, qword [rsp + 0x50]
jae 0x180309651
test r13d, r13d
je 0x180309598
dec r13d
mov rdx, rbx
movzx ebx, byte [rdi]
mov ecx, ebp
shl ebx, cl
inc rdi
add edx, ebx
mov rbx, rdx
add ebp, 8
cmp ebp, r11d
jb 0x18030962b
mov ecx, eax
shr ebx, cl
mov ecx, ebx
and ecx, 0x7f
add ecx, 0xb
shr ebx, 7
mov r11, rbx
mov ebx, 0xfffffff9
sub ebx, eax
add ebp, ebx
xor eax, eax
mov rdx, qword [rsp + 0x40]
lea ebx, [rcx + rsi]
cmp ebx, r8d
jbe 0x1803096a1
lea rax, str.invalid_bit_length_repeat
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x20], rax
mov r8, rdx
mov dword [rdx], 0x3f51
mov r10d, dword [rsp + 0x34]
mov rbx, r11
jmp 0x18030987c
mov ebx, esi
lea esi, [rsi + 1]
mov dword [r12 + 0x84], esi
mov word [r12 + rbx*2 + 0x90], ax
dec ecx
jne 0x1803096a1
cmp esi, r8d
mov rbx, r11
mov r11, qword [rsp + 0x48]
jb 0x18030949d
cmp word [r12 + 0x290], 0
jne 0x180309702
lea rax, str.invalid_code____missing_end_of_block
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x20], rax
mov r8, rdx
mov dword [rdx], 0x3f51
mov r10d, dword [rsp + 0x34]
lea r9, [0x18030a05c]
jmp 0x180309efa
mov rax, qword [rsp + 0x98]
mov qword [r12 + 0x88], rax
mov qword [r12 + 0x60], rax
mov dword [r12 + 0x70], 9
mov qword [rsp + 0x28], r11
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov ecx, 1
mov rdx, qword [rsp + 0x88]
mov r8d, dword [rsp + 0x70]
mov r9, r15
mov rsi, r11
call fcn.180076674
test eax, eax
je 0x180309787
mov dword [rsp + 0x30], eax
lea rax, str.invalid_literal_lengths_set
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x20], rax
mov r8, qword [rsp + 0x40]
mov dword [r8], 0x3f51
mov r10d, dword [rsp + 0x34]
mov r11, rsi
lea r9, [0x18030a05c]
jmp 0x180309efa
mov rax, qword [r12 + 0x88]
mov qword [r12 + 0x68], rax
mov dword [r12 + 0x74], 6
mov eax, dword [r12 + 0x7c]
mov r8d, dword [r12 + 0x80]
lea rdx, [r12 + rax*2 + 0x90]
mov qword [rsp + 0x28], rsi
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov ecx, 2
mov r9, r15
call fcn.180076674
test eax, eax
je 0x1803097e5
mov dword [rsp + 0x30], eax
lea rax, str.invalid_distances_set
jmp 0x1803095dc
mov dword [rsp + 0x30], 0
mov r8, qword [rsp + 0x40]
mov dword [r8], 0x3f47
mov eax, 0
cmp dword [rsp + 0x78], 6
mov r10d, dword [rsp + 0x34]
mov r11, qword [rsp + 0x48]
je case.0x180308803.16208
mov dword [r8], 0x3f48
cmp r10d, 0x102
jb 0x18030989b
cmp r13d, 6
jb 0x18030989b
mov rsi, qword [rsp + 0x38]
mov qword [rsi + 0x10], r14
mov dword [rsi + 0x18], r10d
mov qword [rsi], rdi
mov dword [rsi + 8], r13d
mov dword [r12 + 0x48], ebx
mov dword [r12 + 0x4c], ebp
mov rcx, rsi
mov edx, dword [rsp + 0x6c]
call fcn.18007f0c4
mov r14, qword [rsi + 0x10]
mov r10d, dword [rsi + 0x18]
mov rdi, qword [rsi]
mov r13d, dword [rsi + 8]
mov ebx, dword [r12 + 0x48]
mov ebp, dword [r12 + 0x4c]
cmp dword [r12 + 8], 0x3f3f
je 0x18030988d
mov r8, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
lea r9, [0x18030a05c]
jmp 0x180309efa
mov dword [r12 + 0x1be4], 0xffffffff
jmp 0x180309877
mov r15, r8
mov dword [r12 + 0x1be4], 0
mov r8, qword [r12 + 0x60]
mov cl, byte [r12 + 0x70]
mov edx, 0xffffffff
shl edx, cl
not edx
mov ecx, ebx
and ecx, edx
mov sil, byte [r8 + rcx*4 + 1]
movzx eax, sil
cmp ebp, eax
jae 0x1803098fc
test r13d, r13d
je 0x18030931e
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
dec r13d
inc rdi
add ebx, eax
add ebp, 8
mov ecx, ebx
and ecx, edx
mov sil, byte [r8 + rcx*4 + 1]
movzx eax, sil
cmp ebp, eax
jb 0x1803098ce
mov ecx, ecx
movzx r9d, word [r8 + rcx*4 + 2]
movzx edx, byte [r8 + rcx*4]
test edx, edx
jne 0x180309915
xor eax, eax
mov r8d, edx
jmp 0x1803099b6
mov ecx, edx
and ecx, 0xfffffff0
jne 0x18030990b
mov dword [rsp + 0x34], r10d
movzx r9d, r9w
add edx, eax
mov r10d, 0xffffffff
mov ecx, edx
shl r10d, cl
not r10d
mov edx, ebx
and edx, r10d
mov ecx, eax
shr edx, cl
add edx, r9d
movzx esi, byte [r8 + rdx*4 + 1]
mov ecx, esi
add ecx, eax
cmp ecx, ebp
jbe 0x180309995
test r13d, r13d
jne 0x180309968
xor r13d, r13d
mov esi, dword [rsp + 0x30]
mov r10d, dword [rsp + 0x34]
mov r8, r15
jmp case.0x180308803.16209
movzx edx, byte [rdi]
mov ecx, ebp
shl edx, cl
dec r13d
inc rdi
add ebx, edx
add ebp, 8
mov edx, ebx
and edx, r10d
mov ecx, eax
shr edx, cl
add edx, r9d
movzx esi, byte [r8 + rdx*4 + 1]
lea ecx, [rax + rsi]
cmp ecx, ebp
ja 0x18030994f
mov edx, edx
movzx r9d, word [r8 + rdx*4 + 2]
mov ecx, eax
shr ebx, cl
mov r8b, byte [r8 + rdx*4]
sub ebp, eax
mov dword [r12 + 0x1be4], eax
movzx edx, r8b
mov r10d, dword [rsp + 0x34]
movzx ecx, sil
shr ebx, cl
sub ebp, ecx
add eax, ecx
mov dword [r12 + 0x1be4], eax
movzx eax, r9w
mov dword [r12 + 0x50], eax
test r8b, r8b
jne 0x1803099f1
mov r8, r15
mov dword [r15], 0x3f4d
lea r9, [0x18030a05c]
mov r15, qword [rsp + 0x50]
jmp 0x180309efa
test dl, 0x20
lea r9, [0x18030a05c]
mov r8, r15
je 0x180309a1f
mov dword [r12 + 0x1be4], 0xffffffff
mov dword [r12 + 8], 0x3f3f
mov r15, qword [rsp + 0x50]
jmp 0x180309efa
test dl, 0x40
mov r15, qword [rsp + 0x50]
je 0x180309a35
lea rax, str.invalid_literal_length_code
jmp 0x18030892b
and edx, 0xf
mov dword [r12 + 0x58], edx
mov dword [r12 + 8], 0x3f49
test edx, edx
jne 0x180309a51
mov eax, dword [r12 + 0x50]
jmp 0x180309a95
cmp ebp, edx
jae 0x180309a72
test r13d, r13d
je 0x18030884d
dec r13d
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
inc rdi
add ebx, eax
add ebp, 8
jmp 0x180309a51
mov eax, 0xffffffff
mov ecx, edx
shl eax, cl
not eax
and eax, ebx
add eax, dword [r12 + 0x50]
mov dword [r12 + 0x50], eax
shr ebx, cl
sub ebp, edx
add dword [r12 + 0x1be4], edx
mov dword [r12 + 0x1be8], eax
mov dword [r12 + 8], 0x3f4a
mov rsi, qword [r12 + 0x68]
mov cl, byte [r12 + 0x74]
mov rax, rbx
mov ebx, 0xffffffff
shl ebx, cl
not ebx
mov r11, rax
mov ecx, eax
and ecx, ebx
mov dl, byte [rsi + rcx*4 + 1]
movzx eax, dl
cmp ebp, eax
jae 0x180309b09
test r13d, r13d
jne 0x180309ae2
xor r13d, r13d
mov esi, dword [rsp + 0x30]
mov rbx, r11
jmp case.0x180308803.16209
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
dec r13d
inc rdi
mov rcx, r11
add ecx, eax
add ebp, 8
mov r11, rcx
and ecx, ebx
mov dl, byte [rsi + rcx*4 + 1]
movzx eax, dl
cmp ebp, eax
jb 0x180309ace
mov ecx, ecx
mov r15, r8
movzx r9d, word [rsi + rcx*4 + 2]
movzx r8d, byte [rsi + rcx*4]
test r8b, 0xf0
je 0x180309b2d
mov eax, dword [r12 + 0x1be4]
mov rbx, r11
jmp 0x180309bd7
mov dword [rsp + 0x34], r10d
movzx r9d, r9w
add r8d, eax
mov r10d, 0xffffffff
mov ecx, r8d
shl r10d, cl
not r10d
mov rbx, r11
and ebx, r10d
mov ecx, eax
shr ebx, cl
add ebx, r9d
movzx edx, byte [rsi + rbx*4 + 1]
mov ecx, edx
add ecx, eax
cmp ecx, ebp
mov r8, r15
jbe 0x180309bae
test r13d, r13d
jne 0x180309b7e
xor r13d, r13d
mov esi, dword [rsp + 0x30]
mov r10d, dword [rsp + 0x34]
mov rbx, r11
jmp case.0x180308803.16209
movzx edx, byte [rdi]
mov ecx, ebp
shl edx, cl
dec r13d
inc rdi
mov rbx, r11
add ebx, edx
add ebp, 8
mov r11, rbx
and ebx, r10d
mov ecx, eax
shr ebx, cl
add ebx, r9d
movzx edx, byte [rsi + rbx*4 + 1]
lea ecx, [rax + rdx]
cmp ecx, ebp
ja 0x180309b65
mov ebx, ebx
movzx r9d, word [rsi + rbx*4 + 2]
movzx r8d, byte [rsi + rbx*4]
mov ecx, eax
mov rbx, r11
shr ebx, cl
sub ebp, eax
add eax, dword [r12 + 0x1be4]
mov dword [r12 + 0x1be4], eax
mov r10d, dword [rsp + 0x34]
movzx ecx, dl
shr ebx, cl
sub ebp, ecx
add eax, ecx
mov dword [r12 + 0x1be4], eax
test r8b, 0x40
mov r11, qword [rsp + 0x48]
je 0x180309c12
lea rax, str.invalid_distance_code
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x20], rax
mov r8, r15
mov dword [r15], 0x3f51
jmp 0x1803099e0
movzx eax, r9w
mov dword [r12 + 0x54], eax
and r8d, 0xf
mov dword [r12 + 0x58], r8d
mov dword [r12 + 8], 0x3f4b
lea r9, [0x18030a05c]
test r8d, r8d
je 0x180309c7b
cmp ebp, r8d
jae 0x180309c5b
test r13d, r13d
je 0x18030931e
dec r13d
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
inc rdi
add ebx, eax
add ebp, 8
jmp 0x180309c39
mov eax, 0xffffffff
mov ecx, r8d
shl eax, cl
not eax
and eax, ebx
add dword [r12 + 0x54], eax
shr ebx, cl
sub ebp, r8d
add dword [r12 + 0x1be4], r8d
mov r8, r15
mov dword [r15], 0x3f4c
mov r15, qword [rsp + 0x50]
test r10d, r10d
je 0x180309d41
mov eax, dword [rsp + 0x6c]
sub eax, r10d
mov edx, dword [r12 + 0x54]
cmp edx, eax
jbe 0x180309cf1
sub edx, eax
cmp edx, dword [r12 + 0x38]
jbe 0x180309cc3
cmp dword [r12 + 0x1be0], 0
je 0x180309cc3
lea rax, str.invalid_distance_too_far_back
jmp 0x18030892b
mov ecx, dword [r12 + 0x3c]
mov eax, edx
sub eax, ecx
jbe 0x180309cd7
mov ecx, dword [r12 + 0x34]
sub ecx, eax
jmp 0x180309cdb
sub ecx, edx
mov eax, edx
mov rsi, rbx
mov ecx, ecx
add rcx, qword [r12 + 0x40]
mov edx, dword [r12 + 0x50]
cmp eax, edx
cmova eax, edx
jmp 0x180309d01
mov rsi, rbx
mov rcx, r14
sub rcx, rdx
mov edx, dword [r12 + 0x50]
mov eax, edx
cmp eax, r10d
cmova eax, r10d
sub edx, eax
mov dword [r12 + 0x50], edx
mov edx, eax
mov bl, byte [rcx]
inc rcx
mov byte [r14], bl
inc r14
dec edx
jne 0x180309d11
sub r10d, eax
cmp dword [r12 + 0x50], 0
je 0x180309d33
mov rbx, rsi
jmp 0x180309efa
mov dword [r8], 0x3f48
jmp 0x180309d2b
test r10d, r10d
jne 0x180309d4c
mov eax, dword [rsp + 0x30]
mov esi, eax
jmp case.0x180308803.16209
mov al, byte [r12 + 0x50]
mov byte [r14], al
inc r14
dec r10d
mov dword [r12 + 8], 0x3f48
jmp 0x180309efa
cmp dword [r12 + 0x10], 0
jne 0x180309d77
xor eax, eax
jmp 0x180309e52
cmp ebp, 0x1f
ja 0x180309d9c
test r13d, r13d
je 0x18030884d
dec r13d
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
inc rdi
add ebx, eax
add ebp, 8
cmp ebp, 0x20
jb 0x180309d7c
mov rsi, r8
mov edx, dword [rsp + 0x6c]
sub edx, r10d
mov rax, qword [rsp + 0x38]
add dword [rax + 0x1c], edx
add dword [r12 + 0x24], edx
mov eax, dword [r12 + 0x10]
mov ecx, eax
and ecx, 4
test edx, edx
je 0x180309e1c
test ecx, ecx
je 0x180309e1c
mov r8d, edx
mov r15d, r10d
mov eax, edx
mov rdx, r14
sub rdx, rax
cmp dword [r12 + 0x18], 0
mov ecx, dword [r12 + 0x20]
je 0x180309de7
call fcn.18010f7ef
jmp 0x180309dec
call fcn.18038f0b9
mov dword [r12 + 0x20], eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x4c], eax
mov eax, dword [r12 + 0x10]
mov ecx, eax
and ecx, 4
mov rsi, qword [rsp + 0x40]
mov r10d, r15d
mov r11, qword [rsp + 0x48]
lea r9, [0x18030a05c]
mov r15, qword [rsp + 0x50]
test ecx, ecx
jne 0x180309e2e
xor ebx, ebx
xor ebp, ebp
mov dword [rsp + 0x6c], r10d
mov r8, rsi
jmp 0x180309e52
cmp dword [r12 + 0x18], 0
mov ecx, ebx
bswap ecx
cmovne ecx, ebx
cmp ecx, dword [r12 + 0x20]
mov r8, rsi
jne 0x18030a02f
xor ebx, ebx
xor ebp, ebp
mov dword [rsp + 0x6c], r10d
mov dword [r8], 0x3f4f
test eax, eax
je 0x180309e99
cmp dword [r12 + 0x18], 0
je 0x180309e99
cmp ebp, 0x1f
ja 0x180309e8a
test r13d, r13d
je 0x18030884d
dec r13d
movzx eax, byte [rdi]
mov ecx, ebp
shl eax, cl
inc rdi
add ebx, eax
add ebp, 8
cmp ebp, 0x20
jb 0x180309e6a
cmp ebx, dword [r12 + 0x24]
jne 0x18030a050
xor ebx, ebx
xor ebp, ebp
mov dword [r8], 0x3f50
mov esi, 1
mov rax, qword [rsp + 0x38]
mov qword [rax + 0x10], r14
mov dword [rax + 0x18], r10d
mov qword [rax], rdi
mov dword [rax + 8], r13d
mov dword [r12 + 0x48], ebx
mov dword [r12 + 0x4c], ebp
cmp dword [r12 + 0x34], 0
mov eax, dword [rax + 0x18]
mov rdi, qword [rsp + 0x78]
mov ebx, dword [rsp + 0x84]
mov ebp, dword [rsp + 0x6c]
jne 0x180309f0f
mov ecx, ebp
cmp ebp, eax
je 0x180309f33
mov ecx, dword [r8]
cmp ecx, 0x3f50
jle 0x180309f02
mov ecx, eax
jmp 0x180309f33
mov dword [r8], 0x3f40
mov ecx, dword [r8]
jmp 0x1803087dd
cmp edi, 4
jne 0x180309f0f
cmp ecx, 0x3f4d
jg 0x180309eef
mov r8d, ebp
sub r8d, eax
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rcx + 0x10]
call fcn.18030a0d8
test eax, eax
jne 0x180309ff4
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
mov rax, qword [rsp + 0x38]
sub ebx, dword [rax + 8]
add dword [rax + 0xc], ebx
sub ebp, ecx
add dword [rax + 0x1c], ebp
add dword [r12 + 0x24], ebp
test ebp, ebp
je 0x180309f8f
mov eax, dword [r12 + 0x10]
and eax, 4
je 0x180309f8f
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax + 0x10]
mov eax, ebp
sub rdx, rax
cmp dword [r12 + 0x18], 0
mov ecx, dword [r12 + 0x20]
mov r8d, ebp
je 0x180309f7b
call fcn.18010f7ef
jmp 0x180309f80
call fcn.18038f0b9
mov rcx, qword [rsp + 0x60]
mov dword [rcx], eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x4c], eax
xor eax, eax
xor ecx, ecx
cmp dword [r12 + 0xc], eax
setne cl
shl ecx, 6
add ecx, dword [r12 + 0x4c]
mov eax, dword [r12 + 8]
xor edx, edx
cmp eax, 0x3f3f
sete dl
shl edx, 7
add edx, ecx
xor ecx, ecx
cmp eax, 0x3f42
sete cl
shl ecx, 8
cmp eax, 0x3f47
mov eax, 0x100
cmovne eax, ecx
add eax, edx
or ebp, ebx
mov ecx, 0xfffffffb
mov edx, esi
cmove edx, ecx
cmp edi, 4
cmove edx, ecx
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x48], eax
test esi, esi
cmovne edx, esi
jmp 0x18030a004
mov rax, qword [rsp + 0x40]
mov dword [rax], 0x3f52
mov edx, 0xfffffffc
mov eax, edx
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, ebp
and ecx, 7
shr ebx, cl
sub ebp, ecx
mov dword [r8], 0x3f4e
jmp 0x180309efa
lea rax, str.incorrect_data_check
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x20], rax
mov dword [r8], 0x3f51
mov dword [rsp + 0x6c], r10d
jmp 0x180309efa
lea rax, str.incorrect_length_check
jmp 0x18030892b