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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x1370]
mov eax, 0x1470
call fcn.14000fa20
sub rsp, rax
movaps xmmword [rsp + 0x1430], xmm9
movaps xmmword [rsp + 0x13e0], xmm14
mov rax, qword [0x140016040]
xor rax, rsp
mov qword [rbp + 0x12c0], rax
mov qword [rsp + 0x20], rcx
xor r12d, r12d
mov rbx, rdx
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
mov qword [rcx], r12
mov r14, rcx
mov qword [rcx + 8], r12
movaps xmm14, xmm2
mov qword [rcx + 0x10], r12
mov rdx, qword [rdx + 8]
sub rdx, qword [rbx]
sar rdx, 2
test rdx, rdx
je 0x1400022e6
call fcn.140002920
mov rdx, qword [rbx]
mov rbx, qword [rbx + 8]
mov rdi, qword [r14]
sub rbx, rdx
mov r8, rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memmove
sar rbx, 2
lea rax, [rdi + rbx*4]
mov qword [r14 + 8], rax
mov edx, 0x1571
mov dword [rbp + 0x12b4], 0xffffffff
mov dword [rsp + 0x34], edx
mov ecx, 1
nop
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x34], edx
inc rcx
cmp rcx, 0x270
jb 0x140002300
mov r15, qword [r14 + 8]
xor al, al
mov rsi, qword [r14]
mov edx, 0x270
mov dword [rsp + 0x30], edx
xorps xmm9, xmm9
xorps xmm1, xmm1
cmp rsi, r15
je 0x1400026fd
movaps xmmword [rsp + 0x1460], xmm6
movaps xmmword [rsp + 0x1450], xmm7
movaps xmmword [rsp + 0x1440], xmm8
movaps xmmword [rsp + 0x1420], xmm10
movss xmm10, dword [0x140011a90]
movaps xmmword [rsp + 0x1410], xmm11
movss xmm11, dword [0x140011a74]
movaps xmmword [rsp + 0x1400], xmm12
movss xmm12, dword [0x140011a78]
movaps xmmword [rsp + 0x13f0], xmm13
movss xmm13, dword [0x140011aa4]
movaps xmmword [rsp + 0x13d0], xmm15
movdqa xmm15, xmmword [0x140011bc0]
mov dword [rsp + 0x20], r12d
nop dword [rax]
test al, al
je 0x1400023d0
movaps xmm0, xmm1
xor al, al
jmp 0x14000267f
cmp edx, 0x270
jne 0x140002432
lea r8, [rsp + 0x38]
mov r9d, 0x270
nop dword [rax]
nop word [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x1400023f0
mov edx, dword [rsp + 0x30]
jmp 0x14000250e
cmp edx, 0x4e0
jb 0x14000250e
mov r8, r12
mov eax, dword [rbp + r8*4 + 0x8f4]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x8f8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 + 0xf28]
xor ecx, edx
mov dword [rsp + r8*4 + 0x34], ecx
inc r8
cmp r8, 0xe3
jb 0x140002441
mov r8d, 0xe3
nop word [rax + rax]
mov eax, dword [rbp + r8*4 + 0x8f4]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x8f8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 - 0x458]
xor ecx, edx
mov dword [rsp + r8*4 + 0x34], ecx
inc r8
cmp r8, 0x26f
jb 0x140002490
mov edx, dword [rbp + 0x12b0]
mov eax, dword [rsp + 0x34]
and edx, 0x80000000
btr eax, 0x1f
or edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
mov edx, r12d
xor ecx, dword [rbp + 0x564]
mov dword [rbp + 0x8f0], ecx
mov dword [rsp + 0x30], edx
mov eax, edx
xorps xmm6, xmm6
inc edx
mov ecx, dword [rsp + rax*4 + 0x34]
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12b4]
xor ecx, eax
mov dword [rsp + 0x30], edx
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
lea rcx, [rsp + 0x30]
cvtsi2ss xmm6, rax
subss xmm6, xmm9
addss xmm6, xmm9
mulss xmm6, xmm11
addss xmm6, xmm6
subss xmm6, xmm10
call fcn.140003030
xorps xmm7, xmm7
mov eax, eax
movaps xmm8, xmm6
mulss xmm8, xmm6
cvtsi2ss xmm7, rax
subss xmm7, xmm9
addss xmm7, xmm9
mulss xmm7, xmm11
addss xmm7, xmm7
subss xmm7, xmm10
movaps xmm0, xmm7
mulss xmm0, xmm7
addss xmm8, xmm0
comiss xmm10, xmm8
jbe 0x1400025c0
ucomiss xmm6, xmm9
jp 0x1400025b5
je 0x1400025c0
ucomiss xmm7, xmm9
jp 0x1400025c9
jne 0x1400025c9
nop dword [rax]
mov edx, dword [rsp + 0x30]
jmp 0x1400023d0
comiss xmm8, xmm12
jbe 0x1400025dd
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_logf
movaps xmm1, xmm0
jmp 0x14000264b
movaps xmm1, xmm7
movaps xmm0, xmm6
andps xmm1, xmm15
andps xmm0, xmm15
maxss xmm1, xmm0
movaps xmm0, xmm1
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_ilogbf]
mov ebx, eax
movaps xmm0, xmm6
neg ebx
mov edi, eax
mov edx, ebx
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_scalbnf]
movaps xmm6, xmm0
mov edx, ebx
movaps xmm0, xmm7
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_scalbnf]
movaps xmm8, xmm6
movaps xmm7, xmm0
mulss xmm0, xmm0
mulss xmm8, xmm6
addss xmm8, xmm0
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_logf
movaps xmm1, xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x140011a94]
addss xmm1, xmm0
mulss xmm1, xmm13
xorps xmm0, xmm0
divss xmm1, xmm8
ucomiss xmm0, xmm1
ja 0x140002666
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14000266e
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov edx, dword [rsp + 0x30]
movaps xmm1, xmm0
mulss xmm1, xmm7
mov al, 1
mulss xmm0, xmm6
mulss xmm0, xmm14
lea rcx, [rsp + 0x20]
addss xmm0, xmm9
addss xmm0, dword [rsi]
comiss xmm9, xmm0
movss dword [rsi], xmm0
movaps xmm0, xmm10
cmovbe rcx, rsi
minss xmm0, dword [rcx]
movss dword [rsi], xmm0
add rsi, 4
cmp rsi, r15
jne 0x1400023c0
movaps xmm15, xmmword [rsp + 0x13d0]
movaps xmm13, xmmword [rsp + 0x13f0]
movaps xmm12, xmmword [rsp + 0x1400]
movaps xmm11, xmmword [rsp + 0x1410]
movaps xmm10, xmmword [rsp + 0x1420]
movaps xmm8, xmmword [rsp + 0x1440]
movaps xmm7, xmmword [rsp + 0x1450]
movaps xmm6, xmmword [rsp + 0x1460]
mov rax, r14
mov rcx, qword [rbp + 0x12c0]
xor rcx, rsp
call fcn.14000eae0
lea r11, [rsp + 0x1470]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret