void CMovement::MovementFix(CUserCmd* pCmd, QAngle angWishAngles) {
Vector view_fwd, view_right, view_up, cmd_fwd, cmd_right, cmd_up;
Math::AngleVectors(angWishAngles, view_fwd, view_right, view_up);
Math::AngleVectors(pCmd->angViewPoint, cmd_fwd, cmd_right, cmd_up);
const float v8 = std::sqrtf(view_fwd.x * view_fwd.x + view_fwd.y * view_fwd.y);
const float v10 = std::sqrtf(view_right.x * view_right.x + view_right.y * view_right.y);
const float v12 = std::sqrtf(view_up.z * view_up.z);
const Vector norm_view_fwd(1.f / v8 * view_fwd.x, 1.f / v8 * view_fwd.y, 0.f);
const Vector norm_view_right(1.f / v10 * view_right.x, 1.f / v10 * view_right.y, 0.f);
const Vector norm_view_up(0.f, 0.f, 1.f / v12 * view_up.z);
const float v14 = std::sqrtf(cmd_fwd.x * cmd_fwd.x + cmd_fwd.y * cmd_fwd.y);
const float v16 = std::sqrtf(cmd_right.x * cmd_right.x + cmd_right.y * cmd_right.y);
const float v18 = std::sqrtf(cmd_up.z * cmd_up.z);
const Vector norm_cmd_fwd(1.f / v14 * cmd_fwd.x, 1.f / v14 * cmd_fwd.y, 0.f);
const Vector norm_cmd_right(1.f / v16 * cmd_right.x, 1.f / v16 * cmd_right.y, 0.f);
const Vector norm_cmd_up(0.f, 0.f, 1.f / v18 * cmd_up.z);
const float v22 = norm_view_fwd.x * pCmd->flForwardMove;
const float v26 = norm_view_fwd.y * pCmd->flForwardMove;
const float v28 = norm_view_fwd.z * pCmd->flForwardMove;
const float v24 = norm_view_right.x * pCmd->flSideMove;
const float v23 = norm_view_right.y * pCmd->flSideMove;
const float v25 = norm_view_right.z * pCmd->flSideMove;
const float v30 = norm_view_up.x * pCmd->flUpMove;
const float v27 = norm_view_up.z * pCmd->flUpMove;
const float v29 = norm_view_up.y * pCmd->flUpMove;
pCmd->flForwardMove = norm_cmd_fwd.x * v24 + norm_cmd_fwd.y * v23 + norm_cmd_fwd.z * v25
+ (norm_cmd_fwd.x * v22 + norm_cmd_fwd.y * v26 + norm_cmd_fwd.z * v28)
+ (norm_cmd_fwd.y * v30 + norm_cmd_fwd.x * v29 + norm_cmd_fwd.z * v27);
pCmd->flSideMove = norm_cmd_right.x * v24 + norm_cmd_right.y * v23 + norm_cmd_right.z * v25
+ (norm_cmd_right.x * v22 + norm_cmd_right.y * v26 + norm_cmd_right.z * v28)
+ (norm_cmd_right.x * v29 + norm_cmd_right.y * v30 + norm_cmd_right.z * v27);
pCmd->flUpMove = norm_cmd_up.x * v23 + norm_cmd_up.y * v24 + norm_cmd_up.z * v25
+ (norm_cmd_up.x * v26 + norm_cmd_up.y * v22 + norm_cmd_up.z * v28)
+ (norm_cmd_up.x * v30 + norm_cmd_up.y * v29 + norm_cmd_up.z * v27);
pCmd->flForwardMove = std::clamp(pCmd->flForwardMove, -450.f, 450.f);
pCmd->flSideMove = std::clamp(pCmd->flSideMove, -450.f, 450.f);
pCmd->flUpMove = std::clamp(pCmd->flUpMove, -320.f, 320.f);
}