void processSymbols() throws IOException {
		if (ntHeader.isRVAResoltionSectionAligned()) {
			// Symbols table offsets are only valid when parsing from file, not memory
			return;
		}

		if (isLordPE()) {
			return;
		}

		long oldIndex = reader.getPointerIndex();

		int symbolTableOffset = getPointerToSymbolTable();
		if (symbolTableOffset == 0) {
			return;
		}
		if (numberOfSymbols < 0) {
			Msg.error(this, "Invalid symbol count: " + Integer.toHexString(numberOfSymbols));
			return;
		}

		long stringTableOffset = getStringTableOffset();

		for (int i = 0; i < numberOfSymbols; ++i) {
			if (symbolTableOffset < 0 || symbolTableOffset >= reader.length()) {
				Msg.error(this,
					"Invalid symbol table file index: " + Integer.toHexString(symbolTableOffset));
				break;
			}

			DebugCOFFSymbol symbol =
				new DebugCOFFSymbol(reader, symbolTableOffset, stringTableOffset);

			int numberOfAuxSymbols = symbol.getNumberOfAuxSymbols();

			symbolTableOffset += DebugCOFFSymbol.IMAGE_SIZEOF_SYMBOL;
			symbolTableOffset += DebugCOFFSymbolAux.IMAGE_SIZEOF_AUX_SYMBOL * numberOfAuxSymbols;

			i += numberOfAuxSymbols > 0 ? numberOfAuxSymbols : 0;

			symbols.add(symbol);
		}

		reader.setPointerIndex(oldIndex);
	}
Returns the file pointer to the section headers.
@return the file pointer to the section headers
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/pe/FileHeader.java