Function at 0x18000a710
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 [0x180240300]
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 0x18000acf5
mov eax, dword [0x1801e5ca0]
cmp dword [rcx], eax
jne 0x18000a783
mov eax, dword [0x1801e5ca4]
cmp dword [rcx + 4], eax
jne 0x18000a783
mov eax, dword [0x1801e5ca8]
cmp dword [rcx + 8], eax
jne 0x18000a783
mov eax, dword [0x1801e5cac]
cmp dword [rcx + 0xc], eax
je 0x18000acf5
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
lea r9, [0x1801fd708]
xor edx, edx
mov r8d, 1
lea rcx, [0x1801e5cc0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x18000acf5
mov ecx, dword [rsi]
test ecx, ecx
je 0x18000a819
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 0x18000a7fb
cmp ecx, r8d
mov rcx, qword [rbp + 0x10]
mov rax, qword [rcx]
jne 0x18000a7ee
call qword [rax + 0x28]
jmp 0x18000a7f1
call qword [rax + gethostname]
test eax, eax
js 0x18000acf7
jmp 0x18000a80f
cmp ecx, 1
mov rcx, qword [rbp + 0x10]
mov rax, qword [rcx]
jne 0x18000a80c
call qword [rax + 0x30]
jmp 0x18000a80f
call qword [rax + 0x40]
add rsi, 0x10
mov ecx, dword [rsi]
test ecx, ecx
jne 0x18000a7c0
test r14d, r14d
jne 0x18000acf9
mov r8d, 0x40
lea rdx, [rbp + 0xb0]
mov rcx, rbx
call qword [sym.imp.ole32.dll_StringFromGUID2]
test eax, eax
jne 0x18000a846
mov eax, reloc.WS2_32.dll_listen
jmp 0x18000acf7
mov rbx, rdi
lea rcx, [rbp + 0xb0]
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], bx
jne 0x18000a857
inc eax
cdqe
lea r15, [rax + rax]
mov eax, 0x80000000
add rax, r15
mov ecx, 0xffffffff
cmp rax, rcx
ja 0x18000acf9
movsxd rsi, r15d
cmp r15d, 0x400
jg 0x18000a8bc
mov rcx, rsi
call fcn.180006b90
test al, al
je 0x18000a8bc
lea rax, [rsi + 0xf]
cmp rax, rsi
ja 0x18000a8a9
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.18017c370
sub rsp, rax
lea r14, [rsp + 0x60]
jmp 0x18000a8e9
mov rax, rsi
not rax
cmp rax, 0x10
jb 0x18000ad3b
lea rcx, [rsi + 0x10]
call fcn.1801be08c
test rax, rax
jne 0x18000a8df
mov r14, rdi
jmp 0x18000a8e9
mov qword [rax], rdi
mov rbx, rax
lea r14, [rax + 0x10]
test r14, r14
je 0x18000a927
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 0x18000a92a
mov r14, rdi
test r14, r14
je 0x18000acde
lea r8, str.CLSID_
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.1801bc600
test eax, eax
je 0x18000a970
cmp eax, 0xc
je 0x18000ad30
cmp eax, 0x16
je 0x18000ad51
cmp eax, 0x22
je 0x18000ad51
cmp eax, 0x50
jne 0x18000ad46
mov r8, r14
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.1801bd160
test eax, eax
je 0x18000a9a9
cmp eax, 0xc
je 0x18000ad30
cmp eax, 0x16
je 0x18000ad51
cmp eax, 0x22
je 0x18000ad51
cmp eax, 0x50
jne 0x18000ad46
lea r8, str.Required_Categories
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.1801bd160
test eax, eax
je 0x18000a9e6
cmp eax, 0xc
je 0x18000ad30
cmp eax, 0x16
je 0x18000ad51
cmp eax, 0x22
je 0x18000ad51
cmp eax, 0x50
jne 0x18000ad46
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 0x18000aaf6
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 0x18000aa78
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, rdi
test r15d, r15d
jne 0x18000aaf6
cmp dword [rbp + 8], r15d
jne 0x18000aaf6
cmp byte [0x180251c20], r15b
jne 0x18000aace
lea rcx, str.Advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x18000aabe
lea rdx, str.RegDeleteKeyExA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180251c28], rax
mov byte [0x180251c20], 1
jmp 0x18000aad5
mov rax, qword [0x180251c28]
mov byte [0x180251c20], 1
jmp 0x18000aad5
mov rax, qword [0x180251c28]
lea rdx, [rbp + 0x30]
mov rcx, 0xffffffff80000000
test rax, rax
je 0x18000aaef
xor r9d, r9d
xor r8d, r8d
call rax
jmp 0x18000aaf6
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
nop
lea r8, str.CLSID_
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.1801bc600
test eax, eax
je 0x18000ab33
cmp eax, 0xc
je 0x18000ad30
cmp eax, 0x16
je 0x18000ad51
cmp eax, 0x22
je 0x18000ad51
cmp eax, 0x50
jne 0x18000ad46
mov r8, r14
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.1801bd160
test eax, eax
je 0x18000ab6c
cmp eax, 0xc
je 0x18000ad30
cmp eax, 0x16
je 0x18000ad51
cmp eax, 0x22
je 0x18000ad51
cmp eax, 0x50
jne 0x18000ad46
lea r8, str.Implemented_Categories
mov edx, 0x80
lea rcx, [rbp + 0x30]
call fcn.1801bd160
test eax, eax
je 0x18000aba9
cmp eax, 0xc
je 0x18000ad30
cmp eax, 0x16
je 0x18000ad51
cmp eax, 0x22
je 0x18000ad51
cmp eax, 0x50
jne 0x18000ad46
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 0x18000abe8
mov eax, edi
test rsi, rsi
je 0x18000abe4
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, qword [rbp]
test eax, eax
jne 0x18000acc3
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 0x18000ac41
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, rdi
test r14d, r14d
jne 0x18000acd1
cmp dword [rbp + 8], r14d
jne 0x18000acc3
cmp byte [0x180251c20], r14b
jne 0x18000ac9b
lea rcx, str.Advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x18000ac8b
lea rdx, str.RegDeleteKeyExA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180251c28], rax
mov byte [0x180251c20], 1
jmp 0x18000aca2
mov rax, qword [0x180251c28]
mov byte [0x180251c20], 1
jmp 0x18000aca2
mov rax, qword [0x180251c28]
lea rdx, [rbp + 0x30]
mov rcx, 0xffffffff80000000
test rax, rax
je 0x18000acbc
xor r9d, r9d
xor r8d, r8d
call rax
jmp 0x18000acc3
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
nop
test rsi, rsi
je 0x18000acd1
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test rbx, rbx
je 0x18000acf9
mov rcx, rbx
mov rbx, qword [rbx]
call fcn.1801b20d8
test rbx, rbx
jne 0x18000ace3
jmp 0x18000acf9
mov eax, edi
mov edi, eax
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x18000ad09
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.18017b580
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.180001a70
int3
mov ecx, 0x80070216
call fcn.180001a70
int3
mov ecx, 0x80004005
call fcn.180001a70
int3
mov ecx, 0x80070057
call fcn.180001a70
int3