Function at 0x5a4994
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2d
push 0
push 0
dec ecx
jne 0x5a499c
push ebx
push esi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405944
xor eax, eax
push ebp
push 0x5a4d71
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov byte [ebp - 0xe], 0
mov byte [ebp - 0xd], 0
lea eax, [ebp - 0x140]
xor ecx, ecx
mov edx, 0x94
call fcn.00403b84
mov dword [ebp - 0x140], 0x94
cmp dword [ebp - 4], 0
je 0x5a4a96
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00405528
lea ecx, [ebp - 0x144]
lea eax, [ebp - 4]
mov edx, 0x5a4d88
call fcn.005a1618
mov eax, dword [ebp - 0x144]
call fcn.0040a770
mov dword [ebp - 0x130], eax
lea ecx, [ebp - 0x148]
lea eax, [ebp - 4]
mov edx, 0x5a4d88
call fcn.005a1618
mov eax, dword [ebp - 0x148]
call fcn.0040a770
mov dword [ebp - 0x13c], eax
lea ecx, [ebp - 0x14c]
lea eax, [ebp - 4]
mov edx, 0x5a4d88
call fcn.005a1618
mov eax, dword [ebp - 0x14c]
call fcn.0040a770
mov dword [ebp - 0x138], eax
lea ecx, [ebp - 0x150]
lea eax, [ebp - 4]
mov edx, 0x5a4d88
call fcn.005a1618
mov eax, dword [ebp - 0x150]
call fcn.0040a770
mov dword [ebp - 0x134], eax
lea eax, [ebp - 4]
mov edx, dword [ebp - 8]
call fcn.00405528
jmp 0x5a4aa2
lea eax, [ebp - 0x140]
push eax
call sub.kernel32.dll_GetVersionExA
mov esi, dword [ebp - 0x13c]
test esi, esi
jbe 0x5a4d46
lea eax, [ebp - 0xc]
lea edx, [ebp - 0x12c]
mov ecx, 0x80
call fcn.00405700
cmp dword [ebp - 0x130], 1
jne 0x5a4b37
cmp esi, 4
jne 0x5a4b37
mov eax, dword [ebp - 0x138]
sub eax, 0xa
jb 0x5a4ae8
sub eax, 0x50
jb 0x5a4b03
sub eax, 0xb
jb 0x5a4b35
jmp 0x5a4b37
mov edx, dword [ebp - 0xc]
mov eax, 0x5a4d94
call fcn.00405a98
dec eax
sub eax, 2
jae 0x5a4aff
mov bl, 2
jmp 0x5a4b37
mov bl, 1
jmp 0x5a4b37
mov edx, dword [ebp - 0xc]
mov eax, 0x5a4da0
call fcn.00405a98
dec eax
sub eax, 2
jae 0x5a4b1a
mov bl, 4
jmp 0x5a4b37
mov edx, dword [ebp - 0xc]
mov eax, 0x5a4dac
call fcn.00405a98
dec eax
sub eax, 2
jae 0x5a4b31
mov bl, 4
jmp 0x5a4b37
mov bl, 3
jmp 0x5a4b37
mov bl, 5
cmp dword [ebp - 0x130], 2
jne 0x5a4d46
mov eax, dword [ebp - 0x13c]
cmp eax, 3
jne 0x5a4b67
mov edx, dword [ebp - 0x138]
sub edx, 0xb
jb 0x5a4b61
sub edx, 0x59
jb 0x5a4b65
jmp 0x5a4b67
mov bl, 6
jmp 0x5a4b67
mov bl, 7
cmp eax, 3
jbe 0x5a4d46
cmp eax, 4
jne 0x5a4b77
mov bl, 8
lea eax, [ebp - 0xaa]
xor ecx, ecx
mov edx, 0x9c
call fcn.00403b84
mov dword [ebp - 0xaa], 0x9c
cmp dword [ebp - 4], 0
je 0x5a4c91
lea ecx, [ebp - 0x154]
lea eax, [ebp - 4]
mov edx, 0x5a4d88
call fcn.005a1618
mov eax, dword [ebp - 0x154]
call fcn.0040a770
mov dword [ebp - 0x9a], eax
lea ecx, [ebp - 0x158]
lea eax, [ebp - 4]
mov edx, 0x5a4d88
call fcn.005a1618
mov eax, dword [ebp - 0x158]
call fcn.0040a770
mov dword [ebp - 0xa6], eax
lea ecx, [ebp - 0x15c]
lea eax, [ebp - 4]
mov edx, 0x5a4d88
call fcn.005a1618
mov eax, dword [ebp - 0x15c]
call fcn.0040a770
mov dword [ebp - 0xa2], eax
lea ecx, [ebp - 0x160]
lea eax, [ebp - 4]
mov edx, 0x5a4d88
call fcn.005a1618
mov eax, dword [ebp - 0x160]
call fcn.0040a770
mov dword [ebp - 0x9e], eax
cmp dword [ebp - 4], 0
je 0x5a4c56
lea ecx, [ebp - 0x164]
lea eax, [ebp - 4]
mov edx, 0x5a4d88
call fcn.005a1618
mov eax, dword [ebp - 0x164]
call fcn.0040a770
mov byte [ebp - 0x10], al
jmp 0x5a4c63
cmp dword [ebp - 0xa2], 1
jbe 0x5a4c63
mov byte [ebp - 0x10], 3
cmp dword [ebp - 4], 0
je 0x5a4cae
lea ecx, [ebp - 0x168]
lea eax, [ebp - 4]
mov edx, 0x5a4d88
call fcn.005a1618
mov eax, dword [ebp - 0x168]
call fcn.0040a770
call fcn.005a125c
mov byte [ebp - 0xd], al
jmp 0x5a4cae
lea eax, [ebp - 0xaa]
push eax
call sub.kernel32.dll_GetVersionExA_1
push 0x59
mov eax, dword [0x5bf808]
mov eax, dword [eax]
call eax
test eax, eax
setne byte [ebp - 0xd]
cmp dword [ebp - 0xa6], 0
jbe 0x5a4d46
movzx eax, byte [ebp - 0x10]
cmp al, 3
je 0x5a4cc7
cmp al, 2
jne 0x5a4ccb
mov byte [ebp - 0xe], 1
mov eax, dword [ebp - 0xa6]
cmp eax, 4
jne 0x5a4ce2
cmp byte [ebp - 0xe], 0
je 0x5a4ce0
mov bl, 0xa
jmp 0x5a4ce2
mov bl, 9
cmp eax, 5
jne 0x5a4d35
cmp byte [ebp - 0xe], 0
je 0x5a4d0f
mov edx, dword [ebp - 0xa2]
sub edx, 1
jb 0x5a4cfd
dec edx
je 0x5a4d01
jmp 0x5a4d35
mov bl, 0xc
jmp 0x5a4d35
cmp byte [ebp - 0xd], 0
je 0x5a4d0b
mov bl, 0x11
jmp 0x5a4d35
mov bl, 0x10
jmp 0x5a4d35
mov edx, dword [ebp - 0xa2]
sub edx, 1
jb 0x5a4d21
je 0x5a4d25
dec edx
je 0x5a4d33
jmp 0x5a4d35
mov bl, 0xb
jmp 0x5a4d35
mov bl, 0xd
cmp word [ebp - 0x12], 0x200
jne 0x5a4d35
mov bl, 0xe
jmp 0x5a4d35
mov bl, 0xf
cmp eax, 6
jne 0x5a4d46
cmp byte [ebp - 0xe], 0
je 0x5a4d44
mov bl, 0x13
jmp 0x5a4d46
mov bl, 0x12
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5a4d78
lea eax, [ebp - 0x168]
mov edx, 0xa
call fcn.004054b4
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.004054b4
ret