Function at 0x666360
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
add byte [rcx + 0xf7], 1
mov r15, rcx
mov rbp, rdx
mov r12, r8
mov rdi, r9
mov dword [rsp + 0x44], 0x10
jne 0x666416
add byte [rcx + 0xf6], 1
jne 0x666416
add byte [rcx + 0xf5], 1
jne 0x666416
add byte [rcx + 0xf4], 1
jne 0x666416
add byte [rcx + 0xf3], 1
jne 0x666416
add byte [rcx + 0xf2], 1
jne 0x666416
add byte [rcx + 0xf1], 1
jne 0x666416
add byte [rcx + 0xf0], 1
jne 0x666416
add byte [rcx + 0xef], 1
jne 0x666416
add byte [rcx + 0xee], 1
jne 0x666416
add byte [rcx + 0xed], 1
jne 0x666416
add byte [rcx + 0xec], 1
jne 0x666416
add byte [rcx + 0xeb], 1
jne 0x666416
add byte [rcx + 0xea], 1
jne 0x666416
add byte [rcx + 0xe9], 1
jne 0x666416
add byte [rcx + 0xe8], 1
mov dword [rsp + 0x20], 0x10
lea rbx, [r15 + 0xe8]
lea rsi, [r15 + 0xc8]
mov rcx, qword [r15 + 0xa8]
lea r13, [rsp + 0x44]
mov r9, rbx
mov rdx, rsi
mov r8, r13
call fcn.0053ba20
test eax, eax
je 0x666cc0
cmp dword [rsp + 0x44], 0x10
jne 0x666cc0
cmp qword [r15 + 0xc0], 0x10
je 0x666545
add byte [r15 + 0xf7], 1
jne 0x666511
add byte [r15 + 0xf6], 1
jne 0x666511
add byte [r15 + 0xf5], 1
jne 0x666511
add byte [r15 + 0xf4], 1
jne 0x666511
add byte [r15 + 0xf3], 1
jne 0x666511
add byte [r15 + 0xf2], 1
jne 0x666511
add byte [r15 + 0xf1], 1
jne 0x666511
add byte [r15 + 0xf0], 1
jne 0x666511
add byte [r15 + 0xef], 1
jne 0x666511
add byte [r15 + 0xee], 1
jne 0x666511
add byte [r15 + 0xed], 1
jne 0x666511
add byte [r15 + 0xec], 1
jne 0x666511
add byte [r15 + 0xeb], 1
jne 0x666511
add byte [r15 + 0xea], 1
jne 0x666511
add byte [r15 + 0xe9], 1
jne 0x666511
add byte [r15 + 0xe8], 1
mov dword [rsp + 0x20], 0x10
mov rcx, qword [r15 + 0xa8]
mov r9, rbx
mov r8, r13
lea rdx, [r15 + 0xd8]
call fcn.0053ba20
test eax, eax
je 0x666cc0
cmp dword [rsp + 0x44], 0x10
jne 0x666cc0
add byte [r15 + 0xf7], 1
jne 0x6665ef
add byte [r15 + 0xf6], 1
jne 0x6665ef
add byte [r15 + 0xf5], 1
jne 0x6665ef
add byte [r15 + 0xf4], 1
jne 0x6665ef
add byte [r15 + 0xf3], 1
jne 0x6665ef
add byte [r15 + 0xf2], 1
jne 0x6665ef
add byte [r15 + 0xf1], 1
jne 0x6665ef
add byte [r15 + 0xf0], 1
jne 0x6665ef
add byte [r15 + 0xef], 1
jne 0x6665ef
add byte [r15 + 0xee], 1
jne 0x6665ef
add byte [r15 + 0xed], 1
jne 0x6665ef
add byte [r15 + 0xec], 1
jne 0x6665ef
add byte [r15 + 0xeb], 1
jne 0x6665ef
add byte [r15 + 0xea], 1
jne 0x6665ef
add byte [r15 + 0xe9], 1
jne 0x6665ef
add byte [r15 + 0xe8], 1
mov rcx, qword [r15 + 0xa8]
mov r9, rbx
mov r8, r13
mov rdx, rbx
mov dword [rsp + 0x20], 0x10
call fcn.0053ba20
test eax, eax
je 0x666cc0
cmp dword [rsp + 0x44], 0x10
jne 0x666cc0
mov rdx, qword [r15 + 0xc0]
cmp rdx, 0x18
je 0x66721b
test byte [r15 + 0x1c], 1
jne 0x666cd3
mov rax, qword [rsp + 0xc8]
or rax, rdi
or rax, rbp
je 0x6669b3
lea r13, [r15 + 0x110]
pxor xmm0, xmm0
mov qword [r13 + 0x10], 0
lea r14, [rsp + 0x4c]
lea rax, [r15 + 0xf8]
mov r9, r13
mov r8, r14
mov rdx, r13
mov qword [r13 + 0x18], 0
mov qword [r13 + 0x20], 0
mov qword [r13 + 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 qword [rsp + 0x38], rax
mov dword [rsp + 0x4c], 0x10
call fcn.0053ba20
test eax, eax
je 0x666cc0
cmp dword [rsp + 0x4c], 0x10
jne 0x666cc0
movdqu xmm0, xmmword [r15 + 0x120]
mov byte [r15 + 0xfb], 1
lea rax, [r15 + 0x120]
mov r8, r14
movdqu xmm2, xmmword [r15 + 0xf8]
mov rcx, qword [r15 + 0xb0]
mov r9, rax
mov rdx, rax
mov dword [rsp + 0x20], 0x10
pxor xmm0, xmm2
mov qword [rsp + 0x38], rax
movups xmmword [r15 + 0x120], xmm0
call fcn.0053ba20
test eax, eax
je 0x666cc0
cmp dword [rsp + 0x4c], 0x10
jne 0x666cc0
mov rdx, qword [r15 + 0xc0]
cmp rdx, 0x10
je 0x6667b9
movdqu xmm3, xmmword [r15 + 0x130]
mov byte [r15 + 0xfb], 2
lea rdx, [r15 + 0x130]
mov r8, r14
movdqu xmm0, xmmword [r15 + 0xf8]
mov dword [rsp + 0x20], 0x10
mov r9, rdx
mov rcx, qword [r15 + 0xb0]
pxor xmm0, xmm3
movups xmmword [r15 + 0x130], xmm0
call fcn.0053ba20
test eax, eax
je 0x666cc0
cmp dword [rsp + 0x4c], 0x10
jne 0x666cc0
mov rdx, qword [r15 + 0xc0]
test rbp, rbp
je 0x667253
test r12, r12
mov r8, r12
sete cl
cmp qword [rsp + 0xc8], 0
mov rax, r8
je 0x667242
add rax, qword [rsp + 0xd0]
test rdi, rdi
je 0x667231
add rax, qword [rsp + 0xc0]
bswap eax
add edx, 0x10
mov dword [r15 + 0xf8], eax
xor eax, eax
lea r14, [r15 + 0xa8]
mov word [r15 + 0xfc], ax
mov byte [r15 + 0xfe], 0
mov byte [r15 + 0xff], dl
mov qword [r15 + 0x108], 8
test cl, cl
jne 0x666844
mov rdx, rbp
mov rcx, r14
call fcn.00665fc0
test eax, eax
je 0x666cc0
cmp qword [rsp + 0xc8], 0
je 0x66687a
cmp qword [rsp + 0xd0], 0
je 0x66687a
mov r8, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xc8]
mov rcx, r14
call fcn.00665fc0
test eax, eax
je 0x666cc0
test rdi, rdi
je 0x6668a5
cmp qword [rsp + 0xc0], 0
je 0x6668a5
mov r8, qword [rsp + 0xc0]
mov rdx, rdi
mov rcx, r14
call fcn.00665fc0
test eax, eax
je 0x666cc0
mov r8d, 1
lea rdx, [0x00875620]
mov rcx, r14
call fcn.00665fc0
test eax, eax
je 0x666cc0
mov rax, qword [r15 + 0x108]
test rax, rax
jne 0x666c8f
mov dword [rsp + 0x28], 1
xor r8d, r8d
mov r9, r13
mov rdx, qword [r15 + 0xb8]
mov qword [rsp + 0x20], 0
mov rcx, qword [r15 + 0xa8]
call fcn.0053b520
test eax, eax
je 0x666cc0
mov r9, qword [r15 + 0xc0]
lea rdi, [rsp + 0x48]
mov rdx, r13
mov dword [rsp + 0x20], 0x10
mov rcx, qword [r15 + 0xa8]
mov r8, rdi
add r9, r13
call fcn.0053ba20
test eax, eax
je 0x666cc0
cmp dword [rsp + 0x48], 0x10
jne 0x666cc0
mov r14, qword [rsp + 0x38]
mov rcx, qword [r15 + 0xa8]
mov r9, r13
mov r8, rdi
mov dword [rsp + 0x20], 0x10
mov rdx, r14
call fcn.0053ba20
test eax, eax
je 0x666cc0
cmp dword [rsp + 0x48], 0x10
jne 0x666cc0
cmp qword [r15 + 0xc0], 0x10
je 0x6669b3
mov dword [rsp + 0x20], 0x10
mov rcx, qword [r15 + 0xa8]
mov r9, r14
mov r8, rdi
lea rdx, [r15 + 0x130]
call fcn.0053ba20
test eax, eax
je 0x666cc0
cmp dword [rsp + 0x48], 0x10
jne 0x666cc0
test r12, r12
je 0x6671e4
mov rcx, qword [r15 + 0x90]
test rcx, rcx
je 0x6671e4
mov r8, qword [r15 + 0xc0]
lea r9, [r15 + 0x110]
cmp rcx, r8
mov rdx, r8
cmovbe rdx, rcx
test rdx, rdx
je 0x666c19
lea rax, [r15 + 0xd8]
cmp r9, rax
lea rax, [r15 + 0x120]
setae r11b
cmp rsi, rax
setae al
or r11b, al
je 0x66754e
lea rax, [rdx - 1]
cmp rax, 0xe
jbe 0x66754e
movdqu xmm0, xmmword [r15 + 0xc8]
mov rax, rdx
movdqu xmm4, xmmword [r15 + 0x110]
shr rax, 4
pxor xmm0, xmm4
movups xmmword [r15 + 0xc8], xmm0
cmp rax, 1
je 0x666a68
movdqu xmm5, xmmword [r15 + 0xd8]
movdqu xmm0, xmmword [r15 + 0x120]
pxor xmm0, xmm5
movups xmmword [r15 + 0xd8], xmm0
mov rax, rdx
and rax, 0xfffffffffffffff0
cmp rdx, rax
je 0x666c19
movzx r11d, byte [r15 + rax + 0x110]
xor byte [r15 + rax + 0xc8], r11b
lea r11, [rax + 1]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x111]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 2]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x112]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 3]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x113]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 4]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x114]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 5]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x115]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 6]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x116]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 7]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x117]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 8]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x118]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 9]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x119]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 0xa]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x11a]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 0xb]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x11b]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 0xc]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x11c]
xor byte [r15 + r11 + 0xc8], dil
lea r11, [rax + 0xd]
cmp rdx, r11
jbe 0x666c19
movzx edi, byte [r15 + rax + 0x11d]
add rax, 0xe
xor byte [r15 + r11 + 0xc8], dil
cmp rdx, rax
jbe 0x666c19
movzx edx, byte [r15 + rax + 0x110]
xor byte [r15 + rax + 0xc8], dl
cmp rcx, r8
jbe 0x6671e4
lea rdx, [r15 + 0xa8]
mov rax, rcx
lea rcx, [rdx + r8 + 0x68]
lea rdx, [rdx + r8 + 0x78]
sub rax, r8
cmp rbx, rdx
lea rdx, [r15 + 0xf8]
setae r11b
cmp rcx, rdx
setae dl
or r11b, dl
je 0x66756a
cmp rax, 0x10
mov edx, 0x10
cmovbe rdx, rax
sub rdx, 1
cmp rdx, 0xe
jbe 0x66756a
movdqu xmm2, xmmword [r15 + 0xe8]
movdqu xmm0, xmmword [rcx]
pxor xmm0, xmm2
movups xmmword [r15 + 0xe8], xmm0
jmp 0x6671e4
lea rdi, [r15 + 0xf8]
mov r8d, 0x10
xor edx, edx
lea rcx, [rdi + rax]
sub r8, rax
call sub.msvcrt.dll_memset
mov rdx, rdi
mov rcx, r14
call fcn.00665cd0
test eax, eax
jne 0x6668d2
nop dword [rax]
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test rbp, rbp
je 0x666f4e
test r12, r12
je 0x666f4e
cmp rdx, r12
mov rcx, r12
cmovbe rcx, rdx
test rcx, rcx
je 0x666eeb
lea rax, [rbp + 0x10]
cmp rax, rsi
lea rax, [r15 + 0xd8]
setbe r8b
cmp rbp, rax
setae al
or r8b, al
je 0x66727d
lea rax, [rcx - 1]
cmp rax, 0xe
jbe 0x66727d
movdqu xmm0, xmmword [r15 + 0xc8]
movdqu xmm3, xmmword [rbp]
mov rax, rcx
shr rax, 4
pxor xmm0, xmm3
movups xmmword [r15 + 0xc8], xmm0
cmp rax, 1
je 0x666d68
movdqu xmm0, xmmword [r15 + 0xd8]
movdqu xmm4, xmmword [rbp + 0x10]
pxor xmm0, xmm4
movups xmmword [r15 + 0xd8], xmm0
mov rax, rcx
and rax, 0xfffffffffffffff0
cmp rcx, rax
je 0x666eeb
movzx r8d, byte [rbp + rax]
xor byte [r15 + rax + 0xc8], r8b
lea r8, [rax + 1]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 1]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 2]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 2]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 3]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 3]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 4]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 4]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 5]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 5]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 6]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 6]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 7]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 7]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 8]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 8]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 9]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 9]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 0xa]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 0xa]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 0xb]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 0xb]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 0xc]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 0xc]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 0xd]
cmp rcx, r8
jbe 0x666eeb
movzx r9d, byte [rbp + rax + 0xd]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 0xe]
cmp rcx, r8
jbe 0x666eeb
movzx eax, byte [rbp + rax + 0xe]
xor byte [r15 + r8 + 0xc8], al
cmp rdx, r12
jae 0x666f4e
lea rax, [rbp + rdx + 0x10]
sub r12, rdx
lea rcx, [rbp + rdx]
cmp rax, rbx
lea rax, [r15 + 0xf8]
setbe r8b
cmp rcx, rax
setae al
or r8b, al
je 0x66729b
cmp r12, 0x10
mov eax, 0x10
cmovbe rax, r12
sub rax, 1
cmp rax, 0xe
jbe 0x66729b
movdqu xmm5, xmmword [r15 + 0xe8]
movdqu xmm0, xmmword [rcx]
pxor xmm0, xmm5
movups xmmword [r15 + 0xe8], xmm0
test rdi, rdi
je 0x6671e4
cmp qword [rsp + 0xc0], 0
je 0x6671e4
cmp rdx, qword [rsp + 0xc0]
mov rcx, rdx
cmova rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x667174
lea rax, [rdi + 0x10]
cmp rax, rsi
lea rax, [r15 + 0xd8]
setbe r8b
cmp rdi, rax
setae al
or r8b, al
je 0x667260
lea rax, [rcx - 1]
cmp rax, 0xe
jbe 0x667260
movdqu xmm0, xmmword [r15 + 0xc8]
movdqu xmm1, xmmword [rdi]
mov rax, rcx
shr rax, 4
pxor xmm0, xmm1
movups xmmword [r15 + 0xc8], xmm0
cmp rax, 1
je 0x666ff2
movdqu xmm0, xmmword [r15 + 0xd8]
movdqu xmm2, xmmword [rdi + 0x10]
pxor xmm0, xmm2
movups xmmword [r15 + 0xd8], xmm0
mov rax, rcx
and rax, 0xfffffffffffffff0
cmp rcx, rax
je 0x667174
movzx r8d, byte [rdi + rax]
xor byte [r15 + rax + 0xc8], r8b
lea r8, [rax + 1]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 1]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 2]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 2]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 3]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 3]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 4]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 4]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 5]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 5]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 6]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 6]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 7]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 7]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 8]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 8]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 9]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 9]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 0xa]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 0xa]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 0xb]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 0xb]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 0xc]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 0xc]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 0xd]
cmp rcx, r8
jbe 0x667174
movzx r9d, byte [rdi + rax + 0xd]
xor byte [r15 + r8 + 0xc8], r9b
lea r8, [rax + 0xe]
cmp rcx, r8
jbe 0x667174
movzx eax, byte [rdi + rax + 0xe]
xor byte [r15 + r8 + 0xc8], al
cmp rdx, qword [rsp + 0xc0]
jae 0x6671e4
mov rax, qword [rsp + 0xc0]
lea rcx, [rdi + rdx + 0x10]
lea r8, [rdi + rdx]
sub rax, rdx
cmp rcx, rbx
lea rcx, [r15 + 0xf8]
setbe r9b
cmp r8, rcx
setae cl
or r9b, cl
je 0x6673f4
cmp rax, 0x10
mov ecx, 0x10
cmovbe rcx, rax
sub rcx, 1
cmp rcx, 0xe
jbe 0x6673f4
movdqu xmm3, xmmword [r15 + 0xe8]
movdqu xmm0, xmmword [r8]
pxor xmm0, xmm3
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.0053b520
test eax, eax
setne al
movzx eax, al
jmp 0x666cc2
movdqu xmm1, xmmword [r15 + 0xe0]
movups xmmword [r15 + 0xe8], xmm1
jmp 0x666630
mov qword [rsp + 0xc0], 0
jmp 0x6667f6
mov qword [rsp + 0xd0], 0
jmp 0x6667e5
mov ecx, 1
xor r8d, r8d
jmp 0x6667cb
xor eax, eax
movzx r8d, byte [rdi + rax]
xor byte [r15 + rax + 0xc8], r8b
add rax, 1
cmp rcx, rax
jne 0x667262
jmp 0x667174
xor eax, eax
movzx r8d, byte [rbp + rax]
xor byte [r15 + rax + 0xc8], r8b
add rax, 1
cmp rcx, rax
jne 0x66727f
jmp 0x666eeb
movzx eax, byte [rcx]
xor byte [r15 + 0xe8], al
cmp r12, 1
je 0x666f4e
movzx eax, byte [rbp + rdx + 1]
xor byte [r15 + 0xe9], al
cmp r12, 2
je 0x666f4e
movzx eax, byte [rbp + rdx + 2]
xor byte [r15 + 0xea], al
cmp r12, 3
je 0x666f4e
movzx eax, byte [rbp + rdx + 3]
xor byte [r15 + 0xeb], al
cmp r12, 4
je 0x666f4e
movzx eax, byte [rbp + rdx + 4]
xor byte [r15 + 0xec], al
cmp r12, 5
je 0x666f4e
movzx eax, byte [rbp + rdx + 5]
xor byte [r15 + 0xed], al
cmp r12, 6
je 0x666f4e
movzx eax, byte [rbp + rdx + 6]
xor byte [r15 + 0xee], al
cmp r12, 7
je 0x666f4e
movzx eax, byte [rbp + rdx + 7]
xor byte [r15 + 0xef], al
cmp r12, 8
je 0x666f4e
movzx eax, byte [rbp + rdx + 8]
xor byte [r15 + 0xf0], al
cmp r12, 9
je 0x666f4e
movzx eax, byte [rbp + rdx + 9]
xor byte [r15 + 0xf1], al
cmp r12, 0xa
je 0x666f4e
movzx eax, byte [rbp + rdx + 0xa]
xor byte [r15 + 0xf2], al
cmp r12, 0xb
je 0x666f4e
movzx eax, byte [rbp + rdx + 0xb]
xor byte [r15 + 0xf3], al
cmp r12, 0xc
je 0x666f4e
movzx eax, byte [rbp + rdx + 0xc]
xor byte [r15 + 0xf4], al
cmp r12, 0xd
je 0x666f4e
movzx eax, byte [rbp + rdx + 0xd]
xor byte [r15 + 0xf5], al
cmp r12, 0xe
je 0x666f4e
movzx eax, byte [rbp + rdx + 0xe]
xor byte [r15 + 0xf6], al
cmp r12, 0xf
jbe 0x666f4e
movzx eax, byte [rbp + rdx + 0xf]
xor byte [r15 + 0xf7], al
jmp 0x666f4e
movzx ecx, byte [r8]
xor byte [r15 + 0xe8], cl
cmp rax, 1
je 0x6671e4
movzx ecx, byte [rdi + rdx + 1]
xor byte [r15 + 0xe9], cl
cmp rax, 2
je 0x6671e4
movzx ecx, byte [rdi + rdx + 2]
xor byte [r15 + 0xea], cl
cmp rax, 3
je 0x6671e4
movzx ecx, byte [rdi + rdx + 3]
xor byte [r15 + 0xeb], cl
cmp rax, 4
je 0x6671e4
movzx ecx, byte [rdi + rdx + 4]
xor byte [r15 + 0xec], cl
cmp rax, 5
je 0x6671e4
movzx ecx, byte [rdi + rdx + 5]
xor byte [r15 + 0xed], cl
cmp rax, 6
je 0x6671e4
movzx ecx, byte [rdi + rdx + 6]
xor byte [r15 + 0xee], cl
cmp rax, 7
je 0x6671e4
movzx ecx, byte [rdi + rdx + 7]
xor byte [r15 + 0xef], cl
cmp rax, 8
je 0x6671e4
movzx ecx, byte [rdi + rdx + 8]
xor byte [r15 + 0xf0], cl
cmp rax, 9
je 0x6671e4
movzx ecx, byte [rdi + rdx + 9]
xor byte [r15 + 0xf1], cl
cmp rax, 0xa
je 0x6671e4
movzx ecx, byte [rdi + rdx + 0xa]
xor byte [r15 + 0xf2], cl
cmp rax, 0xb
je 0x6671e4
movzx ecx, byte [rdi + rdx + 0xb]
xor byte [r15 + 0xf3], cl
cmp rax, 0xc
je 0x6671e4
movzx ecx, byte [rdi + rdx + 0xc]
xor byte [r15 + 0xf4], cl
cmp rax, 0xd
je 0x6671e4
movzx ecx, byte [rdi + rdx + 0xd]
xor byte [r15 + 0xf5], cl
cmp rax, 0xe
je 0x6671e4
movzx ecx, byte [rdi + rdx + 0xe]
xor byte [r15 + 0xf6], cl
cmp rax, 0xf
jbe 0x6671e4
movzx eax, byte [rdi + rdx + 0xf]
xor byte [r15 + 0xf7], al
jmp 0x6671e4
mov rax, rsi
add rdx, rsi
movzx r11d, byte [rax + 0x48]
xor byte [rax], r11b
add rax, 1
cmp rax, rdx
jne 0x667554
jmp 0x666c19
movzx edx, byte [r15 + r8 + 0x110]
xor byte [r15 + 0xe8], dl
cmp rax, 1
je 0x6671e4
movzx edx, byte [r9 + r8 + 1]
xor byte [r15 + 0xe9], dl
cmp rax, 2
je 0x6671e4
movzx edx, byte [r9 + r8 + 2]
xor byte [r15 + 0xea], dl
cmp rax, 3
je 0x6671e4
movzx edx, byte [r9 + r8 + 3]
xor byte [r15 + 0xeb], dl
cmp rax, 4
je 0x6671e4
movzx edx, byte [r9 + r8 + 4]
xor byte [r15 + 0xec], dl
cmp rax, 5
je 0x6671e4
movzx edx, byte [r9 + r8 + 5]
xor byte [r15 + 0xed], dl
cmp rax, 6
je 0x6671e4
movzx edx, byte [r9 + r8 + 6]
xor byte [r15 + 0xee], dl
cmp rax, 7
je 0x6671e4
movzx edx, byte [r9 + r8 + 7]
xor byte [r15 + 0xef], dl
cmp rax, 8
je 0x6671e4
movzx edx, byte [r9 + r8 + 8]
xor byte [r15 + 0xf0], dl
cmp rax, 9
je 0x6671e4
movzx edx, byte [r9 + r8 + 9]
xor byte [r15 + 0xf1], dl
cmp rax, 0xa
je 0x6671e4
movzx edx, byte [r9 + r8 + 0xa]
xor byte [r15 + 0xf2], dl
cmp rax, 0xb
je 0x6671e4
movzx edx, byte [r9 + r8 + 0xb]
xor byte [r15 + 0xf3], dl
cmp rax, 0xc
je 0x6671e4
movzx edx, byte [r9 + r8 + 0xc]
xor byte [r15 + 0xf4], dl
cmp rax, 0xd
je 0x6671e4
movzx edx, byte [r9 + r8 + 0xd]
xor byte [r15 + 0xf5], dl
cmp rax, 0xe
je 0x6671e4
movzx edx, byte [r9 + r8 + 0xe]
xor byte [r15 + 0xf6], dl
cmp rax, 0xf
jbe 0x6671e4
movzx eax, byte [r9 + r8 + 0xf]
xor byte [r15 + 0xf7], al
jmp 0x6671e4