private Address allocateBlock(String blockName, int extBlockSize) throws Exception {

		Memory memory = program.getMemory();
		AddressSpace space = program.getAddressFactory().getDefaultAddressSpace();
		long delta = 0x10000000;
		Address startAddr = null;
		for (long offset = delta; offset < 0x100000000L; offset += delta) {
			Address addr = space.getAddress(offset);
			AddressIterator addresses = memory.getAddresses(addr, true);
			if (!addresses.hasNext()) {
				startAddr = addr;
				break;
			}
			Address nextAddr = addresses.next();
			if (!nextAddr.getAddressSpace().equals(space) ||
				nextAddr.subtract(addr) > extBlockSize) {
				startAddr = addr;
				break;
			}
		}
		if (startAddr != null) {
			memory.createUninitializedBlock(blockName, startAddr, extBlockSize, false);
			return startAddr;
		}
		throw new MemoryAccessException("Failed to allocate block: " + blockName);
	}
External Import Address List (IAT) Symbol Record
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/MingwRelocationAnalyzer.java