Function at 0x4381e0
Capabilities:
Connect to wmi namespace via wbemlocator
Encode data using xor
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, 0xfffffff8
sub esp, 0x98
mov ebx, dword [ebp + 8]
mov eax, dword [0x44c004]
mov dword [esp + 0x14], 0xb17b8fab
mov dword [esp + 0x18], 0xb527b32b
mov dword [esp + 0x1c], 0xb951b720
mov dword [esp + 0x20], 0xbd7ebb57
mov dword [esp + 0x24], 0xa155bf2e
mov dword [esp + 0x28], 0xa545a336
mov dword [esp + 0x2c], 0xa9a6a783
mov byte [esp + 0x30], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x5d
xor dl, byte [esp + ecx + 0x14]
add dl, 0x2f
mov byte [esp + ecx + 0x14], dl
mov edx, ecx
not edx
or edx, 1
add edx, ecx
xor ecx, 1
lea ecx, [ecx + edx*2]
add ecx, 2
cmp ecx, 0x1d
jb 0x438240
lea ecx, [esp + 4]
lea edi, [esp + 0x70]
lea esi, [esp + 0x14]
push ecx
push 8
push edi
push 0xd
push esi
push 0
call eax
test eax, eax
jns 0x43828a
mov dword [esp + 0x70], 0x3a0043
mov dword [esp + 0x74], 0x5c
mov dword [esp + 0x10], 0x2d2b2065
mov dword [esp + 0xc], 0x4b57cc4a
mov dword [esp + 8], 0x81d80ba
mov dword [esp + 4], 0x27ea2e10
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push 0x442678
push 1
push 0
push 0x442688
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x4387ec
mov dword [esp + 0x14], 0x1570756
mov dword [esp + 0x18], 0xd5e0351
mov dword [esp + 0x1c], 0x9430f68
mov dword [esp + 0x20], 0x155d0b43
mov dword [esp + 0x24], 0x1124174a
mov dword [esp + 0x28], 0x1310
mov byte [esp + 0x2c], 0
mov eax, 0x6736b501
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x6736b4ed]
lea esi, [eax - 0x6736b500]
mov ecx, eax
or ecx, edx
and esi, edx
sub ecx, esi
mov edx, 5
sub edx, ecx
and ecx, 1
or edx, 1
sub ecx, edx
mov byte [esp + eax - 0x6736b4ed], cl
inc eax
cmp eax, 0x6736b51a
jne 0x438320
lea esi, [esp + 0x14]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ebx, eax
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
lea edx, [esp + 0x4c]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
mov dword [esp + 0x88], ebx
push ebx
push eax
call dword [ecx + 0xc]
test eax, eax
mov ebx, dword [ebp + 8]
js 0x4387d8
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x68]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x4387ce
mov dword [esp + 0x14], 0xd90ddb6d
mov dword [esp + 0x18], 0xdddedf04
mov word [esp + 0x1c], 0
mov byte [esp + 0x1e], 0
xor eax, eax
nop
nop
nop
mov ecx, eax
and ecx, 0xd
mov edi, eax
and edi, 2
mov edx, edi
xor edx, 2
imul edx, ecx
mov esi, eax
or esi, 2
imul edi, esi
mov ecx, eax
xor ecx, 0x2f
add ecx, edi
mov edi, eax
shr edi, 1
and edi, 1
imul esi, edi
add ecx, edx
lea edx, [edx + esi*2]
neg edx
add edx, eax
add edx, 0x10
and edx, 0x29
and ecx, 0x56
or ecx, edx
xor cl, byte [esp + eax + 0x14]
xor cl, 0xa9
add cl, 0x95
mov byte [esp + eax + 0x14], cl
inc eax
cmp eax, 0xb
jne 0x4383d0
lea esi, [esp + 0x14]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
mov dword [esp + 0x14], 0xb941bb71
mov dword [esp + 0x18], 0xbd45bf44
mov dword [esp + 0x1c], 0xb146b379
mov dword [esp + 0x20], 0xb568b790
mov dword [esp + 0x24], 0xa950ab94
mov dword [esp + 0x28], 0xad5faf5e
mov dword [esp + 0x2c], 0xa182a35f
mov dword [esp + 0x30], 0xa539a749
mov dword [esp + 0x34], 0x598f5b36
mov dword [esp + 0x38], 0x5dbf5f8e
mov dword [esp + 0x3c], 0x51ad539a
mov dword [esp + 0x40], 0x55a357a1
mov dword [esp + 0x44], 0x4b54
mov byte [esp + 0x48], 0
xor eax, eax
nop
mov ecx, eax
add cl, 0xdf
xor cl, byte [esp + eax + 0x14]
add cl, 0xa5
mov byte [esp + eax + 0x14], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x35
jb 0x4384a0
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esi]
lea edx, [esp + 0x60]
push edx
push 0
push 0x30
mov dword [esp + 0x70], eax
push eax
mov dword [esp + 0x78], edi
push edi
push esi
call dword [ecx + 0x50]
test eax, eax
lea edi, [esp + 0x70]
js 0x4387b8
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
lea edx, [esp + 0x58]
lea esi, [esp + 0x5c]
push edx
push esi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x4387ae
cmp eax, 1
je 0x4387ae
cmp dword [esp + 0x58], 0
je 0x4387ae
lea esi, [esp + 0x80]
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], 0x3670153
mov dword [esp + 0x18], 0x76f0576
mov dword [esp + 0x1c], 0xb660969
mov dword [esp + 0x20], 0xf7b0d42
mov dword [esp + 0x24], 0x1370117d
mov dword [esp + 0x28], 0x17641571
mov word [esp + 0x2c], 0x1918
mov dword [esp + 0x2e], 0
mov word [esp + 0x32], 0
xor ecx, ecx
lea edx, [esp + 0x14]
nop
nop
nop
nop
nop
nop
xor byte [esp + ecx + 0x14], cl
inc ecx
cmp ecx, 0x20
jne 0x438590
mov ecx, dword [eax]
push 0
push 0
push esi
push 0
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x43879d
cmp word [esp + 0x80], 8
jne 0x43879d
mov esi, dword [esp + 0x88]
movzx ebx, word [esi]
test bx, bx
je 0x43860d
lea eax, [esi + 2]
xor edi, edi
mov ecx, ebx
jmp 0x4385ec
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x43860f
cmp cx, 0x7f
jbe 0x4385e0
movzx edx, cx
cmp edx, 0x7ff
ja 0x438602
add edi, 2
jmp 0x4385e1
cmp cx, 0xffff
je 0x4385e1
add edi, 3
jmp 0x4385e1
xor edi, edi
lea eax, [edi + 1]
push eax
call fcn.004095c0
add esp, 4
mov ecx, edi
mov dword [esp], eax
mov edi, eax
mov dword [esp + 0x54], ecx
test ecx, ecx
je 0x438744
mov edi, dword [esp]
test bx, bx
je 0x438744
mov ecx, dword [esp + 0x54]
mov edi, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, bx
lea edx, [esi + 2]
cmp bx, 0x7f
ja 0x438670
lea eax, [edi + 1]
mov byte [edi], bl
jmp 0x4386f0
cmp ebx, 0x7ff
ja 0x438694
cmp ecx, 2
jb 0x438694
mov eax, ebx
shr eax, 6
add al, 0xc0
mov byte [edi], al
and bl, 0x3f
or bl, 0x80
mov byte [edi + 1], bl
lea eax, [edi + 2]
jmp 0x4386f0
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x43870a
cmp ecx, 4
jb 0x43870a
movzx edx, word [esi + 2]
add esi, 4
shl ebx, 0xa
lea eax, [ebx + edx]
add eax, 0xfca02400
mov ebx, eax
shr ebx, 0x12
add bl, 0xf0
mov byte [edi], bl
mov ebx, eax
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov byte [edi + 1], bl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edi + 2], al
and dl, 0x3f
or dl, 0x80
lea eax, [edi + 4]
mov byte [edi + 3], dl
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
add ecx, edi
sub ecx, eax
mov esi, edx
mov edi, eax
movzx ebx, word [esi]
test bx, bx
je 0x438744
test ecx, ecx
jne 0x438650
jmp 0x438744
movzx eax, ax
cmp eax, 0xdc00
jne 0x438718
mov esi, edx
jmp 0x4386f8
cmp ecx, 3
jb 0x438740
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [edi], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edi + 1], al
and bl, 0x3f
or bl, 0x80
lea eax, [edi + 3]
mov byte [edi + 2], bl
jmp 0x4386f0
mov eax, edi
jmp 0x4386f0
mov byte [edi], 0
mov eax, 3
mov ecx, dword [esp + 0x54]
sub eax, ecx
cmp eax, 0xfffffffd
jae 0x43875c
mov eax, 0xfffffffc
add eax, ecx
shr eax, 2
cmp eax, 3
mov ebx, dword [ebp + 8]
lea edi, [esp + 0x70]
lea esi, [esp + 0x80]
jb 0x438779
mov eax, 3
lea eax, [eax*4 + 4]
push eax
push dword [esp + 4]
lea eax, [esp + 0xc]
push eax
call fcn.004095f0
add esp, 0xc
push dword [esp]
call fcn.004095d0
add esp, 4
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [esp + 0x68]
call esi
push dword [esp + 0x64]
call esi
lea esi, [esp + 0x14]
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [esp + 0x6c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0xbeb8f1a1
push dword [0x44affc]
call fcn.0043ef60
add esp, 8
push 0
push 0
push 0
push 0
push esi
push 0
push 0
push edi
call eax
test eax, eax
je 0x43881b
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, eax
and ecx, 0xffe5a7ba
mov edx, eax
and edx, 0x1a5845
or eax, 0x1a5845
imul eax, edx
xor edx, 0x1a5845
imul edx, ecx
add eax, edx
add eax, 0xebde8a13
mov dword [esp + 4], eax
mov esi, 0xfffffff7
push 0x10
push 9
push ebx
push eax
call fcn.0041e140
add esp, 0x10
nop
nop
cmp byte [eax + esi + 9], 0
lea esi, [esi + 1]
jne 0x438860
test esi, esi
je 0x43887e
add eax, esi
neg esi
push esi
push 0x30
push eax
call fcn.00409760
add esp, 0xc
xor eax, eax
cmp dword [esp + 8], 0
setne al
mov eax, dword [esp + eax*4 + 4]
mov ecx, eax
and ecx, 0xffe5a7ba
mov edx, eax
and edx, 0x1a5845
or eax, 0x1a5845
imul eax, edx
xor edx, 0x1a5845
imul edx, ecx
add eax, edx
add eax, 0xebde8a13
lea ecx, [ebx + 8]
mov dword [esp + 8], eax
mov esi, 0xfffffff7
push 0x10
push 9
push ecx
push eax
call fcn.0041e140
add esp, 0x10
nop
nop
cmp byte [eax + esi + 9], 0
lea esi, [esi + 1]
jne 0x4388d0
test esi, esi
je 0x4388ee
add eax, esi
neg esi
push esi
push 0x30
push eax
call fcn.00409760
add esp, 0xc
xor eax, eax
cmp dword [esp + 0xc], 0
setne al
mov eax, dword [esp + eax*4 + 8]
mov ecx, eax
and ecx, 0xffe5a7ba
mov edx, eax
and edx, 0x1a5845
or eax, 0x1a5845
imul eax, edx
xor edx, 0x1a5845
imul edx, ecx
add eax, edx
add eax, 0xebde8a13
lea ecx, [ebx + 0x10]
mov dword [esp + 0xc], eax
mov esi, 0xfffffff7
push 0x10
push 9
push ecx
push eax
call fcn.0041e140
add esp, 0x10
nop
nop
cmp byte [eax + esi + 9], 0
lea esi, [esi + 1]
jne 0x438940
test esi, esi
je 0x43895e
add eax, esi
neg esi
push esi
push 0x30
push eax
call fcn.00409760
add esp, 0xc
add ebx, 0x18
xor eax, eax
cmp dword [esp + 0x10], 0
setne al
mov eax, dword [esp + eax*4 + 0xc]
mov ecx, eax
and ecx, 0xffe5a7ba
mov edx, eax
and edx, 0x1a5845
or eax, 0x1a5845
imul eax, edx
xor edx, 0x1a5845
imul edx, ecx
add eax, edx
add eax, 0xebde8a13
mov dword [esp + 0x10], eax
mov esi, 0xfffffff7
push 0x10
push 9
push ebx
push eax
call fcn.0041e140
add esp, 0x10
nop
nop
cmp byte [eax + esi + 9], 0
lea esi, [esi + 1]
jne 0x4389b0
test esi, esi
je 0x4389ce
add eax, esi
neg esi
push esi
push 0x30
push eax
call fcn.00409760
add esp, 0xc
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret