Function at 0x40ca30
Capabilities:
Check os version
Create thread
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x154
mov eax, dword [0x413050]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xc8
mov dword [ebp - 0x124], 0
call edi
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0
call esi
push 0x411d88
mov dword [0x4280b8], eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
jne 0x40ca8e
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040161c
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp + 8]
mov dword [0x4280b4], eax
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x120], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x40cc21
cmp dword [ebp - 0x11c], 5
jne 0x40cadf
cmp dword [ebp - 0x118], 1
jb 0x40cadf
cmp byte [ebp - 6], 1
mov dword [0x4141b0], 0
je 0x40cb56
inc dword [0x4141b0]
jmp 0x40cb56
push 0x411dcc
call esi
test eax, eax
je 0x40cb56
mov ecx, dword [eax + 0x3c]
movzx edx, word [ecx + eax + 0x40]
movzx eax, word [ecx + eax + 0x42]
cmp edx, 6
jne 0x40cb43
test eax, eax
jne 0x40cb0c
mov dword [0x4141b0], 2
jmp 0x40cb56
cmp eax, 1
jne 0x40cb1d
mov dword [0x4141b0], 3
jmp 0x40cb56
cmp eax, 2
jne 0x40cb2e
mov dword [0x4141b0], 4
jmp 0x40cb56
cmp eax, 3
jne 0x40ca7a
mov dword [0x4141b0], 5
jmp 0x40cb56
cmp edx, 0xa
jne 0x40ca7a
mov dword [0x4141b0], 6
lea eax, [ebp - 0x124]
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
test eax, eax
je 0x40ca7a
cmp dword [ebp - 0x124], 0
je 0x40ca7a
mov dword [0x428058], 1
mov eax, dword [0x4141b0]
mov eax, dword [eax*4 + 0x4141d0]
mov dword [0x4141ec], eax
mov eax, dword [0x4141b0]
mov eax, dword [eax*4 + 0x4141f0]
mov dword [0x428070], eax
mov eax, dword [0x4141b0]
mov eax, dword [eax*4 + 0x41420c]
mov dword [0x428074], eax
mov eax, dword [0x4141b0]
mov eax, dword [eax*4 + 0x414228]
mov dword [0x428078], eax
call fcn.0040cfd0
mov dword [0x428060], eax
call fcn.0040cd40
cmp dword [0x428060], 0
mov dword [0x428064], eax
je 0x40ca7a
test eax, eax
je 0x40ca7a
add eax, 0xfffffff8
mov dword [0x428068], eax
mov eax, dword [0x428058]
neg eax
sbb eax, eax
and eax, 0x18
add eax, 0x2a
mov dword [0x42805c], eax
mov eax, dword [0x428058]
neg eax
sbb eax, eax
and eax, 0x24
add eax, 0x34
mov dword [0x42806c], eax
mov eax, dword [0x4280b8]
xorps xmm0, xmm0
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0x154]
push eax
mov dword [ebp - 0x154], 0x30
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0x40d960
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x144], 0
movdqu xmmword [ebp - 0x13c], xmm0
mov dword [ebp - 0x12c], str.MyMainWnd
mov dword [ebp - 0x128], 0
call dword [sym.imp.USER32.dll_RegisterClassExW]
test ax, ax
je 0x40ca7a
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push ebx
push 0
call esi
push 1
mov dword [0x414248], eax
call esi
push 0
push 0
push 0
push 0x40d110
push 0
push 0
mov dword [0x41424c], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ebx, eax
test ebx, ebx
je 0x40cd21
xor esi, esi
cmp dword [0x42807c], esi
jne 0x40ccfa
mov eax, dword [0x414244]
cmp dword [0x4280bc], eax
jae 0x40ccfa
mov eax, dword [0x414244]
lea eax, [eax + eax*4]
add eax, eax
cmp esi, eax
jae 0x40ccfa
push 0x64
call edi
inc esi
cmp dword [0x42807c], 0
je 0x40ccd1
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push 0x64
call edi
mov esi, dword [sym.imp.USER32.dll_keybd_event]
push 0
push 2
push 0
push 0x1b
call esi
push 0
push 2
push 0
push 0x12
call esi
mov eax, dword [0x42807c]
mov ecx, dword [ebp - 4]
pop ebx
pop edi
xor ecx, ebp
pop esi
call fcn.0040161c
mov esp, ebp
pop ebp
ret 4