code: def int_to_words(int_val, num_words=4, word_size=32):
          
          max_int = 2 ** (word_size*num_words) - 1
          max_word_size = 2 ** word_size - 1
  
          if not 0 <= int_val <= max_int:
              raise AttributeError('integer %r is out of bounds!' % hex(int_val))
  
          words = []
          for _ in range(num_words):
              word = int_val & max_word_size
              words.append(int(word))
              int_val >>= word_size
          words.reverse()
  
          return words
docs: Convert a int value to bytes.
  
          :param int_val: an arbitrary length Python integer to be split up.
              Network byte order is assumed. Raises an IndexError if width of
              integer (in bits) exceeds word_size * num_words.
  
          :param num_words: number of words expected in return value tuple.
  
          :param word_size: size/width of individual words (in bits).
  
          :return: a list of fixed width words based on provided parameters.