Function at 0x40115e
Capabilities:
Link many functions at runtime

Disassembly:
jmp 0x402380
sub esp, 0xc
call fcn.00401294
cmp eax, 2
jne 0x402393
xor eax, eax
add esp, 0xc
ret
push edi
xor edi, edi
cmp dword [0x44368c], edi
je 0x4023ae
mov eax, 1
add dword [0x44368c], eax
pop edi
add esp, 0xc
ret
push ebx
mov bl, byte [esp + 0x18]
test bl, 1
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
je 0x40241a
push edi
push edi
push str.newdev.dll
call esi
cmp eax, edi
mov dword [0x443694], eax
jne 0x40241a
lea eax, [esp + 0xc]
push eax
call fcn.00401087
add esp, 4
mov ecx, eax
call fcn.0040113b
push eax
mov ecx, 0x4436a4
call fcn.0040113b
push eax
push str._sCannot_load_library_newdev.dll:__s_n
push 0x4436a4
call fcn.00401055
add esp, 0x10
lea ecx, [esp + 0xc]
call fcn.004010a5
call fcn.0040123a
pop esi
pop ebx
xor eax, eax
pop edi
add esp, 0xc
ret
test bl, 2
je 0x40247a
push edi
push edi
push str.setupapi.dll
call esi
cmp eax, edi
mov dword [0x443698], eax
jne 0x40247f
lea ecx, [esp + 0xc]
push ecx
call fcn.00401087
add esp, 4
mov ecx, eax
call fcn.0040113b
push eax
mov ecx, 0x4436a4
call fcn.0040113b
push eax
push str._sCannot_load_library_setupapi.dll:__s_n
push 0x4436a4
call fcn.00401055
add esp, 0x10
lea ecx, [esp + 0xc]
call fcn.004010a5
call fcn.0040123a
pop esi
pop ebx
xor eax, eax
pop edi
add esp, 0xc
ret
mov eax, dword [0x443698]
test bl, 4
je 0x4024e4
push edi
push edi
push str.cfgmgr32.dll
call esi
cmp eax, edi
mov dword [0x44369c], eax
jne 0x4024df
lea edx, [esp + 0xc]
push edx
call fcn.00401087
add esp, 4
mov ecx, eax
call fcn.0040113b
push eax
mov ecx, 0x4436a4
call fcn.0040113b
push eax
push str._sCannot_load_library_cfgmgr32.dll:__s_n
push 0x4436a4
call fcn.00401055
add esp, 0x10
lea ecx, [esp + 0xc]
call fcn.004010a5
call fcn.0040123a
pop esi
pop ebx
xor eax, eax
pop edi
add esp, 0xc
ret
mov eax, dword [0x443698]
test bl, 8
je 0x402549
push edi
push edi
push str.difxapi.dll
call esi
cmp eax, edi
mov dword [0x4436a0], eax
jne 0x402544
lea eax, [esp + 0xc]
push eax
call fcn.00401087
add esp, 4
mov ecx, eax
call fcn.0040113b
push eax
mov ecx, 0x4436a4
call fcn.0040113b
push eax
push str._sCannot_load_library_difxapi.dll:__s_n
push 0x4436a4
call fcn.00401055
add esp, 0x10
lea ecx, [esp + 0xc]
call fcn.004010a5
call fcn.0040123a
pop esi
pop ebx
xor eax, eax
pop edi
add esp, 0xc
ret
mov eax, dword [0x443698]
cmp eax, edi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
je 0x40259c
push str.SetupDiGetClassDevsA
push eax
call esi
cmp eax, edi
mov dword [0x44363c], eax
jne 0x4025df
mov ecx, dword [0x443698]
cmp ecx, dword [0x443694]
mov esi, str.newdev.dll
je 0x40257c
mov esi, str.setupapi.dll
lea edx, [esp + 0xc]
push edx
call fcn.00401087
add esp, 4
mov ecx, eax
call fcn.0040113b
push eax
push esi
push str.SetupDiGetClassDevsA
jmp 0x402728
mov dword [0x44363c], edi
mov dword [0x443670], edi
mov dword [0x4435d8], edi
mov dword [0x4435e8], edi
mov dword [0x4435e0], edi
mov ecx, dword [0x443694]
cmp ecx, edi
je 0x40275c
push str.UpdateDriverForPlugAndPlayDevicesA
push ecx
call esi
mov dword [0x443658], eax
mov eax, dword [0x443698]
jmp 0x402762
mov eax, dword [0x443698]
cmp eax, edi
je 0x4025a2
push str.SetupDiEnumDeviceInfo
push eax
call esi
mov dword [0x443670], eax
cmp eax, edi
mov eax, dword [0x443698]
jne 0x402630
cmp eax, dword [0x443694]
mov esi, str.newdev.dll
je 0x402610
mov esi, str.setupapi.dll
lea ecx, [esp + 0xc]
push ecx
call fcn.00401087
add esp, 4
mov ecx, eax
call fcn.0040113b
push eax
push esi
push str.SetupDiEnumDeviceInfo
jmp 0x402728
cmp eax, edi
je 0x4025a8
push str.SetupDiGetDeviceRegistryPropertyA
push eax
call esi
cmp eax, edi
mov dword [0x4435d8], eax
jne 0x402681
mov edx, dword [0x443698]
cmp edx, dword [0x443694]
mov esi, str.newdev.dll
je 0x402661
mov esi, str.setupapi.dll
lea eax, [esp + 0xc]
push eax
call fcn.00401087
add esp, 4
mov ecx, eax
call fcn.0040113b
push eax
push esi
push str.SetupDiGetDeviceRegistryPropertyA
jmp 0x402728
mov eax, dword [0x443698]
cmp eax, edi
je 0x4025ae
push str.SetupDiGetDeviceRegistryPropertyW
push eax
call esi
cmp eax, edi
mov dword [0x4435e8], eax
jne 0x4026d4
mov ecx, dword [0x443698]
cmp ecx, dword [0x443694]
mov esi, str.newdev.dll
je 0x4026b7
mov esi, str.setupapi.dll
lea edx, [esp + 0xc]
push edx
call fcn.00401087
add esp, 4
mov ecx, eax
call fcn.0040113b
push eax
push esi
push str.SetupDiGetDeviceRegistryPropertyW
jmp 0x402728
mov eax, dword [0x443698]
cmp eax, edi
je 0x4025b4
push str.SetupDiDestroyDeviceInfoList
push eax
call esi
mov dword [0x4435e0], eax
cmp eax, edi
mov eax, dword [0x443698]
jne 0x4025ba
cmp eax, dword [0x443694]
mov esi, str.newdev.dll
je 0x40270d
mov esi, str.setupapi.dll
lea ecx, [esp + 0xc]
push ecx
call fcn.00401087
add esp, 4
mov ecx, eax
call fcn.0040113b
push eax
push esi
push str.SetupDiDestroyDeviceInfoList
mov ecx, 0x4436a4
call fcn.0040113b
push eax
push str._sCannot_find_the_function__s_in__s:__s_n
push 0x4436a4
call fcn.00401055
add esp, 0x18
lea ecx, [esp + 0xc]
call fcn.004010a5
call fcn.0040123a
pop esi
pop ebx
xor eax, eax
pop edi
add esp, 0xc
ret
mov dword [0x443658], edi
cmp eax, edi
je 0x402ac1
push str.SetupDiSetDeviceRegistryPropertyA
push eax
call esi
mov dword [0x44361c], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402ac7
push str.SetupDiOpenDeviceInfoA
push eax
call esi
mov dword [0x44362c], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402acd
push str.SetupCopyOEMInfA
push eax
call esi
mov dword [0x443618], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402ad3
push str.SetupUninstallOEMInfA
push eax
call esi
mov dword [0x443668], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402ad9
push str.SetupGetStringFieldA
push eax
call esi
mov dword [0x4435d0], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402adf
push str.SetupGetFieldCount
push eax
call esi
mov dword [0x443664], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402ae5
push str.SetupFindNextLine
push eax
call esi
mov dword [0x4435fc], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402aeb
push str.SetupOpenInfFileA
push eax
call esi
mov dword [0x4435f4], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402af1
push str.SetupCloseInfFile
push eax
call esi
mov dword [0x44366c], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402af7
push str.SetupFindFirstLineA
push eax
call esi
mov dword [0x44367c], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402afd
push str.SetupDiRemoveDevice
push eax
call esi
mov dword [0x4435e4], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b03
push str.SetupDiCreateDeviceInfoList
push eax
call esi
mov dword [0x443630], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b09
push str.SetupDiCreateDeviceInfoA
push eax
call esi
mov dword [0x443644], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b0f
push str.SetupDiCallClassInstaller
push eax
call esi
mov dword [0x443654], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b15
push str.SetupDiGetINFClassA
push eax
call esi
mov dword [0x4435ec], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b1b
push str.SetupDiClassGuidsFromNameA
push eax
call esi
mov dword [0x443678], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b21
push str.SetupDiSetClassInstallParamsA
push eax
call esi
mov dword [0x443638], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b27
push str.SetupDiGetDeviceInstallParamsA
push eax
call esi
mov dword [0x44364c], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b2d
push str.SetupDiGetDeviceInstanceIdA
push eax
call esi
mov dword [0x443620], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b33
push str.SetupInstallFilesFromInfSectionA
push eax
call esi
mov dword [0x443684], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b39
push str.SetupCommitFileQueueA
push eax
call esi
mov dword [0x443634], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b3f
push str.SetupOpenFileQueue
push eax
call esi
mov dword [0x443650], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b45
push str.SetupCloseFileQueue
push eax
call esi
mov dword [0x4435d4], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b4b
push str.SetupInitDefaultQueueCallback
push eax
call esi
mov dword [0x443604], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b51
push str.SetupDefaultQueueCallbackA
push eax
call esi
mov dword [0x4435f0], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b57
push str.SetupTermDefaultQueueCallback
push eax
call esi
mov dword [0x443628], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b5d
push str.CMP_WaitNoPendingInstallEvents
push eax
call esi
mov dword [0x4435c8], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b63
push str.SetupDiGetDriverInfoDetailA
push eax
call esi
mov dword [0x443660], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b63
push str.SetupDiGetSelectedDriverA
push eax
call esi
mov dword [0x443648], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b69
push str.SetupQueryInfOriginalFileInformationA
push eax
call esi
mov dword [0x4435dc], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b6f
push str.SetupDiGetDriverInfoDetailA
push eax
call esi
mov dword [0x443660], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b75
push str.SetupGetInfInformationA
push eax
call esi
mov dword [0x4435c0], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402b7b
push str.SetupGetInfFileListA
push eax
call esi
mov dword [0x443688], eax
mov eax, dword [0x443698]
jmp 0x402b81
mov dword [0x44361c], edi
mov dword [0x44362c], edi
mov dword [0x443618], edi
mov dword [0x443668], edi
mov dword [0x4435d0], edi
mov dword [0x443664], edi
mov dword [0x4435fc], edi
mov dword [0x4435f4], edi
mov dword [0x44366c], edi
mov dword [0x44367c], edi
mov dword [0x4435e4], edi
mov dword [0x443630], edi
mov dword [0x443644], edi
mov dword [0x443654], edi
mov dword [0x4435ec], edi
mov dword [0x443678], edi
mov dword [0x443638], edi
mov dword [0x44364c], edi
mov dword [0x443620], edi
mov dword [0x443684], edi
mov dword [0x443634], edi
mov dword [0x443650], edi
mov dword [0x4435d4], edi
mov dword [0x443604], edi
mov dword [0x4435f0], edi
mov dword [0x443628], edi
mov dword [0x4435c8], edi
mov dword [0x443648], edi
mov dword [0x4435dc], edi
mov dword [0x443660], edi
mov dword [0x4435c0], edi
mov dword [0x443688], edi
mov ecx, dword [0x4436a0]
cmp ecx, edi
je 0x402bf7
push str.DIFXAPISetLogCallbackA
push ecx
call esi
mov dword [0x443640], eax
mov eax, dword [0x4436a0]
cmp eax, edi
je 0x402c11
push str.DriverPackageGetPathA
push eax
call esi
mov dword [0x443624], eax
mov eax, dword [0x4436a0]
cmp eax, edi
je 0x402c2a
push str.DriverPackageInstallA
push eax
call esi
mov dword [0x443610], eax
mov eax, dword [0x4436a0]
cmp eax, edi
je 0x402c3d
push str.DriverPackagePreinstallA
push eax
call esi
mov dword [0x443600], eax
mov eax, dword [0x4436a0]
cmp eax, edi
je 0x402c4a
push str.DriverPackageUninstallA
push eax
call esi
mov dword [0x44360c], eax
mov eax, dword [0x443698]
jmp 0x402c55
mov dword [0x443640], edi
mov dword [0x443624], edi
mov dword [0x443610], edi
mov dword [0x443600], edi
jmp 0x402c4f
mov eax, dword [0x443698]
mov dword [0x443624], edi
mov dword [0x443610], edi
mov dword [0x443600], edi
jmp 0x402c4f
mov eax, dword [0x443698]
mov dword [0x443610], edi
mov dword [0x443600], edi
jmp 0x402c4f
mov eax, dword [0x443698]
mov dword [0x443600], edi
jmp 0x402c4f
mov eax, dword [0x443698]
mov dword [0x44360c], edi
cmp eax, edi
je 0x402e0a
push str.CM_Locate_DevNodeA
push eax
call esi
cmp eax, edi
mov dword [0x4435cc], eax
jne 0x402c84
mov eax, dword [0x44369c]
cmp eax, edi
je 0x402c84
push str.CM_Locate_DevNodeA
push eax
call esi
mov dword [0x4435cc], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402e46
push str.CM_Reenumerate_DevNode
push eax
call esi
cmp eax, edi
mov dword [0x443674], eax
jne 0x402cb8
mov eax, dword [0x44369c]
cmp eax, edi
je 0x402cb8
push str.CM_Reenumerate_DevNode
push eax
call esi
mov dword [0x443674], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402e7c
push str.CM_Get_DevNode_Status
push eax
call esi
cmp eax, edi
mov dword [0x443608], eax
jne 0x402cec
mov eax, dword [0x44369c]
cmp eax, edi
je 0x402cec
push str.CM_Get_DevNode_Status
push eax
call esi
mov dword [0x443608], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402eac
push str.CM_Get_Child
push eax
call esi
cmp eax, edi
mov dword [0x4435c4], eax
jne 0x402d20
mov eax, dword [0x44369c]
cmp eax, edi
je 0x402d20
push str.CM_Get_Child
push eax
call esi
mov dword [0x4435c4], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402ed3
push str.CM_Get_Parent
push eax
call esi
cmp eax, edi
mov dword [0x443614], eax
jne 0x402d54
mov eax, dword [0x44369c]
cmp eax, edi
je 0x402d54
push str.CM_Get_Parent
push eax
call esi
mov dword [0x443614], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402ef4
push str.CM_Get_Sibling
push eax
call esi
cmp eax, edi
mov dword [0x443680], eax
jne 0x402d88
mov eax, dword [0x44369c]
cmp eax, edi
je 0x402d88
push str.CM_Get_Sibling
push eax
call esi
mov dword [0x443680], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402f0f
push str.CM_Get_Device_IDA
push eax
call esi
cmp eax, edi
mov dword [0x44365c], eax
jne 0x402dbc
mov eax, dword [0x44369c]
cmp eax, edi
je 0x402dbc
push str.CM_Get_Device_IDA
push eax
call esi
mov dword [0x44365c], eax
mov eax, dword [0x443698]
cmp eax, edi
je 0x402f24
push str.CM_Get_Device_ID_Size
push eax
call esi
cmp eax, edi
mov dword [0x4435f8], eax
jne 0x402f37
mov eax, dword [0x44369c]
cmp eax, edi
je 0x402f37
push str.CM_Get_Device_ID_Size
push eax
call esi
pop esi
mov dword [0x4435f8], eax
mov eax, 1
add dword [0x44368c], eax
pop ebx
pop edi
add esp, 0xc
ret
mov eax, dword [0x44369c]
cmp eax, edi
jne 0x402c77
mov dword [0x4435cc], edi
mov dword [0x443674], edi
mov dword [0x443608], edi
mov dword [0x4435c4], edi
mov dword [0x443614], edi
mov dword [0x443680], edi
mov dword [0x44365c], edi
jmp 0x402f31
mov eax, dword [0x44369c]
cmp eax, edi
jne 0x402cab
mov dword [0x443674], edi
mov dword [0x443608], edi
mov dword [0x4435c4], edi
mov dword [0x443614], edi
mov dword [0x443680], edi
mov dword [0x44365c], edi
jmp 0x402f31
mov eax, dword [0x44369c]
cmp eax, edi
jne 0x402cdf
mov dword [0x443608], edi
mov dword [0x4435c4], edi
mov dword [0x443614], edi
mov dword [0x443680], edi
mov dword [0x44365c], edi
jmp 0x402f31
mov eax, dword [0x44369c]
cmp eax, edi
jne 0x402d13
mov dword [0x4435c4], edi
mov dword [0x443614], edi
mov dword [0x443680], edi
mov dword [0x44365c], edi
jmp 0x402f31
mov eax, dword [0x44369c]
cmp eax, edi
jne 0x402d47
mov dword [0x443614], edi
mov dword [0x443680], edi
mov dword [0x44365c], edi
jmp 0x402f31
mov eax, dword [0x44369c]
cmp eax, edi
jne 0x402d7b
mov dword [0x443680], edi
mov dword [0x44365c], edi
jmp 0x402f31
mov eax, dword [0x44369c]
cmp eax, edi
jne 0x402daf
mov dword [0x44365c], edi
jmp 0x402f31
mov eax, dword [0x44369c]
cmp eax, edi
jne 0x402deb
mov dword [0x4435f8], edi
pop esi
mov eax, 1
add dword [0x44368c], eax
pop ebx
pop edi
add esp, 0xc
ret