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

Disassembly:
push 0xffffffffffffffff
push 0x433e06
mov eax, dword fs:[0]
push eax
sub esp, 0xb80
mov eax, dword [0x4464fc]
xor eax, esp
mov dword [esp + 0xb7c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4464fc]
xor eax, esp
push eax
lea eax, [esp + 0xb94]
mov dword fs:[0], eax
mov eax, dword [esp + 0xba8]
push 0xff
xor ebp, ebp
lea ecx, [esp + 0x28d]
push ebp
push ecx
mov dword [esp + 0x30], eax
mov byte [esp + 0x294], 0
call fcn.0041fec0
push 0xff
lea edx, [esp + 0x499]
push ebp
push edx
mov byte [esp + 0x4a0], 0
call fcn.0041fec0
push 0xff
lea eax, [esp + 0x9a5]
push ebp
push eax
mov byte [esp + 0x9ac], 0
call fcn.0041fec0
push 0xff
lea ecx, [esp + 0x8b1]
push ebp
push ecx
mov byte [esp + 0x8b8], 0
call fcn.0041fec0
add esp, 0x30
call fcn.0040f123
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x402641
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x1c], ebx
push 0x100
lea ecx, [esp + 0x58c]
push ecx
mov dword [esp + 0xba4], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x20], ebp
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [esp + 0x588]
add eax, 0xffffffff
lea ecx, [ecx]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x402680
mov edx, dword [str.Temp_]
mov cx, word [0x437c20]
mov dword [eax], edx
mov dl, byte [0x437c22]
mov word [eax + 4], cx
mov byte [eax + 6], dl
xor eax, eax
jmp 0x4026b0
mov cl, byte [esp + eax + 0x588]
mov byte [esp + eax + 0x288], cl
add eax, 1
test cl, cl
jne 0x4026b0
mov eax, dword [0x447a84]
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4026d0
lea edi, [esp + 0x288]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x4026e5
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [esp + 0x48]
rep movsb byte es:[edi], byte [esi]
push eax
lea ecx, [esp + 0x28c]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
or edi, 0xffffffff
cmp eax, edi
jne 0x402746
cmp dword [esp + 0x28], ebp
jne 0x402746
lea eax, [ebx - 0x10]
mov dword [esp + 0xb9c], edi
lea edx, [eax + 0xc]
lock xadd dword [edx], edi
dec edi
test edi, edi
jg 0x40273f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x40337e
push 6
push ebp
push 0x437c18
push ebp
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
mov esi, eax
cmp esi, edi
jne 0x40278f
push str.SetupDiCreateDeviceInfoList
call fcn.004021d0
lea eax, [ebx - 0x10]
add esp, 4
mov dword [esp + 0xb9c], edi
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x40273f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x40337e
mov ebx, dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
lea ecx, [esp + 0x2c]
push ecx
xor edi, edi
push edi
mov ebp, 1
push esi
mov dword [esp + 0x38], 0x1c
mov dword [esp + 0x20], ebp
call ebx
test eax, eax
je 0x402d53
mov ebp, dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdA]
nop
push 0
push 0x100
lea edx, [esp + 0x190]
push edx
lea eax, [esp + 0x38]
push eax
push esi
call ebp
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
xor ecx, ecx
cmp eax, 0x5a
setge cl
push 0
sub ecx, 1
and ecx, 5
add eax, ecx
push eax
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x20]
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x447b48]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
je 0x40282f
mov eax, dword [0x447b48]
cmp dword [eax - 0xc], 0
jne 0x402c1d
mov ecx, dword [0x447b50]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c27
mov eax, dword [0x447b6c]
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c31
mov edx, dword [0x447bac]
push edx
lea eax, [esp + 0x18c]
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c3b
mov ecx, dword [0x447ba4]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c45
mov eax, dword [0x447b7c]
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c4f
mov edx, dword [0x447bc0]
push edx
lea eax, [esp + 0x18c]
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c59
mov ecx, dword [0x447bbc]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c63
mov eax, dword [0x447b74]
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c6d
mov edx, dword [0x447b60]
push edx
lea eax, [esp + 0x18c]
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c77
mov ecx, dword [0x447b4c]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c81
mov eax, dword [0x447b94]
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c8b
mov edx, dword [0x447ba0]
push edx
lea eax, [esp + 0x18c]
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c95
mov ecx, dword [0x447bc4]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402c9f
mov eax, dword [0x447b64]
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402ca9
mov edx, dword [0x447ba8]
push edx
lea eax, [esp + 0x18c]
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402cb3
mov ecx, dword [0x447bb8]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402cba
mov eax, dword [0x447b70]
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402cc1
mov edx, dword [0x447bc8]
push edx
lea eax, [esp + 0x18c]
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402cc8
mov ecx, dword [0x447b5c]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402ccf
mov eax, dword [0x447bb4]
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402cd6
mov edx, dword [0x447b68]
push edx
lea eax, [esp + 0x18c]
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402cdd
mov ecx, dword [0x447b90]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402ce4
mov eax, dword [0x447b8c]
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402ceb
mov edx, dword [0x447b88]
push edx
lea eax, [esp + 0x18c]
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402cf2
mov ecx, dword [0x447b78]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402cf9
mov eax, dword [0x447bb0]
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402d00
mov edx, dword [0x447bcc]
push edx
lea eax, [esp + 0x18c]
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402d07
mov ecx, dword [0x447b84]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402d0e
mov eax, dword [0x447b80]
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402d15
mov edx, dword [0x447b9c]
push edx
lea eax, [esp + 0x18c]
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402d1c
mov ecx, dword [0x447b98]
push ecx
lea edx, [esp + 0x18c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402d23
mov eax, dword [0x447b54]
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x402d2a
lea edx, [esp + 0x2c]
push edx
add edi, 1
push edi
push esi
call ebx
test eax, eax
jne 0x4027c0
jmp 0x402d5b
mov eax, 1
jmp 0x402d2f
mov eax, 2
jmp 0x402d2f
mov eax, 3
jmp 0x402d2f
mov eax, 4
jmp 0x402d2f
mov eax, 5
jmp 0x402d2f
mov eax, 6
jmp 0x402d2f
mov eax, 7
jmp 0x402d2f
mov eax, 8
jmp 0x402d2f
mov eax, 9
jmp 0x402d2f
mov eax, 0xa
jmp 0x402d2f
mov eax, 0xb
jmp 0x402d2f
mov eax, 0xc
jmp 0x402d2f
mov eax, 0xd
jmp 0x402d2f
mov eax, 0xe
jmp 0x402d2f
mov eax, 0xf
jmp 0x402d2f
mov eax, 0x10
jmp 0x402d2f
mov eax, 0x11
jmp 0x402d2f
mov eax, 0x12
jmp 0x402d2f
mov eax, 0x13
jmp 0x402d2f
mov eax, 0x14
jmp 0x402d2f
mov eax, 0x15
jmp 0x402d2f
mov eax, 0x16
jmp 0x402d2f
mov eax, 0x17
jmp 0x402d2f
mov eax, 0x18
jmp 0x402d2f
mov eax, 0x19
jmp 0x402d2f
mov eax, 0x1a
jmp 0x402d2f
mov eax, 0x1b
jmp 0x402d2f
mov eax, 0x1c
jmp 0x402d2f
mov eax, 0x1d
jmp 0x402d2f
mov eax, 0x1e
jmp 0x402d2f
mov eax, 0x1f
jmp 0x402d2f
mov eax, 0x20
jmp 0x402d2f
mov eax, 0x21
xor ecx, ecx
mov dl, byte [esp + ecx + 0x188]
mov byte [esp + ecx + 0x388], dl
add ecx, 1
test dl, dl
jne 0x402d31
mov ebp, dword [esp + 0x14]
mov byte [esp + 0x3b4], dl
jmp 0x402d57
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x402d5d
xor ebp, ebp
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov eax, dword [0x447b48]
cmp dword [eax - 0xc], 0
je 0x402dbb
push 8
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x447b48
call fcn.00402250
push eax
mov ecx, 0x447b58
mov byte [esp + 0xba0], 1
call fcn.00401b00
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0xb9c], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x402dbb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, 1
cmp ebp, edi
jne 0x40313b
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
xor ecx, ecx
cmp eax, 0x5a
setge cl
push 0
sub ecx, edi
and ecx, 5
add eax, ecx
push eax
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x20]
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
xor eax, eax
jmp 0x402e00
mov cl, byte [esp + eax + 0x388]
mov byte [esp + eax + 0x688], cl
add eax, edi
test cl, cl
jne 0x402e00
push 7
mov byte [esp + 0x6b1], cl
push str.CC_0401
lea ecx, [esp + 0x24]
call fcn.00401a70
lea ecx, [esp + 0x688]
push str.VEN_1106DEV_3059SUBSYS_81221584
push ecx
call fcn.0041fd07
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
add esp, 8
test eax, eax
je 0x402e89
push 0
lea edx, [esp + 0x24]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
push str.SystemCurrentControlSetControlProcessor
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x402e89
mov eax, dword [esp + 0x20]
push str.CstateFlags
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov ecx, dword [esp + 0x20]
push ecx
call esi
push str.RealtekInstallShield
lea edx, [esp + 0x18]
push 0x4479b4
push edx
call fcn.00402450
mov eax, dword [eax]
add esp, 0xc
lea ecx, [esp + 0x20]
push ecx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
mov eax, dword [esp + 0x14]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x402ed8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x402f03
mov edx, dword [esp + 0x20]
push 0x100
lea ecx, [esp + 0x68c]
push ecx
push edi
push 0
push str.PnPID
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esp + 0x20]
push eax
call esi
xor ebx, ebx
xor ebp, ebp
cmp dword [0x4479b0], edi
mov dword [esp + 0x14], edi
jl 0x4030bf
jmp 0x402f20
xor eax, eax
mov cl, byte [esp + eax + 0x588]
mov byte [esp + eax + 0x288], cl
add eax, 1
test cl, cl
jne 0x402f22
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx*4 + 0x447a80]
mov edx, eax
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x402f44
lea edi, [esp + 0x288]
sub eax, edx
add edi, 0xffffffff
lea esp, [esp]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x402f60
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [esp + 0x288]
and ecx, 3
push 0x437b74
push edx
rep movsb byte es:[edi], byte [esi]
call fcn.0042048d
mov esi, eax
add esp, 8
test esi, esi
je 0x403049
push esi
lea eax, [esp + 0x78c]
push 0xff
push eax
call fcn.00420242
add esp, 0xc
test eax, eax
je 0x403049
mov edi, dword [esp + 0x1c]
jmp 0x402fc0
lea ecx, [esp + 0x688]
push ecx
lea edx, [esp + 0x78c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
je 0x402ffa
xor eax, eax
mov edi, edi
mov cl, byte [esp + eax + 0x288]
mov byte [esp + eax + 0x988], cl
add eax, 1
test cl, cl
jne 0x402fe0
mov ebx, 1
lea eax, [esp + 0x788]
push edi
push eax
call fcn.00420060
add esp, 8
test eax, eax
je 0x40302b
xor eax, eax
mov cl, byte [esp + eax + 0x288]
mov byte [esp + eax + 0x888], cl
add eax, 1
test cl, cl
jne 0x403011
mov ebp, 1
push esi
lea ecx, [esp + 0x78c]
push 0xff
push ecx
call fcn.00420242
add esp, 0xc
test eax, eax
jne 0x402fc0
push esi
call fcn.004201c6
mov eax, dword [esp + 0x18]
add eax, 1
add esp, 4
cmp eax, dword [0x4479b0]
mov dword [esp + 0x14], eax
jle 0x402f20
cmp ebp, 1
jne 0x403085
xor eax, eax
mov cl, byte [esp + eax + 0x888]
mov byte [esp + eax + 0x488], cl
add eax, 1
test cl, cl
jne 0x403070
cmp ebx, 1
jne 0x4030aa
xor eax, eax
lea esp, [esp]
mov cl, byte [esp + eax + 0x988]
mov byte [esp + eax + 0x488], cl
add eax, 1
test cl, cl
jne 0x403090
jmp 0x4031ef
test ebx, ebx
jne 0x4031ef
test ebp, ebp
jne 0x4031ef
mov edi, 1
xor eax, eax
jmp 0x4030d0
mov cl, byte [esp + eax + 0x588]
mov byte [esp + eax + 0x288], cl
add eax, edi
test cl, cl
jne 0x4030d0
mov eax, dword [0x447a84]
mov edx, eax
jmp 0x4030f0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4030f0
lea edi, [esp + 0x288]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x403105
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov cl, byte [esp + eax + 0x288]
mov byte [esp + eax + 0x488], cl
add eax, 1
test cl, cl
jne 0x403121
jmp 0x4031ef
test ebp, ebp
jne 0x4031ef
cmp dword [0x4479b0], edi
mov ebx, edi
jl 0x4031ef
jmp 0x403160
xor eax, eax
mov cl, byte [esp + eax + 0x588]
mov byte [esp + eax + 0x288], cl
add eax, 1
test cl, cl
jne 0x403162
mov eax, dword [ebx*4 + 0x447a80]
mov edx, eax
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x403180
lea edi, [esp + 0x288]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x403195
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [esp + 0x288]
rep movsb byte es:[edi], byte [esi]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4031c0
sub eax, edx
push eax
lea edx, [esp + 0x28c]
push edx
lea ecx, [ebx*4 + 0x4479b8]
call fcn.00401a70
add ebx, 1
cmp ebx, dword [0x4479b0]
jle 0x403160
lea eax, [esp + 0x388]
push str.VEN_8086
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x4033b3
lea ecx, [esp + 0x388]
push str.VEN_1106
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x4033b3
lea edx, [esp + 0x388]
push str.VEN_1039
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x4033b3
lea eax, [esp + 0x388]
push str.VEN_10B9
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x4033b3
lea ecx, [esp + 0x388]
push str.VEN_1022
push ecx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x4033b3
lea edx, [esp + 0x388]
push str.VEN_1002
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x4033b3
lea eax, [esp + 0x388]
push str.VEN_10DE
push eax
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x4033b3
mov ecx, dword [0x447b58]
push ecx
lea edx, [esp + 0x38c]
push edx
call fcn.0041fd07
add esp, 8
test eax, eax
jne 0x4033b3
mov esi, 1
cmp dword [0x4479b0], esi
jl 0x403324
mov edi, dword [sym.imp.SETUPAPI.dll_SetupCopyOEMInfA]
lea esp, [esp]
mov eax, dword [esi*4 + 0x4479b8]
push 0
push 0
push 0x104
lea ecx, [esp + 0xa94]
push ecx
push 0
push 1
push 0
push eax
call edi
test eax, eax
je 0x4033a6
add esi, 1
cmp esi, dword [0x4479b0]
jle 0x4032f0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
xor ecx, ecx
cmp eax, 0x5a
setge cl
push 0
sub ecx, 1
and ecx, 5
add eax, ecx
push eax
mov eax, dword [edx + 0x20]
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [esp + 0xb9c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403379
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0xb94]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xb7c]
xor ecx, esp
call fcn.0041f013
add esp, 0xb8c
ret
lea ecx, [esp + 0x1c]
call fcn.00401780
xor eax, eax
jmp 0x40337e
lea edx, [esp + 0x28]
push edx
push 1
lea eax, [esp + 0x490]
push eax
lea ecx, [esp + 0x394]
push ecx
push 0
call sub.newdev.dll_UpdateDriverForPlugAndPlayDevicesA
test eax, eax
jne 0x403324
push str.UpdateDriverForPlugAndPlayDevices
call fcn.004021d0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 4
mov dword [esp + 0xb9c], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x402733