Function at 0x42f0e0
Capabilities:
Check os version

Disassembly:
sub esp, 0x120
push ebx
push ebp
mov ebp, dword [esp + 0x12c]
push edi
test ebp, ebp
je 0x42f3d8
mov edi, dword [esp + 0x134]
test edi, edi
je 0x42f3d8
mov eax, dword [esp + 0x138]
test eax, eax
je 0x42f3d8
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str.unknown_Windows_version
push ebp
call ebx
lea eax, [esp + 0x18]
mov dword [edi], 0
push eax
mov dword [esp + 0x1c], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x42f3d8
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x138]
push esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
and esi, 0xffff
push esi
push eax
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_wsprintfW]
mov eax, dword [esp + 0x2c]
add esp, 0x14
cmp eax, 1
jne 0x42f26d
cmp dword [esp + 0x14], 4
jne 0x42f344
mov eax, dword [esp + 0x10]
cmp eax, 0xa
jae 0x42f1f8
cmp esi, 0x3b6
jne 0x42f1bd
push str.Windows_95
push ebp
call ebx
mov dword [edi], 1
jmp 0x42f344
jbe 0x42f1da
cmp esi, 0x438
ja 0x42f1e2
push str.Windows_95_SP1
push ebp
call ebx
mov dword [edi], 2
jmp 0x42f344
cmp esi, 0x438
jbe 0x42f1f5
push str.Windows_95_OSR2
push ebp
call ebx
mov dword [edi], 3
jmp 0x42f344
cmp eax, 0xa
jne 0x42f251
cmp esi, 0x7ce
jne 0x42f215
push str.Windows_98
push ebp
call ebx
mov dword [edi], 4
jmp 0x42f344
jbe 0x42f232
cmp esi, 0x887
jae 0x42f23e
push str.Windows_98_SP1
push ebp
call ebx
mov dword [edi], 5
jmp 0x42f344
cmp esi, 0x887
jb 0x42f344
push str.Windows_98_SE
push ebp
call ebx
mov dword [edi], 6
jmp 0x42f344
cmp eax, 0x5a
jne 0x42f344
push str.Windows_ME
push ebp
call ebx
mov dword [edi], 7
jmp 0x42f344
cmp eax, 2
jne 0x42f331
mov eax, dword [esp + 0x14]
cmp eax, 3
jne 0x42f29d
cmp dword [esp + 0x10], 0x33
jne 0x42f321
push str.Windows_NT_3.51
push ebp
call ebx
mov dword [edi], 0x65
jmp 0x42f344
cmp eax, 4
jne 0x42f2bd
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x42f321
push str.Windows_NT_4
push ebp
call ebx
mov dword [edi], 0x66
jmp 0x42f344
cmp eax, 5
jne 0x42f304
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x42f2da
push str.Windows_2000
push ebp
call ebx
mov dword [edi], 0x67
jmp 0x42f344
cmp eax, 1
jne 0x42f2ef
push str.Windows_XP
push ebp
call ebx
mov dword [edi], 0x68
jmp 0x42f344
cmp eax, 2
jne 0x42f321
push str.Windows_2003_Server
push ebp
call ebx
mov dword [edi], 0x69
jmp 0x42f344
cmp eax, 6
jne 0x42f321
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x42f321
push str.Windows_Vista
push ebp
call ebx
mov dword [edi], 0x6a
jmp 0x42f344
push str.Windows_7
push ebp
call ebx
mov dword [edi], 0x6b
jmp 0x42f344
cmp eax, 3
jne 0x42f344
push str.Windows_CE
push ebp
call ebx
mov dword [edi], 0xc9
lea eax, [esp + 0x30]
push eax
push str.Service_Pack_3
call fcn.004dfe9e
add esp, 8
test eax, eax
pop esi
jne 0x42f377
mov ecx, dword [esp + 0x13c]
pop edi
pop ebp
mov eax, 1
mov dword [ecx], 3
pop ebx
add esp, 0x120
ret
lea edx, [esp + 0x2c]
push edx
push str.Service_Pack_2
call fcn.004dfe9e
add esp, 8
test eax, eax
jne 0x42f3a9
mov eax, dword [esp + 0x13c]
pop edi
pop ebp
pop ebx
mov dword [eax], 2
mov eax, 1
add esp, 0x120
ret
lea ecx, [esp + 0x2c]
push ecx
push str.Service_Pack_1
call fcn.004dfe9e
mov edx, dword [esp + 0x144]
add esp, 8
neg eax
sbb eax, eax
pop edi
inc eax
pop ebp
mov dword [edx], eax
mov eax, 1
pop ebx
add esp, 0x120
ret
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x120
ret