Function at 0x140008ac0
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 [0x1401216d8]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov r12, rcx
call fcn.14004b0d0
mov rcx, rax
xor esi, esi
mov edx, esi
test rax, rax
setne dl
test edx, edx
jne 0x140008b15
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.14004b0d0
mov r11, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x140008b43
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.14004b0d0
mov r11, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x140008b74
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.140003fe0
or edi, 0xffffffff
test eax, eax
je 0x140008e04
lea rdx, str.System32DriversHdaudbus.sys
lea rcx, [rsp + 0x40]
call fcn.140005ff0
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 0x140008bd3
cmp rax, qword [rbx - 0x18]
jne 0x140008bd3
lea rbp, [rbx - 0x18]
lock add dword [rbx - 8], 1
jmp 0x140008c11
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rbx - 0x10]
call qword [rax]
mov rbp, rax
test rax, rax
jne 0x140008bef
call fcn.140003370
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.1400907e0
lea rax, [rbp + 0x18]
mov qword [rsp + 0x50], rax
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x60]
mov rcx, r12
call fcn.140008640
mov r9, qword [rax]
lea r8, [0x1400decd0]
mov edx, 0x32
lea rcx, [rsp + 0x80]
call fcn.140092a40
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140008c68
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp dword [r12 + 0x3affc], 0
jne 0x140008d9b
call fcn.14004b0d0
mov rcx, rax
test rax, rax
setne sil
test esi, esi
jne 0x140008c95
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 0x140008cd5
movzx ebx, dx
mov ecx, ebx
call fcn.14004aef8
test rax, rax
je 0x140008ce0
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b70
jmp 0x140008ce0
lea rcx, [rsp + 0x38]
call fcn.140005ff0
nop
lea rdx, [r12 + 0x290]
lea r8, [rsp + 0x38]
lea rcx, [rsp + 0x68]
call fcn.140006600
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x30]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140008d58
cmp dword [rbx + 0x10], 0
jl 0x140008d49
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140008d49
call fcn.1400046b0
mov rsi, rax
mov ecx, edi
lock xadd dword [rbx + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x140008d3e
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 0x140008d58
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140005dc0
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 0x140008d79
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 0x140008dac
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140008dac
lea rdx, str.SoftwareWow6432NodeRealtekAudioInstaller
lea rcx, [rsp + 0x30]
call fcn.140005ff0
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 0x140008e04
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 0x140008e20
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 0x140008e41
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 0x140008e5f
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.140090480
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret