Function at 0x4acec0
Capabilities:
Check os version

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x66d37d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x38
push esi
push edi
mov eax, dword [0x73bb00]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x20], edi
mov eax, dword [ebx + 8]
lea esi, [ebp - 0x28]
mov ecx, dword [edi + 4]
add eax, 0x10
movss xmm2, dword [0x67ed54]
xorps xmm0, xmm0
mov dword [ebp - 0x2c], 5
mov dword [ebp - 0x28], 0
mov edx, dword [eax]
test edx, edx
movss dword [ebp - 0x1c], xmm0
cmovns esi, eax
movss dword [ebp - 0x18], xmm0
cmp edx, 5
lea eax, [ebp - 0x2c]
cmovle eax, esi
mov esi, dword [ebx + 8]
mov edx, dword [eax]
imul eax, dword [esi + 0x30], 0xbc
mov dword [ebp - 0x40], edx
cmp edx, 3
jne 0x4acf67
movd xmm1, dword [eax + ecx + 0x576028]
movd xmm0, dword [eax + ecx + 0x57602c]
jmp 0x4acf97
cmp edx, 2
jne 0x4acf80
movd xmm1, dword [eax + ecx + 0x576018]
movd xmm0, dword [eax + ecx + 0x57601c]
jmp 0x4acf97
cmp edx, 1
jne 0x4acfaf
movd xmm1, dword [eax + ecx + 0x57600c]
movd xmm0, dword [eax + ecx + 0x576010]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm2
divss xmm0, xmm2
movss dword [ebp - 0x1c], xmm1
movss dword [ebp - 0x18], xmm0
mov eax, dword [ecx + 0x527050]
mov byte [ebp - 0x12], 0
test eax, eax
je 0x4acfd0
imul eax, dword [eax + 4], 0x1208
cmp dword [eax + ecx + method.CGameClient.virtual_68], 0xffffffff
setne byte [ebp - 0x12]
mov eax, dword fs:[0x2c]
mov ecx, dword [0x786af0]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x745530]
mov dword [ebp - 0x48], ecx
cmp eax, dword [ecx + 0xc]
jg 0x4ad513
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x527064]
test eax, eax
je 0x4ad021
test byte [eax + 4], 4
jne 0x4ad021
mov ecx, edi
call fcn.005d2840
mov ecx, dword [0x780c78]
movss xmm0, dword [eax + ecx*4 + 0x30]
movss dword [0x74552c], xmm0
cmp byte [esi + 0x18], 0
je 0x4ad03f
mov eax, dword [esi + 0x1c]
test eax, eax
js 0x4ad03f
mov ecx, dword [edi + 4]
push eax
call fcn.005229b0
mov byte [ebp - 0x11], 1
test al, al
jne 0x4ad043
mov byte [ebp - 0x11], 0
mov ecx, dword [edi + 4]
call fcn.0052b320
test al, al
je 0x4ad0eb
cmp dword [0x78042c], 0
mov eax, dword [edi + 4]
je 0x4ad0eb
cmp dword [0x780434], 0
je 0x4ad0eb
cmp byte [eax + 0x527580], 0
jne 0x4ad0eb
mov eax, dword [eax + 0x5267f8]
cmp dword [eax + 8], 4
je 0x4ad0eb
cmp byte [ebp - 0x12], 0
je 0x4ad0eb
cmp byte [ebp - 0x11], 0
jne 0x4ad0eb
mov ecx, edi
call fcn.005d2840
mov esi, dword [0x780c78]
mov ecx, edi
mov dword [ebp - 0x30], eax
call fcn.005d2840
mov ecx, dword [ebp - 0x20]
mov edi, dword [0x780c78]
mov dword [ebp - 0x38], eax
call fcn.005d2840
mov eax, dword [ebp - 0x30]
movss xmm1, dword [0x74552c]
mov ecx, dword [eax + esi*4 + 0x40]
mov eax, dword [ebx + 8]
sub ecx, dword [eax + 0x14]
mov eax, dword [ebp - 0x38]
dec ecx
movd xmm2, ecx
mov ecx, dword [ebx + 8]
cvtdq2ps xmm2, xmm2
addss xmm2, dword [eax + edi*4 + 0x48]
mov edi, dword [ebp - 0x20]
divss xmm2, dword [0x680724]
jmp 0x4ad124
mov ecx, edi
call fcn.005d2840
mov ecx, dword [0x780c78]
mov esi, dword [eax + ecx*4 + 0x18]
mov ecx, edi
call fcn.005d2840
mov ecx, dword [ebx + 8]
movss xmm1, dword [0x74552c]
sub esi, dword [ecx + 0x14]
movd xmm2, esi
cvtdq2ps xmm2, xmm2
divss xmm2, dword [0x680724]
addss xmm2, xmm1
xorps xmm0, xmm0
comiss xmm0, xmm2
jbe 0x4ad147
xorps xmm1, xmmword [0x67b120]
mulss xmm1, dword [0x67b0b0]
comiss xmm2, xmm1
jbe 0x4ad4fd
xorps xmm2, xmm2
cmp byte [ebp - 0x11], 0
movaps xmm1, xmm2
movss xmm3, dword [ebp - 0x1c]
divss xmm3, dword [0x6b0f0c]
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x24], edx
mulss xmm1, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x30]
subss xmm2, dword [0x6ab798]
movss xmm6, dword [ebp - 0x34]
movaps xmm5, xmm1
mulss xmm0, xmm1
mov dword [ebp - 0x30], ecx
mulss xmm5, xmm1
mov dword [ebp - 0x34], eax
addss xmm0, dword [ebp - 0x20]
mulss xmm2, dword [ebp - 0x18]
mov dword [ebp - 0x20], esi
mulss xmm5, xmm3
mulss xmm6, xmm1
movaps xmm4, xmm2
movss xmm1, dword [ebp - 0x34]
addss xmm5, xmm0
movss xmm0, dword [ebp - 0x30]
addss xmm6, dword [ebp - 0x24]
mulss xmm4, xmm2
mov dword [ebp - 0x24], edx
mulss xmm0, xmm2
mulss xmm4, xmm3
addss xmm0, dword [ebp - 0x20]
movss xmm3, dword [0x67b0b4]
mulss xmm1, xmm2
movss dword [ebp - 0x3c], xmm6
movss dword [ebp - 0x38], xmm5
addss xmm4, xmm0
addss xmm1, dword [ebp - 0x24]
movss dword [ebp - 0x20], xmm3
je 0x4ad217
movd xmm3, dword [0x78290c]
cvtdq2ps xmm3, xmm3
divss xmm3, dword [0x67ed54]
movss dword [ebp - 0x20], xmm3
mov ecx, dword [edi + 4]
movaps xmm2, xmm6
mov esi, dword [ebp - 0x40]
subss xmm2, xmm1
movaps xmm1, xmm5
sub esp, 8
subss xmm1, xmm4
add ecx, 0x5110a8
mov dword [esp + 4], 0
movss dword [ebp - 0x18], xmm2
movss dword [ebp - 0x1c], xmm1
movss dword [esp], xmm3
cmp esi, 3
jne 0x4ad35c
mulss xmm1, dword [0x680744]
mulss xmm2, dword [0x680744]
movss dword [ebp - 0x40], xmm1
push dword [ebp - 0x40]
movss dword [ebp - 0x44], xmm2
push dword [ebp - 0x44]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
call fcn.0049a6c0
mov ecx, dword [ebp - 0x48]
mov eax, dword [0x74553c]
cmp eax, dword [ecx + 0xc]
jg 0x4ad568
mov ecx, edi
call fcn.005d2840
cmp dword [eax + 8], 4
jne 0x4ad2d7
mov ecx, edi
call fcn.005d2890
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0x30]
call eax
mov dword [ebp - 0x40], eax
cmp byte [eax], 0
jne 0x4ad30f
mov ecx, edi
call fcn.005d2930
fsub dword [0x745538]
mov eax, dword [ebp - 0x40]
fstp dword [ebp - 0x48]
movss xmm0, dword [ebp - 0x48]
mulss xmm0, dword [eax + 4]
jmp 0x4ad2ff
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x527064]
test eax, eax
je 0x4ad30f
test byte [eax + 4], 4
jne 0x4ad30f
mov ecx, edi
call fcn.005d2930
fsub dword [0x745538]
fstp dword [ebp - 0x48]
movss xmm0, dword [ebp - 0x48]
addss xmm0, dword [0x745534]
movss dword [0x745534], xmm0
mov ecx, edi
call fcn.005d28e0
movss xmm1, dword [0x745534]
mulss xmm1, dword [0x684454]
push ecx
movd xmm0, dword [ebx + 0xc]
mov ecx, eax
mov edx, dword [eax]
addss xmm1, xmm1
cvtdq2ps xmm0, xmm0
addss xmm1, xmm1
addss xmm1, xmm0
movss dword [esp], xmm1
call dword [edx + 0x14c]
mov ecx, edi
call fcn.005d2930
fstp dword [0x745538]
jmp 0x4ad45b
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
call fcn.00499340
movss xmm1, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x1c]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x4ad38f
sqrtsd xmm0, xmm0
jmp 0x4ad394
call fcn.00649080
cvtsd2ss xmm0, xmm0
mov ecx, edi
comiss xmm0, dword [0x684440]
jbe 0x4ad444
call fcn.005d28e0
movss xmm1, dword [ebp - 0x18]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
mov dword [ebp - 0x48], eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x14c]
mov dword [ebp - 0x40], eax
lahf
test ah, 0x44
jp 0x4ad40a
movss xmm1, dword [ebp - 0x1c]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x4ad436
comiss xmm0, xmm1
jbe 0x4ad3f4
movss xmm0, dword [0x6addf0]
push ecx
mov ecx, dword [ebp - 0x48]
movss dword [esp], xmm0
call dword [ebp - 0x40]
jmp 0x4ad45b
movss xmm0, dword [0x684450]
push ecx
mov ecx, dword [ebp - 0x48]
movss dword [esp], xmm0
call dword [ebp - 0x40]
jmp 0x4ad45b
movss xmm0, dword [ebp - 0x1c]
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
call fcn.0064a8a0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, dword [ebp - 0x18]
jbe 0x4ad433
addss xmm1, dword [0x684454]
movaps xmm0, xmm1
push ecx
mov ecx, dword [ebp - 0x48]
movss dword [esp], xmm0
call dword [ebp - 0x40]
jmp 0x4ad45b
call fcn.005d28e0
push ecx
mov ecx, eax
mov dword [esp], 0
mov edx, dword [eax]
call dword [edx + 0x14c]
mov eax, dword [edi + 4]
cmp dword [eax + esi*4 + 0x575c38], 0
jl 0x4ad4fd
mov ecx, edi
call fcn.005d28e0
mov ecx, dword [edi + 4]
mov edx, dword [eax]
push dword [ecx + esi*4 + 0x575c38]
mov ecx, eax
call dword [edx + 0xa8]
mov ecx, edi
call fcn.005d28e0
movss xmm0, dword [ebp - 0x20]
sub esp, 0x10
mov ecx, eax
mov edx, dword [eax]
movss dword [esp + 0xc], xmm0
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call dword [edx + 0x1c4]
mov ecx, edi
call fcn.005d28e0
movss xmm0, dword [ebp - 0x38]
sub esp, 0x10
mov ecx, eax
mov edx, dword [eax]
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x3c]
movss dword [esp], xmm0
push dword [edi + esi*4 + 0x48]
push dword [edi + 8]
call dword [edx + 0x194]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
push 0x745530
call fcn.00632c66
add esp, 4
cmp dword [0x745530], 0xffffffff
jne 0x4acff3
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.005d2840
mov ecx, dword [0x780c78]
push 0x745530
mov dword [ebp - 4], 0xffffffff
movss xmm0, dword [eax + ecx*4 + 0x30]
movss dword [0x74552c], xmm0
call fcn.00632c15
add esp, 4
jmp 0x4acff3
push 0x74553c
call fcn.00632c66
add esp, 4
cmp dword [0x74553c], 0xffffffff
jne 0x4ad293
mov ecx, edi
mov dword [ebp - 4], 1
call fcn.005d2930
push 0x74553c
fstp dword [0x745538]
mov dword [ebp - 4], 0xffffffff
call fcn.00632c15
add esp, 4
jmp 0x4ad293