Function at 0x402990
Capabilities:
Delete registry value
Get common file path
Set registry value

Disassembly:
mov r11, rsp
sub rsp, 0xc58
mov qword [rsp + 0x90], 0xfffffffffffffffe
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x20], rbp
mov qword [r11 - 8], rsi
mov qword [r11 - 0x10], rdi
mov qword [r11 - 0x18], r12
mov qword [r11 - 0x20], r13
mov qword [r11 - 0x28], r14
mov qword [r11 - 0x30], r15
mov rax, qword [0x00469b78]
xor rax, rsp
mov qword [rsp + 0xc10], rax
mov qword [rsp + 0x68], rdx
mov byte [rsp + 0x300], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [r11 - 0x957]
call fcn.0042ea80
mov byte [rsp + 0x500], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rsp + 0x501]
call fcn.0042ea80
mov byte [rsp + 0x800], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rsp + 0x801]
call fcn.0042ea80
mov byte [rsp + 0xa00], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rsp + 0xa01]
call fcn.0042ea80
call fcn.00414a98
mov rdx, rax
xor r14d, r14d
mov ecx, r14d
test rax, rax
setne cl
test ecx, ecx
jne 0x402a73
mov ecx, 0x80004005
call entry0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
mov dword [rsp + 0x50], r14d
mov r13d, r14d
mov dword [rsp + 0x54], r14d
mov edx, 0x100
lea rcx, [rsp + 0x600]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea rdi, [rsp + 0x600]
xor eax, eax
mov r15, 0xffffffffffffffff
mov rcx, r15
repne scasb al, byte [rdi]
mov eax, dword [str.Temp_]
mov dword [rdi - 1], eax
movzx eax, word [0x0044d7d8]
mov word [rdi + 3], ax
movzx eax, byte [0x0044d7da]
mov byte [rdi + 5], al
mov rcx, r14
nop
movzx eax, byte [rsp + rcx + 0x600]
mov byte [rsp + rcx + 0x300], al
add rcx, 1
test al, al
jne 0x402ae0
lea rdi, [rsp + 0x300]
xor eax, eax
mov rcx, r15
repne scasb al, byte [rdi]
mov rdx, qword [0x0046b798]
xor ecx, ecx
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x402b10
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x300]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp rax, r15
jne 0x402b65
cmp dword [rsp + 0x50], r13d
jne 0x402b65
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r15d
add r15d, 0xffffffff
test r15d, r15d
jg 0x402b5e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
xor eax, eax
jmp 0x403a36
mov r9d, 6
xor r8d, r8d
lea rdx, [0x0044d7d0]
xor ecx, ecx
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
mov rbp, rax
cmp rax, r15
jne 0x402bf8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
lea rax, [rsp + 0x70]
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 + 0x70]
test rcx, rcx
je 0x402bcc
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r15d
add r15d, 0xffffffff
test r15d, r15d
jg 0x402bf1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
xor eax, eax
jmp 0x403a36
mov edi, 0x20
mov dword [rsp + 0x98], edi
lea r12d, [rdi - 0x1f]
mov esi, r14d
lea r8, [rsp + 0x98]
xor edx, edx
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x40316f
nop
nop
nop
mov qword [rsp + 0x20], r14
mov r9d, 0x100
lea r8, [rsp + 0x200]
lea rdx, [rsp + 0x98]
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdA]
mov edx, r14d
cmp r13d, 0x5a
mov eax, 5
cmovl edx, eax
add r13d, edx
mov dword [rsp + 0x54], r13d
movsxd r8, r13d
xor r9d, r9d
mov edx, 0x402
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_SendMessageA]
mov rdx, qword [0x0046b920]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
je 0x402caf
mov rax, qword [0x0046b920]
cmp dword [rax - 0x10], 0
jne 0x40304d
mov rdx, qword [0x0046b930]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403141
mov rdx, qword [0x0046b960]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x40313a
mov rdx, qword [0x0046b9e0]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403133
mov rdx, qword [0x0046b9d0]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x40312c
mov rdx, qword [0x0046b980]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403125
mov rdx, qword [0x0046ba08]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x40311e
mov rdx, qword [0x0046ba00]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403117
mov rdx, qword [0x0046b970]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403110
mov rdx, qword [0x0046b948]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403109
mov rdx, qword [0x0046b928]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403102
mov rdx, qword [0x0046b9b0]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030fb
mov rdx, qword [0x0046b9c8]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030f4
mov rdx, qword [0x0046ba10]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030ed
mov rdx, qword [0x0046b950]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030e6
mov rdx, qword [0x0046b9d8]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030df
mov rdx, qword [0x0046b9f8]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030d8
mov rdx, qword [0x0046b968]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030d1
mov rdx, qword [0x0046ba18]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030ca
mov rdx, qword [0x0046b940]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030c3
mov rdx, qword [0x0046b9f0]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030b9
mov rdx, qword [0x0046b958]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030af
mov rdx, qword [0x0046b9a8]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x4030a5
mov rdx, qword [0x0046b9a0]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x40309b
mov rdx, qword [0x0046b998]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403091
mov rdx, qword [0x0046b978]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403087
mov rdx, qword [0x0046b9e8]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x40307d
mov rdx, qword [0x0046ba20]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403073
mov rdx, qword [0x0046b990]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403069
mov rdx, qword [0x0046b988]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x40305f
mov rdx, qword [0x0046b9c0]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403055
mov rdx, qword [0x0046b9b8]
lea rcx, [rsp + 0x200]
call fcn.0042eda0
test rax, rax
jne 0x403146
add esi, r12d
lea r8, [rsp + 0x98]
mov edx, esi
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x403177
jmp 0x402c30
mov edi, r12d
jmp 0x403146
mov edi, 0x1f
jmp 0x403146
mov edi, 0x1e
jmp 0x403146
mov edi, 0x1d
jmp 0x403146
mov edi, 0x1c
jmp 0x403146
mov edi, 0x1b
jmp 0x403146
mov edi, 0x1a
jmp 0x403146
mov edi, 0x19
jmp 0x403146
mov edi, 0x18
jmp 0x403146
mov edi, 0x17
jmp 0x403146
mov edi, 0x16
jmp 0x403146
mov edi, 0x15
jmp 0x403146
mov edi, 0x14
jmp 0x403146
mov edi, 0x13
jmp 0x403146
mov edi, 0x12
jmp 0x403146
mov edi, 0x11
jmp 0x403146
mov edi, reloc.OLEAUT32.dll_SafeArrayGetDim
jmp 0x403146
mov edi, SafeArrayGetDim
jmp 0x403146
mov edi, SafeArrayGetDim
jmp 0x403146
mov edi, SafeArrayGetDim
jmp 0x403146
mov edi, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
jmp 0x403146
mov edi, VariantTimeToDosDateTime
jmp 0x403146
mov edi, 0xa
jmp 0x403146
mov edi, 9
jmp 0x403146
mov edi, 8
jmp 0x403146
mov edi, 7
jmp 0x403146
mov edi, 6
jmp 0x403146
mov edi, 5
jmp 0x403146
mov edi, 4
jmp 0x403146
mov edi, 3
jmp 0x403146
mov edi, 2
mov rcx, r14
nop
nop
movzx eax, byte [rsp + rcx + 0x200]
mov byte [rsp + rcx + 0x400], al
add rcx, r12
test al, al
jne 0x403150
mov byte [rsp + 0x42c], al
jmp 0x403173
mov edi, dword [rsp + 0x50]
test edi, edi
jne 0x40317a
mov r12d, r14d
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov rdx, qword [0x0046b920]
cmp dword [rdx - 0x10], 0
je 0x403245
mov r8d, 8
lea rdx, [rsp + 0x80]
lea rcx, [0x0046b920]
call fcn.004024f0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [0x0046b938]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x403215
cmp dword [rdi + 0x10], 0
jl 0x403204
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x403204
call fcn.00401860
mov rbx, rax
mov ecx, r15d
lock xadd dword [rdi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x4031f7
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
lea rax, [rbx + 0x18]
mov qword [0x0046b938], rax
jmp 0x403215
mov r8d, dword [rdx - 0x10]
lea rcx, [0x0046b938]
call fcn.00401b20
nop
mov rdx, qword [rsp + 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x403240
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
mov rbx, qword [rsp + 0x60]
jmp 0x403245
mov rbx, qword [rsp + 0x60]
cmp r12d, 1
jne 0x40361c
mov eax, r14d
cmp r13d, 0x5a
mov ecx, 5
cmovl eax, ecx
add r13d, eax
mov dword [rsp + 0x54], r13d
movsxd r8, r13d
xor r9d, r9d
mov edx, 0x402
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_SendMessageA]
mov rdx, r14
nop
nop
nop
nop
movzx eax, byte [rsp + rdx + 0x400]
mov byte [rsp + rdx + 0x700], al
add rdx, 1
test al, al
jne 0x403290
mov byte [rsp + 0x725], al
xor eax, eax
mov rcx, r15
lea rdi, str.CC_0401
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.CC_0401
lea rcx, [rsp + 0x60]
call fcn.00401b20
lea rdx, str.VEN_1106DEV_3059SUBSYS_81221584
lea rcx, [rsp + 0x700]
call fcn.0042eda0
test rax, rax
je 0x403349
mov qword [rsp + 0x40], r14
lea rax, [rsp + 0x58]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0xf003f
mov dword [rsp + 0x20], r14d
xor r9d, r9d
xor r8d, r8d
lea rdx, str.SystemCurrentControlSetControlProcessor
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x403349
lea rdx, str.CstateFlags
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea r8, str.RealtekInstallShield
lea rdx, [0x0046b5f8]
lea rcx, [rsp + 0x88]
call fcn.00402800
lea r8, [rsp + 0x58]
mov rdx, qword [rax]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
sete dil
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x4033a3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
test dil, dil
je 0x4033e3
mov dword [rsp + 0x28], 0x100
lea rax, [rsp + 0x700]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, str.PnPID
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r12d, 1
mov esi, r14d
mov ebp, r14d
mov rbx, qword [rsp + 0x60]
cmp dword [0x0046b5f0], r12d
jl 0x4035ac
lea r13, [0x0046b798]
nop
nop
mov rcx, r14
nop
nop
nop
nop
movzx eax, byte [rsp + rcx + 0x600]
mov byte [rsp + rcx + 0x300], al
add rcx, 1
test al, al
jne 0x403420
mov rdx, qword [r13]
lea rdi, [rsp + 0x300]
xor eax, eax
mov rcx, r15
repne scasb al, byte [rdi]
xor ecx, ecx
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x403450
lea rdx, [0x0044d73c]
lea rcx, [rsp + 0x300]
call fcn.0042f3c0
mov rdi, rax
test rax, rax
je 0x40353a
mov r8, rax
mov edx, 0xff
lea rcx, [rsp + 0x900]
call fcn.0042efe0
test rax, rax
je 0x40353a
nop
lea rdx, [rsp + 0x700]
lea rcx, [rsp + 0x900]
call fcn.0042eda0
test rax, rax
je 0x4034dc
mov rcx, r14
nop
movzx eax, byte [rsp + rcx + 0x300]
mov byte [rsp + rcx + 0x800], al
add rcx, 1
test al, al
jne 0x4034c0
mov esi, 1
mov rdx, rbx
lea rcx, [rsp + 0x900]
call fcn.0042eda0
test rax, rax
je 0x40351c
mov rcx, r14
nop
nop
nop
movzx eax, byte [rsp + rcx + 0x300]
mov byte [rsp + rcx + 0xa00], al
add rcx, 1
test al, al
jne 0x403500
mov ebp, 1
mov r8, rdi
mov edx, 0xff
lea rcx, [rsp + 0x900]
call fcn.0042efe0
test rax, rax
jne 0x4034a0
mov rcx, rdi
call fcn.0042ef30
add r12d, 1
add r13, 8
cmp r12d, dword [0x0046b5f0]
jle 0x403410
cmp ebp, 1
jne 0x403577
mov rcx, r14
nop
movzx eax, byte [rsp + rcx + 0xa00]
mov byte [rsp + rcx + 0x500], al
add rcx, 1
test al, al
jne 0x403560
cmp esi, 1
jne 0x40359c
mov rcx, r14
nop
movzx eax, byte [rsp + rcx + 0x800]
mov byte [rsp + rcx + 0x500], al
add rcx, 1
test al, al
jne 0x403580
jmp 0x4037d9
test esi, esi
jne 0x4037d9
test ebp, ebp
jne 0x4037d9
mov rcx, r14
nop
movzx eax, byte [rsp + rcx + 0x600]
mov byte [rsp + rcx + 0x300], al
add rcx, 1
test al, al
jne 0x4035b0
lea rdi, [rsp + 0x300]
xor eax, eax
mov rcx, r15
repne scasb al, byte [rdi]
mov rdx, qword [0x0046b798]
xor ecx, ecx
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x4035e0
mov rcx, r14
nop
nop
nop
nop
movzx eax, byte [rsp + rcx + 0x300]
mov byte [rsp + rcx + 0x500], al
add rcx, 1
test al, al
jne 0x403600
jmp 0x4037d9
test r12d, r12d
jne 0x4037d9
mov r13d, 1
cmp dword [0x0046b5f0], r13d
jl 0x4037d9
mov rbp, r14
lea rdx, [0x0046b798]
lea rbx, [0x0046b600]
nop
nop
mov rcx, r14
nop
nop
nop
nop
movzx eax, byte [rsp + rcx + 0x600]
mov byte [rsp + rcx + 0x300], al
add rcx, 1
test al, al
jne 0x403660
mov rdx, qword [rdx + rbp]
lea rdi, [rsp + 0x300]
xor eax, eax
mov rcx, r15
repne scasb al, byte [rdi]
xor ecx, ecx
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x403690
xor eax, eax
mov rcx, r15
lea rdi, [rsp + 0x300]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
jne 0x40371f
mov rax, qword [rbx + rbp + 8]
lea rdx, [rax - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], ecx
je 0x40379f
cmp dword [rdx + 0x10], ecx
jge 0x4036f0
cmp dword [rax - 0xc], ecx
jl 0x4037bc
mov dword [rax - 0x10], r14d
mov rax, qword [rbx + rbp + 8]
mov byte [rax], cl
jmp 0x40379f
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x403708
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 [rbx + rbp + 8], rax
jmp 0x40379f
lea rsi, [rbx + rbp + 8]
mov rax, qword [rsi]
mov ebx, dword [rax - 0x10]
lea r12, [rsp + 0x300]
sub r12, rax
mov ecx, 1
sub ecx, dword [rax - 8]
mov eax, dword [rax - 0xc]
sub eax, edi
or eax, ecx
jge 0x403750
mov edx, edi
mov rcx, rsi
call fcn.00401800
mov rcx, qword [rsi]
cmp r12, rbx
ja 0x40376c
movsxd rbx, edi
lea r8, [rcx + r12]
mov r9, rbx
mov rdx, rbx
call fcn.0042e9e0
jmp 0x403782
movsxd rbx, edi
mov r9, rbx
lea r8, [rsp + 0x300]
mov rdx, rbx
call fcn.0042e900
test edi, edi
js 0x4037ce
mov rax, qword [rsi]
cmp edi, dword [rax - 0xc]
jg 0x4037ce
mov dword [rax - 0x10], edi
mov rax, qword [rsi]
mov byte [rbx + rax], 0
lea rbx, [0x0046b600]
add r13d, 1
add rbp, 8
cmp r13d, dword [0x0046b5f0]
jg 0x4037c7
lea rdx, [0x0046b798]
jmp 0x403650
mov ecx, 0x80070057
call entry0
int3
mov rbx, qword [rsp + 0x60]
jmp 0x4037d9
mov ecx, 0x80070057
call entry0
int3
lea rdx, str.VEN_8086
lea rcx, [rsp + 0x400]
call fcn.0042eda0
test rax, rax
jne 0x40394c
lea rdx, str.VEN_1106
lea rcx, [rsp + 0x400]
call fcn.0042eda0
test rax, rax
jne 0x40394c
lea rdx, str.VEN_1039
lea rcx, [rsp + 0x400]
call fcn.0042eda0
test rax, rax
jne 0x40394c
lea rdx, str.VEN_10B9
lea rcx, [rsp + 0x400]
call fcn.0042eda0
test rax, rax
jne 0x40394c
lea rdx, str.VEN_1022
lea rcx, [rsp + 0x400]
call fcn.0042eda0
test rax, rax
jne 0x40394c
lea rdx, str.VEN_1002
lea rcx, [rsp + 0x400]
call fcn.0042eda0
test rax, rax
jne 0x40394c
lea rdx, str.VEN_10DE
lea rcx, [rsp + 0x400]
call fcn.0042eda0
test rax, rax
jne 0x40394c
mov rdx, qword [0x0046b938]
lea rcx, [rsp + 0x400]
call fcn.0042eda0
test rax, rax
jne 0x40394c
mov edi, 1
cmp dword [0x0046b5f0], edi
jl 0x4039e7
lea rsi, [0x0046b608]
nop
nop
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x104
lea rax, [rsp + 0xb00]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 1]
mov rcx, qword [rsi]
call qword [sym.imp.SETUPAPI.dll_SetupCopyOEMInfA]
test eax, eax
je 0x403929
add edi, 1
add rsi, 8
cmp edi, dword [0x0046b5f0]
jle 0x4038e0
jmp 0x4039e7
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r15d
add r15d, 0xffffffff
test r15d, r15d
jg 0x403945
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
xor eax, eax
jmp 0x403a36
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 1
lea r8, [rsp + 0x500]
lea rdx, [rsp + 0x400]
xor ecx, ecx
call sub.newdev.dll_UpdateDriverForPlugAndPlayDevicesA
test eax, eax
jne 0x4039e7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
lea rax, [rsp + 0x78]
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 + 0x78]
test rcx, rcx
je 0x4039be
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r15d
add r15d, 0xffffffff
test r15d, r15d
jg 0x4039e3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
xor eax, eax
jmp 0x403a36
mov eax, dword [rsp + 0x54]
cmp eax, 0x5a
mov ecx, 5
cmovl r14d, ecx
add eax, r14d
movsxd r8, eax
xor r9d, r9d
mov edx, 0x402
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_SendMessageA]
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r15d
add r15d, 0xffffffff
test r15d, r15d
jg 0x403a31
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
mov eax, 1
mov rcx, qword [rsp + 0xc10]
xor rcx, rsp
call fcn.0042ddb0
mov rbx, qword [rsp + 0xc70]
mov rbp, qword [rsp + 0xc78]
mov rsi, qword [rsp + 0xc50]
mov rdi, qword [rsp + 0xc48]
mov r12, qword [rsp + 0xc40]
mov r13, qword [rsp + 0xc38]
mov r14, qword [rsp + 0xc30]
mov r15, qword [rsp + 0xc28]
add rsp, 0xc58
ret