public void parse(TaskMonitor monitor) throws IOException {
		monitor.setMessage("Completing file header parsing...");
		long originalIndex = reader.getPointerIndex();
		try {
			reader.setPointerIndex(sizeof());
			_aoutHeader = AoutHeaderFactory.createAoutHeader(reader, this);

			reader.setPointerIndex(sizeof() + f_opthdr);
			for (int i = 0; i < f_nscns; ++i) {
				CoffSectionHeader section =
					CoffSectionHeaderFactory.createSectionHeader(reader, this);
				_sections.add(section);
				section.parse(reader, this, monitor);
			}
			reader.setPointerIndex(f_symptr);
			for (int i = 0; i < f_nsyms; ++i) {
				CoffSymbol symbol = new CoffSymbol(reader, this);
				_symbols.add(symbol);
				i += symbol.getAuxiliaryCount();
			}
		}
		finally {
			reader.setPointerIndex(originalIndex);
		}
	}
Finishes the parsing of this file header.
@param monitor the task monitor
@throws IOException if an i/o error occurs
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/coff/CoffFileHeader.java