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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1478]
mov eax, 0x1550
call fcn.14000e370
sub rsp, rax
mov r14, r9
mov r15, r8
mov r12, rdx
mov rsi, rcx
call fcn.140004198
xorps xmm0, xmm0
movsxd rdx, eax
xor r13d, r13d
mov qword [rsp + 0x38], 0xf
movups xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x20]
mov byte [rsp + 0x20], r13b
mov qword [rsp + 0x30], r13
call fcn.140007dbc
cmp qword [rsp + 0x38], 0xf
lea rbx, [rsp + 0x20]
mov rdi, qword [rsp + 0x30]
cmova rbx, qword [rsp + 0x20]
call fcn.14000bc70
or dword [rbp + 0x1444], 0xffffffff
lea edx, [r13 + 1]
mov dword [rbp + 0xc4], eax
mov r8d, 0x270
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0xc4], eax
inc rdx
cmp rdx, r8
jb 0x140004fae
mov dword [rbp + 0xc0], r8d
add rdi, rbx
mov dword [rbp + 0x1488], r13d
mov dword [rbp + 0x148c], 0x3d
jmp 0x14000500d
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0x1488]
call fcn.1400088f8
cdqe
lea rcx, [0x140013e00]
mov al, byte [rax + rcx]
mov byte [rbx], al
inc rbx
cmp rbx, rdi
jne 0x140004fe9
mov edi, 0xf
lea rax, [rsp + 0x20]
cmp qword [rsp + 0x38], rdi
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x60]
cmova rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x48], rax
call fcn.14000adc4
mov rdx, r12
lea rcx, [rsp + 0x60]
call fcn.140007c40
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x60]
call fcn.140001f68
lea rcx, [rbp - 0x60]
call fcn.140007b48
lea r12, [0x1400180c8]
mov dword [rsp + 0x50], r13d
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x58], r12
lea rcx, [rsp + 0x60]
call fcn.140002c78
cmp qword [rsp + 0x78], 7
lea rcx, [rsp + 0x60]
lea r8d, [rdi - 0xc]
mov dword [rsp + 0x40], r13d
cmova rcx, qword [rsp + 0x60]
lea rdx, [rbp - 0x60]
or r9d, 0xffffffff
call fcn.14000b3a8
lea r8, [rbp - 0x60]
mov edx, eax
lea rcx, [rsp + 0x40]
call fcn.140002aa8
mov ecx, dword [rsp + 0x40]
test ecx, ecx
je 0x140005179
cmp ecx, 1
setne al
test al, al
je 0x140005179
lea rdx, [rbp - 0x60]
mov rcx, rsi
call fcn.140002490
lea rdx, [rsp + 0x60]
mov rbx, rax
lea rcx, [rbp - 0x80]
call fcn.140007c40
mov rdx, rbx
lea rcx, [rbp - 0x80]
call fcn.140001f68
lea rcx, [rbp - 0x60]
call fcn.140007b48
lea rax, [0x140013f00]
mov qword [rsp + 0x48], 4
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x40], rax
lea rcx, [rbp - 0x60]
call fcn.14000adc4
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x80]
call fcn.1400021b8
lea rcx, [rbp - 0x60]
call fcn.140007b48
cmp byte [0x140019190], r13b
je 0x140005156
lea rcx, [rbp - 0x80]
call fcn.140005b64
mov r9, r14
lea rdx, [rbp - 0x80]
mov r8, r15
mov rcx, rsi
call fcn.140004d5c
test eax, eax
jne 0x140005211
lea rcx, [rbp - 0x80]
call fcn.140007b48
lea rcx, [rsp + 0x60]
call fcn.140007b48
mov rdx, qword [rsp + 0x38]
cmp rdx, rdi
jbe 0x1400051bf
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400051ba
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140005386
call fcn.14000bfec
mov rbx, qword [rbp + 0x14a0]
mov byte [rsp + 0x20], r13b
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], r13
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x1400051ee
mov rax, qword [rcx]
cmp rcx, rbx
setne dl
call qword [rax + 0x20]
mov qword [rbx + 0x38], r13
xor al, al
lea r11, [rsp + 0x1550]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
cmp byte [0x140019190], r13b
je 0x140005223
lea rcx, [rbp - 0x80]
call fcn.140005dc4
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x60]
call fcn.140002490
lea rdx, [rbp - 0x20]
mov rcx, rax
call fcn.14000230c
lea rcx, [rbp - 0x60]
call fcn.140007b48
lea rdx, [rbp]
lea rcx, [rsp + 0x60]
call fcn.14000230c
mov rbx, qword [rbp + 0x14a0]
mov byte [rbp + 0x20], r13b
mov qword [rbp + 0x70], r13
mov qword [rbp + 0xb0], r13
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x140005291
mov qword [rbp - 0x28], r13
lea rdx, [rbp - 0x60]
mov rax, qword [rcx]
call qword [rax]
lea rdx, [rbp - 0x60]
mov qword [rbp - 0x28], rax
lea rcx, [rbp - 0x20]
call fcn.140004528
lea rcx, [rbp - 0x20]
call fcn.1400046bc
mov ecx, 0x3e8
mov dil, al
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp qword [rsp + 0x78], 7
lea rcx, [rsp + 0x60]
cmova rcx, qword [rsp + 0x60]
call fcn.14000b7d4
movzx ecx, al
shr rax, 0x20
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x58], r12
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
mov qword [rbp + 0x1488], rcx
cmp eax, 0x91
jne 0x1400052fd
lea r8, [rbp + 0x1488]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x60]
call fcn.140002f6c
lea rcx, [rbp - 0x20]
call fcn.14000538c
lea rcx, [rbp - 0x80]
call fcn.140007b48
lea rcx, [rsp + 0x60]
call fcn.140007b48
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x140005352
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000534d
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140005386
call fcn.14000bfec
mov rcx, qword [rbx + 0x38]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], r13b
test rcx, rcx
je 0x14000537e
mov rax, qword [rcx]
cmp rcx, rbx
setne dl
call qword [rax + 0x20]
mov qword [rbx + 0x38], r13
mov al, dil
jmp 0x1400051f0
call fcn.14000ce90
int3