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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a6a98
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd0
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jge 0x478ac1
cmp dword [ebp - 0x10], 0x80010106
je 0x478ac1
xor al, al
jmp 0x478ef5
xor eax, eax
mov byte [ebp - 0x11], al
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x90], esp
lea edx, [ebp - 0x11]
push edx
call fcn.004768c0
lea ecx, [ebp - 0xdc]
call fcn.00417150
mov dword [ebp - 0x94], eax
mov dword [ebp - 4], 0
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jge 0x478b3a
cmp dword [ebp - 0x10], 0x80010119
je 0x478b3a
mov byte [ebp - 0x12], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xdc]
call fcn.00419b70
mov al, byte [ebp - 0x12]
jmp 0x478ef5
lea ecx, [ebp - 0x20]
call fcn.00414130
mov byte [ebp - 4], 1
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x20]
call fcn.004772e0
mov ecx, eax
call fcn.00477210
push eax
push 0x5bf59c
push 1
push 0
push 0x5bf5ac
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jge 0x478ba4
mov byte [ebp - 0x13], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00477140
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xdc]
call fcn.00419b70
mov al, byte [ebp - 0x13]
jmp 0x478ef5
lea ecx, [ebp - 0x1c]
call fcn.00414130
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call fcn.0041afa0
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x50], eax
lea ecx, [ebp - 0x9c]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.004772e0
mov ecx, eax
call fcn.00477210
mov dword [ebp - 0x48], eax
push 0x5b47f8
lea ecx, [ebp - 0x54]
call fcn.0045e420
mov dword [ebp - 0x40], eax
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x44], edx
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x44]
call fcn.004601c0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x48]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
call dword [ebp - 0x50]
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54]
call fcn.0045f740
cmp dword [ebp - 0x10], 0
jge 0x478c6a
mov byte [ebp - 0x14], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c]
call fcn.00477140
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00477140
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xdc]
call fcn.00419b70
mov al, byte [ebp - 0x14]
jmp 0x478ef5
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
lea ecx, [ebp - 0x1c]
call fcn.0041afa0
push eax
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jge 0x478cc6
mov byte [ebp - 0x15], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c]
call fcn.00477140
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00477140
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xdc]
call fcn.00419b70
mov al, byte [ebp - 0x15]
jmp 0x478ef5
lea ecx, [ebp - 0x24]
call fcn.00414130
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.0041afa0
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
mov dword [ebp - 0x74], edx
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x24]
call fcn.004772e0
mov ecx, eax
call fcn.00477210
mov dword [ebp - 0x68], eax
push str.SELECT__FROM_Win32_ComputerSystemProduct
lea ecx, [ebp - 0x7c]
call fcn.00476eb0
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x5c], ecx
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x5c]
call fcn.004601c0
mov dword [ebp - 0x6c], eax
push 0x5b483c
lea ecx, [ebp - 0x78]
call fcn.00476eb0
mov dword [ebp - 0x60], eax
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x64], edx
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x64]
call fcn.004601c0
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x68]
push eax
push 0
push 0x30
mov ecx, dword [ebp - 0x6c]
push ecx
mov edx, dword [ebp - 0x70]
push edx
mov eax, dword [ebp - 0x30]
push eax
call dword [ebp - 0x74]
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x78]
call fcn.0045f740
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x7c]
call fcn.0045f740
cmp dword [ebp - 0x10], 0
jge 0x478dc5
mov byte [ebp - 0x16], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x24]
call fcn.00477140
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c]
call fcn.00477140
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00477140
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xdc]
call fcn.00419b70
mov al, byte [ebp - 0x16]
jmp 0x478ef5
lea ecx, [ebp - 0x28]
call fcn.00414130
mov byte [ebp - 4], 7
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x24]
call fcn.004771e0
cmp eax, 0xffffffff
je 0x478eac
lea ecx, [ebp - 0x24]
call fcn.0041afa0
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x84], eax
lea ecx, [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x28]
call fcn.004772e0
mov ecx, eax
call fcn.00477210
mov dword [ebp - 0x80], eax
lea edx, [ebp - 0x38]
push edx
mov eax, dword [ebp - 0x80]
push eax
push 1
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x34]
push ecx
call dword [ebp - 0x84]
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x38], 0
jne 0x478e3f
jmp 0x478eac
lea edx, [ebp - 0xb4]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [ebp - 0x28]
call fcn.0041afa0
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x88], edx
push 0
push 0
lea eax, [ebp - 0xb4]
push eax
push 0
push 0x5b4840
mov ecx, dword [ebp - 0x3c]
push ecx
call dword [ebp - 0x88]
mov dword [ebp - 0x8c], eax
mov edx, dword [ebp - 0xac]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00587601
add esp, 8
lea ecx, [ebp - 0xb4]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
jmp 0x478dd8
mov byte [ebp - 0x17], 1
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x28]
call fcn.00477140
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x24]
call fcn.00477140
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c]
call fcn.00477140
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00477140
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xdc]
call fcn.00419b70
mov al, byte [ebp - 0x17]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret