Function at 0x437490
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, 0xa0
mov eax, dword [0x44c3b4]
mov dword [esp + 8], 0x81db87eb
mov dword [esp + 0xc], 0x8d3f833b
mov dword [esp + 0x10], 0x89218f30
mov dword [esp + 0x14], 0x95c68b3f
mov dword [esp + 0x18], 0x913d9726
mov dword [esp + 0x1c], 0x9d3d932e
mov dword [esp + 0x20], 0x999e9ff3
mov word [esp + 0x24], 0
mov byte [esp + 0x26], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 8]
lea edx, [ecx + 0x7f3eb6a1]
mov ebx, 0x5e
sub ebx, ecx
and ebx, edi
mov esi, edx
xor esi, edi
add esi, edi
sub esi, ebx
and edx, edi
mov edi, esi
not edi
and edi, edx
not edx
and edx, esi
sub edx, edi
mov esi, edx
xor esi, 0x26
and edx, 0x59
add edx, edx
sub edx, esi
inc dl
mov byte [esp + ecx + 8], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 0x1f
jb 0x4374f0
lea ecx, [esp + 0x48]
lea esi, [esp + 0x78]
lea edi, [esp + 8]
push ecx
push 8
push esi
push 0xd
push edi
push 0
call eax
test eax, eax
jns 0x43755f
mov dword [esp + 0x78], 0x3a0043
mov dword [esp + 0x7c], 0x5c
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
lea eax, [esp + 0x44]
push eax
push 0x443aa8
push 1
push 0
push 0x443ab8
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x437aee
mov dword [esp + 8], 0x3f8d398e
mov dword [esp + 0xc], 0x23963d8f
mov dword [esp + 0x10], 0x2761219c
mov dword [esp + 0x14], 0x2b67256d
mov dword [esp + 0x18], 0x2f782992
mov dword [esp + 0x1c], 0x2d2c
mov byte [esp + 0x20], 0
xor ecx, ecx
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 8]
lea esi, [ecx + 0x309908a]
mov edi, esi
and edi, edx
lea ebx, [ecx + edx]
add ebx, 0x309908a
not ebx
lea edi, [ebx + edi*2]
and edi, esi
add edi, edi
mov ebx, ecx
sub ebx, edi
add bl, dl
add bl, 0xd8
mov byte [esp + ecx + 8], bl
and eax, 1
not ecx
or ecx, 1
sub eax, ecx
mov ecx, eax
cmp eax, 0x19
jb 0x4375f0
lea edi, [esp + 8]
push edi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ebx, eax
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
lea edx, [esp + 0x40]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push eax
call dword [ecx + 0xc]
test eax, eax
lea esi, [esp + 0x78]
js 0x437add
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x5c]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x437ad3
mov dword [esp + 0x58], ebx
mov dword [esp + 8], 0xc965cb65
mov dword [esp + 0xc], 0xc5c6c77c
mov dword [esp + 0x10], 0
mov eax, 0xcc
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [ecx]
mov edi, eax
or edi, esi
and esi, eax
lea edx, [esi + esi]
not edx
add edx, esi
and edx, edi
neg dl
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0xc0
jne 0x4376b0
lea esi, [esp + 8]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esp + 0x5c], eax
mov dword [esp + 8], 0x1c907d9
mov dword [esp + 0xc], 0xdcd03d4
mov dword [esp + 0x10], 0x9d20fc1
mov dword [esp + 0x14], 0x15200b28
mov dword [esp + 0x18], 0x11d81734
mov dword [esp + 0x1c], 0x1dc313c2
mov dword [esp + 0x20], 0x193e1fcb
mov dword [esp + 0x24], 0x25f11bc1
mov dword [esp + 0x28], 0x211b27d2
mov dword [esp + 0x2c], 0x2dc32312
mov dword [esp + 0x30], 0x29e52fee
mov dword [esp + 0x34], 0x35f72bf9
mov word [esp + 0x38], 0x3734
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
xor ecx, ecx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
mov edx, eax
or edx, 0x75cd3341
add edx, ecx
inc edx
mov ebx, edx
and ebx, 2
mov edi, edx
or edx, 2
imul edx, ebx
xor ebx, 2
and edi, 0xfd
imul edi, ebx
mov ebx, ecx
xor ebx, 0x41
add ebx, edx
add ebx, edi
xor bl, byte [esp + ecx + 8]
add bl, 0xbb
mov byte [esp + ecx + 8], bl
inc ecx
dec eax
cmp ecx, 0x38
jne 0x437760
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
lea edx, [esp + 0x68]
push edx
push 0
push 0x30
push edi
push dword [esp + 0x6c]
push eax
call dword [ecx + 0x50]
test eax, eax
mov ebx, dword [esp + 0x58]
js 0x437abc
mov dword [esp + 0x74], edi
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
lea edx, [esp + 0x60]
lea edi, [esp + 0x64]
push edx
push edi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x437aae
cmp eax, 1
je 0x437aae
cmp dword [esp + 0x60], 0
je 0x437aae
lea edi, [esp + 0x88]
push edi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esp + 0x64]
mov dword [esp + 8], 0xb1698f79
mov dword [esp + 0xc], 0xb559b322
mov dword [esp + 0x10], 0xb95ab757
mov dword [esp + 0x14], 0xbd2dbb76
mov dword [esp + 0x18], 0xa15cbf53
mov dword [esp + 0x1c], 0xa530a347
mov dword [esp + 0x20], 0xa7a4
mov byte [esp + 0x24], 0
xor ecx, ecx
nop
nop
nop
mov edx, ecx
add dl, 0xdd
xor dl, byte [esp + ecx + 8]
add dl, 0xaf
mov byte [esp + ecx + 8], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 0x1d
jb 0x437860
mov ecx, dword [eax]
push 0
push 0
push edi
push 0
push esi
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x437a9d
cmp word [esp + 0x88], 8
jne 0x437a9d
mov esi, dword [esp + 0x90]
movzx ecx, word [esi]
test cx, cx
je 0x4378ed
lea eax, [esi + 2]
xor ebx, ebx
jmp 0x4378cc
inc ebx
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x4378ef
cmp cx, 0x7f
jbe 0x4378c0
movzx edx, cx
cmp edx, 0x7ff
ja 0x4378e2
add ebx, 2
jmp 0x4378c1
cmp cx, 0xffff
je 0x4378c1
add ebx, 3
jmp 0x4378c1
xor ebx, ebx
mov eax, ebx
and eax, 1
mov dword [esp + 0x70], ebx
xor ebx, 1
mov dword [esp + 0x6c], eax
lea eax, [ebx + eax*2]
push eax
call fcn.0040cc40
add esp, 4
mov edi, eax
movzx edx, word [esi]
mov dword [esp + 4], eax
test dx, dx
je 0x437a48
mov eax, dword [esp + 0x6c]
lea eax, [ebx + eax*2]
dec eax
mov edi, dword [esp + 4]
test eax, eax
je 0x437a48
mov edi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, dx
lea edx, [esi + 2]
cmp bx, 0x7f
ja 0x437960
mov byte [edi], bl
lea ecx, [edi + 1]
jmp 0x4379f0
cmp ebx, 0x7ff
ja 0x437985
cmp eax, 2
jb 0x437985
mov ecx, ebx
shr ecx, 6
add cl, 0xc0
mov byte [edi], cl
and bl, 0x3f
or bl, 0x80
lea ecx, [edi + 2]
mov byte [edi + 1], bl
jmp 0x4379f0
mov ecx, ebx
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x437a0a
cmp eax, 4
jb 0x437a0a
movzx edx, word [esi + 2]
shl ebx, 0xa
lea ecx, [ebx + edx]
add ecx, 0xfca02400
mov ebx, ecx
shr ebx, 0x12
add bl, 0xf0
mov byte [edi], bl
mov ebx, ecx
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov byte [edi + 1], bl
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [edi + 2], cl
mov ecx, edx
xor ecx, 0xc0
or edx, 0x3f
and edx, ecx
add dl, 0x80
mov byte [edi + 3], dl
lea ecx, [edi + 4]
add esi, 4
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
add eax, edi
sub eax, ecx
mov esi, edx
mov edi, ecx
movzx edx, word [esi]
test dx, dx
je 0x437a48
test eax, eax
jne 0x437940
jmp 0x437a48
movzx ecx, cx
cmp ecx, 0xdc00
jne 0x437a19
mov esi, edx
jmp 0x4379f8
cmp eax, 3
jb 0x437a44
mov ecx, ebx
shr ecx, 0xc
or cl, 0xe0
mov byte [edi], cl
mov ecx, ebx
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [edi + 1], cl
and bl, 0x3f
or bl, 0x80
lea ecx, [edi + 3]
mov byte [edi + 2], bl
jmp 0x4379f0
mov ecx, edi
jmp 0x4379f0
mov byte [edi], 0
mov eax, 3
mov ecx, dword [esp + 0x70]
sub eax, ecx
cmp eax, 0xfffffffd
mov ebx, dword [esp + 0x58]
jae 0x437a64
mov eax, 0xfffffffc
add eax, ecx
shr eax, 2
cmp eax, 3
lea ecx, [esp + 0x48]
lea edi, [esp + 0x88]
jb 0x437a7e
mov eax, 3
lea eax, [eax*4 + 4]
push eax
mov esi, dword [esp + 8]
push esi
push ecx
call fcn.0040cc70
add esp, 0xc
push esi
call fcn.0040cc50
add esp, 4
push edi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [esp + 0x74]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [esp + 0x5c]
call esi
push edi
call esi
lea esi, [esp + 0x78]
lea edi, [esp + 8]
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 8], 0
push 0x72a7c387
push dword [0x44c3ac]
call fcn.0043faf0
add esp, 8
push 0
push 0
push 0
push 0
push edi
push 0
push 0
push esi
call eax
test eax, eax
je 0x437c9a
imul eax, dword [esp + 8], 0x1a5845
add eax, 0xebde8a13
mov dword [esp + 0x48], eax
mov esi, 0xffffffff
push 0x10
push 9
push dword [ebp + 8]
push eax
call fcn.0041d8a0
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + esi + 1], 0
lea esi, [esi + 1]
jne 0x437b50
mov ecx, esi
and ecx, 0xfffffff7
not esi
and esi, 8
mov edx, esi
sub edx, ecx
je 0x437b7a
sub ecx, esi
add eax, ecx
push edx
push 0x30
push eax
call fcn.0040ccd0
add esp, 0xc
mov eax, dword [ebp + 8]
add eax, 8
xor ecx, ecx
cmp dword [esp + 0x4c], 0
setne cl
imul ecx, dword [esp + ecx*4 + 0x48], 0x1a5845
add ecx, 0xebde8a13
mov dword [esp + 0x4c], ecx
mov esi, 0xffffffff
push 0x10
push 9
push eax
push ecx
call fcn.0041d8a0
add esp, 0x10
nop
cmp byte [eax + esi + 1], 0
lea esi, [esi + 1]
jne 0x437bb0
mov ecx, esi
and ecx, 0xfffffff7
not esi
and esi, 8
mov edx, esi
sub edx, ecx
je 0x437bda
sub ecx, esi
add eax, ecx
push edx
push 0x30
push eax
call fcn.0040ccd0
add esp, 0xc
mov eax, dword [ebp + 8]
add eax, 0x10
xor ecx, ecx
cmp dword [esp + 0x50], 0
setne cl
imul ecx, dword [esp + ecx*4 + 0x4c], 0x1a5845
add ecx, 0xebde8a13
mov dword [esp + 0x50], ecx
mov esi, 0xffffffff
push 0x10
push 9
push eax
push ecx
call fcn.0041d8a0
add esp, 0x10
nop
cmp byte [eax + esi + 1], 0
lea esi, [esi + 1]
jne 0x437c10
mov ecx, esi
and ecx, 0xfffffff7
not esi
and esi, 8
mov edx, esi
sub edx, ecx
je 0x437c3a
sub ecx, esi
add eax, ecx
push edx
push 0x30
push eax
call fcn.0040ccd0
add esp, 0xc
mov ecx, dword [ebp + 8]
add ecx, 0x18
xor eax, eax
cmp dword [esp + 0x54], 0
setne al
imul eax, dword [esp + eax*4 + 0x50], 0x1a5845
add eax, 0xebde8a13
mov esi, 0xffffffff
push 0x10
push 9
push ecx
push eax
call fcn.0041d8a0
add esp, 0x10
nop
nop
nop
nop
nop
nop
cmp byte [eax + esi + 1], 0
lea esi, [esi + 1]
jne 0x437c70
mov ecx, esi
and ecx, 0xfffffff7
not esi
and esi, 8
mov edx, esi
sub edx, ecx
je 0x437c9a
sub ecx, esi
add eax, ecx
push edx
push 0x30
push eax
call fcn.0040ccd0
add esp, 0xc
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret