Function at 0x140015c90
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 0x140015cad
xor eax, eax
add rsp, 0x58
pop r12
pop rsi
ret
test rcx, rcx
je 0x140015ca3
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 0x140016069
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 0x14001605b
cmp dword [rsp + 0x88], 4
jne 0x14001605b
cmp dword [rsp + 0x78], ebp
je 0x14001605b
lea r13, [0x1400e5f50]
mov edi, ebp
mov r9, r13
nop
mov rdx, qword [r9]
test rdx, rdx
je 0x140015d9f
mov r8, qword [rdx]
cmp r8, qword [rsi]
jne 0x140015d8e
mov r8, qword [rdx + 8]
cmp r8, qword [rsi + 8]
jne 0x140015d8e
mov eax, ebp
jmp 0x140015d93
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x140015d9f
mov eax, dword [rsi + 0x10]
cmp dword [rdx + 0x10], eax
je 0x140015db0
add edi, 1
add r9, 0x18
cmp edi, 0x23
jb 0x140015d70
jmp 0x14001605b
lea rax, [0x1400b6290]
mov rdx, qword [rax]
cmp rdx, qword [rsi]
jne 0x140015dc9
mov rdx, qword [rax + 8]
cmp rdx, qword [rsi + 8]
je 0x140015dd0
sbb eax, eax
sbb eax, 0xffffffff
mov ebp, eax
test ebp, ebp
jne 0x140015fcf
cmp dword [rsi + 0x10], ebp
jne 0x140015fcf
mov eax, dword [r12 + 0x16c]
bt eax, 8
jae 0x140015fcf
bt eax, 0x1f
jb 0x140015f97
bt eax, 0x19
jb 0x140015f97
bt eax, 9
jb 0x140015f97
mov eax, dword [r12 + 0x170]
bt eax, 0x19
jae 0x140015e58
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 0x14001601a
bt eax, 0x1c
jae 0x140015e99
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 0x14001601a
bt eax, 0x1e
jae 0x140015eda
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 0x14001601a
bt eax, 0x1f
jae 0x140015f1b
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 0x14001601a
bt eax, 0x11
jae 0x140015f5c
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 0x14001601a
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 0x14001601a
lea rsi, [0x1400b73f8]
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 0x14001601a
movsxd rax, edi
lea rcx, [rax + rax*2]
mov rsi, qword [r13 + rcx*8 + 0x10]
test rsi, rsi
jne 0x140015feb
mov ecx, 0x80004005
call fcn.1400120e0
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 0x140016069
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