/Engine/Source/Runtime/Engine/Classes/GameFramework/CharacterMovementComponent.h
Checks if new capsule size fits (no encroachment), and call CharacterOwner->OnStartCrouch() if successful. In general you should set bWantsToCrouch instead to have the crouch persist during movement, or just use the crouch functions on the owning Character.
virtual void Crouch ( bool bClientSimulation )