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

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov r12, rcx
test rcx, rcx
je case.0x14007a4a2.16211
cmp qword [rcx + 0x40], 0
je case.0x14007a4a2.16211
cmp qword [rcx + 0x48], 0
je case.0x14007a4a2.16211
mov r13, qword [rcx + 0x38]
test r13, r13
je case.0x14007a4a2.16211
cmp qword [r13], rcx
jne case.0x14007a4a2.16211
mov ecx, dword [r13 + 8]
cmp ecx, 0x3f34
jl case.0x14007a4a2.16211
cmp ecx, 0x3f53
jg case.0x14007a4a2.16211
cmp qword [r12 + 0x18], 0
je case.0x14007a4a2.16211
cmp qword [r12], 0
jne 0x14007a40d
cmp dword [r12 + 8], 0
jne case.0x14007a4a2.16211
cmp ecx, 0x3f3f
jne 0x14007a422
mov dword [r13 + 8], 0x3f40
mov ecx, 0x3f40
mov r11d, dword [r12 + 0x20]
xor r8d, r8d
mov r10d, dword [r13 + 0x3c]
add ecx, 0xffffc0cc
mov eax, dword [r13 + 0x34]
mov edi, r11d
mov ebp, dword [r12 + 8]
add r10, rax
add r10, qword [r13 + 0x40]
mov r14, qword [r12]
mov r15d, dword [r13 + 0xa0]
mov ebx, dword [r13 + 0xa4]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0xb8], r11d
mov dword [rsp + 0x3c], ebp
mov dword [rsp + 0x38], r11d
mov dword [rsp + 0xa8], r8d
cmp ecx, 0x1f
ja case.0x14007a4a2.16211
movsxd rax, ecx
lea rdx, [0x140000000]
lea r9, [r13 + 0xcc]
lea rsi, [r13 + 0xc8]
mov ecx, dword [rdx + rax*4 + 0x7c06c]
add rcx, rdx
jmp rcx
cmp dword [r13 + 0x10], 0
jne 0x14007a4b8
mov dword [r13 + 8], 0x3f40
jmp 0x14007b50e
cmp ebx, 0x10
jae 0x14007a4e0
nop dword [rax]
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 0x10
jb 0x14007a4c0
test byte [r13 + 0x10], 2
je 0x14007a553
cmp r15d, 0x8b1f
jne 0x14007a553
cmp dword [r13 + 0x30], 0
jne 0x14007a4ff
mov dword [r13 + 0x30], shutdown
mov byte [rsp + 0xb0], r15b
lea rdx, [rsp + 0xb0]
mov dword [r13 + 0x20], r8d
xor ecx, ecx
shr r15d, 8
mov r8d, 2
mov byte [rsp + 0xb1], r15b
call fcn.140074930
mov r10, qword [rsp + 0x40]
xor r8d, r8d
mov r11d, dword [rsp + 0xb8]
mov r15d, r8d
mov ebx, r8d
mov dword [r13 + 0x20], eax
mov dword [r13 + 8], 0x3f35
jmp 0x14007b50e
mov rax, qword [r13 + 0x28]
mov dword [r13 + 0x18], r8d
test rax, rax
je 0x14007a567
mov dword [rax + 0x40], 0xffffffff
test byte [r13 + 0x10], 1
je 0x14007a6fe
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 0x14007a6fe
mov eax, r15d
and al, 0xf
cmp al, 8
je 0x14007a5c0
lea rax, str.unknown_compression_method
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
mov eax, dword [r13 + 0x30]
add ebx, 0xfffffffc
shr r15d, 4
mov edi, r15d
and edi, 0xf
add edi, 8
test eax, eax
jne 0x14007a5de
mov eax, edi
mov dword [r13 + 0x30], eax
cmp edi, 0xf
ja 0x14007a6e5
cmp edi, eax
ja 0x14007a6e5
mov rax, qword [r13 + 0x40]
test rax, rax
jne 0x14007a6a6
sub r10d, dword [r13 + 0x34]
mov edx, 1
sub r10d, eax
mov r8d, 4
mov dword [r13 + 0x3c], r10d
mov dword [r12 + 0x20], r11d
mov qword [r12], r14
mov dword [r12 + 8], ebp
mov ecx, dword [r13 + 0x30]
shl edx, cl
mov dword [r13 + 0x34], edx
add edx, 0x10
mov dword [r13 + 0xa0], r15d
mov dword [r13 + 0xa4], ebx
mov rax, qword [r12 + 0x40]
mov rcx, qword [r12 + 0x50]
call rax
mov qword [r13 + 0x40], rax
test rax, rax
jne 0x14007a672
mov rcx, qword [r12 + 0x50]
mov rdx, r13
call qword [r12 + 0x48]
xor r8d, r8d
mov dword [rsp + 0xa8], 0xfffffffc
mov qword [r12 + 0x38], r8
jmp 0x14007a675
xor r8d, r8d
mov r10d, dword [r13 + 0x34]
mov eax, dword [r13 + 0x3c]
mov r11d, dword [r12 + 0x20]
add r10, rax
add r10, qword [r13 + 0x40]
mov r14, qword [r12]
mov ebp, dword [r12 + 8]
mov r15d, dword [r13 + 0xa0]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0xb8], r11d
shr r15d, 8
mov ecx, edi
not r15d
mov dword [r13 + 0x20], 1
and r15d, 2
mov eax, 1
shl eax, cl
mov ebx, r8d
or r15d, 0x3f3d
mov dword [r13 + 0x1c], eax
mov dword [r12 + 0x5c], 1
mov dword [r13 + 8], r15d
mov r15d, r8d
jmp 0x14007b50e
lea rax, str.invalid_window_size
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
lea rax, str.incorrect_header_check
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
cmp ebx, 0x10
jae 0x14007a740
nop dword [rax]
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 0x10
jb 0x14007a720
mov dword [r13 + 0x18], r15d
cmp r15b, 8
je 0x14007a763
lea rax, str.unknown_compression_method
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
test r15d, 0xe000
je 0x14007a785
lea rax, str.unknown_header_flags_set
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
mov rcx, qword [r13 + 0x28]
test rcx, rcx
je 0x14007a799
mov eax, r15d
shr eax, 8
and eax, 1
mov dword [rcx], eax
test dword [r13 + 0x18], 0x200
je 0x14007a7dc
test byte [r13 + 0x10], 4
je 0x14007a7dc
mov ecx, dword [r13 + 0x20]
lea rdx, [rsp + 0xb0]
mov byte [rsp + 0xb0], r15b
mov r8d, 2
shr r15d, 8
mov byte [rsp + 0xb1], r15b
call fcn.140074930
mov dword [r13 + 0x20], eax
xor r8d, r8d
mov r15d, r8d
mov dword [r13 + 8], 0x3f36
mov ebx, r8d
jmp 0x14007a7f1
cmp ebx, 0x20
jae 0x14007a811
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 0x20
jb 0x14007a7f1
mov rax, qword [r13 + 0x28]
test rax, rax
je 0x14007a81e
mov dword [rax + 4], r15d
test dword [r13 + 0x18], 0x200
je 0x14007a87b
test byte [r13 + 0x10], 4
je 0x14007a87b
mov ecx, dword [r13 + 0x20]
lea rdx, [rsp + 0xb0]
mov eax, r15d
mov byte [rsp + 0xb0], r15b
shr eax, 8
mov r8d, 4
mov byte [rsp + 0xb1], al
mov eax, r15d
shr eax, 0x10
shr r15d, 0x18
mov byte [rsp + 0xb2], al
mov byte [rsp + 0xb3], r15b
call fcn.140074930
mov dword [r13 + 0x20], eax
xor r8d, r8d
mov r15d, r8d
mov dword [r13 + 8], 0x3f37
mov ebx, r8d
jmp 0x14007a890
cmp ebx, 0x10
jae 0x14007a8b0
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 0x10
jb 0x14007a890
mov rdx, qword [r13 + 0x28]
mov ecx, r15d
shr ecx, 8
test rdx, rdx
je 0x14007a8cd
movzx eax, r15b
mov dword [rdx + 8], eax
mov rax, qword [r13 + 0x28]
mov dword [rax + 0xc], ecx
test dword [r13 + 0x18], 0x200
je 0x14007a90b
test byte [r13 + 0x10], 4
je 0x14007a90b
mov byte [rsp + 0xb1], cl
lea rdx, [rsp + 0xb0]
mov ecx, dword [r13 + 0x20]
mov r8d, 2
mov byte [rsp + 0xb0], r15b
call fcn.140074930
mov dword [r13 + 0x20], eax
xor r8d, r8d
mov r15d, r8d
mov dword [r13 + 8], 0x3f38
mov ebx, r8d
test dword [r13 + 0x18], 0x400
je 0x14007a9af
cmp ebx, 0x10
jae 0x14007a950
nop dword [rax]
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 0x10
jb 0x14007a930
mov rax, qword [r13 + 0x28]
mov dword [r13 + 0xa8], r15d
test rax, rax
je 0x14007a964
mov dword [rax + 0x18], r15d
test dword [r13 + 0x18], 0x200
je 0x14007a9a7
test byte [r13 + 0x10], 4
je 0x14007a9a7
mov ecx, dword [r13 + 0x20]
lea rdx, [rsp + 0xb0]
mov byte [rsp + 0xb0], r15b
mov r8d, 2
shr r15d, 8
mov byte [rsp + 0xb1], r15b
call fcn.140074930
mov dword [r13 + 0x20], eax
xor r8d, r8d
mov r15d, r8d
mov ebx, r8d
jmp 0x14007a9bc
mov rax, qword [r13 + 0x28]
test rax, rax
je 0x14007a9bc
mov qword [rax + 0x10], r8
mov dword [r13 + 8], 0x3f39
test dword [r13 + 0x18], 0x400
je 0x14007aa9c
mov eax, dword [r13 + 0xa8]
mov r12d, ebp
cmp eax, ebp
cmovbe r12d, eax
test r12d, r12d
je 0x14007aa8c
mov rdi, qword [r13 + 0x28]
test rdi, rdi
je 0x14007aa41
mov r8, qword [rdi + 0x10]
test r8, r8
je 0x14007aa3e
mov esi, dword [rdi + 0x18]
mov edx, dword [rdi + 0x1c]
sub esi, eax
sub edx, esi
mov eax, r12d
lea ecx, [r12 + rsi]
cmp ecx, dword [rdi + 0x1c]
cmova eax, edx
mov edx, eax
mov eax, esi
mov ecx, edx
shr rcx, 2
add rax, r8
mov rdi, rax
mov rsi, r14
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
and ecx, 3
je 0x14007aa3e
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r14]
lea rdi, [rax + rdx]
rep movsb byte [rdi], byte [rsi]
xor r8d, r8d
test dword [r13 + 0x18], 0x200
je 0x14007aa72
test byte [r13 + 0x10], 4
je 0x14007aa72
test r14, r14
jne 0x14007aa5c
mov eax, r8d
jmp 0x14007aa6e
mov ecx, dword [r13 + 0x20]
mov rdx, r14
mov r8d, r12d
call fcn.140074930
xor r8d, r8d
mov dword [r13 + 0x20], eax
mov eax, r12d
sub ebp, r12d
add r14, rax
mov eax, dword [r13 + 0xa8]
sub eax, r12d
mov dword [r13 + 0xa8], eax
test eax, eax
jne 0x14007ab3c
mov r12, qword [rsp + 0xa0]
mov dword [r13 + 0xa8], r8d
mov dword [r13 + 8], 0x3f3a
test dword [r13 + 0x18], 0x800
je 0x14007abdb
test ebp, ebp
je 0x14007ab3c
mov edi, r8d
mov eax, edi
inc edi
movzx esi, byte [rax + r14]
mov rax, qword [r13 + 0x28]
test rax, rax
je 0x14007aaf2
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x14007aaf2
mov ecx, dword [r13 + 0xa8]
cmp ecx, dword [rax + 0x28]
jae 0x14007aaf2
mov byte [rcx + rdx], sil
inc dword [r13 + 0xa8]
test sil, sil
je 0x14007aafb
cmp edi, ebp
jb 0x14007aac0
test dword [r13 + 0x18], 0x200
je 0x14007ab2c
test byte [r13 + 0x10], 4
je 0x14007ab2c
test r14, r14
jne 0x14007ab16
mov eax, r8d
jmp 0x14007ab28
mov ecx, dword [r13 + 0x20]
mov rdx, r14
mov r8d, edi
call fcn.140074930
xor r8d, r8d
mov dword [r13 + 0x20], eax
mov eax, edi
sub ebp, edi
add r14, rax
test sil, sil
je 0x14007abe8
mov r12d, dword [rsp + 0xa8]
mov rsi, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x40]
sub eax, dword [r13 + 0x40]
sub eax, dword [r13 + 0x34]
mov dword [r13 + 0x3c], eax
mov eax, dword [rsp + 0xb8]
mov dword [rsi + 0x20], eax
mov qword [rsi], r14
mov dword [rsi + 8], ebp
cmp dword [r13 + 0x3c], 0
mov dword [r13 + 0xa0], r15d
mov dword [r13 + 0xa4], ebx
je 0x14007ab90
cmp dword [rsi + 0x20], 0
je 0x14007ab90
mov rcx, rsi
call fcn.14001a330
mov r10d, dword [rsp + 0x3c]
sub r10d, dword [rsi + 8]
mov r9d, dword [rsp + 0x38]
sub r9d, dword [rsi + 0x20]
mov eax, r10d
add qword [rsi + 0x10], rax
mov eax, r9d
add qword [rsi + 0x28], rax
add dword [r13 + 0x24], r9d
mov edx, dword [r13 + 8]
cmp edx, 0x3f47
je 0x14007c002
cmp edx, 0x3f42
je 0x14007c002
xor r8d, r8d
mov edi, r8d
jmp 0x14007c00a
mov rax, qword [r13 + 0x28]
test rax, rax
je 0x14007abe8
mov qword [rax + 0x20], r8
mov dword [r13 + 0xa8], r8d
mov dword [r13 + 8], 0x3f3b
test dword [r13 + 0x18], 0x1000
je 0x14007ac8e
test ebp, ebp
je 0x14007ab3c
mov edi, r8d
mov eax, edi
inc edi
movzx esi, byte [rax + r14]
mov rax, qword [r13 + 0x28]
test rax, rax
je 0x14007ac42
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x14007ac42
mov ecx, dword [r13 + 0xa8]
cmp ecx, dword [rax + 0x38]
jae 0x14007ac42
mov byte [rcx + rdx], sil
inc dword [r13 + 0xa8]
test sil, sil
je 0x14007ac4b
cmp edi, ebp
jb 0x14007ac10
test dword [r13 + 0x18], 0x200
je 0x14007ac7c
test byte [r13 + 0x10], 4
je 0x14007ac7c
test r14, r14
jne 0x14007ac66
mov eax, r8d
jmp 0x14007ac78
mov ecx, dword [r13 + 0x20]
mov rdx, r14
mov r8d, edi
call fcn.140074930
xor r8d, r8d
mov dword [r13 + 0x20], eax
mov eax, edi
sub ebp, edi
add r14, rax
test sil, sil
jne 0x14007ab3c
jmp 0x14007ac9b
mov rax, qword [r13 + 0x28]
test rax, rax
je 0x14007ac9b
mov qword [rax + 0x30], r8
mov r10, qword [rsp + 0x40]
mov r11d, dword [rsp + 0xb8]
mov dword [r13 + 8], 0x3f3c
test dword [r13 + 0x18], 0x200
je 0x14007ad10
cmp ebx, 0x10
jae 0x14007ace0
nop
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 0x10
jb 0x14007acc0
test byte [r13 + 0x10], 4
je 0x14007ad0a
movzx eax, word [r13 + 0x20]
cmp r15d, eax
je 0x14007ad0a
lea rax, str.header_crc_mismatch
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
mov r15d, r8d
mov ebx, r8d
mov rcx, qword [r13 + 0x28]
test rcx, rcx
je 0x14007ad31
mov eax, dword [r13 + 0x18]
sar eax, 9
and eax, 1
mov dword [rcx + 0x3c], eax
mov rax, qword [r13 + 0x28]
mov dword [rax + 0x40], 1
cmp dword [0x1401f51f4], 0
mov dword [r13 + 0x20], r8d
mov dword [r12 + 0x5c], r8d
je 0x14007ad7c
movdqu xmm2, xmmword [r13 + 0x90]
mov eax, 0x9db42487
xorps xmm1, xmm1
movdqu xmmword [r13 + 0x60], xmm1
movd xmm0, eax
movdqu xmmword [r13 + 0x50], xmm0
movdqu xmmword [r13 + 0x70], xmm1
movdqu xmmword [r13 + 0x80], xmm1
movdqu xmmword [r13 + 0x90], xmm2
mov dword [r13 + 8], 0x3f3f
jmp 0x14007b50e
cmp ebx, 0x20
jae 0x14007adb0
nop
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 0x20
jb 0x14007ad90
bswap r15d
mov dword [r13 + 0x20], r15d
mov ebx, r8d
mov dword [r12 + 0x5c], r15d
mov r15d, r8d
mov dword [r13 + 8], 0x3f3e
cmp dword [r13 + 0x14], 0
je 0x14007bfaf
mov dword [r13 + 0x20], 1
mov dword [r12 + 0x5c], 1
mov dword [r13 + 8], 0x3f3f
cmp dword [r13 + 0xc], 0
je 0x14007ae0c
mov ecx, ebx
mov dword [r13 + 8], 0x3f4e
and ecx, 7
shr r15d, cl
sub ebx, ecx
jmp 0x14007b50e
cmp ebx, 3
jae 0x14007ae31
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 3
jb 0x14007ae11
mov eax, r15d
shr r15d, 1
and eax, 1
mov dword [r13 + 0xc], eax
mov eax, r15d
and eax, 3
je 0x14007aeca
sub eax, 1
je 0x14007ae8d
sub eax, 1
je 0x14007ae79
cmp eax, 1
jne 0x14007aed2
lea rax, str.invalid_block_type
shr r15d, 2
mov qword [r12 + 0x30], rax
add ebx, 0xfffffffd
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
shr r15d, 2
add ebx, 0xfffffffd
mov dword [r13 + 8], 0x3f44
jmp 0x14007b50e
lea rax, [0x1401c4900]
shr r15d, 2
mov qword [r13 + 0xb8], rax
add ebx, 0xfffffffd
lea rax, [0x1401c4880]
mov dword [rsi], 9
mov qword [r13 + 0xc0], rax
mov dword [r9], 5
mov dword [r13 + 8], 0x3f47
jmp 0x14007b50e
mov dword [r13 + 8], 0x3f41
shr r15d, 2
add ebx, 0xfffffffd
jmp 0x14007b50e
mov ecx, ebx
and ecx, 7
shr r15d, cl
sub ebx, ecx
cmp ebx, 0x20
jae 0x14007af10
nop dword [rax]
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 0x20
jb 0x14007aef0
mov eax, r15d
movzx ecx, r15w
not eax
shr eax, 0x10
cmp ecx, eax
je 0x14007af39
lea rax, str.invalid_stored_block_lengths
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
mov dword [r13 + 0xa8], ecx
mov r15d, r8d
mov ebx, r8d
mov dword [r13 + 8], 0x3f43
mov ecx, dword [r13 + 0xa8]
test ecx, ecx
je 0x14007ad7c
mov r8d, dword [r13 + 0x34]
mov edi, ebp
mov r9, qword [r13 + 0x40]
lea esi, [r8*4]
add rsi, r9
mov eax, esi
sub eax, r10d
cmp ecx, ebp
cmovbe edi, ecx
mov edx, edi
cmp edi, eax
jbe 0x14007afff
test r11d, r11d
je 0x14007affd
sub r10d, r9d
mov rcx, r12
sub r10d, r8d
mov dword [r13 + 0x3c], r10d
mov dword [r12 + 0x20], r11d
mov qword [r12], r14
mov dword [r12 + 8], ebp
mov dword [r13 + 0xa0], r15d
mov dword [r13 + 0xa4], ebx
call fcn.14001a330
mov eax, dword [r13 + 0x3c]
mov edx, edi
mov r10d, dword [r13 + 0x34]
mov r11d, dword [r12 + 0x20]
add r10, rax
add r10, qword [r13 + 0x40]
mov eax, esi
mov r15d, dword [r13 + 0xa0]
sub eax, r10d
mov r14, qword [r12]
mov ebp, dword [r12 + 8]
mov ebx, dword [r13 + 0xa4]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0xb8], r11d
mov dword [rsp + 0x30], r15d
cmp edi, eax
jbe 0x14007afff
mov edx, eax
test edx, edx
je 0x14007ab3c
mov ecx, edx
mov rdi, r10
shr rcx, 2
mov rsi, r14
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
mov r8d, edx
and ecx, 3
je 0x14007b030
mov eax, r8d
and rax, 0xfffffffffffffffc
lea rsi, [rax + r14]
lea rdi, [rax + r10]
rep movsb byte [rdi], byte [rsi]
add r10, r8
sub ebp, edx
add r14, r8
mov qword [rsp + 0x40], r10
sub dword [r13 + 0xa8], edx
jmp 0x14007b50b
cmp ebx, 0xe
jae 0x14007b070
nop
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 0xe
jb 0x14007b050
mov ecx, r15d
add ebx, 0xfffffff2
shr r15d, 5
and ecx, 0x1f
mov edx, r15d
add ecx, 0x101
shr r15d, 5
and edx, 0x1f
mov eax, r15d
mov dword [r13 + 0xd4], ecx
and eax, 0xf
shr r15d, 4
add eax, 4
inc edx
mov dword [r13 + 0xd8], edx
mov dword [r13 + 0xd0], eax
cmp ecx, 0x11e
ja 0x14007b1f9
cmp edx, 0x1e
ja 0x14007b1f9
mov dword [r13 + 0xdc], r8d
lea rdx, [0x140000000]
mov dword [r13 + 8], 0x3f45
mov eax, dword [r13 + 0xdc]
cmp eax, dword [r13 + 0xd0]
jae 0x14007b155
nop dword [rax]
cmp ebx, 3
jae 0x14007b115
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 3
jb 0x14007b0f5
mov eax, dword [r13 + 0xdc]
movzx ecx, r15w
and cx, 7
shr r15d, 3
add ebx, 0xfffffffd
movzx eax, word [rdx + rax*2 + 0x1c5100]
mov word [r13 + rax*2 + 0xe8], cx
mov eax, dword [r13 + 0xdc]
inc eax
mov dword [r13 + 0xdc], eax
cmp eax, dword [r13 + 0xd0]
jb 0x14007b0f0
cmp eax, 0x13
jae 0x14007b184
nop word [rax + rax]
movzx eax, word [rdx + rax*2 + 0x1c5100]
mov word [r13 + rax*2 + 0xe8], r8w
inc dword [r13 + 0xdc]
mov eax, dword [r13 + 0xdc]
cmp eax, 0x13
jb 0x14007b160
lea rax, [r13 + 0x5a8]
mov dword [rsi], 7
lea r9, [r13 + 0xe0]
mov qword [r13 + 0xb8], rax
xor ecx, ecx
mov qword [r9], rax
lea rax, [r13 + 0x368]
mov qword [rsp + 0x28], rax
lea rdx, [r13 + 0xe8]
mov qword [rsp + 0x20], rsi
lea r8d, [rcx + 0x13]
call fcn.140078880
mov r10, qword [rsp + 0x40]
xor r8d, r8d
mov r11d, dword [rsp + 0xb8]
mov dword [rsp + 0xa8], eax
test eax, eax
je 0x14007b212
lea rax, str.invalid_code_lengths_set
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
lea rax, str.too_many_length_or_distance_symbols
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
mov dword [r13 + 0xdc], r8d
mov dword [r13 + 8], 0x3f46
mov eax, dword [r13 + 0xd8]
add eax, dword [r13 + 0xd4]
cmp dword [r13 + 0xdc], eax
jae 0x14007b45b
mov edi, dword [rsi]
mov eax, 1
mov rsi, qword [r13 + 0xb8]
mov ecx, edi
shl eax, cl
lea ecx, [rax - 1]
mov eax, r15d
and rcx, rax
mov eax, dword [rsi + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [rsp + 0x30], eax
cmp ecx, ebx
jbe 0x14007b2af
nop word [rax + rax]
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
mov ecx, edi
mov eax, 1
mov edx, r15d
shl eax, cl
inc r14
dec eax
add ebx, 8
and rax, rdx
mov eax, dword [rsi + rax*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [rsp + 0x30], eax
cmp ecx, ebx
ja 0x14007b270
mov edx, eax
shr edx, 0x10
cmp dx, 0x10
jae 0x14007b2e8
shr eax, 8
movzx ecx, al
mov eax, dword [r13 + 0xdc]
sub ebx, ecx
shr r15d, cl
mov word [r13 + rax*2 + 0xe8], dx
inc dword [r13 + 0xdc]
mov edi, dword [r13 + 0xdc]
jmp 0x14007b424
jne 0x14007b34f
shr eax, 8
movzx edx, al
add edx, 2
cmp ebx, edx
jae 0x14007b316
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, edx
jb 0x14007b2f7
movzx ecx, byte [rsp + 0x31]
mov eax, dword [r13 + 0xdc]
sub ebx, ecx
shr r15d, cl
test eax, eax
je 0x14007b440
mov edx, r15d
add ebx, 0xfffffffe
and edx, 3
shr r15d, 2
add edx, 3
dec eax
movzx esi, word [r13 + rax*2 + 0xe8]
jmp 0x14007b3e7
cmp word [rsp + 0x32], 0x11
movzx edi, byte [rsp + 0x31]
jne 0x14007b3a0
lea edx, [rdi + 3]
cmp ebx, edx
jae 0x14007b382
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, edx
jb 0x14007b363
movzx ecx, dil
mov esi, r8d
shr r15d, cl
mov ecx, 0xfffffffd
mov edx, r15d
and edx, 7
add edx, 3
shr r15d, 3
jmp 0x14007b3e3
lea edx, [rdi + 7]
cmp ebx, edx
jae 0x14007b3c6
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, edx
jb 0x14007b3a7
movzx ecx, dil
movzx esi, r8w
shr r15d, cl
mov ecx, 0xfffffff9
mov edx, r15d
and edx, 0x7f
add edx, 0xb
shr r15d, 7
sub ecx, edi
add ebx, ecx
mov edi, dword [r13 + 0xdc]
mov eax, dword [r13 + 0xd8]
add eax, dword [r13 + 0xd4]
lea ecx, [rdi + rdx]
cmp ecx, eax
ja 0x14007b440
mov eax, edi
mov word [r13 + rax*2 + 0xe8], si
mov edi, dword [r13 + 0xdc]
lea edi, [rdi + 1]
mov dword [r13 + 0xdc], edi
add edx, 0xffffffff
jne 0x14007b403
mov eax, dword [r13 + 0xd8]
lea rsi, [r13 + 0xc8]
add eax, dword [r13 + 0xd4]
cmp edi, eax
jmp 0x14007b236
lea rax, str.invalid_bit_length_repeat
mov qword [r12 + 0x30], rax
lea rsi, [r13 + 0xc8]
mov dword [r13 + 8], 0x3f51
cmp dword [r13 + 8], 0x3f51
je 0x14007b50e
cmp word [r13 + 0x2e8], 0
jne 0x14007b48d
lea rax, str.invalid_code____missing_end_of_block
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
mov r8d, dword [r13 + 0xd4]
lea rax, [r13 + 0x5a8]
mov dword [rsi], 9
lea rdx, [r13 + 0xe8]
mov qword [r13 + 0xe0], rax
lea rsi, [r13 + 0x368]
mov qword [r13 + 0xb8], rax
lea r9, [r13 + 0xe0]
lea rax, [r13 + 0xc8]
mov qword [rsp + 0x28], rsi
mov ecx, 1
mov qword [rsp + 0x20], rax
call fcn.140078880
mov dword [rsp + 0xa8], eax
test eax, eax
je 0x14007b52a
mov r11d, dword [rsp + 0xb8]
lea rax, str.invalid_literal_lengths_set
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
mov r10, qword [rsp + 0x40]
xor r8d, r8d
mov ecx, dword [r13 + 8]
sub ecx, 0x3f34
cmp ecx, 0x1f
ja case.0x14007a4a2.16211
mov edi, dword [rsp + 0x38]
jmp 0x14007a480
mov rax, qword [r13 + 0xe0]
lea rcx, [r13 + 0xcc]
mov r8d, dword [r13 + 0xd8]
lea r9, [r13 + 0xe0]
mov qword [r13 + 0xc0], rax
mov eax, dword [r13 + 0xd4]
mov dword [rcx], 6
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rcx
mov ecx, 2
lea rdx, [rax*2 + 0xe8]
add rdx, r13
call fcn.140078880
mov r10, qword [rsp + 0x40]
xor r8d, r8d
mov r11d, dword [rsp + 0xb8]
mov dword [rsp + 0xa8], eax
test eax, eax
je 0x14007b5ad
lea rax, str.invalid_distances_set
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
lea rsi, [r13 + 0xc8]
mov dword [r13 + 8], 0x3f48
cmp ebp, 6
jb 0x14007b65b
cmp r11d, 0x102
jb 0x14007b65b
sub r10d, dword [r13 + 0x40]
mov rcx, r12
sub r10d, dword [r13 + 0x34]
mov dword [r13 + 0x3c], r10d
mov dword [r12 + 0x20], r11d
mov qword [r12], r14
mov dword [r12 + 8], ebp
mov dword [r13 + 0xa0], r15d
mov dword [r13 + 0xa4], ebx
call fcn.140074380
mov r10d, dword [r13 + 0x34]
xor r8d, r8d
mov eax, dword [r13 + 0x3c]
mov r11d, dword [r12 + 0x20]
add r10, rax
add r10, qword [r13 + 0x40]
cmp dword [r13 + 8], 0x3f3f
mov r14, qword [r12]
mov ebp, dword [r12 + 8]
mov r15d, dword [r13 + 0xa0]
mov ebx, dword [r13 + 0xa4]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0xb8], r11d
jne 0x14007b50e
mov dword [r13 + 0x1c3c], 0xffffffff
jmp 0x14007b50e
mov edi, dword [rsi]
mov eax, 1
mov ecx, edi
mov dword [r13 + 0x1c3c], r8d
mov r8, qword [r13 + 0xb8]
shl eax, cl
lea ecx, [rax - 1]
mov eax, r15d
and rcx, rax
mov eax, dword [r8 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, ebx
jbe 0x14007b6cc
nop dword [rax]
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
mov ecx, edi
mov eax, 1
mov edx, r15d
shl eax, cl
inc r14
dec eax
add ebx, 8
and rax, rdx
mov eax, dword [r8 + rax*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, ebx
ja 0x14007b690
mov r9d, eax
test al, al
je 0x14007b788
test al, 0xf0
jne 0x14007b788
mov ecx, eax
mov dword [rsp + 0x30], eax
shr ecx, 8
mov esi, 1
movzx edi, cl
mov edx, eax
movzx ecx, al
add ecx, edi
shr eax, 0x10
shl esi, cl
mov ecx, edi
dec esi
shr r9d, 8
and esi, r15d
movzx edi, r9b
movzx r9d, byte [rsp + 0x31]
shr esi, cl
add esi, eax
mov eax, dword [r8 + rsi*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add edi, ecx
cmp edi, ebx
jbe 0x14007b778
movzx r10d, word [rsp + 0x32]
nop dword [rax]
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
mov edi, 1
add r15d, eax
movzx ecx, dl
add ecx, r9d
dec ebp
shl edi, cl
inc r14
dec edi
mov ecx, r9d
and edi, r15d
add ebx, 8
shr edi, cl
add edi, r10d
mov eax, dword [r8 + rdi*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add ecx, r9d
cmp ecx, ebx
ja 0x14007b730
mov ecx, r9d
shr r15d, cl
sub ebx, r9d
mov dword [r13 + 0x1c3c], ecx
mov ecx, eax
shr ecx, 8
movzx edx, cl
add dword [r13 + 0x1c3c], edx
mov ecx, edx
shr r15d, cl
sub ebx, edx
mov ecx, eax
shr ecx, 0x10
mov dword [r13 + 0xa8], ecx
test al, al
jne 0x14007b7bb
mov dword [r13 + 8], 0x3f4d
jmp 0x14007b506
test al, 0x20
je 0x14007b7d7
mov dword [r13 + 0x1c3c], 0xffffffff
mov dword [r13 + 8], 0x3f3f
jmp 0x14007b506
test al, 0x40
je 0x14007b7f4
lea rax, str.invalid_literal_length_code
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b506
movzx ecx, al
lea r9, [r13 + 0xcc]
and ecx, 0xf
mov dword [r13 + 8], 0x3f49
mov dword [r13 + 0xb0], ecx
mov edx, dword [r13 + 0xb0]
test edx, edx
je 0x14007b865
cmp ebx, edx
jae 0x14007b83f
nop
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, edx
jb 0x14007b820
mov ecx, dword [r13 + 0xb0]
mov eax, 1
shl eax, cl
sub ebx, ecx
dec eax
and eax, r15d
shr r15d, cl
add dword [r13 + 0xa8], eax
add dword [r13 + 0x1c3c], ecx
mov eax, dword [r13 + 0xa8]
mov dword [r13 + 0x1c40], eax
mov dword [r13 + 8], 0x3f4a
mov edi, dword [r9]
mov eax, 1
mov r8, qword [r13 + 0xc0]
mov ecx, edi
shl eax, cl
lea ecx, [rax - 1]
mov eax, r15d
and rcx, rax
mov eax, dword [r8 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, ebx
jbe 0x14007b8e3
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
mov ecx, edi
mov eax, 1
mov edx, r15d
shl eax, cl
inc r14
dec eax
add ebx, 8
and rax, rdx
mov eax, dword [r8 + rax*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, ebx
ja 0x14007b8a7
mov r9d, eax
test al, 0xf0
jne 0x14007b998
mov ecx, eax
mov dword [rsp + 0x30], eax
shr ecx, 8
mov esi, 1
movzx edi, cl
mov edx, eax
movzx ecx, al
add ecx, edi
shr eax, 0x10
shl esi, cl
mov ecx, edi
dec esi
shr r9d, 8
and esi, r15d
shr esi, cl
add esi, eax
mov eax, dword [r8 + rsi*4]
mov ecx, eax
shr ecx, 8
movzx edi, cl
movzx ecx, r9b
movzx r9d, byte [rsp + 0x31]
add edi, ecx
cmp edi, ebx
jbe 0x14007b988
movzx r10d, word [rsp + 0x32]
nop dword [rax]
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
mov edi, 1
add r15d, eax
movzx ecx, dl
add ecx, r9d
dec ebp
shl edi, cl
inc r14
dec edi
mov ecx, r9d
and edi, r15d
add ebx, 8
shr edi, cl
add edi, r10d
mov eax, dword [r8 + rdi*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add ecx, r9d
cmp ecx, ebx
ja 0x14007b940
mov ecx, r9d
sub ebx, r9d
shr r15d, cl
add dword [r13 + 0x1c3c], ecx
mov r10, qword [rsp + 0x40]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [r13 + 0x1c3c], ecx
sub ebx, ecx
shr r15d, cl
test al, 0x40
je 0x14007b9ce
lea rax, str.invalid_distance_code
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50b
mov ecx, eax
mov dword [r13 + 8], 0x3f4b
shr ecx, 0x10
mov dword [r13 + 0xac], ecx
movzx ecx, al
and ecx, 0xf
mov dword [r13 + 0xb0], ecx
mov edx, dword [r13 + 0xb0]
test edx, edx
je 0x14007ba45
cmp ebx, edx
jae 0x14007ba1f
nop
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, edx
jb 0x14007ba00
mov ecx, dword [r13 + 0xb0]
mov eax, 1
shl eax, cl
sub ebx, ecx
dec eax
and eax, r15d
shr r15d, cl
add dword [r13 + 0xac], eax
add dword [r13 + 0x1c3c], ecx
mov dword [r13 + 8], 0x3f4c
mov ecx, dword [r13 + 0x34]
mov eax, r10d
mov rdx, qword [r13 + 0x40]
sub eax, ecx
mov r12d, dword [r13 + 0xa8]
sub eax, edx
mov dword [r13 + 0x3c], eax
mov rax, qword [rsp + 0xa0]
lea esi, [rcx*4]
add rsi, rdx
mov edi, esi
sub edi, r10d
mov dword [rax + 0x20], r11d
mov qword [rax], r14
mov dword [rax + 8], ebp
mov dword [r13 + 0xa0], r15d
mov dword [r13 + 0xa4], ebx
cmp r12d, edi
jbe 0x14007baf2
cmp dword [rax + 0x20], 0
jbe 0x14007baeb
mov rcx, rax
call fcn.14001a330
mov rbp, qword [rsp + 0xa0]
mov edi, esi
mov r10d, dword [r13 + 0x34]
mov eax, dword [r13 + 0x3c]
mov r15d, dword [r13 + 0xa0]
add r10, rax
add r10, qword [r13 + 0x40]
mov r11d, dword [rbp + 0x20]
sub edi, r10d
mov r14, qword [rbp]
mov ebp, dword [rbp + 8]
mov ebx, dword [r13 + 0xa4]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0xb8], r11d
cmp r12d, edi
cmova r12d, edi
test r12d, r12d
je 0x14007ab3c
mov edi, dword [r13 + 0x3c]
mov ecx, dword [r13 + 0x38]
mov edx, dword [r13 + 0xac]
add ecx, edi
cmp edx, ecx
jbe 0x14007bb3b
cmp dword [r13 + 0x1c38], 0
je 0x14007bb3b
mov r12, qword [rsp + 0xa0]
lea rax, str.invalid_distance_too_far_back
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50b
mov r9, qword [r13 + 0x40]
mov esi, dword [r13 + 0x34]
mov r8, r9
sub dword [r13 + 0xa8], r12d
sub r8, rdx
add r8, rsi
add r8, rdi
cmp r12d, edx
jbe 0x14007bc28
cmp r12d, 2
jbe 0x14007bbe4
lea ecx, [r12 - 3]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea esi, [rdx + 1]
nop word [rax + rax]
movzx edx, byte [r8]
add r12d, 0xfffffffd
mov ecx, dword [r13 + 0x34]
mov eax, edi
add rcx, rax
mov rax, qword [r13 + 0x40]
mov byte [rcx + rax], dl
inc dword [r13 + 0x3c]
movzx ecx, byte [r8 + 1]
mov edx, dword [r13 + 0x3c]
mov eax, dword [r13 + 0x34]
add rdx, rax
mov rax, qword [r13 + 0x40]
mov byte [rdx + rax], cl
inc dword [r13 + 0x3c]
mov edx, dword [r13 + 0x3c]
mov eax, dword [r13 + 0x34]
movzx ecx, byte [r8 + 2]
add rdx, rax
mov rax, qword [r13 + 0x40]
add r8, 3
mov byte [rdx + rax], cl
mov eax, dword [r13 + 0x3c]
inc eax
mov dword [r13 + 0x3c], eax
mov edi, eax
sub rsi, 1
jne 0x14007bb80
test r12d, r12d
je 0x14007bc5f
mov edx, dword [r13 + 0x34]
mov rcx, qword [r13 + 0x40]
mov eax, edi
add rdx, rax
movzx eax, byte [r8]
mov byte [rdx + rcx], al
inc dword [r13 + 0x3c]
mov eax, dword [r13 + 0x3c]
mov edi, eax
cmp r12d, 1
jbe 0x14007bc5f
mov rcx, qword [r13 + 0x40]
mov edx, eax
mov eax, dword [r13 + 0x34]
add rdx, rax
movzx eax, byte [r8 + 1]
mov byte [rdx + rcx], al
inc dword [r13 + 0x3c]
jmp 0x14007bc5b
lea rdx, [rdi + rsi]
mov ecx, r12d
shr rcx, 2
add rdx, r9
mov rdi, rdx
mov eax, r12d
mov rsi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, r12d
and ecx, 3
je 0x14007bc57
and rax, 0xfffffffffffffffc
lea rsi, [rax + r8]
lea rdi, [rax + rdx]
rep movsb byte [rdi], byte [rsi]
add dword [r13 + 0x3c], r12d
mov edi, dword [r13 + 0x3c]
mov r12, qword [rsp + 0xa0]
mov eax, dword [r13 + 0x34]
mov r15d, dword [r13 + 0xa0]
mov ebx, dword [r13 + 0xa4]
mov r11d, dword [r12 + 0x20]
mov r14, qword [r12]
mov ebp, dword [r12 + 8]
mov r10d, edi
add r10, rax
mov dword [rsp + 0xb8], r11d
add r10, qword [r13 + 0x40]
cmp dword [r13 + 0xa8], 0
mov qword [rsp + 0x40], r10
jne 0x14007b50b
mov dword [r13 + 8], 0x3f48
jmp 0x14007b50b
mov edx, dword [r13 + 0x34]
mov rdi, qword [r13 + 0x40]
lea ecx, [rdx*4]
add rcx, rdi
cmp r10, rcx
jb 0x14007bd39
sub r10d, edi
mov rcx, r12
sub r10d, edx
mov dword [r13 + 0x3c], r10d
mov dword [r12 + 0x20], r11d
mov qword [r12], r14
mov dword [r12 + 8], ebp
mov dword [r13 + 0xa0], r15d
mov dword [r13 + 0xa4], ebx
call fcn.14001a330
mov r10d, dword [r13 + 0x34]
mov eax, dword [r13 + 0x3c]
mov r11d, dword [r12 + 0x20]
add r10, rax
add r10, qword [r13 + 0x40]
mov r14, qword [r12]
xor r8d, r8d
mov ebp, dword [r12 + 8]
mov r15d, dword [r13 + 0xa0]
mov ebx, dword [r13 + 0xa4]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0xb8], r11d
test r11d, r11d
je 0x14007ab3c
movzx eax, byte [r13 + 0xa8]
mov byte [r10], al
inc r10
mov qword [rsp + 0x40], r10
mov dword [r13 + 8], 0x3f48
jmp 0x14007b50e
sub r10d, dword [r13 + 0x40]
mov rcx, r12
sub r10d, dword [r13 + 0x34]
mov dword [r13 + 0x3c], r10d
mov dword [r12 + 0x20], r11d
mov qword [r12], r14
mov dword [r12 + 8], ebp
mov dword [r13 + 0xa0], r15d
mov dword [r13 + 0xa4], ebx
call fcn.14001a330
mov r10d, dword [r13 + 0x3c]
mov r11d, dword [r12 + 0x20]
mov ecx, r10d
mov eax, dword [r13 + 0x34]
mov r14, qword [r12]
add r10, rax
add r10, qword [r13 + 0x40]
mov ebp, dword [r12 + 8]
mov r15d, dword [r13 + 0xa0]
mov ebx, dword [r13 + 0xa4]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0xb8], r11d
test r11d, r11d
jne 0x14007bdda
test ecx, ecx
jne 0x14007ab3c
cmp dword [r13 + 0x10], 0
je 0x14007bf4d
cmp ebx, 0x20
jae 0x14007be10
nop word [rax + rax]
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 0x20
jb 0x14007bdf0
sub edi, r11d
mov dword [rsp + 0x38], r11d
mov eax, edi
add qword [r12 + 0x28], rax
add dword [r13 + 0x24], edi
test byte [r13 + 0x10], 2
je 0x14007bf10
cmp dword [0x1401f51f4], 0
je 0x14007bf10
movdqa xmm3, xmmword [0x1401be0e0]
movdqu xmm1, xmmword [r13 + 0x50]
movdqu xmm0, xmmword [r13 + 0x60]
movdqa xmm2, xmm1
pclmulqdq xmm2, xmm3, 0x10
xorps xmm2, xmm0
movdqu xmm0, xmmword [r13 + 0x70]
pclmulqdq xmm1, xmm3, 1
xorps xmm2, xmm1
movdqa xmm1, xmm2
pclmulqdq xmm2, xmm3, 1
pclmulqdq xmm1, xmm3, 0x10
xorps xmm1, xmm0
movdqu xmm0, xmmword [r13 + 0x80]
xorps xmm1, xmm2
movdqa xmm2, xmm1
pclmulqdq xmm2, xmm3, 0x10
xorps xmm2, xmm0
pclmulqdq xmm1, xmm3, 1
xorps xmm2, xmm1
movdqa xmm1, xmm2
psrldq xmm2, 8
pclmulqdq xmm1, xmmword [0x1401be0f0], 0
xorps xmm1, xmm2
movdqa xmm3, xmm1
pslldq xmm3, 4
pclmulqdq xmm3, xmmword [0x1401be0f0], 0x10
xorps xmm3, xmm1
andps xmm3, xmmword [0x1401be0c0]
movdqa xmm2, xmm3
pclmulqdq xmm2, xmmword [0x1401be100], 0
xorps xmm2, xmm3
andps xmm2, xmmword [0x1401be0d0]
movdqa xmm0, xmm2
pclmulqdq xmm0, xmmword [0x1401be100], 0x10
xorps xmm0, xmm2
xorps xmm0, xmm3
pextrd eax, xmm0, 2
not eax
mov dword [r13 + 0x20], eax
mov dword [r12 + 0x5c], eax
test byte [r13 + 0x10], 4
je 0x14007bf42
cmp dword [r13 + 0x18], 0
mov eax, r15d
jne 0x14007bf23
bswap eax
cmp eax, dword [r13 + 0x20]
je 0x14007bf42
lea rax, str.incorrect_data_check
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50b
xor r8d, r8d
mov r15d, r8d
mov ebx, r8d
jmp 0x14007bf50
xor r8d, r8d
mov dword [r13 + 8], 0x3f4f
cmp dword [r13 + 0x10], 0
je 0x14007bfe4
cmp dword [r13 + 0x18], 0
je 0x14007bfe4
cmp ebx, 0x20
jae 0x14007bf90
nop
test ebp, ebp
je 0x14007ab3c
movzx eax, byte [r14]
mov ecx, ebx
shl eax, cl
dec ebp
add r15d, eax
inc r14
add ebx, 8
cmp ebx, 0x20
jb 0x14007bf70
cmp r15d, dword [r13 + 0x24]
je 0x14007bfde
lea rax, str.incorrect_length_check
mov qword [r12 + 0x30], rax
mov dword [r13 + 8], 0x3f51
jmp 0x14007b50e
sub r10d, dword [r13 + 0x40]
mov eax, 2
sub r10d, dword [r13 + 0x34]
mov dword [r13 + 0x3c], r10d
mov dword [r12 + 0x20], r11d
mov qword [r12], r14
mov dword [r12 + 8], ebp
mov dword [r13 + 0xa0], r15d
mov dword [r13 + 0xa4], ebx
jmp 0x14007c05a
mov r15d, r8d
mov ebx, r8d
mov dword [r13 + 8], 0x3f50
mov r12d, 1
jmp 0x14007ab44
mov r12d, 0xfffffffd
jmp 0x14007ab44
mov edi, 0x100
xor r8d, r8d
mov eax, dword [r13 + 0xc]
neg eax
mov eax, 0x80
sbb ecx, ecx
and ecx, 0x40
cmp edx, 0x3f3f
cmove r8d, eax
add ecx, r8d
add ecx, dword [r13 + 0xa4]
add ecx, edi
mov dword [rsi + 0x58], ecx
test r10d, r10d
jne 0x14007c049
test r9d, r9d
jne 0x14007c049
test r12d, r12d
mov eax, 0xfffffffb
cmove r12d, eax
mov eax, r12d
jmp 0x14007c05a
mov eax, 0xfffffffc
jmp 0x14007c05a
mov eax, 0xfffffffe
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret