Function at 0x7ff7e14c5580
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
mov qword [rsp + 8], rcx
push rbp
push r14
push r15
mov eax, 0x14b0
call fcn.7ff7e15671f0
sub rsp, rax
lea rbp, [rsp + 0x40]
and rbp, 0xffffffffffffffe0
mov r14, rdx
mov rbx, rcx
xor esi, esi
mov dword [rbp + 8], esi
movabs rax, 0xd5f89422cacd5454
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
movabs rax, 0x52f079a38b3227ef
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x48], rax
movabs rax, 0x78e4c0e0527584e6
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x50], rax
movabs rax, 0x398b1b8f68343861
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x58], rax
movabs rax, 0x10acbe486de0811e
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x60], rax
movabs rax, 0x7afbc62943a6cee5
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x68], rax
movabs rax, 0xcbcca891db2ac34c
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x70], rax
movabs rcx, 0xe902e758c126529c
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0x78], rax
movabs rax, 0x9dbfd2678e8e1615
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
movabs rax, 0x2bf37eec7796da6
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
movabs rax, 0x20b396b50626d6b7
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
movabs rax, 0x5fee7fec0a556238
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb8], rax
movabs rax, 0x7ec1d2230789e979
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc0], rax
movabs rax, 0xc8eb25a31d7be8a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc8], rax
movabs rax, 0xcbcca891a153bb3b
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xd0], rax
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0xd8], rax
vmovdqu ymm0, ymmword [rbp + 0x40]
vpxor ymm1, ymm0, ymmword [rbp + 0xa0]
vmovdqa ymmword [rbp + 0x40], ymm1
vmovdqu ymm0, ymmword [rbp + 0x60]
vpxor ymm1, ymm0, ymmword [rbp + 0xc0]
vmovdqa ymmword [rbp + 0x60], ymm1
mov qword [rbp + 0x10], rsi
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x28], 0xf
mov byte [rbp + 0x10], sil
lea rax, [rbp + 0x40]
mov r8, 0xffffffffffffffff
vzeroupper
nop
inc r8
cmp byte [rax + r8], sil
jne 0x7ff7e14c5770
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x10]
call fcn.7ff7e14c5e30
nop
call sub.msvcp140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rbp + 0x1464], 0xffffffff
mov dword [rbp + 0xe4], eax
mov ecx, 1
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
mov dword [rbp + rcx*4 + 0xe4], eax
inc rcx
cmp rcx, 0x270
jb 0x7ff7e14c57a1
mov dword [rbp + 0xe0], 0x270
mov edi, dword [rbp + 0x20]
dec edi
mov qword [rbx], rsi
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov dword [rbp + 8], 1
mov r15, qword [rbp + 0x28]
mov rsi, qword [rbp + 0x10]
test r14, r14
je 0x7ff7e14c5896
nop dword [rax]
lea rax, [rbp + 0xe0]
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], 0x20
mov dword [rbp + 0x90], 0xffffffff
lea rcx, [rbp + 0x80]
cmp edi, 0xffffffff
jne 0x7ff7e14c5836
call fcn.7ff7e14c5b50
jmp 0x7ff7e14c583e
lea edx, [rdi + 1]
call fcn.7ff7e14c3c80
lea rcx, [rbp + 0x10]
cmp r15, 0x10
cmovae rcx, rsi
cdqe
movzx r9d, byte [rax + rcx]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x7ff7e14c587d
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0x10
jb 0x7ff7e14c5872
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x7ff7e14c588c
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, rbx
call fcn.7ff7e14c3340
sub r14, 1
jne 0x7ff7e14c5800
cmp r15, 0x10
jb 0x7ff7e14c58d0
lea rdx, [r15 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x7ff7e14c58c8
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7e14c58c8
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rsi
call fcn.7ff7e1566ce4
mov rax, rbx
lea r11, [rsp + 0x14b0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret