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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
movups xmmword [rsp + 0x70], xmm6
mov dword [rsp + 0xd8], edx
mov r13, rcx
test rcx, rcx
je case.default.0x699e53e0
cmp qword [rcx + 0x30], 0
je case.default.0x699e53e0
cmp qword [rcx + 0x38], 0
je case.default.0x699e53e0
mov rbx, qword [rcx + 0x28]
mov r12d, 0xfffffffe
test rbx, rbx
je 0x699e5333
cmp rcx, qword [rbx]
jne 0x699e5333
mov edx, dword [rbx + 8]
lea eax, [rdx - 0x3f34]
cmp eax, 0x1f
jbe 0x699e5350
movups xmm6, xmmword [rsp + 0x70]
mov eax, r12d
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rcx + 0x10]
mov qword [rsp + 0x38], rdi
test rdi, rdi
je 0x699e5333
mov esi, dword [rcx + 8]
mov r15, qword [rcx]
mov dword [rsp + 0x44], esi
test r15, r15
je 0x699e5b48
cmp edx, 0x3f3f
jne 0x699e5385
mov dword [rbx + 8], 0x3f40
mov eax, 0xc
mov ecx, dword [r13 + 0x18]
mov r8d, dword [rsp + 0xd8]
lea r9, [0x69a16e20]
lea r10, [0x69a29b20]
mov r11d, dword [rbx + 0x48]
movq xmm6, r10
movq xmm0, r9
mov ebp, dword [rbx + 0x4c]
sub r8d, 5
mov dword [rsp + 0x48], ecx
mov r14d, dword [rsp + 0x44]
punpcklqdq xmm6, xmm0
mov dword [rsp + 0x4c], r8d
mov esi, r11d
mov dword [rsp + 0x40], ecx
cmp eax, 0x1e
ja case.default.0x699e53e0
lea r12, [0x699fe814]
movsxd rax, dword [r12 + rax*4]
add rax, r12
jmp rax
mov r12d, 0xfffffffe
jmp 0x699e5333
mov eax, dword [rbx + 0x10]
test eax, eax
jne 0x699e7dde
mov dword [rbx + 8], 0x3f40
mov r12d, dword [rbx + 0xc]
test r12d, r12d
je 0x699e66f0
mov ecx, ebp
mov dword [rbx + 8], 0x3f4e
mov r11d, esi
and ebp, 0xfffffff8
and ecx, 7
shr r11d, cl
mov esi, dword [rbx + 0x10]
test esi, esi
je 0x699e5518
cmp ebp, 0x1f
ja 0x699e9203
test r14d, r14d
je 0x699e5a03
movzx r10d, byte [r15]
mov ecx, ebp
lea r8d, [r14 - 1]
lea r12, [r15 + 1]
shl r10d, cl
lea ecx, [rbp + 8]
add r11d, r10d
cmp ecx, 0x1f
ja 0x699e8d90
test r8d, r8d
je 0x699e8da9
movzx edx, byte [r15 + 1]
lea r8d, [r14 - 2]
lea r12, [r15 + 2]
shl edx, cl
lea ecx, [rbp + 0x10]
add r11d, edx
cmp ecx, 0x1f
ja 0x699e8d90
test r8d, r8d
je 0x699e8da9
movzx r9d, byte [r15 + 2]
lea r8d, [r14 - 3]
lea r12, [r15 + 3]
shl r9d, cl
lea ecx, [rbp + 0x18]
add r11d, r9d
cmp ecx, 0x1f
ja 0x699e8d90
test r8d, r8d
je 0x699e8da9
lea r12, [r15 + 4]
movzx r15d, byte [r15 + 3]
sub r14d, 4
add ebp, 0x20
shl r15d, cl
add r11d, r15d
mov r8d, dword [rsp + 0x48]
mov r10d, esi
sub r8d, dword [rsp + 0x40]
and r10d, 4
add dword [r13 + 0x1c], r8d
add dword [rbx + 0x24], r8d
test r8d, r8d
je 0x699e83a2
test r10d, r10d
jne 0x699e8369
mov ebp, dword [rsp + 0x40]
mov r15, r12
xor r11d, r11d
mov dword [rsp + 0x48], ebp
xor ebp, ebp
nop word [rax + rax]
mov dword [rbx + 8], 0x3f4f
jmp 0x699e5ee6
mov dword [rbx + 0x1be4], eax
shr esi, cl
sub ebp, eax
mov dword [rbx + 0x50], r12d
mov dword [rbx + 8], 0x3f4d
mov edx, dword [rsp + 0x40]
test edx, edx
je 0x699e8d9a
mov rdi, qword [rsp + 0x38]
mov r9d, dword [rbx + 0x50]
sub edx, 1
mov dword [rsp + 0x40], edx
lea r12, [rdi + 1]
mov byte [rdi], r9b
mov qword [rsp + 0x38], r12
mov dword [rbx + 8], 0x3f48
cmp r14d, 5
jbe 0x699e6910
mov r12d, dword [rsp + 0x40]
cmp r12d, 0x101
jbe 0x699e6910
mov r11, qword [rsp + 0x38]
mov edx, dword [rsp + 0x48]
mov qword [r13], r15
mov rcx, r13
mov dword [r13 + 8], r14d
mov qword [r13 + 0x10], r11
mov dword [r13 + 0x18], r12d
mov dword [rbx + 0x48], esi
mov dword [rbx + 0x4c], ebp
call fcn.699ea6d0
mov rbp, qword [r13 + 0x10]
mov r14d, dword [r13 + 0x18]
mov eax, dword [rbx + 8]
mov r15, qword [r13]
mov qword [rsp + 0x38], rbp
mov esi, dword [rbx + 0x48]
mov dword [rsp + 0x40], r14d
mov ebp, dword [rbx + 0x4c]
mov r14d, dword [r13 + 8]
cmp eax, 0x3f3f
je 0x699e7b50
sub eax, 0x3f34
jmp 0x699e53cd
movabs rdi, 0x500000009
cmp dword [rsp + 0xd8], 6
mov dword [rbx + 8], 0x3f47
mov qword [rbx + 0x70], rdi
movups xmmword [rbx + 0x60], xmm6
je 0x699e93e1
shr esi, 3
sub ebp, 3
mov r15, r10
nop dword [rax + rax]
mov dword [rbx + 8], 0x3f48
jmp case.0x699e53e0.20
mov r8d, dword [rbx + 0x58]
test r8d, r8d
jne 0x699e7b60
mov dword [rbx + 8], 0x3f4c
mov r8d, dword [rsp + 0x40]
test r8d, r8d
je 0x699e8d9a
mov r12d, dword [rsp + 0x48]
mov r10d, dword [rbx + 0x54]
mov edx, r12d
sub edx, r8d
cmp r10d, edx
jbe 0x699e75f0
add r10d, r8d
mov edx, r10d
sub edx, r12d
cmp dword [rbx + 0x38], edx
jae 0x699e6b20
mov r11d, dword [rbx + 0x1be0]
test r11d, r11d
je 0x699e6b20
mov r11d, esi
lea rsi, [0x699fe7c9]
mov qword [r13 + 0x20], rsi
mov dword [rbx + 8], 0x3f51
mov esi, dword [rsp + 0x48]
mov r12d, 0xfffffffd
sub esi, dword [rsp + 0x40]
jmp 0x699e5a0e
mov edx, dword [rbx + 0x58]
test edx, edx
jne 0x699e7650
mov r9d, dword [rbx + 0x50]
mov dword [rbx + 0x1be8], r9d
mov dword [rbx + 8], 0x3f4a
mov ecx, dword [rbx + 0x74]
mov r9d, 0xffffffff
mov r12, qword [rbx + 0x68]
shl r9d, cl
not r9d
mov edx, r9d
and edx, esi
lea r10, [r12 + rdx*4]
movzx edx, byte [r10 + 1]
movzx r8d, byte [r10]
movzx edi, word [r10 + 2]
movzx eax, dl
mov r10d, eax
cmp ebp, eax
jae 0x699e72b7
test r14d, r14d
je 0x699e5a00
mov eax, r14d
lea r8d, [r14 - 1]
and eax, 3
je 0x699e57df
cmp eax, 1
je 0x699e579b
cmp eax, 2
je 0x699e5762
movzx edi, byte [r15]
mov ecx, ebp
mov r11d, r9d
add ebp, 8
mov r14d, r8d
add r15, 1
shl edi, cl
add esi, edi
and r11d, esi
lea r10, [r12 + r11*4]
movzx edx, byte [r10 + 1]
movzx r8d, byte [r10]
movzx edi, word [r10 + 2]
movzx eax, dl
mov r10d, eax
cmp eax, ebp
jbe 0x699e72b7
movzx edx, byte [r15]
mov ecx, ebp
mov r8d, r9d
add ebp, 8
add r15, 1
sub r14d, 1
shl edx, cl
add esi, edx
and r8d, esi
lea rax, [r12 + r8*4]
movzx edx, byte [rax + 1]
movzx r8d, byte [rax]
movzx edi, word [rax + 2]
movzx eax, dl
mov r10d, eax
cmp eax, ebp
jbe 0x699e72b7
movzx edi, byte [r15]
mov ecx, ebp
mov r11d, r9d
add ebp, 8
add r15, 1
sub r14d, 1
shl edi, cl
add esi, edi
and r11d, esi
lea r10, [r12 + r11*4]
movzx edx, byte [r10 + 1]
movzx r8d, byte [r10]
movzx edi, word [r10 + 2]
movzx eax, dl
mov r10d, eax
cmp eax, ebp
jbe 0x699e72b7
test r14d, r14d
je 0x699e5a00
mov qword [rsp + 0x50], rbx
mov ecx, ebp
movzx ebx, byte [r15]
mov edx, r9d
lea r11, [r15 + 1]
lea ebp, [r14 - 1]
mov r14d, ebp
mov r15, r11
shl ebx, cl
add esi, ebx
lea ebx, [rcx + 8]
and edx, esi
mov ecx, ebx
lea rax, [r12 + rdx*4]
movzx edx, byte [rax + 1]
movzx r8d, byte [rax]
movzx edi, word [rax + 2]
movzx eax, dl
mov r10d, eax
cmp eax, ebx
jbe 0x699e72b0
movzx r8d, byte [r15]
mov edi, r9d
add r15, 1
sub r14d, 1
shl r8d, cl
add ecx, 8
add esi, r8d
and edi, esi
lea r10, [r12 + rdi*4]
movzx edx, byte [r10 + 1]
movzx r8d, byte [r10]
movzx edi, word [r10 + 2]
movzx eax, dl
mov r10d, eax
cmp eax, ecx
jbe 0x699e72b0
movzx edx, byte [r11 + 1]
mov eax, r9d
lea r14d, [rbp - 2]
lea r15, [r11 + 2]
shl edx, cl
lea ecx, [rbx + 0x10]
add esi, edx
and eax, esi
lea rdi, [r12 + rax*4]
movzx edx, byte [rdi + 1]
movzx r8d, byte [rdi]
movzx edi, word [rdi + 2]
movzx eax, dl
mov r10d, eax
cmp eax, ecx
jbe 0x699e72b0
lea r14d, [rbp - 3]
movzx ebp, byte [r11 + 2]
lea r15, [r11 + 3]
mov r11d, r9d
shl ebp, cl
lea ecx, [rbx + 0x18]
add esi, ebp
and r11d, esi
lea rbx, [r12 + r11*4]
movzx edx, byte [rbx + 1]
movzx r8d, byte [rbx]
movzx edi, word [rbx + 2]
movzx eax, dl
mov r10d, eax
cmp eax, ecx
jbe 0x699e72b0
test r14d, r14d
jne 0x699e57e6
mov rbx, qword [rsp + 0x50]
mov r11d, esi
mov ebp, ecx
jmp 0x699e5a03
cmp ebp, 0x1f
ja 0x699e9058
test r14d, r14d
je 0x699e5a00
movzx edi, byte [r15]
mov ecx, ebp
lea r9d, [r14 - 1]
lea r8, [r15 + 1]
shl edi, cl
lea ecx, [rbp + 8]
add esi, edi
cmp ecx, 0x1f
ja 0x699e8454
test r9d, r9d
je 0x699e8ad1
movzx r11d, byte [r15 + 1]
lea r9d, [r14 - 2]
lea r8, [r15 + 2]
shl r11d, cl
lea ecx, [rbp + 0x10]
add esi, r11d
cmp ecx, 0x1f
ja 0x699e8454
test r9d, r9d
je 0x699e8ad1
movzx edx, byte [r15 + 2]
add ebp, 0x18
lea r9d, [r14 - 3]
lea r8, [r15 + 3]
shl edx, cl
add esi, edx
cmp ebp, 0x1f
ja 0x699e8454
test r9d, r9d
je 0x699e9159
lea r8, [r15 + 4]
movzx r15d, byte [r15 + 3]
mov ecx, ebp
sub r14d, 4
shl r15d, cl
add esi, r15d
mov eax, esi
mov r12d, esi
mov r10d, esi
shl esi, 8
shr eax, 0x18
shl r12d, 0x18
and esi, 0xff0000
mov r15, r8
shr r10d, 8
add r12d, eax
and r10d, 0xff00
lea ebp, [r12 + r10]
lea esi, [rbp + rsi]
xor ebp, ebp
mov dword [rbx + 0x20], esi
mov dword [r13 + 0x4c], esi
xor esi, esi
mov dword [rbx + 8], 0x3f3e
mov edi, dword [rbx + 0x14]
test edi, edi
je 0x699e91d8
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.699e1540
mov dword [rbx + 0x20], eax
mov dword [r13 + 0x4c], eax
mov dword [rbx + 8], 0x3f3f
cmp dword [rsp + 0x4c], 1
ja case.0x699e53e0.12
nop word [rax + rax]
mov r11d, esi
mov esi, dword [rsp + 0x48]
xor r12d, r12d
sub esi, dword [rsp + 0x40]
mov r10, qword [rsp + 0x38]
mov eax, dword [rsp + 0x40]
mov qword [r13], r15
mov dword [r13 + 8], r14d
mov qword [r13 + 0x10], r10
mov dword [r13 + 0x18], eax
mov dword [rbx + 0x48], r11d
mov r11d, dword [rbx + 0x34]
mov dword [rbx + 0x4c], ebp
test r11d, r11d
jne 0x699e5a60
cmp dword [rsp + 0x48], eax
je 0x699e5ac8
mov ebp, dword [rbx + 8]
cmp ebp, 0x3f50
ja 0x699e5ac8
cmp dword [rsp + 0xd8], 4
jne 0x699e5a60
cmp ebp, 0x3f4d
ja 0x699e5ac8
nop
mov r15, qword [r13 + 0x28]
mov r14, qword [r15 + 0x40]
test r14, r14
je 0x699e5c00
mov r8d, dword [r15 + 0x34]
test r8d, r8d
jne 0x699e5a93
mov ecx, dword [r15 + 0x30]
mov r8d, 1
mov qword [r15 + 0x38], 0
shl r8d, cl
mov dword [r15 + 0x34], r8d
cmp esi, r8d
jb 0x699e5b90
mov rdx, qword [rsp + 0x38]
mov rcx, r14
sub rdx, r8
call sub.msvcrt.dll_memcpy
mov dword [r15 + 0x3c], 0
mov eax, dword [r15 + 0x34]
mov r14d, dword [r13 + 8]
mov esi, dword [rsp + 0x48]
sub esi, dword [r13 + 0x18]
mov dword [r15 + 0x38], eax
mov r15d, dword [rsp + 0x44]
add dword [r13 + 0x1c], esi
sub r15d, r14d
add dword [r13 + 0xc], r15d
add dword [rbx + 0x24], esi
test byte [rbx + 0x10], 4
je 0x699e5ae5
test esi, esi
jne 0x699e5b60
mov ecx, dword [rbx + 0xc]
mov r14d, dword [rbx + 0x4c]
test ecx, ecx
je 0x699e5af4
add r14d, 0x40
mov ebx, dword [rbx + 8]
cmp ebx, 0x3f3f
je 0x699e5b58
cmp ebx, 0x3f47
je 0x699e5b0f
cmp ebx, 0x3f42
jne 0x699e5b16
add r14d, 0x100
or r15d, esi
mov dword [r13 + 0x48], r14d
je 0x699e5b2d
cmp dword [rsp + 0xd8], 4
jne 0x699e5333
test r12d, r12d
jne 0x699e5333
mov r12d, 0xfffffffb
jmp 0x699e5333
test esi, esi
je 0x699e5371
jmp 0x699e5333
sub r14d, 0xffffff80
jmp 0x699e5b16
mov rdx, qword [r13 + 0x10]
mov ebp, dword [rbx + 0x18]
mov r11d, esi
mov r8d, esi
mov ecx, dword [rbx + 0x20]
sub rdx, r11
test ebp, ebp
je 0x699e5c40
call fcn.699e1da0
mov dword [rbx + 0x20], eax
mov dword [r13 + 0x4c], eax
jmp 0x699e5ae5
mov ecx, dword [r15 + 0x3c]
mov rdx, qword [rsp + 0x38]
sub r8d, ecx
cmp r8d, esi
cmova r8d, esi
add rcx, r14
mov edi, r8d
mov r8d, esi
sub rdx, r8
mov r8d, edi
call sub.msvcrt.dll_memcpy
sub esi, edi
jne 0x699e70b0
mov r9d, dword [r15 + 0x3c]
mov edx, dword [r15 + 0x34]
mov r10d, dword [r15 + 0x38]
mov r14d, dword [r13 + 8]
add r9d, edi
cmp r9d, edx
cmove r9d, esi
mov esi, dword [rsp + 0x48]
sub esi, dword [r13 + 0x18]
mov dword [r15 + 0x3c], r9d
cmp edx, r10d
jbe 0x699e5ac8
add edi, r10d
mov dword [r15 + 0x38], edi
jmp 0x699e5ac8
mov ecx, dword [r15 + 0x30]
mov edx, 1
mov r8d, 1
shl edx, cl
mov rcx, qword [r13 + 0x40]
call qword [r13 + 0x30]
mov qword [r15 + 0x40], rax
mov r14, rax
test rax, rax
jne 0x699e5a71
mov dword [rbx + 8], 0x3f52
mov r12d, 0xfffffffc
jmp 0x699e5333
call fcn.699e1540
jmp 0x699e5b80
mov edx, dword [rbx + 0x84]
mov dword [rsp + 0x50], edx
mov edx, dword [rbx + 0x7c]
mov dword [rsp + 0x5c], edx
add edx, dword [rbx + 0x80]
mov dword [rsp + 0x58], edx
cmp edx, dword [rsp + 0x50]
jbe 0x699e733c
mov ecx, dword [rbx + 0x70]
mov edx, 0xffffffff
mov r8, qword [rbx + 0x60]
shl edx, cl
not edx
mov r10d, esi
and r10d, edx
lea r9, [r8 + r10*4]
movzx ecx, byte [r9 + 1]
movzx r11d, word [r9 + 2]
movzx eax, cl
cmp eax, ebp
jbe 0x699e7305
test r14d, r14d
je 0x699e5a00
mov r12d, r14d
lea edi, [r14 - 1]
and r12d, 3
je 0x699e5d70
cmp r12d, 1
je 0x699e5d33
cmp r12d, 2
je 0x699e5cfd
movzx eax, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
mov r14d, edi
shl eax, cl
add esi, eax
mov r11d, esi
and r11d, edx
lea r10, [r8 + r11*4]
movzx ecx, byte [r10 + 1]
movzx r11d, word [r10 + 2]
movzx eax, cl
cmp eax, ebp
jbe 0x699e7305
movzx r9d, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl r9d, cl
add esi, r9d
mov edi, esi
and edi, edx
lea r12, [r8 + rdi*4]
movzx ecx, byte [r12 + 1]
movzx r11d, word [r12 + 2]
movzx eax, cl
cmp eax, ebp
jbe 0x699e7305
movzx eax, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl eax, cl
add esi, eax
mov r11d, esi
and r11d, edx
lea r10, [r8 + r11*4]
movzx ecx, byte [r10 + 1]
movzx r11d, word [r10 + 2]
movzx eax, cl
cmp eax, ebp
jbe 0x699e7305
test r14d, r14d
je 0x699e5a00
mov ecx, ebp
movzx ebp, byte [r15]
lea r12, [r15 + 1]
lea edi, [r14 - 1]
mov r14d, edi
mov r15, r12
shl ebp, cl
add esi, ebp
lea ebp, [rcx + 8]
mov r9d, esi
mov ecx, ebp
and r9d, edx
lea rax, [r8 + r9*4]
movzx r9d, byte [rax + 1]
movzx r11d, word [rax + 2]
movzx eax, r9b
cmp eax, ebp
jbe 0x699e7302
movzx r11d, byte [r15]
add r15, 1
sub r14d, 1
shl r11d, cl
add ecx, 8
add esi, r11d
mov r10d, esi
and r10d, edx
lea rax, [r8 + r10*4]
movzx r9d, byte [rax + 1]
movzx r11d, word [rax + 2]
movzx eax, r9b
cmp eax, ecx
jbe 0x699e7300
movzx r9d, byte [r12 + 1]
lea r14d, [rdi - 2]
lea r15, [r12 + 2]
shl r9d, cl
lea ecx, [rbp + 0x10]
add esi, r9d
mov r11d, esi
and r11d, edx
lea r10, [r8 + r11*4]
movzx r9d, byte [r10 + 1]
movzx r11d, word [r10 + 2]
movzx eax, r9b
cmp eax, ecx
jbe 0x699e7300
lea r14d, [rdi - 3]
movzx edi, byte [r12 + 2]
lea r15, [r12 + 3]
shl edi, cl
lea ecx, [rbp + 0x18]
add esi, edi
mov r12d, esi
and r12d, edx
lea rbp, [r8 + r12*4]
movzx r9d, byte [rbp + 1]
movzx r11d, word [rbp + 2]
movzx eax, r9b
cmp eax, ecx
jbe 0x699e7300
test r14d, r14d
jne 0x699e5d72
nop dword [rax]
mov r11d, esi
mov ebp, ecx
jmp 0x699e5a03
mov r9d, dword [rbx + 0x50]
mov dword [rbx + 8], 0x3f43
test r9d, r9d
je 0x699e59e5
cmp r14d, r9d
mov r12d, dword [rsp + 0x40]
cmovbe r9d, r14d
cmp r9d, r12d
cmova r9d, r12d
mov edi, r9d
test r9d, r9d
je 0x699e920b
mov r12d, r9d
mov rcx, qword [rsp + 0x38]
mov rdx, r15
sub r14d, edi
mov r8, r12
add r15, r12
call sub.msvcrt.dll_memcpy
sub dword [rsp + 0x40], edi
mov eax, dword [rbx + 8]
add qword [rsp + 0x38], r12
sub dword [rbx + 0x50], edi
jmp 0x699e55d9
mov r9d, dword [rbx + 0x50]
jmp 0x699e5e7b
mov r11d, esi
mov esi, dword [rbx + 0x10]
test esi, esi
je 0x699e8b0b
mov r12d, dword [rbx + 0x18]
test r12d, r12d
je 0x699e8b0b
cmp ebp, 0x1f
ja 0x699e8afb
test r14d, r14d
je 0x699e5a03
movzx edi, byte [r15]
mov ecx, ebp
lea r10d, [r14 - 1]
lea rax, [r15 + 1]
shl edi, cl
lea ecx, [rbp + 8]
add r11d, edi
cmp ecx, 0x1f
ja 0x699e82be
test r10d, r10d
je 0x699e8303
movzx esi, byte [r15 + 1]
lea r10d, [r14 - 2]
lea rax, [r15 + 2]
shl esi, cl
lea ecx, [rbp + 0x10]
add r11d, esi
cmp ecx, 0x1f
ja 0x699e82be
test r10d, r10d
je 0x699e8303
movzx edx, byte [r15 + 2]
lea r10d, [r14 - 3]
lea rax, [r15 + 3]
shl edx, cl
lea ecx, [rbp + 0x18]
add r11d, edx
cmp ecx, 0x1f
ja 0x699e82be
test r10d, r10d
je 0x699e8303
movzx r8d, byte [r15 + 3]
sub r14d, 4
lea rax, [r15 + 4]
add ebp, 0x20
shl r8d, cl
add r11d, r8d
cmp dword [rbx + 0x24], r11d
je 0x699e8b03
lea r9, str.incorrect_length_check
mov r15, rax
mov qword [r13 + 0x20], r9
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
mov r8d, dword [rbx + 0x84]
mov edi, dword [rbx + 0x78]
cmp r8d, edi
jae 0x699e8860
mov ecx, ebp
lea r12, [0x69a2c460]
cmp ecx, 2
ja 0x699e6035
test r14d, r14d
je 0x699e8a9d
movzx ebp, byte [r15]
sub r14d, 1
lea rdx, [r15 + 1]
shl ebp, cl
add ecx, 8
add esi, ebp
mov r11d, esi
movzx r9d, word [r12 + r8*2]
lea eax, [r8 + 1]
shr esi, 3
and r11d, 7
mov dword [rbx + 0x84], eax
sub ecx, 3
mov word [rbx + r9*2 + 0x90], r11w
cmp eax, edi
jae 0x699e8858
mov r15, rdx
mov r8d, eax
cmp ecx, 2
jbe 0x699e5fe1
mov rdx, r15
jmp 0x699e5ffd
mov r8d, dword [rbx + 0x18]
nop dword [rax]
test r8d, 0x200
jne 0x699e6e38
mov rdx, qword [rbx + 0x28]
test rdx, rdx
je 0x699e6071
sar r8d, 9
mov dword [rdx + 0x40], 1
and r8d, 1
mov dword [rdx + 0x3c], r8d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.699e1da0
mov dword [rbx + 0x20], eax
mov dword [r13 + 0x4c], eax
mov dword [rbx + 8], 0x3f3f
jmp case.0x699e53e0.11
cmp ebp, 0x1f
ja 0x699e761d
test r14d, r14d
je 0x699e5a00
mov eax, 0x1f
sub eax, ebp
shr eax, 3
and eax, 7
je 0x699e61b2
movzx r11d, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl r11d, cl
add esi, r11d
cmp ebp, 0x1f
ja 0x699e761d
test r14d, r14d
je 0x699e5a00
cmp eax, 1
je 0x699e61b2
cmp eax, 2
je 0x699e6197
cmp eax, 3
je 0x699e617a
cmp eax, 4
je 0x699e615d
cmp eax, 5
je 0x699e6142
cmp eax, 6
je 0x699e6125
movzx r8d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r8d, cl
add esi, r8d
sub r14d, 1
je 0x699e5a00
movzx r9d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r9d, cl
add esi, r9d
sub r14d, 1
je 0x699e5a00
movzx edi, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl edi, cl
add esi, edi
sub r14d, 1
je 0x699e5a00
movzx r10d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r10d, cl
add esi, r10d
sub r14d, 1
je 0x699e5a00
movzx r12d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r12d, cl
add esi, r12d
sub r14d, 1
je 0x699e5a00
movzx edx, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl edx, cl
add esi, edx
sub r14d, 1
je 0x699e5a00
mov ecx, ebp
movzx r11d, byte [r15]
lea rax, [r15 + 1]
lea ebp, [r14 - 1]
lea r8d, [rcx + 8]
mov r14d, ebp
mov r15, rax
shl r11d, cl
mov ecx, r8d
add esi, r11d
cmp r8d, 0x1f
ja 0x699e761d
test r14d, r14d
je 0x699e5e60
movzx r12d, byte [r15]
add r15, 1
shl r12d, cl
add ecx, 8
add esi, r12d
sub r14d, 1
je 0x699e5e60
movzx r10d, byte [rax + 1]
mov r14d, ebp
lea r15, [rax + 2]
shl r10d, cl
lea ecx, [r8 + 0x10]
add esi, r10d
sub r14d, 2
je 0x699e5e60
movzx r14d, byte [rax + 2]
lea r15, [rax + 3]
shl r14d, cl
lea ecx, [r8 + 0x18]
add esi, r14d
mov r14d, ebp
sub r14d, 3
je 0x699e5e60
movzx r11d, byte [rax + 3]
mov r14d, ebp
lea r15, [rax + 4]
shl r11d, cl
lea ecx, [r8 + 0x20]
add esi, r11d
sub r14d, 4
je 0x699e5e60
movzx r9d, byte [rax + 4]
mov r14d, ebp
lea r15, [rax + 5]
shl r9d, cl
lea ecx, [r8 + 0x28]
add esi, r9d
sub r14d, 5
je 0x699e5e60
movzx edx, byte [rax + 5]
mov r14d, ebp
lea r15, [rax + 6]
shl edx, cl
lea ecx, [r8 + 0x30]
add esi, edx
sub r14d, 6
je 0x699e5e60
lea r15, [rax + 7]
movzx eax, byte [rax + 6]
shl eax, cl
lea ecx, [r8 + 0x38]
add esi, eax
sub ebp, 7
mov r14d, ebp
jne 0x699e61b4
jmp 0x699e5e60
cmp ebp, 0xf
ja 0x699e7378
test r14d, r14d
je 0x699e5a00
mov edi, 0xf
sub edi, ebp
shr edi, 3
and edi, 7
je 0x699e63de
movzx r10d, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl r10d, cl
add esi, r10d
cmp ebp, 0xf
ja 0x699e7378
test r14d, r14d
je 0x699e5a00
cmp edi, 1
je 0x699e63de
cmp edi, 2
je 0x699e63c1
cmp edi, 3
je 0x699e63a4
cmp edi, 4
je 0x699e6387
cmp edi, 5
je 0x699e636c
cmp edi, 6
je 0x699e6351
movzx r12d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r12d, cl
add esi, r12d
sub r14d, 1
je 0x699e5a00
movzx edx, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl edx, cl
add esi, edx
sub r14d, 1
je 0x699e5a00
movzx eax, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl eax, cl
add esi, eax
sub r14d, 1
je 0x699e5a00
movzx r11d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r11d, cl
add esi, r11d
sub r14d, 1
je 0x699e5a00
movzx r8d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r8d, cl
add esi, r8d
sub r14d, 1
je 0x699e5a00
movzx r9d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r9d, cl
add esi, r9d
sub r14d, 1
je 0x699e5a00
mov ecx, ebp
movzx r10d, byte [r15]
lea rdi, [r15 + 1]
lea ebp, [r14 - 1]
lea r12d, [rcx + 8]
mov r14d, ebp
mov r15, rdi
shl r10d, cl
mov ecx, r12d
add esi, r10d
cmp r12d, 0xf
ja 0x699e7378
test r14d, r14d
je 0x699e5e60
movzx eax, byte [r15]
add r15, 1
shl eax, cl
add ecx, 8
add esi, eax
sub r14d, 1
je 0x699e5e60
movzx r10d, byte [rdi + 1]
mov r14d, ebp
lea r15, [rdi + 2]
shl r10d, cl
lea ecx, [r12 + 0x10]
add esi, r10d
sub r14d, 2
je 0x699e5e60
movzx r14d, byte [rdi + 2]
lea r15, [rdi + 3]
shl r14d, cl
lea ecx, [r12 + 0x18]
add esi, r14d
mov r14d, ebp
sub r14d, 3
je 0x699e5e60
movzx r11d, byte [rdi + 3]
mov r14d, ebp
lea r15, [rdi + 4]
shl r11d, cl
lea ecx, [r12 + 0x20]
add esi, r11d
sub r14d, 4
je 0x699e5e60
movzx r9d, byte [rdi + 4]
mov r14d, ebp
lea r15, [rdi + 5]
shl r9d, cl
lea ecx, [r12 + 0x28]
add esi, r9d
sub r14d, 5
je 0x699e5e60
movzx edx, byte [rdi + 5]
mov r14d, ebp
lea r15, [rdi + 6]
shl edx, cl
lea ecx, [r12 + 0x30]
add esi, edx
sub r14d, 6
je 0x699e5e60
lea r15, [rdi + 7]
movzx edi, byte [rdi + 6]
shl edi, cl
lea ecx, [r12 + 0x38]
add esi, edi
sub ebp, 7
mov r14d, ebp
jne 0x699e63e0
jmp 0x699e5e60
mov r11d, esi
mov r12d, 1
mov esi, dword [rsp + 0x48]
sub esi, dword [rsp + 0x40]
jmp 0x699e5a0e
mov r8d, dword [rbx + 0x18]
mov ecx, r8d
and ecx, 0x400
test ecx, ecx
je 0x699e65a6
mov eax, dword [rbx + 0x50]
cmp r14d, eax
mov edi, eax
cmovbe edi, r14d
test edi, edi
je 0x699e659a
mov r11, qword [rbx + 0x28]
mov r12d, edi
test r11, r11
je 0x699e6579
mov rdx, qword [r11 + 0x10]
test rdx, rdx
je 0x699e6579
mov r10d, dword [r11 + 0x18]
mov r9d, dword [r11 + 0x1c]
mov r8, r12
mov ecx, r10d
sub ecx, eax
lea r11d, [rdi + rcx]
cmp r11d, r9d
jbe 0x699e656a
lea r8d, [r9 + rax]
sub r8d, r10d
add rcx, rdx
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov r8d, dword [rbx + 0x18]
and r8d, 0x200
je 0x699e658c
test byte [rbx + 0x10], 4
jne 0x699e8a64
mov eax, dword [rbx + 0x50]
sub r14d, edi
add r15, r12
sub eax, edi
mov dword [rbx + 0x50], eax
test eax, eax
jne 0x699e5a00
mov r8d, dword [rbx + 0x18]
mov dword [rbx + 0x50], 0
mov dword [rbx + 8], 0x3f3a
test r8d, 0x800
jne 0x699e70d0
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x699e65d2
mov qword [rcx + 0x20], 0
mov dword [rbx + 0x50], 0
mov dword [rbx + 8], 0x3f3b
test r8d, 0x1000
jne 0x699e6ec0
mov r11, qword [rbx + 0x28]
test r11, r11
je 0x699e65fe
mov qword [r11 + 0x30], 0
mov dword [rbx + 8], 0x3f3c
jmp 0x699e6048
mov r8d, dword [rbx + 0x18]
jmp 0x699e65b4
mov r8d, dword [rbx + 0x18]
jmp 0x699e65e0
mov eax, dword [rbx + 0x18]
mov r8d, eax
test ah, 4
jne 0x699e7da3
mov r9, qword [rbx + 0x28]
xor ecx, ecx
test r9, r9
je 0x699e6652
mov qword [r9 + 0x10], 0
mov dword [rbx + 8], 0x3f39
jmp 0x699e651d
mov r12d, 0xfffffffc
jmp 0x699e5333
cmp ebp, 0xf
ja 0x699e9040
test r14d, r14d
je 0x699e5a00
movzx r10d, byte [r15]
mov ecx, ebp
lea r9d, [r14 - 1]
lea rdi, [r15 + 1]
shl r10d, cl
lea ecx, [rbp + 8]
add esi, r10d
cmp ecx, 0xf
ja 0x699e907a
test r9d, r9d
je 0x699e7602
movzx r12d, byte [r15 + 1]
sub r14d, 2
lea rdi, [r15 + 2]
add ebp, 0x10
shl r12d, cl
add esi, r12d
mov dword [rbx + 0x18], esi
cmp sil, 8
je 0x699e831b
lea rdx, str.unknown_compression_method
mov r11d, esi
mov r15, rdi
mov qword [r13 + 0x20], rdx
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
cmp ebp, 2
ja 0x699e9060
test r14d, r14d
je 0x699e9099
movzx eax, byte [r15]
mov ecx, ebp
sub r14d, 1
lea r10, [r15 + 1]
add ebp, 8
shl eax, cl
add esi, eax
mov r11d, esi
mov edi, esi
shr r11d, 1
and edi, 1
and r11d, 3
mov dword [rbx + 0xc], edi
cmp r11d, 2
je 0x699e683e
cmp r11d, 3
je 0x699e848a
cmp r11d, 1
je 0x699e55e3
mov dword [rbx + 8], 0x3f41
shr esi, 3
sub ebp, 3
mov r15, r10
nop word [rax + rax]
mov ecx, ebp
and ebp, 0xfffffff8
and ecx, 7
shr esi, cl
cmp ebp, 0x1f
ja 0x699e9048
test r14d, r14d
je 0x699e5a00
movzx r10d, byte [r15]
mov ecx, ebp
lea r8d, [r14 - 1]
lea rdx, [r15 + 1]
shl r10d, cl
lea ecx, [rbp + 8]
add esi, r10d
cmp ecx, 0x1f
ja 0x699e8424
test r8d, r8d
je 0x699e847d
movzx eax, byte [r15 + 1]
lea r8d, [r14 - 2]
lea rdx, [r15 + 2]
shl eax, cl
lea ecx, [rbp + 0x10]
add esi, eax
cmp ecx, 0x1f
ja 0x699e8424
test r8d, r8d
je 0x699e847d
movzx r11d, byte [r15 + 2]
lea r8d, [r14 - 3]
lea rdx, [r15 + 3]
shl r11d, cl
lea ecx, [rbp + 0x18]
add esi, r11d
cmp ecx, 0x1f
ja 0x699e8424
test r8d, r8d
je 0x699e847d
lea rdx, [r15 + 4]
movzx r15d, byte [r15 + 3]
sub r14d, 4
add ebp, 0x20
shl r15d, cl
add esi, r15d
mov edi, esi
movzx r9d, si
shr edi, 0x10
xor edi, 0xffff
cmp r9d, edi
je 0x699e8344
mov r11d, esi
lea rsi, str.invalid_stored_block_lengths
mov r15, rdx
mov qword [r13 + 0x20], rsi
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
mov dword [rbx + 8], 0x3f44
shr esi, 3
sub ebp, 3
mov r15, r10
nop
cmp ebp, 0xd
ja 0x699e9050
test r14d, r14d
je 0x699e5a00
movzx r9d, byte [r15]
mov ecx, ebp
lea r12d, [r14 - 1]
lea rdx, [r15 + 1]
shl r9d, cl
lea ecx, [rbp + 8]
add esi, r9d
cmp ecx, 0xd
ja 0x699e90e2
test r12d, r12d
je 0x699e7093
movzx r8d, byte [r15 + 1]
sub r14d, 2
lea rdx, [r15 + 2]
add ebp, 0x10
shl r8d, cl
add esi, r8d
mov r10d, esi
mov edi, esi
mov r15d, esi
sub ebp, 0xe
shr r10d, 5
shr edi, 0xa
and r15d, 0x1f
and r10d, 0x1f
and edi, 0xf
add r15d, 0x101
shr esi, 0xe
add r10d, 1
add edi, 4
mov dword [rbx + 0x7c], r15d
mov dword [rbx + 0x80], r10d
mov dword [rbx + 0x78], edi
cmp r10d, 0x1e
ja 0x699e68f0
cmp r15d, 0x11e
jbe 0x699e8b37
lea r15, str.too_many_length_or_distance_symbols
mov r11d, esi
mov qword [r13 + 0x20], r15
mov r15, rdx
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
mov ecx, dword [rbx + 0x70]
mov r9d, 0xffffffff
mov r8, qword [rbx + 0x60]
mov r10d, esi
mov dword [rbx + 0x1be4], 0
shl r9d, cl
not r9d
and r10d, r9d
lea rax, [r8 + r10*4]
movzx ecx, byte [rax + 1]
movzx edx, byte [rax]
movzx r12d, word [rax + 2]
movzx eax, cl
cmp ebp, eax
jae 0x699e7899
test r14d, r14d
je 0x699e5a00
mov edi, r14d
lea edx, [r14 - 1]
and edi, 3
je 0x699e6a22
cmp edi, 1
je 0x699e69df
cmp edi, 2
je 0x699e69aa
movzx r12d, byte [r15]
mov ecx, ebp
add ebp, 8
mov r14d, edx
add r15, 1
shl r12d, cl
add esi, r12d
mov r11d, esi
and r11d, r9d
lea r10, [r8 + r11*4]
movzx ecx, byte [r10 + 1]
movzx edx, byte [r10]
movzx r12d, word [r10 + 2]
movzx eax, cl
cmp eax, ebp
jbe 0x699e7899
movzx eax, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl eax, cl
add esi, eax
mov edx, esi
and edx, r9d
lea rdi, [r8 + rdx*4]
movzx ecx, byte [rdi + 1]
movzx edx, byte [rdi]
movzx r12d, word [rdi + 2]
movzx eax, cl
cmp eax, ebp
jbe 0x699e7899
movzx r12d, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl r12d, cl
add esi, r12d
mov r11d, esi
and r11d, r9d
lea r10, [r8 + r11*4]
movzx ecx, byte [r10 + 1]
movzx edx, byte [r10]
movzx r12d, word [r10 + 2]
movzx eax, cl
cmp eax, ebp
jbe 0x699e7899
test r14d, r14d
je 0x699e5a00
mov ecx, ebp
movzx ebp, byte [r15]
lea r11, [r15 + 1]
lea edi, [r14 - 1]
mov r14d, edi
mov r15, r11
shl ebp, cl
add esi, ebp
lea ebp, [rcx + 8]
mov eax, esi
mov ecx, ebp
and eax, r9d
lea r12, [r8 + rax*4]
movzx r10d, byte [r12 + 1]
movzx edx, byte [r12]
movzx r12d, word [r12 + 2]
movzx eax, r10b
cmp eax, ebp
jbe 0x699e7896
movzx edx, byte [r15]
add r15, 1
sub r14d, 1
shl edx, cl
add ecx, 8
add esi, edx
mov r10d, esi
and r10d, r9d
lea rax, [r8 + r10*4]
movzx r10d, byte [rax + 1]
movzx edx, byte [rax]
movzx r12d, word [rax + 2]
movzx eax, r10b
cmp eax, ecx
jbe 0x699e7894
movzx r12d, byte [r11 + 1]
lea r14d, [rdi - 2]
lea r15, [r11 + 2]
shl r12d, cl
lea ecx, [rbp + 0x10]
add esi, r12d
mov edx, esi
and edx, r9d
lea rax, [r8 + rdx*4]
movzx r10d, byte [rax + 1]
movzx edx, byte [rax]
movzx r12d, word [rax + 2]
movzx eax, r10b
cmp eax, ecx
jbe 0x699e7894
lea r14d, [rdi - 3]
movzx edi, byte [r11 + 2]
lea r15, [r11 + 3]
shl edi, cl
lea ecx, [rbp + 0x18]
add esi, edi
mov r11d, esi
and r11d, r9d
lea rbp, [r8 + r11*4]
movzx r10d, byte [rbp + 1]
movzx edx, byte [rbp]
movzx r12d, word [rbp + 2]
movzx eax, r10b
cmp eax, ecx
jbe 0x699e7894
test r14d, r14d
jne 0x699e6a24
jmp 0x699e5e60
mov eax, dword [rsp + 0x48]
mov r9d, dword [rbx + 0x3c]
mov rcx, qword [rbx + 0x40]
sub eax, r10d
mov edi, eax
cmp r9d, edx
jae 0x699e7d98
sub edx, r9d
add r9d, dword [rbx + 0x34]
add edi, r9d
add rcx, rdi
mov eax, dword [rbx + 0x50]
cmp eax, edx
cmovbe edx, eax
mov r8d, dword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
cmp edx, r8d
lea r12, [rdi + 0xf]
cmova edx, r8d
sub r12, rcx
sub r8d, edx
sub eax, edx
lea r10d, [rdx - 1]
mov dword [rsp + 0x40], r8d
mov dword [rbx + 0x50], eax
cmp r12, 0x1e
jbe 0x699e7f21
cmp r10d, 0xe
jbe 0x699e7f21
lea r9d, [rdx - 0x10]
movdqu xmm1, xmmword [rcx]
mov r8d, 1
mov eax, 0x10
shr r9d, 4
lea r11d, [r9 + 1]
movups xmmword [rdi], xmm1
and r9d, 7
cmp r8d, r11d
jae 0x699e6cf0
test r9d, r9d
je 0x699e6c8d
cmp r9d, 1
je 0x699e6c72
cmp r9d, 2
je 0x699e6c5b
cmp r9d, 3
je 0x699e6c44
cmp r9d, 4
je 0x699e6c2e
cmp r9d, 5
je 0x699e6c17
cmp r9d, 6
je 0x699e6c00
movdqu xmm3, xmmword [rcx + 0x10]
mov r8d, 2
mov eax, 0x20
movups xmmword [rdi + 0x10], xmm3
movdqu xmm2, xmmword [rcx + rax]
mov r12, qword [rsp + 0x38]
add r8d, 1
movups xmmword [r12 + rax], xmm2
add rax, 0x10
movdqu xmm4, xmmword [rcx + rax]
mov r9, qword [rsp + 0x38]
add r8d, 1
movups xmmword [r9 + rax], xmm4
add rax, 0x10
movdqu xmm5, xmmword [rcx + rax]
mov rdi, qword [rsp + 0x38]
add r8d, 1
movups xmmword [rdi + rax], xmm5
add rax, 0x10
movdqu xmm0, xmmword [rcx + rax]
mov r12, qword [rsp + 0x38]
add r8d, 1
movups xmmword [r12 + rax], xmm0
add rax, 0x10
movdqu xmm1, xmmword [rcx + rax]
mov r9, qword [rsp + 0x38]
add r8d, 1
movups xmmword [r9 + rax], xmm1
add rax, 0x10
movdqu xmm3, xmmword [rcx + rax]
mov rdi, qword [rsp + 0x38]
add r8d, 1
movups xmmword [rdi + rax], xmm3
add rax, 0x10
cmp r8d, r11d
jae 0x699e6cf0
movdqu xmm2, xmmword [rcx + rax]
add r8d, 8
movups xmmword [rdi + rax], xmm2
movdqu xmm4, xmmword [rcx + rax + 0x10]
movups xmmword [rdi + rax + 0x10], xmm4
movdqu xmm5, xmmword [rcx + rax + 0x20]
movups xmmword [rdi + rax + 0x20], xmm5
movdqu xmm0, xmmword [rcx + rax + 0x30]
movups xmmword [rdi + rax + 0x30], xmm0
movdqu xmm1, xmmword [rcx + rax + 0x40]
movups xmmword [rdi + rax + 0x40], xmm1
movdqu xmm3, xmmword [rcx + rax + 0x50]
movups xmmword [rdi + rax + 0x50], xmm3
movdqu xmm2, xmmword [rcx + rax + 0x60]
movups xmmword [rdi + rax + 0x60], xmm2
movdqu xmm4, xmmword [rcx + rax + 0x70]
movups xmmword [rdi + rax + 0x70], xmm4
sub rax, 0xffffffffffffff80
cmp r8d, r11d
jb 0x699e6c8d
mov r8, qword [rsp + 0x38]
shl r11d, 4
mov r9d, r10d
mov eax, r11d
lea r12, [r8 + rax]
add rax, rcx
cmp edx, r11d
je 0x699e6e08
movzx ecx, byte [rax]
mov byte [r12], cl
sub r10d, r11d
je 0x699e6e08
movzx edx, byte [rax + 1]
mov byte [r12 + 1], dl
cmp r10d, 1
je 0x699e6e08
movzx r11d, byte [rax + 2]
mov byte [r12 + 2], r11b
cmp r10d, 2
je 0x699e6e08
movzx edi, byte [rax + 3]
mov byte [r12 + 3], dil
cmp r10d, 3
je 0x699e6e08
movzx r8d, byte [rax + 4]
mov byte [r12 + 4], r8b
cmp r10d, 4
je 0x699e6e08
movzx ecx, byte [rax + 5]
mov byte [r12 + 5], cl
cmp r10d, 5
je 0x699e6e08
movzx edx, byte [rax + 6]
mov byte [r12 + 6], dl
cmp r10d, 6
je 0x699e6e08
movzx r11d, byte [rax + 7]
mov byte [r12 + 7], r11b
cmp r10d, 7
je 0x699e6e08
movzx edi, byte [rax + 8]
mov byte [r12 + 8], dil
cmp r10d, 8
je 0x699e6e08
movzx r8d, byte [rax + 9]
mov byte [r12 + 9], r8b
cmp r10d, 9
je 0x699e6e08
movzx ecx, byte [rax + 0xa]
mov byte [r12 + 0xa], cl
cmp r10d, 0xa
je 0x699e6e08
movzx edx, byte [rax + 0xb]
mov byte [r12 + 0xb], dl
cmp r10d, 0xb
je 0x699e6e08
movzx r11d, byte [rax + 0xc]
mov byte [r12 + 0xc], r11b
cmp r10d, 0xc
je 0x699e6e08
movzx edi, byte [rax + 0xd]
mov byte [r12 + 0xd], dil
cmp r10d, 0xd
je 0x699e6e08
movzx eax, byte [rax + 0xe]
mov byte [r12 + 0xe], al
nop dword [rax]
mov r11, qword [rsp + 0x38]
lea rcx, [r11 + r9 + 1]
mov r9d, dword [rbx + 0x50]
mov qword [rsp + 0x38], rcx
test r9d, r9d
je case.0x699e53e0.19
mov eax, dword [rbx + 8]
jmp 0x699e55d9
mov r11d, esi
jmp 0x699e542c
cmp ebp, 0xf
ja 0x699e8b25
test r14d, r14d
je 0x699e5a00
movzx r9d, byte [r15]
mov ecx, ebp
lea r11d, [r14 - 1]
lea rdx, [r15 + 1]
shl r9d, cl
lea ecx, [rbp + 8]
add esi, r9d
cmp ecx, 0xf
ja 0x699e8b2d
test r11d, r11d
je 0x699e7093
lea rdx, [r15 + 2]
movzx r15d, byte [r15 + 1]
sub r14d, 2
add ebp, 0x10
shl r15d, cl
add esi, r15d
test byte [rbx + 0x10], 4
je 0x699e7888
movzx edi, word [rbx + 0x20]
cmp edi, esi
je 0x699e7888
mov r11d, esi
lea rsi, str.header_crc_mismatch
mov r15, rdx
mov qword [r13 + 0x20], rsi
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
test r14d, r14d
je 0x699e5a00
mov eax, r14d
xor edi, edi
and eax, 3
je 0x699e6f98
cmp eax, 1
je 0x699e6f55
cmp eax, 2
je 0x699e6f1a
mov r8, qword [rbx + 0x28]
movzx r12d, byte [r15]
mov edi, 1
test r8, r8
je 0x699e6f11
mov r9, qword [r8 + 0x30]
test r9, r9
je 0x699e6f11
mov r10d, dword [rbx + 0x50]
cmp r10d, dword [r8 + 0x38]
jae 0x699e6f11
lea edx, [r10 + 1]
mov dword [rbx + 0x50], edx
mov byte [r9 + r10], r12b
test r12b, r12b
je 0x699e7068
mov r11, qword [rbx + 0x28]
mov r12d, edi
add edi, 1
movzx r12d, byte [r15 + r12]
test r11, r11
je 0x699e6f4c
mov rcx, qword [r11 + 0x30]
test rcx, rcx
je 0x699e6f4c
mov r8d, dword [rbx + 0x50]
cmp r8d, dword [r11 + 0x38]
jae 0x699e6f4c
lea eax, [r8 + 1]
mov dword [rbx + 0x50], eax
mov byte [rcx + r8], r12b
test r12b, r12b
je 0x699e7068
mov rcx, qword [rbx + 0x28]
mov r9d, edi
add edi, 1
movzx r12d, byte [r15 + r9]
test rcx, rcx
je 0x699e6f86
mov r10, qword [rcx + 0x30]
test r10, r10
je 0x699e6f86
mov edx, dword [rbx + 0x50]
cmp edx, dword [rcx + 0x38]
jae 0x699e6f86
lea r11d, [rdx + 1]
mov dword [rbx + 0x50], r11d
mov byte [r10 + rdx], r12b
test r12b, r12b
je 0x699e7068
cmp r14d, edi
jbe 0x699e7068
mov r12d, edi
mov r9, qword [rbx + 0x28]
lea eax, [r12 + 1]
movzx r12d, byte [r15 + r12]
mov edi, eax
test r9, r9
je 0x699e6fce
mov r8, qword [r9 + 0x30]
test r8, r8
je 0x699e6fce
mov ecx, dword [rbx + 0x50]
cmp ecx, dword [r9 + 0x38]
jae 0x699e6fce
lea r10d, [rcx + 1]
mov dword [rbx + 0x50], r10d
mov byte [r8 + rcx], r12b
test r12b, r12b
je 0x699e7068
mov r11, qword [rbx + 0x28]
mov edx, eax
lea edi, [rax + 1]
movzx r12d, byte [r15 + rdx]
test r11, r11
je 0x699e7008
mov r9, qword [r11 + 0x30]
test r9, r9
je 0x699e7008
mov r8d, dword [rbx + 0x50]
cmp r8d, dword [r11 + 0x38]
jae 0x699e7008
lea ecx, [r8 + 1]
mov dword [rbx + 0x50], ecx
mov byte [r9 + r8], r12b
test r12b, r12b
je 0x699e7068
mov r10, qword [rbx + 0x28]
mov r12d, edi
lea edi, [rax + 2]
movzx r12d, byte [r15 + r12]
test r10, r10
je 0x699e703f
mov r11, qword [r10 + 0x30]
test r11, r11
je 0x699e703f
mov r9d, dword [rbx + 0x50]
cmp r9d, dword [r10 + 0x38]
jae 0x699e703f
lea edx, [r9 + 1]
mov dword [rbx + 0x50], edx
mov byte [r11 + r9], r12b
test r12b, r12b
je 0x699e7068
mov r8d, edi
mov rcx, qword [rbx + 0x28]
lea edi, [rax + 3]
mov eax, r8d
movzx r12d, byte [r15 + rax]
test rcx, rcx
jne 0x699e6f69
jmp 0x699e6f86
test byte [rbx + 0x19], 2
je 0x699e7078
test byte [rbx + 0x10], 4
jne 0x699e82c8
mov r10d, edi
sub r14d, edi
add r15, r10
test r12b, r12b
jne 0x699e5a00
mov r8d, dword [rbx + 0x18]
jmp 0x699e65fe
mov r11d, esi
mov ebp, ecx
mov esi, dword [rsp + 0x48]
xor r14d, r14d
sub esi, dword [rsp + 0x40]
mov r15, rdx
xor r12d, r12d
jmp 0x699e5a0e
mov rdx, qword [rsp + 0x38]
mov r8d, esi
mov rcx, qword [r15 + 0x40]
sub rdx, r8
call sub.msvcrt.dll_memcpy
mov dword [r15 + 0x3c], esi
jmp 0x699e5ab4
test r14d, r14d
je 0x699e5a00
mov r12d, r14d
xor edi, edi
and r12d, 3
je 0x699e71ac
cmp r12d, 1
je 0x699e7168
cmp r12d, 2
je 0x699e712e
mov r10, qword [rbx + 0x28]
movzx r12d, byte [r15]
mov edi, 1
test r10, r10
je 0x699e7125
mov rdx, qword [r10 + 0x20]
test rdx, rdx
je 0x699e7125
mov r9d, dword [rbx + 0x50]
cmp r9d, dword [r10 + 0x28]
jae 0x699e7125
lea r11d, [r9 + 1]
mov dword [rbx + 0x50], r11d
mov byte [rdx + r9], r12b
test r12b, r12b
je 0x699e7280
mov r8, qword [rbx + 0x28]
mov eax, edi
add edi, 1
movzx r12d, byte [r15 + rax]
test r8, r8
je 0x699e715f
mov rcx, qword [r8 + 0x20]
test rcx, rcx
je 0x699e715f
mov r10d, dword [rbx + 0x50]
cmp r10d, dword [r8 + 0x28]
jae 0x699e715f
lea edx, [r10 + 1]
mov dword [rbx + 0x50], edx
mov byte [rcx + r10], r12b
test r12b, r12b
je 0x699e7280
mov rdx, qword [rbx + 0x28]
mov r12d, edi
add edi, 1
movzx r12d, byte [r15 + r12]
test rdx, rdx
je 0x699e719a
mov r9, qword [rdx + 0x20]
test r9, r9
je 0x699e719a
mov r11d, dword [rbx + 0x50]
cmp r11d, dword [rdx + 0x28]
jae 0x699e719a
lea eax, [r11 + 1]
mov dword [rbx + 0x50], eax
mov byte [r9 + r11], r12b
test r12b, r12b
je 0x699e7280
cmp r14d, edi
jbe 0x699e7280
mov r8d, edi
mov rdx, qword [rbx + 0x28]
lea r10d, [r8 + 1]
movzx r12d, byte [r15 + r8]
mov edi, r10d
test rdx, rdx
je 0x699e71e1
mov r9, qword [rdx + 0x20]
test r9, r9
je 0x699e71e1
mov ecx, dword [rbx + 0x50]
cmp ecx, dword [rdx + 0x28]
jae 0x699e71e1
lea r11d, [rcx + 1]
mov dword [rbx + 0x50], r11d
mov byte [r9 + rcx], r12b
test r12b, r12b
je 0x699e7280
mov rax, qword [rbx + 0x28]
mov r12d, r10d
lea edi, [r10 + 1]
movzx r12d, byte [r15 + r12]
test rax, rax
je 0x699e721d
mov r8, qword [rax + 0x20]
test r8, r8
je 0x699e721d
mov r9d, dword [rbx + 0x50]
cmp r9d, dword [rax + 0x28]
jae 0x699e721d
lea edx, [r9 + 1]
mov dword [rbx + 0x50], edx
mov byte [r8 + r9], r12b
test r12b, r12b
je 0x699e7280
mov r11, qword [rbx + 0x28]
mov ecx, edi
lea edi, [r10 + 2]
movzx r12d, byte [r15 + rcx]
test r11, r11
je 0x699e7255
mov rax, qword [r11 + 0x20]
test rax, rax
je 0x699e7255
mov r8d, dword [rbx + 0x50]
cmp r8d, dword [r11 + 0x28]
jae 0x699e7255
lea r9d, [r8 + 1]
mov dword [rbx + 0x50], r9d
mov byte [rax + r8], r12b
test r12b, r12b
je 0x699e7280
mov r12d, edi
mov rdx, qword [rbx + 0x28]
lea edi, [r10 + 3]
mov r10d, r12d
movzx r12d, byte [r15 + r10]
test rdx, rdx
jne 0x699e717c
jmp 0x699e719a
test byte [rbx + 0x19], 2
je 0x699e7290
test byte [rbx + 0x10], 4
jne 0x699e840e
mov ecx, edi
sub r14d, edi
add r15, rcx
test r12b, r12b
jne 0x699e5a00
mov r8d, dword [rbx + 0x18]
jmp 0x699e65d2
mov rbx, qword [rsp + 0x50]
mov ebp, ecx
mov ecx, eax
test r8b, 0xf0
je 0x699e8052
mov eax, dword [rbx + 0x1be4]
shr esi, cl
add ecx, eax
sub ebp, r10d
mov dword [rbx + 0x1be4], ecx
test r8b, 0x40
je 0x699e7b38
lea r8, [0x699fe7b3]
mov r11d, esi
mov qword [r13 + 0x20], r8
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
mov ebp, ecx
mov ecx, r9d
cmp r11w, 0xf
ja 0x699e78e0
shr esi, cl
mov ecx, dword [rsp + 0x50]
sub ebp, eax
lea edi, [rcx + 1]
mov dword [rbx + 0x84], edi
mov r12d, edi
mov word [rbx + rcx*2 + 0x90], r11w
mov dword [rsp + 0x50], edi
cmp dword [rsp + 0x58], r12d
ja 0x699e5c85
cmp dword [rbx + 8], 0x3f51
je case.0x699e53e0.29
cmp word [rbx + 0x290], 0
jne 0x699e9282
lea rcx, str.invalid_code____missing_end_of_block
mov r11d, esi
mov qword [r13 + 0x20], rcx
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x699e7393
mov r11d, esi
movzx edx, sil
shr r11d, 8
mov dword [rax + 8], edx
mov dword [rax + 0xc], r11d
mov eax, dword [rbx + 0x18]
mov r8d, eax
test ah, 2
je 0x699e73a8
test byte [rbx + 0x10], 4
jne 0x699e842e
mov dword [rbx + 8], 0x3f38
xor ebp, ebp
xor esi, esi
test ah, 4
je 0x699e663f
test r14d, r14d
je 0x699e5a00
mov edi, 0xf
sub edi, ebp
shr edi, 3
and edi, 7
je 0x699e74d5
movzx r8d, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl r8d, cl
add esi, r8d
cmp ebp, 0xf
ja 0x699e7dac
test r14d, r14d
je 0x699e5a00
cmp edi, 1
je 0x699e74d5
cmp edi, 2
je 0x699e74ba
cmp edi, 3
je 0x699e749d
cmp edi, 4
je 0x699e7480
cmp edi, 5
je 0x699e7465
cmp edi, 6
je 0x699e7448
movzx r10d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r10d, cl
add esi, r10d
sub r14d, 1
je 0x699e5a00
movzx r12d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r12d, cl
add esi, r12d
sub r14d, 1
je 0x699e5a00
movzx edx, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl edx, cl
add esi, edx
sub r14d, 1
je 0x699e5a00
movzx r11d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r11d, cl
add esi, r11d
sub r14d, 1
je 0x699e5a00
movzx r9d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r9d, cl
add esi, r9d
sub r14d, 1
je 0x699e5a00
movzx edi, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl edi, cl
add esi, edi
sub r14d, 1
je 0x699e5a00
mov ecx, ebp
movzx r10d, byte [r15]
lea r8, [r15 + 1]
lea ebp, [r14 - 1]
lea r12d, [rcx + 8]
mov r14d, ebp
mov r15, r8
shl r10d, cl
mov ecx, r12d
add esi, r10d
cmp r12d, 0xf
ja 0x699e7dac
test r14d, r14d
je 0x699e5e60
movzx r10d, byte [r15]
add r15, 1
shl r10d, cl
add ecx, 8
add esi, r10d
sub r14d, 1
je 0x699e5e60
movzx r14d, byte [r8 + 1]
lea r15, [r8 + 2]
shl r14d, cl
lea ecx, [r12 + 0x10]
add esi, r14d
mov r14d, ebp
sub r14d, 2
je 0x699e5e60
movzx r11d, byte [r8 + 2]
mov r14d, ebp
lea r15, [r8 + 3]
shl r11d, cl
lea ecx, [r12 + 0x18]
add esi, r11d
sub r14d, 3
je 0x699e5e60
movzx r9d, byte [r8 + 3]
mov r14d, ebp
lea r15, [r8 + 4]
shl r9d, cl
lea ecx, [r12 + 0x20]
add esi, r9d
sub r14d, 4
je 0x699e5e60
movzx edi, byte [r8 + 4]
mov r14d, ebp
lea r15, [r8 + 5]
shl edi, cl
lea ecx, [r12 + 0x28]
add esi, edi
sub r14d, 5
je 0x699e5e60
movzx edx, byte [r8 + 5]
mov r14d, ebp
lea r15, [r8 + 6]
shl edx, cl
lea ecx, [r12 + 0x30]
add esi, edx
sub r14d, 6
je 0x699e5e60
lea r15, [r8 + 7]
movzx r8d, byte [r8 + 6]
shl r8d, cl
lea ecx, [r12 + 0x38]
add esi, r8d
sub ebp, 7
mov r14d, ebp
jne 0x699e74d7
jmp 0x699e5e60
mov rcx, qword [rsp + 0x38]
mov edx, dword [rbx + 0x50]
sub rcx, r10
mov eax, edx
jmp 0x699e6b4f
mov r11d, esi
mov ebp, ecx
mov esi, dword [rsp + 0x48]
xor r14d, r14d
sub esi, dword [rsp + 0x40]
mov r15, rdi
xor r12d, r12d
jmp 0x699e5a0e
mov r9, qword [rbx + 0x28]
test r9, r9
je 0x699e762a
mov dword [r9 + 4], esi
test byte [rbx + 0x19], 2
je 0x699e763a
test byte [rbx + 0x10], 4
jne 0x699e8ab2
mov dword [rbx + 8], 0x3f37
xor esi, esi
xor ebp, ebp
jmp 0x699e62c9
cmp ebp, edx
jae 0x699e7ef9
test r14d, r14d
je 0x699e5a00
mov r12d, ebp
not r12d
add r12d, edx
shr r12d, 3
and r12d, 7
je 0x699e777a
movzx eax, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl eax, cl
add esi, eax
cmp ebp, edx
jae 0x699e7ef9
test r14d, r14d
je 0x699e5a00
cmp r12d, 1
je 0x699e777a
cmp r12d, 2
je 0x699e775d
cmp r12d, 3
je 0x699e7740
cmp r12d, 4
je 0x699e7723
cmp r12d, 5
je 0x699e7706
cmp r12d, 6
je 0x699e76e9
movzx edi, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl edi, cl
add esi, edi
sub r14d, 1
je 0x699e5a00
movzx r11d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r11d, cl
add esi, r11d
sub r14d, 1
je 0x699e5a00
movzx r9d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r9d, cl
add esi, r9d
sub r14d, 1
je 0x699e5a00
movzx r10d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r10d, cl
add esi, r10d
sub r14d, 1
je 0x699e5a00
movzx r8d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r8d, cl
add esi, r8d
sub r14d, 1
je 0x699e5a00
movzx r12d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r12d, cl
add esi, r12d
sub r14d, 1
je 0x699e5a00
mov ecx, ebp
movzx edi, byte [r15]
lea rax, [r15 + 1]
lea ebp, [r14 - 1]
lea r11d, [rcx + 8]
mov r14d, ebp
mov r15, rax
shl edi, cl
mov ecx, r11d
add esi, edi
cmp r11d, edx
jae 0x699e7ef6
test r14d, r14d
je 0x699e5e60
movzx r9d, byte [r15]
add r15, 1
shl r9d, cl
add ecx, 8
add esi, r9d
sub r14d, 1
je 0x699e5e60
movzx edi, byte [rax + 1]
mov r14d, ebp
lea r15, [rax + 2]
shl edi, cl
lea ecx, [r11 + 0x10]
add esi, edi
sub r14d, 2
je 0x699e5e60
movzx r14d, byte [rax + 2]
lea r15, [rax + 3]
shl r14d, cl
lea ecx, [r11 + 0x18]
add esi, r14d
mov r14d, ebp
sub r14d, 3
je 0x699e5e60
movzx r12d, byte [rax + 3]
mov r14d, ebp
lea r15, [rax + 4]
shl r12d, cl
lea ecx, [r11 + 0x20]
add esi, r12d
sub r14d, 4
je 0x699e5e60
movzx r10d, byte [rax + 4]
mov r14d, ebp
lea r15, [rax + 5]
shl r10d, cl
lea ecx, [r11 + 0x28]
add esi, r10d
sub r14d, 5
je 0x699e5e60
movzx r8d, byte [rax + 5]
mov r14d, ebp
lea r15, [rax + 6]
shl r8d, cl
lea ecx, [r11 + 0x30]
add esi, r8d
sub r14d, 6
je 0x699e5e60
lea r15, [rax + 7]
movzx eax, byte [rax + 6]
shl eax, cl
lea ecx, [r11 + 0x38]
add esi, eax
sub ebp, 7
mov r14d, ebp
jne 0x699e777c
jmp 0x699e5e60
mov r15, rdx
xor ebp, ebp
xor esi, esi
jmp 0x699e6055
mov ebp, ecx
mov ecx, r10d
test dl, dl
je 0x699e5524
test dl, 0xf0
je 0x699e8db3
mov dword [rbx + 0x1be4], eax
mov ecx, eax
sub ebp, eax
mov dword [rbx + 0x50], r12d
shr esi, cl
test dl, 0x20
je 0x699e8a7a
mov dword [rbx + 0x1be4], 0xffffffff
mov dword [rbx + 8], 0x3f3f
jmp case.0x699e53e0.11
cmp r11w, 0x10
je 0x699e8b53
cmp r11w, 0x11
je 0x699e84ae
lea edi, [rax + 7]
cmp ebp, edi
jae 0x699e86ef
test r14d, r14d
je 0x699e5a00
mov r12d, ebp
not r12d
add r12d, edi
shr r12d, 3
and r12d, 7
je 0x699e7a27
movzx r10d, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl r10d, cl
add esi, r10d
cmp ebp, edi
jae 0x699e86ef
test r14d, r14d
je 0x699e5a00
cmp r12d, 1
je 0x699e7a27
cmp r12d, 2
je 0x699e7a0a
cmp r12d, 3
je 0x699e79ed
cmp r12d, 4
je 0x699e79d0
cmp r12d, 5
je 0x699e79b3
cmp r12d, 6
je 0x699e7996
movzx r9d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r9d, cl
add esi, r9d
sub r14d, 1
je 0x699e5a00
movzx r11d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r11d, cl
add esi, r11d
sub r14d, 1
je 0x699e5a00
movzx r12d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r12d, cl
add esi, r12d
sub r14d, 1
je 0x699e5a00
movzx r10d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r10d, cl
add esi, r10d
sub r14d, 1
je 0x699e5a00
movzx r9d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r9d, cl
add esi, r9d
sub r14d, 1
je 0x699e5a00
movzx r11d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r11d, cl
add esi, r11d
sub r14d, 1
je 0x699e5a00
mov ecx, ebp
movzx ebp, byte [r15]
lea r10, [r15 + 1]
lea r12d, [r14 - 1]
lea r11d, [rcx + 8]
mov r14d, r12d
mov r15, r10
shl ebp, cl
mov ecx, r11d
add esi, ebp
cmp r11d, edi
jae 0x699e86ec
test r14d, r14d
je 0x699e5e60
movzx ebp, byte [r15]
add r15, 1
shl ebp, cl
add ecx, 8
add esi, ebp
sub r14d, 1
je 0x699e5e60
movzx r14d, byte [r10 + 1]
lea r15, [r10 + 2]
shl r14d, cl
lea ecx, [r11 + 0x10]
add esi, r14d
mov r14d, r12d
sub r14d, 2
je 0x699e5e60
movzx r9d, byte [r10 + 2]
mov r14d, r12d
lea r15, [r10 + 3]
shl r9d, cl
lea ecx, [r11 + 0x18]
add esi, r9d
sub r14d, 3
je 0x699e5e60
movzx ebp, byte [r10 + 3]
mov r14d, r12d
lea r15, [r10 + 4]
shl ebp, cl
lea ecx, [r11 + 0x20]
add esi, ebp
sub r14d, 4
je 0x699e5e60
movzx r14d, byte [r10 + 4]
lea r15, [r10 + 5]
shl r14d, cl
lea ecx, [r11 + 0x28]
add esi, r14d
mov r14d, r12d
sub r14d, 5
je 0x699e5e60
movzx r9d, byte [r10 + 5]
mov r14d, r12d
lea r15, [r10 + 6]
shl r9d, cl
lea ecx, [r11 + 0x30]
add esi, r9d
sub r14d, 6
je 0x699e5e60
lea r15, [r10 + 7]
movzx r10d, byte [r10 + 6]
shl r10d, cl
lea ecx, [r11 + 0x38]
add esi, r10d
sub r12d, 7
mov r14d, r12d
jne 0x699e7a29
jmp 0x699e5e60
and r8d, 0xf
mov dword [rbx + 0x54], edi
mov dword [rbx + 0x58], r8d
mov dword [rbx + 8], 0x3f4b
jmp 0x699e562c
mov dword [rbx + 0x1be4], 0xffffffff
jmp case.0x699e53e0.11
cmp ebp, r8d
jae 0x699e82e1
test r14d, r14d
je 0x699e5a00
mov r12d, ebp
not r12d
add r12d, r8d
shr r12d, 3
and r12d, 7
je 0x699e7c8a
movzx eax, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl eax, cl
add esi, eax
cmp ebp, r8d
jae 0x699e82e1
test r14d, r14d
je 0x699e5a00
cmp r12d, 1
je 0x699e7c8a
cmp r12d, 2
je 0x699e7c6d
cmp r12d, 3
je 0x699e7c52
cmp r12d, 4
je 0x699e7c35
cmp r12d, 5
je 0x699e7c1a
cmp r12d, 6
je 0x699e7bfd
movzx r11d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r11d, cl
add esi, r11d
sub r14d, 1
je 0x699e5a00
movzx r9d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r9d, cl
add esi, r9d
sub r14d, 1
je 0x699e5a00
movzx edi, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl edi, cl
add esi, edi
sub r14d, 1
je 0x699e5a00
movzx r10d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r10d, cl
add esi, r10d
sub r14d, 1
je 0x699e5a00
movzx edx, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl edx, cl
add esi, edx
sub r14d, 1
je 0x699e5a00
movzx r12d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r12d, cl
add esi, r12d
sub r14d, 1
je 0x699e5a00
mov ecx, ebp
movzx r11d, byte [r15]
lea rax, [r15 + 1]
lea ebp, [r14 - 1]
lea r9d, [rcx + 8]
mov r14d, ebp
mov r15, rax
shl r11d, cl
mov ecx, r9d
add esi, r11d
cmp r9d, r8d
jae 0x699e82de
test r14d, r14d
je 0x699e5e60
movzx edi, byte [r15]
add r15, 1
shl edi, cl
add ecx, 8
add esi, edi
sub r14d, 1
je 0x699e5e60
movzx r14d, byte [rax + 1]
lea r15, [rax + 2]
shl r14d, cl
lea ecx, [r9 + 0x10]
add esi, r14d
mov r14d, ebp
sub r14d, 2
je 0x699e5e60
movzx edx, byte [rax + 2]
mov r14d, ebp
lea r15, [rax + 3]
shl edx, cl
lea ecx, [r9 + 0x18]
add esi, edx
sub r14d, 3
je 0x699e5e60
movzx r12d, byte [rax + 3]
mov r14d, ebp
lea r15, [rax + 4]
shl r12d, cl
lea ecx, [r9 + 0x20]
add esi, r12d
sub r14d, 4
je 0x699e5e60
movzx r10d, byte [rax + 4]
mov r14d, ebp
lea r15, [rax + 5]
shl r10d, cl
lea ecx, [r9 + 0x28]
add esi, r10d
sub r14d, 5
je 0x699e5e60
movzx r11d, byte [rax + 5]
mov r14d, ebp
lea r15, [rax + 6]
shl r11d, cl
lea ecx, [r9 + 0x30]
add esi, r11d
sub r14d, 6
je 0x699e5e60
lea r15, [rax + 7]
movzx eax, byte [rax + 6]
shl eax, cl
lea ecx, [r9 + 0x38]
add esi, eax
sub ebp, 7
mov r14d, ebp
jne 0x699e7c8c
jmp 0x699e5e60
add edi, r9d
add rcx, rdi
jmp 0x699e6b47
cmp ebp, 0xf
jbe 0x699e73bc
mov rdx, qword [rbx + 0x28]
mov dword [rbx + 0x50], esi
test rdx, rdx
je 0x699e7dbb
mov dword [rdx + 0x18], esi
test ah, 2
je 0x699e7dca
test byte [rbx + 0x10], 4
jne 0x699e9128
mov ecx, eax
mov r8d, eax
xor ebp, ebp
xor esi, esi
and ecx, 0x400
jmp 0x699e6652
cmp ebp, 0xf
ja 0x699e9268
test r14d, r14d
je 0x699e5a00
movzx r8d, byte [r15]
mov ecx, ebp
lea r11d, [r14 - 1]
lea rdi, [r15 + 1]
shl r8d, cl
lea ecx, [rbp + 8]
add esi, r8d
cmp ecx, 0xf
ja 0x699e9270
test r11d, r11d
je 0x699e7602
lea rdi, [r15 + 2]
movzx r15d, byte [r15 + 1]
sub r14d, 2
add ebp, 0x10
shl r15d, cl
add esi, r15d
test al, 2
je 0x699e7e3f
cmp esi, 0x8b1f
je 0x699e921d
mov r8, qword [rbx + 0x28]
mov dword [rbx + 0x18], 0
test r8, r8
je 0x699e7e57
mov dword [r8 + 0x40], 0xffffffff
test al, 1
je 0x699e8ade
mov r12d, esi
mov r11d, esi
shl r12d, 8
shr r11d, 8
movzx r10d, r12w
add r11d, r10d
imul rcx, r11, 0x8421085
mov r15d, r11d
shr rcx, 0x20
sub r15d, ecx
shr r15d, 1
add r15d, ecx
shr r15d, 4
mov eax, r15d
shl eax, 5
sub eax, r15d
cmp r11d, eax
jne 0x699e8ade
mov r12d, esi
and r12d, 0xf
cmp r12d, 8
jne 0x699e66ce
shr esi, 4
mov r10d, dword [rbx + 0x30]
sub ebp, 4
mov ecx, esi
and ecx, 0xf
add ecx, 8
test r10d, r10d
jne 0x699e92fc
mov dword [rbx + 0x30], ecx
cmp ecx, 0xf
jbe 0x699e930e
lea r8, str.invalid_window_size
mov r11d, esi
mov r15, rdi
mov qword [r13 + 0x20], r8
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
mov ebp, r11d
mov ecx, edx
mov r9d, 0xffffffff
add dword [rbx + 0x1be4], edx
sub ebp, edx
shl r9d, cl
not r9d
and r9d, esi
add r9d, dword [rbx + 0x50]
shr esi, cl
mov dword [rbx + 0x50], r9d
jmp 0x699e56bf
mov r9d, r10d
xor r11d, r11d
lea r12, [r9 + 1]
and r12d, 7
je 0x699e91ce
cmp r12, 1
je 0x699e7fc9
cmp r12, 2
je 0x699e7fb7
cmp r12, 3
je 0x699e7fa5
cmp r12, 4
je 0x699e7f93
cmp r12, 5
je 0x699e7f81
cmp r12, 6
je 0x699e7f6f
movzx r10d, byte [rcx]
mov r8, qword [rsp + 0x38]
mov r11d, 1
mov byte [r8], r10b
movzx edx, byte [rcx + r11]
mov rdi, qword [rsp + 0x38]
mov byte [rdi + r11], dl
add r11, 1
movzx eax, byte [rcx + r11]
mov r12, qword [rsp + 0x38]
mov byte [r12 + r11], al
add r11, 1
movzx r10d, byte [rcx + r11]
mov r8, qword [rsp + 0x38]
mov byte [r8 + r11], r10b
add r11, 1
movzx edx, byte [rcx + r11]
mov rdi, qword [rsp + 0x38]
mov byte [rdi + r11], dl
add r11, 1
movzx eax, byte [rcx + r11]
mov r12, qword [rsp + 0x38]
mov byte [r12 + r11], al
add r11, 1
movzx r10d, byte [rcx + r11]
mov r8, qword [rsp + 0x38]
mov rdx, r11
mov byte [r8 + r11], r10b
add r11, 1
cmp rdx, r9
je 0x699e6e08
mov rdi, r8
movzx eax, byte [rcx + r11]
mov byte [rdi + r11], al
movzx r12d, byte [rcx + r11 + 1]
mov byte [rdi + r11 + 1], r12b
movzx r10d, byte [rcx + r11 + 2]
mov byte [rdi + r11 + 2], r10b
movzx r8d, byte [rcx + r11 + 3]
mov byte [rdi + r11 + 3], r8b
movzx edx, byte [rcx + r11 + 4]
lea r8, [r11 + 7]
mov byte [rdi + r11 + 4], dl
movzx eax, byte [rcx + r11 + 5]
mov byte [rdi + r11 + 5], al
movzx r12d, byte [rcx + r11 + 6]
mov byte [rdi + r11 + 6], r12b
movzx r10d, byte [rcx + r11 + 7]
mov byte [rdi + r11 + 7], r10b
add r11, 8
cmp r8, r9
jne 0x699e7fea
jmp 0x699e6e08
lea ecx, [r8 + rax]
mov r9d, 0xffffffff
movzx r11d, di
shl r9d, cl
mov ecx, edx
not r9d
mov r8d, r9d
and r8d, esi
shr r8d, cl
lea edx, [r8 + r11]
lea r10, [r12 + rdx*4]
movzx r8d, byte [r10]
movzx edi, word [r10 + 2]
movzx r10d, byte [r10 + 1]
lea ecx, [r10 + rax]
cmp ecx, ebp
jbe 0x699e8469
test r14d, r14d
je 0x699e5a00
mov r8d, r14d
lea edi, [r14 - 1]
and r8d, 3
je 0x699e8187
cmp r8d, 1
je 0x699e813d
cmp r8d, 2
je 0x699e80fc
movzx edx, byte [r15]
mov ecx, ebp
mov r10d, r9d
add ebp, 8
mov r14d, edi
add r15, 1
shl edx, cl
mov ecx, eax
add esi, edx
and r10d, esi
shr r10d, cl
add r10d, r11d
lea rdx, [r12 + r10*4]
movzx r10d, byte [rdx + 1]
movzx r8d, byte [rdx]
movzx edi, word [rdx + 2]
lea ecx, [r10 + rax]
cmp ecx, ebp
jbe 0x699e8469
movzx edi, byte [r15]
mov ecx, ebp
mov r8d, r9d
add ebp, 8
add r15, 1
sub r14d, 1
shl edi, cl
mov ecx, eax
add esi, edi
and r8d, esi
shr r8d, cl
add r8d, r11d
lea r10, [r12 + r8*4]
movzx r8d, byte [r10]
movzx edi, word [r10 + 2]
movzx r10d, byte [r10 + 1]
lea edx, [r10 + rax]
cmp edx, ebp
jbe 0x699e8469
movzx edi, byte [r15]
mov ecx, ebp
mov r8d, r9d
add ebp, 8
add r15, 1
sub r14d, 1
shl edi, cl
mov ecx, eax
add esi, edi
and r8d, esi
shr r8d, cl
add r8d, r11d
lea r10, [r12 + r8*4]
movzx r8d, byte [r10]
movzx edi, word [r10 + 2]
movzx r10d, byte [r10 + 1]
lea edx, [r10 + rax]
cmp edx, ebp
jbe 0x699e8469
test r14d, r14d
je 0x699e5a00
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0xd0], r13
movzx ebx, byte [r15]
mov ecx, ebp
mov edi, r9d
lea rdx, [r15 + 1]
lea r13d, [r14 - 1]
mov r15, rdx
shl ebx, cl
mov ecx, eax
mov r14d, r13d
add esi, ebx
lea ebx, [rbp + 8]
and edi, esi
mov ebp, ebx
shr edi, cl
lea r8d, [rdi + r11]
lea r10, [r12 + r8*4]
movzx r8d, byte [r10]
movzx edi, word [r10 + 2]
movzx r10d, byte [r10 + 1]
lea ecx, [r10 + rax]
cmp ecx, ebx
jbe 0x699e845c
movzx edi, byte [r15]
mov ecx, ebp
mov r8d, r9d
add ebp, 8
add r15, 1
sub r14d, 1
shl edi, cl
mov ecx, eax
add esi, edi
and r8d, esi
shr r8d, cl
lea r10d, [r8 + r11]
lea rcx, [r12 + r10*4]
movzx r10d, byte [rcx + 1]
movzx r8d, byte [rcx]
movzx edi, word [rcx + 2]
lea ecx, [r10 + rax]
cmp ecx, ebp
jbe 0x699e845c
movzx edi, byte [rdx + 1]
mov ecx, ebp
mov r8d, r9d
lea ebp, [rbx + 0x10]
lea r14d, [r13 - 2]
lea r15, [rdx + 2]
shl edi, cl
mov ecx, eax
add esi, edi
and r8d, esi
shr r8d, cl
lea r10d, [r8 + r11]
lea rcx, [r12 + r10*4]
movzx r10d, byte [rcx + 1]
movzx r8d, byte [rcx]
movzx edi, word [rcx + 2]
lea ecx, [r10 + rax]
cmp ecx, ebp
jbe 0x699e845c
lea r14d, [r13 - 3]
movzx r13d, byte [rdx + 2]
mov ecx, ebp
lea r15, [rdx + 3]
mov edx, r9d
lea ebp, [rbx + 0x18]
shl r13d, cl
mov ecx, eax
add esi, r13d
and edx, esi
shr edx, cl
add edx, r11d
lea rbx, [r12 + rdx*4]
movzx r10d, byte [rbx + 1]
movzx r8d, byte [rbx]
movzx edi, word [rbx + 2]
lea r13d, [r10 + rax]
cmp r13d, ebp
jbe 0x699e845c
test r14d, r14d
jne 0x699e8194
mov rbx, qword [rsp + 0x50]
mov r13, qword [rsp + 0xd0]
mov r11d, esi
jmp 0x699e5a03
mov ebp, ecx
mov r14d, r10d
jmp 0x699e5f99
mov ecx, dword [rbx + 0x20]
mov r8d, edi
mov rdx, r15
call fcn.699e1da0
mov dword [rbx + 0x20], eax
jmp 0x699e7078
mov ebp, r9d
mov ecx, r8d
mov edi, 0xffffffff
add dword [rbx + 0x1be4], r8d
sub ebp, r8d
shl edi, cl
not edi
and edi, esi
shr esi, cl
add dword [rbx + 0x54], edi
jmp 0x699e5635
mov ebp, ecx
mov r15, rax
mov esi, dword [rsp + 0x48]
xor r12d, r12d
sub esi, dword [rsp + 0x40]
xor r14d, r14d
jmp 0x699e5a0e
test esi, 0xe000
je 0x699e90a9
mov r11d, esi
lea rsi, str.unknown_header_flags_set
mov r15, rdi
mov qword [r13 + 0x20], rsi
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
cmp dword [rsp + 0xd8], 6
mov dword [rbx + 0x50], r9d
mov dword [rbx + 8], 0x3f42
je 0x699e93fb
mov r15, rdx
xor ebp, ebp
xor esi, esi
jmp 0x699e5e74
mov rdx, qword [rsp + 0x38]
mov edi, dword [rbx + 0x18]
mov eax, r8d
mov dword [rsp + 0x48], r11d
mov ecx, dword [rbx + 0x20]
sub rdx, rax
test edi, edi
je 0x699e91a1
call fcn.699e1da0
mov r11d, dword [rsp + 0x48]
mov esi, dword [rbx + 0x10]
mov dword [rbx + 0x20], eax
mov dword [r13 + 0x4c], eax
mov r10d, esi
and r10d, 4
test r10d, r10d
je 0x699e5502
mov r8d, dword [rbx + 0x18]
mov edx, r11d
test r8d, r8d
jne 0x699e83e3
mov r9d, r11d
mov ecx, r11d
shr edx, 0x18
mov r15d, r11d
shl r9d, 0x18
shr ecx, 8
add edx, r9d
and ecx, 0xff00
shl r15d, 8
add edx, ecx
and r15d, 0xff0000
add edx, r15d
cmp dword [rbx + 0x20], edx
je 0x699e5502
mov edi, dword [rsp + 0x40]
lea r15, str.incorrect_data_check
mov qword [r13 + 0x20], r15
mov r15, r12
mov dword [rbx + 8], 0x3f51
mov dword [rsp + 0x48], edi
jmp 0x699e5699
mov ecx, dword [rbx + 0x20]
mov r8d, edi
mov rdx, r15
call fcn.699e1da0
mov dword [rbx + 0x20], eax
jmp 0x699e7290
mov ebp, ecx
mov r14d, r8d
jmp 0x699e6809
mov ecx, dword [rbx + 0x20]
mov r8d, 2
lea rdx, [rsp + 0x6c]
mov word [rsp + 0x6c], si
call fcn.699e1da0
mov dword [rbx + 0x20], eax
mov eax, dword [rbx + 0x18]
mov r8d, eax
jmp 0x699e73a8
mov r14d, r9d
jmp 0x699e5984
mov rbx, qword [rsp + 0x50]
mov r13, qword [rsp + 0xd0]
mov ecx, eax
sub ebp, eax
add eax, dword [rbx + 0x1be4]
shr esi, cl
mov ecx, r10d
jmp 0x699e72c9
mov r11d, esi
mov ebp, ecx
mov r15, rdx
jmp 0x699e8308
mov r11d, esi
lea rdx, str.invalid_block_type
sub ebp, 3
mov r15, r10
mov qword [r13 + 0x20], rdx
shr r11d, 3
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
lea r12d, [rax + 3]
cmp ebp, r12d
jae 0x699e901a
test r14d, r14d
je 0x699e5a00
mov r11d, ebp
not r11d
add r11d, r12d
shr r11d, 3
and r11d, 7
je 0x699e85de
movzx edi, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl edi, cl
add esi, edi
cmp ebp, r12d
jae 0x699e901a
test r14d, r14d
je 0x699e5a00
cmp r11d, 1
je 0x699e85de
cmp r11d, 2
je 0x699e85c1
cmp r11d, 3
je 0x699e85a4
cmp r11d, 4
je 0x699e8589
cmp r11d, 5
je 0x699e856c
cmp r11d, 6
je 0x699e854f
movzx r9d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r9d, cl
add esi, r9d
sub r14d, 1
je 0x699e5a00
movzx r10d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r10d, cl
add esi, r10d
sub r14d, 1
je 0x699e5a00
movzx r11d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r11d, cl
add esi, r11d
sub r14d, 1
je 0x699e5a00
movzx edi, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl edi, cl
add esi, edi
sub r14d, 1
je 0x699e5a00
movzx r9d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r9d, cl
add esi, r9d
sub r14d, 1
je 0x699e5a00
movzx r10d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r10d, cl
add esi, r10d
sub r14d, 1
je 0x699e5a00
mov ecx, ebp
movzx r11d, byte [r15]
lea r9, [r15 + 1]
lea ebp, [r14 - 1]
lea r10d, [rcx + 8]
mov r14d, ebp
mov r15, r9
shl r11d, cl
mov ecx, r10d
add esi, r11d
cmp r10d, r12d
jae 0x699e9017
test r14d, r14d
je 0x699e5e60
movzx edi, byte [r15]
add r15, 1
shl edi, cl
add ecx, 8
add esi, edi
sub r14d, 1
je 0x699e5e60
movzx r14d, byte [r9 + 1]
lea r15, [r9 + 2]
shl r14d, cl
lea ecx, [r10 + 0x10]
add esi, r14d
mov r14d, ebp
sub r14d, 2
je 0x699e5e60
movzx r11d, byte [r9 + 2]
mov r14d, ebp
lea r15, [r9 + 3]
shl r11d, cl
lea ecx, [r10 + 0x18]
add esi, r11d
sub r14d, 3
je 0x699e5e60
movzx edi, byte [r9 + 3]
mov r14d, ebp
lea r15, [r9 + 4]
shl edi, cl
lea ecx, [r10 + 0x20]
add esi, edi
sub r14d, 4
je 0x699e5e60
movzx r14d, byte [r9 + 4]
lea r15, [r9 + 5]
shl r14d, cl
lea ecx, [r10 + 0x28]
add esi, r14d
mov r14d, ebp
sub r14d, 5
je 0x699e5e60
movzx r11d, byte [r9 + 5]
mov r14d, ebp
lea r15, [r9 + 6]
shl r11d, cl
lea ecx, [r10 + 0x30]
add esi, r11d
sub r14d, 6
je 0x699e5e60
lea r15, [r9 + 7]
movzx r9d, byte [r9 + 6]
shl r9d, cl
lea ecx, [r10 + 0x38]
add esi, r9d
sub ebp, 7
mov r14d, ebp
jne 0x699e85e0
jmp 0x699e5e60
mov ebp, r11d
mov ecx, eax
mov edi, 0xfffffff9
xor r12d, r12d
shr esi, cl
sub edi, eax
mov r9d, esi
add ebp, edi
shr esi, 7
and r9d, 0x7f
add r9d, 0xb
mov r10d, dword [rsp + 0x50]
add r10d, r9d
cmp r10d, dword [rsp + 0x58]
ja 0x699e9368
mov r11d, dword [rbx + 0x84]
lea edi, [r9 + r11]
mov dword [rsp + 0x50], edi
and r9d, 7
je 0x699e87d4
cmp r9d, 1
je 0x699e87bd
cmp r9d, 2
je 0x699e87ad
cmp r9d, 3
je 0x699e879d
cmp r9d, 4
je 0x699e878d
cmp r9d, 5
je 0x699e877d
cmp r9d, 6
je 0x699e876d
mov r9d, r11d
add r11d, 1
mov word [rbx + r9*2 + 0x90], r12w
mov ecx, r11d
add r11d, 1
mov word [rbx + rcx*2 + 0x90], r12w
mov eax, r11d
add r11d, 1
mov word [rbx + rax*2 + 0x90], r12w
mov r10d, r11d
add r11d, 1
mov word [rbx + r10*2 + 0x90], r12w
mov edi, r11d
add r11d, 1
mov word [rbx + rdi*2 + 0x90], r12w
mov r9d, r11d
add r11d, 1
mov word [rbx + r9*2 + 0x90], r12w
mov ecx, r11d
add r11d, 1
mov word [rbx + rcx*2 + 0x90], r12w
cmp r11d, dword [rsp + 0x50]
je 0x699e8846
mov eax, r11d
lea r10d, [r11 + 1]
lea edi, [r11 + 2]
mov word [rbx + rax*2 + 0x90], r12w
lea r9d, [r11 + 3]
lea ecx, [r11 + 4]
mov word [rbx + r10*2 + 0x90], r12w
lea eax, [r11 + 5]
lea r10d, [r11 + 6]
mov word [rbx + rdi*2 + 0x90], r12w
lea edi, [r11 + 7]
add r11d, 8
mov word [rbx + r9*2 + 0x90], r12w
mov word [rbx + rcx*2 + 0x90], r12w
mov word [rbx + rax*2 + 0x90], r12w
mov word [rbx + r10*2 + 0x90], r12w
mov word [rbx + rdi*2 + 0x90], r12w
cmp r11d, dword [rsp + 0x50]
jne 0x699e87d4
mov edi, dword [rsp + 0x50]
mov dword [rbx + 0x84], edi
mov r12d, edi
jmp 0x699e7331
mov ebp, ecx
mov r8d, eax
mov r15, rdx
cmp r8d, 0x12
ja 0x699e89f9
mov edi, 0x12
mov r10d, r8d
lea rcx, [0x69a2c460]
sub edi, r8d
lea r8, [0x69a2c462]
lea rax, [rcx + r10*2]
add rdi, r10
lea rcx, [r8 + rdi*2]
mov r12, rcx
sub r12, rax
sub r12, 2
shr r12, 1
add r12, 1
and r12d, 7
je 0x699e895f
cmp r12, 1
je 0x699e8943
cmp r12, 2
je 0x699e892f
cmp r12, 3
je 0x699e891c
cmp r12, 4
je 0x699e8909
cmp r12, 5
je 0x699e88f5
cmp r12, 6
je 0x699e88e2
movzx edx, word [rax]
add rax, 2
mov word [rbx + rdx*2 + 0x90], 0
movzx r9d, word [rax]
add rax, 2
mov word [rbx + r9*2 + 0x90], 0
movzx r11d, word [rax]
xor r10d, r10d
add rax, 2
mov word [rbx + r11*2 + 0x90], r10w
movzx edi, word [rax]
xor r8d, r8d
add rax, 2
mov word [rbx + rdi*2 + 0x90], r8w
movzx r12d, word [rax]
xor edx, edx
add rax, 2
mov word [rbx + r12*2 + 0x90], dx
movzx r11d, word [rax]
xor r9d, r9d
add rax, 2
mov word [rbx + r11*2 + 0x90], r9w
movzx r10d, word [rax]
xor edi, edi
add rax, 2
mov word [rbx + r10*2 + 0x90], di
cmp rcx, rax
je 0x699e89ef
movzx r8d, word [rax]
xor r12d, r12d
xor r11d, r11d
xor r9d, r9d
add rax, 0x10
mov word [rbx + r8*2 + 0x90], r12w
movzx edx, word [rax - 0xe]
xor r8d, r8d
mov word [rbx + rdx*2 + 0x90], r11w
movzx r10d, word [rax - 0xc]
xor edx, edx
mov word [rbx + r10*2 + 0x90], r9w
movzx edi, word [rax - 0xa]
xor r10d, r10d
mov word [rbx + rdi*2 + 0x90], r8w
movzx r12d, word [rax - 8]
xor edi, edi
xor r8d, r8d
mov word [rbx + r12*2 + 0x90], dx
movzx r11d, word [rax - 6]
mov word [rbx + r11*2 + 0x90], r10w
movzx r9d, word [rax - 4]
mov word [rbx + r9*2 + 0x90], di
movzx r12d, word [rax - 2]
mov word [rbx + r12*2 + 0x90], r8w
cmp rcx, rax
jne 0x699e895f
mov dword [rbx + 0x84], 0x13
lea rax, [rbx + 0x550]
lea rcx, [rbx + 0x310]
mov dword [rbx + 0x70], 7
mov r8d, 0x13
lea r11, [rbx + 0x70]
mov qword [rbx + 0x88], rax
lea rdx, [rbx + 0x90]
mov qword [rbx + 0x60], rax
lea r9, [rbx + 0x88]
mov qword [rsp + 0x28], rcx
xor ecx, ecx
mov qword [rsp + 0x20], r11
call fcn.699ebbd0
test eax, eax
je 0x699e91b0
lea rax, str.invalid_code_lengths_set
mov r11d, esi
mov qword [r13 + 0x20], rax
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
mov ecx, dword [rbx + 0x20]
mov r8d, edi
mov rdx, r15
call fcn.699e1da0
mov dword [rbx + 0x20], eax
jmp 0x699e658c
test dl, 0x40
je 0x699e9068
lea rcx, [0x699fe797]
mov r11d, esi
mov qword [r13 + 0x20], rcx
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
mov r11d, esi
mov ebp, ecx
mov esi, dword [rsp + 0x48]
xor r12d, r12d
sub esi, dword [rsp + 0x40]
jmp 0x699e5a0e
mov ecx, dword [rbx + 0x20]
lea rdx, [rsp + 0x6c]
mov r8d, 4
mov dword [rsp + 0x6c], esi
call fcn.699e1da0
mov dword [rbx + 0x20], eax
jmp 0x699e763a
mov r11d, esi
mov ebp, ecx
mov r15, r8
jmp 0x699e8308
lea r15, str.incorrect_header_check
mov r11d, esi
mov qword [r13 + 0x20], r15
mov r15, rdi
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
mov rax, r15
jmp 0x699e5f99
mov r15, rax
xor ebp, ebp
xor r11d, r11d
mov esi, dword [rsp + 0x48]
mov r12d, 1
sub esi, dword [rsp + 0x40]
mov dword [rbx + 8], 0x3f50
jmp 0x699e5a0e
mov rdx, r15
jmp 0x699e6e89
mov ebp, ecx
mov r14d, r11d
jmp 0x699e6e89
mov dword [rbx + 0x84], 0
mov r15, rdx
xor r8d, r8d
mov dword [rbx + 8], 0x3f45
jmp 0x699e5fd3
lea r12d, [rax + 2]
cmp ebp, r12d
jae 0x699e9167
test r14d, r14d
je 0x699e5a00
mov edi, ebp
not edi
add edi, r12d
shr edi, 3
and edi, 7
je 0x699e8c7b
movzx r10d, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl r10d, cl
add esi, r10d
cmp ebp, r12d
jae 0x699e9167
test r14d, r14d
je 0x699e5a00
cmp edi, 1
je 0x699e8c7b
cmp edi, 2
je 0x699e8c5e
cmp edi, 3
je 0x699e8c41
cmp edi, 4
je 0x699e8c24
cmp edi, 5
je 0x699e8c09
cmp edi, 6
je 0x699e8bec
movzx r11d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r11d, cl
add esi, r11d
sub r14d, 1
je 0x699e5a00
movzx r9d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r9d, cl
add esi, r9d
sub r14d, 1
je 0x699e5a00
movzx edi, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl edi, cl
add esi, edi
sub r14d, 1
je 0x699e5a00
movzx r10d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r10d, cl
add esi, r10d
sub r14d, 1
je 0x699e5a00
movzx r11d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r11d, cl
add esi, r11d
sub r14d, 1
je 0x699e5a00
movzx r9d, byte [r15]
mov ecx, ebp
add r15, 1
add ebp, 8
shl r9d, cl
add esi, r9d
sub r14d, 1
je 0x699e5a00
mov ecx, ebp
movzx edi, byte [r15]
lea r10, [r15 + 1]
lea ebp, [r14 - 1]
lea r11d, [rcx + 8]
mov r14d, ebp
mov r15, r10
shl edi, cl
mov ecx, r11d
add esi, edi
cmp r11d, r12d
jae 0x699e9164
test r14d, r14d
je 0x699e5e60
movzx r9d, byte [r15]
add r15, 1
shl r9d, cl
add ecx, 8
add esi, r9d
sub r14d, 1
je 0x699e5e60
movzx r14d, byte [r10 + 1]
lea r15, [r10 + 2]
shl r14d, cl
lea ecx, [r11 + 0x10]
add esi, r14d
mov r14d, ebp
sub r14d, 2
je 0x699e5e60
movzx edi, byte [r10 + 2]
mov r14d, ebp
lea r15, [r10 + 3]
shl edi, cl
lea ecx, [r11 + 0x18]
add esi, edi
sub r14d, 3
je 0x699e5e60
movzx r9d, byte [r10 + 3]
mov r14d, ebp
lea r15, [r10 + 4]
shl r9d, cl
lea ecx, [r11 + 0x20]
add esi, r9d
sub r14d, 4
je 0x699e5e60
movzx r14d, byte [r10 + 4]
lea r15, [r10 + 5]
shl r14d, cl
lea ecx, [r11 + 0x28]
add esi, r14d
mov r14d, ebp
sub r14d, 5
je 0x699e5e60
movzx edi, byte [r10 + 5]
mov r14d, ebp
lea r15, [r10 + 6]
shl edi, cl
lea ecx, [r11 + 0x30]
add esi, edi
sub r14d, 6
je 0x699e5e60
lea r15, [r10 + 7]
movzx r10d, byte [r10 + 6]
shl r10d, cl
lea ecx, [r11 + 0x38]
add esi, r10d
sub ebp, 7
mov r14d, ebp
jne 0x699e8c7d
jmp 0x699e5e60
mov ebp, ecx
mov r14d, r8d
jmp 0x699e54d7
mov r11d, esi
xor r12d, r12d
mov esi, dword [rsp + 0x48]
jmp 0x699e5a0e
mov ebp, ecx
mov r15, r12
jmp 0x699e8308
add edx, eax
mov r9d, 0xffffffff
mov ecx, edx
shl r9d, cl
mov ecx, eax
not r9d
mov r11d, r9d
and r9d, esi
shr r9d, cl
add r9d, r12d
lea r10, [r8 + r9*4]
movzx r9d, byte [r10 + 1]
movzx edx, byte [r10]
movzx edi, word [r10 + 2]
lea r10d, [r9 + rax]
cmp r10d, ebp
jbe 0x699e90fb
test r14d, r14d
je 0x699e5a00
mov edx, r14d
lea edi, [r14 - 1]
and edx, 3
je 0x699e8ee5
cmp edx, 1
je 0x699e8e9a
cmp edx, 2
je 0x699e8e5a
movzx r9d, byte [r15]
mov ecx, ebp
mov r10d, r11d
mov r14d, edi
add ebp, 8
add r15, 1
shl r9d, cl
mov ecx, eax
add esi, r9d
and r10d, esi
shr r10d, cl
add r10d, r12d
lea r9, [r8 + r10*4]
movzx edx, byte [r9]
movzx edi, word [r9 + 2]
movzx r9d, byte [r9 + 1]
lea r10d, [r9 + rax]
cmp r10d, ebp
jbe 0x699e90fb
movzx edi, byte [r15]
mov ecx, ebp
mov edx, r11d
add ebp, 8
add r15, 1
sub r14d, 1
shl edi, cl
mov ecx, eax
add esi, edi
and edx, esi
shr edx, cl
add edx, r12d
lea r10, [r8 + rdx*4]
movzx r9d, byte [r10 + 1]
movzx edx, byte [r10]
movzx edi, word [r10 + 2]
lea r10d, [r9 + rax]
cmp r10d, ebp
jbe 0x699e90fb
movzx r9d, byte [r15]
mov ecx, ebp
mov edi, r11d
add ebp, 8
add r15, 1
sub r14d, 1
shl r9d, cl
mov ecx, eax
add esi, r9d
and edi, esi
shr edi, cl
add edi, r12d
lea r10, [r8 + rdi*4]
movzx r9d, byte [r10 + 1]
movzx edx, byte [r10]
movzx edi, word [r10 + 2]
lea r10d, [r9 + rax]
cmp r10d, ebp
jbe 0x699e90fb
test r14d, r14d
je 0x699e5a00
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0x50], rbx
mov ebx, r11d
movzx r13d, byte [r15]
mov ecx, ebp
lea r11, [r15 + 1]
lea edi, [r14 - 1]
mov r14d, edi
mov r15, r11
shl r13d, cl
mov ecx, eax
add esi, r13d
lea r13d, [rbp + 8]
mov edx, esi
mov ebp, r13d
and edx, ebx
shr edx, cl
add edx, r12d
lea r9, [r8 + rdx*4]
movzx edx, byte [r9]
movzx ecx, word [r9 + 2]
movzx r9d, byte [r9 + 1]
lea r10d, [r9 + rax]
cmp r10d, r13d
jbe 0x699e90ec
movzx r10d, byte [r15]
mov ecx, ebp
add ebp, 8
add r15, 1
sub r14d, 1
shl r10d, cl
mov ecx, eax
add esi, r10d
mov edx, esi
and edx, ebx
shr edx, cl
add edx, r12d
lea r9, [r8 + rdx*4]
movzx edx, byte [r9]
movzx ecx, word [r9 + 2]
movzx r9d, byte [r9 + 1]
lea r10d, [r9 + rax]
cmp r10d, ebp
jbe 0x699e90ec
movzx r10d, byte [r11 + 1]
mov ecx, ebp
lea ebp, [r13 + 0x10]
lea r14d, [rdi - 2]
lea r15, [r11 + 2]
shl r10d, cl
mov ecx, eax
add esi, r10d
mov edx, esi
and edx, ebx
shr edx, cl
add edx, r12d
lea r9, [r8 + rdx*4]
movzx edx, byte [r9]
movzx ecx, word [r9 + 2]
movzx r9d, byte [r9 + 1]
lea r10d, [r9 + rax]
cmp r10d, ebp
jbe 0x699e90ec
lea r14d, [rdi - 3]
movzx edi, byte [r11 + 2]
mov ecx, ebp
lea r15, [r11 + 3]
lea ebp, [r13 + 0x18]
shl edi, cl
mov ecx, eax
add esi, edi
mov r11d, esi
and r11d, ebx
shr r11d, cl
add r11d, r12d
lea r13, [r8 + r11*4]
movzx r9d, byte [r13 + 1]
movzx edx, byte [r13]
movzx ecx, word [r13 + 2]
lea r10d, [r9 + rax]
cmp r10d, ebp
jbe 0x699e90ec
test r14d, r14d
jne 0x699e8ef5
jmp 0x699e82a9
mov ebp, r10d
mov ecx, eax
mov r12d, 0xfffffffd
shr esi, cl
sub r12d, eax
mov r9d, esi
add ebp, r12d
shr esi, 3
xor r12d, r12d
and r9d, 7
add r9d, 3
jmp 0x699e870d
mov rdi, r15
jmp 0x699e66c1
mov rdx, r15
jmp 0x699e6809
mov rdx, r15
jmp 0x699e68a1
mov r8, r15
jmp 0x699e5984
mov r10, r15
jmp 0x699e6717
and edx, 0xf
mov dword [rbx + 8], 0x3f49
mov dword [rbx + 0x58], edx
jmp 0x699e56b3
mov ebp, ecx
mov r14d, r9d
jmp 0x699e66c1
cmp dword [rsp + 0xd8], 6
mov dword [rbx + 8], 0x3f47
jne case.0x699e53e0.19
mov r11d, esi
mov esi, dword [rsp + 0x48]
sub esi, dword [rsp + 0x40]
jmp 0x699e5a0e
mov rbp, qword [rbx + 0x28]
test rbp, rbp
je 0x699e90bd
mov edx, esi
shr edx, 8
and edx, 1
mov dword [rbp], edx
test esi, 0x200
je 0x699e90cf
test byte [rbx + 0x10], 4
jne 0x699e9348
mov dword [rbx + 8], 0x3f36
mov r15, rdi
xor esi, esi
xor ebp, ebp
jmp 0x699e6099
mov ebp, ecx
mov r14d, r12d
jmp 0x699e68a1
mov rbx, qword [rsp + 0x50]
mov r13, qword [rsp + 0xd0]
mov edi, ecx
mov ecx, eax
sub ebp, eax
movzx r8d, di
mov dword [rbx + 0x1be4], r10d
shr esi, cl
mov ecx, r9d
mov dword [rbx + 0x50], r8d
sub ebp, r9d
shr esi, cl
test dl, dl
jne 0x699e78ba
jmp 0x699e5532
mov ecx, dword [rbx + 0x20]
mov r8d, 2
lea rdx, [rsp + 0x6c]
xor ebp, ebp
mov word [rsp + 0x6c], si
xor esi, esi
call fcn.699e1da0
mov r8d, dword [rbx + 0x18]
mov dword [rbx + 0x20], eax
mov ecx, r8d
and ecx, 0x400
jmp 0x699e6652
mov r11d, esi
mov r15, r8
jmp 0x699e8308
mov ebp, r11d
mov ecx, eax
sub ebp, eax
mov eax, dword [rsp + 0x50]
shr esi, cl
test eax, eax
je 0x699e9368
mov r12d, dword [rsp + 0x50]
mov r9d, esi
sub ebp, 2
shr esi, 2
and r9d, 3
sub r12d, 1
add r9d, 3
movzx r12d, word [rbx + r12*2 + 0x90]
jmp 0x699e870d
call fcn.699e1540
mov r11d, dword [rsp + 0x48]
jmp 0x699e8391
mov dword [rbx + 0x84], 0
mov dword [rbx + 8], 0x3f46
mov dword [rsp + 0x50], 0
jmp 0x699e5c5a
mov rdi, qword [rsp + 0x38]
jmp 0x699e7fea
mov r11, qword [rsp + 0x38]
mov r9d, dword [rsp + 0x40]
mov qword [r13], r15
mov r12d, 2
mov dword [r13 + 8], r14d
mov qword [r13 + 0x10], r11
mov dword [r13 + 0x18], r9d
mov dword [rbx + 0x48], esi
mov dword [rbx + 0x4c], ebp
jmp 0x699e5333
mov r12, r15
jmp 0x699e54d7
mov r11d, esi
mov esi, dword [rsp + 0x48]
sub esi, r12d
xor r12d, r12d
jmp 0x699e5a0e
cmp dword [rbx + 0x30], 0
jne 0x699e922a
mov dword [rbx + 0x30], 0xf
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov r15, rdi
call fcn.699e1da0
lea rdx, [rsp + 0x6c]
xor ebp, ebp
xor esi, esi
mov dword [rbx + 0x20], eax
mov ecx, eax
mov r8d, 2
mov word [rsp + 0x6c], 0x8b1f
call fcn.699e1da0
mov dword [rbx + 8], 0x3f35
mov dword [rbx + 0x20], eax
jmp 0x699e6679
mov rdi, r15
jmp 0x699e7e2f
mov ebp, ecx
mov r14d, r11d
jmp 0x699e7e2f
mov r11d, esi
jmp 0x699e5699
lea rdx, [rbx + 0x550]
lea r8, [rbx + 0x70]
mov dword [rbx + 0x70], 9
mov ecx, 1
lea r12, [rbx + 0x310]
mov qword [rbx + 0x88], rdx
lea rdi, [rbx + 0x90]
mov qword [rbx + 0x60], rdx
lea r9, [rbx + 0x88]
mov rdx, rdi
mov qword [rsp + 0x20], r8
mov r8d, dword [rsp + 0x5c]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x50], r9
call fcn.699ebbd0
mov r9, qword [rsp + 0x50]
test eax, eax
je 0x699e9382
lea r9, str.invalid_literal_lengths_set
mov r11d, esi
mov qword [r13 + 0x20], r9
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
cmp ecx, 0xf
ja 0x699e7ed9
cmp r10d, ecx
jb 0x699e7ed9
mov ebp, 1
xor r8d, r8d
xor edx, edx
shl ebp, cl
xor ecx, ecx
mov dword [rbx + 0x1c], ebp
call fcn.699e1540
mov dword [rbx + 0x20], eax
mov dword [r13 + 0x4c], eax
and esi, 0x200
jne 0x699e9413
mov dword [rbx + 8], 0x3f3f
xor ebp, ebp
mov r15, rdi
jmp case.0x699e53e0.11
mov ecx, dword [rbx + 0x20]
lea rdx, [rsp + 0x6c]
mov r8d, 2
mov word [rsp + 0x6c], si
call fcn.699e1da0
mov dword [rbx + 0x20], eax
jmp 0x699e90cf
mov r11d, esi
lea rsi, str.invalid_bit_length_repeat
mov qword [r13 + 0x20], rsi
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
mov r11, qword [rbx + 0x88]
mov edx, dword [rbx + 0x7c]
lea r10, [rbx + 0x74]
mov dword [rbx + 0x74], 6
mov r8d, dword [rbx + 0x80]
mov ecx, 2
mov qword [rbx + 0x68], r11
add rdx, rdx
mov qword [rsp + 0x28], r12
add rdx, rdi
mov qword [rsp + 0x20], r10
call fcn.699ebbd0
mov r12d, eax
test eax, eax
je 0x699e9084
mov r11d, esi
lea rsi, str.invalid_distances_set
mov qword [r13 + 0x20], rsi
mov dword [rbx + 8], 0x3f51
jmp 0x699e5699
mov r11d, esi
sub ebp, 3
mov esi, dword [rsp + 0x48]
mov r15, r10
shr r11d, 3
sub esi, dword [rsp + 0x40]
jmp 0x699e5a0e
mov esi, dword [rsp + 0x48]
mov r15, rdx
sub esi, dword [rsp + 0x40]
xor r12d, r12d
xor ebp, ebp
xor r11d, r11d
jmp 0x699e5a0e
mov dword [rbx + 8], 0x3f3d
xor esi, esi
xor ebp, ebp
mov r15, rdi
jmp 0x699e58f1