Function at 0x10001ba0
Capabilities:
Connect to wmi namespace via wbemlocator
Reference wmi statements

Disassembly:
push 0xffffffffffffffff
push 0x10017716
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1001c024]
xor eax, esp
push eax
lea eax, [esp + 0x54]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x1c], ebx
lea eax, [esp + 0x1c]
push eax
push 0x10019c3c
push 1
push ebx
push 0x10019d0c
mov dword [esp + 0x70], ebx
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
cmp esi, ebx
jge 0x10001c2b
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
add eax, ebx
push esi
adc ecx, 0x560015
push ecx
push eax
push 0x57
push str..SystemDetails.cpp
push str._S__d_nRet0x_016llX_hRes0x_08X_n
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
call fcn.10004200
add esp, 0x18
jmp 0x1000234f
mov dword [esp + 0x18], ebx
lea eax, [esp + 0x30]
mov byte [esp + 0x5c], 1
mov esi, dword [esp + 0x1c]
push eax
mov edi, str.ROOTCIMV2
call fcn.10001980
mov byte [esp + 0x5c], 2
mov eax, dword [eax]
cmp eax, ebx
je 0x10001c56
mov eax, dword [eax]
jmp 0x10001c58
xor eax, eax
mov ecx, dword [esi]
lea edx, [esp + 0x18]
push edx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
mov edi, eax
mov byte [esp + 0x5c], 1
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x10001cb5
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x10001cb5
cmp esi, ebx
je 0x10001cb5
mov eax, dword [esi]
cmp eax, ebx
je 0x10001c9c
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x10001cac
push eax
call fcn.100047ad
add esp, 4
push esi
call fcn.100047ad
add esp, 4
cmp edi, ebx
jge 0x10001ced
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
add eax, ebx
push edi
adc ecx, 0x6b0015
push ecx
push eax
push 0x6c
push str..SystemDetails.cpp
push str._S__d_nRet0x_016llX_hRes0x_08X_n
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], eax
call fcn.10004200
add esp, 0x18
jmp 0x1000233a
mov eax, dword [esp + 0x18]
push ebx
push ebx
push 3
push 3
push ebx
push ebx
push 0xa
push eax
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov esi, eax
cmp esi, ebx
jge 0x10001d22
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
add eax, ebx
push esi
adc ecx, 0x7f0015
push ecx
push eax
push 0x80
jmp 0x10001cce
mov dword [esp + 0x20], ebx
mov byte [esp + 0x5c], 3
mov ebp, dword [esp + 0x18]
push 0xc
call fcn.100051cd
mov esi, eax
add esp, 4
mov dword [esp + 0x30], esi
mov byte [esp + 0x5c], 4
cmp esi, ebx
je 0x10001d62
push str.SELECT__FROM_Win32_OperatingSystem
mov dword [esi + 4], ebx
mov dword [esi + 8], 1
call fcn.10012d80
mov dword [esi], eax
mov edi, esi
jmp 0x10001d64
xor edi, edi
mov byte [esp + 0x5c], 3
mov dword [esp + 0x30], edi
cmp edi, ebx
jne 0x10001d7b
push 0x8007000e
call fcn.10012d60
mov bl, 5
push 0xc
mov byte [esp + 0x60], bl
call fcn.100051cd
mov esi, eax
add esp, 4
mov dword [esp + 0x2c], esi
mov byte [esp + 0x5c], 6
test esi, esi
je 0x10001db6
push 0x1001a048
mov dword [esi + 4], 0
mov dword [esi + 8], 1
call fcn.10012d80
mov dword [esi], eax
jmp 0x10001db8
xor esi, esi
mov byte [esp + 0x5c], bl
mov dword [esp + 0x2c], esi
test esi, esi
jne 0x10001dce
push 0x8007000e
call fcn.10012d60
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x60], 7
mov edx, dword [edi]
mov ecx, dword [esi]
mov eax, dword [ebp]
xor ebx, ebx
push ebx
push 0x30
push edx
mov edx, dword [eax + 0x50]
push ecx
push ebp
call edx
mov ebp, eax
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x10001e22
mov eax, dword [esi]
cmp eax, ebx
je 0x10001e09
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x10001e19
push eax
call fcn.100047ad
add esp, 4
push esi
call fcn.100047ad
add esp, 4
lea ecx, [edi + 8]
push ecx
mov byte [esp + 0x60], 3
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x10001e5b
mov eax, dword [edi]
cmp eax, ebx
je 0x10001e42
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi + 4]
cmp eax, ebx
je 0x10001e52
push eax
call fcn.100047ad
add esp, 4
push edi
call fcn.100047ad
add esp, 4
cmp ebp, ebx
jge 0x10001eaf
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
add eax, ebx
push ebp
adc ecx, 0x900015
push ecx
push eax
push 0x91
push str..SystemDetails.cpp
push str._S__d_nRet0x_016llX_hRes0x_08X_n
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
call fcn.10004200
mov byte [esp + 0x74], 1
mov eax, dword [esp + 0x38]
add esp, 0x18
cmp eax, ebx
je 0x10001ea6
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x5c], bl
jmp 0x1000233f
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x28], ebx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov dword [esp + 0x14], ebx
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x18]
push edx
mov byte [esp + 0x64], 9
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
push 1
push 0xffffffffffffffff
push eax
mov eax, dword [ecx + 0x10]
call eax
mov esi, eax
cmp esi, ebx
jl 0x1000226b
mov ebp, dword [esp + 0x64]
cmp dword [esp + 0x24], ebx
je 0x10002305
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [esp + 0x44]
push edx
push ebx
push 0x1001a04c
push eax
mov eax, dword [ecx + 0x10]
call eax
mov esi, eax
cmp esi, ebx
jl 0x10002285
mov ecx, 1
cmp cx, word [esp + 0x3c]
je 0x10001fbf
mov edi, dword [esp + 0x44]
lea edx, [esp + 0x64]
push edx
call fcn.10001980
mov byte [esp + 0x5c], 0xa
mov esi, dword [eax]
cmp esi, ebx
je 0x10001f5a
cmp dword [esi + 4], ebx
jne 0x10001f55
mov eax, dword [esi]
push eax
call fcn.10012f00
mov dword [esi + 4], eax
mov esi, dword [esi + 4]
jmp 0x10001f5c
xor esi, esi
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10001f61
sub eax, edx
push eax
push esi
lea ecx, [ebp + 4]
call fcn.100034c0
mov byte [esp + 0x5c], 9
mov eax, dword [esp + 0x64]
cmp eax, ebx
je 0x10001fbf
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x10001fbb
cmp esi, ebx
je 0x10001fbb
mov eax, dword [esi]
cmp eax, ebx
je 0x10001fa2
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x10001fb2
push eax
call fcn.100047ad
add esp, 4
push esi
call fcn.100047ad
add esp, 4
mov dword [esp + 0x64], ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [esp + 0x44]
push edx
push ebx
push str.Version
push eax
mov eax, dword [ecx + 0x10]
call eax
mov esi, eax
cmp esi, ebx
jl 0x1000229f
mov ecx, 1
cmp cx, word [esp + 0x3c]
je 0x10002085
mov edi, dword [esp + 0x44]
lea edx, [esp + 0x28]
push edx
call fcn.10001980
mov byte [esp + 0x5c], 0xb
mov esi, dword [eax]
cmp esi, ebx
je 0x10002020
cmp dword [esi + 4], ebx
jne 0x1000201b
mov eax, dword [esi]
push eax
call fcn.10012f00
mov dword [esi + 4], eax
mov esi, dword [esi + 4]
jmp 0x10002022
xor esi, esi
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10002027
sub eax, edx
push eax
push esi
lea ecx, [ebp + 0x20]
call fcn.100034c0
mov byte [esp + 0x5c], 9
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x10002085
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x10002081
cmp esi, ebx
je 0x10002081
mov eax, dword [esi]
cmp eax, ebx
je 0x10002068
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x10002078
push eax
call fcn.100047ad
add esp, 4
push esi
call fcn.100047ad
add esp, 4
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [esp + 0x44]
push edx
push ebx
push str.CSDVersion
push eax
mov eax, dword [ecx + 0x10]
call eax
mov esi, eax
cmp esi, ebx
jl 0x100022b9
mov ecx, 1
cmp cx, word [esp + 0x3c]
je 0x1000214e
mov edi, dword [esp + 0x44]
lea edx, [esp + 0x2c]
push edx
call fcn.10001980
mov byte [esp + 0x5c], 0xc
mov esi, dword [eax]
cmp esi, ebx
je 0x100020e6
cmp dword [esi + 4], ebx
jne 0x100020e1
mov eax, dword [esi]
push eax
call fcn.10012f00
mov dword [esi + 4], eax
mov esi, dword [esi + 4]
jmp 0x100020e8
xor esi, esi
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100020f0
sub eax, edx
push eax
push esi
lea ecx, [ebp + 0x3c]
call fcn.100034c0
mov byte [esp + 0x5c], 9
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x1000214e
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x1000214a
cmp esi, ebx
je 0x1000214a
mov eax, dword [esi]
cmp eax, ebx
je 0x10002131
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x10002141
push eax
call fcn.100047ad
add esp, 4
push esi
call fcn.100047ad
add esp, 4
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [esp + 0x44]
push edx
push ebx
push str.BuildNumber
push eax
mov eax, dword [ecx + 0x10]
call eax
mov esi, eax
cmp esi, ebx
jl 0x100022d3
mov ecx, 1
cmp cx, word [esp + 0x3c]
je 0x1000220f
mov edi, dword [esp + 0x44]
lea edx, [esp + 0x30]
push edx
call fcn.10001980
mov byte [esp + 0x5c], 0xd
mov esi, dword [eax]
cmp esi, ebx
je 0x100021af
cmp dword [esi + 4], ebx
jne 0x100021aa
mov eax, dword [esi]
push eax
call fcn.10012f00
mov dword [esi + 4], eax
mov esi, dword [esi + 4]
jmp 0x100021b1
xor esi, esi
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100021b6
sub eax, edx
push eax
push esi
lea ecx, [ebp + 0x58]
call fcn.100034c0
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x1000220f
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x1000220b
cmp esi, ebx
je 0x1000220b
mov eax, dword [esi]
cmp eax, ebx
je 0x100021f2
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x10002202
push eax
call fcn.100047ad
add esp, 4
push esi
call fcn.100047ad
add esp, 4
mov dword [esp + 0x30], ebx
mov byte [esp + 0x5c], 8
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x10002224
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [esp + 0x3c]
push ecx
mov dword [esp + 0x28], ebx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov dword [esp + 0x14], ebx
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x18]
push ecx
mov byte [esp + 0x64], 9
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
push 1
push 0xffffffffffffffff
push eax
call edx
mov esi, eax
cmp esi, ebx
jge 0x10001eef
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
add eax, ebx
push esi
adc ecx, 0x9d0015
push ecx
push eax
push 0x9e
jmp 0x100022eb
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
add eax, ebx
push esi
adc ecx, 0xab0015
push ecx
push eax
push 0xac
jmp 0x100022eb
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
add eax, ebx
push esi
adc ecx, 0xb90015
push ecx
push eax
push 0xba
jmp 0x100022eb
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
add eax, ebx
push esi
adc ecx, 0xc70015
push ecx
push eax
push 0xc8
jmp 0x100022eb
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
add eax, ebx
push esi
adc ecx, 0xd50015
push ecx
push eax
push 0xd6
push str..SystemDetails.cpp
push str._S__d_nRet0x_016llX_hRes0x_08X_n
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], eax
call fcn.10004200
add esp, 0x18
mov byte [esp + 0x5c], 8
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x1000231a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov byte [esp + 0x5c], 1
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x1000233a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x5c], 0
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x1000234f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x5c], 0xffffffff
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x10002367
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 4