Function at 0x1004f5a0
Capabilities:
Check os version

Disassembly:
sub esp, 0x1a4
mov eax, dword [0x1017455c]
xor eax, esp
mov dword [esp + 0x1a0], eax
push 0x103
lea eax, [esp + 0xa1]
push 0
push eax
mov byte [esp + 0xa8], 0
call fcn.10116880
push 0x9c
lea ecx, [esp + 0x10]
push 0
push ecx
call fcn.10116880
add esp, 0x18
mov dword [esp], 0x9c
test esi, esi
je 0x1004f5f2
mov byte [esi], 0
test edi, edi
je 0x1004f5f9
mov byte [edi], 0
cmp dword [0x1019e748], 0
jne 0x1004f631
mov dword [0x1019e748], 1
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, eax
js 0x1004f631
cmp al, 6
jb 0x1004f631
lea edx, [esp]
push edx
push 0
mov dword [0x1019e74c], 1
call sym.EncDec.dll_MyRtlGetVersion
jmp 0x1004f651
cmp dword [0x1019e74c], 0
je 0x1004f647
lea edx, [esp]
push edx
push 0
call sym.EncDec.dll_MyRtlGetVersion
jmp 0x1004f651
lea eax, [esp]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x1004f908
lea ecx, [esp + 0x9c]
push ecx
call fcn.1004f530
add esp, 4
test esi, esi
je 0x1004f7c6
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x1004f69e
movzx edx, word [esp + 0xc]
push edx
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x18]
push ecx
push edx
push eax
push str.Version__u._u__s__Build__u_
push esi
call fcn.1010d6a8
add esp, 0x18
jmp 0x1004f7c6
call fcn.1004fe90
test eax, eax
je 0x1004f74d
cmp byte [esp + 0x9c], 0
jne 0x1004f6f6
cmp byte [esp + 0x14], 0
je 0x1004f6e0
call fcn.1004f470
push eax
movzx eax, word [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
push str._s__Build__u._u_
push esi
call fcn.1010d6a8
add esp, 0x14
jmp 0x1004f7c6
call fcn.1004f470
movzx edx, word [esp + 0xc]
push eax
push edx
push str.Build__u._u
jmp 0x1004f7bd
cmp byte [esp + 0x14], 0
je 0x1004f729
call fcn.1004f470
push eax
movzx eax, word [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0xa8]
push edx
push str._s__s__Build__u._u_
push esi
call fcn.1010d6a8
add esp, 0x18
jmp 0x1004f7c6
call fcn.1004f470
push eax
movzx eax, word [esp + 0x10]
push eax
lea ecx, [esp + 0xa4]
push ecx
push str.Version__s__Build__u._u_
push esi
call fcn.1010d6a8
add esp, 0x14
jmp 0x1004f7c6
cmp byte [esp + 0x9c], 0
jne 0x1004f786
cmp byte [esp + 0x14], 0
je 0x1004f770
movzx edx, word [esp + 0xc]
push edx
lea eax, [esp + 0x18]
push eax
push str._s__Build__u_
jmp 0x1004f7bd
movzx ecx, word [esp + 0xc]
push ecx
push str.Build__u
push esi
call fcn.1010d6a8
add esp, 0xc
jmp 0x1004f7c6
cmp byte [esp + 0x14], 0
movzx edx, word [esp + 0xc]
push edx
je 0x1004f7b0
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xa4]
push ecx
push str._s__s__Build__u_
push esi
call fcn.1010d6a8
add esp, 0x14
jmp 0x1004f7c6
lea eax, [esp + 0xa0]
push eax
push str.Version__s__Build__u_
push esi
call fcn.1010d6a8
add esp, 0x10
cmp dword [esp + 0x10], 2
jne 0x1004f908
cmp dword [esp + 4], 5
jb 0x1004f908
cmp byte [esp + 0x9a], 1
jne 0x1004f847
test dword [esp + 0x98], 0x200
je 0x1004f81d
test edi, edi
je 0x1004f803
push str.Personal__Workstation_
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, 1
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.1010d699
add esp, 0x1a4
ret
test edi, edi
je 0x1004f82d
push str.Professional__Workstation_
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, 2
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.1010d699
add esp, 0x1a4
ret
mov eax, dword [esp + 0x98]
test al, al
jns 0x1004f87c
test edi, edi
je 0x1004f862
push str.DataCenter__Server_
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, 4
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.1010d699
add esp, 0x1a4
ret
test al, 2
je 0x1004f8aa
test edi, edi
je 0x1004f890
push str.Advanced_Enterprise__Server_
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, 5
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.1010d699
add esp, 0x1a4
ret
mov ecx, 0x400
cmp ax, cx
jne 0x1004f8de
test edi, edi
je 0x1004f8c4
push str.Blade__Web_Edition__Server
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, 6
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.1010d699
add esp, 0x1a4
ret
test edi, edi
je 0x1004f8ee
push str.Standard__Server_
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, 3
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.1010d699
add esp, 0x1a4
ret
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
xor eax, eax
call fcn.1010d699
add esp, 0x1a4
ret