Function at 0x14000a240
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
sub rsp, 0x2a0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x1401216d8]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov rsi, rcx
xor ebp, ebp
call fcn.14004b0d0
mov rcx, rax
mov eax, ebp
test rcx, rcx
setne al
test eax, eax
jne 0x14000a29a
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
mov eax, dword [rsi + 0x2a8]
test eax, eax
je 0x14000a2bc
cmp dword [rsi + 0x2ac], 0
jne 0x14000a2c8
test eax, eax
jne 0x14000a2eb
cmp dword [rsi + 0x2ac], eax
jne 0x14000a2eb
lea rdx, [rbx - 0x18]
or edi, 0xffffffff
lock xadd dword [rdx + 0x10], edi
add edi, 0xffffffff
test edi, edi
jg 0x14000a2e4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x14000a73d
or edi, 0xffffffff
cmp dword [rsi + 0x3affc], 0
jne 0x14000a41c
call fcn.14004b0d0
mov rcx, rax
mov eax, ebp
test rcx, rcx
setne al
test eax, eax
jne 0x14000a31a
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rdx, str.RealtekInstallShield
test rdx, 0xffffffffffff0000
jne 0x14000a35c
movzx r12d, dx
mov ecx, r12d
call fcn.14004aef8
test rax, rax
je 0x14000a367
mov r8d, r12d
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140005b70
jmp 0x14000a367
lea rcx, [rsp + 0x48]
call fcn.140005ff0
nop
lea rdx, [rsi + 0x290]
lea r8, [rsp + 0x48]
lea rcx, [rsp + 0x68]
call fcn.140006600
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14000a3d9
cmp dword [rbx + 0x10], 0
jl 0x14000a3ca
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14000a3ca
call fcn.1400046b0
mov r12, rax
mov eax, edi
lock xadd dword [rbx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000a3be
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [r12 + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x14000a3d9
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 0x14000a3fa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000a42d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000a42d
lea rdx, str.SoftwareWow6432NodeRealtekAudioInstaller
lea rcx, [rsp + 0x30]
call fcn.140005ff0
lea r8, [rsp + 0x60]
mov rdx, qword [rsp + 0x30]
mov ecx, 0x80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x14000a71c
cmp dword [rsi + 0x2a8], eax
je 0x14000a595
call fcn.14004b0d0
mov rcx, rax
mov eax, ebp
test rcx, rcx
setne al
test eax, eax
jne 0x14000a475
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x58], rbx
lea r13, [0x1400df8d8]
mov r12, r13
shr r12, 0x10
jne 0x14000a4bb
movzx esi, r13w
mov ecx, esi
call fcn.14004aef8
test rax, rax
je 0x14000a4cd
mov r8d, esi
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.140005b70
mov rbx, qword [rsp + 0x58]
jmp 0x14000a4cd
mov rdx, r13
lea rcx, [rsp + 0x58]
call fcn.140005ff0
mov rbx, qword [rsp + 0x58]
mov r8, rbx
lea rdx, [0x1400decd0]
lea rcx, [rsp + 0x80]
call fcn.140003500
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000a4ff
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.14004b0d0
mov rcx, rax
mov eax, ebp
test rcx, rcx
setne al
test eax, eax
jne 0x14000a51e
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x50], rbx
test r12, r12
jne 0x14000a559
movzx esi, r13w
mov ecx, esi
call fcn.14004aef8
test rax, rax
je 0x14000a56b
mov r8d, esi
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.140005b70
mov rbx, qword [rsp + 0x50]
jmp 0x14000a56b
mov rdx, r13
lea rcx, [rsp + 0x50]
call fcn.140005ff0
mov rbx, qword [rsp + 0x50]
mov eax, dword [rbx - 0x10]
lea esi, [rax + rax]
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000a6de
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000a6de
cmp dword [rsi + 0x2ac], 0
je 0x14000a6da
call fcn.14004b0d0
mov rcx, rax
mov eax, ebp
test rcx, rcx
setne al
test eax, eax
jne 0x14000a5c1
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
lea r13, [0x1400df8b0]
mov r12, r13
shr r12, 0x10
jne 0x14000a607
movzx esi, r13w
mov ecx, esi
call fcn.14004aef8
test rax, rax
je 0x14000a619
mov r8d, esi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b70
mov rbx, qword [rsp + 0x38]
jmp 0x14000a619
mov rdx, r13
lea rcx, [rsp + 0x38]
call fcn.140005ff0
mov rbx, qword [rsp + 0x38]
mov r8, rbx
lea rdx, [0x1400decd0]
lea rcx, [rsp + 0x80]
call fcn.140003500
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000a64b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.14004b0d0
mov rcx, rax
mov eax, ebp
test rcx, rcx
setne al
test eax, eax
jne 0x14000a66a
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
test r12, r12
jne 0x14000a6a5
movzx esi, r13w
mov ecx, esi
call fcn.14004aef8
test rax, rax
je 0x14000a6b7
mov r8d, esi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140005b70
mov rbx, qword [rsp + 0x40]
jmp 0x14000a6b7
mov rdx, r13
lea rcx, [rsp + 0x40]
call fcn.140005ff0
mov rbx, qword [rsp + 0x40]
mov eax, dword [rbx - 0x10]
lea esi, [rax + rax]
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000a6de
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000a6de
mov esi, dword [rsp + 0x30]
mov dword [rsp + 0x28], esi
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, str.RtkCurUninstallPackage
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
sete bpl
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
add edi, 0xffffffff
test edi, edi
jg 0x14000a73b
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, ebp
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.140090480
lea r11, [rsp + 0x2a0]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop r12
pop rdi
ret