Function at 0x1400028f0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value
Set registry value

Disassembly:
push rbp
push rdi
push r12
push r13
sub rsp, 0x498
mov rax, qword [0x140015028]
xor rax, rsp
mov qword [rsp + 0x480], rax
xor r13d, r13d
lea rax, [rsp + 0x68]
mov rdi, rcx
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionMMDevicesAudioRender
mov r9d, 0x108
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
mov ebp, r13d
mov r12d, r13d
mov qword [rsp + 0x58], r13
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x140002c91
mov qword [rsp + 0x4d0], rsi
mov qword [rsp + 0x490], r14
lea r14d, [r13 + 1]
mov qword [rsp + 0x4c8], rbx
mov esi, r13d
nop
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x280]
mov edx, esi
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x70], 0x200
mov qword [rsp + 0x20], r13
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
test eax, eax
jne 0x140002b9a
lea r8, [rsp + 0x280]
lea rcx, [rsp + 0x80]
mov edx, 0x200
mov ebx, r13d
call fcn.140004710
lea r8, str.Properties
lea rcx, [rsp + 0x80]
mov edx, 0x200
call fcn.1400047c0
mov rcx, qword [rsp + 0x68]
lea r11, [rsp + 0x58]
lea rdx, [rsp + 0x80]
mov r9d, 0x101
xor r8d, r8d
mov qword [rsp + 0x20], r11
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x140002b9d
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x50]
lea r9, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x80]
lea rdx, str.b3f8fa53_0004_438e_9003_51a46e139bfc_6
xor r8d, r8d
mov dword [rsp + 0x50], 0x200
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x140002a6a
lea rdx, str.Realtek
lea rcx, [rsp + 0x80]
call fcn.140004640
test rax, rax
cmovne ebx, r14d
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
je 0x140002b9d
lea r8, str.FXProperties
lea rcx, [rsp + 0x280]
mov edx, 0x200
call fcn.1400047c0
mov rcx, qword [rsp + 0x68]
lea r11, [rsp + 0x58]
lea rdx, [rsp + 0x280]
mov r9d, 0x101
xor r8d, r8d
mov qword [rsp + 0x20], r11
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x140002b9d
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x50]
lea r9, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x54]
lea rdx, str.082C429A_5A10_48ea_BE3D_DBC80F014519_6
xor r8d, r8d
mov dword [rsp + 0x50], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x140002b49
mov eax, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x58]
lea r9, [rsp + 0x60]
or dword [rdi + 4], eax
lea rax, [rsp + 0x50]
lea rdx, str.082C429A_5A10_48ea_BE3D_DBC80F014519_0
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x54]
xor r8d, r8d
mov r12d, r14d
mov dword [rsp + 0x50], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x140002b49
mov eax, dword [rsp + 0x54]
or dword [rdi + 8], eax
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x50]
lea r9, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x54]
lea rdx, str.082C429A_5A10_48ea_BE3D_DBC80F014519_1
xor r8d, r8d
mov dword [rsp + 0x50], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x140002b8d
mov eax, dword [rsp + 0x54]
mov r12d, r14d
or dword [rdi + 0x3c], eax
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x140002b9d
mov ebp, r14d
add esi, r14d
test ebp, ebp
je 0x140002970
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test r12d, r12d
mov rsi, qword [rsp + 0x4d0]
je 0x140002c81
cmp dword [rdi + 0x6c], r13d
mov dword [rdi], 0xaee0aee0
jne 0x140002be0
mov rdx, rdi
mov rcx, rdi
call fcn.140002430
jmp 0x140002c81
mov qword [rsp + 0x40], r13
lea rax, [rsp + 0x78]
lea rdx, str.SoftwareRealtekAEAPO
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r13
xor r9d, r9d
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0x102
mov dword [rsp + 0x20], r13d
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x140002c66
mov rcx, qword [rsp + 0x78]
lea r9d, [rax + 3]
lea rdx, str.RenProperties
xor r8d, r8d
mov dword [rsp + 0x28], 0x60
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov rcx, qword [rsp + 0x78]
mov ebx, r13d
test eax, eax
cmove ebx, r14d
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
je 0x140002c66
lea rdx, str.WriteRegistry_successful
jmp 0x140002c6d
lea rdx, str.WriteRegistry_failed
or r9d, 0xffffffff
mov rcx, rdi
mov dword [rsp + 0x20], r13d
or r8d, r9d
call fcn.140002690
mov rbx, qword [rsp + 0x4c8]
mov r14, qword [rsp + 0x490]
mov rcx, qword [rsp + 0x480]
xor rcx, rsp
call fcn.1400046f0
add rsp, 0x498
pop r13
pop r12
pop rdi
pop rbp
ret