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

Disassembly:
push rbp
lea rbp, [rsp - 0x1390]
mov eax, 0x1490
call fcn.1800bf6e0
sub rsp, rax
movaps xmmword [rsp + 0x1480], xmm6
mov rax, qword [0x1800fd040]
xor rax, rsp
mov qword [rbp + 0x1310], rax
mov qword [rsp + 0x14a8], rdi
movaps xmmword [rsp + 0x1470], xmm7
movaps xmmword [rsp + 0x1460], xmm8
movaps xmm8, xmm1
movaps xmmword [rsp + 0x1450], xmm9
movaps xmmword [rsp + 0x1440], xmm10
movaps xmmword [rsp + 0x1430], xmm11
call fcn.180094d54
mov dword [rbp - 0x7c], eax
mov edx, 1
mov dword [rbp + 0x1304], 0xffffffff
nop
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 - 0x7c], eax
inc rdx
cmp rdx, 0x270
jb 0x180061660
movdqa xmm0, xmmword [0x1800e3f30]
xorps xmm7, xmm7
movss xmm1, dword [0x1800e36d8]
movups xmmword [rsp + 0x60], xmm0
mov dword [rbp - 0x80], 0x270
xorps xmm0, xmm0
movsd qword [rsp + 0x78], xmm7
ucomiss xmm0, xmm1
mov byte [rsp + 0x70], 0
ja 0x1800616ba
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x1800616c2
movaps xmm0, xmm1
call fcn.1800c4f34
subss xmm0, dword [0x1800e36c4]
movsd xmm10, qword [0x1800e3718]
xorps xmm1, xmm1
mulss xmm0, dword [0x1800e367c]
cvtss2sd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [rsp + 0x50], xmm1
xorps xmm0, xmmword [0x1800e3f70]
addsd xmm1, xmm1
movsd qword [rsp + 0x48], xmm0
xorps xmm0, xmm0
addsd xmm1, xmm10
ucomisd xmm0, xmm1
ja 0x180061710
sqrtpd xmm0, xmm1
jmp 0x180061718
movaps xmm0, xmm1
call fcn.1800c4e68
lea rax, [rsp + 0x60]
movsd qword [rsp + 0x58], xmm0
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
lea rax, [rbp - 0x80]
movaps xmm1, xmm8
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x40], rax
call fcn.180061a30
mov ecx, dword [0x18014ca50]
xorps xmm6, xmm6
mov rax, qword gs:[0x58]
mov edx, 4
cvtsd2ss xmm6, xmm0
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x180150c88], ecx
jle 0x1800617b1
lea rcx, [0x180150c88]
call fcn.180093138
cmp dword [0x180150c88], 0xffffffff
jne 0x1800617b1
lea rcx, [0x180150c88]
movss dword [0x180150ca0], xmm8
call fcn.1800930cc
movss xmm1, dword [0x180150ca0]
mov edi, 2
movsd xmm9, qword [0x1800e37d0]
movsd xmm11, qword [0x1800e36e0]
cvttss2si ecx, xmm1
cvttss2si eax, xmm6
cmp eax, ecx
jne 0x180061967
mov qword [rsp + 0x14a0], rbx
movaps xmmword [rsp + 0x1420], xmm12
movsd xmm12, qword [0x1800e3700]
nop word [rax + rax]
mov rax, qword [0x18014ad30]
cmp byte [rax + 0x1c], 0
jne 0x180061956
movaps xmm2, xmm7
movaps xmm3, xmm10
mov rbx, rdi
nop dword [rax + rax]
lea rcx, [rbp - 0x80]
call fcn.18005ead0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm3
mulsd xmm3, xmm9
addsd xmm2, xmm0
sub rbx, 1
jne 0x180061820
divsd xmm2, xmm3
addsd xmm2, xmm7
comisd xmm11, xmm2
ja 0x180061956
movaps xmm1, xmm8
lea rcx, [rsp + 0x20]
call fcn.180061a30
xorps xmm6, xmm6
movaps xmm1, xmm7
cvtsd2ss xmm6, xmm0
mov rbx, rdi
movaps xmm2, xmm10
nop dword [rax]
lea rcx, [rbp - 0x80]
call fcn.18005ead0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm9
addsd xmm1, xmm0
sub rbx, 1
jne 0x180061880
divsd xmm1, xmm2
cvttss2si ecx, xmm6
addsd xmm1, xmm7
comisd xmm12, xmm1
movss xmm1, dword [0x180150ca0]
cvttss2si eax, xmm1
jbe 0x180061908
cmp ecx, eax
jle 0x180061946
nop dword [rax]
mov rax, qword [0x18014ad30]
cmp byte [rax + 0x1c], 0
jne 0x180061946
movaps xmm1, xmm8
lea rcx, [rsp + 0x20]
call fcn.180061a30
movss xmm1, dword [0x180150ca0]
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm0
cvttss2si ecx, xmm1
cvttss2si eax, xmm6
cmp eax, ecx
jg 0x1800618d0
jmp 0x180061946
cmp ecx, eax
jge 0x180061946
nop dword [rax]
mov rax, qword [0x18014ad30]
cmp byte [rax + 0x1c], 0
jne 0x180061946
movaps xmm1, xmm8
lea rcx, [rsp + 0x20]
call fcn.180061a30
movss xmm1, dword [0x180150ca0]
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm0
cvttss2si ecx, xmm1
cvttss2si eax, xmm6
cmp eax, ecx
jl 0x180061910
cvttss2si ecx, xmm1
cvttss2si eax, xmm6
cmp eax, ecx
je 0x180061800
mov rbx, qword [rsp + 0x14a0]
movaps xmm12, xmmword [rsp + 0x1420]
movaps xmm8, xmmword [rsp + 0x1460]
movaps xmm2, xmm7
lea rcx, [rbp - 0x80]
call fcn.18005ead0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm10
mulsd xmm10, xmm9
addsd xmm2, xmm0
sub rdi, 1
jne 0x180061973
movaps xmm9, xmmword [rsp + 0x1450]
mov rdi, qword [rsp + 0x14a8]
divsd xmm2, xmm10
movaps xmm10, xmmword [rsp + 0x1440]
addsd xmm2, xmm7
movaps xmm7, xmmword [rsp + 0x1470]
comisd xmm11, xmm2
movaps xmm11, xmmword [rsp + 0x1430]
jbe 0x1800619e9
cmp byte [0x180150c08], 0
jne 0x1800619e9
movaps xmm6, xmm1
mov al, 1
jmp 0x1800619eb
xor al, al
movss xmm0, dword [0x1800e3830]
inc dword [0x180150c0c]
divss xmm0, xmm6
mov byte [0x180150c08], al
movss dword [0x180150ca0], xmm6
mov rcx, qword [rbp + 0x1310]
xor rcx, rsp
call fcn.180092d00
movaps xmm6, xmmword [rsp + 0x1480]
add rsp, 0x1490
pop rbp
ret