float get_max_desync_delta( ) {
auto animstate = uintptr_t( this->animation_state( ) );
float rate = 180;
float duckammount = *( float * ) ( animstate + 0xA4 );
float speedfraction = max( 0, min( *reinterpret_cast< float* >( animstate + 0xF8 ), 1 ) );
float speedfactor = max( 0, min( 1, *reinterpret_cast< float* > ( animstate + 0xFC ) ) );
float unk1 = ( ( *reinterpret_cast< float* > ( animstate + 0x11C ) * -0.30000001 ) - 0.19999999 ) * speedfraction;
float unk2 = unk1 + 1.f;
float unk3;
if ( duckammount > 0 ) {
unk2 += ( ( duckammount * speedfactor ) * ( 0.5f - unk2 ) );
}
unk3 = *( float * ) ( animstate + 0x334 ) * unk2;
return rate;
}