Function at 0x5027c0
Capabilities:
Check os version

Disassembly:
sub esp, 0xa0
mov eax, dword [0x6aae14]
xor eax, esp
mov dword [esp + 0x9c], eax
push esi
mov esi, dword [esp + 0xa8]
push edi
mov edi, dword [esp + 0xb0]
push 0x9c
lea eax, [esp + 0xc]
push 0
push eax
call fcn.005dfd60
add esp, 0xc
mov dword [esp + 8], 0x9c
test esi, esi
je 0x502807
mov byte [esi], 0
test edi, edi
je 0x50280e
mov byte [edi], 0
cmp dword [0x74aff0], 0
jne 0x502847
mov dword [0x74aff0], 1
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, eax
js 0x502847
cmp al, 6
jb 0x502847
lea ecx, [esp + 8]
push ecx
push 0
mov dword [0x74afec], 1
call fcn.004f4a40
jmp 0x502869
cmp dword [0x74afec], 0
je 0x50285e
lea ecx, [esp + 8]
push ecx
push 0
call fcn.004f4a40
jmp 0x502869
lea edx, [esp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x502a77
test esi, esi
je 0x502929
mov eax, dword [esp + 0xc]
cmp eax, 4
ja 0x5028a6
movzx ecx, word [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
push edx
push ecx
push eax
push str.Version__u._u__s__Build__u_
push esi
call fcn.005dfb23
add esp, 0x18
jmp 0x502929
call fcn.004d9b00
test eax, eax
je 0x5028f3
cmp byte [esp + 0x1c], 0
je 0x5028d7
call fcn.00502700
movzx edx, word [esp + 0x14]
push eax
push edx
lea eax, [esp + 0x24]
push eax
push str._s__Build__u._u_
push esi
call fcn.005dfb23
add esp, 0x14
jmp 0x502929
call fcn.00502700
movzx ecx, word [esp + 0x14]
push eax
push ecx
push str.Build__u._u
push esi
call fcn.005dfb23
add esp, 0x10
jmp 0x502929
cmp byte [esp + 0x1c], 0
je 0x502915
movzx edx, word [esp + 0x14]
push edx
lea eax, [esp + 0x20]
push eax
push str._s__Build__u_
push esi
call fcn.005dfb23
add esp, 0x10
jmp 0x502929
movzx ecx, word [esp + 0x14]
push ecx
push str.Build__u
push esi
call fcn.005dfb23
add esp, 0xc
cmp dword [esp + 0x18], 2
jne 0x502a77
cmp dword [esp + 0xc], 5
jb 0x502a77
cmp byte [esp + 0xa2], 1
jne 0x5029ae
test dword [esp + 0xa0], 0x200
je 0x502982
test edi, edi
je 0x502966
push str.Personal__Workstation_
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
pop edi
mov eax, 1
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.005dfbbe
add esp, 0xa0
ret
test edi, edi
je 0x502992
push str.Professional__Workstation_
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
pop edi
mov eax, 2
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.005dfbbe
add esp, 0xa0
ret
mov eax, dword [esp + 0xa0]
test al, al
jns 0x5029e5
test edi, edi
je 0x5029c9
push str.DataCenter__Server_
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
pop edi
mov eax, 4
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.005dfbbe
add esp, 0xa0
ret
test al, 2
je 0x502a15
test edi, edi
je 0x5029f9
push str.Advanced_Enterprise__Server_
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
pop edi
mov eax, 5
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.005dfbbe
add esp, 0xa0
ret
mov edx, 0x400
cmp ax, dx
jne 0x502a4b
test edi, edi
je 0x502a2f
push str.Blade__Web_Edition__Server
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
pop edi
mov eax, 6
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.005dfbbe
add esp, 0xa0
ret
test edi, edi
je 0x502a5b
push str.Standard__Server_
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
pop edi
mov eax, 3
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.005dfbbe
add esp, 0xa0
ret
mov ecx, dword [esp + 0xa4]
pop edi
pop esi
xor ecx, esp
xor eax, eax
call fcn.005dfbbe
add esp, 0xa0
ret