@Override
			public boolean evaluateContext(VarnodeContext context, Instruction instr) {
				if (instr.getFlowType().isTerminal()) {
					RegisterValue value = context.getRegisterValue(stackReg);
					if (value != null) {
						BigInteger signedValue = value.getSignedValue();
						if (signedValue != null) {
							purge = signedValue.intValue();
						}
					}
				}
				if (isX86 && instr.getMnemonicString().equals("LEA")) {
					Register destReg = instr.getRegister(0);
					if (destReg != null) {
						Varnode value = context.getRegisterVarnodeValue(destReg);
						if (value != null) {
							checkForStackOffset(context, instr, value.getAddress(), 0);
						}
					}
				}
				return false;
			}
Create locals and parameters based on references involving purely the stack pointer.
Pushes, Pops, and arithmetic manipulation of the stack pointer must be tracked.

@param func - function to analyze stack pointer references
Ghidra/Features/Base/src/main/java/ghidra/app/cmd/function/NewFunctionStackAnalysisCmd.java