Function at 0x408148
Capabilities:
Connect to wmi namespace via wbemlocator
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
mov edx, 0x1a
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x40814f
call fcn.0041a950
mov edx, dword [esp + 0x74]
lea ecx, [esp]
call fcn.00408000
push 0
push 0
call sub.OLE32.DLL_CoInitializeEx
push 0
push 0
push 0
push 2
push 2
push 0
push 0
push 0xffffffff
push 0
call sub.OLE32.DLL_CoInitializeSecurity
mov dword [esp + 4], eax
mov ebx, dword [esp + 4]
and ebx, ebx
je 0x408269
push 0
push 0x11da1ae
push 0x11dba74
call fcn.0040aeca
cmp dword [esp + 0x40], 0
je 0x4081e3
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x4081f4
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x408205
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x408216
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
call sub.OLE32.DLL_CoUninitialize
cmp dword [esp + 0x2c], 0
je 0x40822b
push dword [esp + 0x2c]
call fcn.004199b0
cmp dword [esp + 0x30], 0
je 0x40823b
push dword [esp + 0x30]
call fcn.004199b0
cmp dword [esp + 0x34], 0
je 0x40824b
push dword [esp + 0x34]
call fcn.004199b0
mov edx, dword [esp + 8]
call fcn.0041a770
push eax
call fcn.0041a840
pop eax
push eax
call fcn.0041a8a0
pop edx
add eax, edx
jmp 0x408c15
lea eax, [esp + 0x3c]
push eax
mov ebp, 0x11dbe7c
push ebp
push 1
push 0
mov ebp, 0x11dbe6c
push ebp
call sub.OLE32.DLL_CoCreateInstance
mov dword [esp + 4], eax
mov ebx, dword [esp + 4]
and ebx, ebx
je 0x408344
push 0
push 0x11d9a50
push 0x11dba74
call fcn.0040aeca
cmp dword [esp + 0x40], 0
je 0x4082be
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x4082cf
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x4082e0
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x4082f1
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
call sub.OLE32.DLL_CoUninitialize
cmp dword [esp + 0x2c], 0
je 0x408306
push dword [esp + 0x2c]
call fcn.004199b0
cmp dword [esp + 0x30], 0
je 0x408316
push dword [esp + 0x30]
call fcn.004199b0
cmp dword [esp + 0x34], 0
je 0x408326
push dword [esp + 0x34]
call fcn.004199b0
mov edx, dword [esp + 8]
call fcn.0041a770
push eax
call fcn.0041a840
pop eax
push eax
call fcn.0041a8a0
pop edx
add eax, edx
jmp 0x408c15
push 0x11d91de
call fcn.00408f68
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x40]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x48]
mov eax, dword [esp + 0x5c]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov dword [esp + 4], eax
mov ebx, dword [esp + 4]
and ebx, ebx
je 0x40843e
push 0
push 0x11db75e
push 0x11dba74
call fcn.0040aeca
cmp dword [esp + 0x40], 0
je 0x4083b8
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x4083c9
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x4083da
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x4083eb
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
call sub.OLE32.DLL_CoUninitialize
cmp dword [esp + 0x2c], 0
je 0x408400
push dword [esp + 0x2c]
call fcn.004199b0
cmp dword [esp + 0x30], 0
je 0x408410
push dword [esp + 0x30]
call fcn.004199b0
cmp dword [esp + 0x34], 0
je 0x408420
push dword [esp + 0x34]
call fcn.004199b0
mov edx, dword [esp + 8]
call fcn.0041a770
push eax
call fcn.0041a840
pop eax
push eax
call fcn.0041a8a0
pop edx
add eax, edx
jmp 0x408c15
lea eax, [esp + 0x44]
push eax
mov ebp, 0x11dbe8c
push ebp
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax]
mov dword [esp + 4], eax
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x5c]
call sub.OLE32.DLL_CoSetProxyBlanket
mov dword [esp + 4], eax
mov ebx, dword [esp + 4]
and ebx, ebx
je 0x40853d
push 0
push 0x11db7ec
push 0x11dba74
call fcn.0040aeca
cmp dword [esp + 0x40], 0
je 0x4084b7
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x4084c8
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x4084d9
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x4084ea
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
call sub.OLE32.DLL_CoUninitialize
cmp dword [esp + 0x2c], 0
je 0x4084ff
push dword [esp + 0x2c]
call fcn.004199b0
cmp dword [esp + 0x30], 0
je 0x40850f
push dword [esp + 0x30]
call fcn.004199b0
cmp dword [esp + 0x34], 0
je 0x40851f
push dword [esp + 0x34]
call fcn.004199b0
mov edx, dword [esp + 8]
call fcn.0041a770
push eax
call fcn.0041a840
pop eax
push eax
call fcn.0041a8a0
pop edx
add eax, edx
jmp 0x408c15
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x60]
call sub.OLE32.DLL_CoSetProxyBlanket
mov dword [esp + 4], eax
mov ebx, dword [esp + 4]
and ebx, ebx
je 0x408624
push 0
push 0x11db7ec
push 0x11dba74
call fcn.0040aeca
cmp dword [esp + 0x40], 0
je 0x40859e
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x4085af
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x4085c0
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x4085d1
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
call sub.OLE32.DLL_CoUninitialize
cmp dword [esp + 0x2c], 0
je 0x4085e6
push dword [esp + 0x2c]
call fcn.004199b0
cmp dword [esp + 0x30], 0
je 0x4085f6
push dword [esp + 0x30]
call fcn.004199b0
cmp dword [esp + 0x34], 0
je 0x408606
push dword [esp + 0x34]
call fcn.004199b0
mov edx, dword [esp + 8]
call fcn.0041a770
push eax
call fcn.0041a840
pop eax
push eax
call fcn.0041a8a0
pop edx
add eax, edx
jmp 0x408c15
mov eax, dword [esp + 0x44]
push eax
mov eax, dword [eax]
call dword [eax + 8]
push 0x11d909a
push dword [esp + 4]
call fcn.0040a930
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
inc eax
lea edx, [esp + 0x60]
push edx
push 0x11dbe24
push 8
push eax
push 4
call fcn.00409001
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
jl 0x4086bb
call fcn.0041a770
push eax
push eax
call fcn.0041a770
push eax
push eax
push 0x11d909a
mov ebx, dword [esp + 0x24]
inc ebx
push ebx
push dword [esp + 0x18]
call fcn.0040a5a0
call fcn.0041a8b2
add dword [esp], edx
call fcn.00409fc0
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x64]
shl ebx, 2
lea eax, [ebp + ebx]
push eax
call fcn.0041a7b0
inc dword [esp + 0x10]
jno 0x408667
push 0x11d9cd6
call fcn.00408f68
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x60]
push dword [ebp]
call fcn.00408f68
mov dword [esp + 0x34], eax
lea eax, [esp + 0x48]
push eax
push 0
push 0x30
push dword [esp + 0x40]
push dword [esp + 0x40]
mov eax, dword [esp + 0x54]
push eax
mov eax, dword [eax]
call dword [eax + 0x50]
mov dword [esp + 4], eax
mov ebx, dword [esp + 4]
and ebx, ebx
je 0x4087b5
push 0
push 0x11dbd68
push 0x11dba74
call fcn.0040aeca
cmp dword [esp + 0x40], 0
je 0x40872f
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x408740
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x408751
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x408762
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
call sub.OLE32.DLL_CoUninitialize
cmp dword [esp + 0x2c], 0
je 0x408777
push dword [esp + 0x2c]
call fcn.004199b0
cmp dword [esp + 0x30], 0
je 0x408787
push dword [esp + 0x30]
call fcn.004199b0
cmp dword [esp + 0x34], 0
je 0x408797
push dword [esp + 0x34]
call fcn.004199b0
mov edx, dword [esp + 8]
call fcn.0041a770
push eax
call fcn.0041a840
pop eax
push eax
call fcn.0041a8a0
pop edx
add eax, edx
jmp 0x408c15
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov dword [esp + 4], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x50]
push eax
push 1
push 0xffffffff
mov eax, dword [esp + 0x58]
push eax
mov eax, dword [eax]
call dword [eax + 0x10]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
jl 0x408b6b
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x60]
shl ebx, 2
push dword [ebp + ebx]
call fcn.00408f68
mov dword [esp + 0x38], eax
push 0
push 0
lea eax, [esp + 0x58]
push eax
push 0
push dword [esp + 0x48]
mov eax, dword [esp + 0x60]
push eax
mov eax, dword [eax]
call dword [eax + 0x10]
mov dword [esp + 4], eax
lea ebp, [esp + 0x50]
movsx ebx, word [ebp]
push ebx
mov ebx, 0x2008
cmp ebx, dword [esp]
jne 0x40890e
mov edx, 0x11d8e68
lea ecx, [esp + 0x20]
call fcn.00408008
lea ebp, [esp + 0x54]
push dword [ebp + 8]
call sub.OLEAUT32.DLL_SafeArrayGetDim
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x20]
push dword [ebp + 8]
call sub.OLEAUT32.DLL_SafeArrayGetUBound
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x28]
jl 0x4088e0
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x2c]
push eax
lea ebp, [esp + 0x5c]
push dword [ebp + 8]
call sub.OLEAUT32.DLL_SafeArrayGetElement
mov edx, dword [esp + 0x20]
call fcn.0041a770
push eax
call fcn.0041a840
mov edx, 0x11db2d0
call fcn.0041a840
call fcn.0041a770
push eax
push dword [esp + 0x34]
call fcn.00408fc0
pop eax
lea eax, [esp + 0x24]
push eax
call fcn.0041a7b0
inc dword [esp + 0x28]
jno 0x408887
call fcn.0041a770
push eax
push eax
push dword [esp + 0x28]
call fcn.00409fe0
push eax
push 3
push dword [esp + 0x30]
call fcn.0040a010
lea eax, [esp + 0x24]
push eax
call fcn.0041a7b0
jmp 0x408a9d
mov ebx, 0x2003
cmp ebx, dword [esp]
jne 0x4089de
mov edx, 0x11d8e68
lea ecx, [esp + 0x20]
call fcn.00408008
lea ebp, [esp + 0x54]
push dword [ebp + 8]
call sub.OLEAUT32.DLL_SafeArrayGetDim
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x20]
push dword [ebp + 8]
call sub.OLEAUT32.DLL_SafeArrayGetUBound
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x28]
jl 0x4089b0
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x2c]
push eax
lea ebp, [esp + 0x5c]
push dword [ebp + 8]
call sub.OLEAUT32.DLL_SafeArrayGetElement
mov edx, dword [esp + 0x20]
call fcn.0041a770
push eax
call fcn.0041a840
mov edx, 0x11db2d0
call fcn.0041a840
call fcn.0041a770
push eax
push eax
mov eax, dword [esp + 0x38]
cdq
push edx
push eax
call fcn.0040a3c0
pop eax
lea eax, [esp + 0x24]
push eax
call fcn.0041a7b0
inc dword [esp + 0x28]
jno 0x408953
call fcn.0041a770
push eax
push eax
push dword [esp + 0x28]
call fcn.00409fe0
push eax
push 3
push dword [esp + 0x30]
call fcn.0040a010
lea eax, [esp + 0x24]
push eax
call fcn.0041a7b0
jmp 0x408a9d
mov ebx, 0xb
cmp ebx, dword [esp]
jne 0x408a21
lea ebp, [esp + 0x54]
movsx ebx, word [ebp + 8]
and ebx, ebx
jne 0x408a04
mov edx, 0x11da456
lea ecx, [esp + 0x20]
call fcn.00408008
jmp 0x408a1f
lea ebp, [esp + 0x54]
movsx ebx, word [ebp + 8]
cmp ebx, 0xffffffff
jne 0x408a1f
mov edx, 0x11db5c0
lea ecx, [esp + 0x20]
call fcn.00408008
jmp 0x408a9d
mov ebx, 8
cmp ebx, dword [esp]
jne 0x408a49
call fcn.0041a770
push eax
lea ebp, [esp + 0x58]
push dword [ebp + 8]
call fcn.00408fc0
lea eax, [esp + 0x24]
push eax
call fcn.0041a7b0
jmp 0x408a9d
mov ebx, 3
cmp ebx, dword [esp]
jne 0x408a75
call fcn.0041a770
push eax
push eax
lea ebp, [esp + 0x5c]
mov eax, dword [ebp + 8]
cdq
push edx
push eax
call fcn.0040a3c0
lea eax, [esp + 0x24]
push eax
call fcn.0041a7b0
jmp 0x408a9d
mov ebx, 1
cmp ebx, dword [esp]
jne 0x408a8f
mov edx, 0x11d9e74
lea ecx, [esp + 0x20]
call fcn.00408008
jmp 0x408a9d
mov edx, 0x11d8e68
lea ecx, [esp + 0x20]
call fcn.00408008
pop eax
mov ebx, dword [esp + 0x14]
and ebx, ebx
je 0x408b49
push dword [esp + 8]
mov edx, 0x11d8e68
pop ecx
call fcn.0041aa90
jne 0x408ade
mov edx, dword [esp + 8]
call fcn.0041a770
push eax
call fcn.0041a840
mov edx, 0x11db618
call fcn.0041a840
lea eax, [esp + 0xc]
push eax
call fcn.0041a7b0
cmp dword [esp + 0x78], 0
je 0x408b27
mov edx, dword [esp + 8]
call fcn.0041a770
push eax
call fcn.0041a840
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x64]
shl ebx, 2
mov edx, dword [ebp + ebx]
call fcn.0041a840
mov edx, 0x11db61e
call fcn.0041a840
mov edx, dword [esp + 0x20]
call fcn.0041a840
lea eax, [esp + 0xc]
push eax
call fcn.0041a7b0
jmp 0x408b49
mov edx, dword [esp + 8]
call fcn.0041a770
push eax
call fcn.0041a840
mov edx, dword [esp + 0x20]
call fcn.0041a840
lea eax, [esp + 0xc]
push eax
call fcn.0041a7b0
cmp dword [esp + 0x38], 0
je 0x408b61
push dword [esp + 0x38]
call fcn.004199b0
mov dword [esp + 0x38], 0
inc dword [esp + 0x10]
jno 0x4087ed
mov ebx, dword [esp + 0x14]
and ebx, ebx
jne 0x4087c3
cmp dword [esp + 0x40], 0
je 0x408b88
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x408b99
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x408baa
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x408bbb
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
call sub.OLE32.DLL_CoUninitialize
cmp dword [esp + 0x2c], 0
je 0x408bd0
push dword [esp + 0x2c]
call fcn.004199b0
cmp dword [esp + 0x30], 0
je 0x408be0
push dword [esp + 0x30]
call fcn.004199b0
cmp dword [esp + 0x34], 0
je 0x408bf0
push dword [esp + 0x34]
call fcn.004199b0
mov edx, dword [esp + 8]
call fcn.0041a770
push eax
call fcn.0041a840
pop eax
push eax
call fcn.0041a8a0
pop edx
add eax, edx
jmp 0x408c15
push dword [esp + 0x1c]
call fcn.0041aa20
push dword [esp + 8]
call fcn.0041aa20
push dword [esp]
call fcn.0041aa20
push eax
push dword [esp + 0x64]
call fcn.00409129
pop eax
add esp, 0x68
pop ebx
pop ebp
ret 0xc