private static boolean moveKeysRight(VarKeyInteriorNode leftNode, VarKeyInteriorNode rightNode,
			int count) {
		if (count <= 0)
			return false;
		int leftKeyCount = leftNode.keyCount;
		int rightKeyCount = rightNode.keyCount;
		int leftOffset = leftNode.getKeyOffset(leftKeyCount - 1);
		int len = leftNode.getKeyOffset(leftKeyCount - count - 1) - leftOffset;

		// Make room on right for key data
		int rightOffset = rightNode.moveKeys(0, -len);
		int offsetCorrection = rightOffset - leftOffset;

		// Move key data to right node
		rightNode.buffer.copy(rightOffset, leftNode.buffer, leftOffset, len);

		// Move entries to right node
		leftOffset = BASE + ((leftKeyCount - count) * ENTRY_SIZE);
		len = count * ENTRY_SIZE;
		rightNode.buffer.move(BASE, BASE + len, rightKeyCount * ENTRY_SIZE);
		rightNode.buffer.copy(BASE, leftNode.buffer, leftOffset, len);

		// Fix key offsets in right node
		for (int i = 0; i < count; i++) {
			rightNode.putKeyOffset(i, rightNode.getKeyOffset(i) + offsetCorrection);
		}

		leftNode.setKeyCount(leftKeyCount - count);
		rightNode.setKeyCount(rightKeyCount + count);
		return true;
	}
Move some (not all) of the keys from the left node into the right node.
@param leftNode
@param rightNode
@param count
@return true if movement occurred, else false
Ghidra/Framework/DB/src/main/java/db/VarKeyInteriorNode.java