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

Disassembly:
push 0x48
mov eax, 0x42e577
call fcn.0040fcb5
mov dword [ebp - 0x4c], ecx
mov edi, 0x43d080
mov edx, 0x19b
mov ecx, edi
mov bl, 1
call fcn.0040e719
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov edx, 0x1a1
mov ecx, edi
mov esi, eax
call fcn.0040e719
cmp esi, 0x80010106
jne 0x40cc8d
mov edx, 0x1a6
mov ecx, edi
call fcn.0040e719
xor bl, bl
mov edx, 0x1b0
mov ecx, edi
call fcn.0040e719
xor eax, eax
push eax
push eax
push eax
push 3
push eax
push eax
push eax
push 0xffffffffffffffff
push eax
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
cmp eax, 0x80010119
jne 0x40cc9b
mov edx, 0x1bd
mov ecx, edi
call fcn.0040e719
mov edx, 0x1c6
mov ecx, edi
call fcn.0040e719
and dword [ebp - 0x48], 0
xor ecx, ecx
inc ecx
mov dword [ebp - 4], ecx
lea eax, [ebp - 0x48]
push eax
push 0x44086c
push ecx
push 0
push 0x44085c
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ecx, edi
test eax, eax
jns 0x40ccb0
mov edx, 0x1d2
call fcn.0040e719
jmp 0x40ce8c
test esi, esi
jns 0x40cc19
mov edx, 0x1ac
jmp 0x40cec4
test eax, eax
jns 0x40cc4b
mov edx, 0x1c2
mov ecx, edi
call fcn.0040e719
jmp 0x40ce9d
mov edx, 0x1d7
call fcn.0040e719
and dword [ebp - 0x44], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x50]
mov esi, dword [ebp - 0x48]
push str.rootcimv2
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
call fcn.0040c80c
mov byte [ebp - 4], 5
mov eax, dword [eax]
test eax, eax
je 0x40cce5
mov eax, dword [eax]
jmp 0x40cce7
xor eax, eax
lea ecx, [ebp - 0x44]
push ecx
xor ecx, ecx
push ecx
push ecx
push 0x80
push ecx
push ecx
push ecx
push eax
push esi
call edi
mov esi, eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x40cd11
call fcn.0040df0b
and dword [ebp - 0x50], 0
test esi, esi
jns 0x40cd3c
mov edi, 0x43d080
mov edx, 0x1de
mov ecx, edi
call fcn.0040e719
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x40cd37
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x40ce8c
mov esi, 0x43d080
mov edx, 0x1e2
mov ecx, esi
call fcn.0040e719
xor eax, eax
push eax
push eax
push 3
pop edi
push edi
push edi
push eax
push eax
push 0xa
push dword [ebp - 0x44]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov eax, str.SerialNumber
mov dword [ebp - 0x18], str.Caption
mov edx, 0x1f7
mov dword [ebp - 0x1c], eax
mov ecx, esi
mov dword [ebp - 0x14], str.Manufacturer
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], str.Model
call fcn.0040e719
mov edx, dword [ebp - 0x44]
lea eax, [ebp - 0x1c]
push edi
push eax
push str.SELECT__FROM_Win32_BIOS
lea ecx, [ebp - 0x40]
call fcn.0040d90a
mov byte [ebp - 4], 8
mov edx, 0x1fd
mov ecx, esi
call fcn.0040e719
lea eax, [ebp - 0x40]
push eax
push edi
mov edi, dword [ebp - 0x4c]
mov ecx, edi
call fcn.0040df32
mov edx, 0x1ff
mov ecx, esi
call fcn.0040e719
push 0
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
call fcn.0040cafd
mov byte [ebp - 4], 9
mov esi, dword [eax + 0x10]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x28]
call fcn.00402823
test esi, esi
jne 0x40ce6a
mov esi, 0x43d080
mov edx, 0x204
mov ecx, esi
call fcn.0040e719
mov edx, dword [ebp - 0x44]
lea eax, [ebp - 0x54]
push 2
push eax
push str.SELECT__FROM_Win32_PhysicalMedia
lea ecx, [ebp - 0x28]
call fcn.0040d90a
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x40]
cmp ecx, eax
je 0x40ce32
mov byte [ebp - 0x4c], 0
push dword [ebp - 0x4c]
push eax
call fcn.004058ef
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x28]
call fcn.00402823
mov edx, 0x208
mov ecx, esi
call fcn.0040e719
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
push 0
call fcn.0040df32
mov edi, 0x43d080
mov edx, 0x20a
mov ecx, edi
call fcn.0040e719
jmp 0x40ce6f
mov edi, 0x43d080
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
call fcn.00402823
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x40ce8c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x40ce9d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, 0x20f
mov ecx, edi
call fcn.0040e719
test bl, bl
je 0x40cebf
mov edx, 0x212
mov ecx, edi
call fcn.0040e719
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, 0x215
mov ecx, edi
call fcn.0040e719
xor al, al
call fcn.0040fc5f
ret