Function at 0x140008b50
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.14004b378
mov rcx, rax
xor esi, esi
mov edx, esi
test rax, rax
setne dl
test edx, edx
jne 0x140008ba5
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.14004b378
mov r11, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x140008bd3
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.14004b378
mov r11, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x140008c04
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 0x140008e94
lea rdx, str.System32DriversHdaudbus.sys
lea rcx, [rsp + 0x40]
call fcn.140006080
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 0x140008c63
cmp rax, qword [rbx - 0x18]
jne 0x140008c63
lea rbp, [rbx - 0x18]
lock add dword [rbx - 8], 1
jmp 0x140008ca1
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rbx - 0x10]
call qword [rax]
mov rbp, rax
test rax, rax
jne 0x140008c7f
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.140090a80
lea rax, [rbp + 0x18]
mov qword [rsp + 0x50], rax
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x60]
mov rcx, r12
call fcn.1400086d0
mov r9, qword [rax]
lea r8, [0x1400dece0]
mov edx, 0x32
lea rcx, [rsp + 0x80]
call fcn.140092ce0
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140008cf8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp dword [r12 + 0x3affc], 0
jne 0x140008e2b
call fcn.14004b378
mov rcx, rax
test rax, rax
setne sil
test esi, esi
jne 0x140008d25
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 0x140008d65
movzx ebx, dx
mov ecx, ebx
call fcn.14004b1a0
test rax, rax
je 0x140008d70
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005c00
jmp 0x140008d70
lea rcx, [rsp + 0x38]
call fcn.140006080
nop
lea rdx, [r12 + 0x290]
lea r8, [rsp + 0x38]
lea rcx, [rsp + 0x68]
call fcn.140006690
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x30]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140008de8
cmp dword [rbx + 0x10], 0
jl 0x140008dd9
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140008dd9
call fcn.1400046b0
mov rsi, rax
mov ecx, edi
lock xadd dword [rbx + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x140008dce
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 0x140008de8
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140005e50
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 0x140008e09
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 0x140008e3c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140008e3c
lea rdx, str.SoftwareWow6432NodeRealtekAudioInstaller
lea rcx, [rsp + 0x30]
call fcn.140006080
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 0x140008e94
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 0x140008eb0
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 0x140008ed1
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 0x140008eef
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.140090720
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret