@Override
	public boolean parse() throws IOException {
		thunkDataSetList = new ArrayList<ThunkData []>();

		int ptr = getPointer();
		if (ptr < 0) {
			return false;
		}

		List<ThunkData> thunkList = new ArrayList<ThunkData>();

		if (size > NTHeader.MAX_SANE_COUNT * 8) {
			Msg.error(this, "Large ImportAddressTable not parsed, size = "+size);
			return false;
		}
		int tmp = size;

    	while (tmp > 0) {
			ThunkData thunk = new ThunkData(reader, ptr, ntHeader.getOptionalHeader().is64bit());

			if (thunk.getAddressOfData() == 0) {
				ThunkData [] set = new ThunkData[thunkList.size()];
				thunkList.toArray(set);
				thunkList.clear();
				thunkDataSetList.add(set);
			}
			else {
				thunkList.add(thunk);
			}

			ptr += thunk.getStructSize();
			tmp -= thunk.getStructSize();
    	}
    	return true;
    }
Returns the thunk data set at the specified index.
@param index the desired thunk data index
@return the thunk data array at the specified index
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/pe/ImportAddressTableDataDirectory.java