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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x88
mov eax, dword [0x5e0ffc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x50
lea eax, [ebp - 0x54]
mov dword [ebp - 0x58], ecx
push 0
push eax
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
call fcn.0055b6d0
add esp, 0xc
mov dword [ebp - 0x6c], 0
xor ebx, ebx
mov dword [ebp - 0x60], ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
lea eax, [ebp - 0x68]
push eax
push 0x5be900
setns byte [ebp - 0x7d]
xor edi, edi
push 1
push edi
push 0x5be8f0
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x407bbe
cmp dword [ebp - 0x68], ebx
je 0x407bbe
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
push str.._rootcimv2
call esi
mov dword [ebp - 0x84], eax
test eax, eax
je 0x407bbe
push str.Win32_PNPEntity
call esi
mov dword [ebp - 0x88], eax
test eax, eax
je 0x407b9c
push str.DeviceID
call esi
mov ebx, eax
test ebx, ebx
je 0x407b9c
mov ecx, dword [ebp - 0x68]
lea eax, [ebp - 0x6c]
push eax
push edi
push edi
mov edx, dword [ecx]
push edi
push edi
push edi
push edi
push dword [ebp - 0x84]
push ecx
call dword [edx + 0xc]
test eax, eax
js 0x407b9c
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x407b9c
push edi
push edi
push 3
push 3
push edi
push edi
push 0xa
push eax
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov eax, dword [ebp - 0x6c]
lea edx, [ebp - 0x64]
push edx
push edi
push edi
push dword [ebp - 0x88]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x48]
test eax, eax
js 0x407b9c
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x407b9c
mov eax, dword [ecx]
lea edx, [ebp - 0x60]
push edx
lea edx, [ebp - 0x54]
push edx
push 0x14
push 0x2710
push ecx
call dword [eax + 0x10]
test eax, eax
js 0x407b9a
mov edi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x407b9a
xor esi, esi
test eax, eax
je 0x407b7a
mov eax, dword [ebp + esi*4 - 0x54]
lea edx, [ebp - 0x7c]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push ebx
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x407b5a
cmp word [ebp - 0x7c], 8
jne 0x407b5a
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x407b5a
push 0x5be55c
push eax
call fcn.0055ae24
add esp, 8
test eax, eax
je 0x407b5a
push str.VID_
push dword [ebp - 0x74]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x5c], 0
call fcn.0055ae24
add esp, 8
test eax, eax
je 0x407b10
lea ecx, [ebp - 0x5c]
push ecx
push str.VID__4X
push eax
call fcn.00409c70
mov ecx, dword [ebp - 0x5c]
xor edx, edx
add esp, 0xc
cmp eax, 1
cmovne ecx, edx
mov dword [ebp - 0x5c], ecx
push str.PID_
push dword [ebp - 0x74]
call fcn.0055ae24
add esp, 8
test eax, eax
je 0x407b43
lea ecx, [ebp - 0x58]
push ecx
push str.PID__4X
push eax
call fcn.00409c70
mov ecx, dword [ebp - 0x58]
xor edx, edx
add esp, 0xc
cmp eax, 1
cmovne ecx, edx
jmp 0x407b46
mov ecx, dword [ebp - 0x58]
movzx eax, word [ebp - 0x5c]
movzx ecx, cx
shl ecx, 0x10
or ecx, eax
cmp ecx, dword [edi]
je 0x407c37
mov ecx, dword [ebp + esi*4 - 0x54]
test ecx, ecx
je 0x407b68
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp + esi*4 - 0x54], 0
inc esi
cmp esi, dword [ebp - 0x60]
jb 0x407a85
mov eax, dword [ebp - 0x64]
lea edx, [ebp - 0x60]
push edx
lea edx, [ebp - 0x54]
push edx
mov ecx, dword [eax]
push 0x14
push 0x2710
push eax
call dword [ecx + 0x10]
test eax, eax
jns 0x407a70
xor edi, edi
push dword [ebp - 0x84]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call esi
test ebx, ebx
je 0x407bb1
push ebx
call esi
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x407bbe
push eax
call esi
xor esi, esi
mov ecx, dword [ebp + esi*4 - 0x54]
test ecx, ecx
je 0x407bce
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp + esi*4 - 0x54], 0
inc esi
cmp esi, 0x14
jb 0x407bc0
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x407be9
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x64], 0
test ecx, ecx
je 0x407bfd
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x68], 0
test eax, eax
je 0x407c11
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp byte [ebp - 0x7d], 0
mov dword [ebp - 0x6c], 0
je 0x407c24
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0055829c
mov esp, ebp
pop ebp
ret
mov edi, 1
jmp 0x407b9c