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.
When dereferenced, a function pointer can be used to invoke the function it points to and pass its arguments just like a normal function call. Such an invocation is also known as an indirect call, because the function is being invoked indirectly through a variable instead of directly through a fixed name or address.