Function at 0x1400caa10
Capabilities:
Encode data using xor
Generate random numbers using the delphi lcg

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x1401ef010]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov eax, dword [0x14023ede4]
mov rbp, r8
mov r14, qword [0x1401fcf88]
inc eax
mov dword [0x14023ede4], eax
mov r15d, edx
cmp eax, 1
jne 0x1400caa62
xor ecx, ecx
call fcn.14013b450
xor eax, 0xbb40e64e
mov ecx, eax
call fcn.14013b438
mov rcx, r14
call fcn.1400ca970
xor edi, edi
mov esi, edi
nop
call fcn.14013b40c
mov rdx, qword [0x14023ede8]
mov r10d, eax
mov r8d, dword [0x14023edf0]
mov r9d, r8d
mov rbx, qword [0x140289e90]
and r9d, 0xfffd
sar r10d, 7
or r9d, 2
mov ecx, r10d
shr r8d, 8
xor rdx, rcx
movzx ecx, dl
mov edx, dword [0x14023ede8]
shr edx, 8
xor edx, dword [rbx + rcx*4]
movzx eax, dl
add eax, dword [0x14023edec]
imul eax, eax, 0x8088405
mov dword [0x14023ede8], edx
inc eax
mov dword [0x14023edec], eax
shr rax, 0x18
xor rax, qword [0x14023edf0]
movzx eax, al
xor r8d, dword [rbx + rax*4]
mov eax, r9d
xor eax, 1
mov dword [0x14023edf0], r8d
imul eax, r9d
shr eax, 8
xor al, r10b
mov byte [rsp + rsi + 0x20], al
inc rsi
cmp rsi, 0xa
jl 0x1400caa70
mov rcx, r14
call fcn.1400ca970
nop word [rax + rax]
mov edx, dword [0x14023edf0]
mov r8d, edx
movzx r9d, byte [rsp + rdi + 0x20]
and r8d, 0xfffd
mov eax, r9d
shr edx, 8
xor rax, qword [0x14023ede8]
or r8d, 2
movzx ecx, al
mov eax, dword [0x14023ede8]
shr eax, 8
xor eax, dword [rbx + rcx*4]
mov dword [0x14023ede8], eax
movzx eax, al
add eax, dword [0x14023edec]
imul eax, eax, 0x8088405
inc eax
mov dword [0x14023edec], eax
shr rax, 0x18
xor rax, qword [0x14023edf0]
movzx eax, al
xor edx, dword [rbx + rax*4]
mov eax, r8d
xor eax, 1
mov dword [0x14023edf0], edx
imul eax, r8d
mov rdx, rbp
shr eax, 8
movzx ecx, al
xor ecx, r9d
call fcn.140152bf0
inc rdi
cmp rdi, 0xa
jge 0x1400cabba
mov rbx, qword [0x140289e90]
jmp 0x1400cab20
mov rdx, qword [0x140289e90]
mov ebx, r15d
mov r8d, dword [0x14023edf0]
mov r9d, r8d
and r9d, 0xfffd
shr ebx, 0x10
or r9d, 2
shr r8d, 8
mov eax, ebx
xor rax, qword [0x14023ede8]
movzx ecx, al
mov eax, dword [0x14023ede8]
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, r9d
mov dword [0x14023ede8], eax
xor ecx, 1
movzx eax, al
add eax, dword [0x14023edec]
imul eax, eax, 0x8088405
imul ecx, r9d
inc eax
mov dword [0x14023edec], eax
shr rax, 0x18
xor rax, qword [0x14023edf0]
movzx eax, al
xor r8d, dword [rdx + rax*4]
mov eax, r15d
shr eax, 8
mov rdx, rbp
xor ecx, eax
mov dword [0x14023edf0], r8d
shr ecx, 8
movzx ecx, cl
call fcn.140152bf0
mov r9d, dword [0x14023edf0]
mov eax, r15d
mov r8, qword [0x140289e90]
mov r10d, r9d
shr rax, 0x18
and r10d, 0xfffd
xor rax, qword [0x14023ede8]
or r10d, 2
movzx ecx, al
mov rdx, rbp
mov eax, dword [0x14023ede8]
shr eax, 8
shr r9d, 8
xor eax, dword [r8 + rcx*4]
mov ecx, r10d
mov dword [0x14023ede8], eax
xor ecx, 1
movzx eax, al
add eax, dword [0x14023edec]
imul eax, eax, 0x8088405
imul ecx, r10d
inc eax
mov dword [0x14023edec], eax
and ecx, 0xff00
shr rax, 0x18
xor ecx, ebx
xor rax, qword [0x14023edf0]
movzx eax, al
shr ecx, 8
xor r9d, dword [r8 + rax*4]
mov dword [0x14023edf0], r9d
call fcn.140152bf0
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.140132620
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret