Function at 0x4a6ed4
Capabilities:
Connect to wmi namespace via wbemlocator

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [0x4b21c4]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x48], edx
push ebx
push esi
push edi
mov dword [ebp - 0x24], eax
lea edi, [ebp - 0x60]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x4c], ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
xor eax, eax
lea edi, [ebp - 0x38]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
xor edi, edi
push edi
push edi
mov esi, edi
mov ebx, edi
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
js 0x4a6f42
mov dword [ebp - 0x24], 1
jmp 0x4a6f52
cmp eax, 0x80010106
je 0x4a6f52
mov ecx, eax
mov ebx, eax
call fcn.0046b33e
mov ecx, ebx
call fcn.0046b356
test ebx, ebx
jns 0x4a6f6b
mov ecx, ebx
call fcn.0046b33e
mov edi, esi
jmp 0x4a71b0
push edi
push edi
push edi
push 3
pop eax
push eax
push edi
push edi
push edi
push 0xffffffffffffffff
push edi
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
mov ebx, eax
cmp ebx, 0x80010119
je 0x4a6f8c
test ebx, ebx
js 0x4a6f5d
lea eax, [ebp - 0x18]
push eax
push 0x468a00
push 1
push edi
push 0x4689f0
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
test ebx, ebx
js 0x4a6f5d
push 0x40cf14
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
test edi, edi
jne 0x4a6fc4
mov ecx, 0x8007000e
jmp 0x4a71a9
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
push ecx
xor ecx, ecx
push ecx
mov ebx, dword [eax]
push ecx
push ecx
push ecx
push ecx
push ecx
mov ecx, dword [ebx + 0xc]
push edi
push eax
call dword [0x4b3178]
call dword [ebx + 0xc]
mov ebx, eax
test ebx, ebx
jns 0x4a6ff0
mov ecx, ebx
jmp 0x4a71ab
push 0x40cf30
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4a6fba
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x4a701c
mov ecx, dword [eax]
push eax
mov ebx, dword [ecx + 8]
mov ecx, ebx
call dword [0x4b3178]
call ebx
and dword [ebp - 0xc], esi
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
push ecx
push 0
mov ebx, dword [eax]
push 0
push edx
push eax
mov ecx, dword [ebx + 0x48]
call dword [0x4b3178]
call dword [ebx + 0x48]
mov ebx, eax
test ebx, ebx
js 0x4a6fe9
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0x10]
push ecx
mov ebx, dword [eax]
push 1
push 0xffffffffffffffff
push eax
mov ecx, dword [ebx + 0x10]
call dword [0x4b3178]
call dword [ebx + 0x10]
cmp dword [ebp - 0x3c], esi
ja 0x4a706d
mov ecx, 0x8007000d
jmp 0x4a71a9
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x60]
xor edx, edx
push edx
push edx
mov ebx, dword [eax]
push ecx
push edx
push 0x40cdf8
mov ecx, dword [ebx + 0x10]
push eax
call dword [0x4b3178]
call dword [ebx + 0x10]
mov ebx, eax
test ebx, ebx
js 0x4a6fe9
push 3
pop eax
cmp word [ebp - 0x60], ax
jne 0x4a71a4
mov eax, dword [ebp - 0x58]
mov dword [ebp - 8], eax
test eax, eax
je 0x4a7063
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test esi, esi
je 0x4a6fba
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x38]
xor edx, edx
push edx
push edx
mov ebx, dword [eax]
push ecx
push edx
push 0x40cf64
mov ecx, dword [ebx + 0x10]
push eax
call dword [0x4b3178]
call dword [ebx + 0x10]
mov ebx, eax
test ebx, ebx
js 0x4a6fe9
mov eax, 0x2011
cmp word [ebp - 0x38], ax
jne 0x4a71a4
lea eax, [ebp - 0x20]
push eax
push 1
push dword [ebp - 0x30]
call dword [sym.imp.OLEAUT32.dll_SafeArrayLock]
mov ebx, eax
test ebx, ebx
js 0x4a6fe9
lea eax, [ebp - 0x40]
push eax
push 1
push dword [ebp - 0x30]
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
mov ebx, eax
test ebx, ebx
js 0x4a6fe9
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x20]
jle 0x4a71a4
sub eax, dword [ebp - 0x20]
inc eax
cmp dword [ebp - 8], eax
jne 0x4a71a4
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x30]
call dword [sym.imp.OLEAUT32.dll_SafeArrayUnaccessData]
mov ebx, eax
test ebx, ebx
js 0x4a6fe9
push dword [ebp - 8]
push dword [ebp - 0x44]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
push dword [ebp - 0x30]
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetElement]
mov ebx, eax
test ebx, ebx
js 0x4a6fe9
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
mov dword [ecx], eax
mov eax, esi
mov ecx, dword [ebp - 0x4c]
xor esi, esi
mov dword [ecx], eax
jmp 0x4a71b0
mov ecx, 0x80004005
mov ebx, ecx
call fcn.0046b33e
mov ecx, ebx
call fcn.0046b356
test esi, esi
je 0x4a71cb
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4a71ed
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
test edi, edi
je 0x4a71f8
push edi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4a7213
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4b3178]
call esi
and dword [ebp - 0x10], 0
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x4a722e
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4b3178]
call esi
and dword [ebp - 0xc], 0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4a7249
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4b3178]
call esi
and dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4a7264
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4b3178]
call esi
and dword [ebp - 0x18], 0
cmp dword [ebp - 0x24], 0
je 0x4a7270
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004ae550
mov esp, ebp
pop ebp
ret