Function at 0x180009ef0
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x1a0
lea rbp, [rsp + 0x60]
mov qword [rbp + 0x180], rbx
mov rax, qword [0x1801d72c0]
xor rax, rbp
mov qword [rbp + 0x130], rax
mov r14d, r8d
mov rsi, rdx
mov rbx, rcx
xor edi, edi
mov qword [rbp + 0x10], rdi
test rdx, rdx
je 0x18000a4d5
mov eax, dword [0x18018db40]
cmp dword [rcx], eax
jne 0x180009f63
mov eax, dword [0x18018db44]
cmp dword [rcx + 4], eax
jne 0x180009f63
mov eax, dword [0x18018db48]
cmp dword [rcx + 8], eax
jne 0x180009f63
mov eax, dword [0x18018db4c]
cmp dword [rcx + 0xc], eax
je 0x18000a4d5
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
lea r9, [0x1801a1a68]
xor edx, edx
mov r8d, 1
lea rcx, [0x18018db60]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x18000a4d5
mov ecx, dword [rsi]
test ecx, ecx
je 0x180009ff9
nop word [rax + rax]
mov rax, qword [rsi + 8]
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x18], xmm0
lea r9, [rbp + 0x18]
mov r8d, 1
mov rdx, rbx
test r14d, r14d
je 0x180009fdb
cmp ecx, r8d
mov rcx, qword [rbp + 0x10]
mov rax, qword [rcx]
jne 0x180009fce
call qword [rax + 0x28]
jmp 0x180009fd1
call qword [rax + gethostname]
test eax, eax
js 0x18000a4d7
jmp 0x180009fef
cmp ecx, 1
mov rcx, qword [rbp + 0x10]
mov rax, qword [rcx]
jne 0x180009fec
call qword [rax + 0x30]
jmp 0x180009fef
call qword [rax + 0x40]
add rsi, 0x10
mov ecx, dword [rsi]
test ecx, ecx
jne 0x180009fa0
test r14d, r14d
jne 0x18000a4d9
mov r8d, 0x40
lea rdx, [rbp + 0xb0]
mov rcx, rbx
call qword [sym.imp.ole32.dll_StringFromGUID2]
test eax, eax
jne 0x18000a026
mov eax, reloc.WS2_32.dll_listen
jmp 0x18000a4d7
mov rbx, rdi
lea rcx, [rbp + 0xb0]
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], bx
jne 0x18000a037
inc eax
cdqe
lea r15, [rax + rax]
mov eax, 0x80000000
add rax, r15
mov ecx, 0xffffffff
cmp rax, rcx
ja 0x18000a4d9
movsxd rsi, r15d
cmp r15d, 0x400
jg 0x18000a09c
mov rcx, rsi
call fcn.180006370
test al, al
je 0x18000a09c
lea rax, [rsi + 0xf]
cmp rax, rsi
ja 0x18000a089
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.1801533d0
sub rsp, rax
lea r14, [rsp + 0x60]
jmp 0x18000a0c9
mov rax, rsi
not rax
cmp rax, 0x10
jb 0x18000a51b
lea rcx, [rsi + 0x10]
call fcn.180169f60
test rax, rax
jne 0x18000a0bf
mov r14, rdi
jmp 0x18000a0c9
mov qword [rax], rdi
mov rbx, rax
lea r14, [rax + 0x10]
test r14, r14
je 0x18000a107
mov byte [r14], dil
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r14
mov r9d, 0xffffffff
lea r8, [rbp + 0xb0]
xor edx, edx
mov ecx, 3
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
cmove r14, rdi
jmp 0x18000a10a
mov r14, rdi
test r14, r14
je 0x18000a4be
lea r8, str.CLSID_
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.1801685e0
test eax, eax
je 0x18000a150
cmp eax, 0xc
je 0x18000a510
cmp eax, 0x16
je 0x18000a531
cmp eax, 0x22
je 0x18000a531
cmp eax, 0x50
jne 0x18000a526
mov r8, r14
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.180169140
test eax, eax
je 0x18000a189
cmp eax, 0xc
je 0x18000a510
cmp eax, 0x16
je 0x18000a531
cmp eax, 0x22
je 0x18000a531
cmp eax, 0x50
jne 0x18000a526
lea r8, str.Required_Categories
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.180169140
test eax, eax
je 0x18000a1c6
cmp eax, 0xc
je 0x18000a510
cmp eax, 0x16
je 0x18000a531
cmp eax, 0x22
je 0x18000a531
cmp eax, 0x50
jne 0x18000a526
mov dword [rbp + 8], edi
mov qword [rbp], rdi
lea rax, [rbp]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, [rbp + 0x30]
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov rsi, rdi
test eax, eax
cmove rsi, qword [rbp]
mov ecx, edi
cmovne ecx, eax
test ecx, ecx
jne 0x18000a2d6
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
lea rax, [rbp + 8]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
mov r15d, eax
test rsi, rsi
je 0x18000a258
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, rdi
test r15d, r15d
jne 0x18000a2d6
cmp dword [rbp + 8], r15d
jne 0x18000a2d6
cmp byte [0x1801e4948], r15b
jne 0x18000a2ae
lea rcx, str.Advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x18000a29e
lea rdx, str.RegDeleteKeyExA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801e4950], rax
mov byte [0x1801e4948], 1
jmp 0x18000a2b5
mov rax, qword [0x1801e4950]
mov byte [0x1801e4948], 1
jmp 0x18000a2b5
mov rax, qword [0x1801e4950]
lea rdx, [rbp + 0x30]
mov rcx, 0xffffffff80000000
test rax, rax
je 0x18000a2cf
xor r9d, r9d
xor r8d, r8d
call rax
jmp 0x18000a2d6
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
nop
lea r8, str.CLSID_
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.1801685e0
test eax, eax
je 0x18000a313
cmp eax, 0xc
je 0x18000a510
cmp eax, 0x16
je 0x18000a531
cmp eax, 0x22
je 0x18000a531
cmp eax, 0x50
jne 0x18000a526
mov r8, r14
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.180169140
test eax, eax
je 0x18000a34c
cmp eax, 0xc
je 0x18000a510
cmp eax, 0x16
je 0x18000a531
cmp eax, 0x22
je 0x18000a531
cmp eax, 0x50
jne 0x18000a526
lea r8, str.Implemented_Categories
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.180169140
test eax, eax
je 0x18000a389
cmp eax, 0xc
je 0x18000a510
cmp eax, 0x16
je 0x18000a531
cmp eax, 0x22
je 0x18000a531
cmp eax, 0x50
jne 0x18000a526
mov qword [rbp], rdi
lea rax, [rbp]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, [rbp + 0x30]
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x18000a3c8
mov eax, edi
test rsi, rsi
je 0x18000a3c4
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, qword [rbp]
test eax, eax
jne 0x18000a4a3
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
lea rax, [rbp + 8]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
mov r14d, eax
test rsi, rsi
je 0x18000a421
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, rdi
test r14d, r14d
jne 0x18000a4b1
cmp dword [rbp + 8], r14d
jne 0x18000a4a3
cmp byte [0x1801e4948], r14b
jne 0x18000a47b
lea rcx, str.Advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x18000a46b
lea rdx, str.RegDeleteKeyExA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801e4950], rax
mov byte [0x1801e4948], 1
jmp 0x18000a482
mov rax, qword [0x1801e4950]
mov byte [0x1801e4948], 1
jmp 0x18000a482
mov rax, qword [0x1801e4950]
lea rdx, [rbp + 0x30]
mov rcx, 0xffffffff80000000
test rax, rax
je 0x18000a49c
xor r9d, r9d
xor r8d, r8d
call rax
jmp 0x18000a4a3
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
nop
test rsi, rsi
je 0x18000a4b1
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test rbx, rbx
je 0x18000a4d9
mov rcx, rbx
mov rbx, qword [rbx]
call fcn.18015f318
test rbx, rbx
jne 0x18000a4c3
jmp 0x18000a4d9
mov eax, edi
mov edi, eax
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x18000a4e9
mov rdx, qword [rcx]
call qword [rdx + reloc.WS2_32.dll_recv]
nop
mov eax, edi
mov rcx, qword [rbp + 0x130]
xor rcx, rbp
call fcn.1801525e0
mov rbx, qword [rbp + 0x180]
lea rsp, [rbp + 0x140]
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x8007000e
call fcn.180001860
int3
mov ecx, 0x80070216
call fcn.180001860
int3
mov ecx, 0x80004005
call fcn.180001860
int3
mov ecx, 0x80070057
call fcn.180001860
int3