Function at 0x42c380
Capabilities:
Check os version

Disassembly:
sub esp, 0xa8
push ebx
push ebp
mov ebp, dword [esp + 0xb4]
test ebp, ebp
je 0x42c84b
mov ebx, dword [esp + 0xb8]
test ebx, ebx
je 0x42c84b
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x42c84b
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
push str.unknown_Windows_version
push ebp
call esi
xor eax, eax
mov ecx, 0x27
lea edi, [esp + 0x1c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x1c]
push eax
mov dword [ebx], 0
mov dword [esp + 0x20], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x42c3fa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xc4]
and edi, 0xffff
push edi
push eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
push ecx
push str._u._u._u
push edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [esp + 0xdc]
add esp, 0x14
lea eax, [esp + 0x30]
push eax
push ecx
call esi
mov eax, dword [esp + 0x18]
cmp eax, 1
jne 0x42c57d
cmp dword [esp + 0x14], 4
jne 0x42c83b
mov eax, dword [esp + 0x10]
cmp eax, 0xa
jae 0x42c4dc
cmp edi, 0x3b6
jne 0x42c48b
push str.Windows_95
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 1
mov eax, 1
pop ebx
add esp, 0xa8
ret
jbe 0x42c4b3
cmp edi, 0x438
ja 0x42c4bb
push str.Windows_95_SP1
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 2
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp edi, 0x438
jbe 0x42c4d9
push str.Windows_95_OSR2
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 3
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 0xa
jne 0x42c556
cmp edi, 0x7ce
jne 0x42c504
push str.Windows_98
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 4
mov eax, 1
pop ebx
add esp, 0xa8
ret
jbe 0x42c52c
cmp edi, 0x887
jae 0x42c538
push str.Windows_98_SP1
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 5
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp edi, 0x887
jb 0x42c83b
push str.Windows_98_SE
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 6
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 0x5a
jne 0x42c83b
push str.Windows_ME
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 7
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 2
jne 0x42c828
mov eax, dword [esp + 0x14]
cmp eax, 3
jne 0x42c5b8
cmp dword [esp + 0x10], 0x33
jne 0x42c83b
push str.Windows_NT_3.51
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x65
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 4
jne 0x42c5e7
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x42c83b
push str.Windows_NT_4
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x66
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 5
jne 0x42c65c
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x42c612
push str.Windows_2000
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x67
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 1
jne 0x42c635
push str.Windows_XP
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x68
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 2
jne 0x42c83b
push str.Windows_Server_2003
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x69
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 6
jne 0x42c7cc
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x42c6c0
mov al, byte [esp + 0xb6]
cmp al, 1
jne 0x42c696
push str.Windows_Vista
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6a
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp al, 2
je 0x42c6a2
cmp al, 3
jne 0x42c83b
push str.Windows_Server_2008
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6b
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 1
jne 0x42c718
mov al, byte [esp + 0xb6]
cmp al, 1
jne 0x42c6ee
push str.Windows_7
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6c
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp al, 2
je 0x42c6fa
cmp al, 3
jne 0x42c83b
push str.Windows_Server_2008_R2
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6d
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 2
jne 0x42c770
mov al, byte [esp + 0xb6]
cmp al, 1
jne 0x42c746
push str.Windows_8
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6e
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp al, 2
je 0x42c752
cmp al, 3
jne 0x42c83b
push str.Windows_Server_2012
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6f
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 3
jne 0x42c83b
mov al, byte [esp + 0xb6]
cmp al, 1
jne 0x42c7a2
push str.Windows_8.1
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x70
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp al, 2
je 0x42c7ae
cmp al, 3
jne 0x42c83b
push str.Windows_Server_2012_R2
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x71
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 0xa
jne 0x42c83b
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x42c83b
mov al, byte [esp + 0xb6]
cmp al, 1
jne 0x42c802
push str.Windows_10
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x72
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp al, 2
je 0x42c80a
cmp al, 3
jne 0x42c83b
push str.Windows_Server_10
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x73
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 3
jne 0x42c83b
push str.Windows_CE
push ebp
call esi
mov dword [ebx], 0xc9
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xa8
ret
pop ebp
xor eax, eax
pop ebx
add esp, 0xa8
ret