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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1e4
push ebx
push esi
push edi
push 0x24
lea eax, [ebp - 0x28]
push 0
push eax
call fcn.0040cba0
mov esi, 0x11c
lea eax, [ebp - 0x144]
push esi
push 0
push eax
call fcn.0040cba0
add esp, 0x18
lea eax, [ebp - 0x144]
mov dword [ebp - 0x144], esi
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4039f3
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.GetNativeSystemInfo
push str.kernel32.dll
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
test eax, eax
je 0x40369b
lea ecx, [ebp - 0x28]
push ecx
call eax
jmp 0x4036a5
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x134], 2
jne 0x4039f3
cmp dword [ebp - 0x140], 4
jbe 0x4039f3
mov esi, dword [ebp + 8]
push 0x422a48
push esi
call fcn.0040cb30
cmp dword [ebp - 0x140], 6
pop ecx
pop ecx
jne case.0x40375f.5
cmp dword [ebp - 0x13c], 0
jne 0x4036ff
cmp byte [ebp - 0x2a], 1
jne 0x4036f2
push str.Windows_Vista
jmp 0x4036f7
push str.Windows_Server_2008
push esi
call fcn.0040cb06
pop ecx
pop ecx
cmp dword [ebp - 0x13c], 1
jne 0x403722
cmp byte [ebp - 0x2a], 1
jne 0x403715
push str.Windows_7
jmp 0x40371a
push str.Windows_Server_2008_R2
push esi
call fcn.0040cb06
pop ecx
pop ecx
push str.GetProductInfo
push str.kernel32.dll
call edi
push eax
call ebx
lea ecx, [ebp - 4]
push ecx
push 0
push 0
push dword [ebp - 0x13c]
push dword [ebp - 0x140]
call eax
mov eax, dword [ebp - 4]
cmp eax, 0x19
ja 0x4037d6
je 0x4037cf
dec eax
cmp eax, 0x11
ja case.0x40375f.5
jmp dword [eax*4 + 0x4039fa]
push str.Ultimate_Edition
jmp 0x4037e0
push str.Home_Premium_Edition
jmp 0x4037e0
push str.Home_Basic_Edition
jmp 0x4037e0
push str.Business_Edition
jmp 0x4037e0
push str.Starter_Edition
jmp 0x4037e0
push str.Cluster_Server_Edition
jmp 0x4037e0
push str.Datacenter_Edition
jmp 0x4037e0
push str.Datacenter_Edition__core_installation_
jmp 0x4037e0
push str.Enterprise_Edition
jmp 0x4037e0
push str.Enterprise_Edition__core_installation_
jmp 0x4037e0
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x4037e0
push str.Small_Business_Server
jmp 0x4037e0
push str.Standard_Edition
jmp 0x4037e0
push str.Standard_Edition__core_installation_
jmp 0x4037e0
push str.Web_Server_Edition
jmp 0x4037e0
push str.Small_Business_Server_Premium_Edition
jmp 0x4037e0
cmp eax, 0x30
jne case.0x40375f.5
push str.Professional
push esi
call fcn.0040cb06
pop ecx
pop ecx
cmp dword [ebp - 0x140], 5
jne 0x403971
cmp dword [ebp - 0x13c], 2
jne 0x4038ee
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x403815
push str.Windows_Server_2003_R2_
jmp 0x403848
test byte [ebp - 0x2b], 0x20
je 0x403822
push str.Windows_Storage_Server_2003
jmp 0x403848
test byte [ebp - 0x2b], 0x80
je 0x40382f
push str.Windows_Home_Server
jmp 0x403848
cmp byte [ebp - 0x2a], 1
jne 0x403843
cmp word [ebp - 0x28], 9
jne 0x403843
push str.Windows_XP_Professional_x64_Edition
jmp 0x403848
push str.Windows_Server_2003_
push esi
call fcn.0040cb06
cmp byte [ebp - 0x2a], 1
pop ecx
pop ecx
je 0x4038e1
cmp word [ebp - 0x28], 6
jne 0x40387b
test byte [ebp - 0x2c], 0x80
je 0x40386e
push str.Datacenter_Edition_for_Itanium_based_Systems
jmp 0x4038d9
test byte [ebp - 0x2c], 2
je 0x4038e1
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x4038d9
cmp word [ebp - 0x28], 9
jne 0x4038a3
test byte [ebp - 0x2c], 0x80
je 0x40388f
push str.Datacenter_x64_Edition
jmp 0x4038d9
test byte [ebp - 0x2c], 2
je 0x40389c
push str.Enterprise_x64_Edition
jmp 0x4038d9
push str.Standard_x64_Edition
jmp 0x4038d9
mov eax, dword [ebp - 0x2c]
test ah, 0x40
je 0x4038b2
push str.Compute_Cluster_Edition
jmp 0x4038d9
test al, 0x80
je 0x4038bd
push str.Datacenter_Edition
jmp 0x4038d9
test al, 2
je 0x4038c8
push str.Enterprise_Edition
jmp 0x4038d9
test ah, 4
je 0x4038d4
push str.Web_Edition
jmp 0x4038d9
push str.Standard_Edition
push esi
call fcn.0040cb06
pop ecx
pop ecx
cmp dword [ebp - 0x140], 5
jne 0x403971
cmp dword [ebp - 0x13c], 1
jne 0x403927
push str.Windows_XP
push esi
call fcn.0040cb06
test byte [ebp - 0x2b], 2
pop ecx
pop ecx
je 0x403911
push str.Home_Edition
jmp 0x403916
push str.Professional
push esi
call fcn.0040cb06
cmp dword [ebp - 0x140], 5
pop ecx
pop ecx
jne 0x403971
cmp dword [ebp - 0x13c], 0
jne 0x403971
push str.Windows_2000
push esi
call fcn.0040cb06
cmp byte [ebp - 0x2a], 1
pop ecx
pop ecx
jne 0x40394a
push str.Professional
jmp 0x403969
test byte [ebp - 0x2c], 0x80
je 0x403957
push str.Datacenter_Server
jmp 0x403969
test byte [ebp - 0x2c], 2
je 0x403964
push str.Advanced_Server
jmp 0x403969
push 0x422364
push esi
call fcn.0040cb06
pop ecx
pop ecx
lea eax, [ebp - 0x130]
push eax
call fcn.0040d3ab
test eax, eax
pop ecx
jbe 0x40399d
push 0x422360
push esi
call fcn.0040cb06
lea eax, [ebp - 0x130]
push eax
push esi
call fcn.0040cb06
add esp, 0x10
push dword [ebp - 0x138]
lea eax, [ebp - 0x1e4]
push str.__build__d_
push eax
call fcn.0040d3c8
lea eax, [ebp - 0x1e4]
push eax
push esi
call fcn.0040cb06
add esp, 0x14
cmp dword [ebp - 0x140], 6
jb 0x4039ef
cmp word [ebp - 0x28], 9
jne 0x4039db
push str.__64_bit
jmp 0x4039e7
cmp word [ebp - 0x28], 0
jne 0x4039ef
push str.__32_bit
push esi
call fcn.0040cb06
pop ecx
pop ecx
mov al, 1
jmp 0x4039f5
xor al, al
pop edi
pop esi
pop ebx
leave
ret