Function at 0x696e80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
movzx eax, byte [rcx + 0xf7]
mov r13, rdx
mov edx, eax
add eax, 1
mov dword [rsp + 0x44], 0x10
add edx, 1
shr eax, 8
lea r14, [rcx + 0xe8]
mov r15, rcx
mov byte [rcx + 0xf7], dl
mov edx, eax
movzx eax, byte [rcx + 0xf6]
mov rbx, r8
lea rsi, [rcx + 0xc8]
lea rdi, [rsp + 0x44]
mov r12, r9
mov r9, r14
add eax, edx
mov r8, rdi
mov byte [rcx + 0xf6], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xf5]
add eax, edx
mov byte [rcx + 0xf5], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xf4]
add eax, edx
mov byte [rcx + 0xf4], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xf3]
add eax, edx
mov byte [rcx + 0xf3], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xf2]
add eax, edx
mov byte [rcx + 0xf2], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xf1]
add eax, edx
mov byte [rcx + 0xf1], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xf0]
add eax, edx
mov byte [rcx + 0xf0], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xef]
add eax, edx
mov byte [rcx + 0xef], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xee]
add eax, edx
mov byte [rcx + 0xee], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xed]
add eax, edx
mov byte [rcx + 0xed], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xec]
add eax, edx
mov byte [rcx + 0xec], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xeb]
add eax, edx
mov byte [rcx + 0xeb], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xea]
add eax, edx
mov byte [rcx + 0xea], al
shr eax, 8
mov edx, eax
movzx eax, byte [rcx + 0xe9]
add eax, edx
mov rdx, rsi
mov byte [rcx + 0xe9], al
shr eax, 8
add byte [rcx + 0xe8], al
mov rcx, qword [rcx + 0xa8]
mov dword [rsp + 0x20], 0x10
call fcn.00570ee0
test eax, eax
je 0x697015
cmp dword [rsp + 0x44], 0x10
je 0x697030
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [r15 + 0xc0], 0x10
je 0x6971c7
movzx eax, byte [r15 + 0xf7]
mov r9, r14
mov r8, rdi
mov edx, eax
add eax, 1
add edx, 1
shr eax, 8
mov byte [r15 + 0xf7], dl
mov edx, eax
movzx eax, byte [r15 + 0xf6]
add eax, edx
mov byte [r15 + 0xf6], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf5]
add eax, edx
mov byte [r15 + 0xf5], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf4]
add eax, edx
mov byte [r15 + 0xf4], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf3]
add eax, edx
mov byte [r15 + 0xf3], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf2]
add eax, edx
mov byte [r15 + 0xf2], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf1]
add eax, edx
mov byte [r15 + 0xf1], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf0]
add eax, edx
mov byte [r15 + 0xf0], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xef]
add eax, edx
mov byte [r15 + 0xef], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xee]
add eax, edx
mov byte [r15 + 0xee], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xed]
add eax, edx
mov byte [r15 + 0xed], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xec]
add eax, edx
mov byte [r15 + 0xec], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xeb]
add eax, edx
mov byte [r15 + 0xeb], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xea]
add eax, edx
mov byte [r15 + 0xea], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xe9]
add eax, edx
lea rdx, [r15 + 0xd8]
mov byte [r15 + 0xe9], al
shr eax, 8
add byte [r15 + 0xe8], al
mov rcx, qword [r15 + 0xa8]
mov dword [rsp + 0x20], 0x10
call fcn.00570ee0
test eax, eax
je 0x697015
cmp dword [rsp + 0x44], 0x10
jne 0x697015
movzx eax, byte [r15 + 0xf7]
mov r9, r14
mov r8, rdi
mov edx, eax
add eax, 1
add edx, 1
shr eax, 8
mov byte [r15 + 0xf7], dl
mov edx, eax
movzx eax, byte [r15 + 0xf6]
add eax, edx
mov byte [r15 + 0xf6], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf5]
add eax, edx
mov byte [r15 + 0xf5], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf4]
add eax, edx
mov byte [r15 + 0xf4], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf3]
add eax, edx
mov byte [r15 + 0xf3], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf2]
add eax, edx
mov byte [r15 + 0xf2], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf1]
add eax, edx
mov byte [r15 + 0xf1], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xf0]
add eax, edx
mov byte [r15 + 0xf0], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xef]
add eax, edx
mov byte [r15 + 0xef], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xee]
add eax, edx
mov byte [r15 + 0xee], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xed]
add eax, edx
mov byte [r15 + 0xed], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xec]
add eax, edx
mov byte [r15 + 0xec], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xeb]
add eax, edx
mov byte [r15 + 0xeb], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xea]
add eax, edx
mov byte [r15 + 0xea], al
shr eax, 8
mov edx, eax
movzx eax, byte [r15 + 0xe9]
add eax, edx
mov rdx, r14
mov byte [r15 + 0xe9], al
shr eax, 8
add byte [r15 + 0xe8], al
mov rcx, qword [r15 + 0xa8]
mov dword [rsp + 0x20], 0x10
call fcn.00570ee0
test eax, eax
je 0x697015
cmp dword [rsp + 0x44], 0x10
jne 0x697015
mov rdx, qword [r15 + 0xc0]
cmp rdx, 0x18
je 0x697cff
test byte [r15 + 0x1c], 1
jne 0x697928
mov rax, qword [rsp + 0xc8]
or rax, r12
or rax, r13
je 0x697712
mov qword [r15 + 0x120], 0
pxor xmm0, xmm0
lea rdi, [r15 + 0x110]
lea r8, [rsp + 0x4c]
mov qword [rdi + 0x18], 0
mov r9, rdi
mov rdx, rdi
mov qword [rdi + 0x20], 0
mov qword [rdi + 0x28], 0
mov rcx, qword [r15 + 0xb0]
mov qword [r15 + 0xf8], 0
mov qword [r15 + 0x100], 0
mov dword [rsp + 0x20], 0x10
movups xmmword [r15 + 0x110], xmm0
mov dword [rsp + 0x48], 0x10
mov dword [rsp + 0x4c], 0x10
mov qword [rsp + 0x30], r8
call fcn.00570ee0
test eax, eax
je 0x697015
cmp dword [rsp + 0x4c], 0x10
jne 0x697015
lea rbp, [r15 + 0x120]
lea r10, [r15 + 0xf9]
mov r8, qword [rsp + 0x30]
mov byte [r15 + 0xfb], 1
mov rax, rbp
sub rax, r10
cmp rax, 0xe
jbe 0x6981ec
movdqu xmm0, xmmword [r15 + 0x120]
movdqu xmm3, xmmword [r15 + 0xf8]
pxor xmm0, xmm3
movups xmmword [r15 + 0x120], xmm0
mov dword [rsp + 0x20], 0x10
mov rcx, qword [r15 + 0xb0]
mov r9, rbp
mov rdx, rbp
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r8
call fcn.00570ee0
test eax, eax
je 0x697015
cmp dword [rsp + 0x4c], 0x10
jne 0x697015
mov rdx, qword [r15 + 0xc0]
cmp rdx, 0x10
je 0x697514
mov r10, qword [rsp + 0x38]
lea rdx, [r15 + 0x130]
mov r8, qword [rsp + 0x30]
mov byte [r15 + 0xfb], 2
mov rax, rdx
sub rax, r10
cmp rax, 0xe
jbe 0x698273
movdqu xmm4, xmmword [r15 + 0x130]
movdqu xmm0, xmmword [r15 + 0xf8]
pxor xmm0, xmm4
movups xmmword [r15 + 0x130], xmm0
mov dword [rsp + 0x20], 0x10
mov rcx, qword [r15 + 0xb0]
mov r9, rdx
call fcn.00570ee0
test eax, eax
je 0x697015
cmp dword [rsp + 0x4c], 0x10
jne 0x697015
mov rdx, qword [r15 + 0xc0]
test r13, r13
je 0x697d37
test rbx, rbx
mov r8, rbx
sete cl
cmp qword [rsp + 0xc8], 0
mov rax, r8
je 0x697d26
add rax, qword [rsp + 0xd0]
test r12, r12
je 0x697d15
add rax, qword [rsp + 0xc0]
bswap eax
add edx, 0x10
mov dword [r15 + 0xf8], eax
xor eax, eax
mov word [r15 + 0xfc], ax
mov byte [r15 + 0xfe], 0
mov byte [r15 + 0xff], dl
mov qword [r15 + 0x108], 8
test cl, cl
jne 0x69759c
mov rdx, r13
lea rcx, [r15 + 0xa8]
call fcn.00696af0
test eax, eax
je 0x697015
cmp qword [rsp + 0xc8], 0
je 0x6975d6
cmp qword [rsp + 0xd0], 0
je 0x6975d6
mov r8, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xc8]
lea rcx, [r15 + 0xa8]
call fcn.00696af0
test eax, eax
je 0x697015
test r12, r12
je 0x697605
cmp qword [rsp + 0xc0], 0
je 0x697605
mov r8, qword [rsp + 0xc0]
mov rdx, r12
lea rcx, [r15 + 0xa8]
call fcn.00696af0
test eax, eax
je 0x697015
mov r8d, 1
lea rdx, [0x008b8640]
lea rcx, [r15 + 0xa8]
call fcn.00696af0
test eax, eax
je 0x697015
mov rax, qword [r15 + 0x108]
test rax, rax
jne 0x69823b
mov dword [rsp + 0x28], 1
xor r8d, r8d
mov r9, rdi
mov rdx, qword [r15 + 0xb8]
mov qword [rsp + 0x20], 0
mov rcx, qword [r15 + 0xa8]
call fcn.005709b0
test eax, eax
je 0x697015
mov r9, qword [r15 + 0xc0]
lea r12, [rsp + 0x48]
mov rdx, rdi
mov dword [rsp + 0x20], 0x10
mov rcx, qword [r15 + 0xa8]
mov r8, r12
add r9, rdi
call fcn.00570ee0
test eax, eax
je 0x697015
cmp dword [rsp + 0x48], 0x10
jne 0x697015
mov rcx, qword [r15 + 0xa8]
mov r9, rdi
mov r8, r12
mov rdx, rbp
mov dword [rsp + 0x20], 0x10
call fcn.00570ee0
test eax, eax
je 0x697015
cmp dword [rsp + 0x48], 0x10
jne 0x697015
cmp qword [r15 + 0xc0], 0x10
je 0x697712
mov dword [rsp + 0x20], 0x10
mov rcx, qword [r15 + 0xa8]
mov r9, rbp
mov r8, r12
lea rdx, [r15 + 0x130]
call fcn.00570ee0
test eax, eax
je 0x697015
cmp dword [rsp + 0x48], 0x10
jne 0x697015
test rbx, rbx
je 0x697cc8
mov rdx, qword [r15 + 0x90]
test rdx, rdx
je 0x697cc8
mov rcx, qword [r15 + 0xc0]
lea rbx, [r15 + 0xa8]
lea r9, [r15 + 0x110]
cmp rdx, rcx
mov r8, rcx
cmovbe r8, rdx
test r8, r8
je 0x6978c9
lea rbp, [r15 + 0x111]
mov rax, rsi
lea rdi, [r8 - 1]
sub rax, rbp
cmp rax, 0xe
jbe 0x6981d0
cmp rdi, 6
jbe 0x6981d0
cmp rdi, 0xe
jbe 0x6982c2
movdqu xmm0, xmmword [r15 + 0xc8]
mov rax, r8
movdqu xmm5, xmmword [r15 + 0x110]
shr rax, 4
pxor xmm0, xmm5
movups xmmword [r15 + 0xc8], xmm0
cmp rax, 1
je 0x6977cb
movdqu xmm2, xmmword [r15 + 0xd8]
movdqu xmm0, xmmword [r15 + 0x120]
pxor xmm0, xmm2
movups xmmword [r15 + 0xd8], xmm0
mov rax, r8
and rax, 0xfffffffffffffff0
test r8b, 0xf
je 0x6978c9
mov rbp, r8
sub rdi, rax
sub rbp, rax
cmp rdi, 6
jbe 0x697818
lea rdi, [r15 + rax + 0xc8]
movq xmm1, qword [rbx + rax + 0x68]
movq xmm0, qword [rdi]
pxor xmm0, xmm1
movq qword [rdi], xmm0
mov rdi, rbp
and rdi, 0xfffffffffffffff8
add rax, rdi
cmp rdi, rbp
je 0x6978c9
movzx edi, byte [r15 + rax + 0x110]
xor byte [r15 + rax + 0xc8], dil
lea rdi, [rax + 1]
cmp r8, rdi
jbe 0x6978c9
movzx ebp, byte [r15 + rax + 0x111]
xor byte [r15 + rdi + 0xc8], bpl
lea rdi, [rax + 2]
cmp r8, rdi
jbe 0x6978c9
movzx ebp, byte [r15 + rax + 0x112]
xor byte [r15 + rdi + 0xc8], bpl
lea rdi, [rax + 3]
cmp r8, rdi
jbe 0x6978c9
movzx ebp, byte [r15 + rax + 0x113]
xor byte [r15 + rdi + 0xc8], bpl
lea rdi, [rax + 4]
cmp r8, rdi
jbe 0x6978c9
movzx ebp, byte [r15 + rax + 0x114]
xor byte [r15 + rdi + 0xc8], bpl
lea rdi, [rax + 5]
cmp r8, rdi
jbe 0x6978c9
movzx ebp, byte [r15 + rax + 0x115]
add rax, 6
xor byte [r15 + rdi + 0xc8], bpl
cmp r8, rax
jbe 0x6978c9
movzx r8d, byte [r15 + rax + 0x110]
xor byte [r15 + rax + 0xc8], r8b
cmp rdx, rcx
jbe 0x697cc8
mov rax, rdx
mov r11, r14
lea rdx, [rbx + rcx + 0x69]
sub r11, rdx
sub rax, rcx
cmp r11, 0xe
jbe 0x698062
cmp rax, 0x10
mov edx, 0x10
cmovbe rdx, rax
sub rdx, 1
cmp rdx, 0xe
jbe 0x698062
movdqu xmm3, xmmword [r15 + 0xe8]
movdqu xmm0, xmmword [rbx + rcx + 0x68]
pxor xmm0, xmm3
movups xmmword [r15 + 0xe8], xmm0
jmp 0x697cc8
test r13, r13
je 0x697aea
test rbx, rbx
je 0x697aea
cmp rdx, rbx
mov rcx, rbx
cmovbe rcx, rdx
test rcx, rcx
je 0x697aa7
lea r9, [r13 + 1]
mov rax, rsi
lea r8, [rcx - 1]
sub rax, r9
cmp rax, 0xe
jbe 0x698030
cmp r8, 6
jbe 0x698030
cmp r8, 0xe
jbe 0x698058
movdqu xmm0, xmmword [r15 + 0xc8]
movdqu xmm4, xmmword [r13]
mov rax, rcx
shr rax, 4
pxor xmm0, xmm4
movups xmmword [r15 + 0xc8], xmm0
cmp rax, 1
je 0x6979bc
movdqu xmm0, xmmword [r15 + 0xd8]
movdqu xmm5, xmmword [r13 + 0x10]
pxor xmm0, xmm5
movups xmmword [r15 + 0xd8], xmm0
mov rax, rcx
and rax, 0xfffffffffffffff0
test cl, 0xf
je 0x697aa7
mov r9, rcx
sub r8, rax
sub r9, rax
cmp r8, 6
jbe 0x697a0b
lea r8, [r15 + rax + 0xc8]
movq xmm1, qword [r13 + rax]
movq xmm0, qword [r8]
pxor xmm0, xmm1
movq qword [r8], xmm0
mov r8, r9
and r8, 0xfffffffffffffff8
add rax, r8
cmp r8, r9
je 0x697aa7
movzx r8d, byte [r13 + rax]
xor byte [r15 + rax + 0xc8], r8b
lea r8, [rax + 1]
cmp rcx, r8
jbe 0x697aa7
movzx r9d, byte [r13 + rax + 1]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 2]
cmp rcx, r8
jbe 0x697aa7
movzx r9d, byte [r13 + rax + 2]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 3]
cmp rcx, r8
jbe 0x697aa7
movzx r9d, byte [r13 + rax + 3]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 4]
cmp rcx, r8
jbe 0x697aa7
movzx r9d, byte [r13 + rax + 4]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 5]
cmp rcx, r8
jbe 0x697aa7
movzx r9d, byte [r13 + rax + 5]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 6]
cmp rcx, r8
jbe 0x697aa7
movzx eax, byte [r13 + rax + 6]
xor byte [r15 + r8 + 0xc8], al
cmp rdx, rbx
jae 0x697aea
lea rax, [r13 + rdx + 1]
mov rcx, r14
sub rbx, rdx
sub rcx, rax
cmp rcx, 0xe
jbe 0x697eab
cmp rbx, 0xf
jbe 0x697eab
movdqu xmm2, xmmword [r15 + 0xe8]
movdqu xmm0, xmmword [r13 + rdx]
pxor xmm0, xmm2
movups xmmword [r15 + 0xe8], xmm0
test r12, r12
je 0x697cc8
cmp qword [rsp + 0xc0], 0
je 0x697cc8
cmp rdx, qword [rsp + 0xc0]
mov rcx, rdx
cmova rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x697c79
lea r9, [r12 + 1]
mov rax, rsi
lea r8, [rcx - 1]
sub rax, r9
cmp rax, 0xe
jbe 0x698013
cmp r8, 6
jbe 0x698013
cmp r8, 0xe
jbe 0x69804e
movdqu xmm0, xmmword [r15 + 0xc8]
movdqu xmm3, xmmword [r12]
mov rax, rcx
shr rax, 4
pxor xmm0, xmm3
movups xmmword [r15 + 0xc8], xmm0
cmp rax, 1
je 0x697b90
movdqu xmm0, xmmword [r15 + 0xd8]
movdqu xmm4, xmmword [r12 + 0x10]
pxor xmm0, xmm4
movups xmmword [r15 + 0xd8], xmm0
mov rax, rcx
and rax, 0xfffffffffffffff0
test cl, 0xf
je 0x697c79
mov r9, rcx
sub r8, rax
sub r9, rax
cmp r8, 6
jbe 0x697bde
lea r8, [r15 + rax + 0xc8]
movq xmm1, qword [r12 + rax]
movq xmm0, qword [r8]
pxor xmm0, xmm1
movq qword [r8], xmm0
mov r8, r9
and r8, 0xfffffffffffffff8
add rax, r8
cmp r8, r9
je 0x697c79
movzx r8d, byte [r12 + rax]
xor byte [r15 + rax + 0xc8], r8b
lea r8, [rax + 1]
cmp rcx, r8
jbe 0x697c79
movzx r9d, byte [r12 + rax + 1]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 2]
cmp rcx, r8
jbe 0x697c79
movzx r9d, byte [r12 + rax + 2]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 3]
cmp rcx, r8
jbe 0x697c79
movzx r9d, byte [r12 + rax + 3]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 4]
cmp rcx, r8
jbe 0x697c79
movzx r9d, byte [r12 + rax + 4]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 5]
cmp rcx, r8
jbe 0x697c79
movzx r9d, byte [r12 + rax + 5]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 6]
cmp rcx, r8
jbe 0x697c79
movzx eax, byte [r12 + rax + 6]
xor byte [r15 + r8 + 0xc8], al
cmp rdx, qword [rsp + 0xc0]
jae 0x697cc8
mov rax, qword [rsp + 0xc0]
lea rcx, [r12 + rdx + 1]
mov r11, r14
sub r11, rcx
sub rax, rdx
cmp r11, 0xe
jbe 0x697d44
cmp rax, 0xf
jbe 0x697d44
movdqu xmm5, xmmword [r15 + 0xe8]
movdqu xmm0, xmmword [r12 + rdx]
pxor xmm0, xmm5
movups xmmword [r15 + 0xe8], xmm0
mov dword [rsp + 0x28], 1
xor r8d, r8d
mov r9, rsi
mov rdx, qword [r15 + 0xb8]
mov qword [rsp + 0x20], 0
mov rcx, qword [r15 + 0xa8]
call fcn.005709b0
test eax, eax
setne al
movzx eax, al
jmp 0x697017
movdqu xmm2, xmmword [r15 + 0xe0]
movups xmmword [r15 + 0xe8], xmm2
jmp 0x69735d
mov qword [rsp + 0xc0], 0
jmp 0x697551
mov qword [rsp + 0xd0], 0
jmp 0x697540
mov ecx, 1
xor r8d, r8d
jmp 0x697526
movzx r8d, byte [r12 + rdx]
xor byte [r15 + 0xe8], r8b
cmp rax, 1
jbe 0x697cc8
movzx ecx, byte [rcx]
xor byte [r15 + 0xe9], cl
cmp rax, 2
je 0x697cc8
movzx ecx, byte [r12 + rdx + 2]
xor byte [r15 + 0xea], cl
cmp rax, 3
je 0x697cc8
movzx ecx, byte [r12 + rdx + 3]
xor byte [r15 + 0xeb], cl
cmp rax, 4
je 0x697cc8
movzx ecx, byte [r12 + rdx + 4]
xor byte [r15 + 0xec], cl
cmp rax, 5
je 0x697cc8
movzx ecx, byte [r12 + rdx + 5]
xor byte [r15 + 0xed], cl
cmp rax, 6
je 0x697cc8
movzx ecx, byte [r12 + rdx + 6]
xor byte [r15 + 0xee], cl
cmp rax, 7
je 0x697cc8
movzx ecx, byte [r12 + rdx + 7]
xor byte [r15 + 0xef], cl
cmp rax, 8
je 0x697cc8
movzx ecx, byte [r12 + rdx + 8]
xor byte [r15 + 0xf0], cl
cmp rax, 9
je 0x697cc8
movzx ecx, byte [r12 + rdx + 9]
xor byte [r15 + 0xf1], cl
cmp rax, 0xa
je 0x697cc8
movzx ecx, byte [r12 + rdx + 0xa]
xor byte [r15 + 0xf2], cl
cmp rax, 0xb
je 0x697cc8
movzx ecx, byte [r12 + rdx + 0xb]
xor byte [r15 + 0xf3], cl
cmp rax, 0xc
je 0x697cc8
movzx ecx, byte [r12 + rdx + 0xc]
xor byte [r15 + 0xf4], cl
cmp rax, 0xd
je 0x697cc8
movzx ecx, byte [r12 + rdx + 0xd]
xor byte [r15 + 0xf5], cl
cmp rax, 0xe
je 0x697cc8
movzx ecx, byte [r12 + rdx + 0xe]
xor byte [r15 + 0xf6], cl
cmp rax, 0xf
jbe 0x697cc8
movzx eax, byte [r12 + rdx + 0xf]
xor byte [r15 + 0xf7], al
jmp 0x697cc8
movzx ecx, byte [r13 + rdx]
xor byte [r15 + 0xe8], cl
cmp rbx, 1
jbe 0x697aea
movzx eax, byte [rax]
xor byte [r15 + 0xe9], al
cmp rbx, 2
je 0x697aea
movzx eax, byte [r13 + rdx + 2]
xor byte [r15 + 0xea], al
cmp rbx, 3
je 0x697aea
movzx eax, byte [r13 + rdx + 3]
xor byte [r15 + 0xeb], al
cmp rbx, 4
je 0x697aea
movzx eax, byte [r13 + rdx + 4]
xor byte [r15 + 0xec], al
cmp rbx, 5
je 0x697aea
movzx eax, byte [r13 + rdx + 5]
xor byte [r15 + 0xed], al
cmp rbx, 6
je 0x697aea
movzx eax, byte [r13 + rdx + 6]
xor byte [r15 + 0xee], al
cmp rbx, 7
je 0x697aea
movzx eax, byte [r13 + rdx + 7]
xor byte [r15 + 0xef], al
cmp rbx, 8
je 0x697aea
movzx eax, byte [r13 + rdx + 8]
xor byte [r15 + 0xf0], al
cmp rbx, 9
je 0x697aea
movzx eax, byte [r13 + rdx + 9]
xor byte [r15 + 0xf1], al
cmp rbx, 0xa
je 0x697aea
movzx eax, byte [r13 + rdx + 0xa]
xor byte [r15 + 0xf2], al
cmp rbx, 0xb
je 0x697aea
movzx eax, byte [r13 + rdx + 0xb]
xor byte [r15 + 0xf3], al
cmp rbx, 0xc
je 0x697aea
movzx eax, byte [r13 + rdx + 0xc]
xor byte [r15 + 0xf4], al
cmp rbx, 0xd
je 0x697aea
movzx eax, byte [r13 + rdx + 0xd]
xor byte [r15 + 0xf5], al
cmp rbx, 0xe
je 0x697aea
movzx eax, byte [r13 + rdx + 0xe]
xor byte [r15 + 0xf6], al
cmp rbx, 0xf
jbe 0x697aea
movzx eax, byte [r13 + rdx + 0xf]
xor byte [r15 + 0xf7], al
jmp 0x697aea
xor eax, eax
movzx r8d, byte [r12 + rax]
xor byte [r15 + rax + 0xc8], r8b
add rax, 1
cmp rcx, rax
jne 0x698015
jmp 0x697c79
xor eax, eax
movzx r8d, byte [r13 + rax]
xor byte [r15 + rax + 0xc8], r8b
add rax, 1
cmp rcx, rax
jne 0x698032
jmp 0x697aa7
mov r9, rcx
xor eax, eax
jmp 0x697baf
mov r9, rcx
xor eax, eax
jmp 0x6979db
movzx edx, byte [r15 + rcx + 0x110]
xor byte [r15 + 0xe8], dl
cmp rax, 1
je 0x697cc8
movzx edx, byte [r9 + rcx + 1]
xor byte [r15 + 0xe9], dl
cmp rax, 2
je 0x697cc8
movzx edx, byte [r9 + rcx + 2]
xor byte [r15 + 0xea], dl
cmp rax, 3
je 0x697cc8
movzx edx, byte [r9 + rcx + 3]
xor byte [r15 + 0xeb], dl
cmp rax, 4
je 0x697cc8
movzx edx, byte [r9 + rcx + 4]
xor byte [r15 + 0xec], dl
cmp rax, 5
je 0x697cc8
movzx edx, byte [r9 + rcx + 5]
xor byte [r15 + 0xed], dl
cmp rax, 6
je 0x697cc8
movzx edx, byte [r9 + rcx + 6]
xor byte [r15 + 0xee], dl
cmp rax, 7
je 0x697cc8
movzx edx, byte [r9 + rcx + 7]
xor byte [r15 + 0xef], dl
cmp rax, 8
je 0x697cc8
movzx edx, byte [r9 + rcx + 8]
xor byte [r15 + 0xf0], dl
cmp rax, 9
je 0x697cc8
movzx edx, byte [r9 + rcx + 9]
xor byte [r15 + 0xf1], dl
cmp rax, 0xa
je 0x697cc8
movzx edx, byte [r9 + rcx + 0xa]
xor byte [r15 + 0xf2], dl
cmp rax, 0xb
je 0x697cc8
movzx edx, byte [r9 + rcx + 0xb]
xor byte [r15 + 0xf3], dl
cmp rax, 0xc
je 0x697cc8
movzx edx, byte [r9 + rcx + 0xc]
xor byte [r15 + 0xf4], dl
cmp rax, 0xd
je 0x697cc8
movzx edx, byte [r9 + rcx + 0xd]
xor byte [r15 + 0xf5], dl
cmp rax, 0xe
je 0x697cc8
movzx edx, byte [r9 + rcx + 0xe]
xor byte [r15 + 0xf6], dl
cmp rax, 0xf
jbe 0x697cc8
movzx eax, byte [r9 + rcx + 0xf]
xor byte [r15 + 0xf7], al
jmp 0x697cc8
mov rax, rsi
add r8, rsi
movzx r10d, byte [rax + 0x48]
xor byte [rax], r10b
add rax, 1
cmp rax, r8
jne 0x6981d6
jmp 0x6978c9
movzx eax, byte [r15 + 0x122]
xor al, byte [r15 + 0xfa]
mov byte [r15 + 0x122], al
movzx edx, word [r15 + 0xf8]
mov rax, qword [r15 + 0xfc]
xor word [r15 + 0x120], dx
xor qword [r15 + 0x124], rax
mov eax, dword [r15 + 0x104]
xor byte [r15 + 0x123], 1
xor dword [r15 + 0x12c], eax
jmp 0x697458
lea r13, [r15 + 0xf8]
mov r8d, 0x10
xor edx, edx
lea rcx, [r13 + rax]
sub r8, rax
call sub.msvcrt.dll_memset
mov rdx, r13
lea rcx, [r15 + 0xa8]
call fcn.00696820
test eax, eax
jne 0x697636
jmp 0x697015
movzx eax, byte [r15 + 0x132]
xor al, byte [r15 + 0xfa]
mov byte [r15 + 0x132], al
movzx ecx, word [r15 + 0xf8]
mov rax, qword [r15 + 0xfc]
xor word [r15 + 0x130], cx
xor qword [r15 + 0x134], rax
mov eax, dword [r15 + 0x104]
xor byte [r15 + 0x133], 2
xor dword [r15 + 0x13c], eax
jmp 0x6974e3
mov rbp, r8
xor eax, eax
jmp 0x6977eb