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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc4
mov eax, dword [0x5a2030]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
lea eax, [ebp - 0xc4]
mov esi, ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0x18
add esi, 0xccd8
mov dword [ebp - 0xa0], 0x9c
push str.unknown_OperatingSystem.
mov ecx, esi
call fcn.00401f00
lea eax, [ebp - 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je case.default.0x4038d3
mov eax, dword [ebp - 0x9c]
add eax, 0xfffffffc
cmp eax, 6
ja case.default.0x4038d3
jmp dword [eax*4 + 0x4039f4]
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x40383b
cmp eax, 0xa
je 0x403831
cmp eax, 0x5a
jne case.default.0x4038d3
push str.Microsoft_Windows_Me
jmp 0x4039dd
push str.Microsoft_Windows_98
jmp 0x4039dd
mov eax, dword [ebp - 0x90]
cmp eax, 2
jne 0x403850
push str.Microsoft_Windows_NT_4.0
jmp 0x4039dd
cmp eax, 1
jne case.default.0x4038d3
push str.Microsoft_Windows_95
jmp 0x4039dd
mov eax, dword [ebp - 0x98]
sub eax, 0
je 0x4038b8
dec eax
je 0x4038b1
dec eax
jne case.0x403808.6
cmp byte [ebp - 6], 1
jne 0x40388b
cmp word [ebp - 0xc4], 9
jne 0x40388b
push str.Microsoft_Windows_XP_Professional_x64_Edition
jmp 0x4038bd
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x40389e
push str.Microsoft_Windows_Server_2003
jmp 0x4038bd
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je case.0x403808.6
push str.Microsoft_Windows_Server_2003_R2
jmp 0x4038bd
push str.Microsoft_Windows_XP
jmp 0x4038bd
push str.Microsoft_Windows_2000
mov ecx, esi
call fcn.00403ef0
mov eax, dword [ebp - 0x98]
cmp eax, 3
ja case.default.0x4038d3
jmp dword [eax*4 + 0x403a10]
cmp byte [ebp - 6], 1
mov ecx, esi
jne 0x4038fb
push str.Microsoft_Windows_Vista
call fcn.00403ef0
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005296c8
mov esp, ebp
pop ebp
ret
push str.Microsoft_Windows_Server_2008
call fcn.00403ef0
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005296c8
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 6], 1
mov ecx, esi
jne 0x403935
push str.Microsoft_Windows_7
call fcn.00403ef0
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005296c8
mov esp, ebp
pop ebp
ret
push str.Microsoft_Windows_Server_2008_R2
call fcn.00403ef0
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005296c8
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 6], 1
mov ecx, esi
je 0x40396f
push str.Windows_Server_2012
call fcn.00403ef0
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005296c8
mov esp, ebp
pop ebp
ret
push str.Windows_10
call fcn.00403ef0
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005296c8
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 6], 1
mov ecx, esi
jne 0x4039a9
push str.Windows_8.1
call fcn.00403ef0
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005296c8
mov esp, ebp
pop ebp
ret
push str.Windows_Server_2012_R2
call fcn.00403ef0
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005296c8
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x98], 0
jne case.default.0x4038d3
cmp byte [ebp - 6], 1
jne 0x4039d8
push str.Windows_10
jmp 0x4039dd
push str.Windows_Server_2016
mov ecx, esi
call fcn.00403ef0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.005296c8
mov esp, ebp
pop ebp
ret