SomeObject (represented by the blue ball) resides in a memory in some location (0xabc123beef is the address). It is then assigned to the identifier x making it its owner:

x is passed as a parameter to the function process_object().:

The process_object() function has now ownership. x gets released and ceases to exist:

Now, if the function creates some new object it becomes its owner:

If the function returns an object, it can be assigned to a new owner:

Here, the function relinquishes ownership to y: