private void processX86PltSections(ElfLoadHelper elfLoadHelper, TaskMonitor monitor) throws CancelledException {
		
		// TODO: Does 64-bit have a similar mechanism?

		// TODO: Would be better to use only dynamic table entries since sections may be stripped -
		// the unresolved issue is to determine the length of the PLT area without a section
		
		ElfHeader elfHeader = elfLoadHelper.getElfHeader();
		ElfDynamicTable dynamicTable = elfHeader.getDynamicTable();
		if (dynamicTable == null || !dynamicTable.containsDynamicValue(ElfDynamicType.DT_PLTGOT)) {
			return; // avoid NotFoundException which causes issues for importer
		}
		
		long pltgotOffset;
		try {
			pltgotOffset = elfHeader.adjustAddressForPrelink(dynamicTable.getDynamicValue(
				ElfDynamicType.DT_PLTGOT));
			pltgotOffset = elfLoadHelper.getDefaultAddress(pltgotOffset).getOffset(); // adjusted for image base
		}
		catch (NotFoundException e) {
			throw new AssertException("unexpected", e);
		}
		
		Program program = elfLoadHelper.getProgram();
		Register ebxReg = program.getRegister("EBX");
		Memory memory = program.getMemory();
		
		String pltPrefix = ElfSectionHeaderConstants.dot_plt + ".";

		for (ElfSectionHeader section : elfHeader.getSections()) {
			monitor.checkCancelled();
			String sectionName = section.getNameAsString();
			if (!section.isExecutable()) {
				continue;
			}
			if (sectionName.equals(ElfSectionHeaderConstants.dot_plt) || sectionName.startsWith(pltPrefix)) {
				
				MemoryBlock pltBlock = memory.getBlock(sectionName);
				if (pltBlock == null) {
					elfLoadHelper.log("Skipped processing of " + sectionName + ": memory block not found");
					continue;
				}
				
				// Paint pltgot base over .plt section as EBX value to allow thunks to be resolved during analysis
				try {
					RegisterValue pltgotValue = new RegisterValue(ebxReg, BigInteger.valueOf(pltgotOffset));
					program.getProgramContext().setRegisterValue(pltBlock.getStart(), pltBlock.getEnd(), pltgotValue);
				} catch (ContextChangeException e) {
					throw new AssertException("unexpected", e);
				}
			}
		}
	}
Handle the case where GOT entry offset are computed based upon EBX.  
This implementation replaces the old "magic map" which had previously been used.
@param elfLoadHelper ELF load helper
@param monitor task monitor
@throws CancelledException thrown if load cancelled
Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/extend/X86_32_ElfExtension.java