Note that while well explained, this is a very 90s way of implementing a GPS receiver. As I understand it modern receivers use FFT-based correlators that have much better cold-start performance than the old-fashioned design because they can test very large numbers of possible correlations at once (generally hundreds of thousands of them).