Function at 0x699ea6d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov r9d, 0xffffffff
mov esi, r9d
mov rbx, qword [rcx + 0x28]
mov r10, qword [rcx + 0x10]
mov r14, qword [rcx]
mov eax, dword [rcx + 8]
mov rdi, r10
mov r12d, dword [rbx + 0x3c]
mov ebp, dword [rbx + 0x34]
sub eax, 5
mov r8d, dword [rbx + 0x4c]
mov r11, qword [rbx + 0x60]
mov r15, rcx
mov ecx, dword [rcx + 0x18]
mov dword [rsp + 0x3c], ebp
add rax, r14
lea ebp, [rbp + r12]
mov qword [rsp + 8], rax
mov r13, qword [rbx + 0x68]
sub edx, ecx
sub ecx, 0x101
mov dword [rsp + 0x50], ebp
mov eax, dword [rbx + 0x48]
sub rdi, rdx
add rcx, r10
mov edx, dword [rbx + 0x38]
mov qword [rsp + 0x10], rcx
mov ecx, dword [rbx + 0x70]
mov dword [rsp + 0x34], edx
mov edx, r12d
shl esi, cl
shr edx, 4
mov ecx, dword [rbx + 0x74]
mov qword [rsp + 0x28], rdi
shl rdx, 4
mov rdi, qword [rbx + 0x40]
not esi
mov qword [rsp + 0x48], rdx
shl r9d, cl
mov edx, r12d
lea ecx, [r12 - 1]
and edx, 0xfffffff0
not r9d
mov dword [rsp + 0x18], esi
mov rsi, rdi
mov dword [rsp + 0x1c], r9d
mov r9d, edx
add rsi, r9
mov qword [rsp + 0x20], rdi
add rdi, 0x10
mov qword [rsp + 0x58], rsi
mov esi, ecx
mov dword [rsp + 0x54], ecx
sub ecx, edx
mov qword [rsp + 0x80], rdi
mov edi, esi
mov qword [rsp + 0x60], r9
mov r9d, 0xffffffff
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x6c], ecx
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0x30], r12d
cmp r8d, 0xe
ja 0x699ea7f6
movzx r12d, byte [r14 + 1]
lea ecx, [r8 + 8]
movzx edx, byte [r14]
add r14, 2
shl r12d, cl
mov ecx, r8d
add r8d, 0x10
shl edx, cl
add r12d, edx
add eax, r12d
mov edx, dword [rsp + 0x18]
and edx, eax
jmp 0x699ea81f
test sil, 0x10
jne 0x699ea8d8
test sil, 0x40
jne 0x699eab28
mov edi, r9d
shl edi, cl
not edi
and edi, eax
add edx, edi
lea rbp, [r11 + rdx*4]
movzx ecx, byte [rbp + 1]
movzx esi, byte [rbp]
movzx edx, word [rbp + 2]
shr eax, cl
sub r8d, ecx
movzx ecx, sil
test ecx, ecx
jne 0x699ea800
mov byte [r10], dl
add r10, 1
cmp r14, qword [rsp + 8]
jae 0x699ea858
cmp r10, qword [rsp + 0x10]
jb 0x699ea7cd
nop dword [rax]
mov ecx, r8d
mov r11d, r8d
mov r8d, 0xffffffff
mov qword [r15 + 0x10], r10
and ecx, 7
shr r11d, 3
mov r13, qword [rsp + 8]
shl r8d, cl
sub r14, r11
not r8d
mov qword [r15], r14
and eax, r8d
cmp r13, r14
jbe 0x699eab58
sub r13, r14
mov r12, r13
add r12d, 5
mov rdi, qword [rsp + 0x10]
mov dword [r15 + 8], r12d
cmp r10, rdi
jae 0x699eab40
sub rdi, r10
mov rbp, rdi
add ebp, 0x101
mov dword [r15 + 0x18], ebp
mov dword [rbx + 0x48], eax
mov dword [rbx + 0x4c], ecx
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
and esi, 0xf
je 0x699ea90d
movzx r12d, sil
cmp r12d, r8d
jbe 0x699ea8f9
movzx ebp, byte [r14]
mov ecx, r8d
add r14, 1
add r8d, 8
shl ebp, cl
add eax, ebp
mov ecx, esi
mov edi, r9d
sub r8d, r12d
shl edi, cl
mov ebp, edi
not ebp
and ebp, eax
shr eax, cl
add edx, ebp
cmp r8d, 0xe
jbe 0x699eab70
mov ebp, dword [rsp + 0x1c]
and ebp, eax
jmp 0x699ea938
and esi, 0x40
jne 0x699eabc0
mov r12d, r9d
shl r12d, cl
mov ebp, r12d
not ebp
and ebp, eax
add ebp, edi
lea rbp, [r13 + rbp*4]
movzx ecx, byte [rbp + 1]
movzx esi, byte [rbp]
movzx edi, word [rbp + 2]
shr eax, cl
sub r8d, ecx
movzx ecx, sil
test sil, 0x10
je 0x699ea920
mov ebp, esi
and esi, 0xf
and ebp, 0xf
cmp esi, r8d
jbe 0x699ea985
movzx r12d, byte [r14]
mov ecx, r8d
shl r12d, cl
lea ecx, [r8 + 8]
add eax, r12d
cmp esi, ecx
ja 0x699eaff8
add r14, 1
mov r8d, ecx
mov ecx, ebp
mov r12d, r9d
sub r8d, esi
mov rsi, r10
shl r12d, cl
sub rsi, qword [rsp + 0x28]
not r12d
and r12d, eax
shr eax, cl
add edi, r12d
mov dword [rsp + 0x38], edi
cmp edi, esi
jbe 0x699eae83
mov r12d, edi
sub r12d, esi
cmp dword [rsp + 0x34], r12d
jae 0x699ea9ca
mov edi, dword [rbx + 0x1be0]
test edi, edi
jne 0x699eb2e6
mov ecx, dword [rsp + 0x30]
sub esi, dword [rsp + 0x38]
test ecx, ecx
jne 0x699eabd7
mov edi, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x20]
lea ebp, [rdi + rsi]
add rcx, rbp
cmp edx, r12d
ja 0x699eb311
cmp edx, 2
jbe 0x699eab03
lea r12d, [rdx - 3]
mov ebp, 0xaaaaaaab
mov rdi, r12
imul r12, rbp
shr r12, 0x21
add r12d, 1
and r12d, 3
je 0x699eaa91
cmp r12d, 1
je 0x699eaa69
cmp r12d, 2
je 0x699eaa47
movzx edx, byte [rcx]
add r10, 3
add rcx, 3
mov byte [r10 - 3], dl
movzx esi, byte [rcx - 2]
mov edx, edi
mov byte [r10 - 2], sil
movzx r12d, byte [rcx - 1]
mov byte [r10 - 1], r12b
movzx edi, byte [rcx]
add r10, 3
add rcx, 3
sub edx, 3
mov byte [r10 - 3], dil
movzx ebp, byte [rcx - 2]
mov byte [r10 - 2], bpl
movzx esi, byte [rcx - 1]
mov byte [r10 - 1], sil
movzx r12d, byte [rcx]
add rcx, 3
add r10, 3
sub edx, 3
mov byte [r10 - 3], r12b
movzx edi, byte [rcx - 2]
mov byte [r10 - 2], dil
movzx ebp, byte [rcx - 1]
mov byte [r10 - 1], bpl
cmp edx, 2
jbe 0x699eab03
movzx esi, byte [rcx]
add rcx, 0xc
add r10, 0xc
sub edx, 0xc
mov byte [r10 - 0xc], sil
movzx r12d, byte [rcx - 0xb]
mov byte [r10 - 0xb], r12b
movzx edi, byte [rcx - 0xa]
mov byte [r10 - 0xa], dil
movzx ebp, byte [rcx - 9]
mov byte [r10 - 9], bpl
movzx esi, byte [rcx - 8]
mov byte [r10 - 8], sil
movzx r12d, byte [rcx - 7]
mov byte [r10 - 7], r12b
movzx edi, byte [rcx - 6]
mov byte [r10 - 6], dil
movzx ebp, byte [rcx - 5]
mov byte [r10 - 5], bpl
movzx esi, byte [rcx - 4]
mov byte [r10 - 4], sil
movzx r12d, byte [rcx - 3]
mov byte [r10 - 3], r12b
movzx edi, byte [rcx - 2]
mov byte [r10 - 2], dil
movzx ebp, byte [rcx - 1]
mov byte [r10 - 1], bpl
cmp edx, 2
ja 0x699eaa91
test edx, edx
je 0x699ea843
movzx esi, byte [rcx]
mov byte [r10], sil
cmp edx, 2
je 0x699eb300
add r10, 1
jmp 0x699ea843
and esi, 0x20
je 0x699eaba0
mov dword [rbx + 8], 0x3f3f
jmp 0x699ea858
mov ebp, dword [rsp + 0x10]
sub ebp, r10d
add ebp, 0x101
jmp 0x699ea8b4
mov edx, dword [rsp + 8]
sub edx, r14d
mov r12d, edx
add r12d, 5
jmp 0x699ea896
movzx esi, byte [r14 + 1]
lea ecx, [r8 + 8]
movzx r12d, byte [r14]
add r14, 2
shl esi, cl
mov ecx, r8d
add r8d, 0x10
shl r12d, cl
add esi, r12d
add eax, esi
jmp 0x699ea917
lea r11, str.invalid_literal_length_code
mov qword [r15 + 0x20], r11
mov dword [rbx + 8], 0x3f51
jmp 0x699ea858
lea rdx, str.invalid_distance_code
mov qword [r15 + 0x20], rdx
mov dword [rbx + 8], 0x3f51
jmp 0x699ea858
cmp dword [rsp + 0x30], r12d
jae 0x699eb010
mov ecx, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x20]
lea ebp, [rcx + rsi]
lea rcx, [rdi + rbp]
mov edi, r12d
sub edi, dword [rsp + 0x30]
mov dword [rsp + 0x70], edi
cmp edx, edi
jbe 0x699ea9f2
add edx, dword [rsp + 0x30]
lea r12d, [rdi - 1]
add edx, esi
mov rsi, qword [rsp + 0x20]
mov dword [rsp + 0x88], r12d
lea rbp, [rsi + rbp + 0x10]
lea rsi, [r10 + 0x10]
cmp r10, rbp
setae bpl
cmp rcx, rsi
setae sil
or bpl, sil
je 0x699eb97c
cmp r12d, 0xe
jbe 0x699eb97c
shr edi, 4
xor ebp, ebp
mov r12d, edi
shl r12, 4
lea rdi, [r12 - 0x10]
shr rdi, 4
add rdi, 1
and edi, 7
je 0x699eacf2
cmp rdi, 1
je 0x699eacdf
cmp rdi, 2
je 0x699eacd1
cmp rdi, 3
je 0x699eacc3
cmp rdi, 4
je 0x699eacb5
cmp rdi, 5
je 0x699eaca7
cmp rdi, 6
je 0x699eac99
movdqu xmm5, xmmword [rcx]
mov ebp, 0x10
movups xmmword [r10], xmm5
movdqu xmm0, xmmword [rcx + rbp]
movups xmmword [r10 + rbp], xmm0
add rbp, 0x10
movdqu xmm1, xmmword [rcx + rbp]
movups xmmword [r10 + rbp], xmm1
add rbp, 0x10
movdqu xmm2, xmmword [rcx + rbp]
movups xmmword [r10 + rbp], xmm2
add rbp, 0x10
movdqu xmm3, xmmword [rcx + rbp]
movups xmmword [r10 + rbp], xmm3
add rbp, 0x10
movdqu xmm4, xmmword [rcx + rbp]
movups xmmword [r10 + rbp], xmm4
add rbp, 0x10
movdqu xmm5, xmmword [rcx + rbp]
movups xmmword [r10 + rbp], xmm5
add rbp, 0x10
cmp rbp, r12
je 0x699ead61
mov esi, dword [rsp + 0x38]
movdqu xmm0, xmmword [rcx + rbp]
movups xmmword [r10 + rbp], xmm0
movdqu xmm1, xmmword [rcx + rbp + 0x10]
movups xmmword [r10 + rbp + 0x10], xmm1
movdqu xmm2, xmmword [rcx + rbp + 0x20]
movups xmmword [r10 + rbp + 0x20], xmm2
movdqu xmm3, xmmword [rcx + rbp + 0x30]
movups xmmword [r10 + rbp + 0x30], xmm3
movdqu xmm4, xmmword [rcx + rbp + 0x40]
movups xmmword [r10 + rbp + 0x40], xmm4
movdqu xmm5, xmmword [rcx + rbp + 0x50]
movups xmmword [r10 + rbp + 0x50], xmm5
movdqu xmm0, xmmword [rcx + rbp + 0x60]
movups xmmword [r10 + rbp + 0x60], xmm0
movdqu xmm1, xmmword [rcx + rbp + 0x70]
movups xmmword [r10 + rbp + 0x70], xmm1
sub rbp, 0xffffffffffffff80
cmp rbp, r12
jne 0x699eacf6
mov dword [rsp + 0x38], esi
mov edi, dword [rsp + 0x70]
mov ebp, edi
and ebp, 0xfffffff0
mov esi, ebp
lea r12, [r10 + rsi]
add rcx, rsi
cmp edi, ebp
je 0x699eae60
movzx edi, byte [rcx]
mov esi, dword [rsp + 0x88]
mov byte [r12], dil
sub esi, ebp
je 0x699eae60
movzx ebp, byte [rcx + 1]
mov byte [r12 + 1], bpl
cmp esi, 1
je 0x699eae60
movzx edi, byte [rcx + 2]
mov byte [r12 + 2], dil
cmp esi, 2
je 0x699eae60
movzx ebp, byte [rcx + 3]
mov byte [r12 + 3], bpl
cmp esi, 3
je 0x699eae60
movzx edi, byte [rcx + 4]
mov byte [r12 + 4], dil
cmp esi, 4
je 0x699eae60
movzx ebp, byte [rcx + 5]
mov byte [r12 + 5], bpl
cmp esi, 5
je 0x699eae60
movzx edi, byte [rcx + 6]
mov byte [r12 + 6], dil
cmp esi, 6
je 0x699eae60
movzx ebp, byte [rcx + 7]
mov byte [r12 + 7], bpl
cmp esi, 7
je 0x699eae60
movzx edi, byte [rcx + 8]
mov byte [r12 + 8], dil
cmp esi, 8
je 0x699eae60
movzx ebp, byte [rcx + 9]
mov byte [r12 + 9], bpl
cmp esi, 9
je 0x699eae60
movzx edi, byte [rcx + 0xa]
mov byte [r12 + 0xa], dil
cmp esi, 0xa
je 0x699eae60
movzx ebp, byte [rcx + 0xb]
mov byte [r12 + 0xb], bpl
cmp esi, 0xb
je 0x699eae60
movzx edi, byte [rcx + 0xc]
mov byte [r12 + 0xc], dil
cmp esi, 0xc
je 0x699eae60
movzx ebp, byte [rcx + 0xd]
mov byte [r12 + 0xd], bpl
cmp esi, 0xd
je 0x699eae60
movzx ecx, byte [rcx + 0xe]
mov byte [r12 + 0xe], cl
mov ecx, dword [rsp + 0x88]
lea rsi, [r10 + rcx + 1]
cmp dword [rsp + 0x30], edx
jb 0x699eb5ba
mov rcx, qword [rsp + 0x20]
mov r10, rsi
jmp 0x699ea9f2
lea ecx, [rdx - 3]
mov ebp, 0xaaaaaaab
mov edi, dword [rsp + 0x38]
mov r12, r10
mov rsi, rcx
imul rcx, rbp
sub r12, rdi
shr rcx, 0x21
add ecx, 1
and ecx, 3
je 0x699eaf3b
cmp ecx, 1
je 0x699eaf05
cmp ecx, 2
je 0x699eaedd
movzx edx, byte [r12]
add r10, 3
add r12, 3
mov byte [r10 - 3], dl
movzx edi, byte [r12 - 2]
mov edx, esi
mov byte [r10 - 2], dil
movzx ecx, byte [r12 - 1]
mov byte [r10 - 1], cl
movzx esi, byte [r12]
add r10, 3
add r12, 3
sub edx, 3
mov byte [r10 - 3], sil
movzx ebp, byte [r12 - 2]
mov byte [r10 - 2], bpl
movzx edi, byte [r12 - 1]
mov byte [r10 - 1], dil
movzx ecx, byte [r12]
mov rdi, r12
add r12, 3
sub edx, 3
mov byte [r10], cl
movzx esi, byte [r12 - 2]
mov byte [r10 + 1], sil
movzx ebp, byte [r12 - 1]
mov rsi, r10
add r10, 3
mov byte [r10 - 1], bpl
cmp edx, 2
jbe 0x699eafc8
movzx ecx, byte [r12]
sub edx, 0xc
mov byte [r10], cl
movzx edi, byte [r12 + 1]
mov byte [r10 + 1], dil
movzx esi, byte [r12 + 2]
mov byte [r10 + 2], sil
movzx ebp, byte [r12 + 3]
mov byte [r10 + 3], bpl
movzx ecx, byte [r12 + 4]
mov byte [r10 + 4], cl
movzx edi, byte [r12 + 5]
mov byte [r10 + 5], dil
movzx esi, byte [r12 + 6]
lea rdi, [r12 + 9]
add r12, 0xc
mov byte [r10 + 6], sil
movzx ebp, byte [r12 - 5]
lea rsi, [r10 + 9]
add r10, 0xc
mov byte [r10 - 5], bpl
movzx ecx, byte [rdi - 1]
mov byte [rsi - 1], cl
movzx ebp, byte [r12 - 3]
mov byte [r10 - 3], bpl
movzx ecx, byte [rdi + 1]
mov byte [rsi + 1], cl
movzx ebp, byte [r12 - 1]
mov byte [r10 - 1], bpl
cmp edx, 2
ja 0x699eaf3b
test edx, edx
je 0x699ea843
movzx r10d, byte [rdi + 3]
mov byte [rsi + 3], r10b
lea r10, [rsi + 4]
cmp edx, 2
jne 0x699ea843
movzx r12d, byte [rdi + 4]
lea r10, [rsi + 5]
mov byte [rsi + 4], r12b
jmp 0x699ea843
movzx r12d, byte [r14 + 1]
add r8d, 0x10
add r14, 2
shl r12d, cl
add eax, r12d
jmp 0x699ea985
mov ebp, dword [rsp + 0x30]
mov rdi, qword [rsp + 0x20]
lea ebp, [rbp + rsi]
lea rcx, [rdi + rbp]
cmp edx, r12d
jbe 0x699ea9f2
add edx, esi
mov rsi, qword [rsp + 0x20]
lea edi, [r12 - 1]
mov dword [rsp + 0x88], edi
lea rbp, [rsi + rbp + 0x10]
lea rsi, [r10 + 0x10]
cmp r10, rbp
setae bpl
cmp rcx, rsi
setae sil
or bpl, sil
je 0x699eb86f
cmp edi, 0xe
jbe 0x699eb86f
lea ebp, [r12 - 0x10]
movdqu xmm1, xmmword [rcx]
mov esi, 0x10
shr ebp, 4
lea edi, [rbp + 1]
and ebp, 7
movups xmmword [r10], xmm1
mov dword [rsp + 0x8c], ebp
mov ebp, 1
mov dword [rsp + 0x70], edi
cmp edi, 1
jbe 0x699eb1be
mov edi, dword [rsp + 0x8c]
test edi, edi
je 0x699eb14b
cmp edi, 1
je 0x699eb134
cmp edi, 2
je 0x699eb123
cmp edi, 3
je 0x699eb112
cmp edi, 4
je 0x699eb101
cmp edi, 5
je 0x699eb0f0
cmp edi, 6
je 0x699eb0df
movdqu xmm2, xmmword [rcx + 0x10]
mov ebp, 2
mov esi, 0x20
movups xmmword [r10 + 0x10], xmm2
movdqu xmm3, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm3
add rsi, 0x10
movdqu xmm4, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm4
add rsi, 0x10
movdqu xmm5, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm5
add rsi, 0x10
movdqu xmm0, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm0
add rsi, 0x10
movdqu xmm1, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm1
add rsi, 0x10
movdqu xmm2, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm2
add rsi, 0x10
cmp dword [rsp + 0x70], ebp
jbe 0x699eb1be
mov edi, dword [rsp + 0x38]
movdqu xmm3, xmmword [rcx + rsi]
add ebp, 8
movups xmmword [r10 + rsi], xmm3
movdqu xmm4, xmmword [rcx + rsi + 0x10]
movups xmmword [r10 + rsi + 0x10], xmm4
movdqu xmm5, xmmword [rcx + rsi + 0x20]
movups xmmword [r10 + rsi + 0x20], xmm5
movdqu xmm0, xmmword [rcx + rsi + 0x30]
movups xmmword [r10 + rsi + 0x30], xmm0
movdqu xmm1, xmmword [rcx + rsi + 0x40]
movups xmmword [r10 + rsi + 0x40], xmm1
movdqu xmm2, xmmword [rcx + rsi + 0x50]
movups xmmword [r10 + rsi + 0x50], xmm2
movdqu xmm3, xmmword [rcx + rsi + 0x60]
movups xmmword [r10 + rsi + 0x60], xmm3
movdqu xmm4, xmmword [rcx + rsi + 0x70]
movups xmmword [r10 + rsi + 0x70], xmm4
sub rsi, 0xffffffffffffff80
cmp dword [rsp + 0x70], ebp
ja 0x699eb14f
mov dword [rsp + 0x38], edi
mov edi, dword [rsp + 0x70]
shl edi, 4
mov esi, edi
mov dword [rsp + 0x8c], edi
lea rbp, [r10 + rsi]
add rcx, rsi
mov esi, dword [rsp + 0x88]
mov qword [rsp + 0x70], rsi
mov rdi, rsi
mov esi, dword [rsp + 0x8c]
cmp r12d, esi
je 0x699eb2cd
movzx r12d, byte [rcx]
sub edi, esi
mov esi, edi
mov byte [rbp], r12b
je 0x699eb2cd
movzx r12d, byte [rcx + 1]
mov byte [rbp + 1], r12b
cmp edi, 1
je 0x699eb2cd
movzx edi, byte [rcx + 2]
mov byte [rbp + 2], dil
cmp esi, 2
je 0x699eb2cd
movzx r12d, byte [rcx + 3]
mov byte [rbp + 3], r12b
cmp esi, 3
je 0x699eb2cd
movzx edi, byte [rcx + 4]
mov byte [rbp + 4], dil
cmp esi, 4
je 0x699eb2cd
movzx r12d, byte [rcx + 5]
mov byte [rbp + 5], r12b
cmp esi, 5
je 0x699eb2cd
movzx edi, byte [rcx + 6]
mov byte [rbp + 6], dil
cmp esi, 6
je 0x699eb2cd
movzx r12d, byte [rcx + 7]
mov byte [rbp + 7], r12b
cmp esi, 7
je 0x699eb2cd
movzx edi, byte [rcx + 8]
mov byte [rbp + 8], dil
cmp esi, 8
je 0x699eb2cd
movzx r12d, byte [rcx + 9]
mov byte [rbp + 9], r12b
cmp esi, 9
je 0x699eb2cd
movzx edi, byte [rcx + 0xa]
mov byte [rbp + 0xa], dil
cmp esi, 0xa
je 0x699eb2cd
movzx r12d, byte [rcx + 0xb]
mov byte [rbp + 0xb], r12b
cmp esi, 0xb
je 0x699eb2cd
movzx edi, byte [rcx + 0xc]
mov byte [rbp + 0xc], dil
cmp esi, 0xc
je 0x699eb2cd
movzx r12d, byte [rcx + 0xd]
mov byte [rbp + 0xd], r12b
cmp esi, 0xd
je 0x699eb2cd
movzx ecx, byte [rcx + 0xe]
mov byte [rbp + 0xe], cl
mov rcx, qword [rsp + 0x70]
mov esi, dword [rsp + 0x38]
lea r10, [r10 + rcx + 1]
mov rcx, r10
sub rcx, rsi
jmp 0x699ea9f2
lea r9, str.invalid_distance_too_far_back
mov qword [r15 + 0x20], r9
mov dword [rbx + 8], 0x3f51
jmp 0x699ea858
movzx ecx, byte [rcx + 1]
add r10, 2
mov byte [r10 - 1], cl
jmp 0x699ea843
add edx, esi
mov rsi, qword [rsp + 0x20]
lea edi, [r12 - 1]
mov dword [rsp + 0x88], edi
lea rbp, [rsi + rbp + 0x10]
lea rsi, [r10 + 0x10]
cmp r10, rbp
setae bpl
cmp rcx, rsi
setae sil
or bpl, sil
je 0x699eb4aa
cmp edi, 0xe
jbe 0x699eb4aa
lea ebp, [r12 - 0x10]
movdqu xmm4, xmmword [rcx]
mov esi, 0x10
shr ebp, 4
lea edi, [rbp + 1]
and ebp, 7
movups xmmword [r10], xmm4
mov dword [rsp + 0x8c], ebp
mov ebp, 1
mov dword [rsp + 0x70], edi
cmp edi, 1
jbe 0x699eb1be
mov edi, dword [rsp + 0x8c]
test edi, edi
je 0x699eb436
cmp edi, 1
je 0x699eb41b
cmp edi, 2
je 0x699eb40a
cmp edi, 3
je 0x699eb3f9
cmp edi, 4
je 0x699eb3e8
cmp edi, 5
je 0x699eb3d7
cmp edi, 6
je 0x699eb3c6
movdqu xmm5, xmmword [rcx + 0x10]
mov ebp, 2
mov esi, 0x20
movups xmmword [r10 + 0x10], xmm5
movdqu xmm0, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm0
add rsi, 0x10
movdqu xmm1, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm1
add rsi, 0x10
movdqu xmm2, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm2
add rsi, 0x10
movdqu xmm3, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm3
add rsi, 0x10
movdqu xmm4, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm4
add rsi, 0x10
movdqu xmm5, xmmword [rcx + rsi]
add ebp, 1
movups xmmword [r10 + rsi], xmm5
add rsi, 0x10
cmp dword [rsp + 0x70], ebp
jbe 0x699eb1be
mov edi, dword [rsp + 0x38]
movdqu xmm0, xmmword [rcx + rsi]
add ebp, 8
movups xmmword [r10 + rsi], xmm0
movdqu xmm1, xmmword [rcx + rsi + 0x10]
movups xmmword [r10 + rsi + 0x10], xmm1
movdqu xmm2, xmmword [rcx + rsi + 0x20]
movups xmmword [r10 + rsi + 0x20], xmm2
movdqu xmm3, xmmword [rcx + rsi + 0x30]
movups xmmword [r10 + rsi + 0x30], xmm3
movdqu xmm4, xmmword [rcx + rsi + 0x40]
movups xmmword [r10 + rsi + 0x40], xmm4
movdqu xmm5, xmmword [rcx + rsi + 0x50]
movups xmmword [r10 + rsi + 0x50], xmm5
movdqu xmm0, xmmword [rcx + rsi + 0x60]
movups xmmword [r10 + rsi + 0x60], xmm0
movdqu xmm1, xmmword [rcx + rsi + 0x70]
movups xmmword [r10 + rsi + 0x70], xmm1
sub rsi, 0xffffffffffffff80
cmp dword [rsp + 0x70], ebp
ja 0x699eb43a
jmp 0x699eb1ba
mov ebp, dword [rsp + 0x88]
xor esi, esi
lea rdi, [rbp + 1]
mov qword [rsp + 0x70], rbp
and edi, 7
je 0x699eb54c
cmp rdi, 1
je 0x699eb532
cmp rdi, 2
je 0x699eb526
cmp rdi, 3
je 0x699eb519
cmp rdi, 4
je 0x699eb50d
cmp rdi, 5
je 0x699eb501
cmp rdi, 6
je 0x699eb4f4
movzx esi, byte [rcx]
mov byte [r10], sil
mov esi, 1
movzx r12d, byte [rcx + rsi]
mov byte [r10 + rsi], r12b
add rsi, 1
movzx ebp, byte [rcx + rsi]
mov byte [r10 + rsi], bpl
add rsi, 1
movzx edi, byte [rcx + rsi]
mov byte [r10 + rsi], dil
add rsi, 1
movzx r12d, byte [rcx + rsi]
mov byte [r10 + rsi], r12b
add rsi, 1
movzx ebp, byte [rcx + rsi]
mov byte [r10 + rsi], bpl
add rsi, 1
movzx edi, byte [rcx + rsi]
mov r12, rsi
mov byte [r10 + rsi], dil
add rsi, 1
cmp r12, qword [rsp + 0x70]
je 0x699eb2cd
mov edi, dword [rsp + 0x38]
movzx ebp, byte [rcx + rsi]
mov byte [r10 + rsi], bpl
movzx r12d, byte [rcx + rsi + 1]
mov byte [r10 + rsi + 1], r12b
movzx ebp, byte [rcx + rsi + 2]
mov byte [r10 + rsi + 2], bpl
movzx r12d, byte [rcx + rsi + 3]
mov byte [r10 + rsi + 3], r12b
movzx ebp, byte [rcx + rsi + 4]
mov byte [r10 + rsi + 4], bpl
movzx r12d, byte [rcx + rsi + 5]
mov byte [r10 + rsi + 5], r12b
movzx ebp, byte [rcx + rsi + 6]
mov byte [r10 + rsi + 6], bpl
movzx r12d, byte [rcx + rsi + 7]
lea rbp, [rsi + 7]
mov byte [r10 + rsi + 7], r12b
add rsi, 8
cmp rbp, qword [rsp + 0x70]
jne 0x699eb550
mov dword [rsp + 0x38], edi
jmp 0x699eb2cd
lea r10, [r10 + rcx + 0x11]
sub edx, dword [rsp + 0x30]
cmp qword [rsp + 0x20], r10
mov ecx, 0
setae bpl
cmp rsi, qword [rsp + 0x80]
setae dil
or bpl, dil
je 0x699eba8c
cmp dword [rsp + 0x54], 0xe
jbe 0x699eba8c
mov r12, qword [rsp + 0x48]
lea r10, [r12 - 0x10]
shr r10, 4
add r10, 1
and r10d, 7
je 0x699eba7d
cmp r10, 1
je 0x699eb6c6
cmp r10, 2
je 0x699eb6ae
cmp r10, 3
je 0x699eb696
cmp r10, 4
je 0x699eb67e
cmp r10, 5
je 0x699eb667
cmp r10, 6
je 0x699eb64f
mov rcx, qword [rsp + 0x20]
movdqu xmm0, xmmword [rcx]
mov ecx, 0x10
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsi], xmm0
mov rbp, qword [rsp + 0x20]
movdqu xmm2, xmmword [rbp + rcx]
movups xmmword [rsi + rcx], xmm2
add rcx, 0x10
movups xmmword [rsp + 0x70], xmm2
mov rdi, qword [rsp + 0x20]
movdqu xmm4, xmmword [rdi + rcx]
movups xmmword [rsi + rcx], xmm4
add rcx, 0x10
movups xmmword [rsp + 0x70], xmm4
mov r12, qword [rsp + 0x20]
movdqu xmm0, xmmword [r12 + rcx]
movups xmmword [rsi + rcx], xmm0
add rcx, 0x10
movups xmmword [rsp + 0x70], xmm0
mov r10, qword [rsp + 0x20]
movdqu xmm2, xmmword [r10 + rcx]
movups xmmword [rsi + rcx], xmm2
add rcx, 0x10
movups xmmword [rsp + 0x70], xmm2
mov rbp, qword [rsp + 0x20]
movdqu xmm4, xmmword [rbp + rcx]
movups xmmword [rsi + rcx], xmm4
add rcx, 0x10
movups xmmword [rsp + 0x70], xmm4
mov rdi, qword [rsp + 0x20]
movdqu xmm0, xmmword [rdi + rcx]
movups xmmword [rsi + rcx], xmm0
add rcx, 0x10
movups xmmword [rsp + 0x70], xmm0
cmp rcx, qword [rsp + 0x48]
je 0x699eb75a
mov r10d, dword [rsp + 0x38]
mov r12, rdi
movdqu xmm2, xmmword [r12 + rcx]
movups xmmword [rsi + rcx], xmm2
movdqu xmm3, xmmword [r12 + rcx + 0x10]
movups xmmword [rsi + rcx + 0x10], xmm3
movdqu xmm4, xmmword [r12 + rcx + 0x20]
movups xmmword [rsi + rcx + 0x20], xmm4
movdqu xmm5, xmmword [r12 + rcx + 0x30]
movups xmmword [rsi + rcx + 0x30], xmm5
movdqu xmm0, xmmword [r12 + rcx + 0x40]
movups xmmword [rsi + rcx + 0x40], xmm0
movdqu xmm1, xmmword [r12 + rcx + 0x50]
movups xmmword [rsi + rcx + 0x50], xmm1
movdqu xmm2, xmmword [r12 + rcx + 0x60]
movups xmmword [rsi + rcx + 0x60], xmm2
movdqu xmm3, xmmword [r12 + rcx + 0x70]
movups xmmword [rsi + rcx + 0x70], xmm3
sub rcx, 0xffffffffffffff80
cmp rcx, qword [rsp + 0x48]
jne 0x699eb6ec
mov dword [rsp + 0x38], r10d
mov rcx, qword [rsp + 0x60]
mov ebp, dword [rsp + 0x68]
lea rdi, [rsi + rcx]
cmp dword [rsp + 0x30], ebp
je 0x699eb856
mov rcx, qword [rsp + 0x58]
mov ebp, dword [rsp + 0x6c]
movzx r12d, byte [rcx]
mov byte [rdi], r12b
test ebp, ebp
je 0x699eb856
movzx r10d, byte [rcx + 1]
mov byte [rdi + 1], r10b
cmp ebp, 1
je 0x699eb856
movzx r12d, byte [rcx + 2]
mov byte [rdi + 2], r12b
cmp ebp, 2
je 0x699eb856
movzx r10d, byte [rcx + 3]
mov byte [rdi + 3], r10b
cmp ebp, 3
je 0x699eb856
movzx r12d, byte [rcx + 4]
mov byte [rdi + 4], r12b
cmp ebp, 4
je 0x699eb856
movzx r10d, byte [rcx + 5]
mov byte [rdi + 5], r10b
cmp ebp, 5
je 0x699eb856
movzx r12d, byte [rcx + 6]
mov byte [rdi + 6], r12b
cmp ebp, 6
je 0x699eb856
movzx r10d, byte [rcx + 7]
mov byte [rdi + 7], r10b
cmp ebp, 7
je 0x699eb856
movzx r12d, byte [rcx + 8]
mov byte [rdi + 8], r12b
cmp ebp, 8
je 0x699eb856
movzx r10d, byte [rcx + 9]
mov byte [rdi + 9], r10b
cmp ebp, 9
je 0x699eb856
movzx r12d, byte [rcx + 0xa]
mov byte [rdi + 0xa], r12b
cmp ebp, 0xa
je 0x699eb856
movzx r10d, byte [rcx + 0xb]
mov byte [rdi + 0xb], r10b
cmp ebp, 0xb
je 0x699eb856
movzx r12d, byte [rcx + 0xc]
mov byte [rdi + 0xc], r12b
cmp ebp, 0xc
je 0x699eb856
movzx r10d, byte [rcx + 0xd]
mov byte [rdi + 0xd], r10b
cmp ebp, 0xd
je 0x699eb856
movzx ecx, byte [rcx + 0xe]
mov byte [rdi + 0xe], cl
mov rcx, qword [rsp + 0x40]
lea r10, [rsi + rcx + 1]
mov esi, dword [rsp + 0x38]
mov rcx, r10
sub rcx, rsi
jmp 0x699ea9f2
mov ebp, dword [rsp + 0x88]
xor esi, esi
lea r12, [rbp + 1]
mov qword [rsp + 0x70], rbp
and r12d, 7
je 0x699eb912
cmp r12, 1
je 0x699eb8f7
cmp r12, 2
je 0x699eb8eb
cmp r12, 3
je 0x699eb8df
cmp r12, 4
je 0x699eb8d2
cmp r12, 5
je 0x699eb8c6
cmp r12, 6
je 0x699eb8ba
movzx esi, byte [rcx]
mov byte [r10], sil
mov esi, 1
movzx edi, byte [rcx + rsi]
mov byte [r10 + rsi], dil
add rsi, 1
movzx ebp, byte [rcx + rsi]
mov byte [r10 + rsi], bpl
add rsi, 1
movzx r12d, byte [rcx + rsi]
mov byte [r10 + rsi], r12b
add rsi, 1
movzx edi, byte [rcx + rsi]
mov byte [r10 + rsi], dil
add rsi, 1
movzx ebp, byte [rcx + rsi]
mov byte [r10 + rsi], bpl
add rsi, 1
movzx r12d, byte [rcx + rsi]
mov rdi, rsi
mov byte [r10 + rsi], r12b
add rsi, 1
cmp rdi, qword [rsp + 0x70]
je 0x699eb2cd
mov edi, dword [rsp + 0x38]
movzx ebp, byte [rcx + rsi]
mov byte [r10 + rsi], bpl
movzx r12d, byte [rcx + rsi + 1]
mov byte [r10 + rsi + 1], r12b
movzx ebp, byte [rcx + rsi + 2]
mov byte [r10 + rsi + 2], bpl
movzx r12d, byte [rcx + rsi + 3]
mov byte [r10 + rsi + 3], r12b
movzx ebp, byte [rcx + rsi + 4]
mov byte [r10 + rsi + 4], bpl
movzx r12d, byte [rcx + rsi + 5]
mov byte [r10 + rsi + 5], r12b
movzx ebp, byte [rcx + rsi + 6]
mov byte [r10 + rsi + 6], bpl
movzx r12d, byte [rcx + rsi + 7]
lea rbp, [rsi + 7]
mov byte [r10 + rsi + 7], r12b
add rsi, 8
cmp rbp, qword [rsp + 0x70]
jne 0x699eb916
jmp 0x699eb5b1
mov ebp, dword [rsp + 0x70]
xor esi, esi
mov rdi, rbp
and edi, 7
je 0x699eba11
cmp rdi, 1
je 0x699eb9fc
cmp rdi, 2
je 0x699eb9ef
cmp rdi, 3
je 0x699eb9e3
cmp rdi, 4
je 0x699eb9d6
cmp rdi, 5
je 0x699eb9ca
cmp rdi, 6
je 0x699eb9bd
movzx esi, byte [rcx]
mov byte [r10], sil
mov esi, 1
movzx r12d, byte [rcx + rsi]
mov byte [r10 + rsi], r12b
add rsi, 1
movzx edi, byte [rcx + rsi]
mov byte [r10 + rsi], dil
add rsi, 1
movzx r12d, byte [rcx + rsi]
mov byte [r10 + rsi], r12b
add rsi, 1
movzx edi, byte [rcx + rsi]
mov byte [r10 + rsi], dil
add rsi, 1
movzx r12d, byte [rcx + rsi]
mov byte [r10 + rsi], r12b
add rsi, 1
movzx edi, byte [rcx + rsi]
mov byte [r10 + rsi], dil
add rsi, 1
cmp rsi, rbp
je 0x699eae60
mov edi, dword [rsp + 0x38]
movzx r12d, byte [rcx + rsi]
mov byte [r10 + rsi], r12b
movzx r12d, byte [rcx + rsi + 1]
mov byte [r10 + rsi + 1], r12b
movzx r12d, byte [rcx + rsi + 2]
mov byte [r10 + rsi + 2], r12b
movzx r12d, byte [rcx + rsi + 3]
mov byte [r10 + rsi + 3], r12b
movzx r12d, byte [rcx + rsi + 4]
mov byte [r10 + rsi + 4], r12b
movzx r12d, byte [rcx + rsi + 5]
mov byte [r10 + rsi + 5], r12b
movzx r12d, byte [rcx + rsi + 6]
mov byte [r10 + rsi + 6], r12b
movzx r12d, byte [rcx + rsi + 7]
mov byte [r10 + rsi + 7], r12b
add rsi, 8
cmp rsi, rbp
jne 0x699eba15
mov dword [rsp + 0x38], edi
jmp 0x699eae60
mov r12, qword [rsp + 0x20]
mov r10d, dword [rsp + 0x38]
jmp 0x699eb6ec
mov rdi, qword [rsp + 0x40]
lea rbp, [rdi + 1]
and ebp, 7
je 0x699ebb4f
cmp rbp, 1
je 0x699ebb2f
cmp rbp, 2
je 0x699ebb1e
cmp rbp, 3
je 0x699ebb0c
cmp rbp, 4
je 0x699ebafb
cmp rbp, 5
je 0x699ebae9
cmp rbp, 6
je 0x699ebad8
mov r12, qword [rsp + 0x20]
mov ecx, 1
movzx r10d, byte [r12]
mov byte [rsi], r10b
mov rdi, qword [rsp + 0x20]
movzx ebp, byte [rdi + rcx]
mov byte [rsi + rcx], bpl
add rcx, 1
mov r12, qword [rsp + 0x20]
movzx r10d, byte [r12 + rcx]
mov byte [rsi + rcx], r10b
add rcx, 1
mov rdi, qword [rsp + 0x20]
movzx ebp, byte [rdi + rcx]
mov byte [rsi + rcx], bpl
add rcx, 1
mov r12, qword [rsp + 0x20]
movzx r10d, byte [r12 + rcx]
mov byte [rsi + rcx], r10b
add rcx, 1
mov rdi, qword [rsp + 0x20]
movzx ebp, byte [rdi + rcx]
mov byte [rsi + rcx], bpl
add rcx, 1
mov r12, qword [rsp + 0x20]
mov rdi, rcx
movzx r10d, byte [r12 + rcx]
mov byte [rsi + rcx], r10b
add rcx, 1
cmp rdi, qword [rsp + 0x40]
je 0x699eb856
mov r10, qword [rsp + 0x20]
mov edi, dword [rsp + 0x38]
movzx ebp, byte [r10 + rcx]
mov byte [rsi + rcx], bpl
movzx r12d, byte [r10 + rcx + 1]
mov byte [rsi + rcx + 1], r12b
movzx ebp, byte [r10 + rcx + 2]
mov byte [rsi + rcx + 2], bpl
movzx r12d, byte [r10 + rcx + 3]
mov byte [rsi + rcx + 3], r12b
movzx ebp, byte [r10 + rcx + 4]
mov byte [rsi + rcx + 4], bpl
movzx r12d, byte [r10 + rcx + 5]
mov byte [rsi + rcx + 5], r12b
movzx ebp, byte [r10 + rcx + 6]
mov byte [rsi + rcx + 6], bpl
movzx r12d, byte [r10 + rcx + 7]
lea rbp, [rcx + 7]
mov byte [rsi + rcx + 7], r12b
add rcx, 8
cmp rbp, qword [rsp + 0x40]
jne 0x699ebb58
mov dword [rsp + 0x38], edi
jmp 0x699eb856