Function at 0x1800ca0e0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rdi
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0x90
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
mov rdi, rcx
movups xmm3, xmmword [str.tTRMtPC_KmZNPKO_]
movups xmmword [rbp - 9], xmm3
movzx eax, byte [0x180129f78]
mov byte [rbp + 7], al
xor ebx, ebx
mov r8d, ebx
cmp dword [0x180148090], 2
jl 0x1800ca2c6
movdqa xmm5, xmmword [0x18012e5e0]
movdqa xmm6, xmmword [0x18012e170]
movdqa xmm7, xmmword [0x18012e230]
movdqa xmm2, xmmword [0x18012e100]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm5
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm5
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
movdqa xmm4, xmmword [0x18012e1e0]
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm7
movd eax, xmm3
movd xmm0, eax
xorps xmm2, xmm0
movd dword [rbp - 9], xmm2
movdqa xmm2, xmmword [0x18012e110]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm5
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm5
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm7
movd xmm0, dword [rbp - 5]
xorps xmm2, xmm0
movd dword [rbp - 5], xmm2
movdqa xmm3, xmmword [0x18012e120]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm5
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm5
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
andps xmm3, xmm4
packuswb xmm3, xmm3
packuswb xmm3, xmm3
paddb xmm3, xmm7
movd xmm0, dword [rbp - 1]
xorps xmm3, xmm0
movd dword [rbp - 1], xmm3
movdqa xmm2, xmmword [0x18012e130]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm5
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm5
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm7
movd xmm0, dword [rbp + 3]
xorps xmm2, xmm0
movd dword [rbp + 3], xmm2
mov r8d, 0x10
mov eax, r8d
lea r9, [rbp - 9]
add r9, rax
mov eax, 0x4bda12f7
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x36
movzx eax, r8b
sub al, cl
add al, 0x30
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x11
jl 0x1800ca2d0
xorps xmm0, xmm0
movups xmmword [rbp + 0x17], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x27], xmm1
lea rax, [rbp - 9]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rax + r8], bl
jne 0x1800ca320
lea rdx, [rbp - 9]
lea rcx, [rbp + 0x17]
call fcn.180016750
nop
test rdi, rdi
jne 0x1800ca3a8
xorps xmm0, xmm0
movups xmmword [rbp - 9], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 7], xmm1
xor r8d, r8d
lea rdx, [0x18011e4f0]
lea rcx, [rbp - 9]
call fcn.180016750
nop
cmp byte [0x180149df8], dil
je 0x1800ca39d
mov byte [rbp + 0x67], dil
mov dword [rbp + 0x6f], 2
lea rax, [rbp + 0x67]
mov qword [rsp + 0x28], rax
lea rax, [0x18014aff8]
mov qword [rsp + 0x20], rax
lea r9, [0x18014afe8]
lea r8, [rbp - 9]
lea rdx, [rbp + 0x6f]
call fcn.1800288e0
nop
lea rcx, [rbp - 9]
call fcn.18002d710
jmp 0x1800ca3be
lea rdx, [rbp + 0x17]
mov rcx, rdi
call fcn.1800623c0
test eax, eax
jle 0x1800ca3be
movsxd rbx, eax
add rbx, rdi
lea rcx, [rbp + 0x17]
call fcn.18002d710
mov rax, rbx
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [rsp + 0x70]
mov rsp, r11
pop rbp
ret