Function at 0x413a10
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x450
mov eax, dword [0x458504]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x44c], eax
test edi, edi
je 0x413f67
test esi, esi
je 0x413f67
test eax, eax
je 0x413f67
push ebx
mov ebx, dword [ebp + 0xc]
push ebx
push str.unknown_Windows_version
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push 0x110
lea eax, [ebp - 0x31c]
mov dword [esi], 0
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x320], 0x114
lea eax, [ebp - 0x320]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x413ac5
push 0x11c
lea eax, [ebp - 0x43c]
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x43c], 0x11c
lea eax, [ebp - 0x43c]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x413ad8
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x310]
mov dword [ebp - 0x450], eax
mov eax, dword [ebp - 0x318]
mov dword [ebp - 0x440], eax
mov eax, dword [ebp - 0x31c]
mov dword [ebp - 0x444], eax
movzx eax, word [ebp - 0x314]
mov dword [ebp - 0x448], eax
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push eax
call sub.MSVCR120.dll_memset
lea eax, [ebp - 0x20c]
push 0x103
push eax
call fcn.00413f80
push eax
push dword [ebp - 0x448]
push dword [ebp - 0x440]
push dword [ebp - 0x444]
push str._u._u._u_t_s
push dword [ebp + 0x14]
push dword [ebp - 0x44c]
call dword [sym.imp.MSVCR120.dll__snwprintf]
mov eax, dword [ebp - 0x450]
add esp, 0x30
cmp eax, 1
jne 0x413d06
cmp dword [ebp - 0x444], 4
jne 0x413f51
mov ecx, dword [ebp - 0x440]
mov edx, dword [ebp - 0x448]
cmp ecx, 0xa
jae 0x413c2e
cmp edx, 0x3b6
jne 0x413bc2
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_95
push edi
call eax
pop ebx
pop edi
mov dword [esi], 1
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
lea eax, [edx - 0x3b7]
cmp eax, 0x81
ja 0x413bf9
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_95_SP1
push edi
call eax
pop ebx
pop edi
mov dword [esi], 2
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp edx, 0x438
jbe 0x413c2b
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_95_OSR2
push edi
call eax
pop ebx
pop edi
mov dword [esi], 3
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp ecx, 0xa
jne 0x413cd3
cmp edx, 0x7ce
jne 0x413c66
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_98
push edi
call eax
pop ebx
pop edi
mov dword [esi], 4
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
lea eax, [edx - 0x7cf]
cmp eax, 0xb7
ja 0x413c9d
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_98_SP1
push edi
call eax
pop ebx
pop edi
mov dword [esi], 5
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp edx, 0x887
jb 0x413f51
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_98_SE
push edi
call eax
pop ebx
pop edi
mov dword [esi], 6
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp ecx, 0x5a
jne 0x413f51
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_ME
push edi
call eax
pop ebx
pop edi
mov dword [esi], 7
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x413f38
mov eax, dword [ebp - 0x444]
cmp eax, 3
jne 0x413d51
cmp dword [ebp - 0x440], 0x33
jne 0x413f51
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_NT_3.51
push edi
call eax
pop ebx
pop edi
mov dword [esi], 0x65
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp eax, 4
jne 0x413d8d
cmp dword [ebp - 0x440], 0
jne 0x413f51
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_NT_4
push edi
call eax
pop ebx
pop edi
mov dword [esi], 0x66
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp eax, 5
jne 0x413e72
mov eax, dword [ebp - 0x440]
test eax, eax
jne 0x413dca
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_2000
push edi
call eax
pop ebx
pop edi
mov dword [esi], 0x67
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x413df9
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_XP
push edi
call eax
pop ebx
pop edi
mov dword [esi], 0x68
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x413f51
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x413e38
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_2003_Server_R2
push edi
call eax
pop ebx
pop edi
mov dword [esi], 0x69
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x413f51
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_2003_Server
push edi
call eax
pop ebx
pop edi
mov dword [esi], 0x6a
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp eax, 6
jne 0x413f51
mov eax, dword [ebp - 0x440]
test eax, eax
jne 0x413edc
cmp byte [ebp - 0x322], 1
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
jne 0x413eb8
push str.Windows_Vista
push edi
call eax
pop ebx
pop edi
mov dword [esi], 0x12d
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
push str.Windows_Server_2008
push edi
call eax
pop ebx
pop edi
mov dword [esi], 0x130
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x413f51
cmp byte [ebp - 0x322], 1
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
jne 0x413f14
push str.Windows_7
push edi
call eax
pop ebx
pop edi
mov dword [esi], 0x12e
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
push str.Windows_Server_2008_R2
push edi
call eax
pop ebx
pop edi
mov dword [esi], 0x12f
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
cmp eax, 3
jne 0x413f51
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push ebx
push str.Windows_CE
push edi
call eax
mov dword [esi], 0xc9
pop ebx
pop edi
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d084
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.0043d084
mov esp, ebp
pop ebp
ret