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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1009d026
mov eax, dword fs:[0]
push eax
sub esp, 0x194
mov eax, dword [0x100c7070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x184], esi
push 0
push 0x100b86c2
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.10002440
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x40]
push 0xa
push str.Microsoft
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
call fcn.10002440
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 1
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
lea eax, [ebp - 0x180]
mov dword [ebp - 0x180], 0x11c
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x10015305
mov eax, dword [ebp - 0x17c]
sub eax, 4
je 0x100152bf
sub eax, 1
je 0x10015260
sub eax, 1
jne 0x10015305
mov eax, dword [ebp - 0x178]
sub eax, 0
je 0x10015243
sub eax, 1
jne 0x10015305
cmp byte [ebp - 0x66], 1
lea ecx, [ebp - 0x28]
jne 0x10015239
push str.Windows_7
jmp 0x10015300
push str.Windows_Server_2008_R2
jmp 0x10015300
cmp byte [ebp - 0x66], 1
lea ecx, [ebp - 0x28]
jne 0x10015256
push str.Windows_Vista
jmp 0x10015300
push str.Windows_Server_2008
jmp 0x10015300
mov eax, dword [ebp - 0x178]
sub eax, 0
je 0x100152b8
sub eax, 1
je 0x100152b1
sub eax, 1
jne 0x10015305
cmp byte [ebp - 0x66], 1
jne 0x1001528d
cmp word [ebp - 0x64], 9
jne 0x1001528d
push str.Windows_XP_Professional_x64_Edition
jmp 0x100152fd
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x59
call edi
test eax, eax
jne 0x100152a2
push str.Windows_Server_2003
jmp 0x100152fd
push 0x59
call edi
test eax, eax
je 0x10015305
push str.Windows_Server_2003_R2
jmp 0x100152fd
push str.Windows_XP
jmp 0x100152fd
push str.2000
jmp 0x100152fd
mov eax, dword [ebp - 0x178]
test eax, eax
je 0x100152e1
cmp eax, 0xa
je 0x100152da
cmp eax, 0x5a
jne 0x10015305
push str.Windows_Me
jmp 0x100152fd
push str.Windows_98
jmp 0x100152fd
mov eax, dword [ebp - 0x170]
cmp eax, 2
jne 0x100152f3
push str.Windows_NT_4.0
jmp 0x100152fd
cmp eax, 1
jne 0x10015305
push str.Windows_95
lea ecx, [ebp - 0x28]
call fcn.100045f0
cmp dword [ebp - 0x18], 0
jne 0x100153c4
push dword [ebp - 0x178]
lea eax, [ebp - 0x1a0]
push dword [ebp - 0x17c]
push str.unknown_OperatingSystem._d__d
push eax
call fcn.100177d0
add esp, 0x10
mov edi, eax
lea eax, [ebp - 0x28]
cmp eax, edi
je 0x10015368
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x1001534d
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.10002840
push edi
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.10002770
mov eax, dword [ebp - 0x18c]
cmp eax, 0x10
jb 0x10015386
inc eax
lea ecx, [ebp - 0x1a0]
push eax
push dword [ebp - 0x1a0]
call fcn.10002840
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.10002070
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x100153a6
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.10002840
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
cmp ecx, 0x10
jb 0x1001540b
inc ecx
push ecx
jmp 0x10015400
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.10002070
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x100153e4
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.10002840
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
cmp eax, 0x10
jb 0x1001540b
inc eax
push eax
push dword [ebp - 0x28]
lea ecx, [ebp - 0x28]
call fcn.10002840
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10044baf
mov esp, ebp
pop ebp
ret