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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1450]
mov eax, 0x1550
call fcn.1801a2f10
sub rsp, rax
movaps xmmword [rsp + 0x1540], xmm6
movaps xmmword [rsp + 0x1530], xmm7
movaps xmmword [rsp + 0x1520], xmm8
movaps xmmword [rsp + 0x1510], xmm9
movaps xmmword [rsp + 0x1500], xmm10
movaps xmmword [rsp + 0x14f0], xmm11
movaps xmmword [rsp + 0x14e0], xmm12
movaps xmmword [rsp + 0x14d0], xmm13
movaps xmmword [rsp + 0x14c0], xmm14
mov rax, qword [0x180244308]
xor rax, rsp
mov qword [rbp + 0x13b0], rax
mov r13, rcx
mov qword [rsp + 0x20], rcx
mov rax, qword [0x180250630]
inc dword [rax + rcx]
call fcn.18013bae0
movsxd rbx, eax
test eax, eax
je 0x18013dede
xor eax, eax
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x18], xmm1
mov qword [rbp - 8], rax
movsd xmm11, qword [0x180216720]
comisd xmm11, xmmword [0x180250250]
jbe 0x18013d456
mov rax, qword [0x180250618]
mov rcx, qword [rax + r13]
mov eax, dword [rcx + 0x58]
sub eax, dword [rcx + 0x84]
movsxd rdx, eax
je 0x18013d456
movabs rax, 0x1fffffffffffffff
cmp rdx, rax
ja 0x18013df40
lea rcx, [rbp - 0x18]
call fcn.18013e0a0
call fcn.18013b0a0
mov qword [rsp + 0x40], rax
movss xmm2, dword [0x18021643c]
lea rdx, [rbp - 0x18]
mov rcx, r13
call fcn.18013bd30
xor r14d, r14d
mov dword [rsp + 0x30], r14d
mov rcx, r13
call fcn.1800a44a0
cmp dword [rax + 8], r14d
jle 0x18013d946
mov esi, dword [0x18024f4c4]
mov r15, qword gs:[0x58]
mov r12, rbx
mov qword [rsp + 0x50], rbx
xor ebx, ebx
mov qword [rsp + 0x38], rbx
movss xmm9, dword [0x1802164dc]
xorps xmm8, xmm8
movsd xmm12, qword [0x180216510]
movsd xmm10, qword [0x180216790]
movss xmm13, dword [0x180216478]
movss xmm14, dword [0x1802164b4]
nop dword [rax]
mov rcx, r13
call fcn.1800a44a0
mov rcx, qword [rax]
mov rdi, qword [rcx + rbx*8]
mov qword [rsp + 0x28], rdi
test rdi, rdi
je 0x18013d924
cmp rbx, r12
jge 0x18013d924
mov rcx, rdi
call fcn.18013afd0
cmp qword [rax], 0
je 0x18013d924
cmp qword [0x1802507c0], 0
je 0x18013d58c
mov rcx, rdi
call fcn.1800c7570
cmp qword [rax], 0
je 0x18013d58c
mov ecx, 8
mov rax, qword [r15 + rsi*8]
mov ecx, dword [rcx + rax]
cmp dword [0x180253cf8], ecx
jle 0x18013d573
lea rcx, [0x180253cf8]
call fcn.1801a21d0
cmp dword [0x180253cf8], 0xffffffff
jne 0x18013d573
mov rax, qword [0x1802507c0]
mov qword [0x180253d70], rax
lea rcx, [0x180253cf8]
call fcn.1801a2170
mov rbx, qword [0x180253d70]
mov rcx, rdi
call fcn.1800c7570
mov rcx, qword [rax]
call rbx
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rbp - 0x18]
mov qword [rbp - 0x48], rsi
mov rax, qword [rbp - 0x10]
mov qword [rsp + 0x48], rax
cmp rsi, rax
je 0x18013d91e
nop word [rax + rax]
mov rax, qword [rsi]
test rax, rax
je 0x18013d8f3
mov r15, qword [rax]
test r15, r15
je 0x18013d8f3
mov rdx, rdi
mov rcx, r15
call fcn.18013cb50
mov r12, rax
xor eax, eax
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x38], xmm1
mov qword [rbp - 0x28], rax
mov rdx, rdi
lea rcx, [rbp - 0x78]
call fcn.18013cdb0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x68], xmm1
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rsp + 0x78], xmm2
mov rdx, qword [rbp - 0x30]
cmp rdx, qword [rbp - 0x28]
je 0x18013d626
movups xmmword [rdx], xmm0
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx + 0x20], xmm2
add qword [rbp - 0x30], 0x30
jmp 0x18013d634
lea r8, [rsp + 0x58]
lea rcx, [rbp - 0x38]
call fcn.18013e960
mov r8, rdi
mov rdx, r15
mov rcx, r13
call fcn.18013d020
movzx r13d, al
test r12, r12
jne 0x18013d6b8
test al, al
jne 0x18013d6b8
mov r8, qword [rbp - 0x38]
test r8, r8
je 0x18013d8ee
mov rcx, qword [rbp - 0x28]
movabs rax, 0x2aaaaaaaaaaaaaab
sub rcx, r8
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 4
cmp rdx, 0x1000
mov rax, r8
jb 0x18013d6ab
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18013ded2
mov rcx, r8
call fcn.1801a1fd0
jmp 0x18013d8ee
cmp qword [0x1802507e0], 0
je 0x18013d992
cmp qword [0x180250610], 0
je 0x18013d992
mov esi, 8
mov eax, dword [0x18024f4c4]
mov rcx, qword gs:[0x58]
mov r14, qword [rcx + rax*8]
mov eax, dword [rsi + r14]
cmp dword [0x180253d80], eax
jle 0x18013d727
lea rcx, [0x180253d80]
call fcn.1801a21d0
cmp dword [0x180253d80], 0xffffffff
jne 0x18013d727
mov rax, qword [0x1802507e0]
mov qword [0x180253d98], rax
lea rcx, [0x180253d80]
call fcn.1801a2170
mov rcx, r15
call fcn.18007b290
test al, al
jne 0x18013d98e
mov rcx, r15
call fcn.18007b430
test al, al
jne 0x18013d98e
mov rcx, r15
call fcn.18007b5d0
test al, al
jne 0x18013d98e
mov rcx, rdi
call fcn.18013afd0
cmp qword [rax], 0
je 0x18013d98e
mov rcx, rdi
call fcn.18013afd0
lea rdx, [rbp + 0x10]
mov rcx, qword [rax]
call fcn.18007a320
xor edi, edi
mov r8, qword [rbp - 0x30]
mov rcx, r8
mov r11, qword [rbp - 0x38]
sub rcx, r11
movabs r9, 0x2aaaaaaaaaaaaaab
mov rax, r9
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x18013d874
xor ebx, ebx
cmp qword [rbx + r11 + 0x10], 0
je 0x18013d848
mov eax, dword [rsi + r14]
cmp dword [0x180253d30], eax
jle 0x18013d7fe
lea rcx, [0x180253d30]
call fcn.1801a21d0
cmp dword [0x180253d30], 0xffffffff
jne 0x18013d7fa
mov rax, qword [0x180250610]
mov qword [0x180253db8], rax
lea rcx, [0x180253d30]
call fcn.1801a2170
mov r11, qword [rbp - 0x38]
mov rcx, qword [r15]
mov rax, qword [0x180253db8]
mov r10, qword [rcx + rax*8]
movsxd rax, edi
lea r9, [rax + rax*2]
shl r9, 4
add r9, 0x18
add r9, r11
mov r8, qword [rbx + r11 + 0x10]
mov rdx, qword [rbx + r11 + 8]
mov rcx, r15
call r10
test al, al
jne 0x18013d98e
mov r8, qword [rbp - 0x30]
mov r11, qword [rbp - 0x38]
movabs r9, 0x2aaaaaaaaaaaaaab
inc edi
add rbx, 0x30
mov rcx, r8
sub rcx, r11
mov rax, r9
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, edi
cmp rax, rdx
jb 0x18013d7b3
test r12, r12
je 0x18013d890
mov rcx, r12
call qword [0x180253d98]
mov r11, qword [rbp - 0x38]
movabs r9, 0x2aaaaaaaaaaaaaab
test r11, r11
je 0x18013d8e5
mov rcx, qword [rbp - 0x28]
sub rcx, r11
mov rax, r9
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 4
mov rax, r11
cmp rdx, 0x1000
jb 0x18013d8dd
add rdx, 0x27
mov r11, qword [r11 - 8]
sub rax, r11
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18013decb
mov rcx, r11
call fcn.1801a1fd0
mov rsi, qword [rbp - 0x48]
mov rdi, qword [rsp + 0x28]
mov r13, qword [rsp + 0x20]
add rsi, 8
mov qword [rbp - 0x48], rsi
cmp rsi, qword [rsp + 0x48]
jne 0x18013d5b0
mov r15, qword gs:[0x58]
mov rbx, qword [rsp + 0x38]
mov r14d, dword [rsp + 0x30]
mov r12, qword [rsp + 0x50]
mov esi, dword [0x18024f4c4]
inc r14d
mov dword [rsp + 0x30], r14d
inc rbx
mov qword [rsp + 0x38], rbx
mov rcx, r13
call fcn.1800a44a0
cmp r14d, dword [rax + 8]
jl 0x18013d4e0
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x18013dede
mov rdx, qword [rbp - 8]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x18013ded9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18013ded9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov rsi, qword [rbp - 0x48]
mov ebx, 8
mov eax, dword [0x18024f4c4]
mov rcx, qword gs:[0x58]
mov rdi, qword [rcx + rax*8]
mov eax, dword [rbx + rdi]
cmp dword [0x180253d84], eax
jle 0x18013d9e4
lea rcx, [0x180253d84]
call fcn.1801a21d0
cmp dword [0x180253d84], 0xffffffff
jne 0x18013d9e4
mov rax, qword [0x180250760]
mov qword [0x180253d60], rax
lea rcx, [0x180253d84]
call fcn.1801a2170
mov eax, dword [rbx + rdi]
cmp dword [0x180253d4c], eax
jle 0x18013da1e
lea rcx, [0x180253d4c]
call fcn.1801a21d0
cmp dword [0x180253d4c], 0xffffffff
jne 0x18013da1e
mov rax, qword [0x180250740]
mov qword [0x180253cd8], rax
lea rcx, [0x180253d4c]
call fcn.1801a2170
mov eax, dword [rbx + rdi]
cmp dword [0x180253da4], eax
jle 0x18013da58
lea rcx, [0x180253da4]
call fcn.1801a21d0
cmp dword [0x180253da4], 0xffffffff
jne 0x18013da58
mov rax, qword [0x180250760]
mov qword [0x180253d08], rax
lea rcx, [0x180253da4]
call fcn.1801a2170
mov eax, dword [rbx + rdi]
cmp dword [0x180253d2c], eax
jle 0x18013da92
lea rcx, [0x180253d2c]
call fcn.1801a21d0
cmp dword [0x180253d2c], 0xffffffff
jne 0x18013da92
mov rax, qword [0x180250650]
mov qword [0x180253d40], rax
lea rcx, [0x180253d2c]
call fcn.1801a2170
test r12, r12
jne 0x18013ddff
mov eax, dword [rbx + rdi]
cmp dword [0x180253ef8], eax
jle 0x18013dae5
lea rcx, [0x180253ef8]
call fcn.1801a21d0
cmp dword [0x180253ef8], 0xffffffff
jne 0x18013dae5
mov rax, qword [0x180250560]
xor r9d, r9d
lea r8, str._Script_Engine.PlayerController
xor edx, edx
xor ecx, ecx
call rax
mov qword [0x180253f18], rax
lea rcx, [0x180253ef8]
call fcn.1801a2170
mov rax, qword [r15 + 0x10]
test rax, rax
je 0x18013db0e
mov rcx, qword [0x180250230]
mov rdx, qword [0x180253f18]
nop dword [rax]
cmp rdx, rax
je 0x18013db81
mov rax, qword [rax + rcx]
test rax, rax
jne 0x18013db00
mov rdi, qword [rsp + 0x28]
test r13b, r13b
je 0x18013dbcb
cmp dword [0x1802505bc], 0x1a6
jl 0x18013db98
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov dword [rbp - 0x40], 6
mov dword [rbp - 0x3c], 6
lea rax, str.Actor
mov qword [rbp - 0x48], rax
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 8]
call fcn.180139ff0
mov r9d, 0xffffffff
lea r8d, [r9 + 3]
lea rdx, [rbp + 8]
mov rcx, rdi
call qword [0x180253d08]
mov r12, rax
mov qword [rbp - 0x48], 0
mov qword [rbp - 0x40], 0
jmp 0x18013dbb1
mov rdi, qword [rsp + 0x28]
mov rcx, rdi
call fcn.1800c7570
cmp r15, qword [rax]
je 0x18013db13
jmp 0x18013d64f
mov r9d, 0xffffffff
mov r8b, 1
lea edx, [r9 + 3]
mov rcx, rdi
call qword [0x180253d60]
mov r12, rax
test r12, r12
je 0x18013d64f
mov rdx, r15
mov rcx, r12
call qword [0x180253d40]
jmp 0x18013de04
mov rcx, r15
call fcn.18007aec0
comiss xmm9, dword [rax]
jbe 0x18013d64f
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x13a4], 0xffffffff
mov dword [rbp + 0x24], eax
mov edx, 1
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0x24], eax
inc rdx
cmp rdx, 0x270
jb 0x18013dc00
mov edx, 0x270
mov dword [rbp + 0x20], edx
movaps xmm1, xmm8
movaps xmm2, xmm12
mov r10d, 2
cmp edx, 0x270
jne 0x18013dc91
lea r8, [rbp + 0x28]
mov r9d, edx
nop dword [rax]
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, dword [r8 - 4]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [r8 + 0x630]
mov dword [r8 + 0x9bc], ecx
lea r8, [r8 + 4]
sub r9, 1
jne 0x18013dc50
mov edx, dword [rbp + 0x20]
jmp 0x18013dd6d
cmp edx, 0x4e0
jb 0x18013dd6d
xor r8d, r8d
mov edx, dword [rbp + r8*4 + 0x9e4]
xor edx, dword [rbp + r8*4 + 0x9e8]
btr edx, 0x1f
xor edx, dword [rbp + r8*4 + 0x9e4]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 + 0x1018]
shr edx, 1
xor ecx, edx
mov dword [rbp + r8*4 + 0x24], ecx
inc r8
cmp r8, 0xe3
jb 0x18013dca0
mov r8d, 0xe3
nop dword [rax]
mov edx, dword [rbp + r8*4 + 0x9e4]
xor edx, dword [rbp + r8*4 + 0x9e8]
btr edx, 0x1f
xor edx, dword [rbp + r8*4 + 0x9e4]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 - 0x368]
shr edx, 1
xor ecx, edx
mov dword [rbp + r8*4 + 0x24], ecx
inc r8
cmp r8, 0x26f
jb 0x18013dcf0
mov edx, dword [rbp + 0x13a0]
xor edx, dword [rbp + 0x24]
btr edx, 0x1f
xor edx, dword [rbp + 0x13a0]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [rbp + 0x654]
mov dword [rbp + 0x9e0], ecx
xor edx, edx
mov dword [rbp + 0x20], edx
mov eax, edx
mov ecx, dword [rbp + rax*4 + 0x24]
inc edx
mov dword [rbp + 0x20], edx
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x13a4]
xor ecx, eax
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
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm8
mulsd xmm0, xmm2
addsd xmm1, xmm0
mulsd xmm2, xmm10
sub r10, 1
jne 0x18013dc35
divsd xmm1, xmm2
addsd xmm1, xmm8
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm1
call fcn.18013b0a0
mov rcx, rax
call fcn.180136bb0
mulss xmm6, xmm13
addss xmm0, xmm6
cvtss2sd xmm0, xmm0
mov rax, qword [rsi]
movsd qword [rax + 0x10], xmm0
jmp 0x18013d64f
mov rdi, qword [rsp + 0x28]
mov rcx, r12
call qword [0x180253cd8]
test rax, rax
je 0x18013d64f
comisd xmm11, xmmword [0x180250250]
jbe 0x18013d64f
mov rcx, qword [rsp + 0x40]
call fcn.180136bb0
movaps xmm7, xmm0
mov rcx, r15
call fcn.18007aec0
movaps xmm6, xmm9
divss xmm6, dword [rax]
movss dword [rbp], xmm6
mov rcx, r15
call fcn.18007af90
movaps xmm1, xmm9
divss xmm1, dword [rax]
comiss xmm1, xmm6
jbe 0x18013de73
mov rcx, r15
call fcn.18007af90
movaps xmm3, xmm9
divss xmm3, dword [rax]
movss dword [rbp - 0x20], xmm3
jmp 0x18013de7b
movss dword [rbp - 0x20], xmm6
movaps xmm3, xmm6
xorps xmm2, xmm2
cvtss2sd xmm2, xmm7
mov rdx, qword [rsi]
movaps xmm0, xmm2
subsd xmm0, qword [rdx + 0x18]
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm14
movss dword [rbp - 0x48], xmm1
comiss xmm6, xmm1
lea rcx, [rbp]
lea rax, [rbp - 0x48]
cmovbe rcx, rax
comiss xmm1, xmm3
lea rax, [rbp - 0x20]
cmovbe rax, rcx
movss xmm0, dword [rax]
movss dword [rdx + 0x20], xmm0
mov rax, qword [rsi]
movsd qword [rax + 0x18], xmm2
jmp 0x18013d64f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.1801a1fd0
xor eax, eax
mov rcx, qword [rbp + 0x13b0]
xor rcx, rsp
call fcn.1801a1ee0
lea r11, [rsp + 0x1550]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1800641e0
nop
int3