Function at 0x401890
Capabilities:
Connect to wmi namespace via wbemlocator
Get http document via iwebbrowser2
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x520
mov esi, esp
mov dword [esi + 0x508], ebp
mov dword [esi + 0x50c], esp
mov dword [esi + 0x518], 0xffffffff
lea eax, [esi + 0x510]
mov dword [esi + 0x514], 0x4032f0
mov ecx, dword fs:[0]
mov dword [esi + 0x510], ecx
mov dword fs:[0], eax
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [esi + 0x14], 0
lea eax, [esi + 0x14]
push eax
push 0x43d148
push 1
push 0
push 0x43d158
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x401c03
mov eax, 0x9a3a60f9
mov ecx, 0x1afadf57
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xa7d2a1ac
mov ecx, 0x31c9ad64
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0xb5df53cb
mov ecx, 0x3cb91316
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0x4c144c52
mov ecx, 0xfa81d23b
mov edx, 0x9a7560ab
mov edi, 0x1aaedf18
mov dword [esi + 0x70], edi
mov dword [esi + 0x84], edi
mov dword [esi + 0x74], edx
mov dword [esi + 0x80], edx
mov edx, 0xa791a1f0
mov edi, 0x3184ad2d
mov dword [esi + 0x68], edi
mov dword [esi + 0x8c], edi
mov dword [esi + 0x6c], edx
mov dword [esi + 0x88], edx
mov edx, 0x3cb91316
mov edi, 0xb5ed539d
mov dword [esi + 0x94], edx
mov dword [esi + 0x90], edi
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x58], eax
mov dword [esi + 0x98], eax
lea ecx, [esi + 0x80]
xor eax, eax
mov dword [esi + 0x10], 0
movaps xmm0, xmmword [esi + 0x40]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x40], xmm0
movaps xmm0, xmmword [esi + 0x50]
xorps xmm0, xmmword [ecx + 0x10]
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0x518], 0
mov eax, dword [esi + 0x14]
mov dword [esi + 8], eax
push 0xc
call fcn.00419422
add esp, 4
mov edi, eax
mov dword [eax + 4], 0
mov dword [eax + 8], 1
lea eax, [esi + 0x40]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [edi], eax
test eax, eax
mov dword [esi + 0xc], edi
je 0x402091
mov dword [esi + 0x80], edi
mov ebx, dword [esi + 8]
mov ecx, dword [ebx]
mov ecx, dword [ecx + 0xc]
mov dword [esi + 0x518], 8
sub esp, 0x24
lea edx, [esi + 0x10]
mov dword [esp + 0x20], edx
xorps xmm0, xmm0
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
call ecx
mov edi, eax
mov ebx, dword [esi + 0xc]
mov eax, ebx
add eax, 8
lock dec dword [eax]
jne 0x401a88
mov eax, dword [ebx]
test eax, eax
je 0x401a6f
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebx], 0
mov eax, dword [ebx + 4]
test eax, eax
je 0x401a7f
push eax
call fcn.00419488
add esp, 4
push ebx
call fcn.00419452
add esp, 4
test edi, edi
js 0x401bce
mov eax, dword [esi + 0x10]
sub esp, 0x20
movaps xmm0, xmmword [0x41b4e0]
movups xmmword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 3
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x401be5
mov eax, 0xdf3925f8
mov ecx, 0x308e8b5b
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xe8c3e7d0
mov ecx, 0x31848d60
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
xor eax, eax
lea ecx, [esi + 0x80]
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x70]
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x74]
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x88], eax
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x20], xmm0
lea eax, [esi + 0x20]
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
lea ecx, [ebp + 8]
mov edx, dword [ecx + 0x14]
mov eax, edx
xor eax, 0x7fffffff
cmp eax, edi
jb 0x4020ab
mov eax, dword [ecx + 4]
mov dword [esi + 0x78], eax
mov ebx, dword [ecx + 0x18]
xorps xmm0, xmm0
movaps xmmword [esi + 0x40], xmm0
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x7c], edx
mov dword [esi + 0x34], edi
lea ecx, [edx + edi]
mov edx, 0xf
cmp ecx, 0x10
lea edi, [esi + 0x40]
mov dword [esi + 0xc], ecx
jb 0x401ce8
test ecx, ecx
mov dword [esi + 0x64], ebx
js 0x401cb3
mov eax, ecx
or eax, 0xf
cmp eax, 0x17
mov edx, 0x16
cmovae edx, eax
cmp edx, 0xfff
jae 0x401cb8
mov dword [esi + 8], edx
lea eax, [edx + 1]
mov dword [esi + 0x518], 0
push eax
call fcn.00419422
add esp, 4
mov edi, eax
jmp 0x401cdc
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0x518], 0
push eax
call ecx
jmp 0x401c03
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0x518], 0
push eax
call ecx
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
xor edi, edi
lea ecx, [ebp + 8]
mov eax, dword [ecx + 0x18]
cmp eax, 0x10
jb 0x401c4b
lea ecx, [ebp + 0xc]
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x401c3e
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4020a5
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.00419457
add esp, 8
lea ecx, [ebp + 8]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0xf
mov byte [ecx + 4], 0
mov eax, dword [ecx + 0x30]
cmp eax, 8
jb 0x401c9d
lea ecx, [ebp + 0x24]
mov ecx, dword [ecx]
lea ebx, [eax*2 + 2]
cmp ebx, 0x1000
jb 0x401c93
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4020a5
add eax, eax
add eax, 0x25
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.00419457
add esp, 8
mov eax, dword [esi + 0x510]
mov dword fs:[0], eax
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, SysReAllocString
mov dword [esi + 8], edx
lea eax, [edx + 0x24]
mov dword [esi + 0x518], 0
push eax
call fcn.00419422
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
mov ebx, dword [esi + 0x64]
mov dword [esi + 0x40], edi
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ebx, 0x10
lea eax, [ebp + 0xc]
mov ebx, dword [esi + 0x78]
cmovb ebx, eax
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], edx
mov edx, edi
mov dword [esi + 8], edi
mov edi, dword [esi + 0x34]
push edi
lea eax, [esi + 0x20]
push eax
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, dword [esi + 8]
push dword [esi + 0x7c]
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov byte [eax + ecx], 0
mov eax, dword [esi + 0x10]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x54]
mov dword [esi + 0xc], eax
mov dword [esi + 0x518], 2
push 0xc
call fcn.00419422
add esp, 4
cmp dword [esi + 0xc], 0x10
lea ecx, [esi + 0x40]
cmovae ecx, dword [esi + 8]
mov dword [eax + 4], 0
mov dword [esi + 8], eax
mov dword [eax + 8], 1
mov dword [esi + 0x518], 3
push ecx
call fcn.004198e0
mov dword [esi + 0xc], eax
mov ecx, dword [esi + 8]
mov dword [ecx], eax
mov dword [esi + 0x18], ecx
mov eax, 0x9a3931fc
mov ecx, 0x1aaedf18
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x74]
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x28], eax
mov dword [esi + 0x88], eax
xor eax, eax
lea ecx, [esi + 0x80]
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x20], xmm0
mov dword [esi + 0x518], 5
push 0xc
call fcn.00419422
add esp, 4
mov ecx, eax
mov dword [eax + 4], 0
mov dword [eax + 8], 1
mov dword [esi + 0x518], 6
lea eax, [esi + 0x20]
push eax
mov dword [esi + 8], ecx
call fcn.004198e0
mov ecx, dword [esi + 8]
mov dword [ecx], eax
mov dword [esi + 0x1c], ecx
mov edi, dword [esi + 0x34]
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x50]
mov dword [esi + 0x518], 7
lea edx, [esi + 0x38]
push edx
push 0
push 0x30
push dword [esi + 0xc]
push eax
push edi
call ecx
mov edi, eax
mov ebx, dword [esi + 8]
mov eax, ebx
add eax, 8
lock dec dword [eax]
jne 0x401e72
mov eax, dword [ebx]
test eax, eax
je 0x401e59
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebx], 0
mov eax, dword [ebx + 4]
test eax, eax
je 0x401e69
push eax
call fcn.00419488
add esp, 4
push ebx
call fcn.00419452
add esp, 4
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x401eab
lock dec dword [ebx + 8]
jne 0x401eab
mov eax, dword [ebx]
test eax, eax
je 0x401e92
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebx], 0
mov eax, dword [ebx + 4]
test eax, eax
je 0x401ea2
push eax
call fcn.00419488
add esp, 4
push ebx
call fcn.00419452
add esp, 4
test edi, edi
js 0x40202e
mov dword [esi + 0x18], 0
jmp 0x401edd
mov dword [esi + 0x518], 2
lea eax, [esi + 0x20]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esi + 0x38]
mov dword [esi + 0x518], 2
test eax, eax
je 0x402006
mov ecx, dword [eax]
lea edx, [esi + 0x18]
push edx
lea edx, [esi + 0x1c]
push edx
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
cmp dword [esi + 0x18], 0
je 0x402006
lea eax, [esi + 0x20]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [ebp + 8]
cmp dword [ecx + 0x30], 8
lea eax, [ebp + 0x24]
jb 0x401f27
mov eax, dword [ecx + 0x1c]
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx]
push 0
push 0
lea edi, [esi + 0x20]
push edi
push 0
push eax
push ecx
call dword [edx + 0x10]
test eax, eax
js 0x401eca
mov eax, dword [esi + 0x28]
lea ecx, [esi + 0x84]
mov dword [esi + 0x80], ecx
lea ecx, [esi + 0x80]
push 3
push eax
call fcn.00403120
push dword [esi + 0x80]
push 0xc8
lea edi, [esi + 0x108]
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0xc
lea eax, [ebp + 8]
mov ebx, dword [eax]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
mov eax, dword [ebx + 0x14]
cmp eax, edi
jae 0x401fc0
mov dword [esi + 0x518], 4
sub esp, 0xc
movzx eax, byte [esi + 0x3c]
mov byte [esp + 4], al
lea eax, [esi + 0x108]
mov dword [esp + 8], eax
mov dword [esp], edi
mov ecx, ebx
call fcn.00402f70
jmp 0x401fe3
mov ecx, ebx
cmp eax, 0x10
jb 0x401fc9
mov ecx, dword [ebx]
mov dword [ebx + 0x10], edi
push edi
lea eax, [esi + 0x108]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + edi], 0
mov eax, dword [esi + 0x80]
lea ecx, [esi + 0x84]
cmp eax, ecx
je 0x401ec0
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x401ec0
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edi, 1
jmp 0x402054
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0x518], 2
push eax
call ecx
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
xor edi, edi
mov eax, dword [esi + 0x54]
cmp eax, 0x10
jb 0x401c0b
mov ecx, dword [esi + 0x40]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x402082
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4020a5
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.00419457
add esp, 8
jmp 0x401c0b
mov dword [esi + 0x518], 1
push 0x8007000e
call fcn.00419a70
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov dword [esi + 0x518], 0
call fcn.00402df0
nop word [eax + eax]
push ebp
sub esp, 0x24
lea esi, [ebp - 0x51c]
mov ebp, dword [esi + 0x508]
push dword [esi + 0xc]
call fcn.00419452
add esp, 0x28
pop ebp
ret