Function at 0x40ada5
Capabilities:
Connect to wmi namespace via wbemlocator
Contain obfuscated stackstrings
Encode data using xor
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc0
push ebx
xor ebx, ebx
push esi
push ebx
push ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x6c], ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
jns 0x40add7
xor eax, eax
jmp 0x40b013
push ebx
push ebx
push ebx
push 3
pop eax
push eax
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ebx
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
test eax, eax
js 0x40afc1
mov esi, dword [sym.imp.ole32.dll_CoCreateInstance]
lea eax, [ebp - 0x24]
push eax
push 0x401050
push 1
push ebx
push 0x401120
call esi
lea eax, [ebp - 0xbc]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
cmp word [ebp - 0xbc], 9
jne 0x40aec2
lea eax, [ebp - 0x20]
push eax
push 0x401090
push 1
push ebx
push 0x401130
call esi
test eax, eax
js 0x40afc1
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [ebp - 0x20]
movaps xmm0, xmmword [0x401f30]
push 3
pop eax
mov word [ebp - 0x18], ax
mov dword [ebp - 0x10], 0x40
mov eax, dword [ecx]
movups xmmword [ebp - 0x56], xmm0
mov dword [ebp - 0x36], 0x55365530
movaps xmm0, xmmword [0x401d80]
mov edx, dword [eax + 0x20]
mov eax, ebx
movups xmmword [ebp - 0x46], xmm0
mov dword [ebp - 0x32], 0x55205521
mov dword [ebp - 0x2e], 0x55305527
mov word [ebp - 0x2a], 0x55
xor byte [ebp + eax - 0x56], 0x55
inc eax
cmp eax, 0x2d
jb 0x40ae94
lea eax, [ebp - 0x18]
mov byte [ebp - 0x29], bl
push eax
push ebx
lea eax, [ebp - 0x56]
push eax
push ecx
call edx
mov esi, eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
test esi, esi
js 0x40afc1
mov ecx, dword [ebp - 0x24]
movaps xmm0, xmmword [0x401d00]
push 3
mov eax, dword [ecx]
movups xmmword [ebp - 0x88], xmm0
mov dword [ebp - 0x77], 0x55556755
mov byte [ebp - 0x73], bl
mov edx, dword [eax + 0xc]
pop eax
mov byte [ebp - 0x78], al
mov eax, ebx
xor byte [ebp + eax - 0x88], 0x55
inc eax
cmp eax, 0x15
jb 0x40aeea
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x73], bl
push eax
push dword [ebp - 0x20]
lea eax, [ebp - 0x88]
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push ecx
call edx
test eax, eax
js 0x40afc1
push ebx
push ebx
push 3
pop eax
push eax
push eax
push ebx
push ebx
push 0xa
push dword [ebp - 0x1c]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x40afc1
mov ecx, dword [ebp - 0x1c]
movaps xmm0, xmmword [0x402170]
mov eax, dword [ecx]
movups xmmword [ebp - 0x66], xmm0
mov dword [ebp - 0x36], 0x5522553a
movaps xmm0, xmmword [0x401fe0]
mov edx, dword [eax + 0x50]
mov eax, ebx
movups xmmword [ebp - 0x56], xmm0
mov dword [ebp - 0x32], 0x553a5516
movaps xmm0, xmmword [0x401f10]
movups xmmword [ebp - 0x46], xmm0
mov dword [ebp - 0x2e], 0x552c5525
mov word [ebp - 0x2a], 0x55
xor byte [ebp + eax - 0x66], 0x55
inc eax
cmp eax, 0x3d
jb 0x40af7b
mov byte [ebp - 0x29], bl
mov eax, ebx
mov dword [ebp - 0x10], 0x55045502
mov dword [ebp - 0xc], 0x555519
xor byte [ebp + eax - 0x10], 0x55
inc eax
cmp eax, 7
jb 0x40af99
lea eax, [ebp - 4]
mov byte [ebp - 9], bl
push eax
push ebx
push 0x30
lea eax, [ebp - 0x66]
push eax
lea eax, [ebp - 0x10]
push eax
push ecx
call edx
test eax, eax
jns 0x40b10f
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x40afd4
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
test edx, edx
je 0x40afe4
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
test edx, edx
je 0x40aff4
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov ecx, dword [ebp - 4]
test ecx, ecx
je 0x40affe
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x40b00b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, ebx
pop esi
pop ebx
leave
ret
mov eax, dword [ecx]
lea edx, [ebp - 0x6c]
push edx
lea edx, [ebp - 0x28]
push edx
push 1
push 0xffffffffffffffff
push ecx
call dword [eax + 0x10]
test eax, eax
js 0x40b11c
cmp dword [ebp - 0x6c], ebx
je 0x40b11c
lea eax, [ebp - 0x88]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
mov dword [ebp - 0x16], 0x550a550a
mov dword [ebp - 0x12], 0x55145505
mov dword [ebp - 0xe], 0x551d5501
mov edx, dword [eax + 0x10]
mov eax, ebx
mov word [ebp - 0xa], 0x55
xor byte [ebp + eax - 0x16], 0x55
inc eax
cmp eax, 0xd
jb 0x40b06c
push ebx
push ebx
lea eax, [ebp - 0x88]
mov byte [ebp - 9], bl
push eax
push ebx
lea eax, [ebp - 0x16]
push eax
push ecx
call edx
test eax, eax
js 0x40b102
mov ecx, dword [ebp - 0x1c]
push ebx
push ebx
push ebx
push dword [ebp - 0x80]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x40]
test eax, eax
js 0x40b102
movaps xmm0, xmmword [0x401f70]
mov eax, ebx
movups xmmword [ebp - 0x48], xmm0
movaps xmm0, xmmword [0x401b60]
movups xmmword [ebp - 0x38], xmm0
xor byte [ebp + eax - 0x48], 0x55
inc eax
cmp eax, 0x1f
jb 0x40b0ba
movaps xmm0, xmmword [0x401ba0]
mov eax, ebx
mov byte [ebp - 0x29], bl
movups xmmword [ebp - 0x98], xmm0
xor byte [ebp + eax - 0x98], 0x55
inc eax
cmp eax, 0xf
jb 0x40b0d8
push dword [ebp - 0x80]
lea eax, [ebp - 0x48]
mov byte [ebp - 0x89], bl
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.0040d3d8
add esp, 0xc
lea eax, [ebp - 0x88]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 4]
test ecx, ecx
jne 0x40b017
jmp 0x40b11f
mov ecx, dword [ebp - 4]
xor ebx, ebx
inc ebx
jmp 0x40afc4