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

Disassembly:
push rsi
push r12
sub rsp, 0x58
test rdx, rdx
mov rsi, rdx
mov r12, rcx
jne 0x140018dcd
xor eax, eax
add rsp, 0x58
pop r12
pop rsi
ret
test rcx, rcx
je 0x140018dc3
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x50], rbp
lea rax, [rsp + 0x30]
lea rdx, str.SoftwareRealtekSBCoexist
xor ebp, ebp
mov r9d, 0x2001f
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x40], r13
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140019189
mov rbx, qword [rsp + 0x30]
lea rax, [rsp + 0x80]
lea r9, [rsp + 0x88]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x78]
lea rdx, str.ExclusiveEnable
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x78], ebp
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x80], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14001917b
cmp dword [rsp + 0x88], 4
jne 0x14001917b
cmp dword [rsp + 0x78], ebp
je 0x14001917b
lea r13, [0x1400f3f70]
mov edi, ebp
mov r9, r13
nop
mov rdx, qword [r9]
test rdx, rdx
je 0x140018ebf
mov r8, qword [rdx]
cmp r8, qword [rsi]
jne 0x140018eae
mov r8, qword [rdx + 8]
cmp r8, qword [rsi + 8]
jne 0x140018eae
mov eax, ebp
jmp 0x140018eb3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x140018ebf
mov eax, dword [rsi + 0x10]
cmp dword [rdx + 0x10], eax
je 0x140018ed0
add edi, 1
add r9, 0x18
cmp edi, 0x23
jb 0x140018e90
jmp 0x14001917b
lea rax, [0x1400c1448]
mov rdx, qword [rax]
cmp rdx, qword [rsi]
jne 0x140018ee9
mov rdx, qword [rax + 8]
cmp rdx, qword [rsi + 8]
je 0x140018ef0
sbb eax, eax
sbb eax, 0xffffffff
mov ebp, eax
test ebp, ebp
jne 0x1400190ef
cmp dword [rsi + 0x10], ebp
jne 0x1400190ef
mov eax, dword [r12 + 0x16c]
bt eax, 8
jae 0x1400190ef
bt eax, 0x1f
jb 0x1400190b7
bt eax, 0x19
jb 0x1400190b7
bt eax, 9
jb 0x1400190b7
mov eax, dword [r12 + 0x170]
bt eax, 0x19
jae 0x140018f78
lea rsi, str.SRS_PC_Sound
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r9d, [rbp + 1]
lea rdx, str.TechnologyName
lea eax, [rax + rax + 2]
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x14001913a
bt eax, 0x1c
jae 0x140018fb9
lea rsi, str.SRS_Wide_3D_Sound
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, str.TechnologyName
mov r9d, 1
lea eax, [rax + rax + 2]
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x14001913a
bt eax, 0x1e
jae 0x140018ffa
lea rsi, str.SRS_Premium_Sound_HD
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, str.TechnologyName
mov r9d, 1
lea eax, [rax + rax + 2]
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x14001913a
bt eax, 0x1f
jae 0x14001903b
lea rsi, str.SRS_Premium_Voice_Pro
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, str.TechnologyName
mov r9d, 1
lea eax, [rax + rax + 2]
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x14001913a
bt eax, 0x11
jae 0x14001907c
lea rsi, str.SRS_Premium_Voice
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, str.TechnologyName
mov r9d, 1
lea eax, [rax + rax + 2]
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x14001913a
lea rsi, str.SRS_Premium_Sound
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, str.TechnologyName
mov r9d, 1
lea eax, [rax + rax + 2]
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x14001913a
lea rsi, [0x1400c28e8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, str.TechnologyName
mov r9d, 1
lea eax, [rax + rax + 2]
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x14001913a
movsxd rax, edi
lea rcx, [rax + rax*2]
mov rsi, qword [r13 + rcx*8 + 0x10]
test rsi, rsi
jne 0x14001910b
mov ecx, 0x80004005
call fcn.140001950
int3
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, str.TechnologyName
mov r9d, 1
lea eax, [rax + rax + 2]
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
movsxd rax, edi
lea rdx, str.Technology
mov r9d, 4
lea rcx, [rax + rax*2]
xor r8d, r8d
mov dword [rsp + 0x28], 4
mov eax, dword [r13 + rcx*8 + 8]
mov rcx, rbx
mov dword [rsp + 0x80], eax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test rbx, rbx
je 0x140019189
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x70]
mov r13, qword [rsp + 0x40]
mov eax, 1
add rsp, 0x58
pop r12
pop rsi
ret