Function at 0x1400178a8
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
mov byte [rax + 0x20], r9b
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov qword [rbp + 0x17], 0xfffffffffffffffe
mov r14, r8
mov rdi, rdx
mov rsi, rcx
mov al, byte [0x14018cd84]
neg al
sbb rbx, rbx
add rbx, 0xffffffff80000002
lea rcx, [0x1401849a8]
mov rax, qword [0x1401849a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x21], rax
xor r15d, r15d
mov qword [rbp - 0x39], r15
mov dword [rbp - 0x31], r15d
mov qword [rbp - 0x29], r15
lea rdx, [0x14011dd40]
lea rcx, [rbp - 9]
call fcn.1400029e4
nop
mov r8, rax
lea rdx, [rbp - 0x21]
lea rcx, [rbp + 0xf]
call fcn.14000cfa0
nop
lea r8, [0x14018cfa8]
mov rdx, rax
lea rcx, [rbp - 1]
call fcn.14000cfa0
nop
lea r8, [0x14011dcd0]
mov rdx, rax
lea rcx, [rbp - 0x11]
call fcn.140016a58
nop
mov r8, rsi
mov rdx, rax
lea rcx, [rbp + 7]
call fcn.14000cfa0
nop
mov r9d, 0x20019
mov r8, qword [rax]
mov rdx, rbx
lea rcx, [rbp - 0x39]
call fcn.140017618
test eax, eax
setne bl
mov rdx, qword [rbp + 7]
add rdx, 0xffffffffffffffe8
or r12d, 0xffffffff
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1400179b0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x11]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1400179d1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 1]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1400179f2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0xf]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140017a13
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 9]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140017a33
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140017a94
mov rcx, qword [rbp - 0x39]
test rcx, rcx
je 0x140017a4a
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x39], r15
mov dword [rbp - 0x31], r15d
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140017a6f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140017a8f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140017bf1
mov dword [rbp + 0x7f], r15d
mov dword [rbp - 0x15], 4
lea rax, [rbp - 0x15]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x7f]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x19]
xor r8d, r8d
mov rdx, qword [rdi]
mov rbx, qword [rbp - 0x39]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140017b81
cmp dword [rbp - 0x19], 4
jne 0x140017b81
mov eax, r15d
test eax, eax
jne 0x140017b81
test rbx, rbx
je 0x140017afa
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rbx, r15
mov qword [rbp - 0x39], rbx
mov dword [rbp - 0x31], r15d
mov eax, dword [rbp + 0x7f]
mov dword [r14], eax
test rbx, rbx
je 0x140017b16
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x39], r15
mov dword [rbp - 0x31], r15d
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140017b3b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140017b5b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rdi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140017b7a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov al, 1
jmp 0x140017c12
test rbx, rbx
je 0x140017b96
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rbx, r15
mov qword [rbp - 0x39], rbx
mov dword [rbp - 0x31], r15d
test rbx, rbx
je 0x140017bac
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x39], r15
mov dword [rbp - 0x31], r15d
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140017bd1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140017bf1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rdi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140017c10
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor al, al
add rsp, 0x90
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret