Function at 0x4091c0
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 0x4091c7
call fcn.00449ac0
push dword [esp + 0x7c]
call fcn.0040f540
mov edx, dword [esp + 0x74]
lea ecx, [esp]
call fcn.0040f000
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
lea eax, [esp + 0x3c]
push eax
mov ebp, 0x4e8bb8
push ebp
push 1
push 0
mov ebp, 0x4e8ba8
push ebp
call sub.ole32.dll_CoCreateInstance
mov dword [esp + 4], eax
mov ebx, dword [esp + 4]
and ebx, ebx
je 0x409313
push 0
mov eax, str.unable_to_call_CoCreateInstance
push eax
mov eax, 0x4e64c6
push eax
call fcn.004324bb
cmp dword [esp + 0x40], 0
je 0x40928a
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x40929b
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x4092ac
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x4092bd
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 0x4092d2
push dword [esp + 0x2c]
call fcn.00448aa0
cmp dword [esp + 0x30], 0
je 0x4092e2
push dword [esp + 0x30]
call fcn.00448aa0
cmp dword [esp + 0x34], 0
je 0x4092f2
push dword [esp + 0x34]
call fcn.00448aa0
mov edx, dword [esp + 8]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
pop eax
push eax
call fcn.0040f510
pop edx
add eax, edx
jmp 0x409c62
mov eax, str.rootcimv2
push eax
call fcn.0040cd4c
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 0x409413
push 0
mov eax, str.unable_to_call_IWbemLocator::ConnectServer
push eax
mov eax, 0x4e64c6
push eax
call fcn.004324bb
cmp dword [esp + 0x40], 0
je 0x40938a
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x40939b
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x4093ac
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x4093bd
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 0x4093d2
push dword [esp + 0x2c]
call fcn.00448aa0
cmp dword [esp + 0x30], 0
je 0x4093e2
push dword [esp + 0x30]
call fcn.00448aa0
cmp dword [esp + 0x34], 0
je 0x4093f2
push dword [esp + 0x34]
call fcn.00448aa0
mov edx, dword [esp + 8]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
pop eax
push eax
call fcn.0040f510
pop edx
add eax, edx
jmp 0x409c62
lea eax, [esp + 0x44]
push eax
mov ebp, 0x4e8bc8
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 0x409517
push 0
mov eax, str.unable_to_call_CoSetProxyBlanket
push eax
mov eax, 0x4e64c6
push eax
call fcn.004324bb
cmp dword [esp + 0x40], 0
je 0x40948e
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x40949f
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x4094b0
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x4094c1
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 0x4094d6
push dword [esp + 0x2c]
call fcn.00448aa0
cmp dword [esp + 0x30], 0
je 0x4094e6
push dword [esp + 0x30]
call fcn.00448aa0
cmp dword [esp + 0x34], 0
je 0x4094f6
push dword [esp + 0x34]
call fcn.00448aa0
mov edx, dword [esp + 8]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
pop eax
push eax
call fcn.0040f510
pop edx
add eax, edx
jmp 0x409c62
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 0x409603
push 0
mov eax, str.unable_to_call_CoSetProxyBlanket
push eax
mov eax, 0x4e64c6
push eax
call fcn.004324bb
cmp dword [esp + 0x40], 0
je 0x40957a
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x40958b
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x40959c
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x4095ad
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 0x4095c2
push dword [esp + 0x2c]
call fcn.00448aa0
cmp dword [esp + 0x30], 0
je 0x4095d2
push dword [esp + 0x30]
call fcn.00448aa0
cmp dword [esp + 0x34], 0
je 0x4095e2
push dword [esp + 0x34]
call fcn.00448aa0
mov edx, dword [esp + 8]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
pop eax
push eax
call fcn.0040f510
pop edx
add eax, edx
jmp 0x409c62
mov eax, dword [esp + 0x44]
push eax
mov eax, dword [eax]
call dword [eax + 8]
mov eax, 0x4dd996
push eax
push dword [esp + 4]
call fcn.00447db0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
inc eax
lea edx, [esp + 0x60]
push edx
push 0x4e6fd8
push 8
push eax
push 4
call fcn.00441e61
mov dword [esp + 0x10], 0
jmp 0x409649
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
jl 0x4096b0
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
mov eax, 0x4dd996
push eax
mov ebx, dword [esp + 0x24]
inc ebx
push ebx
push dword [esp + 0x18]
call fcn.00447e60
call fcn.0040f522
add dword [esp], edx
call fcn.00447980
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x64]
shl ebx, 2
lea eax, [ebp + ebx]
push eax
call fcn.00449a30
inc dword [esp + 0x10]
jno 0x409649
mov eax, 0x4e01f8
push eax
call fcn.0040cd4c
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x60]
push dword [ebp]
call fcn.0040cd4c
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 0x4097b0
push 0
mov eax, str.unable_to_call_IWbemServices::ExecQuery
push eax
mov eax, 0x4e64c6
push eax
call fcn.004324bb
cmp dword [esp + 0x40], 0
je 0x409727
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x409738
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x409749
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x40975a
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 0x40976f
push dword [esp + 0x2c]
call fcn.00448aa0
cmp dword [esp + 0x30], 0
je 0x40977f
push dword [esp + 0x30]
call fcn.00448aa0
cmp dword [esp + 0x34], 0
je 0x40978f
push dword [esp + 0x34]
call fcn.00448aa0
mov edx, dword [esp + 8]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
pop eax
push eax
call fcn.0040f510
pop edx
add eax, edx
jmp 0x409c62
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
jmp 0x4097ea
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
jl 0x409bb5
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x60]
shl ebx, 2
push dword [ebp + ebx]
call fcn.0040cd4c
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 0x409920
mov edx, 0x4dd028
lea ecx, [esp + 0x20]
call fcn.0040f008
lea ebp, [esp + 0x54]
push dword [ebp + 8]
call sub.OLEAUT32.dll_SafeArrayGetElemsize
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x20]
lea ebp, [esp + 0x5c]
push dword [ebp + 8]
call sub.OLEAUT32.dll_SafeArrayGetLBound
mov dword [esp + 0x28], 0
jmp 0x40988a
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x28]
jl 0x4098e9
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x2c]
push eax
lea ebp, [esp + 0x5c]
push dword [ebp + 8]
call sub.OLEAUT32.dll_SafeArrayPutElement
mov edx, dword [esp + 0x20]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
mov edx, 0x4e45ee
push edx
call fcn.004499e0
push edx
call fcn.004499b0
pop edx
push eax
push dword [esp + 0x34]
call fcn.0040cda2
pop eax
lea eax, [esp + 0x24]
push eax
call fcn.00449a30
inc dword [esp + 0x28]
jno 0x40988a
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
push dword [esp + 0x28]
call fcn.00447890
push eax
push 3
push dword [esp + 0x30]
call fcn.00447270
lea eax, [esp + 0x24]
push eax
call fcn.00449a30
jmp 0x409ad9
mov ebx, 0x2003
cmp ebx, dword [esp]
jne 0x409a0c
mov edx, 0x4dd028
lea ecx, [esp + 0x20]
call fcn.0040f008
lea ebp, [esp + 0x54]
push dword [ebp + 8]
call sub.OLEAUT32.dll_SafeArrayGetElemsize
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x20]
lea ebp, [esp + 0x5c]
push dword [ebp + 8]
call sub.OLEAUT32.dll_SafeArrayGetLBound
mov dword [esp + 0x28], 0
jmp 0x40996b
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x28]
jl 0x4099d5
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x2c]
push eax
lea ebp, [esp + 0x5c]
push dword [ebp + 8]
call sub.OLEAUT32.dll_SafeArrayPutElement
mov edx, dword [esp + 0x20]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
mov edx, 0x4e45ee
push edx
call fcn.004499e0
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
mov eax, dword [esp + 0x38]
cdq
push edx
push eax
call fcn.00447f90
pop eax
lea eax, [esp + 0x24]
push eax
call fcn.00449a30
inc dword [esp + 0x28]
jno 0x40996b
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
push dword [esp + 0x28]
call fcn.00447890
push eax
push 3
push dword [esp + 0x30]
call fcn.00447270
lea eax, [esp + 0x24]
push eax
call fcn.00449a30
jmp 0x409ad9
mov ebx, 0xb
cmp ebx, dword [esp]
jne 0x409a52
lea ebp, [esp + 0x54]
movsx ebx, word [ebp + 8]
and ebx, ebx
jne 0x409a32
mov edx, str.FALSE
lea ecx, [esp + 0x20]
call fcn.0040f008
jmp 0x409a4d
lea ebp, [esp + 0x54]
movsx ebx, word [ebp + 8]
cmp ebx, 0xffffffff
jne 0x409a4d
mov edx, str.TRUE
lea ecx, [esp + 0x20]
call fcn.0040f008
jmp 0x409ad9
mov ebx, 8
cmp ebx, dword [esp]
jne 0x409a7c
push edx
call fcn.004499b0
pop edx
push eax
lea ebp, [esp + 0x58]
push dword [ebp + 8]
call fcn.0040cda2
lea eax, [esp + 0x24]
push eax
call fcn.00449a30
jmp 0x409ad9
mov ebx, 3
cmp ebx, dword [esp]
jne 0x409ab1
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
lea ebp, [esp + 0x5c]
mov eax, dword [ebp + 8]
cdq
push edx
push eax
call fcn.00447f90
lea eax, [esp + 0x24]
push eax
call fcn.00449a30
jmp 0x409ad9
mov ebx, 1
cmp ebx, dword [esp]
jne 0x409acb
mov edx, 0x4e074e
lea ecx, [esp + 0x20]
call fcn.0040f008
jmp 0x409ad9
mov edx, 0x4dd028
lea ecx, [esp + 0x20]
call fcn.0040f008
pop eax
mov ebx, dword [esp + 0x14]
and ebx, ebx
je 0x409b93
push dword [esp + 8]
mov edx, 0x4dd028
pop ecx
call fcn.0040f550
jne 0x409b1e
mov edx, dword [esp + 8]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
mov edx, 0x4e5304
push edx
call fcn.004499e0
lea eax, [esp + 0xc]
push eax
call fcn.00449a30
cmp dword [esp + 0x78], 0
je 0x409b6d
mov edx, dword [esp + 8]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x64]
shl ebx, 2
mov edx, dword [ebp + ebx]
push edx
call fcn.004499e0
mov edx, 0x4e53f8
push edx
call fcn.004499e0
mov edx, dword [esp + 0x20]
push edx
call fcn.004499e0
lea eax, [esp + 0xc]
push eax
call fcn.00449a30
jmp 0x409b93
mov edx, dword [esp + 8]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
mov edx, dword [esp + 0x20]
push edx
call fcn.004499e0
lea eax, [esp + 0xc]
push eax
call fcn.00449a30
cmp dword [esp + 0x38], 0
je 0x409bab
push dword [esp + 0x38]
call fcn.00448aa0
mov dword [esp + 0x38], 0
inc dword [esp + 0x10]
jno 0x4097ea
mov ebx, dword [esp + 0x14]
and ebx, ebx
jne 0x4097be
cmp dword [esp + 0x40], 0
je 0x409bd2
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x409be3
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x409bf4
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x409c05
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 0x409c1a
push dword [esp + 0x2c]
call fcn.00448aa0
cmp dword [esp + 0x30], 0
je 0x409c2a
push dword [esp + 0x30]
call fcn.00448aa0
cmp dword [esp + 0x34], 0
je 0x409c3a
push dword [esp + 0x34]
call fcn.00448aa0
mov edx, dword [esp + 8]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
pop eax
push eax
call fcn.0040f510
pop edx
add eax, edx
jmp 0x409c62
push dword [esp + 0x1c]
call fcn.00449b50
push dword [esp + 8]
call fcn.00449b50
push dword [esp]
call fcn.00449b50
push eax
push dword [esp + 0x64]
call fcn.00441fa6
pop eax
add esp, 0x68
pop ebx
pop ebp
ret 8