Function at 0x4050a0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee0
push ebx
lea ebx, [ebp - 0x60]
mov eax, 0x4818dc
call fcn.00461d5c
push 0x9c
push 0
lea edx, [ebp - 0xfc]
push edx
call fcn.00461a40
add esp, 0xc
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0xfc], 0x9c
push ecx
call sub.KERNEL32.DLL_GetVersionExA
test eax, eax
jne 0x405154
mov dword [ebp - 0xfc], 0x94
lea eax, [ebp - 0xfc]
push eax
call sub.KERNEL32.DLL_GetVersionExA
test eax, eax
jne 0x405154
mov word [ebx + 0x10], 8
mov edx, 0x4803d7
lea eax, [ebp - 4]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 4]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0x14
push eax
lea eax, [ebp - 4]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 8
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
mov ecx, dword [ebp - 0xec]
dec ecx
je 0x4054a8
dec ecx
jne 0x4056ac
cmp dword [ebp - 0xf8], 6
jne 0x40522e
cmp dword [ebp - 0xf4], 0
jne 0x40522e
cmp byte [ebp - 0x62], 1
jne 0x4051db
mov word [ebx + 0x10], 0x20
mov edx, str.Vista
lea eax, [ebp - 8]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 8]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
add al, byte [eax]
add byte [eax], al
mov word [ebx + 0x10], 0x38
mov edx, str.Longhorn
lea eax, [ebp - 0xc]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0xc]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0x44
push eax
lea eax, [ebp - 0xc]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0x38
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
cmp dword [ebp - 0xf8], 5
jne 0x40537e
cmp dword [ebp - 0xf4], 2
jne 0x40537e
push str.GetNativeSystemInfo
push str.kernel32.dll
call sub.KERNEL32.DLL_GetModuleHandleA
push eax
call sub.KERNEL32.DLL_GetProcAddress
test eax, eax
je 0x40526a
lea ecx, [ebp - 0x120]
push ecx
call eax
push 0x59
call fcn.00460865
test eax, eax
je 0x4052c8
mov word [ebx + 0x10], 0x50
mov edx, str.2003_R2
lea eax, [ebp - 0x10]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x10]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0x5c
push eax
lea eax, [ebp - 0x10]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0x50
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
cmp byte [ebp - 0x62], 1
jne 0x40532b
cmp word [ebp - 0x120], 9
jne 0x40532b
mov word [ebx + 0x10], 0x68
mov edx, str.XP64
lea eax, [ebp - 0x14]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x14]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0x74
push eax
lea eax, [ebp - 0x14]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0x68
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
mov word [ebx + 0x10], 0x80
mov edx, str.2003
lea eax, [ebp - 0x18]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x18]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0x8c
push eax
lea eax, [ebp - 0x18]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0x80
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
cmp dword [ebp - 0xf8], 5
jne 0x4053e3
cmp dword [ebp - 0xf4], 1
jne 0x4053e3
mov word [ebx + 0x10], 0x98
mov edx, 0x48041a
lea eax, [ebp - 0x1c]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x1c]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0xa4
push eax
lea eax, [ebp - 0x1c]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0x98
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
cmp dword [ebp - 0xf8], 5
jne 0x405448
cmp dword [ebp - 0xf4], 0
jne 0x405448
mov word [ebx + 0x10], 0xb0
mov edx, 0x48041d
lea eax, [ebp - 0x20]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x20]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0xbc
push eax
lea eax, [ebp - 0x20]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0xb0
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
cmp dword [ebp - 0xf8], 4
ja 0x4056ac
mov word [ebx + 0x10], 0xc8
mov edx, 0x480420
lea eax, [ebp - 0x24]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x24]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0xd4
push eax
lea eax, [ebp - 0x24]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0xc8
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
cmp dword [ebp - 0xf8], 4
jne 0x405579
cmp dword [ebp - 0xf4], 0
jne 0x405579
movsx eax, byte [ebp - 0xe7]
cmp eax, 0x43
je 0x4054d3
cmp eax, 0x42
jne 0x405526
mov word [ebx + 0x10], 0xe0
mov edx, str.95OSR2
lea eax, [ebp - 0x28]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x28]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0xec
push eax
lea eax, [ebp - 0x28]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0xe0
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
mov word [ebx + 0x10], 0xf8
mov edx, 0x48042a
lea eax, [ebp - 0x2c]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x2c]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0x104
push eax
lea eax, [ebp - 0x2c]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0xf8
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
cmp dword [ebp - 0xf8], 4
jne 0x40564a
cmp dword [ebp - 0xf4], 0xa
jne 0x40564a
movsx eax, byte [ebp - 0xe7]
cmp eax, 0x41
je 0x4055a4
cmp eax, 0x42
jne 0x4055f7
mov word [ebx + 0x10], 0x110
mov edx, str.98SE
lea eax, [ebp - 0x30]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x30]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0x11c
push eax
lea eax, [ebp - 0x30]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0x110
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
mov word [ebx + 0x10], 0x128
mov edx, 0x480432
lea eax, [ebp - 0x34]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x34]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0x134
push eax
lea eax, [ebp - 0x34]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0x128
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
cmp dword [ebp - 0xf8], 4
jne 0x4056ac
cmp dword [ebp - 0xf4], 0x5a
jne 0x4056ac
mov word [ebx + 0x10], 0x140
mov edx, 0x480435
lea eax, [ebp - 0x38]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x38]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0x14c
push eax
lea eax, [ebp - 0x38]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0x140
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x4056fa
mov word [ebx + 0x10], 0x158
mov edx, 0x480438
lea eax, [ebp - 0x3c]
call fcn.0046bca4
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x3c]
mov eax, dword [ebp + 8]
call fcn.0046bda4
mov eax, dword [ebp + 8]
mov edx, 2
mov word [ebx + 0x10], 0x164
push eax
lea eax, [ebp - 0x3c]
dec dword [ebx + 0x1c]
call fcn.0046bd74
pop eax
mov word [ebx + 0x10], 0x158
inc dword [ebx + 0x1c]
mov edx, dword [ebx]
mov dword fs:[0], edx