Function at 0x1400a65a0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rsi
push rdi
push r14
lea rbp, [rsp - 0x5e8]
sub rsp, 0x6e8
mov rax, qword [0x1401222f0]
xor rax, rsp
mov qword [rbp + 0x5d0], rax
mov rdi, r8
mov r14, rdx
mov rsi, rcx
test rcx, rcx
je 0x1400a69f8
test rdx, rdx
je 0x1400a69f8
test r8, r8
je 0x1400a69f8
mov qword [rsp + 0x6e0], rbx
xor ebx, ebx
lea rcx, [rbp - 0x68]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0x58], ebx
mov qword [rsp + 0x70], rbx
call qword [sym.imp.OLEAUT32.dll_VariantClear]
lea rcx, [rbp - 0x80]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
mov rax, qword [rsi]
lea r9, [rbp - 0x68]
lea rdx, str.namespace
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call qword [rax + 0x20]
test eax, eax
je 0x1400a6647
mov ebx, eax
jmp 0x1400a697b
mov rax, qword [rsi]
lea r9, [rbp - 0x80]
lea rdx, str.provider
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call qword [rax + 0x20]
test eax, eax
je 0x1400a6673
mov ebx, eax
jmp 0x1400a697b
cmp word [rbp - 0x80], 8
jne 0x1400a6976
cmp word [rbp - 0x68], 8
jne 0x1400a6976
cmp qword [rbp - 0x78], rbx
je 0x1400a6976
mov rdx, qword [rbp - 0x60]
test rdx, rdx
je 0x1400a6976
mov rax, qword [r14]
lea rcx, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
xor r8d, r8d
mov rcx, r14
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
test eax, eax
jns 0x1400a66d7
mov ebx, eax
jmp 0x1400a697b
movaps xmm0, xmmword [str.select__from___win32provider_where_Name__]
movaps xmm1, xmmword [0x1400f0770]
movzx eax, word [0x1400f07b8]
lea rcx, [rbp + 0x2a]
xor edx, edx
mov r8d, 0x1a4
mov word [rbp + 0x28], ax
movaps xmmword [rbp - 0x30], xmm0
movaps xmm0, xmmword [0x1400f0780]
movaps xmmword [rbp - 0x20], xmm1
movaps xmm1, xmmword [0x1400f0790]
movaps xmmword [rbp - 0x10], xmm0
movaps xmm0, xmmword [0x1400f07a0]
movaps xmmword [rbp], xmm1
movaps xmmword [rbp + 0x10], xmm0
movsd xmm1, qword [0x1400f07b0]
movsd qword [rbp + 0x20], xmm1
call fcn.1400a8b00
mov r8, qword [rbp - 0x78]
lea rcx, [rbp - 0x30]
mov edx, 0xff
call fcn.1400abdb0
test eax, eax
jne 0x1400a6976
lea r8, [0x1400f07bc]
lea rcx, [rbp - 0x30]
mov edx, 0xff
call fcn.1400abdb0
test eax, eax
jne 0x1400a6976
mov rcx, qword [rsp + 0x70]
lea rdx, [rsp + 0x60]
lea r8, [rbp - 0x30]
mov rax, qword [rcx]
mov qword [rsp + 0x28], rdx
lea rdx, [0x1400d9aa0]
mov r9d, gethostbyaddr
mov qword [rsp + 0x20], rbx
call qword [rax + 0xa0]
test eax, eax
je 0x1400a67a7
mov ebx, eax
jmp 0x1400a697b
mov rcx, qword [rsp + 0x60]
lea rdx, [rsp + 0x58]
lea r9, [rsp + 0x50]
mov rax, qword [rcx]
mov qword [rsp + 0x20], rdx
mov r8d, 1
or edx, 0xffffffff
call qword [rax + 0x20]
test eax, eax
je 0x1400a67d5
mov ebx, eax
jmp 0x1400a697b
lea rcx, [rbp - 0x50]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x50]
lea r9, [rbp - 0x50]
mov rax, qword [rcx]
lea rdx, [0x1400f07c0]
xor r8d, r8d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call qword [rax + 0x20]
test eax, eax
je 0x1400a680d
mov ebx, eax
jmp 0x1400a697b
cmp word [rbp - 0x50], 8
jne 0x1400a697b
mov rsi, qword [rbp - 0x48]
test rsi, rsi
je 0x1400a697b
movups xmm0, xmmword [str.SOFTWAREClassesCLSID_]
movups xmm1, xmmword [0x1400f07e0]
lea rcx, [rbp + 0x200]
xor edx, edx
mov r8d, 0x1ce
movaps xmmword [rbp + 0x1d0], xmm0
movaps xmmword [rbp + 0x1e0], xmm1
movups xmm0, xmmword [0x1400f07f0]
movaps xmmword [rbp + 0x1f0], xmm0
call fcn.1400a8b00
lea rcx, [rbp + 0x1d0]
mov r8, rsi
mov edx, 0xff
call fcn.1400abdb0
test eax, eax
jne 0x1400a6976
lea r8, [0x1400d2970]
lea rcx, [rbp + 0x1d0]
mov edx, 0xff
call fcn.1400abdb0
test eax, eax
jne 0x1400a6976
lea rax, [rsp + 0x78]
lea rdx, [rbp + 0x1d0]
mov r9d, 0x20119
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400a6976
lea rcx, [rbp + 0x3d0]
xor edx, edx
mov r8d, 0x1fe
call fcn.1400a8b00
mov rcx, qword [rsp + 0x78]
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x3d0]
lea rdx, [0x1400d1428]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x68], 0x1fe
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400a6976
mov rcx, qword [rbp - 0x78]
call fcn.1400a5e70
mov qword [rdi], rax
test rax, rax
jne 0x1400a6934
mov ebx, 0x8007000e
jmp 0x1400a697b
mov rcx, qword [rbp - 0x60]
call fcn.1400a5e70
mov qword [rdi + 8], rax
test rax, rax
jne 0x1400a694d
mov ebx, 0x8007000e
jmp 0x1400a697b
lea rcx, [rbp + 0x3d0]
call fcn.1400a5e70
mov qword [rdi + 0x10], rax
test rax, rax
jne 0x1400a6969
mov ebx, 0x8007000e
jmp 0x1400a697b
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1400a697b
mov ebx, 0x8000ffff
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400a698b
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x1400a699b
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400a69ab
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
lea rcx, [rbp - 0x68]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
lea rcx, [rbp - 0x80]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test ebx, ebx
je 0x1400a69ec
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400a69d0
call fcn.1400a82b0
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400a69de
call fcn.1400a82b0
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x1400a69ec
call fcn.1400a82b0
invalid