@Override
	public void markup(Program program, Address headerStart) throws CodeUnitInsertionException,
			IOException, DuplicateNameException {
		StructureDataType struct = new StructureDataType("_IMAGE_RUNTIME_FUNCTION_ENTRY", 0);
		struct.add(StructConverter.IBO32, "BeginAddress", null);
		struct.add(StructConverter.DWORD, "EndAddress",
			"Apply ImageBaseOffset32 to see reference");
		struct.add(StructConverter.IBO32, "UnwindInfoAddressOrData", null);

		ArrayDataType arr = new ArrayDataType(struct, functionEntries.size(), struct.getLength());

		DataUtilities.createData(program, headerStart, arr, arr.getLength(), true,
			DataUtilities.ClearDataMode.CHECK_FOR_SPACE);

		for (ImageRuntimeFunctionEntry_X86 entry : functionEntries) {
			entry.markup(program);
		}
	}
Creates a new {@link ImageRuntimeFunctionEntries_X86}

@param reader A {@link BinaryReader} positioned at the start of the exception data directory
@param size The size of the exception data directory
@param ntHeader The {@link NTHeader}
@throws IOException If there was an issue parsing the exception data directory
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/pe/ImageRuntimeFunctionEntries_X86.java