code: private boolean lookupMemo(Class<?> objectType, Object obj) throws IOException {
  		if(!this.useMemo)
  			return false;
  		if(!objectType.isPrimitive()) {
  			int hash = valueCompare ? obj.hashCode() : System.identityHashCode(obj);
  			if(memo.containsKey(hash) && (valueCompare ? memo.get(hash).obj.equals(obj) : memo.get(hash).obj == obj)) { // same object or value
  				int memo_index = memo.get(hash).index;
  				if(memo_index <= 0xff) {
  					out.write(Opcodes.BINGET);
  					out.write((byte) memo_index);
  				} else {
  					out.write(Opcodes.LONG_BINGET);
  					byte[] index_bytes = PickleUtils.integer_to_bytes(memo_index);
  					out.write(index_bytes, 0, 4);
  				}
  				return true;
  			}
  		}
  		return false;
  	}
docs: Check the memo table and output a memo lookup if the object is found