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

Disassembly:
push rbp
push rsi
mov eax, 0x1418
call fcn.140112730
sub rsp, rax
mov rax, qword [0x14019a900]
xor rax, rsp
mov qword [rsp + 0x13c0], rax
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rsp + 0x34], eax
mov edx, 1
mov dword [rsp + 0x13b4], 0xffffffff
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x34], eax
inc rdx
cmp rdx, 0x270
jb 0x14008ae70
mov rax, qword [0x14019ba70]
xor ebp, ebp
mov rsi, qword [0x14019ba68]
sub rax, rsi
mov dword [rsp + 0x30], 0x270
sar rax, 3
test rax, rax
je 0x14008b126
mov qword [rsp + 0x1430], rbx
mov ebx, ebp
mov qword [rsp + 0x1438], rdi
mov qword [rsp + 0x1440], r12
mov r12d, dword [0x14019ba60]
mov qword [rsp + 0x1410], r13
mov r13d, dword [0x14019ba9c]
mov qword [rsp + 0x1408], r14
mov qword [rsp + 0x1400], r15
mov r15d, ebp
movaps xmmword [rsp + 0x13f0], xmm6
movss xmm6, dword [0x1401200d0]
movaps xmmword [rsp + 0x13e0], xmm7
xorps xmm7, xmm7
movaps xmmword [rsp + 0x13d0], xmm8
movsd xmm8, qword [0x1401272f8]
nop word [rax + rax]
mov rdi, qword [0x14019ba80]
xorps xmm2, xmm2
mov rax, qword [0x14019bae8]
movss xmm0, dword [rbx + rsi]
cvtps2pd xmm0, xmm0
mov r14d, dword [r15 + rax]
movss xmm1, dword [rbx + rdi]
cvtps2pd xmm1, xmm1
cvtsi2ss xmm2, r14d
mulsd xmm1, xmm8
addsd xmm1, xmm0
movss xmm0, dword [rbx + rsi + 4]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm3, xmm1
movss dword [rbx + rsi], xmm3
movss xmm1, dword [rbx + rdi + 4]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm8
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movaps xmm1, xmm3
subss xmm1, xmm2
movss dword [rbx + rsi + 4], xmm0
comiss xmm7, xmm1
ja 0x14008afae
movd xmm0, r13d
addss xmm2, xmm3
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm0
jbe 0x14008b013
movss xmm0, dword [rbx + rdi]
lea rax, [rsp + 0x30]
xorps xmm0, xmm6
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
movss dword [rbx + rdi], xmm0
call fcn.14007f430
mov eax, eax
imul rax, rax, 0x169
cmp eax, 0x77
ja 0x14008aff8
nop dword [rax]
lea rcx, [rsp + 0x20]
call fcn.14007f430
mov eax, eax
imul rax, rax, 0x169
cmp eax, 0x78
jb 0x14008afe0
shr rax, 0x20
and eax, 1
lea eax, [rax*2 - 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbx + rdi + 4], xmm0
movss xmm2, dword [rbx + rsi + 4]
movd xmm0, r14d
movaps xmm1, xmm2
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
comiss xmm7, xmm1
ja 0x14008b046
movd xmm1, r14d
cvtdq2ps xmm1, xmm1
movd xmm0, r12d
cvtdq2ps xmm0, xmm0
addss xmm1, xmm2
comiss xmm1, xmm0
jbe 0x14008b0b2
movss xmm0, dword [rbx + rdi + 4]
lea rax, [rsp + 0x30]
xorps xmm0, xmm6
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
movss dword [rbx + rdi + 4], xmm0
call fcn.14007f430
mov eax, eax
imul rax, rax, 0x169
cmp eax, 0x77
ja 0x14008b098
nop word [rax + rax]
lea rcx, [rsp + 0x20]
call fcn.14007f430
mov eax, eax
imul rax, rax, 0x169
cmp eax, 0x78
jb 0x14008b080
shr rax, 0x20
and eax, 1
lea eax, [rax*2 - 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbx + rdi], xmm0
mov rcx, qword [0x14019ba70]
inc ebp
mov rsi, qword [0x14019ba68]
add rbx, 8
sub rcx, rsi
movsxd rax, ebp
sar rcx, 3
add r15, 4
cmp rax, rcx
jb 0x14008af30
movaps xmm8, xmmword [rsp + 0x13d0]
movaps xmm7, xmmword [rsp + 0x13e0]
movaps xmm6, xmmword [rsp + 0x13f0]
mov r15, qword [rsp + 0x1400]
mov r14, qword [rsp + 0x1408]
mov r13, qword [rsp + 0x1410]
mov r12, qword [rsp + 0x1440]
mov rdi, qword [rsp + 0x1438]
mov rbx, qword [rsp + 0x1430]
mov rcx, qword [rsp + 0x13c0]
xor rcx, rsp
call fcn.140112700
add rsp, 0x1418
pop rsi
pop rbp
ret