Function at 0x14005c8e0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1400
call fcn.1400b3930
sub rsp, rax
movaps xmmword [rsp + 0x13f0], xmm6
movaps xmmword [rsp + 0x13e0], xmm7
mov rax, qword [0x140185640]
xor rax, rsp
mov qword [rsp + 0x13d0], rax
movaps xmm6, xmm2
movaps xmm7, xmm1
mov rbx, rcx
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rsp + 0x13c4], 0xffffffff
mov edx, 1
mov dword [rsp + 0x44], eax
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x44], eax
inc rdx
cmp rdx, 0x270
jb 0x14005c950
mov r13d, 0x80000000
mov dword [rsp + 0x40], 0x270
cvttss2si edx, xmm6
xor r14d, r14d
cvttss2si r8d, xmm7
cmp edx, r13d
lea ecx, [rdx - 0x80000000]
lea esi, [rdx + r13]
cmovae esi, ecx
add esi, r13d
cmp r8d, r13d
lea ecx, [r8 - 0x80000000]
lea ebp, [r8 + r13]
cmovae ebp, ecx
add ebp, r13d
cmp esi, 0xffffffff
jne 0x14005c9c3
lea rcx, [rsp + 0x40]
call fcn.14001e4f0
mov edx, eax
jmp 0x14005ca01
lea edi, [rsi + 1]
xor r8d, r8d
xor eax, eax
test esi, esi
je 0x14005c9e1
lea rcx, [rsp + 0x40]
call fcn.14001e4f0
mov r8d, eax
mov eax, 0xffffffff
xor edx, edx
div edi
mov ecx, eax
mov r9d, edx
xor edx, edx
mov eax, r8d
div edi
cmp eax, ecx
jb 0x14005c9fa
cmp r9d, esi
jne 0x14005c9c6
xor edx, edx
mov eax, r8d
div edi
movd xmm1, edx
cvtdq2ps xmm1, xmm1
cmp ebp, 0xffffffff
jne 0x14005ca1b
lea rcx, [rsp + 0x40]
call fcn.14001e4f0
mov edx, eax
jmp 0x14005ca5b
lea edi, [rbp + 1]
nop
xor r8d, r8d
xor eax, eax
test ebp, ebp
je 0x14005ca3b
lea rcx, [rsp + 0x40]
call fcn.14001e4f0
mov r8d, eax
mov eax, 0xffffffff
xor edx, edx
div edi
mov ecx, eax
mov r9d, edx
xor edx, edx
mov eax, r8d
div edi
cmp eax, ecx
jb 0x14005ca54
cmp r9d, ebp
jne 0x14005ca20
xor edx, edx
mov eax, r8d
div edi
movd xmm0, edx
mov rdx, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x24], xmm0
cmp rdx, qword [rbx + 0x10]
je 0x14005ca89
movsd xmm0, qword [rsp + 0x24]
movsd qword [rdx], xmm0
add qword [rbx + 8], 8
jmp 0x14005ca96
lea r8, [rsp + 0x24]
mov rcx, rbx
call fcn.14005cd50
lea rcx, [rsp + 0x40]
call fcn.14001e4f0
and eax, 1
lea rcx, [rsp + 0x40]
lea eax, [rax*2 - 1]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
call fcn.14001e4f0
mov rdx, qword [rbx + 0x20]
mov ecx, eax
and ecx, 0xfffffffe
bt eax, 0
mov eax, 1
mov ecx, 0xffffffff
movss dword [rsp + 0x30], xmm1
cmovae eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x2c], xmm0
cmp rdx, qword [rbx + 0x28]
je 0x14005caff
movsd xmm0, qword [rsp + 0x2c]
movsd qword [rdx], xmm0
add qword [rbx + 0x20], 8
jmp 0x14005cb10
lea r8, [rsp + 0x2c]
lea rcx, [rbx + 0x18]
call fcn.14005cd50
nop dword [rax]
lea rcx, [rsp + 0x40]
call fcn.14001e4f0
mov rdx, qword [rbx + 0x38]
mov ecx, eax
and ecx, 1
add ecx, 0x80000003
cmp ecx, r13d
lea eax, [rcx - 0x80000000]
lea r8d, [rcx + r13]
cmovae r8d, eax
mov dword [rsp + 0x20], r8d
cmp rdx, qword [rbx + 0x40]
je 0x14005cb4f
mov dword [rdx], r8d
add qword [rbx + 0x38], 4
jmp 0x14005cb5d
lea r8, [rsp + 0x20]
lea rcx, [rbx + 0x30]
call fcn.14005cbb0
inc r14d
cmp r14d, 0xa
jl 0x14005c9b0
mov rcx, qword [rsp + 0x13d0]
xor rcx, rsp
call fcn.1400b2d40
lea r11, [rsp + 0x1400]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret