Function at 0x4e5080
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x688188
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x70af2c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x24]
call fcn.004a0d30
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0x24]
call fcn.004f0200
fstp dword [ebp - 0x50]
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x24]
call fcn.004f0240
fstp dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x24]
call fcn.004a1d10
push ecx
fstp dword [esp]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0x24]
call fcn.004f0190
fstp dword [ebp - 0x38]
cvtss2sd xmm0, dword [ebp - 0x38]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00667890
add esp, 8
fstp dword [ebp - 0x3c]
cvtss2sd xmm0, dword [ebp - 0x38]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00667840
add esp, 8
fstp dword [ebp - 0x40]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x24]
push ecx
mov ecx, dword [ebp - 0x24]
call fcn.004f0be0
fstp dword [ebp - 0x14]
mov ecx, dword [ebp - 0x24]
call fcn.004f0690
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0x24]
call fcn.0046ddf0
mov dword [ebp - 0x2c], eax
push ecx
movss xmm0, dword [ebp - 0x14]
movss dword [esp], xmm0
push ecx
mov ecx, esp
mov dword [ebp - 0x54], esp
lea eax, [ebp + 0x24]
push eax
call fcn.0040da60
mov ecx, dword [ebp - 0x1c]
call fcn.00425cc0
fstp dword [ebp - 0x48]
movss xmm0, dword [ebp - 0x48]
movss dword [ebp - 0x28], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x20], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x18], xmm0
push ecx
movss xmm0, dword [ebp - 0x14]
movss dword [esp], xmm0
mov ecx, dword [0x711cec]
mov edx, dword [ecx + 0x98]
push edx
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x30]
call eax
fstp dword [ebp - 0x30]
push ecx
movss xmm0, dword [ebp - 0x14]
movss dword [esp], xmm0
mov ecx, dword [0x711cec]
mov edx, dword [ecx + 0xac]
push edx
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x30]
call eax
fstp dword [ebp - 0x44]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 8]
call fcn.004ac440
push 0
cvtss2sd xmm0, dword [ebp - 0x4c]
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x50]
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x40]
sub esp, 8
movsd qword [esp], xmm0
movss xmm0, dword [ebp - 0x3c]
xorps xmm0, xmmword [0x69e140]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x3c]
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x40]
sub esp, 8
movsd qword [esp], xmm0
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
call fcn.004aa3f0
mov eax, dword [ebp - 0x2c]
and eax, 6
cmp eax, 6
jne 0x4e527c
movss xmm0, dword [ebp - 0x28]
xorps xmm0, xmmword [0x69e140]
divss xmm0, dword [0x69d170]
movss dword [ebp - 0x20], xmm0
jmp 0x4e5295
mov ecx, dword [ebp - 0x2c]
and ecx, 2
je 0x4e5295
movss xmm0, dword [ebp - 0x28]
xorps xmm0, xmmword [0x69e140]
movss dword [ebp - 0x20], xmm0
mov edx, dword [ebp - 0x2c]
and edx, 0x18
cmp edx, 0x18
jne 0x4e52aa
xorps xmm0, xmm0
movss dword [ebp - 0x18], xmm0
jmp 0x4e52d6
mov eax, dword [ebp - 0x2c]
and eax, 8
je 0x4e52c5
movss xmm0, dword [ebp - 0x30]
xorps xmm0, xmmword [0x69e140]
movss dword [ebp - 0x18], xmm0
jmp 0x4e52d6
movss xmm0, dword [ebp - 0x44]
xorps xmm0, xmmword [0x69e140]
movss dword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x24]
call fcn.00419020
cmp eax, 2
jne 0x4e535f
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0x24]
call fcn.004bc430
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 8]
call fcn.004ac6f0
movss xmm0, dword [ebp - 0x44]
subss xmm0, dword [ebp - 0x30]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x28]
sub esp, 8
movsd qword [esp], xmm0
movss xmm0, dword [ebp - 0x18]
addss xmm0, dword [ebp - 0x30]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x20]
sub esp, 8
movsd qword [esp], xmm0
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
call fcn.004ab9d0
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 8]
call fcn.004ab280
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x24]
call fcn.0041ae90
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x34]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 8]
call fcn.004ac6f0
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 8]
call fcn.004a98e0
push ecx
movss xmm0, dword [ebp - 0x14]
movss dword [esp], xmm0
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov ecx, dword [edx + 8]
mov edx, dword [eax + 0x14]
call edx
push ecx
movss xmm0, dword [ebp - 0x18]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x20]
movss dword [esp], xmm0
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 8]
call fcn.004ae1e0
lea ecx, [ebp + 0x24]
call fcn.00408890
push eax
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 8]
call fcn.004ae6c0
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
call fcn.004aae30
mov ecx, dword [ebp - 0x24]
call fcn.004a0d30
test eax, eax
je 0x4e5460
movss xmm0, dword [ebp - 0x14]
divss xmm0, dword [0x69e130]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x28]
sub esp, 8
movsd qword [esp], xmm0
movss xmm0, dword [ebp - 0x14]
divss xmm0, dword [0x6a0560]
movss xmm1, dword [ebp - 0x18]
subss xmm1, xmm0
cvtss2sd xmm0, xmm1
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x20]
sub esp, 8
movsd qword [esp], xmm0
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 8]
call fcn.004ab9d0
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 8]
call fcn.004ab280
mov ecx, dword [ebp - 0x24]
call fcn.004bc430
test eax, eax
je 0x4e54d3
movss xmm0, dword [ebp - 0x14]
divss xmm0, dword [0x69e130]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x28]
sub esp, 8
movsd qword [esp], xmm0
movss xmm0, dword [ebp - 0x14]
divss xmm0, dword [0x69d178]
addss xmm0, dword [ebp - 0x18]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x20]
sub esp, 8
movsd qword [esp], xmm0
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
call fcn.004ab9d0
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 8]
call fcn.004ab280
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 8]
call fcn.004abfd0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x24]
call fcn.00408e30
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 0x20