Function at 0x43beb0
Capabilities:
Connect to wmi namespace via wbemlocator
Encode data using xor

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 [0x451d68]
mov dword [esp + 4], 0xb17b8fab
mov dword [esp + 8], 0xb527b32b
mov dword [esp + 0xc], 0xb951b720
mov dword [esp + 0x10], 0xbd7ebb57
mov dword [esp + 0x14], 0xa155bf2e
mov dword [esp + 0x18], 0xa545a336
mov dword [esp + 0x1c], 0xa9a6a783
mov dword [esp + 0x20], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x5d
xor dl, byte [esp + ecx + 4]
add dl, 0x2f
mov byte [esp + ecx + 4], dl
inc ecx
cmp ecx, 0x20
jne case.default.0x43bf40
lea ecx, [esp + 0x54]
lea edi, [esp + 0x70]
lea edx, [esp + 4]
push ecx
push 8
push edi
push 0xd
push edx
push 0
call eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f4d8]
mov dword [esp + 0x70], 0x3a0043
mov dword [esp + 0x74], 0x5c
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push 0x448b20
push 1
push 0
push 0x448b30
call dword [sym.imp.ole32.dll_CoCreateInstance]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f4e0]
jmp dword [0x44f4e8]
mov ecx, eax
and ecx, 4
mov edx, eax
or edx, 4
imul edx, ecx
xor ecx, 4
mov esi, eax
and esi, 0xfffffffb
imul esi, ecx
add edx, dword [esp + 0x3c]
mov ecx, dword [esi + edx]
mov dword [esp + eax*4 + 0x54], ecx
mov ecx, edi
not ecx
and ecx, 4
and edi, 0xfffffffb
sub edi, ecx
xor ecx, ecx
cmp edi, 4
setb cl
jmp dword [ecx*4 + 0x44f558]
inc eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x44f550]
lea edi, [esp + 0x70]
lea esi, [esp + 0x80]
jmp dword [0x44f560]
push dword [esp + 0x3c]
call fcn.0040c710
add esp, 4
jmp case.0x43c54e.10
mov eax, dword [esp + 4]
mov dword [esp + 0x54], eax
xor esi, esi
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x44f570]
xor ecx, ecx
test esi, esi
setne cl
mov eax, esi
jmp dword [ecx*4 + 0x44f578]
xor ecx, ecx
cmp dword [esp + esi*4 + 0x54], 0
sete cl
mov eax, esi
jmp dword [ecx*4 + 0x44f590]
lea eax, [esi - 1]
imul eax, dword [esp + eax*4 + 0x54], 0x1a5845
add eax, 0xebde8a13
mov dword [esp + esi*4 + 0x54], eax
mov edi, 0xfffffff7
push 0x10
push 9
push ebx
push eax
call fcn.00423890
add esp, 0x10
nop
nop
nop
nop
nop
nop
cmp byte [eax + edi + 9], 0
lea edi, [edi + 1]
jne case.default.0x43c0a4
neg edi
xor ecx, ecx
add edi, 0xffffffff
setb cl
jmp dword [ecx*4 + 0x44f598]
mov byte [eax - 1], 0x30
dec eax
mov ecx, dword [0x44f5bc]
nop
nop
nop
nop
nop
jmp ecx
add ebx, 8
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x44f570]
mov dword [esp + 4], 0x93259122
mov dword [esp + 8], 0x9f229d2b
mov dword [esp + 0xc], 0x9bd9993c
mov dword [esp + 0x10], 0x873385cd
mov dword [esp + 0x14], 0x83d0813e
mov word [esp + 0x18], 0x8d8c
mov dword [esp + 0x1a], 0
mov eax, 0x24
mov ecx, 0x5b
nop
mov esi, ecx
xor esi, 0x20
mov edx, eax
and edx, 0x20
or edx, esi
xor dl, byte [esp + eax - 0x20]
xor dl, 0xdf
add dl, 0xcc
mov byte [esp + eax - 0x20], dl
inc eax
dec ecx
cmp eax, 0x3e
jne 0x43c130
lea eax, [esp + 4]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esp + 4], 0x93259122
mov dword [esp + 8], 0x9f229d2b
mov dword [esp + 0xc], 0x9bd9993c
mov dword [esp + 0x10], 0x873385cd
mov dword [esp + 0x14], 0x83d0813e
mov word [esp + 0x18], 0x8d8c
mov dword [esp + 0x1a], 0
mov eax, 0x24
mov ecx, 0x5b
nop
nop
nop
mov esi, ecx
xor esi, 0x20
mov edx, eax
and edx, 0x20
or edx, esi
xor dl, byte [esp + eax - 0x20]
xor dl, 0xdf
add dl, 0xcc
mov byte [esp + eax - 0x20], dl
inc eax
dec ecx
cmp eax, 0x3e
jne 0x43c1a0
lea eax, [esp + 4]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
jmp dword [0x44f4f0]
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
lea esi, [esp + 0x48]
push esi
push 0
push 0
push 0
push 0
push 0
push 0
mov dword [esp + 0x88], eax
push eax
push ecx
call dword [edx + 0xc]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f4f8]
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x64]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f500]
mov dword [esp + 4], 0x116d1f75
mov dword [esp + 8], 0x1512136c
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov esi, 0xad631c85
mov edi, 2
nop
nop
nop
nop
nop
movzx ebx, byte [esp + esi + 0x529ce37f]
mov eax, edi
and eax, 7
mov edx, esi
and edx, 0xd600c18
or edx, eax
xor edx, esi
xor edx, ebx
xor edx, 0x87
and edx, esi
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0x9d
mul cl
mov ecx, eax
add cl, bl
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, esi
add al, 0x67
mov byte [esp + esi + 0x529ce37f], al
inc esi
dec edi
cmp esi, 0xad631c90
jne 0x43c250
lea eax, [esp + 4]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [esp + 4], 0x93df9123
mov dword [esp + 8], 0x9fd39d28
mov dword [esp + 0xc], 0x9b2699db
mov dword [esp + 0x10], 0x87ec85e4
mov dword [esp + 0x14], 0x83cc81e0
mov dword [esp + 0x18], 0x8f398d3e
mov dword [esp + 0x1c], 0x8bea893d
mov dword [esp + 0x20], 0xf75ff54b
mov dword [esp + 0x24], 0xf3a1f166
mov dword [esp + 0x28], 0xff59fdae
mov dword [esp + 0x2c], 0xfbb3f9ba
mov dword [esp + 0x30], 0xe755e553
mov word [esp + 0x34], 0xe1e0
mov dword [esp + 0x36], 0
mov byte [esp + 0x3a], 0
mov eax, 0xa3c3aca4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x5c3c5360]
xor ecx, eax
mov edx, ecx
and edx, 0x4b
xor ecx, 0xcb
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x5c3c5360], cl
inc eax
cmp eax, 0xa3c3acdb
jne 0x43c340
lea eax, [esp + 4]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
mov ebx, dword [ebp + 8]
jmp dword [0x44f508]
mov eax, dword [esp + 0x88]
movzx ecx, word [eax]
test cx, cx
mov dword [esp + 0x3c], eax
je 0x43c3c6
add eax, 2
xor edi, edi
jmp 0x43c3a5
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x43c3c8
cmp cx, 0x7f
jbe 0x43c399
movzx edx, cx
cmp edx, 0x7ff
ja 0x43c3bb
add edi, 2
jmp 0x43c39a
cmp cx, 0xffff
je 0x43c39a
add edi, 3
jmp 0x43c39a
xor edi, edi
lea esi, [edi + 1]
push esi
call fcn.0040c700
add esp, 4
push dword [esp + 0x3c]
push esi
mov dword [esp + 0x44], eax
push eax
call fcn.004330e0
add esp, 0xc
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x44f550]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
lea edx, [esp + 0x44]
push edx
push 0
push 0x30
push edi
push esi
push eax
call dword [ecx + 0x50]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
lea edx, [esp + 0x44]
push edx
push 0
push 0x30
push edi
push esi
push eax
call dword [ecx + 0x50]
jmp dword [0x44f510]
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], esi
not eax
shr eax, 0x1f
lea edi, [esp + 0x70]
jmp dword [eax*4 + 0x44f518]
jmp dword [0x44f524]
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
lea edx, [esp + 0x40]
lea esi, [esp + 0x4c]
push edx
push esi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
lea edx, [esp + 0x40]
lea esi, [esp + 0x4c]
push edx
push esi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
jmp dword [0x44f52c]
test eax, eax
setns cl
cmp eax, 1
setne al
cmp dword [esp + 0x40], 0
setne dl
and dl, al
and dl, cl
movzx eax, dl
jmp dword [eax*4 + 0x44f530]
lea esi, [esp + 0x80]
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], 0x99719b41
mov dword [esp + 8], 0xa551a766
mov dword [esp + 0xc], 0xa156a34b
mov dword [esp + 0x10], 0xad55af72
mov dword [esp + 0x14], 0xa944ab5f
mov dword [esp + 0x18], 0xb548b743
mov word [esp + 0x1c], 0xb3b4
mov dword [esp + 0x1e], 0
mov byte [esp + 0x22], 0
xor ecx, ecx
nop
mov edx, ecx
add dl, 0x5b
xor dl, byte [esp + ecx + 4]
add dl, 0x39
mov byte [esp + ecx + 4], dl
inc ecx
cmp ecx, 0x1f
jne case.default.0x43c54e
mov ecx, dword [eax]
push 0
push 0
push esi
push 0
lea edx, [esp + 0x14]
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
setns al
cmp word [esp + 0x80], 8
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44f538]
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [esp + 0x68]
call esi
push dword [esp + 0x64]
call esi
mov eax, dword [esp + 0x48]
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 + 0x50]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 4], 0
push 0xd2e7977e
push dword [0x451d60]
call fcn.00445040
add esp, 8
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x14]
push ecx
push 0
push 0
push edi
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44f568]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, 0xbf470043
inc ebx
add byte [eax - 0x5bffbc3b], ah
mov edi, 0xc15c0043
inc ebx
add dh, ch
rol byte [ebx], 0xd2
rol dword [ebx], 0xee
rol byte [ebx], 0x8c
lds eax, [ebx]
add edx, eax
inc ebx
add byte [edx + 0x250043c5], al
ret 0x43
lds eax, [ebx]
and eax, 0xc0043c2
les eax, [ebx]
test ebx, 0xc4270043
inc ebx
add bh, dh
ret
lds eax, [ebx]
jg 0x44f501
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add ah, dl
ret