Function at 0x140003e60
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
mov qword [rbp - 1], 0xfffffffffffffffe
mov qword [rsp + 0xf0], rbx
mov rax, qword [0x1401f8ee0]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov rsi, rcx
mov rcx, qword [rdx]
sub rcx, 0x18
call fcn.1400033c0
lea rbx, [rax + 0x18]
mov qword [rbp - 0x21], rbx
xor r14d, r14d
mov dword [rbp + 0xf], r14d
mov dword [rbp + 0x13], 0xff
cmp dword [rbx - 0x10], r14d
jne 0x140003ece
call fcn.1400053b0
mov dword [rbp + 0x13], eax
jmp 0x14000426e
mov r13d, r14d
lea r12, [0x140206298]
lea r15, [0x140000000]
nop
mov rbx, qword [r12 - 8]
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rbx - 8], r14d
jl 0x140003f08
cmp rax, qword [rbx - 0x18]
jne 0x140003f08
lea rdi, [rbx - 0x18]
lock inc dword [rbx - 8]
jmp 0x140003f43
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rbx - 0x10]
call qword [rax]
mov rdi, rax
test rax, rax
je 0x140004291
mov ecx, dword [rbx - 0x10]
mov dword [rax + 8], ecx
mov ecx, dword [rbx - 0x10]
inc ecx
movsxd rdx, ecx
lea r9, [rdx + rdx]
mov r8, rbx
add rdx, rdx
lea rcx, [rax + 0x18]
call fcn.14014783c
lea rax, [rdi + 0x18]
mov qword [rbp - 9], rax
lea r8, [rbp - 0x19]
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x21]
call fcn.1400024b0
test eax, eax
je 0x140004251
mov ecx, dword [r12]
mov dword [rbp + 7], ecx
mov edx, r14d
mov eax, dword [rbp - 0x19]
cmp eax, 0xffffffff
setne dl
mov dword [rbp + 0xb], edx
mov dword [rbp + 0xf], eax
dec ecx
cmp ecx, 0xb
ja case.0x140003f96.4
movsxd rax, ecx
mov ecx, dword [r15 + rax*4 + 0x42c0]
add rcx, r15
jmp rcx
cmp byte [rsi + 0x21], r14b
je 0x140003ff6
mov rcx, rsi
call fcn.140005270
movzx ebx, al
mov edx, 1
mov rcx, rsi
call fcn.1400042f0
test al, al
je 0x140003fd0
lea rdx, [rbp + 7]
mov rcx, rsi
call fcn.140004c80
mov rcx, rsi
call fcn.140004520
jmp 0x140003fd7
mov dword [rbp + 0x13], 0xff
test ebx, ebx
jne case.0x140003f96.4
xor edx, edx
mov rcx, rsi
call fcn.1400042f0
test al, al
je case.0x140003f96.4
jmp 0x140004240
cmp byte [rsi + 0x20], r14b
je 0x14000400a
lea rcx, [rbp + 7]
call fcn.1400054a0
jmp case.0x140003f96.4
mov rcx, rsi
call fcn.1400043f0
test al, al
je 0x140004263
lea rdx, [rbp + 7]
mov rcx, rsi
call fcn.140004d30
jmp 0x140004240
mov dword [rbp + 0x13], r14d
test edx, edx
jne 0x140004251
cmp byte [rsi + 0x21], r14b
je 0x140004049
mov dword [rbp + 0x13], 1
jmp 0x140004251
cmp byte [rsi + 0x20], r14b
je 0x14000405b
mov dword [rbp + 0x13], 1
jmp 0x140004251
mov rcx, rsi
call fcn.1400043f0
test al, al
je case.0x140003f96.4
mov dword [rbp + 0x13], 1
jmp 0x140004251
mov rax, qword [rsi]
lea rdx, [rbp + 7]
mov rcx, rsi
call qword [rax + 0x10]
jmp case.0x140003f96.4
mov dword [rbp + 0x13], 0xff
cmp qword [rsi + 8], r14
je 0x14000426a
lea rdx, [rbp + 7]
mov rcx, rsi
call fcn.140004f30
jmp case.0x140003f96.4
lea rdx, [rbp + 7]
mov rcx, rsi
call fcn.140005150
jmp case.0x140003f96.4
mov qword [rbp - 0x41], r14
lea rax, [rbp - 0x41]
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]
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14000419d
lea rax, [rbp - 0x49]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x11]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.BFStatus
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea r11, [rbp - 0x49]
mov qword [rsp + 0x28], r11
lea rax, [rbp - 0x15]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.AECStatus
mov rcx, qword [rbp - 0x41]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea r11, [rbp - 0x49]
mov qword [rsp + 0x28], r11
lea rax, [rbp - 0x29]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.KNStatus
mov rcx, qword [rbp - 0x41]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea r11, [rbp - 0x49]
mov qword [rsp + 0x28], r11
lea rax, [rbp - 0x35]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.NSStatus
mov rcx, qword [rbp - 0x41]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rbp - 0x41]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [rbp - 0x11]
neg eax
sbb ecx, ecx
and ecx, 0x10
cmp dword [rbp - 0x29], r14d
je 0x1400041b2
or ecx, 4
jmp 0x1400041b5
and ecx, 0xfffffffb
cmp dword [rbp - 0x15], r14d
je 0x1400041c0
or ecx, 0x40
jmp 0x1400041c3
and ecx, 0xffffffbf
cmp dword [rbp - 0x35], r14d
je 0x1400041cf
bts ecx, 7
jmp 0x1400041d3
btr ecx, 7
mov dword [rbp - 0x39], ecx
mov qword [rbp - 0x31], r14
lea rax, [rbp - 0x31]
mov qword [rsp + 0x20], rax
mov r9d, 2
xor r8d, r8d
lea rdx, str.SOFTWAREConexantSAIISvrNotify
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov rcx, qword [rbp - 0x31]
test rcx, rcx
je 0x14000423a
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x39]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.sacmdsetting
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp - 0x31]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [rbp + 0x13], r14d
jmp 0x140004251
mov rcx, rsi
call fcn.140004520
cmp dword [rbp + 0x13], 0xff
je 0x14000426a
inc r13d
add r12, 0x10
cmp r13d, 0xd
jae 0x14000426a
jmp 0x140003ee0
mov dword [rbp + 0x13], 0xff
mov rbx, qword [rbp - 0x21]
mov edi, dword [rbp + 0x13]
lea rdx, [rbx - 0x18]
or ecx, 0xffffffff
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14000428d
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, edi
jmp 0x140004297
call fcn.1400033b0
nop
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.1401472d0
mov rbx, qword [rsp + 0xf0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret