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

Disassembly:
push 0x3c
mov eax, 0x4b9984
call fcn.00487efd
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x18c0]
cmp dword [eax - 0xc], 0
jne 0x452b19
xor eax, eax
jmp 0x452e58
lea ecx, [ebp - 0x2c]
call fcn.0040364a
xor edi, edi
mov dword [ebp - 4], edi
cmp dword [ebp + 8], edi
mov esi, str.SELECT__FROM_MSStorageDriver_FailurePredictData
je 0x452b35
mov esi, str.SELECT__FROM_MSStorageDriver_FailurePredictThresholds
push esi
call fcn.0048cb73
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00402266
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], edi
mov ebx, edi
xor ecx, ecx
inc ecx
mov byte [ebp - 4], cl
lea eax, [ebp - 0x1c]
push eax
push 0x4c3850
push ecx
push edi
push 0x4c3860
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x452de4
mov esi, edi
push edi
xor edx, edx
push 6
pop ecx
call fcn.00440768
pop ecx
test al, al
je 0x452b92
mov esi, 0x80
push str.._rootWMI
lea ecx, [ebp - 0x24]
call fcn.004147ed
mov byte [ebp - 4], 2
mov eax, dword [eax]
test eax, eax
je 0x452bad
mov edx, dword [eax]
jmp 0x452baf
mov edx, edi
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
lea eax, [ebp - 0x14]
push eax
push edi
push edi
push esi
push edi
push edi
push edi
push edx
mov eax, dword [ebp - 0x1c]
push eax
call dword [ecx + 0xc]
mov esi, eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.004147bc
test esi, esi
js 0x452de4
push edi
push edi
push 3
push 3
push edi
push edi
push 0xa
push dword [ebp - 0x14]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x452de4
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x34]
call fcn.004147ed
mov esi, eax
mov byte [ebp - 4], 3
push 0x4d7e0c
lea ecx, [ebp - 0x24]
call fcn.004147ed
mov byte [ebp - 4], 4
mov ecx, dword [esi]
test ecx, ecx
je 0x452c23
mov esi, dword [ecx]
jmp 0x452c25
mov esi, edi
mov eax, dword [eax]
test eax, eax
je 0x452c2f
mov edx, dword [eax]
jmp 0x452c31
mov edx, edi
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
lea eax, [ebp - 0x20]
push eax
push edi
push 0x30
push esi
push edx
mov eax, dword [ebp - 0x14]
push eax
call dword [ecx + 0x50]
mov esi, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.004147bc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x34]
call fcn.004147bc
test esi, esi
js 0x452de4
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x452de4
mov eax, dword [ecx]
lea edx, [ebp - 0x30]
push edx
lea edx, [ebp - 0x18]
push edx
push 1
push 0x2710
push ecx
call dword [eax + 0x10]
test eax, eax
js 0x452de4
cmp dword [ebp - 0x30], 1
jne 0x452de4
lea ecx, [ebp + 0xc]
call fcn.0040364a
mov byte [ebp - 4], 5
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
push edi
push edi
lea edx, [ebp - 0x48]
push edx
push edi
push str.InstanceName
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x452cf0
inc eax
cmp word [ebp - 0x48], ax
jbe 0x452cf0
push dword [ebp - 0x40]
lea ecx, [ebp + 0xc]
call fcn.004022db
lea ecx, [ebp + 0xc]
call fcn.0040a7e2
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push edi
push dword [esi + 0x18c0]
lea ecx, [ebp + 0xc]
call fcn.0040a80a
test eax, eax
je 0x452d27
mov byte [ebp - 4], 6
xor eax, eax
inc eax
mov byte [ebp - 4], al
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.0040259b
jmp 0x452c6b
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
push edi
push edi
lea edx, [ebp - 0x48]
push edx
push edi
push str.VendorSpecific
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x452de9
inc eax
cmp word [ebp - 0x48], ax
jbe 0x452dec
mov eax, edi
mov ecx, edi
cmp dword [ebp + 8], 0
jne 0x452d8f
mov dword [ebp + 8], edi
cmp eax, 0x200
jge 0x452d84
lea eax, [esi + 0x1000]
add eax, ecx
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x40]
call dword [sym.imp.OLEAUT32.dll_SafeArrayPutElement]
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp + 8], eax
mov ecx, eax
jmp 0x452d5c
push esi
mov ecx, dword [ebp - 0x38]
call fcn.00453e13
jmp 0x452dc0
mov dword [ebp - 0x24], edi
cmp eax, 0x200
jge 0x452dba
lea eax, [esi + 0x1200]
add eax, ecx
push eax
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x40]
call dword [sym.imp.OLEAUT32.dll_SafeArrayPutElement]
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
mov ecx, eax
jmp 0x452d92
push esi
call fcn.00454b9b
mov ebx, eax
mov dword [ebp - 0x28], ebx
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov byte [ebp - 4], 7
xor eax, eax
inc eax
mov byte [ebp - 4], al
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.0040259b
mov dword [ebp - 4], edi
jmp 0x452e07
xor eax, eax
inc eax
mov byte [ebp - 4], 8
jmp 0x452d14
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x452e17
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x18], edi
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x452e27
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x20], edi
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x452e37
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x14], edi
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x452e47
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x1c], edi
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.0040259b
mov eax, ebx
call fcn.00487e62
ret 8