-// Return the number of occurences of the given value between buf[start] and buf[stop-1].
-int count_all(uint8_t *buf, int start, int stop, uint8_t value) {
- int occ = 0;
- for(int i = start ; i < stop ; i++) {
- if(buf[i] == value) {
+// Set the elements between buf[start] and buf[stop-1] to (i+value)%256
+static void set(uint8_t *buf, size_t start, size_t stop, uint8_t value) {
+ for(size_t i = start; i < stop; i++) {
+ buf[i] = (i+value)%256;
+ }
+}
+
+// Return the number of times that an element is equal to (i+value)%256 between buf[start] and buf[stop-1].
+static int count_all(uint8_t *buf, size_t start, size_t stop, uint8_t value) {
+ size_t occ = 0;
+ for(size_t i = start ; i < stop ; i++) {
+ if(buf[i] == (i+value)%256) {