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

Disassembly:
push 0x3c
mov eax, 0x4b7af2
call fcn.00487a2a
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x18bc]
cmp dword [eax - 0xc], 0
jne 0x452851
xor eax, eax
jmp 0x452b83
lea ecx, [ebp - 0x2c]
call fcn.004038ee
xor edi, edi
mov dword [ebp - 4], edi
cmp dword [ebp + 8], edi
mov esi, str.SELECT__FROM_MSStorageDriver_FailurePredictData
je 0x45286d
mov esi, str.SELECT__FROM_MSStorageDriver_FailurePredictThresholds
push esi
call fcn.0048c5e3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00402592
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 0x4c1930
push ecx
push edi
push 0x4c1920
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x452b0f
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x144], 6
sbb esi, esi
and esi, 0xffffff80
sub esi, 0xffffff80
push str.._rootWMI
lea ecx, [ebp - 0x34]
call fcn.00414b6d
mov byte [ebp - 4], 2
mov edx, dword [eax]
test edx, edx
je 0x4528e0
mov edx, dword [edx]
jmp 0x4528e2
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 - 0x34]
call fcn.00414b3c
test esi, esi
js 0x452b0f
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 0x452b0f
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x38]
call fcn.00414b6d
mov esi, eax
mov byte [ebp - 4], 3
push 0x4d6dc0
lea ecx, [ebp - 0x34]
call fcn.00414b6d
mov byte [ebp - 4], 4
mov ecx, dword [esi]
test ecx, ecx
je 0x452956
mov esi, dword [ecx]
jmp 0x452958
mov esi, edi
mov eax, dword [eax]
test eax, eax
je 0x452962
mov edx, dword [eax]
jmp 0x452964
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 - 0x34]
call fcn.00414b3c
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x38]
call fcn.00414b3c
test esi, esi
js 0x452b0f
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x452b0f
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 0x452b0f
cmp dword [ebp - 0x30], 1
jne 0x452b0f
lea ecx, [ebp + 0xc]
call fcn.004038ee
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 0x452a23
inc eax
cmp word [ebp - 0x48], ax
jbe 0x452a23
push dword [ebp - 0x40]
lea ecx, [ebp + 0xc]
call fcn.00402607
lea ecx, [ebp + 0xc]
call fcn.0040abc3
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 + 0x18bc]
lea ecx, [ebp + 0xc]
call fcn.0040abeb
test eax, eax
je 0x452a5a
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.004028cb
jmp 0x45299e
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 0x452b14
inc eax
cmp word [ebp - 0x48], ax
jbe 0x452b17
mov eax, edi
cmp dword [ebp + 8], 0
jne 0x452abd
mov dword [ebp + 8], edi
cmp eax, 0x200
jge 0x452ab2
add eax, 0x1000
add eax, esi
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
jmp 0x452a8d
push esi
mov ecx, dword [ebp - 0x24]
call fcn.00453ae7
jmp 0x452aeb
mov dword [ebp - 0x24], edi
cmp eax, 0x200
jge 0x452ae5
add eax, 0x1200
add eax, esi
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
jmp 0x452ac0
push esi
call fcn.0045499f
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.004028cb
mov dword [ebp - 4], edi
jmp 0x452b32
xor eax, eax
inc eax
mov byte [ebp - 4], 8
jmp 0x452a47
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x452b42
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x18], edi
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x452b52
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x20], edi
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x452b62
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x14], edi
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x452b72
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.004028cb
mov eax, ebx
call fcn.00487988
ret 8