@Override
	public void remove(int index) throws IOException {

		if (index < 0 || index >= keyCount) {
			throw new AssertException();
		}

		if (hasIndirectStorage(index)) {
			removeChainedBuffer(buffer.getInt(getRecordDataOffset(index)));
			enableIndirectStorage(index, false);
		}

		int len = getRecordLength(index);
		moveRecords(index + 1, len);

		int start = KEY_BASE_OFFSET + ((index + 1) * entrySize);
		len = (keyCount - index - 1) * entrySize;
		buffer.move(start, start - entrySize, len);
		setKeyCount(keyCount - 1);
	}
Insert the specified record at the specified key index.
Existing data may be shifted within the buffer to make room for
the new record.  Parent must be notified if this changes the leftmost
key.
@param index insertion index for stored key
@param record record to be inserted
@throws IOException thrown if an IO error occurs
Ghidra/Framework/DB/src/main/java/db/FixedKeyVarRecNode.java