private void parseNList(MessageLog log, TaskMonitor monitor) throws CancelledException {
		BinaryReader nListReader =
			new BinaryReader(reader.getByteProvider(), reader.isLittleEndian());
		monitor.setMessage("Parsing DYLD local symbol nlists...");
		monitor.initialize(nlistCount * 2);
		nListReader.setPointerIndex(startIndex + nlistOffset);
		try {

			for (int i = 0; i < nlistCount; ++i) {
				nlistList.add(new NList(nListReader, is32bit));
				monitor.checkCancelled();
				monitor.incrementProgress(1);
			}
			// sort the entries by the index in the string table, so don't jump around reading
			List<NList> sortedList = nlistList.stream()
					.sorted((o1, o2) -> Integer.compare(o1.getStringTableIndex(),
						o2.getStringTableIndex()))
					.collect(Collectors.toList());

			// initialize the NList strings from string table
			long stringTableOffset = startIndex + stringsOffset;
			for (NList nList : sortedList) {
				monitor.checkCancelled();
				monitor.incrementProgress(1);
				nList.initString(nListReader, stringTableOffset);
			}
		}
		catch (IOException e) {
			log.appendMsg(DyldCacheAccelerateInfo.class.getSimpleName(), "Failed to parse nlist.");
		}
	}
Gets the {@link List} of {@link NList} for the given dylib offset.

@param dylibOffset The offset of dylib in the DYLD Cache
@return The {@link List} of {@link NList} for the given dylib offset
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/macho/dyld/DyldCacheLocalSymbolsInfo.java