Function at 0x140002750
Capabilities:
Allocate or change rwx memory
Check for software breakpoints
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
lea rbp, [rsp - 0x1350]
mov eax, 0x1450
call fcn.14015c020
sub rsp, rax
mov rax, qword [0x140538240]
xor rax, rsp
mov qword [rbp + 0x1340], rax
mov r12, rcx
lea r15, [rcx + 8]
mov r8, r15
mov edx, dword [rcx]
mov ecx, dword [rcx + 4]
call fcn.14001c910
test eax, eax
jne 0x140002abc
mov dword [rbp - 0x58], eax
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 0x1400027cb
imul rax, rax, 0x64
jmp 0x1400027e6
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
mov dword [rbp + 0x1334], 0xffffffff
mov dword [rbp - 0x4c], eax
mov edx, 1
nop dword [rax + rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [rbp + rdx*4 - 0x4c], ecx
inc rdx
cmp rdx, 0x270
jb 0x140002800
mov dword [rbp - 0x50], 0x270
mov rbx, qword [r12 + 0x18]
mov qword [rsp + 0x38], rbx
mov r14, qword [r12 + 0x20]
mov qword [rsp + 0x58], r14
cmp rbx, r14
je 0x140002a6a
nop dword [rax]
nop word [rax + rax]
mov rsi, qword [rbx]
mov qword [rsp + 0x50], rsi
mov edi, dword [rsi + 0xc]
add rdi, qword [r12 + 0x10]
mov qword [rsp + 0x48], rdi
mov edx, dword [rsi + 0x10]
lea r9, [rbp - 0x58]
mov r8d, 0x40
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x140002a9c
mov r8d, dword [rsi + 0x10]
lea rax, [rbp - 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r8
mov r9, rdi
mov rdx, rdi
mov rcx, qword [r15]
call fcn.14001d0c0
mov r8, rax
mov qword [rsp + 0x40], rax
xor r13d, r13d
test rax, rax
je 0x140002a32
xor eax, eax
mov qword [rsp + 0x30], rax
nop
mov rdx, qword [rbp - 0x60]
mov ecx, dword [rdx + rax]
sub ecx, 0xde
cmp ecx, 1
ja 0x140002a02
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x78], xmm1
xor r15d, r15d
mov qword [rbp - 0x68], r15
mov rsi, qword [rdx + rax + 8]
mov qword [rsp + 0x78], rsi
mov dword [rbp - 0x7c], r13d
mov edi, 1
mov dword [rbp - 0x80], edi
movzx r14d, dil
mov rbx, qword [rbp - 0x70]
nop dword [rax + rax]
movzx eax, byte [rsi]
cmp al, 0xcc
je 0x140002923
cmp al, 0xf1
je 0x140002923
xor r14b, r14b
jmp 0x1400029b5
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rcx
mov byte [rsp + 0x60], al
mov byte [rsp + 0x61], 0xff
mov byte [rsp + 0x62], al
mov qword [rsp + 0x68], rsi
lea rcx, [rbp - 0x50]
call fcn.140016be0
mov ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
cmp edx, 0x55555555
jae 0x140002944
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [rdx + rdx*2]
sub ecx, eax
mov byte [rsp + 0x70], cl
cmp rbx, r15
je 0x140002994
movups xmm0, xmmword [rsp + 0x60]
movups xmmword [rbx], xmm0
movsd xmm1, qword [rsp + 0x70]
movsd qword [rbx + 0x10], xmm1
add rbx, 0x18
mov qword [rbp - 0x70], rbx
jmp 0x1400029b0
lea r8, [rsp + 0x60]
mov rdx, rbx
lea rcx, [rbp - 0x78]
call fcn.140016980
mov r15, qword [rbp - 0x68]
mov rbx, qword [rbp - 0x70]
mov edi, dword [rbp - 0x80]
inc edi
mov dword [rbp - 0x80], edi
inc rsi
test r14b, r14b
jne 0x140002910
cmp edi, 1
jbe 0x1400029ef
lea rcx, [r12 + 0x48]
mov rdx, qword [r12 + 0x50]
lea r8, [rsp + 0x78]
cmp rdx, qword [r12 + 0x58]
je 0x1400029e9
call fcn.140016da0
add qword [r12 + 0x50], 0x28
jmp 0x1400029ef
call fcn.1400165e0
nop
lea rcx, [rbp - 0x78]
call fcn.140014ff0
mov rax, qword [rsp + 0x30]
mov r8, qword [rsp + 0x40]
inc r13
add rax, 0xf0
mov qword [rsp + 0x30], rax
cmp r13, r8
jb 0x1400028c0
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
lea r15, [r12 + 8]
mov rdx, r8
mov rcx, qword [rbp - 0x60]
call fcn.14001d880
mov edx, dword [rsi + 0x10]
lea r9, [rbp - 0x58]
mov r8d, 0x20
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x140002aa0
add rbx, 0x20
mov qword [rsp + 0x38], rbx
cmp rbx, r14
jne 0x140002850
mov al, 1
mov rcx, qword [rbp + 0x1340]
xor rcx, rsp
call fcn.14015af10
lea r11, [rsp + 0x1450]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
xor al, al
jmp 0x140002a6c
lea rcx, [rsp + 0x60]
call fcn.1400021e0
lea rdx, [0x1403abde0]
lea rcx, [rsp + 0x60]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rsp + 0x60]
call fcn.1400021e0
lea rdx, [0x1403abde0]
lea rcx, [rsp + 0x60]
call sub.VCRUNTIME140.dll__CxxThrowException
int3