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

Disassembly:
push 0xffffffffffffffff
push 0x100230f1
mov eax, dword fs:[0]
push eax
sub esp, 0x15c
mov eax, dword [0x10032914]
xor eax, esp
mov dword [esp + 0x158], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10032914]
xor eax, esp
push eax
lea eax, [esp + 0x170]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, 0x5c
mov ecx, eax
mov word [esp + 0xb2], cx
mov edx, 0x2e
mov word [esp + 0xb4], dx
mov ecx, 0x72
mov word [esp + 0xb8], cx
mov word [esp + 0xb0], ax
mov word [esp + 0xb6], ax
mov edx, 0x6f
mov eax, edx
mov ecx, 0x74
mov word [esp + 0xbe], cx
mov word [esp + 0xba], dx
mov word [esp + 0xbc], ax
mov ecx, 0x4d
mov edx, 0x5c
mov eax, 0x57
xor ebp, ebp
mov word [esp + 0xc4], cx
mov word [esp + 0xc0], dx
mov word [esp + 0xc2], ax
lea ecx, [esp + 0x2c]
mov edx, 0x49
xor eax, eax
push ecx
lea edi, [esp + 0xb4]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x2c], ebp
mov word [esp + 0xca], dx
mov word [esp + 0xcc], ax
mov dword [esp + 0x28], ebp
call fcn.1000f8e0
mov dword [esp + 0x178], ebp
mov eax, 0x51
mov edx, 0x57
mov word [esp + 0x86], ax
mov word [esp + 0x84], dx
lea eax, [esp + 0x38]
mov ecx, 0x4c
xor edx, edx
push eax
lea edi, [esp + 0x88]
mov word [esp + 0x8c], cx
mov word [esp + 0x8e], dx
call fcn.1000f8e0
mov byte [esp + 0x178], 1
mov ecx, 0x53
mov word [esp + 0x11c], cx
mov edx, 0x45
mov ecx, edx
mov word [esp + 0x11e], dx
mov eax, 0x4c
mov word [esp + 0x120], ax
mov word [esp + 0x122], cx
mov edx, 0x43
mov eax, 0x54
mov ecx, 0x20
mov word [esp + 0x124], dx
mov word [esp + 0x126], ax
mov eax, ecx
mov word [esp + 0x128], cx
mov edx, 0x2a
mov ecx, 0x46
mov word [esp + 0x12a], dx
mov word [esp + 0x12c], ax
mov edx, 0x52
mov eax, 0x4f
mov word [esp + 0x12e], cx
mov ecx, 0x4d
mov word [esp + 0x130], dx
mov word [esp + 0x132], ax
mov edx, 0x20
mov eax, ecx
mov word [esp + 0x134], cx
mov word [esp + 0x136], dx
mov word [esp + 0x138], ax
mov ecx, 0x53
mov edx, ecx
mov word [esp + 0x13a], cx
mov word [esp + 0x13c], dx
mov ecx, 0x42
mov word [esp + 0x140], cx
mov eax, 0x6d
mov word [esp + 0x13e], ax
mov ecx, 0x73
mov word [esp + 0x146], cx
mov edx, 0x69
mov word [esp + 0x142], dx
mov eax, 0x6f
mov word [esp + 0x144], ax
mov ecx, 0x61
mov word [esp + 0x14c], cx
mov edx, 0x5f
mov word [esp + 0x148], dx
mov eax, 0x52
mov word [esp + 0x14a], ax
mov ecx, 0x4d
mov word [esp + 0x152], cx
mov edx, 0x77
mov word [esp + 0x14e], dx
mov eax, 0x53
mov word [esp + 0x150], ax
mov ecx, 0x6f
mov word [esp + 0x158], cx
mov edx, 0x42
mov word [esp + 0x154], dx
mov eax, 0x69
mov word [esp + 0x156], ax
mov ecx, 0x61
mov edx, 0x73
mov eax, 0x54
mov word [esp + 0x15e], cx
mov word [esp + 0x15a], dx
mov word [esp + 0x15c], ax
mov ecx, 0x65
mov edx, 0x62
mov eax, 0x6c
mov word [esp + 0x164], cx
mov word [esp + 0x160], dx
mov word [esp + 0x162], ax
lea ecx, [esp + 0x30]
mov edx, 0x73
xor eax, eax
push ecx
lea edi, [esp + 0x120]
mov word [esp + 0x16a], dx
mov word [esp + 0x16c], ax
call fcn.1000f8e0
mov byte [esp + 0x178], 2
mov edx, 0x53
mov word [esp + 0x8c], dx
mov eax, 0x69
mov ecx, 0x7a
mov word [esp + 0x8e], ax
mov word [esp + 0x90], cx
mov edx, 0x65
xor eax, eax
mov word [esp + 0x92], dx
mov ecx, 0x53
mov word [esp + 0x94], ax
mov word [esp + 0x98], cx
mov edx, 0x4d
mov eax, 0x42
mov ecx, 0x69
mov word [esp + 0x9a], dx
mov edx, 0x6f
mov word [esp + 0x9c], ax
mov word [esp + 0x9e], cx
mov eax, 0x73
mov ecx, 0x44
mov word [esp + 0xa0], dx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], ebp
mov word [esp + 0xa2], ax
mov word [esp + 0xa4], cx
mov edx, 0x61
mov ecx, edx
mov word [esp + 0xa6], dx
mov word [esp + 0xaa], cx
xor edx, edx
mov word [esp + 0xac], dx
mov eax, 0x74
mov word [esp + 0xa8], ax
mov eax, 0x53
mov word [esp + 0xcc], ax
mov ecx, 0x6d
mov word [esp + 0xce], cx
mov eax, 0x69
mov word [esp + 0xd2], ax
mov edx, 0x62
mov word [esp + 0xd0], dx
mov ecx, 0x6f
mov word [esp + 0xd4], cx
mov eax, 0x4d
mov word [esp + 0xd8], ax
mov edx, 0x73
mov word [esp + 0xd6], dx
mov ecx, 0x61
mov word [esp + 0xda], cx
mov eax, 0x6f
mov word [esp + 0xde], ax
mov ecx, 0x72
mov word [esp + 0xe0], cx
mov word [esp + 0xe6], cx
mov edx, 0x6a
mov word [esp + 0xdc], dx
mov eax, 0x65
mov word [esp + 0xe4], ax
mov edx, 0x56
mov word [esp + 0xe2], dx
mov eax, 0x69
mov word [esp + 0xea], ax
xor eax, eax
mov ecx, 0x6f
mov word [esp + 0xec], cx
mov word [esp + 0xf0], ax
mov edx, 0x73
mov word [esp + 0xe8], dx
mov ecx, 0x53
mov word [esp + 0xf4], cx
mov edx, 0x6e
mov word [esp + 0xee], dx
mov eax, 0x62
mov word [esp + 0xf8], ax
mov ecx, 0x69
mov word [esp + 0xfa], cx
mov edx, 0x6d
mov word [esp + 0xf6], dx
mov eax, 0x73
mov word [esp + 0xfe], ax
mov ecx, 0x4d
mov word [esp + 0x100], cx
mov edx, 0x6f
mov eax, 0x6e
mov ecx, 0x6f
mov word [esp + 0xfc], dx
mov word [esp + 0x104], ax
mov word [esp + 0x106], cx
mov edx, 0x69
mov eax, 0x56
mov ecx, 0x65
mov word [esp + 0x102], dx
mov edx, 0x72
mov word [esp + 0x10a], ax
mov word [esp + 0x10c], cx
mov eax, 0x73
mov ecx, 0x69
mov word [esp + 0x108], dx
mov word [esp + 0x10e], dx
mov word [esp + 0x110], ax
mov word [esp + 0x112], cx
mov edx, 0x6f
mov eax, 0x6e
xor ecx, ecx
mov word [esp + 0x114], dx
mov word [esp + 0x116], ax
mov word [esp + 0x118], cx
mov esi, dword [sym.imp.OLEAUT32.dll_VariantClear]
xor eax, eax
mov dword [esp + 0x66], eax
mov dword [esp + 0x6a], eax
mov dword [esp + 0x6e], eax
mov word [esp + 0x72], ax
mov word [esp + 0x44], ax
mov dword [esp + 0x46], eax
mov dword [esp + 0x4a], eax
mov dword [esp + 0x4e], eax
mov word [esp + 0x52], ax
mov dword [esp + 0x76], eax
mov dword [esp + 0x7a], eax
mov dword [esp + 0x7e], eax
mov word [esp + 0x82], ax
mov dword [esp + 0x56], eax
mov dword [esp + 0x5a], eax
mov dword [esp + 0x5e], eax
mov word [esp + 0x62], ax
xor edx, edx
lea eax, [esp + 0x64]
push eax
mov word [esp + 0x68], dx
mov word [esp + 0x78], cx
mov word [esp + 0x58], dx
call esi
lea ecx, [esp + 0x44]
push ecx
call esi
lea edx, [esp + 0x74]
push edx
call esi
lea eax, [esp + 0x54]
push eax
call esi
push ebp
push ebp
call dword [sym.imp.ole32.dll_CoInitializeEx]
cmp eax, ebp
je 0x100100e0
cmp eax, 1
jne 0x100100e8
mov dword [esp + 0x3c], 1
push ebp
push ebp
push ebp
push 3
push ebp
push ebp
push ebp
push 0xffffffffffffffff
push ebp
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
cmp eax, ebp
je 0x10010108
cmp eax, 0x80010119
jne 0x100102ad
lea ecx, [esp + 0x28]
push ecx
push 0x10024a20
push 1
push ebp
push 0x10024af0
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jl 0x100102ad
lea esi, [esp + 0x2c]
call fcn.1000f9d0
mov ecx, dword [esp + 0x28]
mov eax, dword [eax]
mov edx, dword [ecx]
lea esi, [esp + 0x24]
push esi
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push eax
push ecx
mov ecx, dword [edx + 0xc]
call ecx
test eax, eax
jl 0x100102ad
lea esi, [esp + 0x30]
call fcn.1000f9d0
lea esi, [esp + 0x38]
mov edi, eax
call fcn.1000f9d0
mov ecx, dword [esp + 0x24]
mov eax, dword [eax]
mov edx, dword [ecx]
lea esi, [esp + 0x20]
push esi
mov esi, dword [edi]
push ebp
push ebp
push esi
push eax
push ecx
mov ecx, dword [edx + 0x50]
call ecx
test eax, eax
jl 0x100102ad
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x1c]
push ecx
push 1
mov dword [esp + 0x4c], ebp
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
push 0xffffffffffffffff
push eax
call edx
test eax, eax
jl 0x100102ad
cmp dword [esp + 0x40], ebp
je 0x100102ad
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push ebp
push ebp
lea edx, [esp + 0x7c]
push edx
push ebp
lea edx, [esp + 0xdc]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jl 0x100102ad
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push ebp
push ebp
lea edx, [esp + 0x5c]
push edx
push ebp
lea edx, [esp + 0x104]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jl 0x100102ad
cmp byte [esp + 0x7c], 2
jb 0x100102ad
cmp byte [esp + 0x5c], 4
jb 0x100102ad
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push ebp
push ebp
lea edx, [esp + 0x6c]
push edx
push ebp
lea edx, [esp + 0x9c]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jl 0x100102ad
mov eax, dword [esp + 0x6c]
cmp ebx, ebp
je 0x100102a8
cmp dword [0x10036f4c], eax
jb 0x100102a8
push ebp
push ebp
lea edx, [esp + 0x4c]
push edx
mov dword [0x10036f4c], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push ebp
lea edx, [esp + 0xa8]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jl 0x100102ad
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x34]
push ecx
push edx
mov dword [esp + 0x3c], ebp
call dword [sym.imp.OLEAUT32.dll_SafeArrayUnaccessData]
mov eax, dword [0x10036f4c]
mov ecx, dword [esp + 0x34]
push eax
push ecx
push ebx
call sub.MSVCR90.dll_memcpy
mov edx, dword [esp + 0x58]
add esp, 0xc
push edx
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetElement]
mov dword [esp + 0x1c], 1
jmp 0x100102ad
mov dword [0x10036f4c], eax
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp word [esp + 0x64], bp
je 0x100102c1
lea eax, [esp + 0x64]
push eax
call esi
cmp word [esp + 0x44], bp
je 0x100102cf
lea ecx, [esp + 0x44]
push ecx
call esi
cmp word [esp + 0x74], bp
je 0x100102dd
lea edx, [esp + 0x74]
push edx
call esi
cmp word [esp + 0x54], bp
je 0x100102eb
lea eax, [esp + 0x54]
push eax
call esi
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x100102fb
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x20]
cmp eax, ebp
je 0x1001030b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x1001031b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x28]
cmp eax, ebp
je 0x1001032b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [esp + 0x3c], ebp
je 0x10010337
call dword [sym.imp.ole32.dll_CoUninitialize]
mov esi, dword [esp + 0x30]
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp esi, ebp
je 0x10010377
lea eax, [esi + 8]
push eax
call edi
test eax, eax
jne 0x10010377
mov eax, dword [esi]
cmp eax, ebp
je 0x1001035e
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x1001036e
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov esi, dword [esp + 0x38]
cmp esi, ebp
je 0x100103ab
lea ecx, [esi + 8]
push ecx
call edi
test eax, eax
jne 0x100103ab
mov eax, dword [esi]
cmp eax, ebp
je 0x10010392
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x100103a2
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov esi, dword [esp + 0x2c]
cmp esi, ebp
je 0x100103df
lea edx, [esi + 8]
push edx
call edi
test eax, eax
jne 0x100103df
mov eax, dword [esi]
cmp eax, ebp
je 0x100103c6
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x100103d6
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x170]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x158]
xor ecx, esp
call fcn.100217e0
add esp, 0x168
ret