Function at 0x14015a870
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x10], rdx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x10
mov ebp, dword [rcx + 0x100]
movzx r13d, r8b
mov r14d, dword [rdx + 4]
mov r15d, dword [rdx + 8]
mov r12d, dword [rdx + 0xc]
xor ebp, dword [rdx]
xor r14d, dword [rcx + 0x104]
xor r15d, dword [rcx + 0x108]
xor r12d, dword [rcx + 0x10c]
test r8b, r8b
jne 0x14015a8ca
movups xmm0, xmmword [rdx]
movups xmmword [rsp], xmm0
xor esi, esi
nop dword [rax]
mov edx, esi
mov eax, 0x1f
sub eax, esi
mov r8d, r12d
test r13b, r13b
cmove edx, eax
rol r8d, 0xb
and edx, 3
add r8d, r15d
mov r9d, dword [rcx + rdx*4 + 0x100]
xor r8, r9
mov rax, r8
shr rax, 0x10
movzx eax, al
movzx r10d, byte [rax + rcx]
mov rax, r8
shr rax, 0x18
movzx edx, byte [rax + rcx]
mov rax, r8
shr rax, 8
movzx eax, al
shl edx, 8
or r10d, edx
shl r10d, 8
movzx edx, byte [rax + rcx]
or r10d, edx
movzx eax, r8b
shl r10d, 8
movzx edx, byte [rax + rcx]
mov eax, r15d
rol eax, 0x11
or r10d, edx
xor eax, r12d
xor r10d, ebp
add eax, r9d
mov r8d, eax
shr rax, 0x10
movzx eax, al
movzx r11d, byte [rax + rcx]
mov eax, r8d
shr rax, 0x18
movzx edx, byte [rax + rcx]
mov eax, r8d
shr rax, 8
movzx eax, al
shl edx, 8
or r11d, edx
shl r11d, 8
movzx edx, byte [rax + rcx]
or r11d, edx
movzx eax, r8b
shl r11d, 8
movzx edx, byte [rax + rcx]
mov eax, 0x1e
sub eax, esi
or r11d, edx
xor r11d, r14d
lea edx, [rsi + 1]
test r13b, r13b
mov r8d, r11d
cmove edx, eax
rol r8d, 0xb
and edx, 3
add r8d, r10d
mov r9d, dword [rcx + rdx*4 + 0x100]
xor r8, r9
mov rax, r8
shr rax, 0x10
movzx eax, al
movzx ebx, byte [rax + rcx]
mov rax, r8
shr rax, 0x18
movzx edx, byte [rax + rcx]
mov rax, r8
shl edx, 8
or ebx, edx
shr rax, 8
movzx eax, al
shl ebx, 8
movzx edx, byte [rax + rcx]
or ebx, edx
movzx eax, r8b
shl ebx, 8
movzx edx, byte [rax + rcx]
mov eax, r10d
rol eax, 0x11
or ebx, edx
xor eax, r11d
xor ebx, r15d
add eax, r9d
mov r8d, eax
shr rax, 0x10
movzx eax, al
movzx edi, byte [rax + rcx]
mov eax, r8d
shr rax, 0x18
movzx edx, byte [rax + rcx]
mov eax, r8d
shr rax, 8
movzx eax, al
shl edx, 8
or edi, edx
shl edi, 8
movzx edx, byte [rax + rcx]
or edi, edx
movzx eax, r8b
shl edi, 8
movzx edx, byte [rax + rcx]
mov eax, 0x1d
sub eax, esi
or edi, edx
xor edi, r12d
lea edx, [rsi + 2]
test r13b, r13b
mov r8d, edi
cmove edx, eax
rol r8d, 0xb
and edx, 3
add r8d, ebx
mov r9d, dword [rcx + rdx*4 + 0x100]
xor r8, r9
mov rax, r8
shr rax, 0x10
movzx eax, al
movzx ebp, byte [rax + rcx]
mov rax, r8
shr rax, 0x18
movzx edx, byte [rax + rcx]
mov rax, r8
shr rax, 8
movzx eax, al
shl edx, 8
or ebp, edx
shl ebp, 8
movzx edx, byte [rax + rcx]
or ebp, edx
movzx eax, r8b
shl ebp, 8
movzx edx, byte [rax + rcx]
mov eax, ebx
rol eax, 0x11
or ebp, edx
xor eax, edi
xor ebp, r10d
add eax, r9d
mov r8d, eax
shr rax, 0x10
movzx eax, al
movzx r14d, byte [rax + rcx]
mov eax, r8d
shr rax, 0x18
movzx edx, byte [rax + rcx]
mov eax, r8d
shr rax, 8
shl edx, 8
or r14d, edx
movzx eax, al
shl r14d, 8
movzx edx, byte [rax + rcx]
or r14d, edx
movzx eax, r8b
shl r14d, 8
movzx edx, byte [rax + rcx]
mov eax, 0x1c
sub eax, esi
or r14d, edx
xor r14d, r11d
lea edx, [rsi + 3]
test r13b, r13b
mov r8d, r14d
cmove edx, eax
rol r8d, 0xb
and edx, 3
add r8d, ebp
add esi, 4
mov r9d, dword [rcx + rdx*4 + 0x100]
xor r8, r9
mov rax, r8
shr rax, 0x10
movzx eax, al
movzx r15d, byte [rax + rcx]
mov rax, r8
shr rax, 0x18
movzx edx, byte [rax + rcx]
mov rax, r8
shr rax, 8
movzx eax, al
shl edx, 8
or r15d, edx
shl r15d, 8
movzx edx, byte [rax + rcx]
or r15d, edx
movzx eax, r8b
shl r15d, 8
movzx edx, byte [rax + rcx]
mov eax, ebp
rol eax, 0x11
or r15d, edx
xor eax, r14d
xor r15d, ebx
add eax, r9d
mov r8d, eax
shr rax, 0x10
movzx eax, al
movzx r12d, byte [rax + rcx]
mov eax, r8d
shr rax, 0x18
movzx edx, byte [rax + rcx]
mov eax, r8d
shl edx, 8
or r12d, edx
shr rax, 8
shl r12d, 8
movzx eax, al
movzx edx, byte [rax + rcx]
or r12d, edx
movzx eax, r8b
shl r12d, 8
movzx edx, byte [rax + rcx]
or r12d, edx
xor r12d, edi
cmp esi, 0x20
jb 0x14015a8d0
xor r15d, dword [rcx + 0x100]
lea rdx, [rsp]
mov rsi, qword [rsp + 0x48]
lea r9, [0x1402c2980]
mov r8d, 4
mov dword [rsi], r15d
xor r12d, dword [rcx + 0x104]
mov dword [rsi + 4], r12d
xor ebp, dword [rcx + 0x108]
mov dword [rsi + 8], ebp
xor r14d, dword [rcx + 0x10c]
test r13b, r13b
mov dword [rsi + 0xc], r14d
cmovne rdx, rsi
add rdx, 2
nop dword [rax + rax]
movzx eax, byte [rdx - 2]
lea rdx, [rdx + 4]
mov eax, dword [r9 + rax*4]
xor dword [rcx + 0x100], eax
movzx eax, byte [rdx - 5]
mov eax, dword [r9 + rax*4]
xor dword [rcx + 0x104], eax
movzx eax, byte [rdx - 4]
mov eax, dword [r9 + rax*4]
xor dword [rcx + 0x108], eax
movzx eax, byte [rdx - 3]
mov eax, dword [r9 + rax*4]
xor dword [rcx + 0x10c], eax
sub r8, 1
jne 0x14015ac20
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x10
pop r15
pop r14
pop r13
pop r12
pop rdi
ret