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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [0x450074]
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 - 0x20], eax
lea edi, [ebp - 0x60]
mov dword [ebp - 0x1c], eax
mov esi, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], 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
mov ebx, edi
mov dword [ebp - 0x14], edi
cmp esi, ebx
jne 0x446a70
push edi
push edi
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
js 0x446a60
mov dword [ebp - 0x20], 1
jmp 0x446a70
cmp eax, 0x80010106
je 0x446a70
mov ecx, eax
mov ebx, eax
call fcn.0040a491
mov ecx, ebx
call fcn.0040a4ae
test ebx, ebx
jns 0x446a89
mov ecx, ebx
call fcn.0040a491
mov edi, esi
jmp 0x446cf0
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 0x446aaa
test ebx, ebx
js 0x446a7b
lea eax, [ebp - 0x1c]
push eax
push 0x407e6c
push 1
push edi
push 0x407e5c
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
test ebx, ebx
js 0x446a7b
push 0x407044
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
test esi, esi
jne 0x446ae3
mov ecx, 0x8007000e
mov esi, edi
mov ebx, ecx
jmp 0x446a7d
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x18]
push ecx
xor ecx, ecx
push ecx
mov edi, dword [eax]
push ecx
push ecx
push ecx
push ecx
push ecx
mov ecx, dword [edi + 0xc]
push esi
push eax
call dword [0x451170]
call dword [edi + 0xc]
mov ebx, eax
test ebx, ebx
jns 0x446b17
mov ecx, ebx
call fcn.0040a491
mov edi, dword [ebp - 8]
jmp 0x446cf0
push 0x407060
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
test edi, edi
jne 0x446b32
mov ecx, 0x8007000e
jmp 0x446ce9
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x446b4d
mov ecx, dword [eax]
push eax
mov ebx, dword [ecx + 8]
mov ecx, ebx
call dword [0x451170]
call ebx
and dword [ebp - 0xc], 0
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0xc]
push ecx
push 0
push 0
mov ebx, dword [eax]
push edi
push eax
mov ecx, dword [ebx + 0x48]
call dword [0x451170]
call dword [ebx + 0x48]
mov ebx, eax
test ebx, ebx
jns 0x446b75
mov ecx, ebx
jmp 0x446ceb
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 [0x451170]
call dword [ebx + 0x10]
cmp dword [ebp - 0x3c], 0
ja 0x446ba3
mov ecx, 0x8007000d
jmp 0x446ce9
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 0x406fa4
mov ecx, dword [ebx + 0x10]
push eax
call dword [0x451170]
call dword [ebx + 0x10]
mov ebx, eax
test ebx, ebx
js 0x446b6e
push 3
pop eax
cmp word [ebp - 0x60], ax
jne 0x446ce4
mov eax, dword [ebp - 0x58]
mov dword [ebp - 8], eax
test eax, eax
je 0x446b99
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x446c09
mov dword [ebp - 0x14], eax
jmp 0x446b28
mov dword [ebp - 0x14], eax
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 0x407094
mov ecx, dword [ebx + 0x10]
push eax
call dword [0x451170]
call dword [ebx + 0x10]
mov ebx, eax
test ebx, ebx
js 0x446b6e
mov eax, 0x2011
cmp word [ebp - 0x38], ax
jne 0x446ce4
lea eax, [ebp - 0x24]
push eax
push 1
push dword [ebp - 0x30]
call dword [sym.imp.OLEAUT32.dll_SafeArrayLock]
mov ebx, eax
test ebx, ebx
js 0x446b6e
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 0x446b6e
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x24]
jle 0x446ce4
sub eax, dword [ebp - 0x24]
inc eax
cmp dword [ebp - 8], eax
jne 0x446ce4
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x30]
call dword [sym.imp.OLEAUT32.dll_SafeArrayUnaccessData]
mov ebx, eax
test ebx, ebx
js 0x446b6e
push dword [ebp - 8]
push dword [ebp - 0x44]
push dword [ebp - 0x28]
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 0x446b6e
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
mov dword [ecx], eax
xor eax, eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x28]
mov dword [ecx], eax
jmp 0x446cf0
mov ecx, 0x80004005
mov ebx, ecx
call fcn.0040a491
mov ecx, ebx
call fcn.0040a4ae
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x446d0e
push eax
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]
test edi, edi
je 0x446d2d
push edi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
test esi, esi
je 0x446d38
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x446d53
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x451170]
call esi
and dword [ebp - 0x10], 0
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x446d6e
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x451170]
call esi
and dword [ebp - 0xc], 0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x446d89
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x451170]
call esi
and dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x446da4
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x451170]
call esi
and dword [ebp - 0x1c], 0
cmp dword [ebp - 0x20], 0
je 0x446db0
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.0044ce60
mov esp, ebp
pop ebp
ret