-void blake_large_g(uint8_t r, uint8_t i, uint64_t* v, const uint64_t* m){
- uint8_t a,b,c,d, s0, s1;
- a = pgm_read_byte(blake_index_lut+4*i+0);
- b = pgm_read_byte(blake_index_lut+4*i+1);
- c = pgm_read_byte(blake_index_lut+4*i+2);
- d = pgm_read_byte(blake_index_lut+4*i+3);
- s0 = pgm_read_byte(blake_sigma+16*r+2*i+0);
- s1 = pgm_read_byte(blake_sigma+16*r+2*i+1);
-#if DEBUG
- if(i==0){
- cli_putstr_P(PSTR("\r\n s0 = "));
- cli_hexdump(&s0, 1);
- cli_putstr_P(PSTR(" s1 = "));
- cli_hexdump(&s1, 1);
- cli_putstr_P(PSTR("\r\n m[s0] = "));
- cli_hexdump_rev(m+s0, 4);
- cli_putstr_P(PSTR("\r\n m[s1] = "));
- cli_hexdump_rev(m+s1, 4);
- }
-#endif
- v[a] += v[b] + (m[s0] ^ pgm_read_qword(&(blake_c[s1])));
- v[d] = ROTR64(v[d]^v[a], 32);
- v[c] += v[d];
- v[b] = ROTR64(v[b]^v[c], 25);
- v[a] += v[b] + (m[s1] ^ pgm_read_qword(&(blake_c[s0])));
- v[d] = ROTR64(v[d]^v[a], 16);
- v[c] += v[d];
- v[b] = ROTR64(v[b]^v[c], 11);
-
-}
-