Coverage Report

Created: 2020-05-23 13:54

/src/botan/src/lib/math/mp/mp_monty_n.cpp
Line
Count
Source
1
/*
2
* This file was automatically generated by ./src/scripts/monty.py on 2018-06-11
3
* All manual changes will be lost. Edit the script instead.
4
*
5
* Botan is released under the Simplified BSD License (see license.txt)
6
*/
7
8
#include <botan/internal/mp_monty.h>
9
#include <botan/internal/mp_core.h>
10
#include <botan/internal/mp_asmi.h>
11
#include <botan/internal/ct_utils.h>
12
13
namespace Botan {
14
15
void bigint_monty_redc_4(word z[], const word p[4], word p_dash, word ws[])
16
22.8M
   {
17
22.8M
   word w2 = 0, w1 = 0, w0 = 0;
18
22.8M
   w0 = z[0];
19
22.8M
   ws[0] = w0 * p_dash;
20
22.8M
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
21
22.8M
   w0 = w1; w1 = w2; w2 = 0;
22
22.8M
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
23
22.8M
   word3_add(&w2, &w1, &w0, z[1]);
24
22.8M
   ws[1] = w0 * p_dash;
25
22.8M
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
26
22.8M
   w0 = w1; w1 = w2; w2 = 0;
27
22.8M
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
28
22.8M
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
29
22.8M
   word3_add(&w2, &w1, &w0, z[2]);
30
22.8M
   ws[2] = w0 * p_dash;
31
22.8M
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
32
22.8M
   w0 = w1; w1 = w2; w2 = 0;
33
22.8M
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
34
22.8M
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
35
22.8M
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
36
22.8M
   word3_add(&w2, &w1, &w0, z[3]);
37
22.8M
   ws[3] = w0 * p_dash;
38
22.8M
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
39
22.8M
   w0 = w1; w1 = w2; w2 = 0;
40
22.8M
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
41
22.8M
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
42
22.8M
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
43
22.8M
   word3_add(&w2, &w1, &w0, z[4]);
44
22.8M
   ws[0] = w0;
45
22.8M
   w0 = w1; w1 = w2; w2 = 0;
46
22.8M
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
47
22.8M
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
48
22.8M
   word3_add(&w2, &w1, &w0, z[5]);
49
22.8M
   ws[1] = w0;
50
22.8M
   w0 = w1; w1 = w2; w2 = 0;
51
22.8M
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
52
22.8M
   word3_add(&w2, &w1, &w0, z[6]);
53
22.8M
   ws[2] = w0;
54
22.8M
   w0 = w1; w1 = w2; w2 = 0;
55
22.8M
   word3_add(&w2, &w1, &w0, z[7]);
56
22.8M
   ws[3] = w0;
57
22.8M
   w0 = w1; w1 = w2; w2 = 0;
58
22.8M
   word3_add(&w2, &w1, &w0, z[9]);
59
22.8M
   ws[4] = w0;
60
22.8M
   ws[5] = w1;
61
22.8M
   word borrow = 0;
62
22.8M
   ws[5] = word_sub(ws[0], p[0], &borrow);
63
22.8M
   ws[6] = word_sub(ws[1], p[1], &borrow);
64
22.8M
   ws[7] = word_sub(ws[2], p[2], &borrow);
65
22.8M
   ws[8] = word_sub(ws[3], p[3], &borrow);
66
22.8M
   ws[9] = word_sub(ws[4], 0, &borrow);
67
22.8M
   CT::conditional_copy_mem(borrow, z, ws, ws + 5, 5);
68
22.8M
   clear_mem(z + 4, 2*(4+1) - 4);
69
22.8M
   }
70
71
void bigint_monty_redc_6(word z[], const word p[6], word p_dash, word ws[])
72
6.98M
   {
73
6.98M
   word w2 = 0, w1 = 0, w0 = 0;
74
6.98M
   w0 = z[0];
75
6.98M
   ws[0] = w0 * p_dash;
76
6.98M
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
77
6.98M
   w0 = w1; w1 = w2; w2 = 0;
78
6.98M
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
79
6.98M
   word3_add(&w2, &w1, &w0, z[1]);
80
6.98M
   ws[1] = w0 * p_dash;
81
6.98M
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
82
6.98M
   w0 = w1; w1 = w2; w2 = 0;
83
6.98M
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
84
6.98M
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
85
6.98M
   word3_add(&w2, &w1, &w0, z[2]);
86
6.98M
   ws[2] = w0 * p_dash;
87
6.98M
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
88
6.98M
   w0 = w1; w1 = w2; w2 = 0;
89
6.98M
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
90
6.98M
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
91
6.98M
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
92
6.98M
   word3_add(&w2, &w1, &w0, z[3]);
93
6.98M
   ws[3] = w0 * p_dash;
94
6.98M
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
95
6.98M
   w0 = w1; w1 = w2; w2 = 0;
96
6.98M
   word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
97
6.98M
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
98
6.98M
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
99
6.98M
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
100
6.98M
   word3_add(&w2, &w1, &w0, z[4]);
101
6.98M
   ws[4] = w0 * p_dash;
102
6.98M
   word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
103
6.98M
   w0 = w1; w1 = w2; w2 = 0;
104
6.98M
   word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
105
6.98M
   word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
106
6.98M
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
107
6.98M
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
108
6.98M
   word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
109
6.98M
   word3_add(&w2, &w1, &w0, z[5]);
110
6.98M
   ws[5] = w0 * p_dash;
111
6.98M
   word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
112
6.98M
   w0 = w1; w1 = w2; w2 = 0;
113
6.98M
   word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
114
6.98M
   word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
115
6.98M
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
116
6.98M
   word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
117
6.98M
   word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
118
6.98M
   word3_add(&w2, &w1, &w0, z[6]);
119
6.98M
   ws[0] = w0;
120
6.98M
   w0 = w1; w1 = w2; w2 = 0;
121
6.98M
   word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
122
6.98M
   word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
123
6.98M
   word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
124
6.98M
   word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
125
6.98M
   word3_add(&w2, &w1, &w0, z[7]);
126
6.98M
   ws[1] = w0;
127
6.98M
   w0 = w1; w1 = w2; w2 = 0;
128
6.98M
   word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
129
6.98M
   word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
130
6.98M
   word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
131
6.98M
   word3_add(&w2, &w1, &w0, z[8]);
132
6.98M
   ws[2] = w0;
133
6.98M
   w0 = w1; w1 = w2; w2 = 0;
134
6.98M
   word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
135
6.98M
   word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
136
6.98M
   word3_add(&w2, &w1, &w0, z[9]);
137
6.98M
   ws[3] = w0;
138
6.98M
   w0 = w1; w1 = w2; w2 = 0;
139
6.98M
   word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
140
6.98M
   word3_add(&w2, &w1, &w0, z[10]);
141
6.98M
   ws[4] = w0;
142
6.98M
   w0 = w1; w1 = w2; w2 = 0;
143
6.98M
   word3_add(&w2, &w1, &w0, z[11]);
144
6.98M
   ws[5] = w0;
145
6.98M
   w0 = w1; w1 = w2; w2 = 0;
146
6.98M
   word3_add(&w2, &w1, &w0, z[13]);
147
6.98M
   ws[6] = w0;
148
6.98M
   ws[7] = w1;
149
6.98M
   word borrow = 0;
150
6.98M
   ws[7] = word_sub(ws[0], p[0], &borrow);
151
6.98M
   ws[8] = word_sub(ws[1], p[1], &borrow);
152
6.98M
   ws[9] = word_sub(ws[2], p[2], &borrow);
153
6.98M
   ws[10] = word_sub(ws[3], p[3], &borrow);
154
6.98M
   ws[11] = word_sub(ws[4], p[4], &borrow);
155
6.98M
   ws[12] = word_sub(ws[5], p[5], &borrow);
156
6.98M
   ws[13] = word_sub(ws[6], 0, &borrow);
157
6.98M
   CT::conditional_copy_mem(borrow, z, ws, ws + 7, 7);
158
6.98M
   clear_mem(z + 6, 2*(6+1) - 6);
159
6.98M
   }
160
161
void bigint_monty_redc_8(word z[], const word p[8], word p_dash, word ws[])
162
12.6M
   {
163
12.6M
   word w2 = 0, w1 = 0, w0 = 0;
164
12.6M
   w0 = z[0];
165
12.6M
   ws[0] = w0 * p_dash;
166
12.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
167
12.6M
   w0 = w1; w1 = w2; w2 = 0;
168
12.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
169
12.6M
   word3_add(&w2, &w1, &w0, z[1]);
170
12.6M
   ws[1] = w0 * p_dash;
171
12.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
172
12.6M
   w0 = w1; w1 = w2; w2 = 0;
173
12.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
174
12.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
175
12.6M
   word3_add(&w2, &w1, &w0, z[2]);
176
12.6M
   ws[2] = w0 * p_dash;
177
12.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
178
12.6M
   w0 = w1; w1 = w2; w2 = 0;
179
12.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
180
12.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
181
12.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
182
12.6M
   word3_add(&w2, &w1, &w0, z[3]);
183
12.6M
   ws[3] = w0 * p_dash;
184
12.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
185
12.6M
   w0 = w1; w1 = w2; w2 = 0;
186
12.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
187
12.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
188
12.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
189
12.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
190
12.6M
   word3_add(&w2, &w1, &w0, z[4]);
191
12.6M
   ws[4] = w0 * p_dash;
192
12.6M
   word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
193
12.6M
   w0 = w1; w1 = w2; w2 = 0;
194
12.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
195
12.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
196
12.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
197
12.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
198
12.6M
   word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
199
12.6M
   word3_add(&w2, &w1, &w0, z[5]);
200
12.6M
   ws[5] = w0 * p_dash;
201
12.6M
   word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
202
12.6M
   w0 = w1; w1 = w2; w2 = 0;
203
12.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
204
12.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
205
12.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
206
12.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
207
12.6M
   word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
208
12.6M
   word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
209
12.6M
   word3_add(&w2, &w1, &w0, z[6]);
210
12.6M
   ws[6] = w0 * p_dash;
211
12.6M
   word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
212
12.6M
   w0 = w1; w1 = w2; w2 = 0;
213
12.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
214
12.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
215
12.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
216
12.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
217
12.6M
   word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
218
12.6M
   word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
219
12.6M
   word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
220
12.6M
   word3_add(&w2, &w1, &w0, z[7]);
221
12.6M
   ws[7] = w0 * p_dash;
222
12.6M
   word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
223
12.6M
   w0 = w1; w1 = w2; w2 = 0;
224
12.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
225
12.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
226
12.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
227
12.6M
   word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
228
12.6M
   word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
229
12.6M
   word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
230
12.6M
   word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
231
12.6M
   word3_add(&w2, &w1, &w0, z[8]);
232
12.6M
   ws[0] = w0;
233
12.6M
   w0 = w1; w1 = w2; w2 = 0;
234
12.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
235
12.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
236
12.6M
   word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
237
12.6M
   word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
238
12.6M
   word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
239
12.6M
   word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
240
12.6M
   word3_add(&w2, &w1, &w0, z[9]);
241
12.6M
   ws[1] = w0;
242
12.6M
   w0 = w1; w1 = w2; w2 = 0;
243
12.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
244
12.6M
   word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
245
12.6M
   word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
246
12.6M
   word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
247
12.6M
   word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
248
12.6M
   word3_add(&w2, &w1, &w0, z[10]);
249
12.6M
   ws[2] = w0;
250
12.6M
   w0 = w1; w1 = w2; w2 = 0;
251
12.6M
   word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
252
12.6M
   word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
253
12.6M
   word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
254
12.6M
   word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
255
12.6M
   word3_add(&w2, &w1, &w0, z[11]);
256
12.6M
   ws[3] = w0;
257
12.6M
   w0 = w1; w1 = w2; w2 = 0;
258
12.6M
   word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
259
12.6M
   word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
260
12.6M
   word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
261
12.6M
   word3_add(&w2, &w1, &w0, z[12]);
262
12.6M
   ws[4] = w0;
263
12.6M
   w0 = w1; w1 = w2; w2 = 0;
264
12.6M
   word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
265
12.6M
   word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
266
12.6M
   word3_add(&w2, &w1, &w0, z[13]);
267
12.6M
   ws[5] = w0;
268
12.6M
   w0 = w1; w1 = w2; w2 = 0;
269
12.6M
   word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
270
12.6M
   word3_add(&w2, &w1, &w0, z[14]);
271
12.6M
   ws[6] = w0;
272
12.6M
   w0 = w1; w1 = w2; w2 = 0;
273
12.6M
   word3_add(&w2, &w1, &w0, z[15]);
274
12.6M
   ws[7] = w0;
275
12.6M
   w0 = w1; w1 = w2; w2 = 0;
276
12.6M
   word3_add(&w2, &w1, &w0, z[17]);
277
12.6M
   ws[8] = w0;
278
12.6M
   ws[9] = w1;
279
12.6M
   word borrow = 0;
280
12.6M
   ws[9] = word_sub(ws[0], p[0], &borrow);
281
12.6M
   ws[10] = word_sub(ws[1], p[1], &borrow);
282
12.6M
   ws[11] = word_sub(ws[2], p[2], &borrow);
283
12.6M
   ws[12] = word_sub(ws[3], p[3], &borrow);
284
12.6M
   ws[13] = word_sub(ws[4], p[4], &borrow);
285
12.6M
   ws[14] = word_sub(ws[5], p[5], &borrow);
286
12.6M
   ws[15] = word_sub(ws[6], p[6], &borrow);
287
12.6M
   ws[16] = word_sub(ws[7], p[7], &borrow);
288
12.6M
   ws[17] = word_sub(ws[8], 0, &borrow);
289
12.6M
   CT::conditional_copy_mem(borrow, z, ws, ws + 9, 9);
290
12.6M
   clear_mem(z + 8, 2*(8+1) - 8);
291
12.6M
   }
292
293
void bigint_monty_redc_16(word z[], const word p[16], word p_dash, word ws[])
294
137k
   {
295
137k
   word w2 = 0, w1 = 0, w0 = 0;
296
137k
   w0 = z[0];
297
137k
   ws[0] = w0 * p_dash;
298
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
299
137k
   w0 = w1; w1 = w2; w2 = 0;
300
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
301
137k
   word3_add(&w2, &w1, &w0, z[1]);
302
137k
   ws[1] = w0 * p_dash;
303
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
304
137k
   w0 = w1; w1 = w2; w2 = 0;
305
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
306
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
307
137k
   word3_add(&w2, &w1, &w0, z[2]);
308
137k
   ws[2] = w0 * p_dash;
309
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
310
137k
   w0 = w1; w1 = w2; w2 = 0;
311
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
312
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
313
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
314
137k
   word3_add(&w2, &w1, &w0, z[3]);
315
137k
   ws[3] = w0 * p_dash;
316
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
317
137k
   w0 = w1; w1 = w2; w2 = 0;
318
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
319
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
320
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
321
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
322
137k
   word3_add(&w2, &w1, &w0, z[4]);
323
137k
   ws[4] = w0 * p_dash;
324
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
325
137k
   w0 = w1; w1 = w2; w2 = 0;
326
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
327
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
328
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
329
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
330
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
331
137k
   word3_add(&w2, &w1, &w0, z[5]);
332
137k
   ws[5] = w0 * p_dash;
333
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
334
137k
   w0 = w1; w1 = w2; w2 = 0;
335
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
336
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
337
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
338
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
339
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
340
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
341
137k
   word3_add(&w2, &w1, &w0, z[6]);
342
137k
   ws[6] = w0 * p_dash;
343
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
344
137k
   w0 = w1; w1 = w2; w2 = 0;
345
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
346
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
347
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
348
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
349
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
350
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
351
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
352
137k
   word3_add(&w2, &w1, &w0, z[7]);
353
137k
   ws[7] = w0 * p_dash;
354
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
355
137k
   w0 = w1; w1 = w2; w2 = 0;
356
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[8]);
357
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
358
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
359
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
360
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
361
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
362
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
363
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
364
137k
   word3_add(&w2, &w1, &w0, z[8]);
365
137k
   ws[8] = w0 * p_dash;
366
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[0]);
367
137k
   w0 = w1; w1 = w2; w2 = 0;
368
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[9]);
369
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[8]);
370
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
371
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
372
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
373
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
374
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
375
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
376
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[1]);
377
137k
   word3_add(&w2, &w1, &w0, z[9]);
378
137k
   ws[9] = w0 * p_dash;
379
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[0]);
380
137k
   w0 = w1; w1 = w2; w2 = 0;
381
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[10]);
382
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[9]);
383
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[8]);
384
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
385
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
386
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
387
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
388
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
389
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[2]);
390
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[1]);
391
137k
   word3_add(&w2, &w1, &w0, z[10]);
392
137k
   ws[10] = w0 * p_dash;
393
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[0]);
394
137k
   w0 = w1; w1 = w2; w2 = 0;
395
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[11]);
396
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[10]);
397
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[9]);
398
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[8]);
399
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
400
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
401
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
402
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
403
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[3]);
404
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[2]);
405
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[1]);
406
137k
   word3_add(&w2, &w1, &w0, z[11]);
407
137k
   ws[11] = w0 * p_dash;
408
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[0]);
409
137k
   w0 = w1; w1 = w2; w2 = 0;
410
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[12]);
411
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[11]);
412
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[10]);
413
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[9]);
414
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[8]);
415
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
416
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
417
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
418
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[4]);
419
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[3]);
420
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[2]);
421
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[1]);
422
137k
   word3_add(&w2, &w1, &w0, z[12]);
423
137k
   ws[12] = w0 * p_dash;
424
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[0]);
425
137k
   w0 = w1; w1 = w2; w2 = 0;
426
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[13]);
427
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[12]);
428
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[11]);
429
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[10]);
430
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[9]);
431
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[8]);
432
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
433
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
434
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[5]);
435
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[4]);
436
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[3]);
437
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[2]);
438
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[1]);
439
137k
   word3_add(&w2, &w1, &w0, z[13]);
440
137k
   ws[13] = w0 * p_dash;
441
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[0]);
442
137k
   w0 = w1; w1 = w2; w2 = 0;
443
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[14]);
444
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[13]);
445
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[12]);
446
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[11]);
447
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[10]);
448
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[9]);
449
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[8]);
450
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
451
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[6]);
452
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[5]);
453
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[4]);
454
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[3]);
455
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[2]);
456
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[1]);
457
137k
   word3_add(&w2, &w1, &w0, z[14]);
458
137k
   ws[14] = w0 * p_dash;
459
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[0]);
460
137k
   w0 = w1; w1 = w2; w2 = 0;
461
137k
   word3_muladd(&w2, &w1, &w0, ws[0], p[15]);
462
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[14]);
463
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[13]);
464
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[12]);
465
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[11]);
466
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[10]);
467
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[9]);
468
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[8]);
469
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[7]);
470
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[6]);
471
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[5]);
472
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[4]);
473
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[3]);
474
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[2]);
475
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[1]);
476
137k
   word3_add(&w2, &w1, &w0, z[15]);
477
137k
   ws[15] = w0 * p_dash;
478
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[0]);
479
137k
   w0 = w1; w1 = w2; w2 = 0;
480
137k
   word3_muladd(&w2, &w1, &w0, ws[1], p[15]);
481
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[14]);
482
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[13]);
483
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[12]);
484
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[11]);
485
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[10]);
486
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[9]);
487
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[8]);
488
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[7]);
489
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[6]);
490
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[5]);
491
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[4]);
492
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[3]);
493
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[2]);
494
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[1]);
495
137k
   word3_add(&w2, &w1, &w0, z[16]);
496
137k
   ws[0] = w0;
497
137k
   w0 = w1; w1 = w2; w2 = 0;
498
137k
   word3_muladd(&w2, &w1, &w0, ws[2], p[15]);
499
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[14]);
500
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[13]);
501
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[12]);
502
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[11]);
503
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[10]);
504
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[9]);
505
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[8]);
506
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[7]);
507
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[6]);
508
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[5]);
509
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[4]);
510
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[3]);
511
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[2]);
512
137k
   word3_add(&w2, &w1, &w0, z[17]);
513
137k
   ws[1] = w0;
514
137k
   w0 = w1; w1 = w2; w2 = 0;
515
137k
   word3_muladd(&w2, &w1, &w0, ws[3], p[15]);
516
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[14]);
517
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[13]);
518
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[12]);
519
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[11]);
520
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[10]);
521
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[9]);
522
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[8]);
523
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[7]);
524
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[6]);
525
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[5]);
526
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[4]);
527
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[3]);
528
137k
   word3_add(&w2, &w1, &w0, z[18]);
529
137k
   ws[2] = w0;
530
137k
   w0 = w1; w1 = w2; w2 = 0;
531
137k
   word3_muladd(&w2, &w1, &w0, ws[4], p[15]);
532
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[14]);
533
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[13]);
534
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[12]);
535
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[11]);
536
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[10]);
537
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[9]);
538
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[8]);
539
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[7]);
540
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[6]);
541
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[5]);
542
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[4]);
543
137k
   word3_add(&w2, &w1, &w0, z[19]);
544
137k
   ws[3] = w0;
545
137k
   w0 = w1; w1 = w2; w2 = 0;
546
137k
   word3_muladd(&w2, &w1, &w0, ws[5], p[15]);
547
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[14]);
548
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[13]);
549
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[12]);
550
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[11]);
551
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[10]);
552
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[9]);
553
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[8]);
554
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[7]);
555
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[6]);
556
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[5]);
557
137k
   word3_add(&w2, &w1, &w0, z[20]);
558
137k
   ws[4] = w0;
559
137k
   w0 = w1; w1 = w2; w2 = 0;
560
137k
   word3_muladd(&w2, &w1, &w0, ws[6], p[15]);
561
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[14]);
562
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[13]);
563
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[12]);
564
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[11]);
565
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[10]);
566
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[9]);
567
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[8]);
568
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[7]);
569
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[6]);
570
137k
   word3_add(&w2, &w1, &w0, z[21]);
571
137k
   ws[5] = w0;
572
137k
   w0 = w1; w1 = w2; w2 = 0;
573
137k
   word3_muladd(&w2, &w1, &w0, ws[7], p[15]);
574
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[14]);
575
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[13]);
576
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[12]);
577
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[11]);
578
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[10]);
579
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[9]);
580
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[8]);
581
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[7]);
582
137k
   word3_add(&w2, &w1, &w0, z[22]);
583
137k
   ws[6] = w0;
584
137k
   w0 = w1; w1 = w2; w2 = 0;
585
137k
   word3_muladd(&w2, &w1, &w0, ws[8], p[15]);
586
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[14]);
587
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[13]);
588
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[12]);
589
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[11]);
590
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[10]);
591
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[9]);
592
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[8]);
593
137k
   word3_add(&w2, &w1, &w0, z[23]);
594
137k
   ws[7] = w0;
595
137k
   w0 = w1; w1 = w2; w2 = 0;
596
137k
   word3_muladd(&w2, &w1, &w0, ws[9], p[15]);
597
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[14]);
598
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[13]);
599
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[12]);
600
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[11]);
601
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[10]);
602
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[9]);
603
137k
   word3_add(&w2, &w1, &w0, z[24]);
604
137k
   ws[8] = w0;
605
137k
   w0 = w1; w1 = w2; w2 = 0;
606
137k
   word3_muladd(&w2, &w1, &w0, ws[10], p[15]);
607
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[14]);
608
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[13]);
609
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[12]);
610
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[11]);
611
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[10]);
612
137k
   word3_add(&w2, &w1, &w0, z[25]);
613
137k
   ws[9] = w0;
614
137k
   w0 = w1; w1 = w2; w2 = 0;
615
137k
   word3_muladd(&w2, &w1, &w0, ws[11], p[15]);
616
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[14]);
617
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[13]);
618
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[12]);
619
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[11]);
620
137k
   word3_add(&w2, &w1, &w0, z[26]);
621
137k
   ws[10] = w0;
622
137k
   w0 = w1; w1 = w2; w2 = 0;
623
137k
   word3_muladd(&w2, &w1, &w0, ws[12], p[15]);
624
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[14]);
625
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[13]);
626
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[12]);
627
137k
   word3_add(&w2, &w1, &w0, z[27]);
628
137k
   ws[11] = w0;
629
137k
   w0 = w1; w1 = w2; w2 = 0;
630
137k
   word3_muladd(&w2, &w1, &w0, ws[13], p[15]);
631
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[14]);
632
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[13]);
633
137k
   word3_add(&w2, &w1, &w0, z[28]);
634
137k
   ws[12] = w0;
635
137k
   w0 = w1; w1 = w2; w2 = 0;
636
137k
   word3_muladd(&w2, &w1, &w0, ws[14], p[15]);
637
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[14]);
638
137k
   word3_add(&w2, &w1, &w0, z[29]);
639
137k
   ws[13] = w0;
640
137k
   w0 = w1; w1 = w2; w2 = 0;
641
137k
   word3_muladd(&w2, &w1, &w0, ws[15], p[15]);
642
137k
   word3_add(&w2, &w1, &w0, z[30]);
643
137k
   ws[14] = w0;
644
137k
   w0 = w1; w1 = w2; w2 = 0;
645
137k
   word3_add(&w2, &w1, &w0, z[31]);
646
137k
   ws[15] = w0;
647
137k
   w0 = w1; w1 = w2; w2 = 0;
648
137k
   word3_add(&w2, &w1, &w0, z[33]);
649
137k
   ws[16] = w0;
650
137k
   ws[17] = w1;
651
137k
   word borrow = bigint_sub3(ws + 16 + 1, ws, 16 + 1, p, 16);
652
137k
   CT::conditional_copy_mem(borrow, z, ws, ws + 17, 17);
653
137k
   clear_mem(z + 16, 2*(16+1) - 16);
654
137k
   }
655
656
void bigint_monty_redc_24(word z[], const word p[24], word p_dash, word ws[])
657
88.7k
   {
658
88.7k
   word w2 = 0, w1 = 0, w0 = 0;
659
88.7k
   w0 = z[0];
660
88.7k
   ws[0] = w0 * p_dash;
661
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
662
88.7k
   w0 = w1; w1 = w2; w2 = 0;
663
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
664
88.7k
   word3_add(&w2, &w1, &w0, z[1]);
665
88.7k
   ws[1] = w0 * p_dash;
666
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
667
88.7k
   w0 = w1; w1 = w2; w2 = 0;
668
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
669
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
670
88.7k
   word3_add(&w2, &w1, &w0, z[2]);
671
88.7k
   ws[2] = w0 * p_dash;
672
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
673
88.7k
   w0 = w1; w1 = w2; w2 = 0;
674
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
675
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
676
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
677
88.7k
   word3_add(&w2, &w1, &w0, z[3]);
678
88.7k
   ws[3] = w0 * p_dash;
679
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
680
88.7k
   w0 = w1; w1 = w2; w2 = 0;
681
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
682
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
683
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
684
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
685
88.7k
   word3_add(&w2, &w1, &w0, z[4]);
686
88.7k
   ws[4] = w0 * p_dash;
687
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
688
88.7k
   w0 = w1; w1 = w2; w2 = 0;
689
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
690
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
691
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
692
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
693
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
694
88.7k
   word3_add(&w2, &w1, &w0, z[5]);
695
88.7k
   ws[5] = w0 * p_dash;
696
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
697
88.7k
   w0 = w1; w1 = w2; w2 = 0;
698
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
699
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
700
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
701
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
702
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
703
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
704
88.7k
   word3_add(&w2, &w1, &w0, z[6]);
705
88.7k
   ws[6] = w0 * p_dash;
706
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
707
88.7k
   w0 = w1; w1 = w2; w2 = 0;
708
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
709
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
710
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
711
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
712
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
713
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
714
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
715
88.7k
   word3_add(&w2, &w1, &w0, z[7]);
716
88.7k
   ws[7] = w0 * p_dash;
717
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
718
88.7k
   w0 = w1; w1 = w2; w2 = 0;
719
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[8]);
720
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
721
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
722
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
723
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
724
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
725
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
726
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
727
88.7k
   word3_add(&w2, &w1, &w0, z[8]);
728
88.7k
   ws[8] = w0 * p_dash;
729
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[0]);
730
88.7k
   w0 = w1; w1 = w2; w2 = 0;
731
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[9]);
732
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[8]);
733
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
734
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
735
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
736
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
737
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
738
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
739
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[1]);
740
88.7k
   word3_add(&w2, &w1, &w0, z[9]);
741
88.7k
   ws[9] = w0 * p_dash;
742
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[0]);
743
88.7k
   w0 = w1; w1 = w2; w2 = 0;
744
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[10]);
745
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[9]);
746
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[8]);
747
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
748
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
749
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
750
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
751
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
752
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[2]);
753
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[1]);
754
88.7k
   word3_add(&w2, &w1, &w0, z[10]);
755
88.7k
   ws[10] = w0 * p_dash;
756
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[0]);
757
88.7k
   w0 = w1; w1 = w2; w2 = 0;
758
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[11]);
759
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[10]);
760
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[9]);
761
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[8]);
762
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
763
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
764
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
765
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
766
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[3]);
767
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[2]);
768
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[1]);
769
88.7k
   word3_add(&w2, &w1, &w0, z[11]);
770
88.7k
   ws[11] = w0 * p_dash;
771
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[0]);
772
88.7k
   w0 = w1; w1 = w2; w2 = 0;
773
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[12]);
774
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[11]);
775
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[10]);
776
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[9]);
777
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[8]);
778
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
779
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
780
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
781
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[4]);
782
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[3]);
783
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[2]);
784
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[1]);
785
88.7k
   word3_add(&w2, &w1, &w0, z[12]);
786
88.7k
   ws[12] = w0 * p_dash;
787
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[0]);
788
88.7k
   w0 = w1; w1 = w2; w2 = 0;
789
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[13]);
790
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[12]);
791
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[11]);
792
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[10]);
793
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[9]);
794
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[8]);
795
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
796
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
797
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[5]);
798
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[4]);
799
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[3]);
800
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[2]);
801
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[1]);
802
88.7k
   word3_add(&w2, &w1, &w0, z[13]);
803
88.7k
   ws[13] = w0 * p_dash;
804
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[0]);
805
88.7k
   w0 = w1; w1 = w2; w2 = 0;
806
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[14]);
807
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[13]);
808
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[12]);
809
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[11]);
810
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[10]);
811
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[9]);
812
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[8]);
813
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
814
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[6]);
815
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[5]);
816
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[4]);
817
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[3]);
818
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[2]);
819
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[1]);
820
88.7k
   word3_add(&w2, &w1, &w0, z[14]);
821
88.7k
   ws[14] = w0 * p_dash;
822
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[0]);
823
88.7k
   w0 = w1; w1 = w2; w2 = 0;
824
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[15]);
825
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[14]);
826
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[13]);
827
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[12]);
828
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[11]);
829
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[10]);
830
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[9]);
831
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[8]);
832
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[7]);
833
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[6]);
834
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[5]);
835
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[4]);
836
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[3]);
837
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[2]);
838
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[1]);
839
88.7k
   word3_add(&w2, &w1, &w0, z[15]);
840
88.7k
   ws[15] = w0 * p_dash;
841
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[0]);
842
88.7k
   w0 = w1; w1 = w2; w2 = 0;
843
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[16]);
844
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[15]);
845
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[14]);
846
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[13]);
847
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[12]);
848
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[11]);
849
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[10]);
850
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[9]);
851
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[8]);
852
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[7]);
853
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[6]);
854
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[5]);
855
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[4]);
856
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[3]);
857
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[2]);
858
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[1]);
859
88.7k
   word3_add(&w2, &w1, &w0, z[16]);
860
88.7k
   ws[16] = w0 * p_dash;
861
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[0]);
862
88.7k
   w0 = w1; w1 = w2; w2 = 0;
863
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[17]);
864
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[16]);
865
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[15]);
866
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[14]);
867
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[13]);
868
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[12]);
869
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[11]);
870
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[10]);
871
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[9]);
872
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[8]);
873
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[7]);
874
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[6]);
875
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[5]);
876
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[4]);
877
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[3]);
878
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[2]);
879
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[1]);
880
88.7k
   word3_add(&w2, &w1, &w0, z[17]);
881
88.7k
   ws[17] = w0 * p_dash;
882
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[0]);
883
88.7k
   w0 = w1; w1 = w2; w2 = 0;
884
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[18]);
885
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[17]);
886
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[16]);
887
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[15]);
888
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[14]);
889
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[13]);
890
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[12]);
891
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[11]);
892
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[10]);
893
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[9]);
894
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[8]);
895
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[7]);
896
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[6]);
897
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[5]);
898
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[4]);
899
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[3]);
900
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[2]);
901
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[1]);
902
88.7k
   word3_add(&w2, &w1, &w0, z[18]);
903
88.7k
   ws[18] = w0 * p_dash;
904
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[0]);
905
88.7k
   w0 = w1; w1 = w2; w2 = 0;
906
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[19]);
907
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[18]);
908
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[17]);
909
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[16]);
910
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[15]);
911
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[14]);
912
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[13]);
913
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[12]);
914
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[11]);
915
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[10]);
916
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[9]);
917
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[8]);
918
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[7]);
919
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[6]);
920
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[5]);
921
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[4]);
922
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[3]);
923
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[2]);
924
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[1]);
925
88.7k
   word3_add(&w2, &w1, &w0, z[19]);
926
88.7k
   ws[19] = w0 * p_dash;
927
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[0]);
928
88.7k
   w0 = w1; w1 = w2; w2 = 0;
929
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[20]);
930
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[19]);
931
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[18]);
932
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[17]);
933
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[16]);
934
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[15]);
935
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[14]);
936
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[13]);
937
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[12]);
938
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[11]);
939
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[10]);
940
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[9]);
941
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[8]);
942
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[7]);
943
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[6]);
944
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[5]);
945
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[4]);
946
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[3]);
947
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[2]);
948
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[1]);
949
88.7k
   word3_add(&w2, &w1, &w0, z[20]);
950
88.7k
   ws[20] = w0 * p_dash;
951
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[0]);
952
88.7k
   w0 = w1; w1 = w2; w2 = 0;
953
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[21]);
954
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[20]);
955
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[19]);
956
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[18]);
957
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[17]);
958
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[16]);
959
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[15]);
960
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[14]);
961
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[13]);
962
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[12]);
963
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[11]);
964
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[10]);
965
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[9]);
966
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[8]);
967
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[7]);
968
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[6]);
969
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[5]);
970
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[4]);
971
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[3]);
972
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[2]);
973
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[1]);
974
88.7k
   word3_add(&w2, &w1, &w0, z[21]);
975
88.7k
   ws[21] = w0 * p_dash;
976
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[0]);
977
88.7k
   w0 = w1; w1 = w2; w2 = 0;
978
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[22]);
979
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[21]);
980
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[20]);
981
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[19]);
982
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[18]);
983
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[17]);
984
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[16]);
985
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[15]);
986
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[14]);
987
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[13]);
988
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[12]);
989
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[11]);
990
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[10]);
991
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[9]);
992
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[8]);
993
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[7]);
994
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[6]);
995
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[5]);
996
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[4]);
997
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[3]);
998
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[2]);
999
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[1]);
1000
88.7k
   word3_add(&w2, &w1, &w0, z[22]);
1001
88.7k
   ws[22] = w0 * p_dash;
1002
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[0]);
1003
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1004
88.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[23]);
1005
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[22]);
1006
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[21]);
1007
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[20]);
1008
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[19]);
1009
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[18]);
1010
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[17]);
1011
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[16]);
1012
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[15]);
1013
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[14]);
1014
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[13]);
1015
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[12]);
1016
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[11]);
1017
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[10]);
1018
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[9]);
1019
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[8]);
1020
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[7]);
1021
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[6]);
1022
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[5]);
1023
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[4]);
1024
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[3]);
1025
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[2]);
1026
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[1]);
1027
88.7k
   word3_add(&w2, &w1, &w0, z[23]);
1028
88.7k
   ws[23] = w0 * p_dash;
1029
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[0]);
1030
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1031
88.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[23]);
1032
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[22]);
1033
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[21]);
1034
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[20]);
1035
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[19]);
1036
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[18]);
1037
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[17]);
1038
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[16]);
1039
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[15]);
1040
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[14]);
1041
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[13]);
1042
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[12]);
1043
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[11]);
1044
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[10]);
1045
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[9]);
1046
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[8]);
1047
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[7]);
1048
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[6]);
1049
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[5]);
1050
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[4]);
1051
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[3]);
1052
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[2]);
1053
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[1]);
1054
88.7k
   word3_add(&w2, &w1, &w0, z[24]);
1055
88.7k
   ws[0] = w0;
1056
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1057
88.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[23]);
1058
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[22]);
1059
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[21]);
1060
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[20]);
1061
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[19]);
1062
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[18]);
1063
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[17]);
1064
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[16]);
1065
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[15]);
1066
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[14]);
1067
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[13]);
1068
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[12]);
1069
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[11]);
1070
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[10]);
1071
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[9]);
1072
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[8]);
1073
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[7]);
1074
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[6]);
1075
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[5]);
1076
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[4]);
1077
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[3]);
1078
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[2]);
1079
88.7k
   word3_add(&w2, &w1, &w0, z[25]);
1080
88.7k
   ws[1] = w0;
1081
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1082
88.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[23]);
1083
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[22]);
1084
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[21]);
1085
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[20]);
1086
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[19]);
1087
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[18]);
1088
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[17]);
1089
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[16]);
1090
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[15]);
1091
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[14]);
1092
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[13]);
1093
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[12]);
1094
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[11]);
1095
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[10]);
1096
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[9]);
1097
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[8]);
1098
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[7]);
1099
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[6]);
1100
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[5]);
1101
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[4]);
1102
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[3]);
1103
88.7k
   word3_add(&w2, &w1, &w0, z[26]);
1104
88.7k
   ws[2] = w0;
1105
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1106
88.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[23]);
1107
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[22]);
1108
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[21]);
1109
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[20]);
1110
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[19]);
1111
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[18]);
1112
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[17]);
1113
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[16]);
1114
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[15]);
1115
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[14]);
1116
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[13]);
1117
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[12]);
1118
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[11]);
1119
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[10]);
1120
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[9]);
1121
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[8]);
1122
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[7]);
1123
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[6]);
1124
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[5]);
1125
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[4]);
1126
88.7k
   word3_add(&w2, &w1, &w0, z[27]);
1127
88.7k
   ws[3] = w0;
1128
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1129
88.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[23]);
1130
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[22]);
1131
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[21]);
1132
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[20]);
1133
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[19]);
1134
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[18]);
1135
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[17]);
1136
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[16]);
1137
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[15]);
1138
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[14]);
1139
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[13]);
1140
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[12]);
1141
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[11]);
1142
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[10]);
1143
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[9]);
1144
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[8]);
1145
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[7]);
1146
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[6]);
1147
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[5]);
1148
88.7k
   word3_add(&w2, &w1, &w0, z[28]);
1149
88.7k
   ws[4] = w0;
1150
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1151
88.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[23]);
1152
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[22]);
1153
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[21]);
1154
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[20]);
1155
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[19]);
1156
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[18]);
1157
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[17]);
1158
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[16]);
1159
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[15]);
1160
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[14]);
1161
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[13]);
1162
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[12]);
1163
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[11]);
1164
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[10]);
1165
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[9]);
1166
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[8]);
1167
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[7]);
1168
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[6]);
1169
88.7k
   word3_add(&w2, &w1, &w0, z[29]);
1170
88.7k
   ws[5] = w0;
1171
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1172
88.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[23]);
1173
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[22]);
1174
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[21]);
1175
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[20]);
1176
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[19]);
1177
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[18]);
1178
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[17]);
1179
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[16]);
1180
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[15]);
1181
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[14]);
1182
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[13]);
1183
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[12]);
1184
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[11]);
1185
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[10]);
1186
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[9]);
1187
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[8]);
1188
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[7]);
1189
88.7k
   word3_add(&w2, &w1, &w0, z[30]);
1190
88.7k
   ws[6] = w0;
1191
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1192
88.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[23]);
1193
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[22]);
1194
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[21]);
1195
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[20]);
1196
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[19]);
1197
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[18]);
1198
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[17]);
1199
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[16]);
1200
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[15]);
1201
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[14]);
1202
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[13]);
1203
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[12]);
1204
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[11]);
1205
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[10]);
1206
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[9]);
1207
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[8]);
1208
88.7k
   word3_add(&w2, &w1, &w0, z[31]);
1209
88.7k
   ws[7] = w0;
1210
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1211
88.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[23]);
1212
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[22]);
1213
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[21]);
1214
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[20]);
1215
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[19]);
1216
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[18]);
1217
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[17]);
1218
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[16]);
1219
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[15]);
1220
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[14]);
1221
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[13]);
1222
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[12]);
1223
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[11]);
1224
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[10]);
1225
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[9]);
1226
88.7k
   word3_add(&w2, &w1, &w0, z[32]);
1227
88.7k
   ws[8] = w0;
1228
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1229
88.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[23]);
1230
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[22]);
1231
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[21]);
1232
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[20]);
1233
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[19]);
1234
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[18]);
1235
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[17]);
1236
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[16]);
1237
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[15]);
1238
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[14]);
1239
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[13]);
1240
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[12]);
1241
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[11]);
1242
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[10]);
1243
88.7k
   word3_add(&w2, &w1, &w0, z[33]);
1244
88.7k
   ws[9] = w0;
1245
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1246
88.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[23]);
1247
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[22]);
1248
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[21]);
1249
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[20]);
1250
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[19]);
1251
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[18]);
1252
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[17]);
1253
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[16]);
1254
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[15]);
1255
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[14]);
1256
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[13]);
1257
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[12]);
1258
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[11]);
1259
88.7k
   word3_add(&w2, &w1, &w0, z[34]);
1260
88.7k
   ws[10] = w0;
1261
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1262
88.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[23]);
1263
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[22]);
1264
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[21]);
1265
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[20]);
1266
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[19]);
1267
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[18]);
1268
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[17]);
1269
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[16]);
1270
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[15]);
1271
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[14]);
1272
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[13]);
1273
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[12]);
1274
88.7k
   word3_add(&w2, &w1, &w0, z[35]);
1275
88.7k
   ws[11] = w0;
1276
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1277
88.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[23]);
1278
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[22]);
1279
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[21]);
1280
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[20]);
1281
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[19]);
1282
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[18]);
1283
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[17]);
1284
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[16]);
1285
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[15]);
1286
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[14]);
1287
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[13]);
1288
88.7k
   word3_add(&w2, &w1, &w0, z[36]);
1289
88.7k
   ws[12] = w0;
1290
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1291
88.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[23]);
1292
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[22]);
1293
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[21]);
1294
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[20]);
1295
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[19]);
1296
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[18]);
1297
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[17]);
1298
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[16]);
1299
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[15]);
1300
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[14]);
1301
88.7k
   word3_add(&w2, &w1, &w0, z[37]);
1302
88.7k
   ws[13] = w0;
1303
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1304
88.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[23]);
1305
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[22]);
1306
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[21]);
1307
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[20]);
1308
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[19]);
1309
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[18]);
1310
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[17]);
1311
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[16]);
1312
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[15]);
1313
88.7k
   word3_add(&w2, &w1, &w0, z[38]);
1314
88.7k
   ws[14] = w0;
1315
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1316
88.7k
   word3_muladd(&w2, &w1, &w0, ws[16], p[23]);
1317
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[22]);
1318
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[21]);
1319
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[20]);
1320
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[19]);
1321
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[18]);
1322
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[17]);
1323
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[16]);
1324
88.7k
   word3_add(&w2, &w1, &w0, z[39]);
1325
88.7k
   ws[15] = w0;
1326
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1327
88.7k
   word3_muladd(&w2, &w1, &w0, ws[17], p[23]);
1328
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[22]);
1329
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[21]);
1330
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[20]);
1331
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[19]);
1332
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[18]);
1333
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[17]);
1334
88.7k
   word3_add(&w2, &w1, &w0, z[40]);
1335
88.7k
   ws[16] = w0;
1336
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1337
88.7k
   word3_muladd(&w2, &w1, &w0, ws[18], p[23]);
1338
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[22]);
1339
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[21]);
1340
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[20]);
1341
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[19]);
1342
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[18]);
1343
88.7k
   word3_add(&w2, &w1, &w0, z[41]);
1344
88.7k
   ws[17] = w0;
1345
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1346
88.7k
   word3_muladd(&w2, &w1, &w0, ws[19], p[23]);
1347
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[22]);
1348
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[21]);
1349
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[20]);
1350
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[19]);
1351
88.7k
   word3_add(&w2, &w1, &w0, z[42]);
1352
88.7k
   ws[18] = w0;
1353
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1354
88.7k
   word3_muladd(&w2, &w1, &w0, ws[20], p[23]);
1355
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[22]);
1356
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[21]);
1357
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[20]);
1358
88.7k
   word3_add(&w2, &w1, &w0, z[43]);
1359
88.7k
   ws[19] = w0;
1360
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1361
88.7k
   word3_muladd(&w2, &w1, &w0, ws[21], p[23]);
1362
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[22]);
1363
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[21]);
1364
88.7k
   word3_add(&w2, &w1, &w0, z[44]);
1365
88.7k
   ws[20] = w0;
1366
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1367
88.7k
   word3_muladd(&w2, &w1, &w0, ws[22], p[23]);
1368
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[22]);
1369
88.7k
   word3_add(&w2, &w1, &w0, z[45]);
1370
88.7k
   ws[21] = w0;
1371
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1372
88.7k
   word3_muladd(&w2, &w1, &w0, ws[23], p[23]);
1373
88.7k
   word3_add(&w2, &w1, &w0, z[46]);
1374
88.7k
   ws[22] = w0;
1375
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1376
88.7k
   word3_add(&w2, &w1, &w0, z[47]);
1377
88.7k
   ws[23] = w0;
1378
88.7k
   w0 = w1; w1 = w2; w2 = 0;
1379
88.7k
   word3_add(&w2, &w1, &w0, z[49]);
1380
88.7k
   ws[24] = w0;
1381
88.7k
   ws[25] = w1;
1382
88.7k
   word borrow = bigint_sub3(ws + 24 + 1, ws, 24 + 1, p, 24);
1383
88.7k
   CT::conditional_copy_mem(borrow, z, ws, ws + 25, 25);
1384
88.7k
   clear_mem(z + 24, 2*(24+1) - 24);
1385
88.7k
   }
1386
1387
void bigint_monty_redc_32(word z[], const word p[32], word p_dash, word ws[])
1388
3.43M
   {
1389
3.43M
   word w2 = 0, w1 = 0, w0 = 0;
1390
3.43M
   w0 = z[0];
1391
3.43M
   ws[0] = w0 * p_dash;
1392
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
1393
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1394
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
1395
3.43M
   word3_add(&w2, &w1, &w0, z[1]);
1396
3.43M
   ws[1] = w0 * p_dash;
1397
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
1398
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1399
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
1400
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
1401
3.43M
   word3_add(&w2, &w1, &w0, z[2]);
1402
3.43M
   ws[2] = w0 * p_dash;
1403
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
1404
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1405
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
1406
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
1407
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
1408
3.43M
   word3_add(&w2, &w1, &w0, z[3]);
1409
3.43M
   ws[3] = w0 * p_dash;
1410
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
1411
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1412
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
1413
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
1414
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
1415
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
1416
3.43M
   word3_add(&w2, &w1, &w0, z[4]);
1417
3.43M
   ws[4] = w0 * p_dash;
1418
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
1419
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1420
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
1421
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
1422
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
1423
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
1424
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
1425
3.43M
   word3_add(&w2, &w1, &w0, z[5]);
1426
3.43M
   ws[5] = w0 * p_dash;
1427
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
1428
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1429
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
1430
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
1431
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
1432
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
1433
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
1434
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
1435
3.43M
   word3_add(&w2, &w1, &w0, z[6]);
1436
3.43M
   ws[6] = w0 * p_dash;
1437
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
1438
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1439
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
1440
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
1441
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
1442
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
1443
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
1444
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
1445
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
1446
3.43M
   word3_add(&w2, &w1, &w0, z[7]);
1447
3.43M
   ws[7] = w0 * p_dash;
1448
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
1449
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1450
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[8]);
1451
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
1452
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
1453
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
1454
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
1455
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
1456
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
1457
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
1458
3.43M
   word3_add(&w2, &w1, &w0, z[8]);
1459
3.43M
   ws[8] = w0 * p_dash;
1460
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[0]);
1461
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1462
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[9]);
1463
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[8]);
1464
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
1465
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
1466
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
1467
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
1468
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
1469
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
1470
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[1]);
1471
3.43M
   word3_add(&w2, &w1, &w0, z[9]);
1472
3.43M
   ws[9] = w0 * p_dash;
1473
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[0]);
1474
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1475
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[10]);
1476
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[9]);
1477
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[8]);
1478
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
1479
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
1480
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
1481
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
1482
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
1483
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[2]);
1484
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[1]);
1485
3.43M
   word3_add(&w2, &w1, &w0, z[10]);
1486
3.43M
   ws[10] = w0 * p_dash;
1487
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[0]);
1488
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1489
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[11]);
1490
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[10]);
1491
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[9]);
1492
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[8]);
1493
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
1494
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
1495
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
1496
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
1497
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[3]);
1498
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[2]);
1499
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[1]);
1500
3.43M
   word3_add(&w2, &w1, &w0, z[11]);
1501
3.43M
   ws[11] = w0 * p_dash;
1502
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[0]);
1503
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1504
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[12]);
1505
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[11]);
1506
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[10]);
1507
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[9]);
1508
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[8]);
1509
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
1510
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
1511
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
1512
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[4]);
1513
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[3]);
1514
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[2]);
1515
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[1]);
1516
3.43M
   word3_add(&w2, &w1, &w0, z[12]);
1517
3.43M
   ws[12] = w0 * p_dash;
1518
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[0]);
1519
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1520
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[13]);
1521
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[12]);
1522
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[11]);
1523
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[10]);
1524
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[9]);
1525
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[8]);
1526
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
1527
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
1528
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[5]);
1529
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[4]);
1530
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[3]);
1531
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[2]);
1532
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[1]);
1533
3.43M
   word3_add(&w2, &w1, &w0, z[13]);
1534
3.43M
   ws[13] = w0 * p_dash;
1535
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[0]);
1536
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1537
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[14]);
1538
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[13]);
1539
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[12]);
1540
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[11]);
1541
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[10]);
1542
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[9]);
1543
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[8]);
1544
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
1545
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[6]);
1546
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[5]);
1547
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[4]);
1548
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[3]);
1549
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[2]);
1550
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[1]);
1551
3.43M
   word3_add(&w2, &w1, &w0, z[14]);
1552
3.43M
   ws[14] = w0 * p_dash;
1553
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[0]);
1554
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1555
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[15]);
1556
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[14]);
1557
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[13]);
1558
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[12]);
1559
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[11]);
1560
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[10]);
1561
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[9]);
1562
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[8]);
1563
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[7]);
1564
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[6]);
1565
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[5]);
1566
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[4]);
1567
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[3]);
1568
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[2]);
1569
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[1]);
1570
3.43M
   word3_add(&w2, &w1, &w0, z[15]);
1571
3.43M
   ws[15] = w0 * p_dash;
1572
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[0]);
1573
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1574
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[16]);
1575
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[15]);
1576
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[14]);
1577
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[13]);
1578
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[12]);
1579
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[11]);
1580
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[10]);
1581
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[9]);
1582
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[8]);
1583
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[7]);
1584
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[6]);
1585
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[5]);
1586
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[4]);
1587
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[3]);
1588
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[2]);
1589
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[1]);
1590
3.43M
   word3_add(&w2, &w1, &w0, z[16]);
1591
3.43M
   ws[16] = w0 * p_dash;
1592
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[0]);
1593
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1594
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[17]);
1595
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[16]);
1596
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[15]);
1597
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[14]);
1598
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[13]);
1599
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[12]);
1600
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[11]);
1601
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[10]);
1602
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[9]);
1603
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[8]);
1604
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[7]);
1605
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[6]);
1606
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[5]);
1607
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[4]);
1608
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[3]);
1609
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[2]);
1610
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[1]);
1611
3.43M
   word3_add(&w2, &w1, &w0, z[17]);
1612
3.43M
   ws[17] = w0 * p_dash;
1613
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[0]);
1614
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1615
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[18]);
1616
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[17]);
1617
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[16]);
1618
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[15]);
1619
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[14]);
1620
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[13]);
1621
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[12]);
1622
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[11]);
1623
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[10]);
1624
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[9]);
1625
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[8]);
1626
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[7]);
1627
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[6]);
1628
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[5]);
1629
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[4]);
1630
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[3]);
1631
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[2]);
1632
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[1]);
1633
3.43M
   word3_add(&w2, &w1, &w0, z[18]);
1634
3.43M
   ws[18] = w0 * p_dash;
1635
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[0]);
1636
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1637
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[19]);
1638
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[18]);
1639
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[17]);
1640
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[16]);
1641
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[15]);
1642
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[14]);
1643
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[13]);
1644
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[12]);
1645
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[11]);
1646
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[10]);
1647
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[9]);
1648
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[8]);
1649
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[7]);
1650
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[6]);
1651
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[5]);
1652
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[4]);
1653
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[3]);
1654
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[2]);
1655
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[1]);
1656
3.43M
   word3_add(&w2, &w1, &w0, z[19]);
1657
3.43M
   ws[19] = w0 * p_dash;
1658
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[0]);
1659
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1660
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[20]);
1661
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[19]);
1662
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[18]);
1663
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[17]);
1664
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[16]);
1665
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[15]);
1666
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[14]);
1667
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[13]);
1668
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[12]);
1669
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[11]);
1670
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[10]);
1671
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[9]);
1672
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[8]);
1673
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[7]);
1674
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[6]);
1675
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[5]);
1676
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[4]);
1677
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[3]);
1678
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[2]);
1679
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[1]);
1680
3.43M
   word3_add(&w2, &w1, &w0, z[20]);
1681
3.43M
   ws[20] = w0 * p_dash;
1682
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[0]);
1683
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1684
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[21]);
1685
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[20]);
1686
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[19]);
1687
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[18]);
1688
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[17]);
1689
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[16]);
1690
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[15]);
1691
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[14]);
1692
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[13]);
1693
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[12]);
1694
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[11]);
1695
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[10]);
1696
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[9]);
1697
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[8]);
1698
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[7]);
1699
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[6]);
1700
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[5]);
1701
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[4]);
1702
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[3]);
1703
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[2]);
1704
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[1]);
1705
3.43M
   word3_add(&w2, &w1, &w0, z[21]);
1706
3.43M
   ws[21] = w0 * p_dash;
1707
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[0]);
1708
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1709
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[22]);
1710
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[21]);
1711
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[20]);
1712
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[19]);
1713
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[18]);
1714
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[17]);
1715
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[16]);
1716
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[15]);
1717
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[14]);
1718
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[13]);
1719
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[12]);
1720
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[11]);
1721
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[10]);
1722
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[9]);
1723
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[8]);
1724
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[7]);
1725
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[6]);
1726
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[5]);
1727
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[4]);
1728
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[3]);
1729
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[2]);
1730
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[1]);
1731
3.43M
   word3_add(&w2, &w1, &w0, z[22]);
1732
3.43M
   ws[22] = w0 * p_dash;
1733
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[0]);
1734
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1735
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[23]);
1736
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[22]);
1737
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[21]);
1738
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[20]);
1739
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[19]);
1740
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[18]);
1741
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[17]);
1742
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[16]);
1743
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[15]);
1744
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[14]);
1745
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[13]);
1746
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[12]);
1747
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[11]);
1748
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[10]);
1749
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[9]);
1750
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[8]);
1751
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[7]);
1752
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[6]);
1753
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[5]);
1754
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[4]);
1755
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[3]);
1756
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[2]);
1757
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[1]);
1758
3.43M
   word3_add(&w2, &w1, &w0, z[23]);
1759
3.43M
   ws[23] = w0 * p_dash;
1760
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[0]);
1761
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1762
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[24]);
1763
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[23]);
1764
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[22]);
1765
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[21]);
1766
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[20]);
1767
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[19]);
1768
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[18]);
1769
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[17]);
1770
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[16]);
1771
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[15]);
1772
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[14]);
1773
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[13]);
1774
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[12]);
1775
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[11]);
1776
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[10]);
1777
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[9]);
1778
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[8]);
1779
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[7]);
1780
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[6]);
1781
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[5]);
1782
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[4]);
1783
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[3]);
1784
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[2]);
1785
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[1]);
1786
3.43M
   word3_add(&w2, &w1, &w0, z[24]);
1787
3.43M
   ws[24] = w0 * p_dash;
1788
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[0]);
1789
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1790
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[25]);
1791
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[24]);
1792
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[23]);
1793
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[22]);
1794
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[21]);
1795
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[20]);
1796
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[19]);
1797
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[18]);
1798
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[17]);
1799
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[16]);
1800
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[15]);
1801
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[14]);
1802
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[13]);
1803
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[12]);
1804
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[11]);
1805
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[10]);
1806
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[9]);
1807
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[8]);
1808
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[7]);
1809
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[6]);
1810
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[5]);
1811
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[4]);
1812
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[3]);
1813
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[2]);
1814
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[1]);
1815
3.43M
   word3_add(&w2, &w1, &w0, z[25]);
1816
3.43M
   ws[25] = w0 * p_dash;
1817
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[0]);
1818
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1819
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[26]);
1820
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[25]);
1821
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[24]);
1822
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[23]);
1823
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[22]);
1824
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[21]);
1825
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[20]);
1826
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[19]);
1827
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[18]);
1828
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[17]);
1829
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[16]);
1830
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[15]);
1831
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[14]);
1832
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[13]);
1833
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[12]);
1834
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[11]);
1835
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[10]);
1836
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[9]);
1837
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[8]);
1838
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[7]);
1839
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[6]);
1840
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[5]);
1841
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[4]);
1842
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[3]);
1843
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[2]);
1844
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[1]);
1845
3.43M
   word3_add(&w2, &w1, &w0, z[26]);
1846
3.43M
   ws[26] = w0 * p_dash;
1847
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[0]);
1848
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1849
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[27]);
1850
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[26]);
1851
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[25]);
1852
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[24]);
1853
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[23]);
1854
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[22]);
1855
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[21]);
1856
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[20]);
1857
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[19]);
1858
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[18]);
1859
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[17]);
1860
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[16]);
1861
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[15]);
1862
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[14]);
1863
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[13]);
1864
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[12]);
1865
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[11]);
1866
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[10]);
1867
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[9]);
1868
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[8]);
1869
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[7]);
1870
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[6]);
1871
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[5]);
1872
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[4]);
1873
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[3]);
1874
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[2]);
1875
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[1]);
1876
3.43M
   word3_add(&w2, &w1, &w0, z[27]);
1877
3.43M
   ws[27] = w0 * p_dash;
1878
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[0]);
1879
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1880
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[28]);
1881
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[27]);
1882
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[26]);
1883
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[25]);
1884
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[24]);
1885
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[23]);
1886
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[22]);
1887
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[21]);
1888
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[20]);
1889
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[19]);
1890
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[18]);
1891
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[17]);
1892
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[16]);
1893
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[15]);
1894
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[14]);
1895
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[13]);
1896
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[12]);
1897
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[11]);
1898
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[10]);
1899
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[9]);
1900
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[8]);
1901
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[7]);
1902
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[6]);
1903
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[5]);
1904
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[4]);
1905
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[3]);
1906
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[2]);
1907
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[1]);
1908
3.43M
   word3_add(&w2, &w1, &w0, z[28]);
1909
3.43M
   ws[28] = w0 * p_dash;
1910
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[0]);
1911
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1912
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[29]);
1913
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[28]);
1914
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[27]);
1915
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[26]);
1916
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[25]);
1917
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[24]);
1918
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[23]);
1919
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[22]);
1920
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[21]);
1921
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[20]);
1922
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[19]);
1923
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[18]);
1924
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[17]);
1925
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[16]);
1926
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[15]);
1927
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[14]);
1928
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[13]);
1929
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[12]);
1930
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[11]);
1931
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[10]);
1932
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[9]);
1933
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[8]);
1934
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[7]);
1935
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[6]);
1936
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[5]);
1937
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[4]);
1938
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[3]);
1939
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[2]);
1940
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[1]);
1941
3.43M
   word3_add(&w2, &w1, &w0, z[29]);
1942
3.43M
   ws[29] = w0 * p_dash;
1943
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[0]);
1944
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1945
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[30]);
1946
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[29]);
1947
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[28]);
1948
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[27]);
1949
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[26]);
1950
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[25]);
1951
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[24]);
1952
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[23]);
1953
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[22]);
1954
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[21]);
1955
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[20]);
1956
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[19]);
1957
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[18]);
1958
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[17]);
1959
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[16]);
1960
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[15]);
1961
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[14]);
1962
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[13]);
1963
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[12]);
1964
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[11]);
1965
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[10]);
1966
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[9]);
1967
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[8]);
1968
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[7]);
1969
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[6]);
1970
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[5]);
1971
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[4]);
1972
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[3]);
1973
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[2]);
1974
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[1]);
1975
3.43M
   word3_add(&w2, &w1, &w0, z[30]);
1976
3.43M
   ws[30] = w0 * p_dash;
1977
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[0]);
1978
3.43M
   w0 = w1; w1 = w2; w2 = 0;
1979
3.43M
   word3_muladd(&w2, &w1, &w0, ws[0], p[31]);
1980
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[30]);
1981
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[29]);
1982
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[28]);
1983
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[27]);
1984
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[26]);
1985
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[25]);
1986
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[24]);
1987
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[23]);
1988
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[22]);
1989
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[21]);
1990
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[20]);
1991
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[19]);
1992
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[18]);
1993
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[17]);
1994
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[16]);
1995
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[15]);
1996
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[14]);
1997
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[13]);
1998
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[12]);
1999
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[11]);
2000
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[10]);
2001
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[9]);
2002
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[8]);
2003
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[7]);
2004
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[6]);
2005
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[5]);
2006
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[4]);
2007
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[3]);
2008
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[2]);
2009
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[1]);
2010
3.43M
   word3_add(&w2, &w1, &w0, z[31]);
2011
3.43M
   ws[31] = w0 * p_dash;
2012
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[0]);
2013
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2014
3.43M
   word3_muladd(&w2, &w1, &w0, ws[1], p[31]);
2015
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[30]);
2016
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[29]);
2017
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[28]);
2018
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[27]);
2019
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[26]);
2020
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[25]);
2021
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[24]);
2022
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[23]);
2023
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[22]);
2024
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[21]);
2025
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[20]);
2026
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[19]);
2027
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[18]);
2028
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[17]);
2029
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[16]);
2030
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[15]);
2031
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[14]);
2032
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[13]);
2033
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[12]);
2034
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[11]);
2035
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[10]);
2036
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[9]);
2037
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[8]);
2038
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[7]);
2039
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[6]);
2040
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[5]);
2041
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[4]);
2042
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[3]);
2043
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[2]);
2044
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[1]);
2045
3.43M
   word3_add(&w2, &w1, &w0, z[32]);
2046
3.43M
   ws[0] = w0;
2047
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2048
3.43M
   word3_muladd(&w2, &w1, &w0, ws[2], p[31]);
2049
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[30]);
2050
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[29]);
2051
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[28]);
2052
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[27]);
2053
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[26]);
2054
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[25]);
2055
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[24]);
2056
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[23]);
2057
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[22]);
2058
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[21]);
2059
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[20]);
2060
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[19]);
2061
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[18]);
2062
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[17]);
2063
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[16]);
2064
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[15]);
2065
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[14]);
2066
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[13]);
2067
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[12]);
2068
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[11]);
2069
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[10]);
2070
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[9]);
2071
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[8]);
2072
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[7]);
2073
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[6]);
2074
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[5]);
2075
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[4]);
2076
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[3]);
2077
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[2]);
2078
3.43M
   word3_add(&w2, &w1, &w0, z[33]);
2079
3.43M
   ws[1] = w0;
2080
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2081
3.43M
   word3_muladd(&w2, &w1, &w0, ws[3], p[31]);
2082
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[30]);
2083
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[29]);
2084
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[28]);
2085
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[27]);
2086
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[26]);
2087
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[25]);
2088
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[24]);
2089
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[23]);
2090
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[22]);
2091
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[21]);
2092
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[20]);
2093
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[19]);
2094
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[18]);
2095
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[17]);
2096
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[16]);
2097
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[15]);
2098
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[14]);
2099
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[13]);
2100
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[12]);
2101
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[11]);
2102
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[10]);
2103
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[9]);
2104
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[8]);
2105
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[7]);
2106
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[6]);
2107
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[5]);
2108
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[4]);
2109
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[3]);
2110
3.43M
   word3_add(&w2, &w1, &w0, z[34]);
2111
3.43M
   ws[2] = w0;
2112
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2113
3.43M
   word3_muladd(&w2, &w1, &w0, ws[4], p[31]);
2114
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[30]);
2115
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[29]);
2116
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[28]);
2117
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[27]);
2118
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[26]);
2119
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[25]);
2120
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[24]);
2121
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[23]);
2122
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[22]);
2123
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[21]);
2124
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[20]);
2125
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[19]);
2126
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[18]);
2127
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[17]);
2128
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[16]);
2129
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[15]);
2130
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[14]);
2131
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[13]);
2132
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[12]);
2133
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[11]);
2134
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[10]);
2135
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[9]);
2136
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[8]);
2137
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[7]);
2138
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[6]);
2139
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[5]);
2140
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[4]);
2141
3.43M
   word3_add(&w2, &w1, &w0, z[35]);
2142
3.43M
   ws[3] = w0;
2143
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2144
3.43M
   word3_muladd(&w2, &w1, &w0, ws[5], p[31]);
2145
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[30]);
2146
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[29]);
2147
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[28]);
2148
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[27]);
2149
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[26]);
2150
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[25]);
2151
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[24]);
2152
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[23]);
2153
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[22]);
2154
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[21]);
2155
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[20]);
2156
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[19]);
2157
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[18]);
2158
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[17]);
2159
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[16]);
2160
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[15]);
2161
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[14]);
2162
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[13]);
2163
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[12]);
2164
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[11]);
2165
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[10]);
2166
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[9]);
2167
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[8]);
2168
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[7]);
2169
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[6]);
2170
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[5]);
2171
3.43M
   word3_add(&w2, &w1, &w0, z[36]);
2172
3.43M
   ws[4] = w0;
2173
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2174
3.43M
   word3_muladd(&w2, &w1, &w0, ws[6], p[31]);
2175
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[30]);
2176
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[29]);
2177
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[28]);
2178
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[27]);
2179
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[26]);
2180
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[25]);
2181
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[24]);
2182
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[23]);
2183
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[22]);
2184
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[21]);
2185
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[20]);
2186
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[19]);
2187
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[18]);
2188
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[17]);
2189
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[16]);
2190
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[15]);
2191
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[14]);
2192
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[13]);
2193
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[12]);
2194
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[11]);
2195
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[10]);
2196
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[9]);
2197
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[8]);
2198
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[7]);
2199
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[6]);
2200
3.43M
   word3_add(&w2, &w1, &w0, z[37]);
2201
3.43M
   ws[5] = w0;
2202
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2203
3.43M
   word3_muladd(&w2, &w1, &w0, ws[7], p[31]);
2204
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[30]);
2205
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[29]);
2206
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[28]);
2207
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[27]);
2208
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[26]);
2209
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[25]);
2210
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[24]);
2211
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[23]);
2212
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[22]);
2213
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[21]);
2214
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[20]);
2215
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[19]);
2216
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[18]);
2217
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[17]);
2218
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[16]);
2219
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[15]);
2220
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[14]);
2221
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[13]);
2222
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[12]);
2223
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[11]);
2224
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[10]);
2225
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[9]);
2226
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[8]);
2227
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[7]);
2228
3.43M
   word3_add(&w2, &w1, &w0, z[38]);
2229
3.43M
   ws[6] = w0;
2230
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2231
3.43M
   word3_muladd(&w2, &w1, &w0, ws[8], p[31]);
2232
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[30]);
2233
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[29]);
2234
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[28]);
2235
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[27]);
2236
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[26]);
2237
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[25]);
2238
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[24]);
2239
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[23]);
2240
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[22]);
2241
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[21]);
2242
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[20]);
2243
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[19]);
2244
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[18]);
2245
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[17]);
2246
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[16]);
2247
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[15]);
2248
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[14]);
2249
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[13]);
2250
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[12]);
2251
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[11]);
2252
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[10]);
2253
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[9]);
2254
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[8]);
2255
3.43M
   word3_add(&w2, &w1, &w0, z[39]);
2256
3.43M
   ws[7] = w0;
2257
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2258
3.43M
   word3_muladd(&w2, &w1, &w0, ws[9], p[31]);
2259
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[30]);
2260
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[29]);
2261
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[28]);
2262
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[27]);
2263
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[26]);
2264
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[25]);
2265
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[24]);
2266
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[23]);
2267
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[22]);
2268
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[21]);
2269
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[20]);
2270
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[19]);
2271
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[18]);
2272
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[17]);
2273
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[16]);
2274
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[15]);
2275
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[14]);
2276
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[13]);
2277
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[12]);
2278
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[11]);
2279
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[10]);
2280
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[9]);
2281
3.43M
   word3_add(&w2, &w1, &w0, z[40]);
2282
3.43M
   ws[8] = w0;
2283
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2284
3.43M
   word3_muladd(&w2, &w1, &w0, ws[10], p[31]);
2285
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[30]);
2286
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[29]);
2287
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[28]);
2288
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[27]);
2289
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[26]);
2290
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[25]);
2291
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[24]);
2292
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[23]);
2293
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[22]);
2294
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[21]);
2295
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[20]);
2296
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[19]);
2297
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[18]);
2298
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[17]);
2299
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[16]);
2300
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[15]);
2301
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[14]);
2302
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[13]);
2303
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[12]);
2304
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[11]);
2305
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[10]);
2306
3.43M
   word3_add(&w2, &w1, &w0, z[41]);
2307
3.43M
   ws[9] = w0;
2308
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2309
3.43M
   word3_muladd(&w2, &w1, &w0, ws[11], p[31]);
2310
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[30]);
2311
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[29]);
2312
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[28]);
2313
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[27]);
2314
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[26]);
2315
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[25]);
2316
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[24]);
2317
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[23]);
2318
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[22]);
2319
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[21]);
2320
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[20]);
2321
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[19]);
2322
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[18]);
2323
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[17]);
2324
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[16]);
2325
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[15]);
2326
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[14]);
2327
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[13]);
2328
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[12]);
2329
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[11]);
2330
3.43M
   word3_add(&w2, &w1, &w0, z[42]);
2331
3.43M
   ws[10] = w0;
2332
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2333
3.43M
   word3_muladd(&w2, &w1, &w0, ws[12], p[31]);
2334
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[30]);
2335
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[29]);
2336
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[28]);
2337
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[27]);
2338
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[26]);
2339
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[25]);
2340
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[24]);
2341
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[23]);
2342
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[22]);
2343
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[21]);
2344
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[20]);
2345
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[19]);
2346
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[18]);
2347
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[17]);
2348
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[16]);
2349
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[15]);
2350
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[14]);
2351
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[13]);
2352
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[12]);
2353
3.43M
   word3_add(&w2, &w1, &w0, z[43]);
2354
3.43M
   ws[11] = w0;
2355
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2356
3.43M
   word3_muladd(&w2, &w1, &w0, ws[13], p[31]);
2357
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[30]);
2358
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[29]);
2359
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[28]);
2360
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[27]);
2361
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[26]);
2362
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[25]);
2363
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[24]);
2364
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[23]);
2365
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[22]);
2366
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[21]);
2367
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[20]);
2368
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[19]);
2369
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[18]);
2370
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[17]);
2371
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[16]);
2372
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[15]);
2373
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[14]);
2374
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[13]);
2375
3.43M
   word3_add(&w2, &w1, &w0, z[44]);
2376
3.43M
   ws[12] = w0;
2377
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2378
3.43M
   word3_muladd(&w2, &w1, &w0, ws[14], p[31]);
2379
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[30]);
2380
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[29]);
2381
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[28]);
2382
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[27]);
2383
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[26]);
2384
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[25]);
2385
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[24]);
2386
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[23]);
2387
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[22]);
2388
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[21]);
2389
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[20]);
2390
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[19]);
2391
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[18]);
2392
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[17]);
2393
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[16]);
2394
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[15]);
2395
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[14]);
2396
3.43M
   word3_add(&w2, &w1, &w0, z[45]);
2397
3.43M
   ws[13] = w0;
2398
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2399
3.43M
   word3_muladd(&w2, &w1, &w0, ws[15], p[31]);
2400
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[30]);
2401
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[29]);
2402
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[28]);
2403
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[27]);
2404
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[26]);
2405
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[25]);
2406
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[24]);
2407
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[23]);
2408
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[22]);
2409
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[21]);
2410
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[20]);
2411
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[19]);
2412
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[18]);
2413
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[17]);
2414
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[16]);
2415
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[15]);
2416
3.43M
   word3_add(&w2, &w1, &w0, z[46]);
2417
3.43M
   ws[14] = w0;
2418
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2419
3.43M
   word3_muladd(&w2, &w1, &w0, ws[16], p[31]);
2420
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[30]);
2421
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[29]);
2422
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[28]);
2423
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[27]);
2424
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[26]);
2425
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[25]);
2426
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[24]);
2427
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[23]);
2428
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[22]);
2429
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[21]);
2430
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[20]);
2431
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[19]);
2432
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[18]);
2433
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[17]);
2434
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[16]);
2435
3.43M
   word3_add(&w2, &w1, &w0, z[47]);
2436
3.43M
   ws[15] = w0;
2437
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2438
3.43M
   word3_muladd(&w2, &w1, &w0, ws[17], p[31]);
2439
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[30]);
2440
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[29]);
2441
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[28]);
2442
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[27]);
2443
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[26]);
2444
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[25]);
2445
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[24]);
2446
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[23]);
2447
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[22]);
2448
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[21]);
2449
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[20]);
2450
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[19]);
2451
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[18]);
2452
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[17]);
2453
3.43M
   word3_add(&w2, &w1, &w0, z[48]);
2454
3.43M
   ws[16] = w0;
2455
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2456
3.43M
   word3_muladd(&w2, &w1, &w0, ws[18], p[31]);
2457
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[30]);
2458
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[29]);
2459
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[28]);
2460
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[27]);
2461
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[26]);
2462
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[25]);
2463
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[24]);
2464
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[23]);
2465
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[22]);
2466
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[21]);
2467
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[20]);
2468
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[19]);
2469
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[18]);
2470
3.43M
   word3_add(&w2, &w1, &w0, z[49]);
2471
3.43M
   ws[17] = w0;
2472
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2473
3.43M
   word3_muladd(&w2, &w1, &w0, ws[19], p[31]);
2474
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[30]);
2475
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[29]);
2476
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[28]);
2477
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[27]);
2478
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[26]);
2479
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[25]);
2480
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[24]);
2481
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[23]);
2482
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[22]);
2483
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[21]);
2484
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[20]);
2485
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[19]);
2486
3.43M
   word3_add(&w2, &w1, &w0, z[50]);
2487
3.43M
   ws[18] = w0;
2488
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2489
3.43M
   word3_muladd(&w2, &w1, &w0, ws[20], p[31]);
2490
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[30]);
2491
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[29]);
2492
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[28]);
2493
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[27]);
2494
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[26]);
2495
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[25]);
2496
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[24]);
2497
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[23]);
2498
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[22]);
2499
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[21]);
2500
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[20]);
2501
3.43M
   word3_add(&w2, &w1, &w0, z[51]);
2502
3.43M
   ws[19] = w0;
2503
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2504
3.43M
   word3_muladd(&w2, &w1, &w0, ws[21], p[31]);
2505
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[30]);
2506
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[29]);
2507
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[28]);
2508
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[27]);
2509
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[26]);
2510
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[25]);
2511
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[24]);
2512
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[23]);
2513
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[22]);
2514
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[21]);
2515
3.43M
   word3_add(&w2, &w1, &w0, z[52]);
2516
3.43M
   ws[20] = w0;
2517
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2518
3.43M
   word3_muladd(&w2, &w1, &w0, ws[22], p[31]);
2519
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[30]);
2520
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[29]);
2521
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[28]);
2522
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[27]);
2523
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[26]);
2524
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[25]);
2525
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[24]);
2526
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[23]);
2527
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[22]);
2528
3.43M
   word3_add(&w2, &w1, &w0, z[53]);
2529
3.43M
   ws[21] = w0;
2530
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2531
3.43M
   word3_muladd(&w2, &w1, &w0, ws[23], p[31]);
2532
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[30]);
2533
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[29]);
2534
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[28]);
2535
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[27]);
2536
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[26]);
2537
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[25]);
2538
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[24]);
2539
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[23]);
2540
3.43M
   word3_add(&w2, &w1, &w0, z[54]);
2541
3.43M
   ws[22] = w0;
2542
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2543
3.43M
   word3_muladd(&w2, &w1, &w0, ws[24], p[31]);
2544
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[30]);
2545
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[29]);
2546
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[28]);
2547
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[27]);
2548
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[26]);
2549
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[25]);
2550
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[24]);
2551
3.43M
   word3_add(&w2, &w1, &w0, z[55]);
2552
3.43M
   ws[23] = w0;
2553
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2554
3.43M
   word3_muladd(&w2, &w1, &w0, ws[25], p[31]);
2555
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[30]);
2556
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[29]);
2557
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[28]);
2558
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[27]);
2559
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[26]);
2560
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[25]);
2561
3.43M
   word3_add(&w2, &w1, &w0, z[56]);
2562
3.43M
   ws[24] = w0;
2563
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2564
3.43M
   word3_muladd(&w2, &w1, &w0, ws[26], p[31]);
2565
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[30]);
2566
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[29]);
2567
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[28]);
2568
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[27]);
2569
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[26]);
2570
3.43M
   word3_add(&w2, &w1, &w0, z[57]);
2571
3.43M
   ws[25] = w0;
2572
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2573
3.43M
   word3_muladd(&w2, &w1, &w0, ws[27], p[31]);
2574
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[30]);
2575
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[29]);
2576
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[28]);
2577
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[27]);
2578
3.43M
   word3_add(&w2, &w1, &w0, z[58]);
2579
3.43M
   ws[26] = w0;
2580
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2581
3.43M
   word3_muladd(&w2, &w1, &w0, ws[28], p[31]);
2582
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[30]);
2583
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[29]);
2584
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[28]);
2585
3.43M
   word3_add(&w2, &w1, &w0, z[59]);
2586
3.43M
   ws[27] = w0;
2587
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2588
3.43M
   word3_muladd(&w2, &w1, &w0, ws[29], p[31]);
2589
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[30]);
2590
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[29]);
2591
3.43M
   word3_add(&w2, &w1, &w0, z[60]);
2592
3.43M
   ws[28] = w0;
2593
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2594
3.43M
   word3_muladd(&w2, &w1, &w0, ws[30], p[31]);
2595
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[30]);
2596
3.43M
   word3_add(&w2, &w1, &w0, z[61]);
2597
3.43M
   ws[29] = w0;
2598
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2599
3.43M
   word3_muladd(&w2, &w1, &w0, ws[31], p[31]);
2600
3.43M
   word3_add(&w2, &w1, &w0, z[62]);
2601
3.43M
   ws[30] = w0;
2602
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2603
3.43M
   word3_add(&w2, &w1, &w0, z[63]);
2604
3.43M
   ws[31] = w0;
2605
3.43M
   w0 = w1; w1 = w2; w2 = 0;
2606
3.43M
   word3_add(&w2, &w1, &w0, z[65]);
2607
3.43M
   ws[32] = w0;
2608
3.43M
   ws[33] = w1;
2609
3.43M
   word borrow = bigint_sub3(ws + 32 + 1, ws, 32 + 1, p, 32);
2610
3.43M
   CT::conditional_copy_mem(borrow, z, ws, ws + 33, 33);
2611
3.43M
   clear_mem(z + 32, 2*(32+1) - 32);
2612
3.43M
   }
2613
2614
}