private void putMemoryValue(HashMap<Address, Varnode> top, Varnode out, Varnode value) {
		// put the value in the top memory value states
		int len = out.getSize();
		Address addr = out.getAddress();
		if (len == 1) {
			top.put(addr, value);
			return;
		}
		// TODO: add a byte array value for Suspect constant bytes too
		if (!value.isConstant()) {
			for (int nodeOff = 0; nodeOff < len; nodeOff++) {
				top.put(addr.addWrapSpace(nodeOff), value);
			}
			return;
		}

		Varnode split[] = splitToBytes(value, out.getSize());
		// copy in partial values after
		for (int nodeOff = 0; nodeOff < len; nodeOff++) {
			if (split == null) {
				top.put(addr.addWrapSpace(nodeOff), BAD_VARNODE);
			}
			else {
				top.put(addr.addWrapSpace(nodeOff), split[nodeOff]);
			}
			// just put in either bad varnode, or partial varnode

			// TODO: if not constant, then is bad value
			//       Could just put a new const varnode for const of right size
			///      would make above easier, putting back together
			//     All const,, full value or vnode+offset, other bad
			//value = new Varnode(value.getAddress(),(nodeOff << 8) | value.getSize());
		}
	}
Put the value for the varnode on the top of the memory state stack

@param out varnode for the value
@param value value to store for the varnode
Ghidra/Features/Base/src/main/java/ghidra/program/util/VarnodeContext.java