Function at 0x4092b0
Capabilities:
Check os version
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41d158
mov eax, dword fs:[0]
push eax
sub esp, 0x178
mov eax, dword [0x4290c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x184]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
lea eax, [ebp - 0x160]
push eax
mov dword [ebp - 0x160], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x409553
mov eax, dword [0x42c3f4]
test al, 1
jne 0x409343
or eax, 1
mov dword [0x42c3f4], eax
xor eax, eax
push 0x41d560
mov dword [0x42c3d4], 7
mov dword [0x42c3d0], 0
mov word [0x42c3c0], ax
call fcn.0040d9fb
add esp, 4
mov eax, dword [ebp - 0x15c]
mov esi, 0x42c3c0
sub eax, 4
je 0x409430
dec eax
je 0x4093d2
dec eax
je 0x409370
push 7
push str.UnKnown
mov ecx, esi
call fcn.004030c0
jmp case.default.0x40937f
mov eax, dword [ebp - 0x158]
cmp eax, 3
ja case.default.0x40937f
jmp dword [eax*4 + 0x409570]
cmp byte [ebp - 0x46], 1
mov ecx, esi
jne 0x409398
push str.Microsoft_Windows_Vista
jmp 0x409470
push str.Microsoft_Windows_Server_2008
jmp 0x409470
cmp byte [ebp - 0x46], 1
mov ecx, esi
jne 0x4093b4
push str.Microsoft_Windows_7
jmp 0x409470
push str.Microsoft_Windows_Server_2008_R2
jmp 0x409470
push str.Microsoft_Windows_8
jmp 0x40946e
push str.Microsoft_Windows_8.1
jmp 0x40946e
mov eax, dword [ebp - 0x158]
sub eax, 0
je 0x409429
dec eax
je 0x409422
dec eax
jne case.default.0x40937f
cmp byte [ebp - 0x46], 1
jne 0x4093fe
cmp word [ebp - 0x184], 9
jne 0x4093fe
push str.Microsoft_Windows_XP_Professional_x64_Edition
jmp 0x40946e
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x59
call edi
test eax, eax
jne 0x409413
push str.Microsoft_Windows_Server_2003
jmp 0x40946e
push 0x59
call edi
test eax, eax
je case.default.0x40937f
push str.Microsoft_Windows_Server_2003_R2
jmp 0x40946e
push str.Microsoft_Windows_XP
jmp 0x40946e
push str.Microsoft_Windows_2000
jmp 0x40946e
mov eax, dword [ebp - 0x158]
test eax, eax
je 0x409452
cmp eax, 0xa
je 0x40944b
cmp eax, 0x5a
jne case.default.0x40937f
push str.Microsoft_Windows_Me
jmp 0x40946e
push str.Microsoft_Windows_98
jmp 0x40946e
mov eax, dword [ebp - 0x150]
cmp eax, 2
jne 0x409464
push str.Microsoft_Windows_NT_4.0
jmp 0x40946e
cmp eax, 1
jne case.default.0x40937f
push str.Microsoft_Windows_95
mov ecx, esi
call fcn.00402a50
push 0
push 0x4260c8
push dword [0x42c3d0]
push ecx
mov ecx, esi
call fcn.00409c90
test eax, eax
jne 0x40949c
push 7
push str.UnKnown
mov ecx, esi
call fcn.004030c0
push 0x4260cc
mov edx, esi
lea ecx, [ebp - 0x40]
call fcn.00403c80
lea ecx, [ebp - 0x14c]
push ecx
mov edx, eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0
call fcn.00409d10
mov edi, eax
add esp, 8
cmp edi, 0x42c3c0
je 0x40950b
cmp dword [0x42c3d4], 8
jb 0x4094e7
push dword [0x42c3c0]
call fcn.0040d11a
add esp, 4
xor eax, eax
push edi
mov ecx, esi
mov dword [0x42c3d4], 7
mov dword [0x42c3d0], 0
mov word [0x42c3c0], ax
call fcn.00402c90
cmp dword [ebp - 0x14], 8
jb 0x40951c
push dword [ebp - 0x28]
call fcn.0040d11a
add esp, 4
xor eax, eax
cmp dword [ebp - 0x2c], 8
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
jb 0x409541
push dword [ebp - 0x40]
call fcn.0040d11a
add esp, 4
cmp dword [0x42c3d4], 8
cmovae esi, dword [0x42c3c0]
mov eax, esi
jmp 0x409555
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040d11f
mov esp, ebp
pop ebp
ret