protected void updateClassFunctionsNotUsingNewClassStructure(RecoveredClass recoveredClass,
			Structure classStructure) throws CancelledException {

		if (classStructure == null) {
			return;
		}

		Namespace classNamespace = recoveredClass.getClassNamespace();

		SymbolIterator symbols = symbolTable.getSymbols(classNamespace);

		FunctionManager functionManager = program.getFunctionManager();

		while (symbols.hasNext()) {
			monitor.checkCancelled();

			Symbol symbol = symbols.next();

			Function function = functionManager.getFunctionAt(symbol.getAddress());

			if (function == null) {
				continue;
			}

			if (function.isThunk()) {
				continue;
			}

			PrototypeModel callingConvention = function.getCallingConvention();
			if (callingConvention == null) {
				Msg.debug(this, "no calling convention for: " + function.getEntryPoint());
				continue;
			}

			if (!callingConvention.hasThisPointer()) {
				continue;
			}

			Parameter[] parameters = function.getParameters();
			if (parameters.length == 0) {
				continue;
			}

			DataType dataType = parameters[0].getDataType();
			if (!(dataType instanceof Pointer pointer)) {
				continue;
			}

			DataType pointedToDt = pointer.getDataType();
			if (!pointedToDt.equals(classStructure)) {
				Pointer classStructurePointer = new PointerDataType(classStructure);
				try {
					List<Variable> newParamList = new ArrayList<>();
					for (Parameter param : parameters) {

						newParamList.add(param);
					}

					FunctionUpdateType updateType = FunctionUpdateType.DYNAMIC_STORAGE_ALL_PARAMS;
					if (function.hasCustomVariableStorage()) {
						updateType = FunctionUpdateType.CUSTOM_STORAGE;
					}

					newParamList.get(0).setDataType(classStructurePointer, SourceType.ANALYSIS);
					function.replaceParameters(newParamList, updateType, false,
						SourceType.ANALYSIS);
				}
				catch (InvalidInputException | DuplicateNameException e) {
					Msg.error(this, "Could not update function at " + function.getEntryPoint() +
						" with new class structure due to exception: " + e.getMessage());
				}

			}

		}
	}
Method to update any class functions that are not already using it to use the given 
class structure
@param recoveredClass the given class
@param classStructure the given class structure
@throws CancelledException if cancelled
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RecoveredClassHelper.java