Function at 0x403ad0
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
sub rsp, 0x3b8
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax - 8], r12
mov qword [rax - 0x10], r13
mov rax, qword [0x00469b78]
xor rax, rsp
mov qword [rsp + 0x390], rax
call fcn.00414a98
mov rdx, rax
xor r13d, r13d
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x403b30
mov ecx, 0x80004005
call entry0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
mov r9d, 6
xor r8d, r8d
lea rdx, [0x0044d7d0]
xor ecx, ecx
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x403bda
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 0x400
mov r8d, edi
xor edx, edx
mov ecx, 0x1100
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x403baa
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
lea rdx, [rbx - 0x18]
mov rsi, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x403bd3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
xor eax, eax
jmp 0x40442a
mov edi, 0x20
mov dword [rsp + 0x70], edi
lea r12d, [rdi - 0x1f]
mov esi, r13d
lea r8, [rsp + 0x70]
xor edx, edx
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x40410f
mov qword [rsp + 0x20], r13
mov r9d, 0x100
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x70]
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdA]
mov rdx, qword [0x0046b920]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
je 0x403c4d
mov rax, qword [0x0046b920]
cmp dword [rax - 0x10], 0
jne 0x403fe8
mov rdx, qword [0x0046b930]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x4040df
mov rdx, qword [0x0046b960]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x4040d8
mov rdx, qword [0x0046b9e0]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x4040d1
mov rdx, qword [0x0046b9d0]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x4040ca
mov rdx, qword [0x0046b980]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x4040c3
mov rdx, qword [0x0046ba08]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x4040bc
mov rdx, qword [0x0046ba00]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x4040b5
mov rdx, qword [0x0046b970]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x4040ae
mov rdx, qword [0x0046b948]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x4040a7
mov rdx, qword [0x0046b928]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x4040a0
mov rdx, qword [0x0046b9b0]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x404099
mov rdx, qword [0x0046b9c8]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x404092
mov rdx, qword [0x0046ba10]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x40408b
mov rdx, qword [0x0046b950]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x404084
mov rdx, qword [0x0046b9d8]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x40407d
mov rdx, qword [0x0046b9f8]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x404076
mov rdx, qword [0x0046b968]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x40406f
mov rdx, qword [0x0046ba18]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x404068
mov rdx, qword [0x0046b940]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x40405e
mov rdx, qword [0x0046b9f0]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x404054
mov rdx, qword [0x0046b958]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x40404a
mov rdx, qword [0x0046b9a8]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x404040
mov rdx, qword [0x0046b9a0]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x404036
mov rdx, qword [0x0046b998]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x40402c
mov rdx, qword [0x0046b978]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x404022
mov rdx, qword [0x0046b9e8]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x404018
mov rdx, qword [0x0046ba20]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x40400e
mov rdx, qword [0x0046b990]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x404004
mov rdx, qword [0x0046b988]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x403ffa
mov rdx, qword [0x0046b9c0]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x403ff0
mov rdx, qword [0x0046b9b8]
lea rcx, [rsp + 0x90]
call fcn.0042eda0
test rax, rax
jne 0x4040e4
add esi, r12d
lea r8, [rsp + 0x70]
mov edx, esi
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x404117
jmp 0x403c02
mov edi, r12d
jmp 0x4040e4
mov edi, 0x1f
jmp 0x4040e4
mov edi, 0x1e
jmp 0x4040e4
mov edi, 0x1d
jmp 0x4040e4
mov edi, 0x1c
jmp 0x4040e4
mov edi, 0x1b
jmp 0x4040e4
mov edi, 0x1a
jmp 0x4040e4
mov edi, 0x19
jmp 0x4040e4
mov edi, 0x18
jmp 0x4040e4
mov edi, 0x17
jmp 0x4040e4
mov edi, 0x16
jmp 0x4040e4
mov edi, 0x15
jmp 0x4040e4
mov edi, 0x14
jmp 0x4040e4
mov edi, 0x13
jmp 0x4040e4
mov edi, 0x12
jmp 0x4040e4
mov edi, 0x11
jmp 0x4040e4
mov edi, reloc.OLEAUT32.dll_SafeArrayGetDim
jmp 0x4040e4
mov edi, SafeArrayGetDim
jmp 0x4040e4
mov edi, SafeArrayGetDim
jmp 0x4040e4
mov edi, SafeArrayGetDim
jmp 0x4040e4
mov edi, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
jmp 0x4040e4
mov edi, VariantTimeToDosDateTime
jmp 0x4040e4
mov edi, 0xa
jmp 0x4040e4
mov edi, 9
jmp 0x4040e4
mov edi, 8
jmp 0x4040e4
mov edi, 7
jmp 0x4040e4
mov edi, 6
jmp 0x4040e4
mov edi, 5
jmp 0x4040e4
mov edi, 4
jmp 0x4040e4
mov edi, 3
jmp 0x4040e4
mov edi, 2
mov rcx, r13
nop
nop
nop
movzx eax, byte [rsp + rcx + 0x90]
mov byte [rsp + rcx + 0x190], al
add rcx, r12
test al, al
jne 0x4040f0
mov byte [rsp + 0x1bc], al
jmp 0x404113
mov edi, dword [rsp + 0x40]
test edi, edi
jne 0x40411a
mov r12d, r13d
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov rdx, qword [0x0046b920]
mov rsi, 0xffffffffffffffff
cmp dword [rdx - 0x10], 0
je 0x40423f
lea r8d, [rsi + 9]
lea rdx, [rsp + 0x60]
lea rcx, [0x0046b920]
call fcn.004024f0
nop
mov rdx, qword [rax]
lea rdi, [rdx - 0x18]
mov rbx, qword [0x0046b938]
add rbx, 0xffffffffffffffe8
cmp rdi, rbx
je 0x404213
cmp dword [rbx + 0x10], 0
jl 0x404202
mov rcx, qword [rdi]
cmp rcx, qword [rbx]
jne 0x404202
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi + 0x10], 0
jl 0x4041a0
cmp rax, qword [rdi]
jne 0x4041a0
mov rbp, rdi
lock add dword [rdi + 0x10], 1
jmp 0x4041db
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rdi + 8]
call qword [rax]
mov rbp, rax
test rax, rax
jne 0x4041bc
call fcn.004015a0
int3
mov eax, dword [rdi + 8]
mov dword [rbp + 8], eax
mov eax, dword [rdi + 8]
add eax, 1
movsxd rdx, eax
lea r8, [rdi + 0x18]
lea rcx, [rbp + 0x18]
mov r9, rdx
call fcn.0042e900
mov eax, esi
lock xadd dword [rbx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x4041f5
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
lea rax, [rbp + 0x18]
mov qword [0x0046b938], rax
jmp 0x404213
mov r8d, dword [rdx - 0x10]
lea rcx, [0x0046b938]
call fcn.00401b20
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x40423a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
mov rbx, qword [rsp + 0x40]
jmp 0x40423f
mov rbx, qword [rsp + 0x40]
cmp r12d, 1
jne 0x40440c
mov rcx, r13
nop
movzx eax, byte [rsp + rcx + 0x190]
mov byte [rsp + rcx + 0x290], al
add rcx, 1
test al, al
jne 0x404250
mov byte [rsp + 0x2b5], al
xor eax, eax
mov rcx, rsi
lea rdi, str.CC_0401
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
jne 0x4042e5
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x404360
cmp dword [rdx + 0x10], eax
jge 0x4042ba
cmp dword [rbx - 0xc], eax
jge 0x4042af
mov ecx, 0x80070057
call entry0
int3
mov dword [rbx - 0x10], r13d
mov byte [rbx], al
jmp 0x404360
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x4042d1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
jmp 0x404360
mov ebp, dword [rbx - 0x10]
lea r12, str.CC_0401
sub r12, rbx
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x404314
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.00401800
mov rbx, qword [rsp + 0x40]
cmp r12, rbp
ja 0x404330
movsxd rbp, edi
lea r8, [r12 + rbx]
mov r9, rbp
mov rdx, rbp
mov rcx, rbx
call fcn.0042e9e0
jmp 0x404348
movsxd rbp, edi
mov r9, rbp
lea r8, str.CC_0401
mov rdx, rbp
mov rcx, rbx
call fcn.0042e900
test edi, edi
js 0x404401
cmp edi, dword [rbx - 0xc]
jg 0x404401
mov dword [rbx - 0x10], edi
mov byte [rbx + rbp], 0
lea r8, str.RealtekInstallShield
lea rdx, [0x0046b5f8]
lea rcx, [rsp + 0x58]
call fcn.00402800
lea r8, [rsp + 0x50]
mov rdx, qword [rax]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
sete dil
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x4043b3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
test dil, dil
je 0x4043fa
mov dword [rsp + 0x28], 0x100
lea rax, [rsp + 0x290]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, str.PnPID
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rbx, qword [rsp + 0x40]
jmp 0x40440c
mov rbx, qword [rsp + 0x40]
jmp 0x40440c
mov ecx, 0x80070057
call entry0
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x404425
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
mov eax, 1
mov rcx, qword [rsp + 0x390]
xor rcx, rsp
call fcn.0042ddb0
mov rbx, qword [rsp + 0x3c0]
mov rbp, qword [rsp + 0x3c8]
mov rsi, qword [rsp + 0x3d0]
mov rdi, qword [rsp + 0x3d8]
mov r12, qword [rsp + 0x3b0]
mov r13, qword [rsp + 0x3a8]
add rsp, 0x3b8
ret