Function at 0x4014d0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x41f1ab
mov eax, dword fs:[0]
push eax
sub esp, 0xe0
mov eax, dword [0x429978]
xor eax, esp
mov dword [esp + 0xd8], eax
push ebx
push esi
push edi
mov eax, dword [0x429978]
xor eax, esp
push eax
lea eax, [esp + 0xf0]
mov dword fs:[0], eax
push str.CIniFile::GetOS
lea ecx, [esp + 0x14]
call fcn.00401120
xor ebx, ebx
push 0x9c
lea eax, [esp + 0x48]
push ebx
push eax
mov dword [esp + 0x104], ebx
mov dword [esp + 0x24], ebx
call fcn.0040d2e0
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
add esp, 0xc
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x48], 0x9c
call esi
mov edi, eax
cmp edi, ebx
mov dword [esp + 0x1c], edi
jne 0x40158b
lea edx, [esp + 0x44]
push edx
mov dword [esp + 0x48], 0x94
call esi
test eax, eax
jne 0x40158b
lea ecx, [esp + 0x10]
mov dword [esp + 0xf8], 0xffffffff
call fcn.004012c0
xor eax, eax
jmp 0x40188a
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
cmp esi, ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
je 0x4015c9
push str.IsWow64Process
push esi
call ebx
mov edi, eax
test edi, edi
je 0x4015be
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call edi
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
sub eax, 2
je 0x4015e1
mov dword [0x42ad70], 7
jmp 0x40186e
mov eax, 6
cmp dword [esp + 0x48], eax
mov esi, 7
jne 0x40164c
cmp dword [esp + 0x4c], 0
jne 0x401727
cmp byte [esp + 0xde], 1
jne 0x401634
cmp dword [esp + 0x18], 0
je 0x40161e
push str.Microsoft_Windows_Vista_64
lea ecx, [esp + 0x14]
mov dword [0x42ad70], eax
push ecx
jmp 0x401644
push str.Microsoft_Windows_Vista_32
lea edx, [esp + 0x14]
mov dword [0x42ad70], 5
push edx
jmp 0x401644
push str.Windows_Server__Longhorn_
lea eax, [esp + 0x14]
mov dword [0x42ad70], esi
push eax
call fcn.004013f0
add esp, 8
cmp dword [esp + 0x48], 5
jne 0x401727
cmp dword [esp + 0x4c], 2
jne 0x4016da
push str.GetNativeSystemInfo
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call ebx
test eax, eax
je 0x40167c
lea ecx, [esp + 0x20]
push ecx
call eax
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x40169a
push str.Microsoft_Windows_Server_2003__R2_
lea edx, [esp + 0x14]
mov dword [0x42ad70], esi
push edx
jmp 0x4016cb
cmp dword [esp + 0x18], 0
je 0x4016b7
push str.Microsoft_Windows_XP_Professional_x64_Edition
lea eax, [esp + 0x14]
mov dword [0x42ad70], 4
push eax
jmp 0x4016cb
push str.Microsoft_Windows_Server_2003_
lea ecx, [esp + 0x14]
mov dword [0x42ad70], 3
push ecx
call fcn.004013f0
add esp, 8
cmp dword [esp + 0x48], 5
jne 0x401727
mov esi, 1
cmp dword [esp + 0x4c], esi
jne 0x401708
lea edx, [esp + 0x10]
push str.Microsoft_Windows_XP
push edx
mov dword [0x42ad70], 2
call fcn.004013f0
add esp, 8
cmp dword [esp + 0x48], 5
jne 0x401727
cmp dword [esp + 0x4c], 0
jne 0x401727
lea eax, [esp + 0x10]
push str.Microsoft_Windows_2000
push eax
mov dword [0x42ad70], esi
call fcn.004013f0
add esp, 8
test edi, edi
je 0x40186e
mov al, byte [esp + 0xde]
cmp al, 1
jne 0x40176c
cmp word [esp + 0x20], 9
je 0x40186e
test dword [esp + 0xdc], 0x200
je 0x401762
push str.Home_Edition
lea ecx, [esp + 0x14]
push ecx
jmp 0x401866
push str.Professional
jmp 0x401861
cmp al, 3
je 0x401778
cmp al, 2
jne 0x40186e
cmp dword [esp + 0x48], 5
jne 0x40186e
mov eax, dword [esp + 0x4c]
cmp eax, 2
jne 0x401831
cmp word [esp + 0x20], 6
mov eax, dword [esp + 0xdc]
jne 0x4017cc
test al, al
jns 0x4017af
push str.Datacenter_Edition_for_Itanium_based_Systems
lea eax, [esp + 0x14]
push eax
jmp 0x4017bd
test al, 2
je 0x4017cc
push str.Enterprise_Edition_for_Itanium_based_Systems
lea ecx, [esp + 0x14]
push ecx
call fcn.004013f0
mov eax, dword [esp + 0xe4]
add esp, 8
cmp dword [esp + 0x18], 0
je 0x4017fd
test al, al
jns 0x4017e1
push str.Datacenter_x64_Edition
jmp 0x401861
test al, 2
je 0x4017f1
push str.Enterprise_x64_Edition
lea eax, [esp + 0x14]
push eax
jmp 0x401866
push str.Standard_x64_Edition
lea ecx, [esp + 0x14]
push ecx
jmp 0x401866
test al, al
jns 0x401808
push str.Datacenter_Edition
jmp 0x401861
test al, 2
je 0x401818
push str.Enterprise_Edition
lea eax, [esp + 0x14]
push eax
jmp 0x401866
cmp ax, 0x400
jne 0x40182a
push str.Web_Edition
lea ecx, [esp + 0x14]
push ecx
jmp 0x401866
push str.Standard_Edition
jmp 0x401861
test eax, eax
jne 0x40186e
mov al, byte [esp + 0xdc]
test al, al
jns 0x40184c
push str.Datacenter_Server
lea eax, [esp + 0x14]
push eax
jmp 0x401866
test al, 2
je 0x40185c
push str.Advanced_Server
lea ecx, [esp + 0x14]
push ecx
jmp 0x401866
push str.Server
lea edx, [esp + 0x14]
push edx
call fcn.004013f0
add esp, 8
mov esi, dword [0x42ad70]
lea ecx, [esp + 0x10]
mov dword [esp + 0xf8], 0xffffffff
call fcn.004012c0
mov eax, esi
mov ecx, dword [esp + 0xf0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.0040d05b
mov esp, ebp
pop ebp
ret