Function at 0x14000ec60
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
push rbp
push r12
push r13
push r14
push r15
mov eax, 0x15e0
call fcn.140014510
sub rsp, rax
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x1580], rax
mov rsi, rcx
lea rcx, [rbp + 0x20]
call fcn.14000e6b0
lea rcx, [rbp + 0x10]
call fcn.14000e6b0
mov qword [rbp + 0x88], 0xa
movabs rdi, 0xaea4bf05f42df80d
movabs r13, 0x8ced959020d35374
movabs r12, 0xe0bdfde44fbc3e27
movabs r15, 0xaea4da7d9103816c
xor r14d, r14d
nop word [rax + rax]
lea rcx, [rbp + 0x18]
call fcn.14000e6b0
mov rax, qword [rbp + 0x18]
mov rbx, rax
sub rbx, qword [rbp + 0x20]
mov rcx, rax
sub rcx, qword [rbp + 0x10]
movabs rdx, 0x2540be400
cmp rcx, rdx
jl 0x14000f164
mov qword [rbp + 0x10], rax
mov qword [rbp], r13
mov rax, qword [rbp]
mov qword [rbp + 0x30], rax
mov qword [rbp], rdi
mov rax, qword [rbp]
mov qword [rbp + 0x38], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x14e0], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x14e8], rax
movdqa xmm0, xmmword [rbp + 0x30]
xorps xmm0, xmmword [rbp + 0x14e0]
movdqa xmmword [rbp + 0x30], xmm0
xorps xmm0, xmm0
movups xmmword [rbp + 0xc0], xmm0
mov qword [rbp + 0xd0], r14
mov qword [rbp + 0xd8], r14
lea rax, [rbp + 0x30]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x14000ed90
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0xc0]
call fcn.1400012b0
mov r8b, 1
lea rdx, [rbp + 0xc0]
mov rcx, rsi
call fcn.140011720
test al, al
jne 0x14000ecf0
mov dword [rbp + 0x148], 4
movabs rax, 0xa3e190813bcf4774
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x100], rax
movabs rax, 0xc1e7ae13f471f319
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x108], rax
movabs rax, 0xf5a354fe011cffd7
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x110], rax
movabs rax, 0x8918e66d3f1d1daa
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x118], rax
movabs rax, 0xb68a883e8cc119a8
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x120], rax
movabs rcx, 0x20110441569b9d70
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0x128], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x1520], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x1528], rax
movabs rax, 0x81c607926e6e8bb9
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1530], rax
movabs rax, 0xec7b8f1b4d784ef6
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1538], rax
movabs rax, 0xb68abc08fcb245db
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1540], rax
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0x1548], rax
vmovdqu ymm0, ymmword [rbp + 0x100]
vpxor ymm1, ymm0, ymmword [rbp + 0x1520]
vmovdqa ymmword [rbp + 0x100], ymm1
vmovdqa xmm0, xmmword [rbp + 0x120]
vxorps xmm0, xmm0, xmmword [rbp + 0x1540]
vmovdqa xmmword [rbp + 0x120], xmm0
lea rax, [rbp + 0x140]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, [rbp + 0x100]
mov rcx, 0xffffffff80000002
vzeroupper
call qword [section..rdata]
test eax, eax
jne 0x14000efe6
movabs rax, 0xe0bd99813bd54642
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x50], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x58], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x14f0], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x14f8], rax
movdqa xmm0, xmmword [rbp + 0x50]
xorps xmm0, xmmword [rbp + 0x14f0]
movdqa xmmword [rbp + 0x50], xmm0
lea rax, [rbp + 0x148]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x14c]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x50]
mov rcx, qword [rbp + 0x140]
call qword [0x140016018]
mov rcx, qword [rbp + 0x140]
test eax, eax
je 0x14000efd3
call qword [0x140016010]
jmp 0x14000efe6
call qword [0x140016010]
cmp dword [rbp + 0x14c], 1
je 0x14000ecf0
mov rdi, qword [rsi + 0x10]
movabs rax, 0x92d29bc43dd94d72
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
movabs rax, 0xdad0b305f423e40f
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
movabs rax, 0x81c607926e6eefdc
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
movabs rcx, 0xec7b8f1b4d784ef6
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0xb8], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x1560], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x1568], rax
movabs rax, 0x81c607926e6e8bb9
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1570], rax
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0x1578], rax
vmovdqu ymm0, ymmword [rbp + 0xa0]
vpxor ymm1, ymm0, ymmword [rbp + 0x1560]
vmovdqa ymmword [rbp + 0xa0], ymm1
vxorps xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x78], r14
lea rax, [rbp + 0xa0]
mov r8, 0xffffffffffffffff
vzeroupper
nop
inc r8
cmp byte [rax + r8], 0
jne 0x14000f0d0
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x60]
call fcn.1400012b0
nop
mov dword [rbp + 8], 1
lea r8, [rbp + 0x60]
lea rdx, [rbp + 8]
mov rcx, rdi
call fcn.1400021f0
nop
mov rdx, qword [rbp + 0x78]
cmp rdx, 0xf
jbe 0x14000f13e
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000f139
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000f328
call fcn.140013324
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x78], 0xf
mov byte [rbp + 0x60], 0
mov rcx, rsi
call fcn.14000f330
mov rax, qword [rbp + 0x18]
movabs rdi, 0xaea4bf05f42df80d
mov ecx, 0xb2d05e00
cmp rbx, rcx
jl 0x14000f317
mov qword [rbp + 0x20], rax
mov qword [rbp], r13
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
mov qword [rbp], rdi
mov rax, qword [rbp]
mov qword [rbp + 0x48], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x1500], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x1508], rax
movdqa xmm0, xmmword [rbp + 0x40]
xorps xmm0, xmmword [rbp + 0x1500]
movdqa xmmword [rbp + 0x40], xmm0
xorps xmm0, xmm0
movups xmmword [rbp + 0xe0], xmm0
mov qword [rbp + 0xf0], r14
mov qword [rbp + 0xf8], r14
lea rax, [rbp + 0x40]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x14000f1e0
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0xe0]
call fcn.1400012b0
mov r8b, 1
lea rdx, [rbp + 0xe0]
mov rcx, rsi
call fcn.140011720
test al, al
je 0x14000ecf0
mov rcx, rsi
call fcn.14000f550
test al, al
je 0x14000f317
call qword [0x140016328]
mov dword [rbp + 0x14d4], 0xffffffff
mov dword [rbp + 0x154], eax
mov ecx, 1
nop
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
mov dword [rbp + rcx*4 + 0x154], eax
inc rcx
cmp rcx, 0x270
jb 0x14000f240
mov dword [rbp + 0x150], 0x270
lea rcx, [rbp + 0x150]
call fcn.140011f10
mov ecx, eax
imul rax, rcx, 0x3a99
cmp eax, 0x3d7
ja 0x14000f2ac
nop dword [rax + rax]
lea rcx, [rbp + 0x150]
call fcn.140011f10
mov ecx, eax
imul rax, rcx, 0x3a99
cmp eax, 0x3d8
jb 0x14000f290
shr rax, 0x20
add rax, 0x1388
mov qword [rbp + 0x80], rax
lea rcx, [rbp + 0x80]
call fcn.140011bd0
mov r8d, dword [rsi + 0x38]
xor edx, edx
lea ecx, [rdx + 1]
call qword [0x140016040]
mov rbx, rax
test rax, rax
je 0x14000f317
xor edx, edx
mov rcx, rax
call qword [0x140016060]
mov rcx, rbx
test eax, eax
jne 0x14000f309
call qword [0x140016080]
lea rcx, [rbp + 0x88]
call fcn.140011bd0
jmp 0x14000ecf0
call qword [0x140016080]
mov rcx, rsi
call fcn.14000f330
lea rcx, [rbp + 0x88]
call fcn.140011bd0
jmp 0x14000ecf0
call qword [0x1400165c0]
int3