Function at 0x4c8be0
Capabilities:
Check os version

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
mov ecx, 0x27
push edi
push esi
push ebx
lea ebx, [ebp - 0x150]
sub esp, 0x17c
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov edi, ebx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x150], 0x9c
mov dword [esp], ebx
call esi
sub esp, 4
test eax, eax
je 0x4c8d51
cmp dword [ebp - 0x140], 2
je 0x4c8d00
xor esi, esi
mov edi, dword [0x5bd3d8]
mov ebx, str.32_bit
mov dword [ebp - 0x154], 0
test edi, edi
je 0x4c8c6d
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea edx, [ebp - 0x154]
mov dword [esp + 4], edx
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x154]
sub esp, 8
test eax, eax
mov eax, str.64_bit
cmovne ebx, eax
test esi, esi
je 0x4c8e84
movzx eax, word [ebp - 0xba]
test ax, ax
jne 0x4c8d80
movzx eax, word [ebp - 0xbc]
test ax, ax
jne 0x4c8cc5
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 8], str._s__s
mov dword [esp + 4], 0x76
mov dword [esp], 0x5605a8
call dword [sym.imp.msvcrt.dll__snprintf]
mov byte [0x56061d], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov dword [esp + 8], str._s_SP_u__s
mov dword [esp + 4], 0x76
mov dword [esp], 0x5605a8
call dword [sym.imp.msvcrt.dll__snprintf]
mov byte [0x56061d], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x14c]
cmp eax, 6
ja 0x4c8dd2
mov edx, eax
je 0x4c8dc3
mov ecx, dword [ebp - 0x148]
cmp ecx, 0xf
ja 0x4c8c2a
mov eax, edx
xor ebx, ebx
cmp byte [ebp - 0xb6], 1
setbe bl
shl eax, 4
or eax, ecx
lea edx, [eax - 0x50]
cmp edx, 0x14
mov dword [0x560620], eax
ja case.0x4c8d4a.83
jmp dword [edx*4 + 0x595ca4]
mov ecx, 0x27
mov edi, ebx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x150], 0x94
mov dword [esp], ebx
call esi
sub esp, 4
test eax, eax
jne 0x4c8c1d
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x14], eax
movzx eax, word [ebp - 0xbc]
mov dword [esp + 0x18], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 8], str._s_SP_u._u__s
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x76
mov dword [esp], 0x5605a8
call dword [sym.imp.msvcrt.dll__snprintf]
mov byte [0x56061d], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebp - 0x148]
cmp ecx, 1
jbe 0x4c8d28
mov ebx, dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 2
mov dword [esp], 0
mov dword [esp + 4], 0
call ebx
mov esi, dword [ebp - 0x14c]
sub esp, 0x10
cmp esi, 9
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], edx
ja 0x4c9054
xor eax, eax
mov ecx, 0x27
mov edx, dword [ebp - 0x15c]
lea edi, [ebp - 0xb4]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0xb4], 0x9c
mov dword [ebp - 0xb0], esi
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
lea eax, [ebp - 0xb4]
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
sub esp, 0x10
test eax, eax
jne 0x4c8ee0
add esi, 1
cmp esi, 0xa
jne 0x4c8e17
mov edx, dword [ebp - 0x14c]
cmp edx, 0xf
ja 0x4c8c2a
jmp 0x4c8d17
cmp dword [ebp - 0x140], 2
mov edx, 0x595c74
mov eax, 0x595c71
mov dword [esp + 0x18], ebx
cmovne eax, edx
mov edx, dword [ebp - 0x148]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._s__u._u__s
mov dword [esp + 4], 0x76
mov dword [esp + 0x14], edx
mov edx, dword [ebp - 0x14c]
mov dword [esp], 0x5605a8
mov dword [esp + 0x10], edx
call dword [sym.imp.msvcrt.dll__snprintf]
mov byte [0x56061d], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [ebp - 0x14c], esi
jb 0x4c8fa0
mov dword [esp + 0xc], 1
xor esi, esi
mov dword [esp + 8], 1
mov dword [esp], 0
mov dword [esp + 4], 0
call ebx
mov ebx, dword [ebp - 0x148]
sub esp, 0x10
cmp ebx, 9
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], edx
ja 0x4c8e70
mov eax, esi
mov ecx, 0x27
mov edx, dword [ebp - 0x15c]
lea edi, [ebp - 0xb4]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0xb4], 0x9c
mov dword [ebp - 0xac], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
lea eax, [ebp - 0xb4]
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
sub esp, 0x10
test eax, eax
jne 0x4c8f90
add ebx, 1
cmp ebx, 0xa
jne 0x4c8f2d
jmp 0x4c8e70
mov dword [ebp - 0x148], ebx
jmp 0x4c8e70
mov dword [ebp - 0x14c], esi
mov dword [ebp - 0x148], 0
jmp 0x4c8eec
mov esi, 0x595c27
jmp 0x4c8c2c
mov esi, str.2000
jmp 0x4c8c2c
mov esi, 0x595c5a
test ebx, ebx
mov eax, str.2015
cmove esi, eax
jmp 0x4c8c2c
mov esi, 0x595c5d
test ebx, ebx
mov eax, str.2012_R2
cmove esi, eax
jmp 0x4c8c2c
mov esi, 0x595c61
test ebx, ebx
mov eax, str.2012
cmove esi, eax
jmp 0x4c8c2c
mov esi, 0x595c20
test ebx, ebx
mov eax, str.2008_R2
cmove esi, eax
jmp 0x4c8c2c
mov esi, str.Vista
test ebx, ebx
mov eax, str.2008
cmove esi, eax
jmp 0x4c8c2c
mov esi, str.2003
jmp 0x4c8c2c
cmp eax, 0x4f
mov esi, str.11_or_later
jg 0x4c8c2c
mov dword [0x560620], 0
jmp 0x4c8c2a
mov edx, esi
jmp 0x4c8e76