Function at 0x4c0360
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 0x4c04d1
cmp dword [ebp - 0x140], 2
je 0x4c0480
xor esi, esi
mov edi, dword [0x5b2498]
mov ebx, str.32_bit
mov dword [ebp - 0x154], 0
test edi, edi
je 0x4c03ed
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 0x4c0604
movzx eax, word [ebp - 0xba]
test ax, ax
jne 0x4c0500
movzx eax, word [ebp - 0xbc]
test ax, ax
jne 0x4c0445
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], 0x556688
call dword [sym.imp.msvcrt.dll__snprintf]
mov byte [0x5566fd], 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], 0x556688
call dword [sym.imp.msvcrt.dll__snprintf]
mov byte [0x5566fd], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x14c]
cmp eax, 6
ja 0x4c0552
mov edx, eax
je 0x4c0543
mov ecx, dword [ebp - 0x148]
cmp ecx, 0xf
ja 0x4c03aa
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 [0x556700], eax
ja case.0x4c04ca.83
jmp dword [edx*4 + 0x58a644]
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 0x4c039d
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], 0x556688
call dword [sym.imp.msvcrt.dll__snprintf]
mov byte [0x5566fd], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebp - 0x148]
cmp ecx, 1
jbe 0x4c04a8
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 0x4c07d4
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 0x4c0660
add esi, 1
cmp esi, 0xa
jne 0x4c0597
mov edx, dword [ebp - 0x14c]
cmp edx, 0xf
ja 0x4c03aa
jmp 0x4c0497
cmp dword [ebp - 0x140], 2
mov edx, 0x58a614
mov eax, 0x58a611
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], 0x556688
mov dword [esp + 0x10], edx
call dword [sym.imp.msvcrt.dll__snprintf]
mov byte [0x5566fd], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [ebp - 0x14c], esi
jb 0x4c0720
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 0x4c05f0
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 0x4c0710
add ebx, 1
cmp ebx, 0xa
jne 0x4c06ad
jmp 0x4c05f0
mov dword [ebp - 0x148], ebx
jmp 0x4c05f0
mov dword [ebp - 0x14c], esi
mov dword [ebp - 0x148], 0
jmp 0x4c066c
mov esi, 0x58a5c7
jmp 0x4c03ac
mov esi, str.2000
jmp 0x4c03ac
mov esi, 0x58a5fa
test ebx, ebx
mov eax, str.2015
cmove esi, eax
jmp 0x4c03ac
mov esi, 0x58a5fd
test ebx, ebx
mov eax, str.2012_R2
cmove esi, eax
jmp 0x4c03ac
mov esi, 0x58a601
test ebx, ebx
mov eax, str.2012
cmove esi, eax
jmp 0x4c03ac
mov esi, 0x58a5c0
test ebx, ebx
mov eax, str.2008_R2
cmove esi, eax
jmp 0x4c03ac
mov esi, str.Vista
test ebx, ebx
mov eax, str.2008
cmove esi, eax
jmp 0x4c03ac
mov esi, str.2003
jmp 0x4c03ac
cmp eax, 0x4f
mov esi, str.11_or_later
jg 0x4c03ac
mov dword [0x556700], 0
jmp 0x4c03aa
mov edx, esi
jmp 0x4c05f6