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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x60
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm7
mov rsi, rcx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
mov rbx, qword [0x1801e1bb8]
test rbx, rbx
jne 0x1800761fd
mov ecx, 0xa0
call fcn.180083828
mov rbx, rax
mov qword [rsp + 0x38], rax
xor edx, edx
mov r8d, 0xa0
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
lea rdx, [0x1801deec0]
mov rcx, rbx
call fcn.180071950
mov rbx, rax
mov qword [0x1801e1bb8], rax
cmp qword [0x1801e1bc0], 0
jne 0x180076247
mov ecx, 0xa0
call fcn.180083828
mov rbx, rax
mov qword [rsp + 0x38], rax
xor edx, edx
mov r8d, 0xa0
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
lea rdx, [0x1801deeb0]
mov rcx, rbx
call fcn.180071950
nop
mov qword [0x1801e1bc0], rax
mov rbx, qword [0x1801e1bb8]
mov ecx, dword [0x1801e1374]
mov rax, qword gs:[0x58]
mov ebp, 4
mov rdi, qword [rax + rcx*8]
mov eax, dword [rdi + rbp]
cmp dword [0x1801e1ed4], eax
jle 0x180076292
lea rcx, [0x1801e1ed4]
call fcn.180084044
cmp dword [0x1801e1ed4], 0xffffffff
jne 0x18007628b
lea rcx, [0x1801e1ed4]
call fcn.180083fe4
mov rbx, qword [0x1801e1bb8]
mov eax, dword [rdi + rbp]
cmp dword [0x1801e3278], eax
jle 0x18007631d
lea rcx, [0x1801e3278]
call fcn.180084044
cmp dword [0x1801e3278], 0xffffffff
jne 0x180076316
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [0x1801e3274], 0xffffffff
mov dword [0x1801e1ef4], eax
mov r8d, 1
lea r9, [0x1801e1ef4]
nop dword [rax]
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, r8d
mov dword [r9 + r8*4], eax
inc r8
cmp r8, 0x270
jb 0x1800762e0
mov dword [0x1801e1ef0], 0x270
lea rcx, [0x1801e3278]
call fcn.180083fe4
mov rbx, qword [0x1801e1bb8]
xorps xmm6, xmm6
xorps xmm2, xmm2
movsd xmm7, qword [0x1801c5f98]
movaps xmm1, xmm7
mov edi, 2
movsd xmm3, qword [0x1801c6060]
nop dword [rax + rax]
call fcn.180076af0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm6
mulsd xmm0, xmm1
addsd xmm2, xmm0
mulsd xmm1, xmm3
sub rdi, 1
jne 0x180076340
divsd xmm2, xmm1
addsd xmm2, xmm6
movsd xmm0, qword [0x1801c5f30]
movabs rdi, 0x2aaaaaaaaaaaaaab
movabs rbp, 0x3ff0000000000000
movabs r14, 0x3fd3333333333333
movabs r15, 0x3ffb39abf3387161
comisd xmm0, xmm2
jbe 0x18007646e
movaps xmm1, xmmword [0x1801c64d0]
movups xmmword [rsp + 0x28], xmm1
mov rax, qword [rbx + 0x50]
movups xmm0, xmmword [rsp + 0x20]
movsd xmm0, xmm6
movups xmmword [rsp + 0x20], xmm0
movups xmmword [rax], xmm0
unpckhpd xmm1, xmm1
movsd qword [rax + 0x10], xmm1
movaps xmm2, xmmword [0x1801c61b0]
movups xmmword [rsp + 0x28], xmm2
mov r8, qword [rbx + 0x50]
mov rcx, qword [rbx + 0x58]
sub rcx, r8
mov rax, rdi
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rax, [rdx + rdx*2]
movups xmm0, xmmword [rsp + 0x20]
movsd xmm0, xmm7
movups xmmword [rsp + 0x20], xmm0
movups xmmword [r8 + rax*8 - 0x18], xmm0
unpckhpd xmm2, xmm2
movsd qword [r8 + rax*8 - 8], xmm2
mov dword [rbx + 0x38], 0x40800000
mov dword [rbx + 0xc], 1
mov dword [rbx + 0x18], 0x28
mov qword [rbx + 0x20], rbp
mov qword [rbx + 0x30], r14
mov qword [rbx + 0x28], r15
mov rcx, rbx
call fcn.180070850
mov rbx, qword [rsi + 0x80]
sub rbx, qword [rsi + 0x78]
sar rbx, 5
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
cdqe
xor edx, edx
div rbx
shl rdx, 5
add rdx, qword [rsi + 0x78]
jmp 0x1800764a2
cmp dword [rbx + 8], 0
je 0x180076490
xor eax, eax
mov dword [rbx + 8], eax
mov dword [rbx + 0x10], eax
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x20]
nop word [rax + rax]
movaps xmm0, xmmword [0x1801c64d0]
movups xmmword [0x1801deec0], xmm0
lea rdx, [rsi + 0x38]
lea rcx, [rsi + 0x58]
cmp rcx, rdx
je 0x1800764be
cmp qword [rdx + 0x18], 0x10
mov r8, qword [rdx + 0x10]
jb 0x1800764b9
mov rdx, qword [rdx]
call fcn.180006780
movaps xmm1, xmmword [0x1801c61b0]
movups xmmword [rsp + 0x28], xmm1
mov r9, qword [0x1801e1bc0]
mov rcx, qword [r9 + 0x50]
movups xmm0, xmmword [rsp + 0x20]
movsd xmm0, xmm6
movups xmmword [rsp + 0x20], xmm0
movups xmmword [rcx], xmm0
unpckhpd xmm1, xmm1
movsd qword [rcx + 0x10], xmm1
movaps xmm2, xmmword [0x1801c64d0]
movups xmmword [rsp + 0x28], xmm2
mov r8, qword [r9 + 0x50]
mov rcx, qword [r9 + 0x58]
sub rcx, r8
mov rax, rdi
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rax, [rdx + rdx*2]
movups xmm0, xmmword [rsp + 0x20]
movsd xmm0, xmm7
movups xmmword [r8 + rax*8 - 0x18], xmm0
unpckhpd xmm2, xmm2
movsd qword [r8 + rax*8 - 8], xmm2
mov dword [r9 + 0x38], 0x3e99999a
mov dword [r9 + 0x18], 9
mov qword [r9 + 0x20], rbp
mov qword [r9 + 0x30], r14
mov qword [r9 + 0x28], r15
mov rcx, r9
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x40]
mov rsp, r11
pop r15
pop r14
pop rdi
jmp fcn.180070850