Function at 0x140018f60
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 0x140018f7d
xor eax, eax
add rsp, 0x58
pop r12
pop rsi
ret
test rcx, rcx
je 0x140018f73
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 0x140019339
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 0x14001932b
cmp dword [rsp + 0x88], 4
jne 0x14001932b
cmp dword [rsp + 0x78], ebp
je 0x14001932b
lea r13, [0x1400f5f80]
mov edi, ebp
mov r9, r13
nop
mov rdx, qword [r9]
test rdx, rdx
je 0x14001906f
mov r8, qword [rdx]
cmp r8, qword [rsi]
jne 0x14001905e
mov r8, qword [rdx + 8]
cmp r8, qword [rsi + 8]
jne 0x14001905e
mov eax, ebp
jmp 0x140019063
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x14001906f
mov eax, dword [rsi + 0x10]
cmp dword [rdx + 0x10], eax
je 0x140019080
add edi, 1
add r9, 0x18
cmp edi, 0x23
jb 0x140019040
jmp 0x14001932b
lea rax, [0x1400c2448]
mov rdx, qword [rax]
cmp rdx, qword [rsi]
jne 0x140019099
mov rdx, qword [rax + 8]
cmp rdx, qword [rsi + 8]
je 0x1400190a0
sbb eax, eax
sbb eax, 0xffffffff
mov ebp, eax
test ebp, ebp
jne 0x14001929f
cmp dword [rsi + 0x10], ebp
jne 0x14001929f
mov eax, dword [r12 + 0x16c]
bt eax, 8
jae 0x14001929f
bt eax, 0x1f
jb 0x140019267
bt eax, 0x19
jb 0x140019267
bt eax, 9
jb 0x140019267
mov eax, dword [r12 + 0x170]
bt eax, 0x19
jae 0x140019128
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 0x1400192ea
bt eax, 0x1c
jae 0x140019169
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 0x1400192ea
bt eax, 0x1e
jae 0x1400191aa
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 0x1400192ea
bt eax, 0x1f
jae 0x1400191eb
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 0x1400192ea
bt eax, 0x11
jae 0x14001922c
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 0x1400192ea
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 0x1400192ea
lea rsi, [0x1400c38e8]
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 0x1400192ea
movsxd rax, edi
lea rcx, [rax + rax*2]
mov rsi, qword [r13 + rcx*8 + 0x10]
test rsi, rsi
jne 0x1400192bb
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 0x140019339
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