code: func makePush(size uint64, pushByteSize int) executionFunc {
  	return func(pc *uint64, interpreter *EVMInterpreter, contract *Contract, memory *Memory, stack *Stack) ([]byte, error) {
  		codeLen := len(contract.Code)
  
  		startMin := codeLen
  		if int(*pc+1) < startMin {
  			startMin = int(*pc + 1)
  		}
  
  		endMin := codeLen
  		if startMin+pushByteSize < endMin {
  			endMin = startMin + pushByteSize
  		}
  
  		integer := interpreter.intPool.get()
  		stack.push(integer.SetBytes(common.RightPadBytes(contract.Code[startMin:endMin], pushByteSize)))
  
  		*pc += size
  		return nil, nil
  	}
  }
docs: // make push instruction function