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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x204
mov eax, dword [0x1013c270]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
lea eax, [ebp - 0x200]
mov dword [ebp - 0x204], 0
push eax
mov esi, ecx
mov dword [ebp - 0x200], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je case.default.0x100083e5
lea eax, [ebp - 0xdc]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x1fc]
add eax, 0xfffffffc
cmp eax, 6
ja case.default.0x100083e5
jmp dword [eax*4 + 0x1000866c]
mov eax, dword [ebp - 0x1f8]
test eax, eax
je 0x100082d7
cmp eax, 0xa
je 0x100082ba
cmp eax, 0x5a
jne case.default.0x100083e5
push str.Windows_Me
mov ecx, esi
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
push str.Windows_98
mov ecx, esi
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x1f0]
cmp eax, 2
jne 0x100082ff
push str.Windows_NT_4.0
mov ecx, esi
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne case.default.0x100083e5
push str.Windows_95
mov ecx, esi
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x1f8]
sub eax, 0
je 0x100083b9
sub eax, 1
je 0x1000839c
sub eax, 1
jne case.default.0x100083e5
mov al, byte [ebp - 0xe6]
cmp al, 1
jne 0x10008377
cmp word [ebp - 0xdc], 9
jne case.default.0x100083e5
push str.Windows_XP_Professional_x64_Edition
mov ecx, esi
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
cmp al, 3
jne case.default.0x100083e5
push str.Windows_Server_2003
mov ecx, esi
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
push str.Windows_XP
mov ecx, esi
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
push str.Windows_2000
mov ecx, esi
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x1f8]
cmp eax, 3
ja case.default.0x100083e5
jmp dword [eax*4 + 0x10008688]
cmp byte [ebp - 0xe6], 1
mov ecx, esi
jne 0x10008412
push str.Windows_Vista
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
push str.Windows_Server_2008
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0xe6], 1
mov ecx, esi
jne 0x10008453
push str.Windows_7
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
push str.Windows_Server_2008_R2
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0xe6], 1
mov ecx, esi
jne 0x10008494
push str.Windows_8
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
push str.Windows_Server_2012
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0xe6], 1
mov ecx, esi
jne 0x100084d5
push str.Windows_8.1
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
push str.Windows_Server_2012_R2
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x1f8], 0
jne case.default.0x100083e5
cmp byte [ebp - 0xe6], 1
mov ecx, esi
jne 0x1000851f
push str.Windows_10
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
push str.Windows_Server_2016_Techical_Preview
call fcn.10002df0
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054c42
mov esp, ebp
pop ebp
ret
push 0xb0
lea eax, [ebp - 0xb8]
push 0
push eax
call fcn.1006cd80
add esp, 8
mov dword [ebp - 0xb8], 0x100abe8c
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xa8], 0x100ab760
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x50], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
push eax
call fcn.10004c30
mov eax, dword [ebp - 0xb8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xb8], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0xbc], eax
lea ecx, [ebp - 0xa0]
call fcn.10004d70
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xa0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
push str.Windows_NT
push eax
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
call fcn.10004ed0
add esp, 8
push 0x100aa2d4
push ecx
push dword [ebp - 0x1fc]
lea ecx, [ebp - 0xa8]
call fcn.10008da0
add esp, 4
push eax
call fcn.10004ed0
add esp, 8
push 0x100aa2d4
push ecx
push dword [ebp - 0x1f8]
lea ecx, [ebp - 0xa8]
call fcn.10008da0
add esp, 4
push eax
call fcn.10004ed0
add esp, 8
lea ecx, [ebp - 0xa8]
push dword [ebp - 0x1f4]
call fcn.10008da0
push esi
lea ecx, [ebp - 0xa0]
call fcn.10004b50
lea ecx, [ebp - 0x50]
call fcn.10003e80
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], vtable.std::ios_base.0
push eax
call fcn.1008dac9
mov ecx, dword [ebp - 4]
add esp, 4
mov eax, esi
xor ecx, ebp
pop esi
call fcn.10054c42
mov esp, ebp
pop ebp
ret