Function at 0x4afaa0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff60
push ebx
push esi
push edi
test dl, dl
je 0x4afab8
add esp, 0xfffffff0
call fcn.00403ed8
mov byte [ebp - 1], dl
mov ebx, eax
xor edx, edx
mov eax, ebx
call fcn.004542f4
mov dword [ebx + 0x248], 0x1fffffff
mov dword [ebx + 0x24c], 0xff000008
mov byte [ebx + 0x270], 2
mov eax, dword [ebx + 0x68]
mov eax, dword [eax + 0x18]
mov dword [ebx + 0x25c], eax
mov dword [ebx + 0x260], 0xff00000d
mov dword [ebx + 0x250], 0xff
mov dword [ebx + 0x254], 0xffffff
mov byte [ebx + 0x258], 0
xor eax, eax
mov dword [ebx + 0x224], eax
mov dword [ebx + 0x230], 4
mov dword [ebx + 0x268], 0xff0000
mov dword [ebx + 0x240], 0xc0c0c0
mov dl, 1
mov eax, dword [0x4ab0a8]
call fcn.00403b44
mov dword [ebx + 0x28c], eax
mov byte [ebx + 0x2b0], 1
xor eax, eax
mov dword [ebx + 0x288], eax
lea ecx, [ebp - 0xa0]
or edx, 0xffffffff
or eax, 0xffffffff
call fcn.0041ee94
mov eax, dword [ebp - 0xa0]
mov dword [ebx + 0x2b2], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x2b6], eax
mov byte [ebx + 0x2be], 0
mov byte [ebx + 0x287], 0
mov byte [ebx + 0x236], 1
mov dl, 1
mov eax, dword [0x42b784]
call fcn.0042cef8
mov esi, eax
mov dword [ebx + 0x228], esi
mov dword [esi + 0xc], ebx
mov dword [esi + 8], 0x4b23c4
mov byte [ebx + 0x2c6], 1
mov byte [ebx + 0x2cd], 1
mov byte [ebx + 0x23a], 1
mov dword [ebx + 0x2c0], 0x1fffffff
xor eax, eax
mov dword [ebx + 0x2dc], eax
xor eax, eax
mov dword [ebx + 0x2d8], eax
mov dword [ebp - 0x98], 0x94
lea eax, [ebp - 0x98]
push eax
call sub.kernel32.dll_GetVersionExA
cmp dword [ebp - 0x94], 5
ja 0x4afc19
cmp dword [ebp - 0x94], 5
jne 0x4afc15
cmp dword [ebp - 0x90], 1
jae 0x4afc19
xor eax, eax
jmp 0x4afc1b
mov al, 1
mov byte [ebx + 0x334], al
test byte [ebx + 0x1c], 0x10
jne 0x4afd37
mov ecx, ebx
mov dl, 1
mov eax, dword [0x4ab1d4]
call fcn.004b5730
mov esi, eax
mov dword [ebx + 0x2e4], esi
mov eax, esi
xor edx, edx
call fcn.0046074c
mov eax, dword [ebx + 0x2e4]
xor edx, edx
call fcn.0045ffe8
mov eax, dword [ebx + 0x2e4]
xor edx, edx
call fcn.0046000c
mov eax, dword [ebx + 0x2e4]
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + 0x2e4]
mov edx, 1
call fcn.00467208
mov esi, dword [ebx + 0x2e4]
mov eax, dword [esi + 0x50]
or eax, dword [0x4afd6c]
mov dword [esi + 0x50], eax
mov ecx, esi
mov dl, 1
mov eax, dword [0x45228c]
call fcn.00458320
mov edi, eax
mov dword [ebx + 0x2e8], edi
mov esi, edi
mov edx, dword [ebx + 0x2e4]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov dl, 5
mov eax, esi
call fcn.0045fd40
mov dl, 1
mov eax, esi
call fcn.00458ab0
mov edx, 0xc
mov eax, esi
call fcn.00458944
xor edx, edx
mov eax, esi
call fcn.00467228
mov dl, 1
mov eax, esi
call fcn.0046731c
xor edx, edx
mov eax, esi
call fcn.00458c60
xor edx, edx
mov eax, esi
call fcn.00467304
mov dword [esi + 0x1e4], ebx
mov dword [esi + 0x1e0], 0x4b3e94
mov dword [esi + 0xe4], ebx
mov dword [esi + 0xe0], 0x4b3c80
mov eax, dword [0x4afd6c]
or eax, dword [esi + 0x50]
mov dword [esi + 0x50], eax
mov eax, dword [ebx + 0x2e8]
mov edx, dword [ebx + 0x2e4]
mov dword [edx + 0x218], eax
mov dl, 1
mov eax, dword [0x4ab374]
call fcn.004b5948
mov dword [ebx + 0x2ec], eax
mov eax, ebx
cmp byte [ebp - 1], 0
je 0x4afd60
call fcn.00403f30
pop dword fs:[0]
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret