Function at 0x100076c0
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0x130
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push esi
push edi
push str.setupapi.dll
call ebx
mov esi, eax
test esi, esi
je 0x100079d8
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SetupDiGetClassDevsA
push esi
call edi
test eax, eax
mov dword [0x10028374], eax
jne 0x1000770d
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, 0xbc2
pop ebx
add esp, 0x130
ret
push str.SetupDiDestroyDeviceInfoList
push esi
call edi
test eax, eax
mov dword [0x10028370], eax
jne 0x10007734
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, 0xbc2
pop ebx
add esp, 0x130
ret
push str.SetupDiEnumDeviceInfo
push esi
call edi
test eax, eax
mov dword [0x10028378], eax
jne 0x1000775b
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, 0xbc2
pop ebx
add esp, 0x130
ret
push str.SetupDiRemoveDevice
push esi
call edi
test eax, eax
mov dword [0x1002837c], eax
jne 0x10007782
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, 0xbc2
pop ebx
add esp, 0x130
ret
push str.SetupDiCallClassInstaller
push esi
call edi
test eax, eax
mov dword [0x10028380], eax
jne 0x100077a9
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, 0xbc2
pop ebx
add esp, 0x130
ret
push str.SetupDiGetINFClassA
push esi
call edi
test eax, eax
mov dword [0x10028384], eax
jne 0x100077d0
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, 0xbc2
pop ebx
add esp, 0x130
ret
push str.SetupDiCreateDeviceInfoList
push esi
call edi
test eax, eax
mov dword [0x10028388], eax
jne 0x100077f7
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, 0xbc2
pop ebx
add esp, 0x130
ret
push str.SetupDiCreateDeviceInfoA
push esi
call edi
test eax, eax
mov dword [0x1002838c], eax
jne 0x1000781e
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, 0xbc2
pop ebx
add esp, 0x130
ret
push str.SetupDiSetDeviceRegistryPropertyA
push esi
call edi
test eax, eax
mov dword [0x10028390], eax
jne 0x10007845
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, 0xbc2
pop ebx
add esp, 0x130
ret
push str.SetupDiGetDeviceRegistryPropertyA
push esi
call edi
test eax, eax
mov dword [0x10028394], eax
jne 0x1000786c
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, 0xbc2
pop ebx
add esp, 0x130
ret
push str.newdev.dll
call ebx
mov ebx, eax
test ebx, ebx
je 0x10007886
push str.UpdateDriverForPlugAndPlayDevicesA
push ebx
call edi
mov dword [0x10028398], eax
mov edx, dword [esp + 0x144]
push 0
lea eax, [esp + 0x40]
push 0x100
lea ecx, [esp + 0x18]
push eax
push ecx
push edx
call dword [0x10028384]
test al, al
jne 0x100078c8
push esi
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
test ebx, ebx
je 0x100078ec
push ebx
call esi
pop edi
pop esi
mov eax, 0xbc4
pop ebx
add esp, 0x130
ret
lea eax, [esp + 0x10]
push 0
push eax
call dword [0x10028388]
mov edi, eax
cmp edi, 0xffffffff
jne 0x100078fb
push esi
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
test ebx, ebx
je 0x100078ec
push ebx
call esi
pop edi
pop esi
mov eax, 0xbc4
pop ebx
add esp, 0x130
ret
lea ecx, [esp + 0x20]
push ebp
push ecx
push 1
push 0
lea edx, [esp + 0x20]
push 0
lea eax, [esp + 0x50]
push edx
push eax
push edi
mov dword [esp + 0x40], 0x1c
call dword [0x1002838c]
test al, al
je 0x100079a0
mov ebp, dword [esp + 0x144]
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 2
lea ecx, [esp + 0x24]
push eax
push ebp
push 1
push ecx
push edi
call dword [0x10028390]
test al, al
je 0x100079a0
lea edx, [esp + 0x24]
push edx
push edi
push 0x19
call dword [0x10028380]
test al, al
je 0x100079a0
test ebx, ebx
je 0x100079a0
mov ecx, dword [esp + 0x148]
lea eax, [esp + 0x10]
push eax
push 1
push ecx
push ebp
push 0
mov dword [esp + 0x24], 0
call dword [0x10028398]
test al, al
jne 0x100079a0
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [esp + 0x24]
mov ebp, eax
push edx
push edi
push 5
call dword [0x10028380]
push ebp
call dword [sym.imp.KERNEL32.dll_SetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
mov ebp, eax
call dword [0x10028370]
push ebp
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
test ebx, ebx
je 0x100079c6
push ebx
call esi
xor eax, eax
test ebp, ebp
pop ebp
pop edi
pop esi
pop ebx
sete al
add esp, 0x130
ret
pop edi
pop esi
mov eax, 0xbc3
pop ebx
add esp, 0x130
ret