Function at 0x40a400
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40e280
push 0x40c5e0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x110
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 4], ebx
push 0x41158c
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0xc4], eax
cmp eax, ebx
je 0x40a5f6
push 0x411574
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xb8], eax
cmp eax, ebx
jne 0x40a48d
push 0xffffffffffffffff
lea ecx, [ebp - 0x10]
push ecx
call sub.MSVCRT.dll__local_unwind2
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call eax
mov esi, eax
mov dword [ebp - 0xcc], esi
cmp esi, ebx
jne 0x40a4bc
push 0xffffffffffffffff
lea edx, [ebp - 0x10]
push edx
call sub.MSVCRT.dll__local_unwind2
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0xc], ebx
je 0x40a5f6
cmp dword [esi + 8], ebx
je 0x40a5f6
mov ecx, 0xe
xor eax, eax
lea edi, [ebp - 0x10c]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x10c], 4
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x120]
push ecx
push ebx
push ebx
lea edx, [ebp - 0x10c]
push edx
push ebx
push 2
push 0x411544
push ebx
call dword [esi + 0xc]
mov dword [ebp - 0x118], eax
cmp eax, ebx
jne 0x40a49b
lea eax, [ebp - 0x114]
push eax
push 0x57
lea ecx, [ebp - 0x120]
push ecx
call dword [esi + 8]
mov dword [ebp - 0x118], eax
cmp eax, ebx
jne 0x40a46c
mov ebx, dword [ebp - 0x110]
mov dword [ebp - 0xc8], ebx
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0xbc], edx
mov esi, dword [esi + 0x10]
test esi, esi
je 0x40a55d
lea eax, [ebp - 0x120]
push eax
call esi
mov dword [ebp - 4], 0xffffffff
call fcn.0040a61d
mov ecx, 0x27
xor eax, eax
lea edi, [ebp - 0xb4]
rep stosd dword es:[edi], eax
mov dword [ebp - 0xb4], 0x9c
lea ecx, [ebp - 0xb4]
push ecx
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
call esi
test eax, eax
jne 0x40a5b0
mov dword [ebp - 0xb4], 0x94
lea edx, [ebp - 0xb4]
push edx
call esi
test eax, eax
je 0x40a66d
cmp dword [ebp - 0xa4], 1
jne 0x40a66d
cmp dword [ebp - 0xb0], 4
jne 0x40a66d
cmp dword [ebp - 0xac], 0xa
jne 0x40a66d
cmp ebx, 0x80
ja 0x40a62f
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
lea eax, [ebp - 0x10]
push eax
call sub.MSVCRT.dll__local_unwind2
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x100
jb 0x40a64d
mov eax, 0x100
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0xa8
mov eax, 0x80
jae 0x40a69a
mov eax, ebx
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x100
jb 0x40a68b
mov eax, 0x100
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0xa8
mov eax, 0x80
jae 0x40a69a
mov eax, ebx
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret