long getStringTableOffset() throws IOException {
		if (ntHeader.isRVAResoltionSectionAligned()) {
			// String table offsets are only valid when parsing from file, not memory
			return -1;
		}
		if (pointerToSymbolTable <= 0 || numberOfSymbols < 0) {
			return -1;
		}
		if (pointerToSymbolTable + (numberOfSymbols * DebugCOFFSymbol.IMAGE_SIZEOF_SYMBOL) > reader
				.length()) {
			return -1;
		}
		return pointerToSymbolTable + (DebugCOFFSymbol.IMAGE_SIZEOF_SYMBOL * numberOfSymbols);
	}
Return the offset of the string table, or -1 if invalid or not present.

@return long offset of string table, or -1 if invalid or not present
@throws IOException if io error
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/pe/FileHeader.java