OpenCoverage

sha512.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/sha512.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10static const unsigned char fillbuf[128] = { 0x80, 0 };-
11-
12-
13-
14-
15-
16-
17-
18void-
19sha512_init_ctx (struct sha512_ctx *ctx)-
20{-
21 ctx->state[0] = ((u64) (((u64) (0x6a09e667) << 32) + (0xf3bcc908)));-
22 ctx->state[1] = ((u64) (((u64) (0xbb67ae85) << 32) + (0x84caa73b)));-
23 ctx->state[2] = ((u64) (((u64) (0x3c6ef372) << 32) + (0xfe94f82b)));-
24 ctx->state[3] = ((u64) (((u64) (0xa54ff53a) << 32) + (0x5f1d36f1)));-
25 ctx->state[4] = ((u64) (((u64) (0x510e527f) << 32) + (0xade682d1)));-
26 ctx->state[5] = ((u64) (((u64) (0x9b05688c) << 32) + (0x2b3e6c1f)));-
27 ctx->state[6] = ((u64) (((u64) (0x1f83d9ab) << 32) + (0xfb41bd6b)));-
28 ctx->state[7] = ((u64) (((u64) (0x5be0cd19) << 32) + (0x137e2179)));-
29-
30 ctx->total[0] = ctx->total[1] = ((u64) (0));-
31 ctx->buflen = 0;-
32}
executed 7 times by 1 test: end of block
Executed by:
  • sha512sum
7
33-
34void-
35sha384_init_ctx (struct sha512_ctx *ctx)-
36{-
37 ctx->state[0] = ((u64) (((u64) (0xcbbb9d5d) << 32) + (0xc1059ed8)));-
38 ctx->state[1] = ((u64) (((u64) (0x629a292a) << 32) + (0x367cd507)));-
39 ctx->state[2] = ((u64) (((u64) (0x9159015a) << 32) + (0x3070dd17)));-
40 ctx->state[3] = ((u64) (((u64) (0x152fecd8) << 32) + (0xf70e5939)));-
41 ctx->state[4] = ((u64) (((u64) (0x67332667) << 32) + (0xffc00b31)));-
42 ctx->state[5] = ((u64) (((u64) (0x8eb44a87) << 32) + (0x68581511)));-
43 ctx->state[6] = ((u64) (((u64) (0xdb0c2e0d) << 32) + (0x64f98fa7)));-
44 ctx->state[7] = ((u64) (((u64) (0x47b5481d) << 32) + (0xbefa4fa4)));-
45-
46 ctx->total[0] = ctx->total[1] = ((u64) (0));-
47 ctx->buflen = 0;-
48}
executed 7 times by 1 test: end of block
Executed by:
  • sha384sum
7
49-
50-
51-
52-
53static void-
54set_uint64 (char *cp, u64 v)-
55{-
56 memcpy (cp, &v, sizeof v);-
57}
executed 126 times by 2 tests: end of block
Executed by:
  • sha384sum
  • sha512sum
126
58-
59-
60-
61void *-
62sha512_read_ctx (const struct sha512_ctx *ctx, void *resbuf)-
63{-
64 int i;-
65 char *r = resbuf;-
66-
67 for (i = 0; i < 8
i < 8Description
TRUEevaluated 56 times by 1 test
Evaluated by:
  • sha512sum
FALSEevaluated 7 times by 1 test
Evaluated by:
  • sha512sum
; i++)
7-56
68 set_uint64 (r + i * sizeof ctx->state[0], ((((((((ctx->state[i]) << (56))) | (((((ctx->state[i]) & (((u64) (0x0000ff00))))) << (40))))) | (((((((ctx->state[i]) & (((u64) (0x00ff0000))))) << (24))) | (((((ctx->state[i]) & (((u64) (0xff000000))))) << (8))))))) | (((((((((ctx->state[i]) >> (8))) & (((u64) (0xff000000))))) | (((((ctx->state[i]) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((ctx->state[i]) >> (40))) & (((u64) (0x0000ff00))))) | (((ctx->state[i]) >> (56)))))))));
executed 56 times by 1 test: set_uint64 (r + i * sizeof ctx->state[0], ((((((((ctx->state[i]) << (56))) | (((((ctx->state[i]) & (((u64) (0x0000ff00))))) << (40))))) | (((((((ctx->state[i]) & (((u64) (0x00ff0000))))) << (24))) | (((((ctx->state[i]) & (((u64) (0xff000000))))) << (8))))))) | (((((((((ctx->state[i]) >> (8))) & (((u64) (0xff000000))))) | (((((ctx->state[i]) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((ctx->state[i]) >> (40))) & (((u64) (0x0000ff00))))) | (((ctx->state[i]) >> (56)))))))));
Executed by:
  • sha512sum
56
69-
70 return
executed 7 times by 1 test: return resbuf;
Executed by:
  • sha512sum
resbuf;
executed 7 times by 1 test: return resbuf;
Executed by:
  • sha512sum
7
71}-
72-
73void *-
74sha384_read_ctx (const struct sha512_ctx *ctx, void *resbuf)-
75{-
76 int i;-
77 char *r = resbuf;-
78-
79 for (i = 0; i < 6
i < 6Description
TRUEevaluated 42 times by 1 test
Evaluated by:
  • sha384sum
FALSEevaluated 7 times by 1 test
Evaluated by:
  • sha384sum
; i++)
7-42
80 set_uint64 (r + i * sizeof ctx->state[0], ((((((((ctx->state[i]) << (56))) | (((((ctx->state[i]) & (((u64) (0x0000ff00))))) << (40))))) | (((((((ctx->state[i]) & (((u64) (0x00ff0000))))) << (24))) | (((((ctx->state[i]) & (((u64) (0xff000000))))) << (8))))))) | (((((((((ctx->state[i]) >> (8))) & (((u64) (0xff000000))))) | (((((ctx->state[i]) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((ctx->state[i]) >> (40))) & (((u64) (0x0000ff00))))) | (((ctx->state[i]) >> (56)))))))));
executed 42 times by 1 test: set_uint64 (r + i * sizeof ctx->state[0], ((((((((ctx->state[i]) << (56))) | (((((ctx->state[i]) & (((u64) (0x0000ff00))))) << (40))))) | (((((((ctx->state[i]) & (((u64) (0x00ff0000))))) << (24))) | (((((ctx->state[i]) & (((u64) (0xff000000))))) << (8))))))) | (((((((((ctx->state[i]) >> (8))) & (((u64) (0xff000000))))) | (((((ctx->state[i]) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((ctx->state[i]) >> (40))) & (((u64) (0x0000ff00))))) | (((ctx->state[i]) >> (56)))))))));
Executed by:
  • sha384sum
42
81-
82 return
executed 7 times by 1 test: return resbuf;
Executed by:
  • sha384sum
resbuf;
executed 7 times by 1 test: return resbuf;
Executed by:
  • sha384sum
7
83}-
84-
85-
86-
87static void-
88sha512_conclude_ctx (struct sha512_ctx *ctx)-
89{-
90-
91 size_t bytes = ctx->buflen;-
92 size_t size = (
(bytes < 112)Description
TRUEevaluated 12 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
FALSEevaluated 2 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
bytes < 112)
(bytes < 112)Description
TRUEevaluated 12 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
FALSEevaluated 2 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
? 128 / 8 : 128 * 2 / 8;
2-12
93-
94-
95 ctx->total[0] = ((ctx->total[0]) + (((u64) (bytes))));-
96 if (((
((ctx->total[0...64) (bytes))))Description
TRUEnever evaluated
FALSEevaluated 14 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
ctx->total[0]) < (((u64) (bytes))))
((ctx->total[0...64) (bytes))))Description
TRUEnever evaluated
FALSEevaluated 14 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
)
0-14
97 ctx->total[1] = ((ctx->total[1]) + (((u64) (1))));
never executed: ctx->total[1] = ((ctx->total[1]) + (((u64) (1))));
0
98-
99-
100-
101-
102 set_uint64 ((char *) &ctx->buffer[size - 2],-
103 ((((((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) << (56))) | (((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) & (((u64) (0x0000ff00))))) << (40))))) | (((((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) & (((u64) (0x00ff0000))))) << (24))) | (((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) & (((u64) (0xff000000))))) << (8))))))) | (((((((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) >> (8))) & (((u64) (0xff000000))))) | (((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) >> (40))) & (((u64) (0x0000ff00))))) | (((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) >> (56))))))))-
104 );-
105 set_uint64 ((char *) &ctx->buffer[size - 1],-
106 ((((((((((ctx->total[0]) << (3))) << (56))) | (((((((ctx->total[0]) << (3))) & (((u64) (0x0000ff00))))) << (40))))) | (((((((((ctx->total[0]) << (3))) & (((u64) (0x00ff0000))))) << (24))) | (((((((ctx->total[0]) << (3))) & (((u64) (0xff000000))))) << (8))))))) | (((((((((((ctx->total[0]) << (3))) >> (8))) & (((u64) (0xff000000))))) | (((((((ctx->total[0]) << (3))) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((((ctx->total[0]) << (3))) >> (40))) & (((u64) (0x0000ff00))))) | (((((ctx->total[0]) << (3))) >> (56)))))))));-
107-
108 memcpy (&((char *) ctx->buffer)[bytes], fillbuf, (size - 2) * 8 - bytes);-
109-
110-
111 sha512_process_block (ctx->buffer, size * 8, ctx);-
112}
executed 14 times by 2 tests: end of block
Executed by:
  • sha384sum
  • sha512sum
14
113-
114void *-
115sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf)-
116{-
117 sha512_conclude_ctx (ctx);-
118 return
executed 7 times by 1 test: return sha512_read_ctx (ctx, resbuf);
Executed by:
  • sha512sum
sha512_read_ctx (ctx, resbuf);
executed 7 times by 1 test: return sha512_read_ctx (ctx, resbuf);
Executed by:
  • sha512sum
7
119}-
120-
121void *-
122sha384_finish_ctx (struct sha512_ctx *ctx, void *resbuf)-
123{-
124 sha512_conclude_ctx (ctx);-
125 return
executed 7 times by 1 test: return sha384_read_ctx (ctx, resbuf);
Executed by:
  • sha384sum
sha384_read_ctx (ctx, resbuf);
executed 7 times by 1 test: return sha384_read_ctx (ctx, resbuf);
Executed by:
  • sha384sum
7
126}-
127-
128-
129-
130-
131-
132int-
133sha512_stream (FILE *stream, void *resblock)-
134{-
135 struct sha512_ctx ctx;-
136 size_t sum;-
137-
138 char *buffer = malloc (32768 + 72);-
139 if (!buffer
!bufferDescription
TRUEnever evaluated
FALSEevaluated 7 times by 1 test
Evaluated by:
  • sha512sum
)
0-7
140 return
never executed: return 1;
1;
never executed: return 1;
0
141-
142-
143 sha512_init_ctx (&ctx);-
144-
145-
146 while (1)-
147 {-
148-
149-
150-
151 size_t n;-
152 sum = 0;-
153-
154-
155 while (1)-
156 {-
157 n = fread_unlocked (buffer + sum,1,32768 - sum,stream);-
158-
159 sum += n;-
160-
161 if (sum == 32768
sum == 32768Description
TRUEevaluated 30 times by 1 test
Evaluated by:
  • sha512sum
FALSEevaluated 7 times by 1 test
Evaluated by:
  • sha512sum
)
7-30
162 break;
executed 30 times by 1 test: break;
Executed by:
  • sha512sum
30
163-
164 if (n == 0
n == 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • sha512sum
FALSEevaluated 6 times by 1 test
Evaluated by:
  • sha512sum
)
1-6
165 {-
166-
167-
168-
169 if (ferror_unlocked (stream)
ferror_unlocked (stream)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • sha512sum
)
0-1
170 {-
171 free (buffer);-
172 return
never executed: return 1;
1;
never executed: return 1;
0
173 }-
174 goto
executed 1 time by 1 test: goto process_partial_block;
Executed by:
  • sha512sum
process_partial_block;
executed 1 time by 1 test: goto process_partial_block;
Executed by:
  • sha512sum
1
175 }-
176-
177-
178-
179-
180 if (feof_unlocked (stream)
feof_unlocked (stream)Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • sha512sum
FALSEnever evaluated
)
0-6
181 goto
executed 6 times by 1 test: goto process_partial_block;
Executed by:
  • sha512sum
process_partial_block;
executed 6 times by 1 test: goto process_partial_block;
Executed by:
  • sha512sum
6
182 }
never executed: end of block
0
183-
184-
185-
186-
187 sha512_process_block (buffer, 32768, &ctx);-
188 }
executed 30 times by 1 test: end of block
Executed by:
  • sha512sum
30
189-
190 process_partial_block:
code before this statement never executed: process_partial_block:
;
0
191-
192-
193 if (sum > 0
sum > 0Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • sha512sum
FALSEevaluated 1 time by 1 test
Evaluated by:
  • sha512sum
)
1-6
194 sha512_process_bytes (buffer, sum, &ctx);
executed 6 times by 1 test: sha512_process_bytes (buffer, sum, &ctx);
Executed by:
  • sha512sum
6
195-
196-
197 sha512_finish_ctx (&ctx, resblock);-
198 free (buffer);-
199 return
executed 7 times by 1 test: return 0;
Executed by:
  • sha512sum
0;
executed 7 times by 1 test: return 0;
Executed by:
  • sha512sum
7
200}-
201-
202-
203int-
204sha384_stream (FILE *stream, void *resblock)-
205{-
206 struct sha512_ctx ctx;-
207 size_t sum;-
208-
209 char *buffer = malloc (32768 + 72);-
210 if (!buffer
!bufferDescription
TRUEnever evaluated
FALSEevaluated 7 times by 1 test
Evaluated by:
  • sha384sum
)
0-7
211 return
never executed: return 1;
1;
never executed: return 1;
0
212-
213-
214 sha384_init_ctx (&ctx);-
215-
216-
217 while (1)-
218 {-
219-
220-
221-
222 size_t n;-
223 sum = 0;-
224-
225-
226 while (1)-
227 {-
228 n = fread_unlocked (buffer + sum,1,32768 - sum,stream);-
229-
230 sum += n;-
231-
232 if (sum == 32768
sum == 32768Description
TRUEevaluated 30 times by 1 test
Evaluated by:
  • sha384sum
FALSEevaluated 7 times by 1 test
Evaluated by:
  • sha384sum
)
7-30
233 break;
executed 30 times by 1 test: break;
Executed by:
  • sha384sum
30
234-
235 if (n == 0
n == 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • sha384sum
FALSEevaluated 6 times by 1 test
Evaluated by:
  • sha384sum
)
1-6
236 {-
237-
238-
239-
240 if (ferror_unlocked (stream)
ferror_unlocked (stream)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • sha384sum
)
0-1
241 {-
242 free (buffer);-
243 return
never executed: return 1;
1;
never executed: return 1;
0
244 }-
245 goto
executed 1 time by 1 test: goto process_partial_block;
Executed by:
  • sha384sum
process_partial_block;
executed 1 time by 1 test: goto process_partial_block;
Executed by:
  • sha384sum
1
246 }-
247-
248-
249-
250-
251 if (feof_unlocked (stream)
feof_unlocked (stream)Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • sha384sum
FALSEnever evaluated
)
0-6
252 goto
executed 6 times by 1 test: goto process_partial_block;
Executed by:
  • sha384sum
process_partial_block;
executed 6 times by 1 test: goto process_partial_block;
Executed by:
  • sha384sum
6
253 }
never executed: end of block
0
254-
255-
256-
257-
258 sha512_process_block (buffer, 32768, &ctx);-
259 }
executed 30 times by 1 test: end of block
Executed by:
  • sha384sum
30
260-
261 process_partial_block:
code before this statement never executed: process_partial_block:
;
0
262-
263-
264 if (sum > 0
sum > 0Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • sha384sum
FALSEevaluated 1 time by 1 test
Evaluated by:
  • sha384sum
)
1-6
265 sha512_process_bytes (buffer, sum, &ctx);
executed 6 times by 1 test: sha512_process_bytes (buffer, sum, &ctx);
Executed by:
  • sha384sum
6
266-
267-
268 sha384_finish_ctx (&ctx, resblock);-
269 free (buffer);-
270 return
executed 7 times by 1 test: return 0;
Executed by:
  • sha384sum
0;
executed 7 times by 1 test: return 0;
Executed by:
  • sha384sum
7
271}-
272-
273-
274-
275-
276-
277-
278void *-
279sha512_buffer (const char *buffer, size_t len, void *resblock)-
280{-
281 struct sha512_ctx ctx;-
282-
283-
284 sha512_init_ctx (&ctx);-
285-
286-
287 sha512_process_bytes (buffer, len, &ctx);-
288-
289-
290 return
never executed: return sha512_finish_ctx (&ctx, resblock);
sha512_finish_ctx (&ctx, resblock);
never executed: return sha512_finish_ctx (&ctx, resblock);
0
291}-
292-
293void *-
294sha384_buffer (const char *buffer, size_t len, void *resblock)-
295{-
296 struct sha512_ctx ctx;-
297-
298-
299 sha384_init_ctx (&ctx);-
300-
301-
302 sha512_process_bytes (buffer, len, &ctx);-
303-
304-
305 return
never executed: return sha384_finish_ctx (&ctx, resblock);
sha384_finish_ctx (&ctx, resblock);
never executed: return sha384_finish_ctx (&ctx, resblock);
0
306}-
307-
308void-
309sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx)-
310{-
311-
312-
313 if (ctx->buflen != 0
ctx->buflen != 0Description
TRUEnever evaluated
FALSEevaluated 12 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
)
0-12
314 {-
315 size_t left_over = ctx->buflen;-
316 size_t add = 256 - left_over > len
256 - left_over > lenDescription
TRUEnever evaluated
FALSEnever evaluated
? len : 256 - left_over;
0
317-
318 memcpy (&((char *) ctx->buffer)[left_over], buffer, add);-
319 ctx->buflen += add;-
320-
321 if (ctx->buflen > 128
ctx->buflen > 128Description
TRUEnever evaluated
FALSEnever evaluated
)
0
322 {-
323 sha512_process_block (ctx->buffer, ctx->buflen & ~127, ctx);-
324-
325 ctx->buflen &= 127;-
326-
327-
328 memcpy (ctx->buffer,-
329 &((char *) ctx->buffer)[(left_over + add) & ~127],-
330 ctx->buflen);-
331 }
never executed: end of block
0
332-
333 buffer = (const char *) buffer + add;-
334 len -= add;-
335 }
never executed: end of block
0
336-
337-
338 if (len >= 128
len >= 128Description
TRUEevaluated 2 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
FALSEevaluated 10 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
)
2-10
339 {-
340 {-
341 sha512_process_block (buffer, len & ~127, ctx);-
342 buffer = (const char *) buffer + (len & ~127);-
343 len &= 127;-
344 }-
345 }
executed 2 times by 2 tests: end of block
Executed by:
  • sha384sum
  • sha512sum
2
346-
347-
348 if (len > 0
len > 0Description
TRUEevaluated 12 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
FALSEnever evaluated
)
0-12
349 {-
350 size_t left_over = ctx->buflen;-
351-
352 memcpy (&((char *) ctx->buffer)[left_over], buffer, len);-
353 left_over += len;-
354 if (left_over >= 128
left_over >= 128Description
TRUEnever evaluated
FALSEevaluated 12 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
)
0-12
355 {-
356 sha512_process_block (ctx->buffer, 128, ctx);-
357 left_over -= 128;-
358-
359-
360 memcpy (ctx->buffer, &ctx->buffer[16], left_over);-
361 }
never executed: end of block
0
362 ctx->buflen = left_over;-
363 }
executed 12 times by 2 tests: end of block
Executed by:
  • sha384sum
  • sha512sum
12
364}
executed 12 times by 2 tests: end of block
Executed by:
  • sha384sum
  • sha512sum
12
365-
366-
367-
368-
369-
370static u64 const sha512_round_constants[80] = {-
371 ((u64) (((u64) (0x428a2f98) << 32) + (0xd728ae22))), ((u64) (((u64) (0x71374491) << 32) + (0x23ef65cd))),-
372 ((u64) (((u64) (0xb5c0fbcf) << 32) + (0xec4d3b2f))), ((u64) (((u64) (0xe9b5dba5) << 32) + (0x8189dbbc))),-
373 ((u64) (((u64) (0x3956c25b) << 32) + (0xf348b538))), ((u64) (((u64) (0x59f111f1) << 32) + (0xb605d019))),-
374 ((u64) (((u64) (0x923f82a4) << 32) + (0xaf194f9b))), ((u64) (((u64) (0xab1c5ed5) << 32) + (0xda6d8118))),-
375 ((u64) (((u64) (0xd807aa98) << 32) + (0xa3030242))), ((u64) (((u64) (0x12835b01) << 32) + (0x45706fbe))),-
376 ((u64) (((u64) (0x243185be) << 32) + (0x4ee4b28c))), ((u64) (((u64) (0x550c7dc3) << 32) + (0xd5ffb4e2))),-
377 ((u64) (((u64) (0x72be5d74) << 32) + (0xf27b896f))), ((u64) (((u64) (0x80deb1fe) << 32) + (0x3b1696b1))),-
378 ((u64) (((u64) (0x9bdc06a7) << 32) + (0x25c71235))), ((u64) (((u64) (0xc19bf174) << 32) + (0xcf692694))),-
379 ((u64) (((u64) (0xe49b69c1) << 32) + (0x9ef14ad2))), ((u64) (((u64) (0xefbe4786) << 32) + (0x384f25e3))),-
380 ((u64) (((u64) (0x0fc19dc6) << 32) + (0x8b8cd5b5))), ((u64) (((u64) (0x240ca1cc) << 32) + (0x77ac9c65))),-
381 ((u64) (((u64) (0x2de92c6f) << 32) + (0x592b0275))), ((u64) (((u64) (0x4a7484aa) << 32) + (0x6ea6e483))),-
382 ((u64) (((u64) (0x5cb0a9dc) << 32) + (0xbd41fbd4))), ((u64) (((u64) (0x76f988da) << 32) + (0x831153b5))),-
383 ((u64) (((u64) (0x983e5152) << 32) + (0xee66dfab))), ((u64) (((u64) (0xa831c66d) << 32) + (0x2db43210))),-
384 ((u64) (((u64) (0xb00327c8) << 32) + (0x98fb213f))), ((u64) (((u64) (0xbf597fc7) << 32) + (0xbeef0ee4))),-
385 ((u64) (((u64) (0xc6e00bf3) << 32) + (0x3da88fc2))), ((u64) (((u64) (0xd5a79147) << 32) + (0x930aa725))),-
386 ((u64) (((u64) (0x06ca6351) << 32) + (0xe003826f))), ((u64) (((u64) (0x14292967) << 32) + (0x0a0e6e70))),-
387 ((u64) (((u64) (0x27b70a85) << 32) + (0x46d22ffc))), ((u64) (((u64) (0x2e1b2138) << 32) + (0x5c26c926))),-
388 ((u64) (((u64) (0x4d2c6dfc) << 32) + (0x5ac42aed))), ((u64) (((u64) (0x53380d13) << 32) + (0x9d95b3df))),-
389 ((u64) (((u64) (0x650a7354) << 32) + (0x8baf63de))), ((u64) (((u64) (0x766a0abb) << 32) + (0x3c77b2a8))),-
390 ((u64) (((u64) (0x81c2c92e) << 32) + (0x47edaee6))), ((u64) (((u64) (0x92722c85) << 32) + (0x1482353b))),-
391 ((u64) (((u64) (0xa2bfe8a1) << 32) + (0x4cf10364))), ((u64) (((u64) (0xa81a664b) << 32) + (0xbc423001))),-
392 ((u64) (((u64) (0xc24b8b70) << 32) + (0xd0f89791))), ((u64) (((u64) (0xc76c51a3) << 32) + (0x0654be30))),-
393 ((u64) (((u64) (0xd192e819) << 32) + (0xd6ef5218))), ((u64) (((u64) (0xd6990624) << 32) + (0x5565a910))),-
394 ((u64) (((u64) (0xf40e3585) << 32) + (0x5771202a))), ((u64) (((u64) (0x106aa070) << 32) + (0x32bbd1b8))),-
395 ((u64) (((u64) (0x19a4c116) << 32) + (0xb8d2d0c8))), ((u64) (((u64) (0x1e376c08) << 32) + (0x5141ab53))),-
396 ((u64) (((u64) (0x2748774c) << 32) + (0xdf8eeb99))), ((u64) (((u64) (0x34b0bcb5) << 32) + (0xe19b48a8))),-
397 ((u64) (((u64) (0x391c0cb3) << 32) + (0xc5c95a63))), ((u64) (((u64) (0x4ed8aa4a) << 32) + (0xe3418acb))),-
398 ((u64) (((u64) (0x5b9cca4f) << 32) + (0x7763e373))), ((u64) (((u64) (0x682e6ff3) << 32) + (0xd6b2b8a3))),-
399 ((u64) (((u64) (0x748f82ee) << 32) + (0x5defb2fc))), ((u64) (((u64) (0x78a5636f) << 32) + (0x43172f60))),-
400 ((u64) (((u64) (0x84c87814) << 32) + (0xa1f0ab72))), ((u64) (((u64) (0x8cc70208) << 32) + (0x1a6439ec))),-
401 ((u64) (((u64) (0x90befffa) << 32) + (0x23631e28))), ((u64) (((u64) (0xa4506ceb) << 32) + (0xde82bde9))),-
402 ((u64) (((u64) (0xbef9a3f7) << 32) + (0xb2c67915))), ((u64) (((u64) (0xc67178f2) << 32) + (0xe372532b))),-
403 ((u64) (((u64) (0xca273ece) << 32) + (0xea26619c))), ((u64) (((u64) (0xd186b8c7) << 32) + (0x21c0c207))),-
404 ((u64) (((u64) (0xeada7dd6) << 32) + (0xcde0eb1e))), ((u64) (((u64) (0xf57d4f7f) << 32) + (0xee6ed178))),-
405 ((u64) (((u64) (0x06f067aa) << 32) + (0x72176fba))), ((u64) (((u64) (0x0a637dc5) << 32) + (0xa2c898a6))),-
406 ((u64) (((u64) (0x113f9804) << 32) + (0xbef90dae))), ((u64) (((u64) (0x1b710b35) << 32) + (0x131c471b))),-
407 ((u64) (((u64) (0x28db77f5) << 32) + (0x23047d84))), ((u64) (((u64) (0x32caab7b) << 32) + (0x40c72493))),-
408 ((u64) (((u64) (0x3c9ebe0a) << 32) + (0x15c9bebc))), ((u64) (((u64) (0x431d67c4) << 32) + (0x9c100d4c))),-
409 ((u64) (((u64) (0x4cc5d4be) << 32) + (0xcb3e42b6))), ((u64) (((u64) (0x597f299c) << 32) + (0xfc657e2a))),-
410 ((u64) (((u64) (0x5fcb6fab) << 32) + (0x3ad6faec))), ((u64) (((u64) (0x6c44198c) << 32) + (0x4a475817))),-
411};-
412void-
413sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx)-
414{-
415 u64 const *words = buffer;-
416 u64 const *endp = words + len / sizeof (u64);-
417 u64 x[16];-
418 u64 a = ctx->state[0];-
419 u64 b = ctx->state[1];-
420 u64 c = ctx->state[2];-
421 u64 d = ctx->state[3];-
422 u64 e = ctx->state[4];-
423 u64 f = ctx->state[5];-
424 u64 g = ctx->state[6];-
425 u64 h = ctx->state[7];-
426 u64 lolen = ((u64) (len));-
427-
428-
429-
430-
431 ctx->total[0] = ((ctx->total[0]) + (lolen));-
432 ctx->total[1] = ((ctx->total[1]) + (((((u64) (len >> 31 >> 31 >> 2))) + (((u64) (((ctx->total[0]) < (lolen))))))))-
433-
434 ;-
435 while (words < endp
words < endpDescription
TRUEevaluated 15640 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
FALSEevaluated 76 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
)
76-15640
436 {-
437 int t;-
438-
439 for (t = 0; t < 16
t < 16Description
TRUEevaluated 250240 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
FALSEevaluated 15640 times by 2 tests
Evaluated by:
  • sha384sum
  • sha512sum
; t++)
15640-250240
440 {-
441 x[t] = ((((((((*words) << (56))) | (((((*words) & (((u64) (0x0000ff00))))) << (40))))) | (((((((*words) & (((u64) (0x00ff0000))))) << (24))) | (((((*words) & (((u64) (0xff000000))))) << (8))))))) | (((((((((*words) >> (8))) & (((u64) (0xff000000))))) | (((((*words) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((*words) >> (40))) & (((u64) (0x0000ff00))))) | (((*words) >> (56))))))));-
442 words++;-
443 }
executed 250240 times by 2 tests: end of block
Executed by:
  • sha384sum
  • sha512sum
250240
444-
445 do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[0]) + (x[ 0])))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0);-
446 do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[1]) + (x[ 1])))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0);-
447 do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[2]) + (x[ 2])))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0);-
448 do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[3]) + (x[ 3])))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0);-
449 do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[4]) + (x[ 4])))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0);-
450 do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[5]) + (x[ 5])))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0);-
451 do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[6]) + (x[ 6])))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0);-
452 do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[7]) + (x[ 7])))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0);-
453 do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[8]) + (x[ 8])))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0);-
454 do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[9]) + (x[ 9])))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0);-
455 do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[10]) + (x[10])))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0);-
456 do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[11]) + (x[11])))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0);-
457 do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[12]) + (x[12])))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0);-
458 do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[13]) + (x[13])))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0);-
459 do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[14]) + (x[14])))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0);-
460 do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[15]) + (x[15])))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0);-
461 do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[16]) + ((x[(16) & 15] = ((x[(16) & 15]) + (((((((((x[((16) - 2) & 15]) << (45))) | (((x[((16) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((16) - 2) & 15]) << (3))) | (((x[((16) - 2) & 15]) >> (64 - 3))))) ^ (((x[((16) - 2) & 15]) >> (6))))))) + (((x[((16) - 7) & 15]) + (((((((x[((16) - 15) & 15]) << (63))) | (((x[((16) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((16) - 15) & 15]) << (56))) | (((x[((16) - 15) & 15]) >> (64 - 56))))) ^ (((x[((16) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0);-
462 do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[17]) + ((x[(17) & 15] = ((x[(17) & 15]) + (((((((((x[((17) - 2) & 15]) << (45))) | (((x[((17) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((17) - 2) & 15]) << (3))) | (((x[((17) - 2) & 15]) >> (64 - 3))))) ^ (((x[((17) - 2) & 15]) >> (6))))))) + (((x[((17) - 7) & 15]) + (((((((x[((17) - 15) & 15]) << (63))) | (((x[((17) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((17) - 15) & 15]) << (56))) | (((x[((17) - 15) & 15]) >> (64 - 56))))) ^ (((x[((17) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0);-
463 do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[18]) + ((x[(18) & 15] = ((x[(18) & 15]) + (((((((((x[((18) - 2) & 15]) << (45))) | (((x[((18) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((18) - 2) & 15]) << (3))) | (((x[((18) - 2) & 15]) >> (64 - 3))))) ^ (((x[((18) - 2) & 15]) >> (6))))))) + (((x[((18) - 7) & 15]) + (((((((x[((18) - 15) & 15]) << (63))) | (((x[((18) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((18) - 15) & 15]) << (56))) | (((x[((18) - 15) & 15]) >> (64 - 56))))) ^ (((x[((18) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0);-
464 do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[19]) + ((x[(19) & 15] = ((x[(19) & 15]) + (((((((((x[((19) - 2) & 15]) << (45))) | (((x[((19) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((19) - 2) & 15]) << (3))) | (((x[((19) - 2) & 15]) >> (64 - 3))))) ^ (((x[((19) - 2) & 15]) >> (6))))))) + (((x[((19) - 7) & 15]) + (((((((x[((19) - 15) & 15]) << (63))) | (((x[((19) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((19) - 15) & 15]) << (56))) | (((x[((19) - 15) & 15]) >> (64 - 56))))) ^ (((x[((19) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0);-
465 do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[20]) + ((x[(20) & 15] = ((x[(20) & 15]) + (((((((((x[((20) - 2) & 15]) << (45))) | (((x[((20) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((20) - 2) & 15]) << (3))) | (((x[((20) - 2) & 15]) >> (64 - 3))))) ^ (((x[((20) - 2) & 15]) >> (6))))))) + (((x[((20) - 7) & 15]) + (((((((x[((20) - 15) & 15]) << (63))) | (((x[((20) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((20) - 15) & 15]) << (56))) | (((x[((20) - 15) & 15]) >> (64 - 56))))) ^ (((x[((20) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0);-
466 do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[21]) + ((x[(21) & 15] = ((x[(21) & 15]) + (((((((((x[((21) - 2) & 15]) << (45))) | (((x[((21) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((21) - 2) & 15]) << (3))) | (((x[((21) - 2) & 15]) >> (64 - 3))))) ^ (((x[((21) - 2) & 15]) >> (6))))))) + (((x[((21) - 7) & 15]) + (((((((x[((21) - 15) & 15]) << (63))) | (((x[((21) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((21) - 15) & 15]) << (56))) | (((x[((21) - 15) & 15]) >> (64 - 56))))) ^ (((x[((21) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0);-
467 do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[22]) + ((x[(22) & 15] = ((x[(22) & 15]) + (((((((((x[((22) - 2) & 15]) << (45))) | (((x[((22) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((22) - 2) & 15]) << (3))) | (((x[((22) - 2) & 15]) >> (64 - 3))))) ^ (((x[((22) - 2) & 15]) >> (6))))))) + (((x[((22) - 7) & 15]) + (((((((x[((22) - 15) & 15]) << (63))) | (((x[((22) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((22) - 15) & 15]) << (56))) | (((x[((22) - 15) & 15]) >> (64 - 56))))) ^ (((x[((22) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0);-
468 do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[23]) + ((x[(23) & 15] = ((x[(23) & 15]) + (((((((((x[((23) - 2) & 15]) << (45))) | (((x[((23) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((23) - 2) & 15]) << (3))) | (((x[((23) - 2) & 15]) >> (64 - 3))))) ^ (((x[((23) - 2) & 15]) >> (6))))))) + (((x[((23) - 7) & 15]) + (((((((x[((23) - 15) & 15]) << (63))) | (((x[((23) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((23) - 15) & 15]) << (56))) | (((x[((23) - 15) & 15]) >> (64 - 56))))) ^ (((x[((23) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0);-
469 do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[24]) + ((x[(24) & 15] = ((x[(24) & 15]) + (((((((((x[((24) - 2) & 15]) << (45))) | (((x[((24) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((24) - 2) & 15]) << (3))) | (((x[((24) - 2) & 15]) >> (64 - 3))))) ^ (((x[((24) - 2) & 15]) >> (6))))))) + (((x[((24) - 7) & 15]) + (((((((x[((24) - 15) & 15]) << (63))) | (((x[((24) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((24) - 15) & 15]) << (56))) | (((x[((24) - 15) & 15]) >> (64 - 56))))) ^ (((x[((24) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0);-
470 do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[25]) + ((x[(25) & 15] = ((x[(25) & 15]) + (((((((((x[((25) - 2) & 15]) << (45))) | (((x[((25) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((25) - 2) & 15]) << (3))) | (((x[((25) - 2) & 15]) >> (64 - 3))))) ^ (((x[((25) - 2) & 15]) >> (6))))))) + (((x[((25) - 7) & 15]) + (((((((x[((25) - 15) & 15]) << (63))) | (((x[((25) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((25) - 15) & 15]) << (56))) | (((x[((25) - 15) & 15]) >> (64 - 56))))) ^ (((x[((25) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0);-
471 do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[26]) + ((x[(26) & 15] = ((x[(26) & 15]) + (((((((((x[((26) - 2) & 15]) << (45))) | (((x[((26) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((26) - 2) & 15]) << (3))) | (((x[((26) - 2) & 15]) >> (64 - 3))))) ^ (((x[((26) - 2) & 15]) >> (6))))))) + (((x[((26) - 7) & 15]) + (((((((x[((26) - 15) & 15]) << (63))) | (((x[((26) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((26) - 15) & 15]) << (56))) | (((x[((26) - 15) & 15]) >> (64 - 56))))) ^ (((x[((26) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0);-
472 do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[27]) + ((x[(27) & 15] = ((x[(27) & 15]) + (((((((((x[((27) - 2) & 15]) << (45))) | (((x[((27) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((27) - 2) & 15]) << (3))) | (((x[((27) - 2) & 15]) >> (64 - 3))))) ^ (((x[((27) - 2) & 15]) >> (6))))))) + (((x[((27) - 7) & 15]) + (((((((x[((27) - 15) & 15]) << (63))) | (((x[((27) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((27) - 15) & 15]) << (56))) | (((x[((27) - 15) & 15]) >> (64 - 56))))) ^ (((x[((27) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0);-
473 do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[28]) + ((x[(28) & 15] = ((x[(28) & 15]) + (((((((((x[((28) - 2) & 15]) << (45))) | (((x[((28) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((28) - 2) & 15]) << (3))) | (((x[((28) - 2) & 15]) >> (64 - 3))))) ^ (((x[((28) - 2) & 15]) >> (6))))))) + (((x[((28) - 7) & 15]) + (((((((x[((28) - 15) & 15]) << (63))) | (((x[((28) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((28) - 15) & 15]) << (56))) | (((x[((28) - 15) & 15]) >> (64 - 56))))) ^ (((x[((28) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0);-
474 do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[29]) + ((x[(29) & 15] = ((x[(29) & 15]) + (((((((((x[((29) - 2) & 15]) << (45))) | (((x[((29) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((29) - 2) & 15]) << (3))) | (((x[((29) - 2) & 15]) >> (64 - 3))))) ^ (((x[((29) - 2) & 15]) >> (6))))))) + (((x[((29) - 7) & 15]) + (((((((x[((29) - 15) & 15]) << (63))) | (((x[((29) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((29) - 15) & 15]) << (56))) | (((x[((29) - 15) & 15]) >> (64 - 56))))) ^ (((x[((29) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0);-
475 do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[30]) + ((x[(30) & 15] = ((x[(30) & 15]) + (((((((((x[((30) - 2) & 15]) << (45))) | (((x[((30) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((30) - 2) & 15]) << (3))) | (((x[((30) - 2) & 15]) >> (64 - 3))))) ^ (((x[((30) - 2) & 15]) >> (6))))))) + (((x[((30) - 7) & 15]) + (((((((x[((30) - 15) & 15]) << (63))) | (((x[((30) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((30) - 15) & 15]) << (56))) | (((x[((30) - 15) & 15]) >> (64 - 56))))) ^ (((x[((30) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0);-
476 do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[31]) + ((x[(31) & 15] = ((x[(31) & 15]) + (((((((((x[((31) - 2) & 15]) << (45))) | (((x[((31) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((31) - 2) & 15]) << (3))) | (((x[((31) - 2) & 15]) >> (64 - 3))))) ^ (((x[((31) - 2) & 15]) >> (6))))))) + (((x[((31) - 7) & 15]) + (((((((x[((31) - 15) & 15]) << (63))) | (((x[((31) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((31) - 15) & 15]) << (56))) | (((x[((31) - 15) & 15]) >> (64 - 56))))) ^ (((x[((31) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0);-
477 do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[32]) + ((x[(32) & 15] = ((x[(32) & 15]) + (((((((((x[((32) - 2) & 15]) << (45))) | (((x[((32) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((32) - 2) & 15]) << (3))) | (((x[((32) - 2) & 15]) >> (64 - 3))))) ^ (((x[((32) - 2) & 15]) >> (6))))))) + (((x[((32) - 7) & 15]) + (((((((x[((32) - 15) & 15]) << (63))) | (((x[((32) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((32) - 15) & 15]) << (56))) | (((x[((32) - 15) & 15]) >> (64 - 56))))) ^ (((x[((32) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0);-
478 do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[33]) + ((x[(33) & 15] = ((x[(33) & 15]) + (((((((((x[((33) - 2) & 15]) << (45))) | (((x[((33) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((33) - 2) & 15]) << (3))) | (((x[((33) - 2) & 15]) >> (64 - 3))))) ^ (((x[((33) - 2) & 15]) >> (6))))))) + (((x[((33) - 7) & 15]) + (((((((x[((33) - 15) & 15]) << (63))) | (((x[((33) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((33) - 15) & 15]) << (56))) | (((x[((33) - 15) & 15]) >> (64 - 56))))) ^ (((x[((33) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0);-
479 do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[34]) + ((x[(34) & 15] = ((x[(34) & 15]) + (((((((((x[((34) - 2) & 15]) << (45))) | (((x[((34) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((34) - 2) & 15]) << (3))) | (((x[((34) - 2) & 15]) >> (64 - 3))))) ^ (((x[((34) - 2) & 15]) >> (6))))))) + (((x[((34) - 7) & 15]) + (((((((x[((34) - 15) & 15]) << (63))) | (((x[((34) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((34) - 15) & 15]) << (56))) | (((x[((34) - 15) & 15]) >> (64 - 56))))) ^ (((x[((34) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0);-
480 do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[35]) + ((x[(35) & 15] = ((x[(35) & 15]) + (((((((((x[((35) - 2) & 15]) << (45))) | (((x[((35) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((35) - 2) & 15]) << (3))) | (((x[((35) - 2) & 15]) >> (64 - 3))))) ^ (((x[((35) - 2) & 15]) >> (6))))))) + (((x[((35) - 7) & 15]) + (((((((x[((35) - 15) & 15]) << (63))) | (((x[((35) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((35) - 15) & 15]) << (56))) | (((x[((35) - 15) & 15]) >> (64 - 56))))) ^ (((x[((35) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0);-
481 do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[36]) + ((x[(36) & 15] = ((x[(36) & 15]) + (((((((((x[((36) - 2) & 15]) << (45))) | (((x[((36) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((36) - 2) & 15]) << (3))) | (((x[((36) - 2) & 15]) >> (64 - 3))))) ^ (((x[((36) - 2) & 15]) >> (6))))))) + (((x[((36) - 7) & 15]) + (((((((x[((36) - 15) & 15]) << (63))) | (((x[((36) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((36) - 15) & 15]) << (56))) | (((x[((36) - 15) & 15]) >> (64 - 56))))) ^ (((x[((36) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0);-
482 do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[37]) + ((x[(37) & 15] = ((x[(37) & 15]) + (((((((((x[((37) - 2) & 15]) << (45))) | (((x[((37) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((37) - 2) & 15]) << (3))) | (((x[((37) - 2) & 15]) >> (64 - 3))))) ^ (((x[((37) - 2) & 15]) >> (6))))))) + (((x[((37) - 7) & 15]) + (((((((x[((37) - 15) & 15]) << (63))) | (((x[((37) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((37) - 15) & 15]) << (56))) | (((x[((37) - 15) & 15]) >> (64 - 56))))) ^ (((x[((37) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0);-
483 do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[38]) + ((x[(38) & 15] = ((x[(38) & 15]) + (((((((((x[((38) - 2) & 15]) << (45))) | (((x[((38) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((38) - 2) & 15]) << (3))) | (((x[((38) - 2) & 15]) >> (64 - 3))))) ^ (((x[((38) - 2) & 15]) >> (6))))))) + (((x[((38) - 7) & 15]) + (((((((x[((38) - 15) & 15]) << (63))) | (((x[((38) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((38) - 15) & 15]) << (56))) | (((x[((38) - 15) & 15]) >> (64 - 56))))) ^ (((x[((38) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0);-
484 do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[39]) + ((x[(39) & 15] = ((x[(39) & 15]) + (((((((((x[((39) - 2) & 15]) << (45))) | (((x[((39) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((39) - 2) & 15]) << (3))) | (((x[((39) - 2) & 15]) >> (64 - 3))))) ^ (((x[((39) - 2) & 15]) >> (6))))))) + (((x[((39) - 7) & 15]) + (((((((x[((39) - 15) & 15]) << (63))) | (((x[((39) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((39) - 15) & 15]) << (56))) | (((x[((39) - 15) & 15]) >> (64 - 56))))) ^ (((x[((39) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0);-
485 do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[40]) + ((x[(40) & 15] = ((x[(40) & 15]) + (((((((((x[((40) - 2) & 15]) << (45))) | (((x[((40) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((40) - 2) & 15]) << (3))) | (((x[((40) - 2) & 15]) >> (64 - 3))))) ^ (((x[((40) - 2) & 15]) >> (6))))))) + (((x[((40) - 7) & 15]) + (((((((x[((40) - 15) & 15]) << (63))) | (((x[((40) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((40) - 15) & 15]) << (56))) | (((x[((40) - 15) & 15]) >> (64 - 56))))) ^ (((x[((40) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0);-
486 do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[41]) + ((x[(41) & 15] = ((x[(41) & 15]) + (((((((((x[((41) - 2) & 15]) << (45))) | (((x[((41) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((41) - 2) & 15]) << (3))) | (((x[((41) - 2) & 15]) >> (64 - 3))))) ^ (((x[((41) - 2) & 15]) >> (6))))))) + (((x[((41) - 7) & 15]) + (((((((x[((41) - 15) & 15]) << (63))) | (((x[((41) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((41) - 15) & 15]) << (56))) | (((x[((41) - 15) & 15]) >> (64 - 56))))) ^ (((x[((41) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0);-
487 do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[42]) + ((x[(42) & 15] = ((x[(42) & 15]) + (((((((((x[((42) - 2) & 15]) << (45))) | (((x[((42) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((42) - 2) & 15]) << (3))) | (((x[((42) - 2) & 15]) >> (64 - 3))))) ^ (((x[((42) - 2) & 15]) >> (6))))))) + (((x[((42) - 7) & 15]) + (((((((x[((42) - 15) & 15]) << (63))) | (((x[((42) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((42) - 15) & 15]) << (56))) | (((x[((42) - 15) & 15]) >> (64 - 56))))) ^ (((x[((42) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0);-
488 do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[43]) + ((x[(43) & 15] = ((x[(43) & 15]) + (((((((((x[((43) - 2) & 15]) << (45))) | (((x[((43) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((43) - 2) & 15]) << (3))) | (((x[((43) - 2) & 15]) >> (64 - 3))))) ^ (((x[((43) - 2) & 15]) >> (6))))))) + (((x[((43) - 7) & 15]) + (((((((x[((43) - 15) & 15]) << (63))) | (((x[((43) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((43) - 15) & 15]) << (56))) | (((x[((43) - 15) & 15]) >> (64 - 56))))) ^ (((x[((43) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0);-
489 do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[44]) + ((x[(44) & 15] = ((x[(44) & 15]) + (((((((((x[((44) - 2) & 15]) << (45))) | (((x[((44) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((44) - 2) & 15]) << (3))) | (((x[((44) - 2) & 15]) >> (64 - 3))))) ^ (((x[((44) - 2) & 15]) >> (6))))))) + (((x[((44) - 7) & 15]) + (((((((x[((44) - 15) & 15]) << (63))) | (((x[((44) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((44) - 15) & 15]) << (56))) | (((x[((44) - 15) & 15]) >> (64 - 56))))) ^ (((x[((44) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0);-
490 do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[45]) + ((x[(45) & 15] = ((x[(45) & 15]) + (((((((((x[((45) - 2) & 15]) << (45))) | (((x[((45) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((45) - 2) & 15]) << (3))) | (((x[((45) - 2) & 15]) >> (64 - 3))))) ^ (((x[((45) - 2) & 15]) >> (6))))))) + (((x[((45) - 7) & 15]) + (((((((x[((45) - 15) & 15]) << (63))) | (((x[((45) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((45) - 15) & 15]) << (56))) | (((x[((45) - 15) & 15]) >> (64 - 56))))) ^ (((x[((45) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0);-
491 do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[46]) + ((x[(46) & 15] = ((x[(46) & 15]) + (((((((((x[((46) - 2) & 15]) << (45))) | (((x[((46) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((46) - 2) & 15]) << (3))) | (((x[((46) - 2) & 15]) >> (64 - 3))))) ^ (((x[((46) - 2) & 15]) >> (6))))))) + (((x[((46) - 7) & 15]) + (((((((x[((46) - 15) & 15]) << (63))) | (((x[((46) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((46) - 15) & 15]) << (56))) | (((x[((46) - 15) & 15]) >> (64 - 56))))) ^ (((x[((46) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0);-
492 do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[47]) + ((x[(47) & 15] = ((x[(47) & 15]) + (((((((((x[((47) - 2) & 15]) << (45))) | (((x[((47) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((47) - 2) & 15]) << (3))) | (((x[((47) - 2) & 15]) >> (64 - 3))))) ^ (((x[((47) - 2) & 15]) >> (6))))))) + (((x[((47) - 7) & 15]) + (((((((x[((47) - 15) & 15]) << (63))) | (((x[((47) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((47) - 15) & 15]) << (56))) | (((x[((47) - 15) & 15]) >> (64 - 56))))) ^ (((x[((47) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0);-
493 do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[48]) + ((x[(48) & 15] = ((x[(48) & 15]) + (((((((((x[((48) - 2) & 15]) << (45))) | (((x[((48) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((48) - 2) & 15]) << (3))) | (((x[((48) - 2) & 15]) >> (64 - 3))))) ^ (((x[((48) - 2) & 15]) >> (6))))))) + (((x[((48) - 7) & 15]) + (((((((x[((48) - 15) & 15]) << (63))) | (((x[((48) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((48) - 15) & 15]) << (56))) | (((x[((48) - 15) & 15]) >> (64 - 56))))) ^ (((x[((48) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0);-
494 do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[49]) + ((x[(49) & 15] = ((x[(49) & 15]) + (((((((((x[((49) - 2) & 15]) << (45))) | (((x[((49) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((49) - 2) & 15]) << (3))) | (((x[((49) - 2) & 15]) >> (64 - 3))))) ^ (((x[((49) - 2) & 15]) >> (6))))))) + (((x[((49) - 7) & 15]) + (((((((x[((49) - 15) & 15]) << (63))) | (((x[((49) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((49) - 15) & 15]) << (56))) | (((x[((49) - 15) & 15]) >> (64 - 56))))) ^ (((x[((49) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0);-
495 do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[50]) + ((x[(50) & 15] = ((x[(50) & 15]) + (((((((((x[((50) - 2) & 15]) << (45))) | (((x[((50) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((50) - 2) & 15]) << (3))) | (((x[((50) - 2) & 15]) >> (64 - 3))))) ^ (((x[((50) - 2) & 15]) >> (6))))))) + (((x[((50) - 7) & 15]) + (((((((x[((50) - 15) & 15]) << (63))) | (((x[((50) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((50) - 15) & 15]) << (56))) | (((x[((50) - 15) & 15]) >> (64 - 56))))) ^ (((x[((50) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0);-
496 do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[51]) + ((x[(51) & 15] = ((x[(51) & 15]) + (((((((((x[((51) - 2) & 15]) << (45))) | (((x[((51) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((51) - 2) & 15]) << (3))) | (((x[((51) - 2) & 15]) >> (64 - 3))))) ^ (((x[((51) - 2) & 15]) >> (6))))))) + (((x[((51) - 7) & 15]) + (((((((x[((51) - 15) & 15]) << (63))) | (((x[((51) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((51) - 15) & 15]) << (56))) | (((x[((51) - 15) & 15]) >> (64 - 56))))) ^ (((x[((51) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0);-
497 do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[52]) + ((x[(52) & 15] = ((x[(52) & 15]) + (((((((((x[((52) - 2) & 15]) << (45))) | (((x[((52) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((52) - 2) & 15]) << (3))) | (((x[((52) - 2) & 15]) >> (64 - 3))))) ^ (((x[((52) - 2) & 15]) >> (6))))))) + (((x[((52) - 7) & 15]) + (((((((x[((52) - 15) & 15]) << (63))) | (((x[((52) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((52) - 15) & 15]) << (56))) | (((x[((52) - 15) & 15]) >> (64 - 56))))) ^ (((x[((52) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0);-
498 do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[53]) + ((x[(53) & 15] = ((x[(53) & 15]) + (((((((((x[((53) - 2) & 15]) << (45))) | (((x[((53) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((53) - 2) & 15]) << (3))) | (((x[((53) - 2) & 15]) >> (64 - 3))))) ^ (((x[((53) - 2) & 15]) >> (6))))))) + (((x[((53) - 7) & 15]) + (((((((x[((53) - 15) & 15]) << (63))) | (((x[((53) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((53) - 15) & 15]) << (56))) | (((x[((53) - 15) & 15]) >> (64 - 56))))) ^ (((x[((53) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0);-
499 do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[54]) + ((x[(54) & 15] = ((x[(54) & 15]) + (((((((((x[((54) - 2) & 15]) << (45))) | (((x[((54) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((54) - 2) & 15]) << (3))) | (((x[((54) - 2) & 15]) >> (64 - 3))))) ^ (((x[((54) - 2) & 15]) >> (6))))))) + (((x[((54) - 7) & 15]) + (((((((x[((54) - 15) & 15]) << (63))) | (((x[((54) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((54) - 15) & 15]) << (56))) | (((x[((54) - 15) & 15]) >> (64 - 56))))) ^ (((x[((54) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0);-
500 do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[55]) + ((x[(55) & 15] = ((x[(55) & 15]) + (((((((((x[((55) - 2) & 15]) << (45))) | (((x[((55) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((55) - 2) & 15]) << (3))) | (((x[((55) - 2) & 15]) >> (64 - 3))))) ^ (((x[((55) - 2) & 15]) >> (6))))))) + (((x[((55) - 7) & 15]) + (((((((x[((55) - 15) & 15]) << (63))) | (((x[((55) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((55) - 15) & 15]) << (56))) | (((x[((55) - 15) & 15]) >> (64 - 56))))) ^ (((x[((55) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0);-
501 do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[56]) + ((x[(56) & 15] = ((x[(56) & 15]) + (((((((((x[((56) - 2) & 15]) << (45))) | (((x[((56) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((56) - 2) & 15]) << (3))) | (((x[((56) - 2) & 15]) >> (64 - 3))))) ^ (((x[((56) - 2) & 15]) >> (6))))))) + (((x[((56) - 7) & 15]) + (((((((x[((56) - 15) & 15]) << (63))) | (((x[((56) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((56) - 15) & 15]) << (56))) | (((x[((56) - 15) & 15]) >> (64 - 56))))) ^ (((x[((56) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0);-
502 do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[57]) + ((x[(57) & 15] = ((x[(57) & 15]) + (((((((((x[((57) - 2) & 15]) << (45))) | (((x[((57) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((57) - 2) & 15]) << (3))) | (((x[((57) - 2) & 15]) >> (64 - 3))))) ^ (((x[((57) - 2) & 15]) >> (6))))))) + (((x[((57) - 7) & 15]) + (((((((x[((57) - 15) & 15]) << (63))) | (((x[((57) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((57) - 15) & 15]) << (56))) | (((x[((57) - 15) & 15]) >> (64 - 56))))) ^ (((x[((57) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0);-
503 do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[58]) + ((x[(58) & 15] = ((x[(58) & 15]) + (((((((((x[((58) - 2) & 15]) << (45))) | (((x[((58) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((58) - 2) & 15]) << (3))) | (((x[((58) - 2) & 15]) >> (64 - 3))))) ^ (((x[((58) - 2) & 15]) >> (6))))))) + (((x[((58) - 7) & 15]) + (((((((x[((58) - 15) & 15]) << (63))) | (((x[((58) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((58) - 15) & 15]) << (56))) | (((x[((58) - 15) & 15]) >> (64 - 56))))) ^ (((x[((58) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0);-
504 do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[59]) + ((x[(59) & 15] = ((x[(59) & 15]) + (((((((((x[((59) - 2) & 15]) << (45))) | (((x[((59) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((59) - 2) & 15]) << (3))) | (((x[((59) - 2) & 15]) >> (64 - 3))))) ^ (((x[((59) - 2) & 15]) >> (6))))))) + (((x[((59) - 7) & 15]) + (((((((x[((59) - 15) & 15]) << (63))) | (((x[((59) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((59) - 15) & 15]) << (56))) | (((x[((59) - 15) & 15]) >> (64 - 56))))) ^ (((x[((59) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0);-
505 do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[60]) + ((x[(60) & 15] = ((x[(60) & 15]) + (((((((((x[((60) - 2) & 15]) << (45))) | (((x[((60) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((60) - 2) & 15]) << (3))) | (((x[((60) - 2) & 15]) >> (64 - 3))))) ^ (((x[((60) - 2) & 15]) >> (6))))))) + (((x[((60) - 7) & 15]) + (((((((x[((60) - 15) & 15]) << (63))) | (((x[((60) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((60) - 15) & 15]) << (56))) | (((x[((60) - 15) & 15]) >> (64 - 56))))) ^ (((x[((60) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0);-
506 do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[61]) + ((x[(61) & 15] = ((x[(61) & 15]) + (((((((((x[((61) - 2) & 15]) << (45))) | (((x[((61) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((61) - 2) & 15]) << (3))) | (((x[((61) - 2) & 15]) >> (64 - 3))))) ^ (((x[((61) - 2) & 15]) >> (6))))))) + (((x[((61) - 7) & 15]) + (((((((x[((61) - 15) & 15]) << (63))) | (((x[((61) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((61) - 15) & 15]) << (56))) | (((x[((61) - 15) & 15]) >> (64 - 56))))) ^ (((x[((61) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0);-
507 do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[62]) + ((x[(62) & 15] = ((x[(62) & 15]) + (((((((((x[((62) - 2) & 15]) << (45))) | (((x[((62) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((62) - 2) & 15]) << (3))) | (((x[((62) - 2) & 15]) >> (64 - 3))))) ^ (((x[((62) - 2) & 15]) >> (6))))))) + (((x[((62) - 7) & 15]) + (((((((x[((62) - 15) & 15]) << (63))) | (((x[((62) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((62) - 15) & 15]) << (56))) | (((x[((62) - 15) & 15]) >> (64 - 56))))) ^ (((x[((62) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0);-
508 do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[63]) + ((x[(63) & 15] = ((x[(63) & 15]) + (((((((((x[((63) - 2) & 15]) << (45))) | (((x[((63) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((63) - 2) & 15]) << (3))) | (((x[((63) - 2) & 15]) >> (64 - 3))))) ^ (((x[((63) - 2) & 15]) >> (6))))))) + (((x[((63) - 7) & 15]) + (((((((x[((63) - 15) & 15]) << (63))) | (((x[((63) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((63) - 15) & 15]) << (56))) | (((x[((63) - 15) & 15]) >> (64 - 56))))) ^ (((x[((63) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0);-
509 do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[64]) + ((x[(64) & 15] = ((x[(64) & 15]) + (((((((((x[((64) - 2) & 15]) << (45))) | (((x[((64) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((64) - 2) & 15]) << (3))) | (((x[((64) - 2) & 15]) >> (64 - 3))))) ^ (((x[((64) - 2) & 15]) >> (6))))))) + (((x[((64) - 7) & 15]) + (((((((x[((64) - 15) & 15]) << (63))) | (((x[((64) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((64) - 15) & 15]) << (56))) | (((x[((64) - 15) & 15]) >> (64 - 56))))) ^ (((x[((64) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0);-
510 do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[65]) + ((x[(65) & 15] = ((x[(65) & 15]) + (((((((((x[((65) - 2) & 15]) << (45))) | (((x[((65) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((65) - 2) & 15]) << (3))) | (((x[((65) - 2) & 15]) >> (64 - 3))))) ^ (((x[((65) - 2) & 15]) >> (6))))))) + (((x[((65) - 7) & 15]) + (((((((x[((65) - 15) & 15]) << (63))) | (((x[((65) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((65) - 15) & 15]) << (56))) | (((x[((65) - 15) & 15]) >> (64 - 56))))) ^ (((x[((65) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0);-
511 do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[66]) + ((x[(66) & 15] = ((x[(66) & 15]) + (((((((((x[((66) - 2) & 15]) << (45))) | (((x[((66) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((66) - 2) & 15]) << (3))) | (((x[((66) - 2) & 15]) >> (64 - 3))))) ^ (((x[((66) - 2) & 15]) >> (6))))))) + (((x[((66) - 7) & 15]) + (((((((x[((66) - 15) & 15]) << (63))) | (((x[((66) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((66) - 15) & 15]) << (56))) | (((x[((66) - 15) & 15]) >> (64 - 56))))) ^ (((x[((66) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0);-
512 do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[67]) + ((x[(67) & 15] = ((x[(67) & 15]) + (((((((((x[((67) - 2) & 15]) << (45))) | (((x[((67) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((67) - 2) & 15]) << (3))) | (((x[((67) - 2) & 15]) >> (64 - 3))))) ^ (((x[((67) - 2) & 15]) >> (6))))))) + (((x[((67) - 7) & 15]) + (((((((x[((67) - 15) & 15]) << (63))) | (((x[((67) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((67) - 15) & 15]) << (56))) | (((x[((67) - 15) & 15]) >> (64 - 56))))) ^ (((x[((67) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0);-
513 do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[68]) + ((x[(68) & 15] = ((x[(68) & 15]) + (((((((((x[((68) - 2) & 15]) << (45))) | (((x[((68) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((68) - 2) & 15]) << (3))) | (((x[((68) - 2) & 15]) >> (64 - 3))))) ^ (((x[((68) - 2) & 15]) >> (6))))))) + (((x[((68) - 7) & 15]) + (((((((x[((68) - 15) & 15]) << (63))) | (((x[((68) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((68) - 15) & 15]) << (56))) | (((x[((68) - 15) & 15]) >> (64 - 56))))) ^ (((x[((68) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0);-
514 do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[69]) + ((x[(69) & 15] = ((x[(69) & 15]) + (((((((((x[((69) - 2) & 15]) << (45))) | (((x[((69) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((69) - 2) & 15]) << (3))) | (((x[((69) - 2) & 15]) >> (64 - 3))))) ^ (((x[((69) - 2) & 15]) >> (6))))))) + (((x[((69) - 7) & 15]) + (((((((x[((69) - 15) & 15]) << (63))) | (((x[((69) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((69) - 15) & 15]) << (56))) | (((x[((69) - 15) & 15]) >> (64 - 56))))) ^ (((x[((69) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0);-
515 do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[70]) + ((x[(70) & 15] = ((x[(70) & 15]) + (((((((((x[((70) - 2) & 15]) << (45))) | (((x[((70) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((70) - 2) & 15]) << (3))) | (((x[((70) - 2) & 15]) >> (64 - 3))))) ^ (((x[((70) - 2) & 15]) >> (6))))))) + (((x[((70) - 7) & 15]) + (((((((x[((70) - 15) & 15]) << (63))) | (((x[((70) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((70) - 15) & 15]) << (56))) | (((x[((70) - 15) & 15]) >> (64 - 56))))) ^ (((x[((70) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0);-
516 do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[71]) + ((x[(71) & 15] = ((x[(71) & 15]) + (((((((((x[((71) - 2) & 15]) << (45))) | (((x[((71) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((71) - 2) & 15]) << (3))) | (((x[((71) - 2) & 15]) >> (64 - 3))))) ^ (((x[((71) - 2) & 15]) >> (6))))))) + (((x[((71) - 7) & 15]) + (((((((x[((71) - 15) & 15]) << (63))) | (((x[((71) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((71) - 15) & 15]) << (56))) | (((x[((71) - 15) & 15]) >> (64 - 56))))) ^ (((x[((71) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0);-
517 do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[72]) + ((x[(72) & 15] = ((x[(72) & 15]) + (((((((((x[((72) - 2) & 15]) << (45))) | (((x[((72) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((72) - 2) & 15]) << (3))) | (((x[((72) - 2) & 15]) >> (64 - 3))))) ^ (((x[((72) - 2) & 15]) >> (6))))))) + (((x[((72) - 7) & 15]) + (((((((x[((72) - 15) & 15]) << (63))) | (((x[((72) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((72) - 15) & 15]) << (56))) | (((x[((72) - 15) & 15]) >> (64 - 56))))) ^ (((x[((72) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0);-
518 do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[73]) + ((x[(73) & 15] = ((x[(73) & 15]) + (((((((((x[((73) - 2) & 15]) << (45))) | (((x[((73) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((73) - 2) & 15]) << (3))) | (((x[((73) - 2) & 15]) >> (64 - 3))))) ^ (((x[((73) - 2) & 15]) >> (6))))))) + (((x[((73) - 7) & 15]) + (((((((x[((73) - 15) & 15]) << (63))) | (((x[((73) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((73) - 15) & 15]) << (56))) | (((x[((73) - 15) & 15]) >> (64 - 56))))) ^ (((x[((73) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0);-
519 do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[74]) + ((x[(74) & 15] = ((x[(74) & 15]) + (((((((((x[((74) - 2) & 15]) << (45))) | (((x[((74) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((74) - 2) & 15]) << (3))) | (((x[((74) - 2) & 15]) >> (64 - 3))))) ^ (((x[((74) - 2) & 15]) >> (6))))))) + (((x[((74) - 7) & 15]) + (((((((x[((74) - 15) & 15]) << (63))) | (((x[((74) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((74) - 15) & 15]) << (56))) | (((x[((74) - 15) & 15]) >> (64 - 56))))) ^ (((x[((74) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0);-
520 do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[75]) + ((x[(75) & 15] = ((x[(75) & 15]) + (((((((((x[((75) - 2) & 15]) << (45))) | (((x[((75) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((75) - 2) & 15]) << (3))) | (((x[((75) - 2) & 15]) >> (64 - 3))))) ^ (((x[((75) - 2) & 15]) >> (6))))))) + (((x[((75) - 7) & 15]) + (((((((x[((75) - 15) & 15]) << (63))) | (((x[((75) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((75) - 15) & 15]) << (56))) | (((x[((75) - 15) & 15]) >> (64 - 56))))) ^ (((x[((75) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0);-
521 do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[76]) + ((x[(76) & 15] = ((x[(76) & 15]) + (((((((((x[((76) - 2) & 15]) << (45))) | (((x[((76) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((76) - 2) & 15]) << (3))) | (((x[((76) - 2) & 15]) >> (64 - 3))))) ^ (((x[((76) - 2) & 15]) >> (6))))))) + (((x[((76) - 7) & 15]) + (((((((x[((76) - 15) & 15]) << (63))) | (((x[((76) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((76) - 15) & 15]) << (56))) | (((x[((76) - 15) & 15]) >> (64 - 56))))) ^ (((x[((76) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0);-
522 do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[77]) + ((x[(77) & 15] = ((x[(77) & 15]) + (((((((((x[((77) - 2) & 15]) << (45))) | (((x[((77) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((77) - 2) & 15]) << (3))) | (((x[((77) - 2) & 15]) >> (64 - 3))))) ^ (((x[((77) - 2) & 15]) >> (6))))))) + (((x[((77) - 7) & 15]) + (((((((x[((77) - 15) & 15]) << (63))) | (((x[((77) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((77) - 15) & 15]) << (56))) | (((x[((77) - 15) & 15]) >> (64 - 56))))) ^ (((x[((77) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0);-
523 do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[78]) + ((x[(78) & 15] = ((x[(78) & 15]) + (((((((((x[((78) - 2) & 15]) << (45))) | (((x[((78) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((78) - 2) & 15]) << (3))) | (((x[((78) - 2) & 15]) >> (64 - 3))))) ^ (((x[((78) - 2) & 15]) >> (6))))))) + (((x[((78) - 7) & 15]) + (((((((x[((78) - 15) & 15]) << (63))) | (((x[((78) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((78) - 15) & 15]) << (56))) | (((x[((78) - 15) & 15]) >> (64 - 56))))) ^ (((x[((78) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0);-
524 do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[79]) + ((x[(79) & 15] = ((x[(79) & 15]) + (((((((((x[((79) - 2) & 15]) << (45))) | (((x[((79) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((79) - 2) & 15]) << (3))) | (((x[((79) - 2) & 15]) >> (64 - 3))))) ^ (((x[((79) - 2) & 15]) >> (6))))))) + (((x[((79) - 7) & 15]) + (((((((x[((79) - 15) & 15]) << (63))) | (((x[((79) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((79) - 15) & 15]) << (56))) | (((x[((79) - 15) & 15]) >> (64 - 56))))) ^ (((x[((79) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0);-
525-
526 a = ctx->state[0] = ((ctx->state[0]) + (a));-
527 b = ctx->state[1] = ((ctx->state[1]) + (b));-
528 c = ctx->state[2] = ((ctx->state[2]) + (c));-
529 d = ctx->state[3] = ((ctx->state[3]) + (d));-
530 e = ctx->state[4] = ((ctx->state[4]) + (e));-
531 f = ctx->state[5] = ((ctx->state[5]) + (f));-
532 g = ctx->state[6] = ((ctx->state[6]) + (g));-
533 h = ctx->state[7] = ((ctx->state[7]) + (h));-
534 }
executed 15640 times by 2 tests: end of block
Executed by:
  • sha384sum
  • sha512sum
15640
535}
executed 76 times by 2 tests: end of block
Executed by:
  • sha384sum
  • sha512sum
76
Switch to Source codePreprocessed file

Generated by Squish Coco 4.1.2