Function at 0x405000
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x427d97
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x4344c8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
push str.advapi32.dll
lea ecx, [esi + 0x48]
call fcn.00405640
push str.setupapi.dll
lea ecx, [esi + 0x4c]
mov dword [ebp - 4], 0
call fcn.00405640
lea ecx, [esi + 0x50]
mov byte [ebp - 4], 1
push str.newdev.dll
call fcn.00405640
lea ecx, [esi + 0x54]
mov byte [ebp - 4], 2
push str.cfgmgr32.dll
call fcn.00405640
lea ecx, [esi + 0x58]
mov byte [ebp - 4], 3
push str.printui.dll
call fcn.00405640
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x28]
push 0x10
push str.OpenProcessToken
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x48]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
test ecx, ecx
je 0x4050c5
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x4050bf
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x4050c7
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 4], eax
jb 0x4050db
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x13
push str.GetTokenInformation
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x48]
test ecx, ecx
je 0x405115
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x40510f
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x405117
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi], eax
jb 0x40512a
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x34
push str.ConvertStringSecurityDescriptorToSecurityDescriptorW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x48]
test ecx, ecx
je 0x405164
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x40515e
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x405166
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 8], eax
jb 0x40517a
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x13
push str.SetupDiGetINFClassW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x4051b4
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x4051ae
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x4051b6
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0xc], eax
jb 0x4051ca
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x1b
push str.SetupDiCreateDeviceInfoList
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x405204
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x4051fe
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x405206
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x10], eax
jb 0x40521a
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x18
push str.SetupDiCreateDeviceInfoW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x405254
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x40524e
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x405256
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x14], eax
jb 0x40526a
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x21
push str.SetupDiSetDeviceRegistryPropertyW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x4052a4
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x40529e
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x4052a6
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x18], eax
jb 0x4052ba
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x19
push str.SetupDiCallClassInstaller
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x4052f4
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x4052ee
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x4052f6
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x1c], eax
jb 0x40530a
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x16
push str.SetupDiGetClassDevsExW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x405344
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x40533e
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x405346
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x20], eax
jb 0x40535a
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x15
push str.SetupDiEnumDeviceInfo
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x405394
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x40538e
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x405396
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x24], eax
jb 0x4053aa
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x1f
push str.SetupDiGetDeviceInfoListDetailW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x4053e4
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x4053de
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x4053e6
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x28], eax
jb 0x4053fa
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x21
push str.SetupDiGetDeviceRegistryPropertyW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x405434
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x40542e
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x405436
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x2c], eax
jb 0x40544a
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x1d
push str.SetupDiSetClassInstallParamsW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x405484
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x40547e
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x405486
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x30], eax
jb 0x40549a
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x22
push str.UpdateDriverForPlugAndPlayDevicesW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x50]
test ecx, ecx
je 0x4054d4
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x4054ce
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x4054d6
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x34], eax
jb 0x4054ea
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x14
push str.CM_Get_Device_ID_ExW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x54]
test ecx, ecx
je 0x405524
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x40551e
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x405526
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x38], eax
jb 0x40553a
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x15
push str.CM_Locate_DevNode_ExW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x54]
test ecx, ecx
je 0x405574
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x40556e
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x405576
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x3c], eax
jb 0x40558a
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0x19
push str.CM_Reenumerate_DevNode_Ex
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x54]
test ecx, ecx
je 0x4055c4
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x4055be
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x4055c6
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x40], eax
jb 0x4055da
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
push 0xd
push str.PrintUIEntryW
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00403cd0
mov ecx, dword [esi + 0x58]
test ecx, ecx
je 0x405614
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x40560e
lea eax, [ebp - 0x28]
push eax
push ecx
call edi
jmp 0x405616
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov dword [esi + 0x44], eax
jb 0x40562a
push dword [ebp - 0x28]
call fcn.0041436d
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret