Function at 0x47b5dc
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x27
push 0
push 0
dec ecx
jne 0x47b5e4
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x47ba64
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x4f01f0], 0
je 0x47b627
call fcn.0047b4e8
mov edx, eax
lea eax, [ebp - 0xc]
call fcn.004056d4
mov edx, dword [ebp - 0xc]
mov eax, ebx
mov ecx, 0x47ba7c
call fcn.00405804
jmp 0x47b663
mov eax, dword [0x4ea718]
cmp dword [eax], 2
jne 0x47b63f
mov eax, ebx
mov edx, 0x47ba88
call fcn.00405540
jmp 0x47b663
mov eax, dword [0x4ea718]
cmp dword [eax], 3
jne 0x47b657
mov eax, ebx
mov edx, 0x47ba94
call fcn.00405540
jmp 0x47b663
mov eax, ebx
mov edx, 0x47baa0
call fcn.00405540
push dword [ebx]
push 0x47baac
lea edx, [ebp - 0x10]
mov eax, dword [0x4ea228]
mov eax, dword [eax + 4]
call fcn.0046aff8
push dword [ebp - 0x10]
push 0x47bab8
lea edx, [ebp - 0x14]
mov eax, dword [0x4ea228]
mov eax, dword [eax + 8]
call fcn.0046aff8
push dword [ebp - 0x14]
push 0x47bab8
lea edx, [ebp - 0x18]
mov eax, dword [0x4ea228]
mov eax, dword [eax + 0xc]
and eax, 0xffff
call fcn.0046aff8
push dword [ebp - 0x18]
push 0x47baac
mov eax, ebx
mov edx, 8
call fcn.00405880
mov eax, dword [0x4ea3b0]
cmp byte [eax], 0
je 0x47ba31
mov eax, dword [0x4ea228]
mov eax, dword [eax + 4]
cmp eax, 6
jb 0x47b76e
mov eax, dword [0x4ea228]
mov dword [eax], 0x9c
mov eax, dword [0x4ea228]
push eax
call sub.KERNEL32.DLL_GetVersionExA
push dword [ebx]
lea eax, [ebp - 0x1c]
call fcn.004703d0
push dword [ebp - 0x1c]
push 0x47baac
mov eax, ebx
mov edx, 3
call fcn.00405880
mov esi, dword [0x4ea228]
movzx esi, word [esi + 0x94]
test si, si
jbe 0x47ba31
push dword [ebx]
lea edx, [ebp - 0x20]
mov eax, dword [0x4ea228]
movzx eax, si
call fcn.0046aff8
push dword [ebp - 0x20]
push 0x47bab8
lea edx, [ebp - 0x24]
mov eax, dword [0x4ea228]
movzx eax, word [eax + 0x96]
call fcn.0046aff8
push dword [ebp - 0x24]
mov eax, ebx
mov edx, 4
call fcn.00405880
jmp 0x47ba31
mov edx, dword [0x4ea228]
cmp eax, 5
jne 0x47b8c3
mov eax, dword [0x4ea228]
mov dword [eax], 0x9c
mov eax, dword [0x4ea228]
push eax
call sub.KERNEL32.DLL_GetVersionExA
push 0x56
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x47b7af
mov eax, ebx
mov edx, 0x47bac4
call fcn.004057b8
jmp 0x47b85f
push 0x57
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x47b7cb
mov eax, ebx
mov edx, 0x47bad0
call fcn.004057b8
jmp 0x47b85f
mov eax, dword [0x4ea228]
cmp byte [eax + 0x9a], 1
jne 0x47b803
mov eax, dword [0x4ea228]
test byte [eax + 0x99], 2
je 0x47b7f5
mov eax, ebx
mov edx, 0x47badc
call fcn.004057b8
jmp 0x47b85f
mov eax, ebx
mov edx, 0x47bae8
call fcn.004057b8
jmp 0x47b85f
mov eax, dword [0x4ea228]
movzx eax, byte [eax + 0x9a]
cmp al, 3
je 0x47b81d
mov edx, dword [0x4ea228]
cmp al, 2
jne 0x47b85f
mov eax, dword [0x4ea228]
movzx eax, word [eax + 0x98]
test al, 0x80
je 0x47b83b
mov eax, ebx
mov edx, 0x47baf4
call fcn.004057b8
jmp 0x47b85f
mov edx, dword [0x4ea228]
test al, 2
je 0x47b853
mov eax, ebx
mov edx, 0x47bb00
call fcn.004057b8
jmp 0x47b85f
mov eax, ebx
mov edx, 0x47bb0c
call fcn.004057b8
mov eax, ebx
mov edx, 0x47baac
call fcn.004057b8
mov esi, dword [0x4ea228]
movzx esi, word [esi + 0x94]
test si, si
jbe 0x47ba31
push dword [ebx]
lea edx, [ebp - 0x28]
mov eax, dword [0x4ea228]
movzx eax, si
call fcn.0046aff8
push dword [ebp - 0x28]
push 0x47bab8
lea edx, [ebp - 0x2c]
mov eax, dword [0x4ea228]
movzx eax, word [eax + 0x96]
call fcn.0046aff8
push dword [ebp - 0x2c]
mov eax, ebx
mov edx, 4
call fcn.00405880
jmp 0x47ba31
push 0
lea eax, [ebp - 4]
push eax
mov ecx, 0x47bb18
mov edx, 0x47bb2c
mov eax, 0x80000002
call fcn.0046e274
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.0046b078
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 4]
call fcn.00405584
mov edx, dword [ebp - 4]
mov eax, 0x47bb64
call fcn.00405ac8
test eax, eax
jle 0x47b912
mov eax, ebx
mov edx, 0x47bae8
call fcn.004057b8
jmp 0x47b94e
mov edx, dword [ebp - 4]
mov eax, 0x47bb74
call fcn.00405ac8
test eax, eax
jle 0x47b931
mov eax, ebx
mov edx, 0x47bb0c
call fcn.004057b8
jmp 0x47b94e
mov edx, dword [ebp - 4]
mov eax, 0x47bb88
call fcn.00405ac8
test eax, eax
jle 0x47b94e
mov eax, ebx
mov edx, 0x47bb00
call fcn.004057b8
mov edx, 0x47bb9c
mov eax, 0x80000002
call fcn.0046daec
mov esi, eax
test esi, esi
je 0x47ba06
xor ecx, ecx
mov edx, 0x47bbd0
mov eax, esi
call fcn.0046e028
mov edi, eax
test edi, edi
jns 0x47b981
add edi, 0xff
sar edi, 8
test edi, edi
jle 0x47b9bb
lea edx, [ebp - 0x134]
mov eax, edi
call fcn.00409fbc
mov edx, dword [ebp - 0x134]
lea eax, [ebp - 0x130]
mov ecx, 0xff
call fcn.00405788
lea edx, [ebp - 0x130]
lea eax, [ebp - 7]
mov cl, 2
call fcn.00403974
mov eax, esi
call fcn.0046dc80
cmp edi, 6
jne 0x47ba0a
mov edx, 0x47bbe4
mov eax, 0x80000002
call fcn.0046daec
mov esi, eax
test esi, esi
je 0x47ba0a
xor ecx, ecx
mov edx, 0x47bc28
mov eax, esi
call fcn.0046e028
test eax, eax
je 0x47b9fd
lea eax, [ebp - 7]
mov edx, 0x47bc34
mov cl, 2
call fcn.00403938
mov eax, esi
call fcn.0046dc80
jmp 0x47ba0a
mov byte [ebp - 7], 0
push dword [ebx]
push 0x47baac
lea eax, [ebp - 0x138]
lea edx, [ebp - 7]
call fcn.00405750
push dword [ebp - 0x138]
mov eax, ebx
mov edx, 3
call fcn.00405880
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47ba6b
lea eax, [ebp - 0x138]
mov edx, 2
call fcn.00405510
lea eax, [ebp - 0x30]
mov edx, 0xa
call fcn.00405510
lea eax, [ebp - 4]
call fcn.004054ec
ret