Function at 0x1400551b0
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.140053410
nop
mov rax, qword [rbp + 0x58]
movzx ecx, word [rax]
xor r15d, r15d
cmp cx, word [0x140296e0c]
jne 0x140055236
mov ecx, r15d
jmp 0x14005523b
sbb ecx, ecx
or ecx, 1
test ecx, ecx
jne 0x140055432
call fcn.1400694ec
mov rdx, rax
mov ecx, r15d
test rax, rax
setne cl
test ecx, ecx
jne 0x140055263
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 0x14005529f
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.140067880
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 0x1400553ff
lea r8, str.Logging
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x40]
call fcn.140067630
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x58]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005534c
cmp dword [rbx + 0x10], 0
jl 0x14005533e
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005533e
call fcn.1400116e0
mov rsi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x140055334
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 0x14005534c
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 0x140055364
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 0x140055379
mov eax, r15d
jmp 0x14005537e
sbb eax, eax
or eax, 1
test eax, eax
je 0x1400553e3
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 0x1400553cf
cmp dword [rbp + 0x48], 1
jne 0x1400553cf
lea edx, [rax + 0x78]
lea rcx, [rbp + 0x58]
call fcn.14001e6e0
mov r8, qword [rbp + 0x58]
lea rdx, str.ICA.LogOptions
lea rcx, [rbp - 0x28]
call fcn.140053590
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x1400553f2
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, r15
mov qword [rbp - 0x38], rcx
mov dword [rbp - 0x30], r15d
jmp 0x140055403
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14005540e
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 0x14005542e
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 0x14005548c
cmp dword [rbx + 0x10], 0
jl 0x140055479
mov rdx, qword [rbx]
cmp qword [rcx], rdx
jne 0x140055479
call fcn.1400116e0
mov r14, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x140055470
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 0x140055488
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 0x1400554a1
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