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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
mov eax, 0x1450
call fcn.7ff7c3b41b60
sub rsp, rax
movaps xmmword [rsp + 0x1440], xmm6
movaps xmmword [rsp + 0x1430], xmm7
mov rax, qword [0x7ff7c3bb6500]
xor rax, rsp
mov qword [rsp + 0x1420], rax
mov rdi, rcx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x20], 0
movups xmm0, xmmword [0x7ff7c3b998a0]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [0x7ff7c3b998b0]
movups xmmword [rsp + 0x50], xmm1
movups xmm0, xmmword [0x7ff7c3b998c0]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [0x7ff7c3b998d0]
movups xmmword [rsp + 0x70], xmm1
movsd xmm0, qword [0x7ff7c3b998e0]
movsd qword [rsp + 0x80], xmm0
movzx eax, word [0x7ff7c3b998e8]
mov word [rsp + 0x88], ax
movzx eax, byte [0x7ff7c3b998ea]
mov byte [rsp + 0x8a], al
movsxd rdx, edx
mov r8b, 0x20
call fcn.7ff7c3ad9960
mov ebx, 1
mov dword [rsp + 0x20], ebx
call fcn.7ff7c3b208a8
mov ecx, eax
mov dword [rsp + 0x1414], 0xffffffff
mov dword [rsp + 0x94], eax
nop dword [rax + rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, ebx
mov dword [rsp + rbx*4 + 0x94], ecx
inc rbx
cmp rbx, 0x270
jb 0x7ff7c3ad40f0
mov dword [rsp + 0x90], 0x270
mov rcx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x7ff7c3ad412f
mov rcx, qword [rdi]
mov rdx, rcx
jmp 0x7ff7c3ad4132
mov rdx, rdi
mov rbx, rcx
mov rsi, qword [rdi + 0x10]
add rsi, rdx
cmp rcx, rsi
je 0x7ff7c3ad4339
mov r14d, 0x80000000
mov ebp, dword [0x7ff7c3bb6558]
movdqa xmm5, xmmword [0x7ff7c3b9a350]
movdqa xmm4, xmmword [0x7ff7c3b9a390]
movdqa xmm6, xmmword [0x7ff7c3b9a330]
movdqa xmm3, xmmword [0x7ff7c3b9a3c0]
movdqa xmm7, xmmword [0x7ff7c3b9a2c0]
nop dword [rax]
cmp byte [rsp + 0x8a], 0
je 0x7ff7c3ad42de
xor ecx, ecx
cmp ebp, 2
jl 0x7ff7c3ad429c
movdqa xmmword [rsp + 0x30], xmm4
lea rdx, [rsp + 0x44]
mov r8d, dword [rsp + 0x30]
nop dword [rax]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx - 4]
xorps xmm2, xmm0
movd dword [rdx - 4], xmm2
lea eax, [rcx + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx]
xorps xmm2, xmm0
movd dword [rdx], xmm2
add ecx, 8
lea rdx, [rdx + 8]
cmp ecx, 0x48
jl 0x7ff7c3ad41b0
cmp ecx, 0x4b
jge 0x7ff7c3ad42de
movsxd rax, ecx
lea r8, [rsp + 0x40]
add r8, rax
nop word [rax + rax]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x33
movzx eax, cl
sub al, dl
add al, 0x39
xor byte [r8], al
inc ecx
lea r8, [r8 + 1]
cmp ecx, 0x4b
jl 0x7ff7c3ad42b0
lea rcx, [rsp + 0x90]
call fcn.7ff7c3adc360
mov ecx, eax
imul rcx, rcx, 0x4b
cmp ecx, 0x2d
ja 0x7ff7c3ad4318
nop word [rax + rax]
lea rcx, [rsp + 0x90]
call fcn.7ff7c3adc360
mov ecx, eax
imul rcx, rcx, 0x4b
cmp ecx, 0x2e
jb 0x7ff7c3ad4300
shr rcx, 0x20
sub rcx, r14
xor rcx, 0xffffffff80000000
movzx ecx, byte [rsp + rcx + 0x40]
mov byte [rbx], cl
inc rbx
cmp rbx, rsi
jne 0x7ff7c3ad4180
mov rax, rdi
mov rcx, qword [rsp + 0x1420]
xor rcx, rsp
call fcn.7ff7c3b40d30
lea r11, [rsp + 0x1450]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret