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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x433914
mov eax, dword fs:[0]
push eax
sub esp, 0x150
mov eax, dword [0x4420a0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
sub esp, 0x18
mov byte [ebp - 0x129], 0
mov eax, esp
mov dword [eax], vtable.._AV___Func_impl_U___Callable_obj_V_lambda_c63ed50884ea8df1a98f9cc1ca71036e____0A__std__V__allocator_V___Func_class_X___V_std___2_X___V_std__.0
lea ecx, [ebp - 0x129]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0xc0]
mov dword [eax + 0x10], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0040d500
push 0
mov dword [ebp - 4], 1
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 3
push 0
push 0
push 0
test eax, eax
push 0xffffffffffffffff
push 0
setns byte [ebp - 0x129]
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
test eax, eax
js 0x40f925
sub esp, 0x18
mov dword [ebp - 0x144], 0
mov eax, esp
mov dword [eax], vtable.._AV___Func_impl_U___Callable_obj_V_lambda_34c9d1502d50ba1eb7c4d21129455a26____0A__std__V__allocator_V___Func_class_X___V_std___2_X___V_std__.0
lea ecx, [ebp - 0x144]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0xe0]
mov dword [eax + 0x10], eax
mov byte [ebp - 4], 1
call fcn.0040d500
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 3
push eax
push 0x439da8
push 1
push 0
push 0x439e78
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x40f685
push 0x40cd30
push eax
push 0x40fb50
push str._Err_code__0x
push str.Failed_to_create_IWbemLocator_object.
push dword [sym.imp.MSVCP120.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.0040c010
add esp, 8
push eax
call fcn.0040c010
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP120.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base_____cdecl___class_std::ios_base___]
mov ecx, eax
call dword [sym.imp.MSVCP120.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___long_int_]
mov ecx, eax
call dword [sym.imp.MSVCP120.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
jmp 0x40f916
sub esp, 0x18
mov dword [ebp - 0x138], 0
mov eax, esp
mov dword [eax], vtable.._AV___Func_impl_U___Callable_obj_V_lambda_77429e031f587bd69d7d610dd77676a1____0A__std__V__allocator_V___Func_class_X___V_std___2_X___V_std__.0
lea ecx, [ebp - 0x138]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0xa0]
mov dword [eax + 0x10], eax
mov byte [ebp - 4], 3
call fcn.0040d500
push str.rootcimv2
lea ecx, [ebp - 0x13c]
mov byte [ebp - 4], 5
call fcn.0040d630
mov edx, dword [eax]
mov byte [ebp - 4], 6
test edx, edx
je 0x40f6d7
mov edx, dword [edx]
jmp 0x40f6d9
xor edx, edx
mov eax, dword [ebp - 0x144]
lea esi, [ebp - 0x138]
push esi
push 0
push 0
mov ecx, dword [eax]
push 0
push 0
push 0
push 0
push edx
push eax
call dword [ecx + 0xc]
lea ecx, [ebp - 0x13c]
mov esi, eax
call fcn.0040d9c0
test esi, esi
js 0x40f907
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [ebp - 0x138]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x40f907
sub esp, 0x18
mov dword [ebp - 0x134], 0
mov eax, esp
mov dword [eax], vtable.._AV___Func_impl_U___Callable_obj_V_lambda_e9eb9b01d2a30b703e67fc85f7051b00____0A__std__V__allocator_V___Func_class_X___V_std___2_X___V_std__.0
lea ecx, [ebp - 0x134]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x80]
mov dword [eax + 0x10], eax
mov byte [ebp - 4], 5
call fcn.0040d500
push str.SELECT__FROM_Win32_DiskDrive
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 8
call fcn.0040d5a0
mov esi, eax
push 0x437f00
lea ecx, [ebp - 0x13c]
mov byte [ebp - 4], 9
call fcn.0040d5a0
mov esi, dword [esi]
mov byte [ebp - 4], 0xa
test esi, esi
je 0x40f795
mov esi, dword [esi]
jmp 0x40f797
xor esi, esi
mov eax, dword [eax]
test eax, eax
je 0x40f7a1
mov edx, dword [eax]
jmp 0x40f7a3
xor edx, edx
mov eax, dword [ebp - 0x138]
lea ebx, [ebp - 0x134]
push ebx
push 0
push 0x30
mov ecx, dword [eax]
push esi
push edx
push eax
call dword [ecx + 0x50]
lea ecx, [ebp - 0x13c]
mov esi, eax
call fcn.0040d9c0
lea ecx, [ebp - 0x130]
call fcn.0040d9c0
test esi, esi
js 0x40f8fb
sub esp, 0x18
mov dword [ebp - 0x140], 0
mov eax, esp
mov dword [eax], vtable.._AV___Func_impl_U___Callable_obj_V_lambda_91a41c3dd8d1cc1fb57d09bf4b03fac4____0A__std__V__allocator_V___Func_class_X___V_std___2_X___V_std__.0
lea ecx, [ebp - 0x140]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x60]
mov dword [eax + 0x10], eax
mov byte [ebp - 4], 8
call fcn.0040d500
mov ecx, dword [ebp - 0x134]
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x148], 0
test ecx, ecx
je 0x40f8ef
mov eax, dword [ecx]
lea edx, [ebp - 0x148]
push edx
lea edx, [ebp - 0x140]
push edx
push 1
push 0xffffffffffffffff
push ecx
call dword [eax + 0x10]
cmp dword [ebp - 0x148], 0
je 0x40f8ef
test eax, eax
jne 0x40f8ef
push 0x437f04
push dword [ebp - 0x140]
lea eax, [ebp - 0x40]
push eax
call fcn.0040fa40
add esp, 0xc
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 0xd
call fcn.0040d3d0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x128]
call fcn.00410330
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xf
push eax
mov ecx, edi
call fcn.0040fc50
cmp dword [ebp - 0x14], 0x10
jb 0x40f8af
push dword [ebp - 0x28]
call sub.MSVCR120.dll_void___cdecl_operator_delete_void__
add esp, 4
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.0040d880
cmp dword [ebp - 0x2c], 8
mov byte [ebp - 4], 0xc
jb 0x40f8e1
push dword [ebp - 0x40]
call sub.MSVCR120.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [ebp - 0x134]
test ecx, ecx
jne 0x40f825
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 8
call fcn.0040d920
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 5
call fcn.0040d920
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 3
call fcn.0040d920
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 1
call fcn.0040d920
lea ecx, [ebp - 0xc0]
mov dword [ebp - 4], 0xffffffff
call fcn.0040d920
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004308d0
mov esp, ebp
pop ebp
ret