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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc4
mov eax, dword [0x4110a0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push 4
push 0x411f24
xor ebx, ebx
push 0x424510
mov dword [0x424510], ebx
call fcn.00404670
push 4
push 0x411f24
push 0x424110
mov byte [0x424510], bl
mov dword [0x424110], ebx
call fcn.00404670
xor eax, eax
push 0x9c
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xa0]
push ebx
push eax
mov byte [0x424110], bl
call fcn.00407980
push 0x412158
call fcn.00401900
add esp, 0x28
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x402670
push esi
push edi
mov edi, 0x424510
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x402683
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x412168
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x4026a8
mov edi, 0x424110
sub eax, ecx
mov esi, ecx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x4026c0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0xa0]
push ecx
mov dword [ebp - 0xa0], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
pop edi
pop esi
test eax, eax
je 0x4028b1
push 0x424110
push 0x424510
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x40271d
lea edx, [ebp - 0xc4]
push edx
call eax
jmp 0x40272a
lea eax, [ebp - 0xc4]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x9c]
cmp eax, 0xa
jne 0x402762
cmp dword [ebp - 0x98], ebx
jne 0x4028b7
xor ecx, ecx
cmp byte [ebp - 6], 1
pop ebx
setne cl
inc ecx
mov dword [0x425214], ecx
mov eax, ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00404660
mov esp, ebp
pop ebp
ret
cmp eax, 6
jne 0x40280d
mov eax, dword [ebp - 0x98]
cmp eax, 3
jne 0x402798
xor edx, edx
cmp byte [ebp - 6], 1
pop ebx
setne dl
add edx, eax
mov dword [0x425214], edx
mov eax, edx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00404660
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4027bb
xor eax, eax
cmp byte [ebp - 6], 1
pop ebx
setne al
inc eax
mov dword [0x425214], eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00404660
mov esp, ebp
pop ebp
ret
cmp eax, ebx
jne 0x4027e2
xor ecx, ecx
cmp byte [ebp - 6], 1
pop ebx
setne cl
add ecx, 7
mov dword [0x425214], ecx
mov eax, ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00404660
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x4028b7
xor edx, edx
cmp byte [ebp - 6], al
pop ebx
setne dl
add edx, 9
mov dword [0x425214], edx
mov eax, edx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00404660
mov esp, ebp
pop ebp
ret
cmp eax, 5
jne 0x4028b7
mov eax, dword [ebp - 0x98]
cmp eax, 2
jne 0x40286c
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x402839
mov dword [0x425214], 0xb
jmp 0x40285d
cmp byte [ebp - 6], 1
jne 0x402853
cmp word [ebp - 0xc4], 9
mov dword [0x425214], 0xc
je 0x40285d
mov dword [0x425214], 0xd
cmp dword [ebp - 0x9c], 5
jne 0x4028b7
mov eax, dword [ebp - 0x98]
cmp eax, 1
jne 0x40288f
mov dword [0x425214], 0xe
mov eax, dword [0x425214]
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00404660
mov esp, ebp
pop ebp
ret
cmp eax, ebx
jne 0x4028b7
mov dword [0x425214], 0xf
mov eax, dword [0x425214]
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00404660
mov esp, ebp
pop ebp
ret
mov dword [0x425214], ebx
mov ecx, dword [ebp - 4]
mov eax, dword [0x425214]
xor ecx, ebp
pop ebx
call fcn.00404660
mov esp, ebp
pop ebp
ret