Function at 0x1400552c0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x48], 0xfffffffffffffffe
mov qword [rsp + 0xc0], rbx
mov r14, rcx
lea r12, vtable.CUtlXProperty.0
mov qword [rbp - 0x28], r12
lea rcx, [rbp - 0x20]
call qword [sym.imp.SetupXML.dll_public:_void___cdecl_CXMLFileManagerInterface::constructor_void____ptr64]
lea r13, vtable.CUtlX.0
mov qword [rbp - 0x20], r13
mov edx, 2
lea rcx, [rbp - 0x20]
call qword [sym.imp.SetupXML.dll_public:_void___cdecl_CXMLFileManagerInterface::SetFileIndex_enum_XMLFILENAMES____ptr64]
nop
lea r8, str.ICA.LogOptions
lea rdx, [rbp + 0x58]
lea rcx, [rbp - 0x28]
call fcn.140053520
nop
mov rax, qword [rbp + 0x58]
movzx ecx, word [rax]
xor r15d, r15d
cmp cx, word [0x140296e0c]
jne 0x140055346
mov ecx, r15d
jmp 0x14005534b
sbb ecx, ecx
or ecx, 1
test ecx, ecx
jne 0x140055542
call fcn.140069614
mov rdx, rax
mov ecx, r15d
test rax, rax
setne cl
test ecx, ecx
jne 0x140055373
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], r15
mov dword [rbp - 0x30], r15d
xor r8d, r8d
lea rdx, [0x140296e0c]
lea rcx, [rbp - 0x40]
call fcn.140011b80
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x1400553af
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x38], r15
mov dword [rbp - 0x30], r15d
lea rdx, str.LMSOFTWAREPoliciesMicrosoftWindowsInstaller
lea rcx, [rbp - 0x40]
call fcn.140067990
lea rcx, [rbp - 0x38]
mov qword [rsp + 0x20], rcx
mov r9d, 0x20019
xor r8d, r8d
mov rdx, qword [rbp - 0x40]
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [rbp - 0x30], eax
test eax, eax
jne 0x14005550f
lea r8, str.Logging
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x40]
call fcn.140067740
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x58]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005545c
cmp dword [rbx + 0x10], 0
jl 0x14005544e
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005544e
call fcn.1400116e0
mov rsi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x140055444
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rsi + 0x18]
mov qword [rbp + 0x58], rax
jmp 0x14005545c
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x58]
call fcn.140011b80
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140055474
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbp + 0x58]
movzx ecx, word [rax]
cmp cx, word [0x140296e0c]
jne 0x140055489
mov eax, r15d
jmp 0x14005548e
sbb eax, eax
or eax, 1
test eax, eax
je 0x1400554f3
mov dword [rbp + 0x48], r15d
mov dword [rbp + 0x50], 4
lea rax, [rbp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x48]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.debug
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [rbp - 0x30], eax
test eax, eax
jne 0x1400554df
cmp dword [rbp + 0x48], 1
jne 0x1400554df
lea edx, [rax + 0x78]
lea rcx, [rbp + 0x58]
call fcn.14001e7f0
mov r8, qword [rbp + 0x58]
lea rdx, str.ICA.LogOptions
lea rcx, [rbp - 0x28]
call fcn.1400536a0
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x140055502
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, r15
mov qword [rbp - 0x38], rcx
mov dword [rbp - 0x30], r15d
jmp 0x140055513
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14005551e
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x38], r15
mov dword [rbp - 0x30], r15d
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14005553e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbp + 0x58]
lea rsi, [r14 + 8]
lea rcx, [rax - 0x18]
mov rbx, qword [rsi]
sub rbx, 0x18
cmp rcx, rbx
je 0x14005559c
cmp dword [rbx + 0x10], 0
jl 0x140055589
mov rdx, qword [rbx]
cmp qword [rcx], rdx
jne 0x140055589
call fcn.1400116e0
mov r14, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x140055580
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [r14 + 0x18]
mov qword [rsi], rax
jmp 0x140055598
mov r8d, dword [rax - 0x10]
mov rdx, rax
mov rcx, rsi
call fcn.140011b80
mov rax, qword [rbp + 0x58]
lea rdx, [rax - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400555b1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], r13
lea rcx, [rbp - 0x20]
call qword [sym.imp.SetupXML.dll_public_virtual:_void___cdecl_CXMLFileManagerInterface::destructor_void____ptr64]
mov rbx, qword [rsp + 0xc0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret