Function at 0x410d90
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov ebx, ecx
push str.setupapi.dll
mov dword [ebx], 0
mov dword [ebx + 4], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
test esi, esi
jne 0x410df5
push str.setupapi.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
mov dword [ebx], esi
test esi, esi
jne 0x410df5
push 1
lea eax, [ebp - 4]
push eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], str.bad_allocation
call fcn.0051d79a
mov dword [ebp - 0x10], vtable.std::bad_alloc.0
push 0x58e000
lea ecx, [ebp - 0x10]
push ecx
call fcn.0051e710
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SetupDefaultQueueCallbackW
push esi
call edi
mov dword [0x5a809c], eax
test eax, eax
jne 0x410e37
push 1
lea edx, [ebp - 4]
push edx
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], str.bad_allocation
call fcn.0051d79a
push 0x58e000
lea eax, [ebp - 0x10]
push eax
mov dword [ebp - 0x10], vtable.std::bad_alloc.0
call fcn.0051e710
push str.SetupDiGetINFClassW
push esi
call edi
mov dword [0x5a80a0], eax
test eax, eax
jne 0x410e72
push 1
lea ecx, [ebp - 4]
push ecx
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], str.bad_allocation
call fcn.0051d79a
push 0x58e000
lea edx, [ebp - 0x10]
push edx
mov dword [ebp - 0x10], vtable.std::bad_alloc.0
call fcn.0051e710
push str.SetupDiDestroyDeviceInfoList
push esi
call edi
mov dword [0x5a80a4], eax
test eax, eax
je 0x410dcb
push str.SetupDiDeleteDeviceInfo
push esi
call edi
mov dword [0x5a80a8], eax
test eax, eax
jne 0x410ec2
push 1
lea edx, [ebp - 4]
push edx
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], str.bad_allocation
call fcn.0051d79a
push 0x58e000
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], vtable.std::bad_alloc.0
push eax
jmp 0x410df0
push str.SetupDiDestroyDriverInfoList
push esi
call edi
mov dword [0x5a80ac], eax
test eax, eax
jne 0x410ee0
lea ecx, [ebp - 0x10]
call fcn.00410cd0
jmp 0x410de7
push str.SetupDiGetDriverInstallParamsW
push esi
call edi
mov dword [0x5a80b0], eax
test eax, eax
jne 0x410f07
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea edx, [ebp - 0x10]
push edx
jmp 0x410df0
push str.SetupCloseInfFile
push esi
call edi
mov dword [0x5a80b4], eax
test eax, eax
jne 0x410f2e
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea eax, [ebp - 0x10]
push eax
jmp 0x410df0
push str.SetupDiGetActualSectionToInstallW
push esi
call edi
mov dword [0x5a80b8], eax
test eax, eax
jne 0x410f4c
lea ecx, [ebp - 0x10]
call fcn.00410cd0
jmp 0x410de7
push str.SetupOpenInfFileW
push esi
call edi
mov dword [0x5a80bc], eax
test eax, eax
jne 0x410f73
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea edx, [ebp - 0x10]
push edx
jmp 0x410df0
push str.SetupDiGetDriverInfoDetailW
push esi
call edi
mov dword [0x5a80c0], eax
test eax, eax
jne 0x410f9a
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea eax, [ebp - 0x10]
push eax
jmp 0x410df0
push str.SetupDiEnumDriverInfoW
push esi
call edi
mov dword [0x5a80c4], eax
test eax, eax
jne 0x410fb8
lea ecx, [ebp - 0x10]
call fcn.00410cd0
jmp 0x410de7
push str.SetupDiBuildDriverInfoList
push esi
call edi
mov dword [0x5a80c8], eax
test eax, eax
jne 0x410fdf
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea edx, [ebp - 0x10]
push edx
jmp 0x410df0
push str.SetupDiSetDeviceInstallParamsW
push esi
call edi
mov dword [0x5a80cc], eax
test eax, eax
jne 0x411006
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea eax, [ebp - 0x10]
push eax
jmp 0x410df0
push str.SetupDiSetDeviceRegistryPropertyW
push esi
call edi
mov dword [0x5a80d0], eax
test eax, eax
jne 0x411024
lea ecx, [ebp - 0x10]
call fcn.00410cd0
jmp 0x410de7
push str.SetupDiCreateDeviceInfoW
push esi
call edi
mov dword [0x5a80d4], eax
test eax, eax
jne 0x41104b
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea edx, [ebp - 0x10]
push edx
jmp 0x410df0
push str.SetupDiCreateDeviceInfoList
push esi
call edi
mov dword [0x5a80d8], eax
test eax, eax
jne 0x411072
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea eax, [ebp - 0x10]
push eax
jmp 0x410df0
push str.SetupInstallFromInfSectionW
push esi
call edi
mov dword [0x5a80dc], eax
test eax, eax
jne 0x411090
lea ecx, [ebp - 0x10]
call fcn.00410cd0
jmp 0x410de7
push str.SetupTermDefaultQueueCallback
push esi
call edi
mov dword [0x5a80e0], eax
test eax, eax
jne 0x4110b7
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea edx, [ebp - 0x10]
push edx
jmp 0x410df0
push str.SetupCloseFileQueue
push esi
call edi
mov dword [0x5a80e4], eax
test eax, eax
jne 0x4110de
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea eax, [ebp - 0x10]
push eax
jmp 0x410df0
push str.SetupIterateCabinetW
push esi
call edi
mov dword [0x5a80e8], eax
test eax, eax
jne 0x4110fc
lea ecx, [ebp - 0x10]
call fcn.00410cd0
jmp 0x410de7
push str.SetupCommitFileQueueW
push esi
call edi
mov dword [0x5a80ec], eax
test eax, eax
jne 0x411123
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea edx, [ebp - 0x10]
push edx
jmp 0x410df0
push str.SetupInstallFilesFromInfSectionW
push esi
call edi
mov dword [0x5a80f0], eax
test eax, eax
jne 0x41114a
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea eax, [ebp - 0x10]
push eax
jmp 0x410df0
push str.SetupOpenFileQueue
push esi
call edi
mov dword [0x5a80f4], eax
test eax, eax
jne 0x411168
lea ecx, [ebp - 0x10]
call fcn.00410cd0
jmp 0x410de7
push str.SetupInitDefaultQueueCallbackEx
push esi
call edi
mov dword [0x5a80f8], eax
test eax, eax
jne 0x41118f
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea edx, [ebp - 0x10]
push edx
jmp 0x410df0
push str.SetupDiGetClassDevsW
push esi
call edi
mov dword [0x5a80fc], eax
test eax, eax
jne 0x4111b6
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea eax, [ebp - 0x10]
push eax
jmp 0x410df0
push str.SetupSetDirectoryIdW
push esi
call edi
mov dword [0x5a8104], eax
test eax, eax
jne 0x4111d4
lea ecx, [ebp - 0x10]
call fcn.00410cd0
jmp 0x410de7
push str.SetupQueueCopyW
push esi
call edi
mov dword [0x5a8110], eax
test eax, eax
jne 0x4111fb
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea edx, [ebp - 0x10]
push edx
jmp 0x410df0
push str.mscms.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
test esi, esi
jne 0x411236
push str.mscms.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
mov dword [ebx + 4], esi
test esi, esi
jne 0x411236
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea eax, [ebp - 0x10]
push eax
jmp 0x410df0
push str.GetColorDirectoryW
push esi
call edi
mov dword [0x5a8100], eax
test eax, eax
jne 0x411254
lea ecx, [ebp - 0x10]
call fcn.00410cd0
jmp 0x410de7
push str.InstallColorProfileW
push esi
call edi
mov dword [0x5a8108], eax
test eax, eax
jne 0x41127b
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea edx, [ebp - 0x10]
push edx
jmp 0x410df0
push str.AssociateColorProfileWithDeviceW
push esi
call edi
mov dword [0x5a810c], eax
pop edi
test eax, eax
jne 0x4112a3
lea ecx, [ebp - 0x10]
call fcn.00410cd0
push 0x58e000
lea eax, [ebp - 0x10]
push eax
jmp 0x410df0
push str.CInitAPI::CInitAPI_all_function_pointer_has_been_initialized._n
push 4
call fcn.00403750
add esp, 8
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret