Function at 0x14000a2f0
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
sub rsp, 0x100
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rax, qword [0x14012e6d8]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov r12, rcx
call fcn.140055b68
mov rcx, rax
xor esi, esi
mov edx, esi
test rax, rax
setne dl
test edx, edx
jne 0x14000a345
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x40], rax
call fcn.140055b68
mov r11, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14000a373
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x58], rax
call fcn.140055b68
mov r11, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14000a3a4
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
mov rcx, r12
call fcn.140004000
or edi, 0xffffffff
test eax, eax
je 0x14000a634
lea rdx, str.System32DriversHdaudbus.sys
lea rcx, [rsp + 0x40]
call fcn.140006510
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rbx - 8], 0
jl 0x14000a403
cmp rax, qword [rbx - 0x18]
jne 0x14000a403
lea rbp, [rbx - 0x18]
lock add dword [rbx - 8], 1
jmp 0x14000a441
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rbx - 0x10]
call qword [rax]
mov rbp, rax
test rax, rax
jne 0x14000a41f
call fcn.140003380
int3
mov eax, dword [rbx - 0x10]
mov dword [rbp + 8], eax
mov eax, dword [rbx - 0x10]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rbx
add rdx, rdx
lea rcx, [rbp + 0x18]
call fcn.14009b270
lea rax, [rbp + 0x18]
mov qword [rsp + 0x50], rax
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x60]
mov rcx, r12
call fcn.140009e70
mov r9, qword [rax]
lea r8, [0x1400e9cf0]
mov edx, 0x32
lea rcx, [rsp + 0x80]
call fcn.14009d4d0
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000a498
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp dword [r12 + 0x3b204], 0
jne 0x14000a5cb
call fcn.140055b68
mov rcx, rax
test rax, rax
setne sil
test esi, esi
jne 0x14000a4c5
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rdx, str.RealtekInstallShield
test rdx, 0xffffffffffff0000
jne 0x14000a505
movzx ebx, dx
mov ecx, ebx
call fcn.140055990
test rax, rax
je 0x14000a510
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140006090
jmp 0x14000a510
lea rcx, [rsp + 0x38]
call fcn.140006510
nop
lea rdx, [r12 + 0x290]
lea r8, [rsp + 0x38]
lea rcx, [rsp + 0x68]
call fcn.140006b20
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x30]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14000a588
cmp dword [rbx + 0x10], 0
jl 0x14000a579
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14000a579
call fcn.1400046d0
mov rsi, rax
mov ecx, edi
lock xadd dword [rbx + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14000a56e
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x14000a588
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.1400062e0
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000a5a9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000a5dc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000a5dc
lea rdx, str.SoftwareWow6432NodeRealtekAudioInstaller
lea rcx, [rsp + 0x30]
call fcn.140006510
lea r8, [rsp + 0x48]
mov rbx, qword [rsp + 0x30]
mov rdx, rbx
mov ecx, 0x80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x14000a634
mov dword [rsp + 0x28], VarCyFromDisp
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, str.BUSDrvVersion
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000a650
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000a671
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
add edi, 0xffffffff
test edi, edi
jg 0x14000a68f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.14009af10
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret