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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40489e
mov eax, dword fs:[0]
push eax
sub esp, 0x4d8
mov eax, dword [0x407040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x4e0], ecx
push 0
mov dword [ebp - 4], 1
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 0x4b8]
mov dword [ebp - 0x4b8], 0
push eax
push 0x4052bc
push 1
push 0
push 0x4052cc
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x401a7f
push 0xc
mov dword [ebp - 0x4b4], 0
call fcn.00403931
mov esi, eax
add esp, 4
mov dword [ebp - 0x4d4], esi
mov byte [ebp - 4], 2
test esi, esi
je 0x4019c6
xorps xmm0, xmm0
movq qword [esi], xmm0
mov dword [esi + 8], 0
push str.ROOTCIMV2
mov dword [esi + 4], 0
mov dword [esi + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi], eax
test eax, eax
je 0x401f6d
jmp 0x4019c8
xor esi, esi
mov byte [ebp - 4], 1
mov dword [ebp - 0x4d4], esi
test esi, esi
je 0x401f77
lea edx, [ebp - 0x4b4]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x4b8]
push edx
push 0
push 0
mov ecx, dword [eax]
push 0
push 0
push 0
push 0
push dword [esi]
push eax
call dword [ecx + 0xc]
mov edi, eax
mov byte [ebp - 4], 1
or ecx, 0xffffffff
lock xadd dword [esi + 8], ecx
dec ecx
jne 0x401a45
mov ecx, dword [esi]
test ecx, ecx
je 0x401a23
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x401a3a
push eax
call fcn.00403961
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403900
add esp, 8
test edi, edi
js 0x401a73
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [ebp - 0x4b4]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
jns 0x401a8c
mov eax, dword [ebp - 0x4b4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x4b8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
xor esi, esi
jmp 0x401ed2
mov ecx, dword [ebp + 0x18]
mov eax, SysReAllocString
sub eax, ecx
mov dword [ebp - 0x4bc], 0
mov dword [ebp - 0x4dc], ecx
cmp eax, 0xe
jb 0x401f81
cmp dword [ebp + 0x1c], 0xf
lea eax, [ebp + 8]
lea edx, [ecx + 0xe]
mov dword [ebp - 0x41c], 0
cmova eax, dword [ebp + 8]
lea edi, [ebp - 0x42c]
mov esi, 0xf
mov dword [ebp - 0x4d4], eax
mov dword [ebp - 0x418], 0
xorps xmm0, xmm0
mov dword [ebp - 0x4d8], edx
movups xmmword [ebp - 0x42c], xmm0
cmp edx, esi
jbe 0x401b82
mov esi, edx
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x401b3c
mov ecx, SysReAllocString
mov esi, SysReAllocString
add ecx, 0x23
push ecx
call fcn.00403931
add esp, 4
test eax, eax
je 0x401f40
mov ecx, dword [ebp - 0x4dc]
lea edi, [eax + 0x23]
mov edx, dword [ebp - 0x4d8]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x401b7c
mov eax, 0x16
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
cmp eax, 0x1000
jb 0x401b5d
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x401f86
jmp 0x401b14
test eax, eax
je 0x401b7a
push eax
call fcn.00403931
mov ecx, dword [ebp - 0x4dc]
add esp, 4
mov edx, dword [ebp - 0x4d8]
mov edi, eax
jmp 0x401b7c
xor edi, edi
mov dword [ebp - 0x42c], edi
movq xmm0, qword [str.SELECT__FROM]
mov dword [ebp - 0x41c], edx
mov dword [ebp - 0x418], esi
movq qword [edi], xmm0
mov eax, dword [0x405598]
mov dword [edi + 8], eax
mov ax, word [0x40559c]
push ecx
push dword [ebp - 0x4d4]
mov word [edi + 0xc], ax
lea eax, [edi + 0xe]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x4d8]
add esp, 0xc
mov byte [edi + eax], 0
mov byte [ebp - 4], 4
lea eax, [ebp - 0x42c]
cmp dword [ebp - 0x418], 0xf
lea ecx, [ebp - 0x4d4]
cmova eax, dword [ebp - 0x42c]
push eax
call fcn.004011e0
mov edi, eax
push 0x40539c
lea ecx, [ebp - 0x4dc]
mov byte [ebp - 4], 5
call fcn.004011e0
mov byte [ebp - 4], 6
mov esi, dword [eax]
test esi, esi
je 0x401c11
mov esi, dword [esi]
jmp 0x401c13
xor esi, esi
mov eax, dword [edi]
test eax, eax
je 0x401c1d
mov edx, dword [eax]
jmp 0x401c1f
xor edx, edx
mov eax, dword [ebp - 0x4b4]
lea edi, [ebp - 0x4bc]
push edi
push 0
push 0x30
mov ecx, dword [eax]
push edx
push esi
push eax
call dword [ecx + 0x50]
mov esi, dword [ebp - 0x4dc]
or edi, 0xffffffff
mov dword [ebp - 0x4d8], eax
test esi, esi
je 0x401c98
mov ecx, edi
lock xadd dword [esi + 8], ecx
dec ecx
jne 0x401c8e
test esi, esi
je 0x401c8e
mov eax, dword [esi]
test eax, eax
je 0x401c6c
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x401c83
push eax
call fcn.00403961
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403900
add esp, 8
mov dword [ebp - 0x4dc], 0
mov byte [ebp - 4], 4
mov esi, dword [ebp - 0x4d4]
test esi, esi
je 0x401ce7
lock xadd dword [esi + 8], edi
dec edi
jne 0x401ce7
test esi, esi
je 0x401ce7
mov eax, dword [esi]
test eax, eax
je 0x401cc5
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x401cdc
push eax
call fcn.00403961
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403900
add esp, 8
cmp dword [ebp - 0x4d8], 0
jge 0x401d15
mov eax, dword [ebp - 0x4b4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x4b8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
xor esi, esi
jmp 0x401e7d
mov ecx, dword [ebp - 0x4bc]
mov dword [ebp - 0x414], 0
test ecx, ecx
je 0x401e4e
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [ecx]
lea edx, [ebp - 0x414]
push edx
lea edx, [ebp - 0x4c0]
push edx
push 1
push 0xffffffffffffffff
push ecx
call dword [eax + 0x10]
cmp dword [ebp - 0x414], 0
je 0x401e4e
lea eax, [ebp - 0x4d0]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebp - 0x4c0]
lea edi, [ebp - 0x4d0]
cmp dword [ebp + 0x34], 7
lea edx, [ebp + 0x20]
push 0
cmova edx, dword [ebp + 0x20]
mov ecx, dword [eax]
push 0
push edi
push 0
push edx
push eax
call dword [ecx + 0x10]
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
js 0x401e2b
push 0x84
lea eax, [ebp - 0x4b0]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x4ac]
lea ecx, [ebp - 0x4b0]
mov dword [ebp - 0x4b0], eax
push 3
push dword [ebp - 0x4c8]
call fcn.00403050
mov byte [ebp - 4], 7
lea eax, [ebp - 0x410]
push dword [ebp - 0x4b0]
push 0xc8
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
lea ecx, [ebp - 0x410]
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401df5
sub ecx, edx
lea eax, [ebp - 0x410]
push ecx
mov ecx, dword [ebp - 0x4e0]
push eax
call fcn.00403210
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4ac]
mov eax, dword [ebp - 0x4b0]
cmp eax, ecx
je 0x401e2b
push eax
call esi
add esp, 4
lea eax, [ebp - 0x4d0]
push eax
call edi
mov eax, dword [ebp - 0x4c0]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [ebp - 0x4bc]
test ecx, ecx
jne 0x401d33
mov eax, dword [ebp - 0x4b4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x4b8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x4bc]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov esi, 1
mov ecx, dword [ebp - 0x418]
cmp ecx, 0xf
jbe 0x401eb7
mov edx, dword [ebp - 0x42c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x401ead
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x401f40
push ecx
push edx
call fcn.00403900
add esp, 8
mov dword [ebp - 0x41c], 0
mov dword [ebp - 0x418], 0xf
mov byte [ebp - 0x42c], 0
mov ecx, dword [ebp + 0x1c]
cmp ecx, 0xf
jbe 0x401f02
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x401ef8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x401f40
push ecx
push edx
call fcn.00403900
add esp, 8
mov ecx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp ecx, 7
jbe 0x401f50
mov edx, dword [ebp + 0x20]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x401f46
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x401f46
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00403900
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004038f2
mov esp, ebp
pop ebp
ret
push 0x8007000e
call fcn.004034b0
push 0x8007000e
call fcn.004034b0
call fcn.004011d0
call fcn.00401130
int3