Function at 0x417798
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 0x41779f
call fcn.004553e0
push dword [esp + 0x7c]
call fcn.0041e6b0
mov edx, dword [esp + 0x74]
lea ecx, [esp]
call fcn.0041e000
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, 0x587dfc
push ebp
push 1
push 0
mov ebp, 0x587dec
push ebp
call sub.ole32.dll_CoCreateInstance
mov dword [esp + 4], eax
mov ebx, dword [esp + 4]
and ebx, ebx
je 0x4178eb
push 0
mov eax, str.unable_to_call_CoCreateInstance
push eax
mov eax, str.ERROR
push eax
call fcn.0042014b
cmp dword [esp + 0x40], 0
je 0x417862
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x417873
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x417884
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x417895
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 0x4178aa
push dword [esp + 0x2c]
call fcn.00454160
cmp dword [esp + 0x30], 0
je 0x4178ba
push dword [esp + 0x30]
call fcn.00454160
cmp dword [esp + 0x34], 0
je 0x4178ca
push dword [esp + 0x34]
call fcn.00454160
mov edx, dword [esp + 8]
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455280
pop eax
push eax
call fcn.0041e680
pop edx
add eax, edx
jmp 0x41823a
mov eax, str.rootcimv2
push eax
call fcn.0041b325
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 0x4179eb
push 0
mov eax, str.unable_to_call_IWbemLocator::ConnectServer
push eax
mov eax, str.ERROR
push eax
call fcn.0042014b
cmp dword [esp + 0x40], 0
je 0x417962
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x417973
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x417984
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x417995
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 0x4179aa
push dword [esp + 0x2c]
call fcn.00454160
cmp dword [esp + 0x30], 0
je 0x4179ba
push dword [esp + 0x30]
call fcn.00454160
cmp dword [esp + 0x34], 0
je 0x4179ca
push dword [esp + 0x34]
call fcn.00454160
mov edx, dword [esp + 8]
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455280
pop eax
push eax
call fcn.0041e680
pop edx
add eax, edx
jmp 0x41823a
lea eax, [esp + 0x44]
push eax
mov ebp, 0x587e0c
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 0x417aef
push 0
mov eax, str.unable_to_call_CoSetProxyBlanket
push eax
mov eax, str.ERROR
push eax
call fcn.0042014b
cmp dword [esp + 0x40], 0
je 0x417a66
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x417a77
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x417a88
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x417a99
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 0x417aae
push dword [esp + 0x2c]
call fcn.00454160
cmp dword [esp + 0x30], 0
je 0x417abe
push dword [esp + 0x30]
call fcn.00454160
cmp dword [esp + 0x34], 0
je 0x417ace
push dword [esp + 0x34]
call fcn.00454160
mov edx, dword [esp + 8]
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455280
pop eax
push eax
call fcn.0041e680
pop edx
add eax, edx
jmp 0x41823a
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 0x417bdb
push 0
mov eax, str.unable_to_call_CoSetProxyBlanket
push eax
mov eax, str.ERROR
push eax
call fcn.0042014b
cmp dword [esp + 0x40], 0
je 0x417b52
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x417b63
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x417b74
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x417b85
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 0x417b9a
push dword [esp + 0x2c]
call fcn.00454160
cmp dword [esp + 0x30], 0
je 0x417baa
push dword [esp + 0x30]
call fcn.00454160
cmp dword [esp + 0x34], 0
je 0x417bba
push dword [esp + 0x34]
call fcn.00454160
mov edx, dword [esp + 8]
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455280
pop eax
push eax
call fcn.0041e680
pop edx
add eax, edx
jmp 0x41823a
mov eax, dword [esp + 0x44]
push eax
mov eax, dword [eax]
call dword [eax + 8]
mov eax, 0x57aa98
push eax
push dword [esp + 4]
call fcn.00453aa0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
inc eax
lea edx, [esp + 0x60]
push edx
push 0x587d6c
push 8
push eax
push 4
call fcn.0044cccf
mov dword [esp + 0x10], 0
jmp 0x417c21
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
jl 0x417c88
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455240
pop edx
push eax
mov eax, 0x57aa98
push eax
mov ebx, dword [esp + 0x24]
inc ebx
push ebx
push dword [esp + 0x18]
call fcn.00453950
call fcn.0041e692
add dword [esp], edx
call fcn.004535f0
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x64]
shl ebx, 2
lea eax, [ebp + ebx]
push eax
call fcn.004552e0
inc dword [esp + 0x10]
jno 0x417c21
mov eax, 0x57e482
push eax
call fcn.0041b325
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x60]
push dword [ebp]
call fcn.0041b325
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 0x417d88
push 0
mov eax, str.unable_to_call_IWbemServices::ExecQuery
push eax
mov eax, str.ERROR
push eax
call fcn.0042014b
cmp dword [esp + 0x40], 0
je 0x417cff
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x417d10
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x417d21
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x417d32
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 0x417d47
push dword [esp + 0x2c]
call fcn.00454160
cmp dword [esp + 0x30], 0
je 0x417d57
push dword [esp + 0x30]
call fcn.00454160
cmp dword [esp + 0x34], 0
je 0x417d67
push dword [esp + 0x34]
call fcn.00454160
mov edx, dword [esp + 8]
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455280
pop eax
push eax
call fcn.0041e680
pop edx
add eax, edx
jmp 0x41823a
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 0x417dc2
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
jl 0x41818d
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x60]
shl ebx, 2
push dword [ebp + ebx]
call fcn.0041b325
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 0x417ef8
mov edx, 0x57a126
lea ecx, [esp + 0x20]
call fcn.0041e008
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 0x417e62
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x28]
jl 0x417ec1
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.00455240
pop edx
push eax
push edx
call fcn.00455280
mov edx, 0x584bc4
push edx
call fcn.00455280
push edx
call fcn.00455240
pop edx
push eax
push dword [esp + 0x34]
call fcn.0041b37b
pop eax
lea eax, [esp + 0x24]
push eax
call fcn.004552e0
inc dword [esp + 0x28]
jno 0x417e62
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455240
pop edx
push eax
push dword [esp + 0x28]
call fcn.00452c70
push eax
push 3
push dword [esp + 0x30]
call fcn.00452e40
lea eax, [esp + 0x24]
push eax
call fcn.004552e0
jmp 0x4180b1
mov ebx, 0x2003
cmp ebx, dword [esp]
jne 0x417fe4
mov edx, 0x57a126
lea ecx, [esp + 0x20]
call fcn.0041e008
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 0x417f43
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x28]
jl 0x417fad
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.00455240
pop edx
push eax
push edx
call fcn.00455280
mov edx, 0x584bc4
push edx
call fcn.00455280
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455240
pop edx
push eax
mov eax, dword [esp + 0x38]
cdq
push edx
push eax
call fcn.004533c0
pop eax
lea eax, [esp + 0x24]
push eax
call fcn.004552e0
inc dword [esp + 0x28]
jno 0x417f43
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455240
pop edx
push eax
push dword [esp + 0x28]
call fcn.00452c70
push eax
push 3
push dword [esp + 0x30]
call fcn.00452e40
lea eax, [esp + 0x24]
push eax
call fcn.004552e0
jmp 0x4180b1
mov ebx, 0xb
cmp ebx, dword [esp]
jne 0x41802a
lea ebp, [esp + 0x54]
movsx ebx, word [ebp + 8]
and ebx, ebx
jne 0x41800a
mov edx, str.FALSE
lea ecx, [esp + 0x20]
call fcn.0041e008
jmp 0x418025
lea ebp, [esp + 0x54]
movsx ebx, word [ebp + 8]
cmp ebx, 0xffffffff
jne 0x418025
mov edx, str.TRUE
lea ecx, [esp + 0x20]
call fcn.0041e008
jmp 0x4180b1
mov ebx, 8
cmp ebx, dword [esp]
jne 0x418054
push edx
call fcn.00455240
pop edx
push eax
lea ebp, [esp + 0x58]
push dword [ebp + 8]
call fcn.0041b37b
lea eax, [esp + 0x24]
push eax
call fcn.004552e0
jmp 0x4180b1
mov ebx, 3
cmp ebx, dword [esp]
jne 0x418089
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455240
pop edx
push eax
lea ebp, [esp + 0x5c]
mov eax, dword [ebp + 8]
cdq
push edx
push eax
call fcn.004533c0
lea eax, [esp + 0x24]
push eax
call fcn.004552e0
jmp 0x4180b1
mov ebx, 1
cmp ebx, dword [esp]
jne 0x4180a3
mov edx, 0x57ef50
lea ecx, [esp + 0x20]
call fcn.0041e008
jmp 0x4180b1
mov edx, 0x57a126
lea ecx, [esp + 0x20]
call fcn.0041e008
pop eax
mov ebx, dword [esp + 0x14]
and ebx, ebx
je 0x41816b
push dword [esp + 8]
mov edx, 0x57a126
pop ecx
call fcn.0041e640
jne 0x4180f6
mov edx, dword [esp + 8]
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455280
mov edx, 0x585882
push edx
call fcn.00455280
lea eax, [esp + 0xc]
push eax
call fcn.004552e0
cmp dword [esp + 0x78], 0
je 0x418145
mov edx, dword [esp + 8]
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455280
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x64]
shl ebx, 2
mov edx, dword [ebp + ebx]
push edx
call fcn.00455280
mov edx, 0x585a48
push edx
call fcn.00455280
mov edx, dword [esp + 0x20]
push edx
call fcn.00455280
lea eax, [esp + 0xc]
push eax
call fcn.004552e0
jmp 0x41816b
mov edx, dword [esp + 8]
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455280
mov edx, dword [esp + 0x20]
push edx
call fcn.00455280
lea eax, [esp + 0xc]
push eax
call fcn.004552e0
cmp dword [esp + 0x38], 0
je 0x418183
push dword [esp + 0x38]
call fcn.00454160
mov dword [esp + 0x38], 0
inc dword [esp + 0x10]
jno 0x417dc2
mov ebx, dword [esp + 0x14]
and ebx, ebx
jne 0x417d96
cmp dword [esp + 0x40], 0
je 0x4181aa
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x3c], 0
je 0x4181bb
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x48], 0
je 0x4181cc
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 8]
cmp dword [esp + 0x4c], 0
je 0x4181dd
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 0x4181f2
push dword [esp + 0x2c]
call fcn.00454160
cmp dword [esp + 0x30], 0
je 0x418202
push dword [esp + 0x30]
call fcn.00454160
cmp dword [esp + 0x34], 0
je 0x418212
push dword [esp + 0x34]
call fcn.00454160
mov edx, dword [esp + 8]
push edx
call fcn.00455240
pop edx
push eax
push edx
call fcn.00455280
pop eax
push eax
call fcn.0041e680
pop edx
add eax, edx
jmp 0x41823a
push dword [esp + 0x1c]
call fcn.00455440
push dword [esp + 8]
call fcn.00455440
push dword [esp]
call fcn.00455440
push eax
push dword [esp + 0x64]
call fcn.0044ce8a
pop eax
add esp, 0x68
pop ebx
pop ebp
ret 8