private void resolveSectionMemory(MemorySection section,
			AddressRangeObjectMap<AllocatedFileSectionRange> fileAllocationMap, TaskMonitor monitor)
			throws CancelledException {

		List<AddressRange> memoryAllocationList =
			allocateSectionMemory(section, fileAllocationMap, monitor);

		try {
			List<AddressRange> sectionMemoryRanges =
				processSectionRanges(section, memoryAllocationList, monitor);
			MemoryLoadable key = section.getKey();
			if (key != null) {
				sectionMemoryMap.put(key, sectionMemoryRanges);
			}
		}
		catch (AddressOverflowException | IOException e) {
			Msg.error(this, "Error while creating section " + section.getSectionName() +
				section.getPhysicalAddressRange() + ": " + e.getMessage(), e);
		}
	}
Resolve the specified section and create the corresponding memory block(s).
An entry will be added to the sectionMemoryMap to facilitate subsequent 
MemoryLoadable memory assignment lookups, see {@link #getResolvedLoadAddresses(MemoryLoadable)}. 
@param section section to be resolved
@param fileAllocationMap memory mapping of file for those sections already processed.
Any new file regions claimed by the specified section will be added to this map.
@param monitor task monitor
@throws CancelledException
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MemorySectionResolver.java