code: func getDataBig(data []byte, start *big.Int, size *big.Int) []byte {
  	dlen := big.NewInt(int64(len(data)))
  
  	s := math.BigMin(start, dlen)
  	e := math.BigMin(new(big.Int).Add(s, size), dlen)
  	return common.RightPadBytes(data[s.Uint64():e.Uint64()], int(size.Uint64()))
  }
docs: // getDataBig returns a slice from the data based on the start and size and pads
  // up to size with zero's. This function is overflow safe.