Function at 0x14003f7f0
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
mov eax, 0x13a0
call fcn.14006efc0
sub rsp, rax
mov rax, qword [0x1400a6fc0]
xor rax, rsp
mov qword [rsp + 0x1390], rax
movsxd r8, edx
movabs rax, 0x5555555555555555
mov dword [rcx + 0x400], edx
mov r11, rcx
mov qword [rsp + 0x1388], rax
mov edx, 1
mov qword [rsp + 8], r8
movabs rcx, 0x5851f42d4c957f2d
mov rax, r8
shr rax, 0x3e
xor r8, rax
imul r8, rcx
add r8, rdx
mov qword [rsp + rdx*8 + 8], r8
inc rdx
cmp rdx, 0x138
jb 0x14003f851
movdqa xmm2, xmmword [0x14009ae60]
mov r9d, 0x138
movdqa xmm3, xmmword [0x14009aec0]
xor edx, edx
mov dword [rsp], r9d
mov ecx, 8
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx - 8]
movd xmm0, eax
lea rdx, [rdx + 0x10]
pshufd xmm0, xmm0, 0
lea eax, [rcx - 4]
paddd xmm0, xmm2
movd xmm1, eax
pshufd xmm1, xmm1, 0
lea eax, [rcx + 4]
paddd xmm1, xmm2
andps xmm0, xmm3
andps xmm1, xmm3
packuswb xmm0, xmm0
packuswb xmm1, xmm1
packuswb xmm0, xmm0
movd dword [r11 + rdx - 0x10], xmm0
packuswb xmm1, xmm1
movd dword [r11 + rdx - 0xc], xmm1
movd xmm0, ecx
add ecx, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
movd xmm1, eax
pshufd xmm1, xmm1, 0
andps xmm0, xmm3
paddd xmm1, xmm2
packuswb xmm0, xmm0
andps xmm1, xmm3
packuswb xmm0, xmm0
movd dword [r11 + rdx - 8], xmm0
lea eax, [rcx - 8]
packuswb xmm1, xmm1
packuswb xmm1, xmm1
movd dword [r11 + rdx - 4], xmm1
cmp eax, 0x100
jl 0x14003f8a0
xor ebx, ebx
mov r10, r11
mov edi, 0x100
movabs rsi, 0xb5026f5aa96619e9
movabs rbp, 0x38eb3ffff6d3
nop dword [rax + rax]
cmp r9d, 0x138
jne 0x14003f9bc
lea rax, [rsp + 0x10]
mov r9d, 0x138
mov r8, qword [rax]
xor r8, qword [rax - 8]
lea rax, [rax + 8]
and r8, 0xffffffff80000000
xor r8, qword [rax - 8]
movzx ecx, r8b
and cl, 1
neg cl
sbb rdx, rdx
shr r8, 1
and rdx, rsi
xor rdx, qword [rax + 0x4d0]
xor rdx, r8
mov qword [rax + 0x9b0], rdx
sub r9, 1
jne 0x14003f974
mov r9d, dword [rsp]
jmp 0x14003faae
cmp r9d, 0x270
jb 0x14003faae
xor r8d, r8d
nop dword [rax]
mov rax, qword [rsp + r8*8 + 0x9d0]
mov rdx, rax
xor rdx, qword [rsp + r8*8 + 0x9c8]
and rdx, 0xffffffff80000000
xor rdx, rax
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
shr rdx, 1
and rcx, rsi
xor rcx, qword [rsp + r8*8 + 0xea8]
xor rcx, rdx
mov qword [rsp + r8*8 + 8], rcx
inc r8
cmp r8, 0x9c
jb 0x14003f9d0
mov r8d, 0x9c
nop
mov rax, qword [rsp + r8*8 + 0x9d0]
mov rdx, rax
xor rdx, qword [rsp + r8*8 + 0x9c8]
and rdx, 0xffffffff80000000
xor rdx, rax
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
shr rdx, 1
and rcx, rsi
xor rcx, qword [rsp + r8*8 - 0x4d8]
xor rcx, rdx
mov qword [rsp + r8*8 + 8], rcx
inc r8
cmp r8, 0x137
jb 0x14003fa20
mov rax, qword [rsp + 8]
mov rdx, qword [rsp + 0x1380]
btr eax, 0x1f
and rdx, 0xffffffff80000000
or rdx, rax
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
shr rdx, 1
and rcx, rsi
xor rcx, rdx
xor rcx, qword [rsp + 0x4e0]
xor r9d, r9d
mov qword [rsp + 0x9c0], rcx
mov dword [rsp], r9d
movzx r8d, byte [r10]
xor edx, edx
mov eax, r9d
inc r9d
mov rcx, qword [rsp + rax*8 + 8]
mov rax, rcx
mov dword [rsp], r9d
shr rax, 0x1d
and rax, qword [rsp + 0x1388]
xor rcx, rax
mov rax, rcx
and rax, rbp
shl rax, 0x11
xor rcx, rax
mov rax, rcx
and rax, 0xffffffffffffbf77
shl rax, 0x25
xor rcx, rax
mov rax, rcx
shr rax, 0x2b
xor rax, rcx
movsxd rcx, edi
div rcx
dec edi
add edx, ebx
inc ebx
movsxd rcx, edx
movzx eax, byte [rcx + r11]
mov byte [r10], al
mov byte [r10 + 0x100], al
mov eax, 0xaaaaaaab
mov byte [rcx + r11], r8b
movzx ecx, byte [r10]
mul ecx
shr edx, 3
lea eax, [rdx + rdx*2]
shl eax, 2
sub ecx, eax
mov byte [r10 + 0x300], cl
mov byte [r10 + 0x200], cl
inc r10
mov rax, r10
sub rax, r11
cmp rax, 0x100
jl 0x14003f960
mov rcx, qword [rsp + 0x1390]
xor rcx, rsp
call fcn.14006dfd0
lea r11, [rsp + 0x13a0]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret