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

Disassembly:
sub esp, 0xb70
mov eax, dword [0x470050]
xor eax, esp
mov dword [esp + 0xb6c], eax
push ebx
push ebp
mov ebp, dword [esp + 0xb7c]
push esi
push 0
mov eax, 0x45b064
mov esi, ebp
mov ebx, ecx
call fcn.00402da0
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x38], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4045dc
cmp dword [esp + 0x44], 2
jne 0x4045dc
cmp dword [esp + 0x38], 5
jb 0x4045dc
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xor eax, eax
push edi
push 0x45b418
push str.kernel32.dll
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call edi
test eax, eax
je 0x40435e
lea ecx, [esp + 0x10]
push ecx
call eax
jmp 0x404369
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push str.GetProductInfo
push str.kernel32.dll
call esi
push eax
call edi
mov edi, eax
push 4
mov eax, str.base
mov esi, ebx
call fcn.00402da0
test edi, edi
je 0x4043e7
movzx ecx, word [esp + 0x14e]
movzx edx, word [esp + 0x14c]
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
push eax
push ecx
call edi
mov ax, word [esp + 0x14c]
test ax, ax
je 0x4043e7
movzx edx, ax
push edx
push str.sp_d
lea eax, [esp + 0x15c]
push 0x514
push eax
call fcn.004012c0
add esp, 0x10
push ebx
lea eax, [esp + 0x158]
call fcn.00406610
mov eax, dword [esp + 0x3c]
mov ebx, 1
pop edi
cmp eax, 6
jne 0x4044ae
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x404454
push ebp
cmp byte [esp + 0x152], bl
jne 0x404430
mov eax, str.vista
call fcn.00406610
pop esi
pop ebp
mov al, bl
pop ebx
mov ecx, dword [esp + 0xb6c]
xor ecx, esp
call fcn.0042c1e9
add esp, 0xb70
ret
mov eax, str.win2008
call fcn.00406610
pop esi
pop ebp
mov al, bl
pop ebx
mov ecx, dword [esp + 0xb6c]
xor ecx, esp
call fcn.0042c1e9
add esp, 0xb70
ret
cmp eax, ebx
jne 0x4045c2
push ebp
cmp byte [esp + 0x152], bl
jne 0x40448a
mov eax, str.win7
call fcn.00406610
pop esi
pop ebp
mov al, bl
pop ebx
mov ecx, dword [esp + 0xb6c]
xor ecx, esp
call fcn.0042c1e9
add esp, 0xb70
ret
mov eax, str.win2008r2
call fcn.00406610
pop esi
pop ebp
mov al, bl
pop ebx
mov ecx, dword [esp + 0xb6c]
xor ecx, esp
call fcn.0042c1e9
add esp, 0xb70
ret
cmp eax, 5
jne 0x4045c2
mov eax, dword [esp + 0x3c]
cmp eax, 2
jne 0x4045af
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x4044f5
mov eax, str.windows2003r2
push ebp
call fcn.00406610
pop esi
pop ebp
mov al, bl
pop ebx
mov ecx, dword [esp + 0xb6c]
xor ecx, esp
call fcn.0042c1e9
add esp, 0xb70
ret
mov eax, dword [esp + 0x14c]
test eax, 0x2000
je 0x404528
mov eax, str.windows2003storage
push ebp
call fcn.00406610
pop esi
pop ebp
mov al, bl
pop ebx
mov ecx, dword [esp + 0xb6c]
xor ecx, esp
call fcn.0042c1e9
add esp, 0xb70
ret
test eax, 0x8000
je 0x404554
mov eax, str.windowshomeserver
push ebp
call fcn.00406610
pop esi
pop ebp
mov al, bl
pop ebx
mov ecx, dword [esp + 0xb6c]
xor ecx, esp
call fcn.0042c1e9
add esp, 0xb70
ret
cmp byte [esp + 0x14e], bl
jne 0x40458a
cmp word [esp + 0xc], 9
jne 0x40458a
mov eax, 0x45bc10
push ebp
call fcn.00406610
pop esi
pop ebp
mov al, bl
pop ebx
mov ecx, dword [esp + 0xb6c]
xor ecx, esp
call fcn.0042c1e9
add esp, 0xb70
ret
mov eax, str.win2003
push ebp
call fcn.00406610
pop esi
pop ebp
mov al, bl
pop ebx
mov ecx, dword [esp + 0xb6c]
xor ecx, esp
call fcn.0042c1e9
add esp, 0xb70
ret
cmp eax, ebx
je 0x404565
test eax, eax
jne 0x4045c2
mov eax, str.win2000
push ebp
call fcn.00406610
pop esi
pop ebp
mov al, bl
pop ebx
mov ecx, dword [esp + 0xb6c]
xor ecx, esp
call fcn.0042c1e9
add esp, 0xb70
ret
mov ecx, dword [esp + 0xb78]
pop esi
pop ebp
pop ebx
xor ecx, esp
xor al, al
call fcn.0042c1e9
add esp, 0xb70
ret