Function at 0x415bf0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe94
mov eax, dword [0x5d7b20]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
push str._nRemoveDeviceRelatedInf_called.__________________________________________n
push 0x56dce8
mov dword [ebp - 0xe88], eax
mov dword [ebp - 0xe78], 0
call fcn.00415550
add esp, 8
push str.setupapi.dll
mov esi, 0x258
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0xe74], eax
test eax, eax
je 0x415eb5
push str.SetupDiGetDriverInfoDetailW
push eax
mov esi, 0x25c
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xe90], eax
test eax, eax
je 0x415eb5
mov ecx, dword [ebp - 0xe74]
push str.SetupDiEnumDriverInfoW
push ecx
mov esi, 0x263
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xe7c], eax
test eax, eax
je 0x415eb5
mov edx, dword [ebp - 0xe74]
push str.SetupDiBuildDriverInfoList
push edx
mov esi, 0x26a
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xe8c], eax
test eax, eax
je 0x415eb5
mov eax, dword [ebp - 0xe74]
push str.SetupDiSetDeviceInstallParamsW
push eax
mov esi, 0x26d
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xe84], eax
test eax, eax
je 0x415eb5
mov ecx, dword [ebp - 0xe74]
push str.SetupDiGetDeviceInstallParamsW
push ecx
mov esi, 0x274
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xe94], eax
test eax, eax
je 0x415eb5
mov edx, dword [ebp - 0xe74]
push str.SetupDiDestroyDriverInfoList
push edx
mov esi, 0x27b
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xe80], eax
test eax, eax
je 0x415eb5
push 0x61c
lea eax, [ebp - 0xe70]
push 0
push eax
call fcn.0053e550
push 0x622
lea ecx, [ebp - 0x854]
push 0
push ecx
call fcn.0053e550
add esp, 0x18
lea edx, [ebp - 0x230]
push edx
push ebx
push edi
mov dword [ebp - 0xe70], 0x61c
mov dword [ebp - 0x230], 0x22c
mov esi, 0x285
call dword [ebp - 0xe94]
test eax, eax
je 0x415eb5
or dword [ebp - 0x228], 0x800
lea eax, [ebp - 0x230]
push eax
push ebx
push edi
mov esi, 0x288
call dword [ebp - 0xe84]
test eax, eax
je 0x415eb5
push 2
push ebx
push edi
mov esi, 0x28e
call dword [ebp - 0xe8c]
test eax, eax
je 0x415eb5
mov esi, dword [ebp - 0xe7c]
lea ecx, [ebp - 0xe70]
push ecx
push 0
push 2
push ebx
push edi
call esi
test eax, eax
je 0x415ea2
lea ebx, [ebx]
lea edx, [ebp - 0xe64]
push edx
push str._Description:__s_n
call fcn.00415550
add esp, 8
push 0
push 0x622
lea eax, [ebp - 0x854]
push eax
lea ecx, [ebp - 0xe70]
push ecx
push ebx
push edi
mov dword [ebp - 0x854], 0x622
call dword [ebp - 0xe90]
test eax, eax
jne 0x415e2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x415e7f
mov ecx, dword [ebp - 0xe88]
lea edx, [ebp - 0x63c]
push edx
call fcn.00459361
push 0x56e6a0
push 0x56dce8
call fcn.00415550
lea eax, [ebp - 0x63c]
push eax
push str._InfFileName_:__s_n
call fcn.00415550
lea ecx, [ebp - 0x83c]
push ecx
push str._SectionName_:__s_n
call fcn.00415550
push 0x56e6a0
push 0x56dce8
call fcn.00415550
add esp, 0x20
mov eax, dword [ebp - 0xe78]
lea edx, [ebp - 0xe70]
push edx
inc eax
push eax
push 2
push ebx
push edi
mov dword [ebp - 0xe78], eax
call esi
test eax, eax
jne 0x415de0
push 2
push ebx
push edi
mov esi, 0x2a4
call dword [ebp - 0xe80]
test eax, eax
jne 0x415eed
push esi
push 0x56e62c
call fcn.00415550
mov eax, dword [ebp - 0xe74]
add esp, 8
test eax, eax
je 0x415ed4
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0053e1ad
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp - 0xe74]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.0053e1ad
mov esp, ebp
pop ebp
ret 0xc