How do most companies protect their software through intellectual property law?