Function at 0x140003ce8
Capabilities:
Allocate or change rwx memory
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x1308]
mov eax, 0x13f0
call fcn.1401dce70
sub rsp, rax
mov rax, qword [0x1405eaab8]
xor rax, rsp
mov qword [rbp + 0x12e0], rax
xor r15d, r15d
mov r14, rcx
mov dword [rsp + 0x48], r15d
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x140003d4a
imul rax, rax, 0x64
jmp 0x140003d68
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
or r8d, 0xffffffff
mov dword [rsp + 0x54], eax
mov dword [rbp + 0x12d4], r8d
mov edx, 1
mov r9d, 0x270
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x54], eax
inc rdx
cmp rdx, r9
jb 0x140003d82
mov rdi, qword [r14 + 0x10]
mov edx, 0x108
mov dword [rsp + 0x50], r9d
lea r9, [rsp + 0x48]
mov dword [rsp + 0x44], r8d
mov r8d, 4
mov dword [rsp + 0x38], 0xffff0000
movsxd rsi, dword [rdi + 0x3c]
add rsi, rdi
mov dword [rsp + 0x40], r15d
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x14000409b
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 0x16], ax
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 4], ax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0x10], eax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0xc], eax
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 6], ax
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 0x14], ax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 8], eax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0x28], eax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0x2c], eax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0x58], eax
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 0x5e], ax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rcx, [rsp + 0x50]
mov dword [rsi + 0x3c], eax
call fcn.14000f014
mov ebx, eax
lea rcx, [rsp + 0x50]
shl rbx, 0x20
call fcn.14000f014
mov eax, eax
lea rcx, [rsp + 0x50]
or rbx, rax
mov qword [rsi + 0x30], rbx
call fcn.14000f014
mov ebx, eax
lea rcx, [rsp + 0x50]
shl rbx, 0x20
call fcn.14000f014
mov eax, eax
lea rcx, [rsp + 0x50]
or rbx, rax
mov qword [rsi + 0x78], rbx
call fcn.14000f014
mov ebx, eax
lea rcx, [rsp + 0x50]
shl rbx, 0x20
call fcn.14000f014
mov eax, eax
lea rdx, [rsp + 0x50]
or rbx, rax
lea rcx, [rsp + 0x40]
mov qword [rsi + 0x70], rbx
call fcn.14000c644
mov dword [rsi + 0x80], eax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 0x44], ax
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 0x46], ax
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov byte [rsi + 0x1a], al
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov byte [rsi + 0x1b], al
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 0x40], ax
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 0x42], ax
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 0x48], ax
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 0x4a], ax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0x84], eax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0x38], eax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0x1c], eax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0x54], eax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0x50], eax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0x20], eax
lea rcx, [rsp + 0x40]
call fcn.14000c644
lea rdx, [rsp + 0x50]
mov dword [rsi + 0x24], eax
lea rcx, [rsp + 0x38]
call fcn.14000c5b0
lea rdx, [rsp + 0x50]
mov word [rsi + 0x5c], ax
lea rcx, [rsp + 0x40]
call fcn.14000c644
mov dword [rsi + 0x4c], eax
lea r9, [rsp + 0x48]
movsxd rcx, dword [rdi + 0x3c]
mov edx, 0x108
add rcx, qword [r14 + 0x10]
mov r8d, 2
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x1400040c7
mov al, 1
mov rcx, qword [rbp + 0x12e0]
xor rcx, rsp
call fcn.1401dc200
lea r11, [rsp + 0x13f0]
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
lea rcx, [rsp + 0x20]
call fcn.140001534
lea rdx, [0x14045a9e8]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3