Function at 0x1400c2b10
Capabilities:
Query or enumerate registry value

Disassembly:
mov r11, rsp
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x70
mov qword [rsp + 0x58], 0xfffffffffffffffe
xor r13d, r13d
mov dword [r11 + 0x18], r13d
lea rax, [r11 - 0x70]
mov qword [r11 + 0x10], rax
call fcn.140129a50
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400c2b59
mov ecx, 0x80004005
call fcn.140002d80
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea r14, str.NotifyChanges
mov r12, r14
or rsi, 0xffffffffffffffff
shr r12, 0x10
jne 0x1400c2ba1
movzx edi, r14w
mov ecx, edi
call fcn.140138984
test rax, rax
je 0x1400c2bc1
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140004d70
jmp 0x1400c2bc1
xor eax, eax
mov rcx, rsi
mov rdi, r14
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r14
lea rcx, [rsp + 0x38]
call fcn.1400032e0
nop
lea rax, [rsp + 0x38]
mov qword [rsp + 0x60], rax
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x1400c2bf4
cmp rax, qword [rdi - 0x18]
jne 0x1400c2bf4
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x1400c2c32
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x1400c2c10
call fcn.1400b7790
int3
mov eax, dword [rdi - 0x10]
mov dword [rbx + 8], eax
mov eax, dword [rdi - 0x10]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [rbx + 0x18]
call fcn.1401448d0
add rbx, 0x18
mov qword [rsp + 0x68], rbx
mov dword [rsp + 0xb8], r13d
mov qword [rsp + 0x48], r13
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, str.SOFTWARELenovoAudioIntegrated
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400c2d2c
mov rdi, qword [rsp + 0x48]
mov dword [rsp + 0xc8], 4
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x30]
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400c2cfe
cmp dword [rsp + 0x30], 4
jne 0x1400c2cfe
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0xc0], eax
test rdi, rdi
je 0x1400c2cdc
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400c2cf7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edi, 1
jmp 0x1400c2d4a
test rdi, rdi
je 0x1400c2d0c
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400c2d27
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edi, r13d
jmp 0x1400c2d4a
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400c2d47
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edi, r13d
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400c2d6a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test edi, edi
je 0x1400c2d7d
cmp dword [rsp + 0xc0], 0
je 0x1400c2d7d
mov ebp, r13d
jmp 0x1400c2d82
mov ebp, 1
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
call fcn.140129a50
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400c2dac
mov ecx, 0x80004005
call fcn.140002d80
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
test r12, r12
jne 0x1400c2de5
movzx edi, r14w
mov ecx, edi
call fcn.140138984
test rax, rax
je 0x1400c2e05
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140004d70
jmp 0x1400c2e05
xor eax, eax
mov rcx, rsi
mov rdi, r14
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r14
lea rcx, [rsp + 0x40]
call fcn.1400032e0
nop
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov rdi, qword [rsp + 0x40]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x1400c2e38
cmp rax, qword [rdi - 0x18]
jne 0x1400c2e38
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x1400c2e76
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x1400c2e54
call fcn.1400b7790
int3
mov eax, dword [rdi - 0x10]
mov dword [rbx + 8], eax
mov eax, dword [rdi - 0x10]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [rbx + 0x18]
call fcn.1401448d0
lea rax, [rbx + 0x18]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x20], r13d
mov r9d, ebp
lea r8, [rsp + 0x50]
lea rdx, str.SOFTWARELenovoAudioIntegrated
mov rcx, 0xffffffff80000002
call fcn.1400da4d0
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x1400c2ebe
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 1
add rsp, 0x70
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret