Function at 0x180100cd0
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 - 0x14a0]
mov eax, 0x15a0
call fcn.1801646a0
sub rsp, rax
movaps xmmword [rsp + 0x1590], xmm6
movaps xmmword [rsp + 0x1580], xmm7
movaps xmmword [rsp + 0x1570], xmm8
movaps xmmword [rsp + 0x1560], xmm9
movaps xmmword [rsp + 0x1550], xmm10
movaps xmmword [rsp + 0x1540], xmm11
movaps xmmword [rsp + 0x1530], xmm12
movaps xmmword [rsp + 0x1520], xmm13
movaps xmmword [rsp + 0x1510], xmm14
mov rax, qword [0x1801f3300]
xor rax, rsp
mov qword [rbp + 0x1400], rax
mov r15, rcx
mov qword [rsp + 0x20], rcx
mov rax, qword [0x1801fcd88]
inc dword [rcx + rax]
call fcn.1800ff450
movsxd rbx, eax
test eax, eax
je 0x1801018b9
xor eax, eax
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x20], xmm1
mov qword [rbp + 0x30], rax
movsd xmm11, qword [0x1801d14c0]
comisd xmm11, xmmword [0x1801fcc88]
jbe 0x180100dde
mov rax, qword [0x1801fcd68]
mov rcx, qword [r15 + rax]
mov eax, dword [rcx + 0x58]
sub eax, dword [rcx + 0x84]
movsxd rcx, eax
mov qword [rbp + 0x10], rcx
je 0x180100dde
movabs rax, 0x1fffffffffffffff
cmp rcx, rax
ja 0x18010191b
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x20]
call fcn.1801019b0
call fcn.1800fef30
mov qword [rsp + 0x30], rax
movss xmm2, dword [0x1801d1130]
lea rdx, [rbp + 0x20]
mov rcx, r15
call fcn.1800ff6a0
mov edi, dword [0x1801fbf50]
mov rax, qword gs:[0x58]
mov esi, reloc.WS2_32.dll_recv
mov r14, qword [rax + rdi*8]
mov qword [rsp + 0x40], r14
mov eax, dword [r14 + rsi]
cmp dword [0x1802002a0], eax
jle 0x180100e54
lea rcx, [0x1802002a0]
call fcn.180163900
cmp dword [0x1802002a0], 0xffffffff
jne 0x180100e54
mov rax, qword [0x1801fcea0]
mov qword [0x180200300], rax
lea rcx, [0x1802002a0]
call fcn.180163894
mov eax, dword [r14 + rsi]
cmp dword [0x180200328], eax
jle 0x180100e8f
lea rcx, [0x180200328]
call fcn.180163900
cmp dword [0x180200328], 0xffffffff
jne 0x180100e8f
mov rax, qword [0x1801fce80]
mov qword [0x180200298], rax
lea rcx, [0x180200328]
call fcn.180163894
mov eax, dword [r14 + rsi]
cmp dword [0x180200364], eax
jle 0x180100eca
lea rcx, [0x180200364]
call fcn.180163900
cmp dword [0x180200364], 0xffffffff
jne 0x180100eca
mov rax, qword [0x1801fcea0]
mov qword [0x180200270], rax
lea rcx, [0x180200364]
call fcn.180163894
mov eax, dword [r14 + rsi]
cmp dword [0x1802002dc], eax
jle 0x180100f05
lea rcx, [0x1802002dc]
call fcn.180163900
cmp dword [0x1802002dc], 0xffffffff
jne 0x180100f05
mov rax, qword [0x1801fcda8]
mov qword [0x1802002b0], rax
lea rcx, [0x1802002dc]
call fcn.180163894
mov eax, dword [r14 + rsi]
cmp dword [0x1802002d4], eax
jle 0x180100f40
lea rcx, [0x1802002d4]
call fcn.180163900
cmp dword [0x1802002d4], 0xffffffff
jne 0x180100f40
mov rax, qword [0x1801fcda8]
mov qword [0x1802002c8], rax
lea rcx, [0x1802002d4]
call fcn.180163894
xor r13d, r13d
mov dword [rsp + 0x28], r13d
mov rcx, r15
call fcn.1800830a0
cmp dword [rax + 8], r13d
jle 0x18010186a
mov qword [rsp + 0x48], rbx
xor esi, esi
mov qword [rbp + 0x10], rsi
movss xmm9, dword [0x1801d11d4]
xorps xmm8, xmm8
movsd xmm12, qword [0x1801d1220]
movsd xmm10, qword [0x1801d1578]
movss xmm13, dword [0x1801d116c]
movss xmm14, dword [0x1801d11ac]
mov rcx, r15
call fcn.1800830a0
mov rcx, qword [rax]
mov r12, qword [rcx + rsi*8]
test r12, r12
je 0x180101849
cmp rsi, rbx
jge 0x180101849
mov rcx, r12
call fcn.1800fee70
cmp qword [rax], 0
je 0x180101849
cmp qword [0x1801fcef0], 0
je 0x180101035
mov rcx, r12
call fcn.1800a9da0
cmp qword [rax], 0
je 0x180101035
mov eax, reloc.WS2_32.dll_recv
mov eax, dword [r14 + rax]
cmp dword [0x18020027c], eax
jle 0x180101021
lea rcx, [0x18020027c]
call fcn.180163900
cmp dword [0x18020027c], 0xffffffff
jne 0x180101021
mov rax, qword [0x1801fcef0]
mov qword [0x180200310], rax
lea rcx, [0x18020027c]
call fcn.180163894
mov rbx, qword [0x180200310]
mov rcx, r12
call fcn.1800a9da0
mov rcx, qword [rax]
call rbx
xor eax, eax
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x40], xmm1
mov qword [rbp + 0x50], rax
mov r13, qword [rbp + 0x20]
mov rax, qword [rbp + 0x28]
mov qword [rsp + 0x38], rax
cmp r13, rax
je 0x18010183f
nop dword [rax]
mov rax, qword [r13]
test rax, rax
je 0x180101821
mov rsi, qword [rax]
test rsi, rsi
je 0x180101821
mov rdx, r12
mov rcx, rsi
call fcn.1801004d0
mov r14, rax
xor eax, eax
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x20], xmm1
mov qword [rbp - 0x10], rax
mov rdx, r12
lea rcx, [rbp - 0x68]
call fcn.180100720
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x60], xmm1
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rsp + 0x70], xmm2
movups xmm3, xmmword [rax + 0x30]
movups xmmword [rbp - 0x80], xmm3
movsd xmm4, qword [rax + 0x40]
movsd qword [rbp - 0x70], xmm4
mov rdx, qword [rbp - 0x18]
cmp rdx, qword [rbp - 0x10]
je 0x1801010f2
movups xmmword [rdx], xmm0
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx + 0x20], xmm2
movups xmmword [rdx + 0x30], xmm3
movsd qword [rdx + 0x40], xmm4
add qword [rbp - 0x18], 0x48
jmp 0x180101100
lea r8, [rsp + 0x50]
lea rcx, [rbp - 0x20]
call fcn.180101ab0
mov r8, r12
mov rdx, rsi
mov rcx, r15
call fcn.1801009b0
movzx r15d, al
test r14, r14
jne 0x18010111f
test al, al
je 0x1801017bc
mov rbx, qword gs:[0x58]
cmp qword [0x1801fcf08], 0
je 0x18010136f
cmp qword [0x1801fcd70], 0
je 0x18010136f
mov rax, qword [rbx + rdi*8]
mov ecx, reloc.WS2_32.dll_recv
mov ecx, dword [rcx + rax]
cmp dword [0x180200318], ecx
jle 0x180101187
lea rcx, [0x180200318]
call fcn.180163900
cmp dword [0x180200318], 0xffffffff
jne 0x180101187
mov rax, qword [0x1801fcf08]
mov qword [0x180200260], rax
lea rcx, [0x180200318]
call fcn.180163894
mov rcx, rsi
call fcn.180057e90
test al, al
jne 0x18010136f
mov rcx, rsi
call fcn.180058020
test al, al
jne 0x18010136f
mov rcx, rsi
call fcn.1800581b0
test al, al
jne 0x18010136f
mov rcx, r12
call fcn.1800fee70
cmp qword [rax], 0
je 0x18010136f
mov rcx, r12
call fcn.1800fee70
lea rdx, [rbp + 0x58]
mov rcx, qword [rax]
call fcn.180056d80
xor edi, edi
mov r8, qword [rbp - 0x18]
mov rcx, r8
mov r11, qword [rbp - 0x20]
sub rcx, r11
movabs r9, 0xe38e38e38e38e39
mov rax, r9
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x1801012eb
xor ebx, ebx
cmp qword [rbx + r11 + 0x10], 0
je 0x1801012bf
mov eax, dword [0x1801fbf50]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov ecx, reloc.WS2_32.dll_recv
mov ecx, dword [rcx + rax]
cmp dword [0x1802002d0], ecx
jle 0x180101275
lea rcx, [0x1802002d0]
call fcn.180163900
cmp dword [0x1802002d0], 0xffffffff
jne 0x180101271
mov rax, qword [0x1801fcd70]
mov qword [0x180200348], rax
lea rcx, [0x1802002d0]
call fcn.180163894
mov r11, qword [rbp - 0x20]
mov rcx, qword [rsi]
mov rax, qword [0x180200348]
mov r10, qword [rcx + rax*8]
movsxd rax, edi
lea rcx, [rax*8 + 3]
add rcx, rax
lea r9, [r11 + rcx*8]
mov r8, qword [rbx + r11 + 0x10]
mov rdx, qword [rbx + r11 + 8]
mov rcx, rsi
call r10
test al, al
jne 0x180101360
mov r8, qword [rbp - 0x18]
mov r11, qword [rbp - 0x20]
movabs r9, 0xe38e38e38e38e39
inc edi
add rbx, 0x48
mov rcx, r8
sub rcx, r11
mov rax, r9
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, edi
cmp rax, rdx
jb 0x180101213
test r14, r14
je 0x180101307
mov rcx, r14
call qword [0x180200260]
mov r11, qword [rbp - 0x20]
movabs r9, 0xe38e38e38e38e39
test r11, r11
je 0x18010181c
mov rcx, qword [rbp - 0x10]
sub rcx, r11
mov rax, r9
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*8]
shl rdx, 3
mov rax, r11
cmp rdx, 0x1000
jb 0x180101358
add rdx, 0x27
mov r11, qword [r11 - 8]
sub rax, r11
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801018a6
mov rcx, r11
jmp 0x180101817
mov edi, dword [0x1801fbf50]
mov rbx, qword gs:[0x58]
test r14, r14
jne 0x1801014a5
mov rax, qword [rbx + rdi*8]
mov ecx, reloc.WS2_32.dll_recv
mov ecx, dword [rcx + rax]
cmp dword [0x180200480], ecx
jle 0x1801013cb
lea rcx, [0x180200480]
call fcn.180163900
cmp dword [0x180200480], 0xffffffff
jne 0x1801013cb
mov rax, qword [0x1801fcce8]
xor r9d, r9d
lea r8, str._Script_Engine.PlayerController
xor edx, edx
xor ecx, ecx
call rax
mov qword [0x180200498], rax
lea rcx, [0x180200480]
call fcn.180163894
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x180101403
mov rcx, qword [0x180200498]
mov rdx, qword [0x1801fcc68]
cmp rcx, rax
je 0x1801013f2
mov rax, qword [rax + rdx]
test rax, rax
jne 0x1801013e2
jmp 0x180101403
mov rcx, r12
call fcn.1800a9da0
cmp rsi, qword [rax]
jne 0x1801017bc
test r15b, r15b
je 0x180101529
cmp dword [0x1801fcd2c], 0x1a6
jl 0x18010146b
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
mov dword [rbp + 8], 6
mov dword [rbp + 0xc], 6
lea rax, str.Actor
mov qword [rbp], rax
lea rdx, [rbp]
lea rcx, [rbp + 0x38]
call fcn.1800fe0e0
mov r9d, 0xffffffff
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x38]
mov rcx, r12
call qword [0x180200270]
mov r14, rax
xor eax, eax
mov qword [rbp], rax
mov qword [rbp + 8], rax
jmp 0x180101484
mov r9d, 0xffffffff
mov r8b, 1
lea edx, [r9 + 3]
mov rcx, r12
call qword [0x180200300]
mov r14, rax
test r14, r14
je 0x1801017bc
mov rdx, rsi
mov rcx, r14
cmp dword [0x1801fcd2c], 0x1f4
jl 0x18010151b
call qword [0x1802002b0]
mov rcx, r14
call qword [0x180200298]
test rax, rax
je 0x1801017bc
comisd xmm11, xmmword [0x1801fcc88]
jbe 0x1801017bc
mov rcx, qword [rsp + 0x30]
call fcn.1800fb880
movaps xmm7, xmm0
mov rcx, rsi
call fcn.180057af0
movaps xmm6, xmm9
divss xmm6, dword [rax]
movss dword [rbp + 0x18], xmm6
mov rcx, rsi
call fcn.180057bb0
movaps xmm1, xmm9
divss xmm1, dword [rax]
comiss xmm1, xmm6
jbe 0x18010175b
mov rcx, rsi
call fcn.180057bb0
movaps xmm3, xmm9
divss xmm3, dword [rax]
movss dword [rbp - 8], xmm3
jmp 0x180101763
xor r8d, r8d
call qword [0x1802002c8]
jmp 0x1801014a5
mov rcx, rsi
call fcn.180057af0
comiss xmm9, dword [rax]
jbe 0x1801017bc
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x13f4], 0xffffffff
mov dword [rbp + 0x74], eax
mov edx, 1
nop dword [rax]
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 + 0x74], eax
inc rdx
cmp rdx, 0x270
jb 0x180101560
mov edx, 0x270
mov dword [rbp + 0x70], edx
movaps xmm1, xmm8
movaps xmm2, xmm12
mov r10d, 2
cmp edx, 0x270
jne 0x1801015f1
lea r8, [rbp + 0x78]
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 0x1801015b0
mov edx, dword [rbp + 0x70]
jmp 0x1801016cb
cmp edx, 0x4e0
jb 0x1801016cb
xor r8d, r8d
mov eax, dword [rbp + r8*4 + 0xa34]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0xa38]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 + 0x1068]
shr edx, 1
xor ecx, edx
mov dword [rbp + r8*4 + 0x74], ecx
inc r8
cmp r8, 0xe3
jb 0x180101600
mov r8d, 0xe3
nop dword [rax]
mov eax, dword [rbp + r8*4 + 0xa34]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0xa38]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [rbp + r8*4 - 0x318]
mov dword [rbp + r8*4 + 0x74], ecx
inc r8
cmp r8, 0x26f
jb 0x180101650
mov edx, dword [rbp + 0x13f0]
and edx, 0x80000000
mov eax, dword [rbp + 0x74]
btr eax, 0x1f
or edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [rbp + 0x6a4]
mov dword [rbp + 0xa30], ecx
xor edx, edx
mov dword [rbp + 0x70], edx
mov eax, edx
mov ecx, dword [rbp + rax*4 + 0x74]
inc edx
mov dword [rbp + 0x70], edx
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x13f4]
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 0x180101595
divsd xmm1, xmm2
addsd xmm1, xmm8
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm1
call fcn.1800fef30
mov rcx, rax
call fcn.1800fb880
mulss xmm6, xmm13
addss xmm0, xmm6
cvtss2sd xmm0, xmm0
mov rax, qword [r13]
movsd qword [rax + 0x10], xmm0
jmp 0x1801017bc
movss dword [rbp - 8], xmm6
movaps xmm3, xmm6
xorps xmm2, xmm2
cvtss2sd xmm2, xmm7
mov r8, qword [r13]
movaps xmm0, xmm2
subsd xmm0, qword [r8 + 0x18]
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm14
movss dword [rbp], xmm1
comiss xmm6, xmm1
seta al
lea rdx, [rbp + 0x18]
lea rcx, [rbp]
test al, al
cmove rdx, rcx
comiss xmm1, xmm3
seta al
lea rcx, [rbp - 8]
test al, al
cmove rcx, rdx
movss xmm0, dword [rcx]
movss dword [r8 + 0x20], xmm0
mov rax, qword [r13]
movsd qword [rax + 0x18], xmm2
mov r8, qword [rbp - 0x20]
test r8, r8
je 0x18010181c
mov rcx, qword [rbp - 0x10]
movabs rax, 0xe38e38e38e38e39
sub rcx, r8
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*8]
shl rdx, 3
mov rax, r8
cmp rdx, 0x1000
jb 0x180101814
mov r8, qword [r8 - 8]
sub rax, r8
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801018ad
mov rcx, r8
call fcn.1801637e0
mov r15, qword [rsp + 0x20]
add r13, 8
cmp r13, qword [rsp + 0x38]
mov edi, dword [0x1801fbf50]
jne 0x180101060
mov rsi, qword [rbp + 0x10]
mov r14, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x28]
mov rbx, qword [rsp + 0x48]
inc r13d
mov dword [rsp + 0x28], r13d
inc rsi
mov qword [rbp + 0x10], rsi
mov rcx, r15
call fcn.1800830a0
cmp r13d, dword [rax + 8]
jl 0x180100f96
mov rcx, qword [rbp + 0x20]
test rcx, rcx
je 0x1801018b9
mov rdx, qword [rbp + 0x30]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801018b4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1801018b4
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
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.1801637e0
xor eax, eax
mov rcx, qword [rbp + 0x1400]
xor rcx, rsp
call fcn.1801636f0
lea r11, [rsp + 0x15a0]
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.180066fa0
nop
int3