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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x495279
mov eax, dword fs:[0]
push eax
sub esp, 0x1ec
mov eax, dword [0x4c100c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, edx
mov esi, ecx
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 7
push str.Windows
mov ecx, esi
mov dword [ebp - 0x150], 0x11c
call fcn.00404860
mov edx, ebx
mov ecx, esi
call fcn.0041a950
cmp dword [ebx + 0x10], 0
jne 0x41b067
lea eax, [ebp - 0x150]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x41b053
mov edx, dword [ebp - 0x144]
lea ecx, [ebp - 0x1f8]
call fcn.00407a60
mov edi, eax
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1e0]
mov edx, dword [ebp - 0x148]
call fcn.00407a60
mov esi, eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c8]
mov edx, dword [ebp - 0x14c]
call fcn.00407a60
push 0x4b1f0c
mov edx, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1b0]
call fcn.0040bb90
push esi
mov edx, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x198]
call fcn.0041ca00
push 0x4b1f0c
mov edx, eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x180]
call fcn.0040bb90
push edi
mov edx, eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x168]
call fcn.0041ca00
add esp, 0x10
mov esi, eax
cmp ebx, esi
je 0x41ad8f
mov eax, dword [ebx + 0x14]
cmp eax, 0x10
jb 0x41ad6a
inc eax
mov ecx, ebx
push eax
push dword [ebx]
call fcn.00404b60
mov dword [ebx + 0x14], 0xf
cmp dword [ebx + 0x14], 0x10
mov dword [ebx + 0x10], 0
jb 0x41ad82
mov eax, dword [ebx]
jmp 0x41ad84
mov eax, ebx
push esi
mov ecx, ebx
mov byte [eax], 0
call fcn.00404a90
mov eax, dword [ebp - 0x154]
cmp eax, 0x10
jb 0x41adad
inc eax
lea ecx, [ebp - 0x168]
push eax
push dword [ebp - 0x168]
call fcn.00404b60
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x154], 0xf
mov dword [ebp - 0x158], 0
mov byte [ebp - 0x168], 0
cmp eax, 0x10
jb 0x41ade6
inc eax
lea ecx, [ebp - 0x180]
push eax
push dword [ebp - 0x180]
call fcn.00404b60
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x16c], 0xf
mov dword [ebp - 0x170], 0
mov byte [ebp - 0x180], 0
cmp eax, 0x10
jb 0x41ae1f
inc eax
lea ecx, [ebp - 0x198]
push eax
push dword [ebp - 0x198]
call fcn.00404b60
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x184], 0xf
mov dword [ebp - 0x188], 0
mov byte [ebp - 0x198], 0
cmp eax, 0x10
jb 0x41ae58
inc eax
lea ecx, [ebp - 0x1b0]
push eax
push dword [ebp - 0x1b0]
call fcn.00404b60
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x19c], 0xf
mov dword [ebp - 0x1a0], 0
mov byte [ebp - 0x1b0], 0
cmp eax, 0x10
jb 0x41ae91
inc eax
lea ecx, [ebp - 0x1c8]
push eax
push dword [ebp - 0x1c8]
call fcn.00404b60
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b4], 0xf
mov dword [ebp - 0x1b8], 0
mov byte [ebp - 0x1c8], 0
cmp eax, 0x10
jb 0x41aeca
inc eax
lea ecx, [ebp - 0x1e0]
push eax
push dword [ebp - 0x1e0]
call fcn.00404b60
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x1cc], 0xf
mov dword [ebp - 0x1d0], 0
mov byte [ebp - 0x1e0], 0
cmp eax, 0x10
jb 0x41af0a
inc eax
lea ecx, [ebp - 0x1f8]
push eax
push dword [ebp - 0x1f8]
call fcn.00404b60
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1e4], 0xf
mov dword [ebp - 0x1e8], 0
mov byte [ebp - 0x1f8], 0
sub eax, 4
je 0x41b00e
sub eax, 1
je 0x41afaf
sub eax, 1
jne 0x41b053
mov eax, dword [ebp - 0x148]
sub eax, 0
je 0x41af93
sub eax, 1
je 0x41af77
sub eax, 1
jne 0x41b053
cmp byte [ebp - 0x36], 1
mov ecx, ebx
jne 0x41af6d
push 0x4b3030
jmp 0x41b04e
push str.Server_2012
jmp 0x41b04e
cmp byte [ebp - 0x36], 1
mov ecx, ebx
jne 0x41af89
push 0x4b301c
jmp 0x41b04e
push str.Server_2008_R2
jmp 0x41b04e
cmp byte [ebp - 0x36], 1
mov ecx, ebx
jne 0x41afa5
push str.Vista
jmp 0x41b04e
push str.Server_2008
jmp 0x41b04e
mov eax, dword [ebp - 0x148]
sub eax, 0
je 0x41b007
sub eax, 1
je 0x41b000
sub eax, 1
jne 0x41b053
cmp byte [ebp - 0x36], 1
jne 0x41afdc
cmp word [ebp - 0x34], 9
jne 0x41afdc
push str.XP64
jmp 0x41b04c
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x59
call esi
test eax, eax
jne 0x41aff1
push str.Server_2003
jmp 0x41b04c
push 0x59
call esi
test eax, eax
je 0x41b053
push str.Server_2003_R2
jmp 0x41b04c
push 0x4b2fe0
jmp 0x41b04c
push 0x4b2fdc
jmp 0x41b04c
mov eax, dword [ebp - 0x148]
test eax, eax
je 0x41b030
cmp eax, 0xa
je 0x41b029
cmp eax, 0x5a
jne 0x41b053
push str.WinMe
jmp 0x41b04c
push 0x4b2fd0
jmp 0x41b04c
mov eax, dword [ebp - 0x140]
cmp eax, 2
jne 0x41b042
push str.NT4.0
jmp 0x41b04c
cmp eax, 1
jne 0x41b053
push 0x4b2fcc
mov ecx, ebx
call fcn.00404290
cmp dword [ebx + 0x10], 0
jne 0x41b067
push 0xf
push str.Unknown_Version
mov ecx, ebx
call fcn.00404860
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00439578
mov esp, ebp
pop ebp
ret