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

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 4
add esp, 0xfffff004
push eax
dec eax
jne 0x403a4d
mov eax, dword [ebp - 4]
add esp, 0xfffff0b8
mov eax, 0x487644
call fcn.00462a08
mov word [ebp - 0x4c], 8
xor edx, edx
mov dword [ebp - 4], edx
inc dword [ebp - 0x40]
mov word [ebp - 0x4c], 0x14
push 0x486aa3
lea ecx, [ebp - 0x14b4]
push ecx
call fcn.00462754
add esp, 8
push 0x486aa4
lea eax, [ebp - 0x283c]
push eax
call fcn.00462754
add esp, 8
push 0x486aa5
lea edx, [ebp - 0x3bc4]
push edx
call fcn.00462754
add esp, 8
push 0x486aa6
lea ecx, [ebp - 0x4f4c]
push ecx
call fcn.00462754
add esp, 8
push 0x24
push 0
lea eax, [ebp - 0x12c]
push eax
call fcn.00462628
add esp, 0xc
push 0x9c
push 0
lea edx, [ebp - 0x108]
push edx
call fcn.00462628
add esp, 0xc
mov dword [ebp - 0x108], 0x9c
lea ecx, [ebp - 0x108]
push ecx
call sub.KERNEL32.DLL_GetVersionExA
mov dword [ebp - 0x68], eax
test eax, eax
jne 0x403b37
xor eax, eax
push eax
dec dword [ebp - 0x40]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0046ca14
pop eax
mov edx, dword [ebp - 0x5c]
mov dword fs:[0], edx
jmp 0x404379
push str.GetNativeSystemInfo
push 0x486aa7
call sub.KERNEL32.DLL_GetModuleHandleA
push eax
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x403b61
lea ecx, [ebp - 0x12c]
push ecx
call dword [ebp - 0x60]
jmp 0x403b6d
lea eax, [ebp - 0x12c]
push eax
call sub.KERNEL32.DLL_GetSystemInfo
cmp dword [ebp - 0xf8], 2
jne 0x40435b
cmp dword [ebp - 0x104], 4
jbe 0x40435b
push 0x486ac8
lea edx, [ebp - 0x14b4]
push edx
call fcn.00462754
add esp, 8
cmp dword [ebp - 0x104], 6
jne 0x403e5a
cmp dword [ebp - 0x100], 0
jne 0x403e5a
cmp byte [ebp - 0x6e], 1
jne 0x403bd1
push str.Windows_Vista
lea ecx, [ebp - 0x283c]
push ecx
call fcn.00462754
add esp, 8
jmp 0x403be5
push str.Windows_Server_2008
lea eax, [ebp - 0x283c]
push eax
call fcn.00462754
add esp, 8
push str.GetProductInfo
push 0x486af4
call sub.KERNEL32.DLL_GetModuleHandleA
push eax
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 0x64], eax
lea edx, [ebp - 0x6c]
push edx
push 0
push 0
push 0
push 6
call dword [ebp - 0x64]
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0x19
ja case.0x403c18.0
jmp dword [ecx*4 + 0x403c1f]
push str.Ultimate_Edition
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push str.Home_Premium_Edition
lea edx, [ebp - 0x3bc4]
push edx
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push str.Home_Basic_Edition
lea ecx, [ebp - 0x3bc4]
push ecx
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push 0x486b49
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push str.Business_Edition
lea edx, [ebp - 0x3bc4]
push edx
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push str.Starter_Edition
lea ecx, [ebp - 0x3bc4]
push ecx
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push str.Cluster_Server_Edition
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push 0x486b94
lea edx, [ebp - 0x3bc4]
push edx
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push str.Datacenter_Edition__core_installation_
lea ecx, [ebp - 0x3bc4]
push ecx
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push 0x486bce
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push str.Enterprise_Edition__core_installation_
lea edx, [ebp - 0x3bc4]
push edx
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push 0x486c08
lea ecx, [ebp - 0x3bc4]
push ecx
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push str.Small_Business_Server
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push str.Small_Business_Server_Premium_Edition
lea edx, [ebp - 0x3bc4]
push edx
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push 0x486c71
lea ecx, [ebp - 0x3bc4]
push ecx
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push str.Standard_Edition__core_installation_
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
jmp case.0x403c18.0
push str.Web_Server_Edition
lea edx, [ebp - 0x3bc4]
push edx
call fcn.00462754
add esp, 8
cmp word [ebp - 0x12c], 9
jne 0x403e3c
push str.64_bit
lea ecx, [ebp - 0x4f4c]
push ecx
call fcn.00462754
add esp, 8
jmp 0x403e5a
cmp word [ebp - 0x12c], 0
jne 0x403e5a
push str.32_bit
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
cmp dword [ebp - 0x104], 5
jne 0x404046
cmp dword [ebp - 0x100], 2
jne 0x404046
push 0x59
call fcn.00461769
test eax, eax
je 0x403e95
push str.Windows_Server_2003_R2
lea edx, [ebp - 0x283c]
push edx
call fcn.00462754
add esp, 8
jmp 0x403f0b
cmp word [ebp - 0x70], 0x2000
jne 0x403eb3
push str.Windows_Storage_Server_2003
lea ecx, [ebp - 0x283c]
push ecx
call fcn.00462754
add esp, 8
jmp 0x403f0b
cmp word [ebp - 0x70], 0x8000
jne 0x403ed1
push str.Windows_Home_Server
lea eax, [ebp - 0x283c]
push eax
call fcn.00462754
add esp, 8
jmp 0x403f0b
cmp byte [ebp - 0x6e], 1
jne 0x403ef7
cmp word [ebp - 0x12c], 9
jne 0x403ef7
push str.Windows_XP_Professional_x64_Edition
lea edx, [ebp - 0x283c]
push edx
call fcn.00462754
add esp, 8
jmp 0x403f0b
push str.Windows_Server_2003
lea ecx, [ebp - 0x283c]
push ecx
call fcn.00462754
add esp, 8
cmp byte [ebp - 0x6e], 1
je 0x404046
cmp word [ebp - 0x12c], 6
jne 0x403f61
test byte [ebp - 0x70], 0x80
je 0x403f3e
push str.Datacenter_Edition_for_Itanium_based_Systems
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
jmp 0x404046
test byte [ebp - 0x70], 2
je 0x404046
push str.Enterprise_Edition_for_Itanium_based_Systems
lea edx, [ebp - 0x3bc4]
push edx
call fcn.00462754
add esp, 8
jmp 0x404046
cmp word [ebp - 0x12c], 9
jne 0x403fc2
test byte [ebp - 0x70], 0x80
je 0x403f8a
push str.Datacenter_x64_Edition
lea ecx, [ebp - 0x3bc4]
push ecx
call fcn.00462754
add esp, 8
jmp 0x404046
test byte [ebp - 0x70], 2
je 0x403fa9
push str.Enterprise_x64_Edition
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
jmp 0x404046
push str.Standard_x64_Edition
lea edx, [ebp - 0x3bc4]
push edx
call fcn.00462754
add esp, 8
jmp 0x404046
test byte [ebp - 0x6f], 0x40
je 0x403fde
push str.Compute_Cluster_Edition
lea ecx, [ebp - 0x3bc4]
push ecx
call fcn.00462754
add esp, 8
jmp 0x404046
test byte [ebp - 0x70], 0x80
je 0x403ffa
push str.Datacenter_Edition
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
jmp 0x404046
test byte [ebp - 0x70], 2
je 0x404016
push str.Enterprise_Edition
lea edx, [ebp - 0x3bc4]
push edx
call fcn.00462754
add esp, 8
jmp 0x404046
test byte [ebp - 0x6f], 4
je 0x404032
push str.Web_Edition
lea ecx, [ebp - 0x3bc4]
push ecx
call fcn.00462754
add esp, 8
jmp 0x404046
push str.Standard_Edition
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
cmp dword [ebp - 0x104], 5
jne 0x40409c
cmp dword [ebp - 0x100], 1
jne 0x40409c
push str.Windows_XP
lea edx, [ebp - 0x283c]
push edx
call fcn.00462754
add esp, 8
test byte [ebp - 0x6f], 2
je 0x404088
push str.Home_Edition
lea ecx, [ebp - 0x3bc4]
push ecx
call fcn.00462754
add esp, 8
jmp 0x40409c
push 0x486e57
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
cmp dword [ebp - 0x104], 5
jne 0x40412e
cmp dword [ebp - 0x100], 0
jne 0x40412e
push str.Windows_2000
lea edx, [ebp - 0x283c]
push edx
call fcn.00462754
add esp, 8
cmp byte [ebp - 0x6e], 1
jne 0x4040e2
push str.Professional
lea ecx, [ebp - 0x3bc4]
push ecx
call fcn.00462754
add esp, 8
jmp 0x40412e
test byte [ebp - 0x70], 0x80
je 0x4040fe
push str.Datacenter_Server
lea eax, [ebp - 0x3bc4]
push eax
call fcn.00462754
add esp, 8
jmp 0x40412e
test byte [ebp - 0x70], 2
je 0x40411a
push str.Advanced_Server
lea edx, [ebp - 0x3bc4]
push edx
call fcn.00462754
add esp, 8
jmp 0x40412e
push str.Server
lea ecx, [ebp - 0x3bc4]
push ecx
call fcn.00462754
add esp, 8
lea eax, [ebp - 0x283c]
push eax
push dword [ebp + 0xc]
call fcn.00462754
add esp, 8
mov word [ebp - 0x4c], 0x20
mov edx, 0x486ea7
lea eax, [ebp - 0xc]
call fcn.0046c9a0
inc dword [ebp - 0x40]
lea edx, [ebp - 0xc]
push edx
lea edx, [ebp - 0x14b4]
lea eax, [ebp - 8]
call fcn.0046c9a0
inc dword [ebp - 0x40]
xor ecx, ecx
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x10]
inc dword [ebp - 0x40]
pop edx
call fcn.0046ca58
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 0x283c]
lea eax, [ebp - 0x14]
call fcn.0046c9a0
mov edx, eax
inc dword [ebp - 0x40]
xor eax, eax
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x18]
inc dword [ebp - 0x40]
pop eax
call fcn.0046ca58
lea edx, [ebp - 0x18]
push edx
mov edx, 0x486ea9
lea eax, [ebp - 0x1c]
call fcn.0046c9a0
inc dword [ebp - 0x40]
lea edx, [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x20]
inc dword [ebp - 0x40]
pop eax
call fcn.0046ca58
lea edx, [ebp - 0x20]
push edx
lea edx, [ebp - 0x3bc4]
lea eax, [ebp - 0x24]
call fcn.0046c9a0
mov edx, eax
inc dword [ebp - 0x40]
xor eax, eax
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x28]
inc dword [ebp - 0x40]
pop eax
call fcn.0046ca58
lea edx, [ebp - 0x28]
push edx
mov edx, 0x486eab
lea eax, [ebp - 0x2c]
call fcn.0046c9a0
inc dword [ebp - 0x40]
lea edx, [ebp - 0x2c]
xor eax, eax
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x30]
inc dword [ebp - 0x40]
pop eax
call fcn.0046ca58
lea edx, [ebp - 0x30]
push edx
lea edx, [ebp - 0x4f4c]
lea eax, [ebp - 0x34]
call fcn.0046c9a0
mov edx, eax
inc dword [ebp - 0x40]
xor eax, eax
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x38]
inc dword [ebp - 0x40]
pop eax
call fcn.0046ca58
lea edx, [ebp - 0x38]
lea eax, [ebp - 4]
call fcn.0046ca44
dec dword [ebp - 0x40]
lea eax, [ebp - 0x38]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 0x34]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.0046ca14
dec dword [ebp - 0x40]
lea eax, [ebp - 8]
mov edx, 2
call fcn.0046ca14
cmp dword [ebp - 4], 0
je 0x40432a
mov ecx, dword [ebp - 4]
jmp 0x40432f
mov ecx, 0x486ead
push ecx
push dword [ebp + 8]
call fcn.00462754
add esp, 8
mov al, 1
push eax
dec dword [ebp - 0x40]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0046ca14
pop eax
mov edx, dword [ebp - 0x5c]
mov dword fs:[0], edx
jmp 0x404379
xor eax, eax
push eax
dec dword [ebp - 0x40]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0046ca14
pop eax
mov edx, dword [ebp - 0x5c]
mov dword fs:[0], edx
mov esp, ebp
pop ebp
ret