Castor oil is a vegetable oil derived from the castor bean seed in its purest form. It is colorless, odorless and tasteless.
Encoding globally available pointers helps protect them from being exploited. The EncodePointer function obfuscates the pointer value with a secret so that it cannot be predicted by an external agent. The secret used by EncodePointer is different for each process. A pointer must be decoded before it can be used.
The point of that is that the pointer is not the variable! The pointer to foo is the contents of foo_ptr. You could put a different pointer in the foo_ptr box, and the box would still be foo_ptr. But it would no longer point to foo. The pointer has a type, too, by the way.