• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* Copyright 2015, Kenneth MacKay. Licensed under the BSD 2-clause license. */
2
3#ifndef _UECC_ASM_AVR_MULT_SQUARE_H_
4#define _UECC_ASM_AVR_MULT_SQUARE_H_
5
6#define FAST_MULT_ASM_20   \
7    "adiw r30, 10 \n\t"    \
8    "adiw r28, 10 \n\t"    \
9    "ld r2, x+ \n\t"       \
10    "ld r3, x+ \n\t"       \
11    "ld r4, x+ \n\t"       \
12    "ld r5, x+ \n\t"       \
13    "ld r6, x+ \n\t"       \
14    "ld r7, x+ \n\t"       \
15    "ld r8, x+ \n\t"       \
16    "ld r9, x+ \n\t"       \
17    "ld r10, x+ \n\t"      \
18    "ld r11, x+ \n\t"      \
19    "ld r12, y+ \n\t"      \
20    "ld r13, y+ \n\t"      \
21    "ld r14, y+ \n\t"      \
22    "ld r15, y+ \n\t"      \
23    "ld r16, y+ \n\t"      \
24    "ld r17, y+ \n\t"      \
25    "ld r18, y+ \n\t"      \
26    "ld r19, y+ \n\t"      \
27    "ld r20, y+ \n\t"      \
28    "ld r21, y+ \n\t"      \
29    "ldi r25, 0 \n\t"      \
30                           \
31    "ldi r23, 0 \n\t"      \
32    "mul r2, r12 \n\t"     \
33    "st z+, r0 \n\t"       \
34    "mov r22, r1 \n\t"     \
35                           \
36    "ldi r24, 0 \n\t"      \
37    "mul r2, r13 \n\t"     \
38    "add r22, r0 \n\t"     \
39    "adc r23, r1 \n\t"     \
40    "mul r3, r12 \n\t"     \
41    "add r22, r0 \n\t"     \
42    "adc r23, r1 \n\t"     \
43    "adc r24, r25 \n\t"    \
44    "st z+, r22 \n\t"      \
45                           \
46    "ldi r22, 0 \n\t"      \
47    "mul r2, r14 \n\t"     \
48    "add r23, r0 \n\t"     \
49    "adc r24, r1 \n\t"     \
50    "adc r22, r25 \n\t"    \
51    "mul r3, r13 \n\t"     \
52    "add r23, r0 \n\t"     \
53    "adc r24, r1 \n\t"     \
54    "adc r22, r25 \n\t"    \
55    "mul r4, r12 \n\t"     \
56    "add r23, r0 \n\t"     \
57    "adc r24, r1 \n\t"     \
58    "adc r22, r25 \n\t"    \
59    "st z+, r23 \n\t"      \
60                           \
61    "ldi r23, 0 \n\t"      \
62    "mul r2, r15 \n\t"     \
63    "add r24, r0 \n\t"     \
64    "adc r22, r1 \n\t"     \
65    "adc r23, r25 \n\t"    \
66    "mul r3, r14 \n\t"     \
67    "add r24, r0 \n\t"     \
68    "adc r22, r1 \n\t"     \
69    "adc r23, r25 \n\t"    \
70    "mul r4, r13 \n\t"     \
71    "add r24, r0 \n\t"     \
72    "adc r22, r1 \n\t"     \
73    "adc r23, r25 \n\t"    \
74    "mul r5, r12 \n\t"     \
75    "add r24, r0 \n\t"     \
76    "adc r22, r1 \n\t"     \
77    "adc r23, r25 \n\t"    \
78    "st z+, r24 \n\t"      \
79                           \
80    "ldi r24, 0 \n\t"      \
81    "mul r2, r16 \n\t"     \
82    "add r22, r0 \n\t"     \
83    "adc r23, r1 \n\t"     \
84    "adc r24, r25 \n\t"    \
85    "mul r3, r15 \n\t"     \
86    "add r22, r0 \n\t"     \
87    "adc r23, r1 \n\t"     \
88    "adc r24, r25 \n\t"    \
89    "mul r4, r14 \n\t"     \
90    "add r22, r0 \n\t"     \
91    "adc r23, r1 \n\t"     \
92    "adc r24, r25 \n\t"    \
93    "mul r5, r13 \n\t"     \
94    "add r22, r0 \n\t"     \
95    "adc r23, r1 \n\t"     \
96    "adc r24, r25 \n\t"    \
97    "mul r6, r12 \n\t"     \
98    "add r22, r0 \n\t"     \
99    "adc r23, r1 \n\t"     \
100    "adc r24, r25 \n\t"    \
101    "st z+, r22 \n\t"      \
102                           \
103    "ldi r22, 0 \n\t"      \
104    "mul r2, r17 \n\t"     \
105    "add r23, r0 \n\t"     \
106    "adc r24, r1 \n\t"     \
107    "adc r22, r25 \n\t"    \
108    "mul r3, r16 \n\t"     \
109    "add r23, r0 \n\t"     \
110    "adc r24, r1 \n\t"     \
111    "adc r22, r25 \n\t"    \
112    "mul r4, r15 \n\t"     \
113    "add r23, r0 \n\t"     \
114    "adc r24, r1 \n\t"     \
115    "adc r22, r25 \n\t"    \
116    "mul r5, r14 \n\t"     \
117    "add r23, r0 \n\t"     \
118    "adc r24, r1 \n\t"     \
119    "adc r22, r25 \n\t"    \
120    "mul r6, r13 \n\t"     \
121    "add r23, r0 \n\t"     \
122    "adc r24, r1 \n\t"     \
123    "adc r22, r25 \n\t"    \
124    "mul r7, r12 \n\t"     \
125    "add r23, r0 \n\t"     \
126    "adc r24, r1 \n\t"     \
127    "adc r22, r25 \n\t"    \
128    "st z+, r23 \n\t"      \
129                           \
130    "ldi r23, 0 \n\t"      \
131    "mul r2, r18 \n\t"     \
132    "add r24, r0 \n\t"     \
133    "adc r22, r1 \n\t"     \
134    "adc r23, r25 \n\t"    \
135    "mul r3, r17 \n\t"     \
136    "add r24, r0 \n\t"     \
137    "adc r22, r1 \n\t"     \
138    "adc r23, r25 \n\t"    \
139    "mul r4, r16 \n\t"     \
140    "add r24, r0 \n\t"     \
141    "adc r22, r1 \n\t"     \
142    "adc r23, r25 \n\t"    \
143    "mul r5, r15 \n\t"     \
144    "add r24, r0 \n\t"     \
145    "adc r22, r1 \n\t"     \
146    "adc r23, r25 \n\t"    \
147    "mul r6, r14 \n\t"     \
148    "add r24, r0 \n\t"     \
149    "adc r22, r1 \n\t"     \
150    "adc r23, r25 \n\t"    \
151    "mul r7, r13 \n\t"     \
152    "add r24, r0 \n\t"     \
153    "adc r22, r1 \n\t"     \
154    "adc r23, r25 \n\t"    \
155    "mul r8, r12 \n\t"     \
156    "add r24, r0 \n\t"     \
157    "adc r22, r1 \n\t"     \
158    "adc r23, r25 \n\t"    \
159    "st z+, r24 \n\t"      \
160                           \
161    "ldi r24, 0 \n\t"      \
162    "mul r2, r19 \n\t"     \
163    "add r22, r0 \n\t"     \
164    "adc r23, r1 \n\t"     \
165    "adc r24, r25 \n\t"    \
166    "mul r3, r18 \n\t"     \
167    "add r22, r0 \n\t"     \
168    "adc r23, r1 \n\t"     \
169    "adc r24, r25 \n\t"    \
170    "mul r4, r17 \n\t"     \
171    "add r22, r0 \n\t"     \
172    "adc r23, r1 \n\t"     \
173    "adc r24, r25 \n\t"    \
174    "mul r5, r16 \n\t"     \
175    "add r22, r0 \n\t"     \
176    "adc r23, r1 \n\t"     \
177    "adc r24, r25 \n\t"    \
178    "mul r6, r15 \n\t"     \
179    "add r22, r0 \n\t"     \
180    "adc r23, r1 \n\t"     \
181    "adc r24, r25 \n\t"    \
182    "mul r7, r14 \n\t"     \
183    "add r22, r0 \n\t"     \
184    "adc r23, r1 \n\t"     \
185    "adc r24, r25 \n\t"    \
186    "mul r8, r13 \n\t"     \
187    "add r22, r0 \n\t"     \
188    "adc r23, r1 \n\t"     \
189    "adc r24, r25 \n\t"    \
190    "mul r9, r12 \n\t"     \
191    "add r22, r0 \n\t"     \
192    "adc r23, r1 \n\t"     \
193    "adc r24, r25 \n\t"    \
194    "st z+, r22 \n\t"      \
195                           \
196    "ldi r22, 0 \n\t"      \
197    "mul r2, r20 \n\t"     \
198    "add r23, r0 \n\t"     \
199    "adc r24, r1 \n\t"     \
200    "adc r22, r25 \n\t"    \
201    "mul r3, r19 \n\t"     \
202    "add r23, r0 \n\t"     \
203    "adc r24, r1 \n\t"     \
204    "adc r22, r25 \n\t"    \
205    "mul r4, r18 \n\t"     \
206    "add r23, r0 \n\t"     \
207    "adc r24, r1 \n\t"     \
208    "adc r22, r25 \n\t"    \
209    "mul r5, r17 \n\t"     \
210    "add r23, r0 \n\t"     \
211    "adc r24, r1 \n\t"     \
212    "adc r22, r25 \n\t"    \
213    "mul r6, r16 \n\t"     \
214    "add r23, r0 \n\t"     \
215    "adc r24, r1 \n\t"     \
216    "adc r22, r25 \n\t"    \
217    "mul r7, r15 \n\t"     \
218    "add r23, r0 \n\t"     \
219    "adc r24, r1 \n\t"     \
220    "adc r22, r25 \n\t"    \
221    "mul r8, r14 \n\t"     \
222    "add r23, r0 \n\t"     \
223    "adc r24, r1 \n\t"     \
224    "adc r22, r25 \n\t"    \
225    "mul r9, r13 \n\t"     \
226    "add r23, r0 \n\t"     \
227    "adc r24, r1 \n\t"     \
228    "adc r22, r25 \n\t"    \
229    "mul r10, r12 \n\t"    \
230    "add r23, r0 \n\t"     \
231    "adc r24, r1 \n\t"     \
232    "adc r22, r25 \n\t"    \
233    "st z+, r23 \n\t"      \
234                           \
235    "ldi r23, 0 \n\t"      \
236    "mul r2, r21 \n\t"     \
237    "add r24, r0 \n\t"     \
238    "adc r22, r1 \n\t"     \
239    "adc r23, r25 \n\t"    \
240    "mul r3, r20 \n\t"     \
241    "add r24, r0 \n\t"     \
242    "adc r22, r1 \n\t"     \
243    "adc r23, r25 \n\t"    \
244    "mul r4, r19 \n\t"     \
245    "add r24, r0 \n\t"     \
246    "adc r22, r1 \n\t"     \
247    "adc r23, r25 \n\t"    \
248    "mul r5, r18 \n\t"     \
249    "add r24, r0 \n\t"     \
250    "adc r22, r1 \n\t"     \
251    "adc r23, r25 \n\t"    \
252    "mul r6, r17 \n\t"     \
253    "add r24, r0 \n\t"     \
254    "adc r22, r1 \n\t"     \
255    "adc r23, r25 \n\t"    \
256    "mul r7, r16 \n\t"     \
257    "add r24, r0 \n\t"     \
258    "adc r22, r1 \n\t"     \
259    "adc r23, r25 \n\t"    \
260    "mul r8, r15 \n\t"     \
261    "add r24, r0 \n\t"     \
262    "adc r22, r1 \n\t"     \
263    "adc r23, r25 \n\t"    \
264    "mul r9, r14 \n\t"     \
265    "add r24, r0 \n\t"     \
266    "adc r22, r1 \n\t"     \
267    "adc r23, r25 \n\t"    \
268    "mul r10, r13 \n\t"    \
269    "add r24, r0 \n\t"     \
270    "adc r22, r1 \n\t"     \
271    "adc r23, r25 \n\t"    \
272    "mul r11, r12 \n\t"    \
273    "add r24, r0 \n\t"     \
274    "adc r22, r1 \n\t"     \
275    "adc r23, r25 \n\t"    \
276    "st z+, r24 \n\t"      \
277                           \
278    "ldi r24, 0 \n\t"      \
279    "mul r3, r21 \n\t"     \
280    "add r22, r0 \n\t"     \
281    "adc r23, r1 \n\t"     \
282    "adc r24, r25 \n\t"    \
283    "mul r4, r20 \n\t"     \
284    "add r22, r0 \n\t"     \
285    "adc r23, r1 \n\t"     \
286    "adc r24, r25 \n\t"    \
287    "mul r5, r19 \n\t"     \
288    "add r22, r0 \n\t"     \
289    "adc r23, r1 \n\t"     \
290    "adc r24, r25 \n\t"    \
291    "mul r6, r18 \n\t"     \
292    "add r22, r0 \n\t"     \
293    "adc r23, r1 \n\t"     \
294    "adc r24, r25 \n\t"    \
295    "mul r7, r17 \n\t"     \
296    "add r22, r0 \n\t"     \
297    "adc r23, r1 \n\t"     \
298    "adc r24, r25 \n\t"    \
299    "mul r8, r16 \n\t"     \
300    "add r22, r0 \n\t"     \
301    "adc r23, r1 \n\t"     \
302    "adc r24, r25 \n\t"    \
303    "mul r9, r15 \n\t"     \
304    "add r22, r0 \n\t"     \
305    "adc r23, r1 \n\t"     \
306    "adc r24, r25 \n\t"    \
307    "mul r10, r14 \n\t"    \
308    "add r22, r0 \n\t"     \
309    "adc r23, r1 \n\t"     \
310    "adc r24, r25 \n\t"    \
311    "mul r11, r13 \n\t"    \
312    "add r22, r0 \n\t"     \
313    "adc r23, r1 \n\t"     \
314    "adc r24, r25 \n\t"    \
315    "st z+, r22 \n\t"      \
316                           \
317    "ldi r22, 0 \n\t"      \
318    "mul r4, r21 \n\t"     \
319    "add r23, r0 \n\t"     \
320    "adc r24, r1 \n\t"     \
321    "adc r22, r25 \n\t"    \
322    "mul r5, r20 \n\t"     \
323    "add r23, r0 \n\t"     \
324    "adc r24, r1 \n\t"     \
325    "adc r22, r25 \n\t"    \
326    "mul r6, r19 \n\t"     \
327    "add r23, r0 \n\t"     \
328    "adc r24, r1 \n\t"     \
329    "adc r22, r25 \n\t"    \
330    "mul r7, r18 \n\t"     \
331    "add r23, r0 \n\t"     \
332    "adc r24, r1 \n\t"     \
333    "adc r22, r25 \n\t"    \
334    "mul r8, r17 \n\t"     \
335    "add r23, r0 \n\t"     \
336    "adc r24, r1 \n\t"     \
337    "adc r22, r25 \n\t"    \
338    "mul r9, r16 \n\t"     \
339    "add r23, r0 \n\t"     \
340    "adc r24, r1 \n\t"     \
341    "adc r22, r25 \n\t"    \
342    "mul r10, r15 \n\t"    \
343    "add r23, r0 \n\t"     \
344    "adc r24, r1 \n\t"     \
345    "adc r22, r25 \n\t"    \
346    "mul r11, r14 \n\t"    \
347    "add r23, r0 \n\t"     \
348    "adc r24, r1 \n\t"     \
349    "adc r22, r25 \n\t"    \
350    "st z+, r23 \n\t"      \
351                           \
352    "ldi r23, 0 \n\t"      \
353    "mul r5, r21 \n\t"     \
354    "add r24, r0 \n\t"     \
355    "adc r22, r1 \n\t"     \
356    "adc r23, r25 \n\t"    \
357    "mul r6, r20 \n\t"     \
358    "add r24, r0 \n\t"     \
359    "adc r22, r1 \n\t"     \
360    "adc r23, r25 \n\t"    \
361    "mul r7, r19 \n\t"     \
362    "add r24, r0 \n\t"     \
363    "adc r22, r1 \n\t"     \
364    "adc r23, r25 \n\t"    \
365    "mul r8, r18 \n\t"     \
366    "add r24, r0 \n\t"     \
367    "adc r22, r1 \n\t"     \
368    "adc r23, r25 \n\t"    \
369    "mul r9, r17 \n\t"     \
370    "add r24, r0 \n\t"     \
371    "adc r22, r1 \n\t"     \
372    "adc r23, r25 \n\t"    \
373    "mul r10, r16 \n\t"    \
374    "add r24, r0 \n\t"     \
375    "adc r22, r1 \n\t"     \
376    "adc r23, r25 \n\t"    \
377    "mul r11, r15 \n\t"    \
378    "add r24, r0 \n\t"     \
379    "adc r22, r1 \n\t"     \
380    "adc r23, r25 \n\t"    \
381    "st z+, r24 \n\t"      \
382                           \
383    "ldi r24, 0 \n\t"      \
384    "mul r6, r21 \n\t"     \
385    "add r22, r0 \n\t"     \
386    "adc r23, r1 \n\t"     \
387    "adc r24, r25 \n\t"    \
388    "mul r7, r20 \n\t"     \
389    "add r22, r0 \n\t"     \
390    "adc r23, r1 \n\t"     \
391    "adc r24, r25 \n\t"    \
392    "mul r8, r19 \n\t"     \
393    "add r22, r0 \n\t"     \
394    "adc r23, r1 \n\t"     \
395    "adc r24, r25 \n\t"    \
396    "mul r9, r18 \n\t"     \
397    "add r22, r0 \n\t"     \
398    "adc r23, r1 \n\t"     \
399    "adc r24, r25 \n\t"    \
400    "mul r10, r17 \n\t"    \
401    "add r22, r0 \n\t"     \
402    "adc r23, r1 \n\t"     \
403    "adc r24, r25 \n\t"    \
404    "mul r11, r16 \n\t"    \
405    "add r22, r0 \n\t"     \
406    "adc r23, r1 \n\t"     \
407    "adc r24, r25 \n\t"    \
408    "st z+, r22 \n\t"      \
409                           \
410    "ldi r22, 0 \n\t"      \
411    "mul r7, r21 \n\t"     \
412    "add r23, r0 \n\t"     \
413    "adc r24, r1 \n\t"     \
414    "adc r22, r25 \n\t"    \
415    "mul r8, r20 \n\t"     \
416    "add r23, r0 \n\t"     \
417    "adc r24, r1 \n\t"     \
418    "adc r22, r25 \n\t"    \
419    "mul r9, r19 \n\t"     \
420    "add r23, r0 \n\t"     \
421    "adc r24, r1 \n\t"     \
422    "adc r22, r25 \n\t"    \
423    "mul r10, r18 \n\t"    \
424    "add r23, r0 \n\t"     \
425    "adc r24, r1 \n\t"     \
426    "adc r22, r25 \n\t"    \
427    "mul r11, r17 \n\t"    \
428    "add r23, r0 \n\t"     \
429    "adc r24, r1 \n\t"     \
430    "adc r22, r25 \n\t"    \
431    "st z+, r23 \n\t"      \
432                           \
433    "ldi r23, 0 \n\t"      \
434    "mul r8, r21 \n\t"     \
435    "add r24, r0 \n\t"     \
436    "adc r22, r1 \n\t"     \
437    "adc r23, r25 \n\t"    \
438    "mul r9, r20 \n\t"     \
439    "add r24, r0 \n\t"     \
440    "adc r22, r1 \n\t"     \
441    "adc r23, r25 \n\t"    \
442    "mul r10, r19 \n\t"    \
443    "add r24, r0 \n\t"     \
444    "adc r22, r1 \n\t"     \
445    "adc r23, r25 \n\t"    \
446    "mul r11, r18 \n\t"    \
447    "add r24, r0 \n\t"     \
448    "adc r22, r1 \n\t"     \
449    "adc r23, r25 \n\t"    \
450    "st z+, r24 \n\t"      \
451                           \
452    "ldi r24, 0 \n\t"      \
453    "mul r9, r21 \n\t"     \
454    "add r22, r0 \n\t"     \
455    "adc r23, r1 \n\t"     \
456    "adc r24, r25 \n\t"    \
457    "mul r10, r20 \n\t"    \
458    "add r22, r0 \n\t"     \
459    "adc r23, r1 \n\t"     \
460    "adc r24, r25 \n\t"    \
461    "mul r11, r19 \n\t"    \
462    "add r22, r0 \n\t"     \
463    "adc r23, r1 \n\t"     \
464    "adc r24, r25 \n\t"    \
465    "st z+, r22 \n\t"      \
466                           \
467    "ldi r22, 0 \n\t"      \
468    "mul r10, r21 \n\t"    \
469    "add r23, r0 \n\t"     \
470    "adc r24, r1 \n\t"     \
471    "adc r22, r25 \n\t"    \
472    "mul r11, r20 \n\t"    \
473    "add r23, r0 \n\t"     \
474    "adc r24, r1 \n\t"     \
475    "adc r22, r25 \n\t"    \
476    "st z+, r23 \n\t"      \
477                           \
478    "mul r11, r21 \n\t"    \
479    "add r24, r0 \n\t"     \
480    "adc r22, r1 \n\t"     \
481    "st z+, r24 \n\t"      \
482    "st z+, r22 \n\t"      \
483                           \
484    "sbiw r30, 30 \n\t"    \
485    "sbiw r28, 20 \n\t"    \
486    "ld r12, y+ \n\t"      \
487    "ld r13, y+ \n\t"      \
488    "ld r14, y+ \n\t"      \
489    "ld r15, y+ \n\t"      \
490    "ld r16, y+ \n\t"      \
491    "ld r17, y+ \n\t"      \
492    "ld r18, y+ \n\t"      \
493    "ld r19, y+ \n\t"      \
494    "ld r20, y+ \n\t"      \
495    "ld r21, y+ \n\t"      \
496                           \
497    "ldi r23, 0 \n\t"      \
498    "mul r2, r12 \n\t"     \
499    "st z+, r0 \n\t"       \
500    "mov r22, r1 \n\t"     \
501                           \
502    "ldi r24, 0 \n\t"      \
503    "mul r2, r13 \n\t"     \
504    "add r22, r0 \n\t"     \
505    "adc r23, r1 \n\t"     \
506    "mul r3, r12 \n\t"     \
507    "add r22, r0 \n\t"     \
508    "adc r23, r1 \n\t"     \
509    "adc r24, r25 \n\t"    \
510    "st z+, r22 \n\t"      \
511                           \
512    "ldi r22, 0 \n\t"      \
513    "mul r2, r14 \n\t"     \
514    "add r23, r0 \n\t"     \
515    "adc r24, r1 \n\t"     \
516    "adc r22, r25 \n\t"    \
517    "mul r3, r13 \n\t"     \
518    "add r23, r0 \n\t"     \
519    "adc r24, r1 \n\t"     \
520    "adc r22, r25 \n\t"    \
521    "mul r4, r12 \n\t"     \
522    "add r23, r0 \n\t"     \
523    "adc r24, r1 \n\t"     \
524    "adc r22, r25 \n\t"    \
525    "st z+, r23 \n\t"      \
526                           \
527    "ldi r23, 0 \n\t"      \
528    "mul r2, r15 \n\t"     \
529    "add r24, r0 \n\t"     \
530    "adc r22, r1 \n\t"     \
531    "adc r23, r25 \n\t"    \
532    "mul r3, r14 \n\t"     \
533    "add r24, r0 \n\t"     \
534    "adc r22, r1 \n\t"     \
535    "adc r23, r25 \n\t"    \
536    "mul r4, r13 \n\t"     \
537    "add r24, r0 \n\t"     \
538    "adc r22, r1 \n\t"     \
539    "adc r23, r25 \n\t"    \
540    "mul r5, r12 \n\t"     \
541    "add r24, r0 \n\t"     \
542    "adc r22, r1 \n\t"     \
543    "adc r23, r25 \n\t"    \
544    "st z+, r24 \n\t"      \
545                           \
546    "ldi r24, 0 \n\t"      \
547    "mul r2, r16 \n\t"     \
548    "add r22, r0 \n\t"     \
549    "adc r23, r1 \n\t"     \
550    "adc r24, r25 \n\t"    \
551    "mul r3, r15 \n\t"     \
552    "add r22, r0 \n\t"     \
553    "adc r23, r1 \n\t"     \
554    "adc r24, r25 \n\t"    \
555    "mul r4, r14 \n\t"     \
556    "add r22, r0 \n\t"     \
557    "adc r23, r1 \n\t"     \
558    "adc r24, r25 \n\t"    \
559    "mul r5, r13 \n\t"     \
560    "add r22, r0 \n\t"     \
561    "adc r23, r1 \n\t"     \
562    "adc r24, r25 \n\t"    \
563    "mul r6, r12 \n\t"     \
564    "add r22, r0 \n\t"     \
565    "adc r23, r1 \n\t"     \
566    "adc r24, r25 \n\t"    \
567    "st z+, r22 \n\t"      \
568                           \
569    "ldi r22, 0 \n\t"      \
570    "mul r2, r17 \n\t"     \
571    "add r23, r0 \n\t"     \
572    "adc r24, r1 \n\t"     \
573    "adc r22, r25 \n\t"    \
574    "mul r3, r16 \n\t"     \
575    "add r23, r0 \n\t"     \
576    "adc r24, r1 \n\t"     \
577    "adc r22, r25 \n\t"    \
578    "mul r4, r15 \n\t"     \
579    "add r23, r0 \n\t"     \
580    "adc r24, r1 \n\t"     \
581    "adc r22, r25 \n\t"    \
582    "mul r5, r14 \n\t"     \
583    "add r23, r0 \n\t"     \
584    "adc r24, r1 \n\t"     \
585    "adc r22, r25 \n\t"    \
586    "mul r6, r13 \n\t"     \
587    "add r23, r0 \n\t"     \
588    "adc r24, r1 \n\t"     \
589    "adc r22, r25 \n\t"    \
590    "mul r7, r12 \n\t"     \
591    "add r23, r0 \n\t"     \
592    "adc r24, r1 \n\t"     \
593    "adc r22, r25 \n\t"    \
594    "st z+, r23 \n\t"      \
595                           \
596    "ldi r23, 0 \n\t"      \
597    "mul r2, r18 \n\t"     \
598    "add r24, r0 \n\t"     \
599    "adc r22, r1 \n\t"     \
600    "adc r23, r25 \n\t"    \
601    "mul r3, r17 \n\t"     \
602    "add r24, r0 \n\t"     \
603    "adc r22, r1 \n\t"     \
604    "adc r23, r25 \n\t"    \
605    "mul r4, r16 \n\t"     \
606    "add r24, r0 \n\t"     \
607    "adc r22, r1 \n\t"     \
608    "adc r23, r25 \n\t"    \
609    "mul r5, r15 \n\t"     \
610    "add r24, r0 \n\t"     \
611    "adc r22, r1 \n\t"     \
612    "adc r23, r25 \n\t"    \
613    "mul r6, r14 \n\t"     \
614    "add r24, r0 \n\t"     \
615    "adc r22, r1 \n\t"     \
616    "adc r23, r25 \n\t"    \
617    "mul r7, r13 \n\t"     \
618    "add r24, r0 \n\t"     \
619    "adc r22, r1 \n\t"     \
620    "adc r23, r25 \n\t"    \
621    "mul r8, r12 \n\t"     \
622    "add r24, r0 \n\t"     \
623    "adc r22, r1 \n\t"     \
624    "adc r23, r25 \n\t"    \
625    "st z+, r24 \n\t"      \
626                           \
627    "ldi r24, 0 \n\t"      \
628    "mul r2, r19 \n\t"     \
629    "add r22, r0 \n\t"     \
630    "adc r23, r1 \n\t"     \
631    "adc r24, r25 \n\t"    \
632    "mul r3, r18 \n\t"     \
633    "add r22, r0 \n\t"     \
634    "adc r23, r1 \n\t"     \
635    "adc r24, r25 \n\t"    \
636    "mul r4, r17 \n\t"     \
637    "add r22, r0 \n\t"     \
638    "adc r23, r1 \n\t"     \
639    "adc r24, r25 \n\t"    \
640    "mul r5, r16 \n\t"     \
641    "add r22, r0 \n\t"     \
642    "adc r23, r1 \n\t"     \
643    "adc r24, r25 \n\t"    \
644    "mul r6, r15 \n\t"     \
645    "add r22, r0 \n\t"     \
646    "adc r23, r1 \n\t"     \
647    "adc r24, r25 \n\t"    \
648    "mul r7, r14 \n\t"     \
649    "add r22, r0 \n\t"     \
650    "adc r23, r1 \n\t"     \
651    "adc r24, r25 \n\t"    \
652    "mul r8, r13 \n\t"     \
653    "add r22, r0 \n\t"     \
654    "adc r23, r1 \n\t"     \
655    "adc r24, r25 \n\t"    \
656    "mul r9, r12 \n\t"     \
657    "add r22, r0 \n\t"     \
658    "adc r23, r1 \n\t"     \
659    "adc r24, r25 \n\t"    \
660    "st z+, r22 \n\t"      \
661                           \
662    "ldi r22, 0 \n\t"      \
663    "mul r2, r20 \n\t"     \
664    "add r23, r0 \n\t"     \
665    "adc r24, r1 \n\t"     \
666    "adc r22, r25 \n\t"    \
667    "mul r3, r19 \n\t"     \
668    "add r23, r0 \n\t"     \
669    "adc r24, r1 \n\t"     \
670    "adc r22, r25 \n\t"    \
671    "mul r4, r18 \n\t"     \
672    "add r23, r0 \n\t"     \
673    "adc r24, r1 \n\t"     \
674    "adc r22, r25 \n\t"    \
675    "mul r5, r17 \n\t"     \
676    "add r23, r0 \n\t"     \
677    "adc r24, r1 \n\t"     \
678    "adc r22, r25 \n\t"    \
679    "mul r6, r16 \n\t"     \
680    "add r23, r0 \n\t"     \
681    "adc r24, r1 \n\t"     \
682    "adc r22, r25 \n\t"    \
683    "mul r7, r15 \n\t"     \
684    "add r23, r0 \n\t"     \
685    "adc r24, r1 \n\t"     \
686    "adc r22, r25 \n\t"    \
687    "mul r8, r14 \n\t"     \
688    "add r23, r0 \n\t"     \
689    "adc r24, r1 \n\t"     \
690    "adc r22, r25 \n\t"    \
691    "mul r9, r13 \n\t"     \
692    "add r23, r0 \n\t"     \
693    "adc r24, r1 \n\t"     \
694    "adc r22, r25 \n\t"    \
695    "mul r10, r12 \n\t"    \
696    "add r23, r0 \n\t"     \
697    "adc r24, r1 \n\t"     \
698    "adc r22, r25 \n\t"    \
699    "st z+, r23 \n\t"      \
700                           \
701    "ldi r23, 0 \n\t"      \
702    "mul r2, r21 \n\t"     \
703    "add r24, r0 \n\t"     \
704    "adc r22, r1 \n\t"     \
705    "adc r23, r25 \n\t"    \
706    "mul r3, r20 \n\t"     \
707    "add r24, r0 \n\t"     \
708    "adc r22, r1 \n\t"     \
709    "adc r23, r25 \n\t"    \
710    "mul r4, r19 \n\t"     \
711    "add r24, r0 \n\t"     \
712    "adc r22, r1 \n\t"     \
713    "adc r23, r25 \n\t"    \
714    "mul r5, r18 \n\t"     \
715    "add r24, r0 \n\t"     \
716    "adc r22, r1 \n\t"     \
717    "adc r23, r25 \n\t"    \
718    "mul r6, r17 \n\t"     \
719    "add r24, r0 \n\t"     \
720    "adc r22, r1 \n\t"     \
721    "adc r23, r25 \n\t"    \
722    "mul r7, r16 \n\t"     \
723    "add r24, r0 \n\t"     \
724    "adc r22, r1 \n\t"     \
725    "adc r23, r25 \n\t"    \
726    "mul r8, r15 \n\t"     \
727    "add r24, r0 \n\t"     \
728    "adc r22, r1 \n\t"     \
729    "adc r23, r25 \n\t"    \
730    "mul r9, r14 \n\t"     \
731    "add r24, r0 \n\t"     \
732    "adc r22, r1 \n\t"     \
733    "adc r23, r25 \n\t"    \
734    "mul r10, r13 \n\t"    \
735    "add r24, r0 \n\t"     \
736    "adc r22, r1 \n\t"     \
737    "adc r23, r25 \n\t"    \
738    "mul r11, r12 \n\t"    \
739    "add r24, r0 \n\t"     \
740    "adc r22, r1 \n\t"     \
741    "adc r23, r25 \n\t"    \
742    "st z+, r24 \n\t"      \
743                           \
744    "ld r2, x+ \n\t"       \
745    "ldi r24, 0 \n\t"      \
746    "mul r3, r21 \n\t"     \
747    "add r22, r0 \n\t"     \
748    "adc r23, r1 \n\t"     \
749    "adc r24, r25 \n\t"    \
750    "mul r4, r20 \n\t"     \
751    "add r22, r0 \n\t"     \
752    "adc r23, r1 \n\t"     \
753    "adc r24, r25 \n\t"    \
754    "mul r5, r19 \n\t"     \
755    "add r22, r0 \n\t"     \
756    "adc r23, r1 \n\t"     \
757    "adc r24, r25 \n\t"    \
758    "mul r6, r18 \n\t"     \
759    "add r22, r0 \n\t"     \
760    "adc r23, r1 \n\t"     \
761    "adc r24, r25 \n\t"    \
762    "mul r7, r17 \n\t"     \
763    "add r22, r0 \n\t"     \
764    "adc r23, r1 \n\t"     \
765    "adc r24, r25 \n\t"    \
766    "mul r8, r16 \n\t"     \
767    "add r22, r0 \n\t"     \
768    "adc r23, r1 \n\t"     \
769    "adc r24, r25 \n\t"    \
770    "mul r9, r15 \n\t"     \
771    "add r22, r0 \n\t"     \
772    "adc r23, r1 \n\t"     \
773    "adc r24, r25 \n\t"    \
774    "mul r10, r14 \n\t"    \
775    "add r22, r0 \n\t"     \
776    "adc r23, r1 \n\t"     \
777    "adc r24, r25 \n\t"    \
778    "mul r11, r13 \n\t"    \
779    "add r22, r0 \n\t"     \
780    "adc r23, r1 \n\t"     \
781    "adc r24, r25 \n\t"    \
782    "mul r2, r12 \n\t"     \
783    "add r22, r0 \n\t"     \
784    "adc r23, r1 \n\t"     \
785    "adc r24, r25 \n\t"    \
786    "ld r0, z \n\t"        \
787    "add r22, r0 \n\t"     \
788    "adc r23, r25 \n\t"    \
789    "adc r24, r25 \n\t"    \
790    "st z+, r22 \n\t"      \
791                           \
792    "ld r3, x+ \n\t"       \
793    "ldi r22, 0 \n\t"      \
794    "mul r4, r21 \n\t"     \
795    "add r23, r0 \n\t"     \
796    "adc r24, r1 \n\t"     \
797    "adc r22, r25 \n\t"    \
798    "mul r5, r20 \n\t"     \
799    "add r23, r0 \n\t"     \
800    "adc r24, r1 \n\t"     \
801    "adc r22, r25 \n\t"    \
802    "mul r6, r19 \n\t"     \
803    "add r23, r0 \n\t"     \
804    "adc r24, r1 \n\t"     \
805    "adc r22, r25 \n\t"    \
806    "mul r7, r18 \n\t"     \
807    "add r23, r0 \n\t"     \
808    "adc r24, r1 \n\t"     \
809    "adc r22, r25 \n\t"    \
810    "mul r8, r17 \n\t"     \
811    "add r23, r0 \n\t"     \
812    "adc r24, r1 \n\t"     \
813    "adc r22, r25 \n\t"    \
814    "mul r9, r16 \n\t"     \
815    "add r23, r0 \n\t"     \
816    "adc r24, r1 \n\t"     \
817    "adc r22, r25 \n\t"    \
818    "mul r10, r15 \n\t"    \
819    "add r23, r0 \n\t"     \
820    "adc r24, r1 \n\t"     \
821    "adc r22, r25 \n\t"    \
822    "mul r11, r14 \n\t"    \
823    "add r23, r0 \n\t"     \
824    "adc r24, r1 \n\t"     \
825    "adc r22, r25 \n\t"    \
826    "mul r2, r13 \n\t"     \
827    "add r23, r0 \n\t"     \
828    "adc r24, r1 \n\t"     \
829    "adc r22, r25 \n\t"    \
830    "mul r3, r12 \n\t"     \
831    "add r23, r0 \n\t"     \
832    "adc r24, r1 \n\t"     \
833    "adc r22, r25 \n\t"    \
834    "ld r0, z \n\t"        \
835    "add r23, r0 \n\t"     \
836    "adc r24, r25 \n\t"    \
837    "adc r22, r25 \n\t"    \
838    "st z+, r23 \n\t"      \
839                           \
840    "ld r4, x+ \n\t"       \
841    "ldi r23, 0 \n\t"      \
842    "mul r5, r21 \n\t"     \
843    "add r24, r0 \n\t"     \
844    "adc r22, r1 \n\t"     \
845    "adc r23, r25 \n\t"    \
846    "mul r6, r20 \n\t"     \
847    "add r24, r0 \n\t"     \
848    "adc r22, r1 \n\t"     \
849    "adc r23, r25 \n\t"    \
850    "mul r7, r19 \n\t"     \
851    "add r24, r0 \n\t"     \
852    "adc r22, r1 \n\t"     \
853    "adc r23, r25 \n\t"    \
854    "mul r8, r18 \n\t"     \
855    "add r24, r0 \n\t"     \
856    "adc r22, r1 \n\t"     \
857    "adc r23, r25 \n\t"    \
858    "mul r9, r17 \n\t"     \
859    "add r24, r0 \n\t"     \
860    "adc r22, r1 \n\t"     \
861    "adc r23, r25 \n\t"    \
862    "mul r10, r16 \n\t"    \
863    "add r24, r0 \n\t"     \
864    "adc r22, r1 \n\t"     \
865    "adc r23, r25 \n\t"    \
866    "mul r11, r15 \n\t"    \
867    "add r24, r0 \n\t"     \
868    "adc r22, r1 \n\t"     \
869    "adc r23, r25 \n\t"    \
870    "mul r2, r14 \n\t"     \
871    "add r24, r0 \n\t"     \
872    "adc r22, r1 \n\t"     \
873    "adc r23, r25 \n\t"    \
874    "mul r3, r13 \n\t"     \
875    "add r24, r0 \n\t"     \
876    "adc r22, r1 \n\t"     \
877    "adc r23, r25 \n\t"    \
878    "mul r4, r12 \n\t"     \
879    "add r24, r0 \n\t"     \
880    "adc r22, r1 \n\t"     \
881    "adc r23, r25 \n\t"    \
882    "ld r0, z \n\t"        \
883    "add r24, r0 \n\t"     \
884    "adc r22, r25 \n\t"    \
885    "adc r23, r25 \n\t"    \
886    "st z+, r24 \n\t"      \
887                           \
888    "ld r5, x+ \n\t"       \
889    "ldi r24, 0 \n\t"      \
890    "mul r6, r21 \n\t"     \
891    "add r22, r0 \n\t"     \
892    "adc r23, r1 \n\t"     \
893    "adc r24, r25 \n\t"    \
894    "mul r7, r20 \n\t"     \
895    "add r22, r0 \n\t"     \
896    "adc r23, r1 \n\t"     \
897    "adc r24, r25 \n\t"    \
898    "mul r8, r19 \n\t"     \
899    "add r22, r0 \n\t"     \
900    "adc r23, r1 \n\t"     \
901    "adc r24, r25 \n\t"    \
902    "mul r9, r18 \n\t"     \
903    "add r22, r0 \n\t"     \
904    "adc r23, r1 \n\t"     \
905    "adc r24, r25 \n\t"    \
906    "mul r10, r17 \n\t"    \
907    "add r22, r0 \n\t"     \
908    "adc r23, r1 \n\t"     \
909    "adc r24, r25 \n\t"    \
910    "mul r11, r16 \n\t"    \
911    "add r22, r0 \n\t"     \
912    "adc r23, r1 \n\t"     \
913    "adc r24, r25 \n\t"    \
914    "mul r2, r15 \n\t"     \
915    "add r22, r0 \n\t"     \
916    "adc r23, r1 \n\t"     \
917    "adc r24, r25 \n\t"    \
918    "mul r3, r14 \n\t"     \
919    "add r22, r0 \n\t"     \
920    "adc r23, r1 \n\t"     \
921    "adc r24, r25 \n\t"    \
922    "mul r4, r13 \n\t"     \
923    "add r22, r0 \n\t"     \
924    "adc r23, r1 \n\t"     \
925    "adc r24, r25 \n\t"    \
926    "mul r5, r12 \n\t"     \
927    "add r22, r0 \n\t"     \
928    "adc r23, r1 \n\t"     \
929    "adc r24, r25 \n\t"    \
930    "ld r0, z \n\t"        \
931    "add r22, r0 \n\t"     \
932    "adc r23, r25 \n\t"    \
933    "adc r24, r25 \n\t"    \
934    "st z+, r22 \n\t"      \
935                           \
936    "ld r6, x+ \n\t"       \
937    "ldi r22, 0 \n\t"      \
938    "mul r7, r21 \n\t"     \
939    "add r23, r0 \n\t"     \
940    "adc r24, r1 \n\t"     \
941    "adc r22, r25 \n\t"    \
942    "mul r8, r20 \n\t"     \
943    "add r23, r0 \n\t"     \
944    "adc r24, r1 \n\t"     \
945    "adc r22, r25 \n\t"    \
946    "mul r9, r19 \n\t"     \
947    "add r23, r0 \n\t"     \
948    "adc r24, r1 \n\t"     \
949    "adc r22, r25 \n\t"    \
950    "mul r10, r18 \n\t"    \
951    "add r23, r0 \n\t"     \
952    "adc r24, r1 \n\t"     \
953    "adc r22, r25 \n\t"    \
954    "mul r11, r17 \n\t"    \
955    "add r23, r0 \n\t"     \
956    "adc r24, r1 \n\t"     \
957    "adc r22, r25 \n\t"    \
958    "mul r2, r16 \n\t"     \
959    "add r23, r0 \n\t"     \
960    "adc r24, r1 \n\t"     \
961    "adc r22, r25 \n\t"    \
962    "mul r3, r15 \n\t"     \
963    "add r23, r0 \n\t"     \
964    "adc r24, r1 \n\t"     \
965    "adc r22, r25 \n\t"    \
966    "mul r4, r14 \n\t"     \
967    "add r23, r0 \n\t"     \
968    "adc r24, r1 \n\t"     \
969    "adc r22, r25 \n\t"    \
970    "mul r5, r13 \n\t"     \
971    "add r23, r0 \n\t"     \
972    "adc r24, r1 \n\t"     \
973    "adc r22, r25 \n\t"    \
974    "mul r6, r12 \n\t"     \
975    "add r23, r0 \n\t"     \
976    "adc r24, r1 \n\t"     \
977    "adc r22, r25 \n\t"    \
978    "ld r0, z \n\t"        \
979    "add r23, r0 \n\t"     \
980    "adc r24, r25 \n\t"    \
981    "adc r22, r25 \n\t"    \
982    "st z+, r23 \n\t"      \
983                           \
984    "ld r7, x+ \n\t"       \
985    "ldi r23, 0 \n\t"      \
986    "mul r8, r21 \n\t"     \
987    "add r24, r0 \n\t"     \
988    "adc r22, r1 \n\t"     \
989    "adc r23, r25 \n\t"    \
990    "mul r9, r20 \n\t"     \
991    "add r24, r0 \n\t"     \
992    "adc r22, r1 \n\t"     \
993    "adc r23, r25 \n\t"    \
994    "mul r10, r19 \n\t"    \
995    "add r24, r0 \n\t"     \
996    "adc r22, r1 \n\t"     \
997    "adc r23, r25 \n\t"    \
998    "mul r11, r18 \n\t"    \
999    "add r24, r0 \n\t"     \
1000    "adc r22, r1 \n\t"     \
1001    "adc r23, r25 \n\t"    \
1002    "mul r2, r17 \n\t"     \
1003    "add r24, r0 \n\t"     \
1004    "adc r22, r1 \n\t"     \
1005    "adc r23, r25 \n\t"    \
1006    "mul r3, r16 \n\t"     \
1007    "add r24, r0 \n\t"     \
1008    "adc r22, r1 \n\t"     \
1009    "adc r23, r25 \n\t"    \
1010    "mul r4, r15 \n\t"     \
1011    "add r24, r0 \n\t"     \
1012    "adc r22, r1 \n\t"     \
1013    "adc r23, r25 \n\t"    \
1014    "mul r5, r14 \n\t"     \
1015    "add r24, r0 \n\t"     \
1016    "adc r22, r1 \n\t"     \
1017    "adc r23, r25 \n\t"    \
1018    "mul r6, r13 \n\t"     \
1019    "add r24, r0 \n\t"     \
1020    "adc r22, r1 \n\t"     \
1021    "adc r23, r25 \n\t"    \
1022    "mul r7, r12 \n\t"     \
1023    "add r24, r0 \n\t"     \
1024    "adc r22, r1 \n\t"     \
1025    "adc r23, r25 \n\t"    \
1026    "ld r0, z \n\t"        \
1027    "add r24, r0 \n\t"     \
1028    "adc r22, r25 \n\t"    \
1029    "adc r23, r25 \n\t"    \
1030    "st z+, r24 \n\t"      \
1031                           \
1032    "ld r8, x+ \n\t"       \
1033    "ldi r24, 0 \n\t"      \
1034    "mul r9, r21 \n\t"     \
1035    "add r22, r0 \n\t"     \
1036    "adc r23, r1 \n\t"     \
1037    "adc r24, r25 \n\t"    \
1038    "mul r10, r20 \n\t"    \
1039    "add r22, r0 \n\t"     \
1040    "adc r23, r1 \n\t"     \
1041    "adc r24, r25 \n\t"    \
1042    "mul r11, r19 \n\t"    \
1043    "add r22, r0 \n\t"     \
1044    "adc r23, r1 \n\t"     \
1045    "adc r24, r25 \n\t"    \
1046    "mul r2, r18 \n\t"     \
1047    "add r22, r0 \n\t"     \
1048    "adc r23, r1 \n\t"     \
1049    "adc r24, r25 \n\t"    \
1050    "mul r3, r17 \n\t"     \
1051    "add r22, r0 \n\t"     \
1052    "adc r23, r1 \n\t"     \
1053    "adc r24, r25 \n\t"    \
1054    "mul r4, r16 \n\t"     \
1055    "add r22, r0 \n\t"     \
1056    "adc r23, r1 \n\t"     \
1057    "adc r24, r25 \n\t"    \
1058    "mul r5, r15 \n\t"     \
1059    "add r22, r0 \n\t"     \
1060    "adc r23, r1 \n\t"     \
1061    "adc r24, r25 \n\t"    \
1062    "mul r6, r14 \n\t"     \
1063    "add r22, r0 \n\t"     \
1064    "adc r23, r1 \n\t"     \
1065    "adc r24, r25 \n\t"    \
1066    "mul r7, r13 \n\t"     \
1067    "add r22, r0 \n\t"     \
1068    "adc r23, r1 \n\t"     \
1069    "adc r24, r25 \n\t"    \
1070    "mul r8, r12 \n\t"     \
1071    "add r22, r0 \n\t"     \
1072    "adc r23, r1 \n\t"     \
1073    "adc r24, r25 \n\t"    \
1074    "ld r0, z \n\t"        \
1075    "add r22, r0 \n\t"     \
1076    "adc r23, r25 \n\t"    \
1077    "adc r24, r25 \n\t"    \
1078    "st z+, r22 \n\t"      \
1079                           \
1080    "ld r9, x+ \n\t"       \
1081    "ldi r22, 0 \n\t"      \
1082    "mul r10, r21 \n\t"    \
1083    "add r23, r0 \n\t"     \
1084    "adc r24, r1 \n\t"     \
1085    "adc r22, r25 \n\t"    \
1086    "mul r11, r20 \n\t"    \
1087    "add r23, r0 \n\t"     \
1088    "adc r24, r1 \n\t"     \
1089    "adc r22, r25 \n\t"    \
1090    "mul r2, r19 \n\t"     \
1091    "add r23, r0 \n\t"     \
1092    "adc r24, r1 \n\t"     \
1093    "adc r22, r25 \n\t"    \
1094    "mul r3, r18 \n\t"     \
1095    "add r23, r0 \n\t"     \
1096    "adc r24, r1 \n\t"     \
1097    "adc r22, r25 \n\t"    \
1098    "mul r4, r17 \n\t"     \
1099    "add r23, r0 \n\t"     \
1100    "adc r24, r1 \n\t"     \
1101    "adc r22, r25 \n\t"    \
1102    "mul r5, r16 \n\t"     \
1103    "add r23, r0 \n\t"     \
1104    "adc r24, r1 \n\t"     \
1105    "adc r22, r25 \n\t"    \
1106    "mul r6, r15 \n\t"     \
1107    "add r23, r0 \n\t"     \
1108    "adc r24, r1 \n\t"     \
1109    "adc r22, r25 \n\t"    \
1110    "mul r7, r14 \n\t"     \
1111    "add r23, r0 \n\t"     \
1112    "adc r24, r1 \n\t"     \
1113    "adc r22, r25 \n\t"    \
1114    "mul r8, r13 \n\t"     \
1115    "add r23, r0 \n\t"     \
1116    "adc r24, r1 \n\t"     \
1117    "adc r22, r25 \n\t"    \
1118    "mul r9, r12 \n\t"     \
1119    "add r23, r0 \n\t"     \
1120    "adc r24, r1 \n\t"     \
1121    "adc r22, r25 \n\t"    \
1122    "ld r0, z \n\t"        \
1123    "add r23, r0 \n\t"     \
1124    "adc r24, r25 \n\t"    \
1125    "adc r22, r25 \n\t"    \
1126    "st z+, r23 \n\t"      \
1127                           \
1128    "ld r10, x+ \n\t"      \
1129    "ldi r23, 0 \n\t"      \
1130    "mul r11, r21 \n\t"    \
1131    "add r24, r0 \n\t"     \
1132    "adc r22, r1 \n\t"     \
1133    "adc r23, r25 \n\t"    \
1134    "mul r2, r20 \n\t"     \
1135    "add r24, r0 \n\t"     \
1136    "adc r22, r1 \n\t"     \
1137    "adc r23, r25 \n\t"    \
1138    "mul r3, r19 \n\t"     \
1139    "add r24, r0 \n\t"     \
1140    "adc r22, r1 \n\t"     \
1141    "adc r23, r25 \n\t"    \
1142    "mul r4, r18 \n\t"     \
1143    "add r24, r0 \n\t"     \
1144    "adc r22, r1 \n\t"     \
1145    "adc r23, r25 \n\t"    \
1146    "mul r5, r17 \n\t"     \
1147    "add r24, r0 \n\t"     \
1148    "adc r22, r1 \n\t"     \
1149    "adc r23, r25 \n\t"    \
1150    "mul r6, r16 \n\t"     \
1151    "add r24, r0 \n\t"     \
1152    "adc r22, r1 \n\t"     \
1153    "adc r23, r25 \n\t"    \
1154    "mul r7, r15 \n\t"     \
1155    "add r24, r0 \n\t"     \
1156    "adc r22, r1 \n\t"     \
1157    "adc r23, r25 \n\t"    \
1158    "mul r8, r14 \n\t"     \
1159    "add r24, r0 \n\t"     \
1160    "adc r22, r1 \n\t"     \
1161    "adc r23, r25 \n\t"    \
1162    "mul r9, r13 \n\t"     \
1163    "add r24, r0 \n\t"     \
1164    "adc r22, r1 \n\t"     \
1165    "adc r23, r25 \n\t"    \
1166    "mul r10, r12 \n\t"    \
1167    "add r24, r0 \n\t"     \
1168    "adc r22, r1 \n\t"     \
1169    "adc r23, r25 \n\t"    \
1170    "ld r0, z \n\t"        \
1171    "add r24, r0 \n\t"     \
1172    "adc r22, r25 \n\t"    \
1173    "adc r23, r25 \n\t"    \
1174    "st z+, r24 \n\t"      \
1175                           \
1176    "ld r11, x+ \n\t"      \
1177    "ldi r24, 0 \n\t"      \
1178    "mul r2, r21 \n\t"     \
1179    "add r22, r0 \n\t"     \
1180    "adc r23, r1 \n\t"     \
1181    "adc r24, r25 \n\t"    \
1182    "mul r3, r20 \n\t"     \
1183    "add r22, r0 \n\t"     \
1184    "adc r23, r1 \n\t"     \
1185    "adc r24, r25 \n\t"    \
1186    "mul r4, r19 \n\t"     \
1187    "add r22, r0 \n\t"     \
1188    "adc r23, r1 \n\t"     \
1189    "adc r24, r25 \n\t"    \
1190    "mul r5, r18 \n\t"     \
1191    "add r22, r0 \n\t"     \
1192    "adc r23, r1 \n\t"     \
1193    "adc r24, r25 \n\t"    \
1194    "mul r6, r17 \n\t"     \
1195    "add r22, r0 \n\t"     \
1196    "adc r23, r1 \n\t"     \
1197    "adc r24, r25 \n\t"    \
1198    "mul r7, r16 \n\t"     \
1199    "add r22, r0 \n\t"     \
1200    "adc r23, r1 \n\t"     \
1201    "adc r24, r25 \n\t"    \
1202    "mul r8, r15 \n\t"     \
1203    "add r22, r0 \n\t"     \
1204    "adc r23, r1 \n\t"     \
1205    "adc r24, r25 \n\t"    \
1206    "mul r9, r14 \n\t"     \
1207    "add r22, r0 \n\t"     \
1208    "adc r23, r1 \n\t"     \
1209    "adc r24, r25 \n\t"    \
1210    "mul r10, r13 \n\t"    \
1211    "add r22, r0 \n\t"     \
1212    "adc r23, r1 \n\t"     \
1213    "adc r24, r25 \n\t"    \
1214    "mul r11, r12 \n\t"    \
1215    "add r22, r0 \n\t"     \
1216    "adc r23, r1 \n\t"     \
1217    "adc r24, r25 \n\t"    \
1218    "ld r0, z \n\t"        \
1219    "add r22, r0 \n\t"     \
1220    "adc r23, r25 \n\t"    \
1221    "adc r24, r25 \n\t"    \
1222    "st z+, r22 \n\t"      \
1223                           \
1224    "ld r12, y+ \n\t"      \
1225    "ldi r22, 0 \n\t"      \
1226    "mul r2, r12 \n\t"     \
1227    "add r23, r0 \n\t"     \
1228    "adc r24, r1 \n\t"     \
1229    "adc r22, r25 \n\t"    \
1230    "mul r3, r21 \n\t"     \
1231    "add r23, r0 \n\t"     \
1232    "adc r24, r1 \n\t"     \
1233    "adc r22, r25 \n\t"    \
1234    "mul r4, r20 \n\t"     \
1235    "add r23, r0 \n\t"     \
1236    "adc r24, r1 \n\t"     \
1237    "adc r22, r25 \n\t"    \
1238    "mul r5, r19 \n\t"     \
1239    "add r23, r0 \n\t"     \
1240    "adc r24, r1 \n\t"     \
1241    "adc r22, r25 \n\t"    \
1242    "mul r6, r18 \n\t"     \
1243    "add r23, r0 \n\t"     \
1244    "adc r24, r1 \n\t"     \
1245    "adc r22, r25 \n\t"    \
1246    "mul r7, r17 \n\t"     \
1247    "add r23, r0 \n\t"     \
1248    "adc r24, r1 \n\t"     \
1249    "adc r22, r25 \n\t"    \
1250    "mul r8, r16 \n\t"     \
1251    "add r23, r0 \n\t"     \
1252    "adc r24, r1 \n\t"     \
1253    "adc r22, r25 \n\t"    \
1254    "mul r9, r15 \n\t"     \
1255    "add r23, r0 \n\t"     \
1256    "adc r24, r1 \n\t"     \
1257    "adc r22, r25 \n\t"    \
1258    "mul r10, r14 \n\t"    \
1259    "add r23, r0 \n\t"     \
1260    "adc r24, r1 \n\t"     \
1261    "adc r22, r25 \n\t"    \
1262    "mul r11, r13 \n\t"    \
1263    "add r23, r0 \n\t"     \
1264    "adc r24, r1 \n\t"     \
1265    "adc r22, r25 \n\t"    \
1266    "ld r0, z \n\t"        \
1267    "add r23, r0 \n\t"     \
1268    "adc r24, r25 \n\t"    \
1269    "adc r22, r25 \n\t"    \
1270    "st z+, r23 \n\t"      \
1271                           \
1272    "ld r13, y+ \n\t"      \
1273    "ldi r23, 0 \n\t"      \
1274    "mul r2, r13 \n\t"     \
1275    "add r24, r0 \n\t"     \
1276    "adc r22, r1 \n\t"     \
1277    "adc r23, r25 \n\t"    \
1278    "mul r3, r12 \n\t"     \
1279    "add r24, r0 \n\t"     \
1280    "adc r22, r1 \n\t"     \
1281    "adc r23, r25 \n\t"    \
1282    "mul r4, r21 \n\t"     \
1283    "add r24, r0 \n\t"     \
1284    "adc r22, r1 \n\t"     \
1285    "adc r23, r25 \n\t"    \
1286    "mul r5, r20 \n\t"     \
1287    "add r24, r0 \n\t"     \
1288    "adc r22, r1 \n\t"     \
1289    "adc r23, r25 \n\t"    \
1290    "mul r6, r19 \n\t"     \
1291    "add r24, r0 \n\t"     \
1292    "adc r22, r1 \n\t"     \
1293    "adc r23, r25 \n\t"    \
1294    "mul r7, r18 \n\t"     \
1295    "add r24, r0 \n\t"     \
1296    "adc r22, r1 \n\t"     \
1297    "adc r23, r25 \n\t"    \
1298    "mul r8, r17 \n\t"     \
1299    "add r24, r0 \n\t"     \
1300    "adc r22, r1 \n\t"     \
1301    "adc r23, r25 \n\t"    \
1302    "mul r9, r16 \n\t"     \
1303    "add r24, r0 \n\t"     \
1304    "adc r22, r1 \n\t"     \
1305    "adc r23, r25 \n\t"    \
1306    "mul r10, r15 \n\t"    \
1307    "add r24, r0 \n\t"     \
1308    "adc r22, r1 \n\t"     \
1309    "adc r23, r25 \n\t"    \
1310    "mul r11, r14 \n\t"    \
1311    "add r24, r0 \n\t"     \
1312    "adc r22, r1 \n\t"     \
1313    "adc r23, r25 \n\t"    \
1314    "ld r0, z \n\t"        \
1315    "add r24, r0 \n\t"     \
1316    "adc r22, r25 \n\t"    \
1317    "adc r23, r25 \n\t"    \
1318    "st z+, r24 \n\t"      \
1319                           \
1320    "ld r14, y+ \n\t"      \
1321    "ldi r24, 0 \n\t"      \
1322    "mul r2, r14 \n\t"     \
1323    "add r22, r0 \n\t"     \
1324    "adc r23, r1 \n\t"     \
1325    "adc r24, r25 \n\t"    \
1326    "mul r3, r13 \n\t"     \
1327    "add r22, r0 \n\t"     \
1328    "adc r23, r1 \n\t"     \
1329    "adc r24, r25 \n\t"    \
1330    "mul r4, r12 \n\t"     \
1331    "add r22, r0 \n\t"     \
1332    "adc r23, r1 \n\t"     \
1333    "adc r24, r25 \n\t"    \
1334    "mul r5, r21 \n\t"     \
1335    "add r22, r0 \n\t"     \
1336    "adc r23, r1 \n\t"     \
1337    "adc r24, r25 \n\t"    \
1338    "mul r6, r20 \n\t"     \
1339    "add r22, r0 \n\t"     \
1340    "adc r23, r1 \n\t"     \
1341    "adc r24, r25 \n\t"    \
1342    "mul r7, r19 \n\t"     \
1343    "add r22, r0 \n\t"     \
1344    "adc r23, r1 \n\t"     \
1345    "adc r24, r25 \n\t"    \
1346    "mul r8, r18 \n\t"     \
1347    "add r22, r0 \n\t"     \
1348    "adc r23, r1 \n\t"     \
1349    "adc r24, r25 \n\t"    \
1350    "mul r9, r17 \n\t"     \
1351    "add r22, r0 \n\t"     \
1352    "adc r23, r1 \n\t"     \
1353    "adc r24, r25 \n\t"    \
1354    "mul r10, r16 \n\t"    \
1355    "add r22, r0 \n\t"     \
1356    "adc r23, r1 \n\t"     \
1357    "adc r24, r25 \n\t"    \
1358    "mul r11, r15 \n\t"    \
1359    "add r22, r0 \n\t"     \
1360    "adc r23, r1 \n\t"     \
1361    "adc r24, r25 \n\t"    \
1362    "ld r0, z \n\t"        \
1363    "add r22, r0 \n\t"     \
1364    "adc r23, r25 \n\t"    \
1365    "adc r24, r25 \n\t"    \
1366    "st z+, r22 \n\t"      \
1367                           \
1368    "ld r15, y+ \n\t"      \
1369    "ldi r22, 0 \n\t"      \
1370    "mul r2, r15 \n\t"     \
1371    "add r23, r0 \n\t"     \
1372    "adc r24, r1 \n\t"     \
1373    "adc r22, r25 \n\t"    \
1374    "mul r3, r14 \n\t"     \
1375    "add r23, r0 \n\t"     \
1376    "adc r24, r1 \n\t"     \
1377    "adc r22, r25 \n\t"    \
1378    "mul r4, r13 \n\t"     \
1379    "add r23, r0 \n\t"     \
1380    "adc r24, r1 \n\t"     \
1381    "adc r22, r25 \n\t"    \
1382    "mul r5, r12 \n\t"     \
1383    "add r23, r0 \n\t"     \
1384    "adc r24, r1 \n\t"     \
1385    "adc r22, r25 \n\t"    \
1386    "mul r6, r21 \n\t"     \
1387    "add r23, r0 \n\t"     \
1388    "adc r24, r1 \n\t"     \
1389    "adc r22, r25 \n\t"    \
1390    "mul r7, r20 \n\t"     \
1391    "add r23, r0 \n\t"     \
1392    "adc r24, r1 \n\t"     \
1393    "adc r22, r25 \n\t"    \
1394    "mul r8, r19 \n\t"     \
1395    "add r23, r0 \n\t"     \
1396    "adc r24, r1 \n\t"     \
1397    "adc r22, r25 \n\t"    \
1398    "mul r9, r18 \n\t"     \
1399    "add r23, r0 \n\t"     \
1400    "adc r24, r1 \n\t"     \
1401    "adc r22, r25 \n\t"    \
1402    "mul r10, r17 \n\t"    \
1403    "add r23, r0 \n\t"     \
1404    "adc r24, r1 \n\t"     \
1405    "adc r22, r25 \n\t"    \
1406    "mul r11, r16 \n\t"    \
1407    "add r23, r0 \n\t"     \
1408    "adc r24, r1 \n\t"     \
1409    "adc r22, r25 \n\t"    \
1410    "ld r0, z \n\t"        \
1411    "add r23, r0 \n\t"     \
1412    "adc r24, r25 \n\t"    \
1413    "adc r22, r25 \n\t"    \
1414    "st z+, r23 \n\t"      \
1415                           \
1416    "ld r16, y+ \n\t"      \
1417    "ldi r23, 0 \n\t"      \
1418    "mul r2, r16 \n\t"     \
1419    "add r24, r0 \n\t"     \
1420    "adc r22, r1 \n\t"     \
1421    "adc r23, r25 \n\t"    \
1422    "mul r3, r15 \n\t"     \
1423    "add r24, r0 \n\t"     \
1424    "adc r22, r1 \n\t"     \
1425    "adc r23, r25 \n\t"    \
1426    "mul r4, r14 \n\t"     \
1427    "add r24, r0 \n\t"     \
1428    "adc r22, r1 \n\t"     \
1429    "adc r23, r25 \n\t"    \
1430    "mul r5, r13 \n\t"     \
1431    "add r24, r0 \n\t"     \
1432    "adc r22, r1 \n\t"     \
1433    "adc r23, r25 \n\t"    \
1434    "mul r6, r12 \n\t"     \
1435    "add r24, r0 \n\t"     \
1436    "adc r22, r1 \n\t"     \
1437    "adc r23, r25 \n\t"    \
1438    "mul r7, r21 \n\t"     \
1439    "add r24, r0 \n\t"     \
1440    "adc r22, r1 \n\t"     \
1441    "adc r23, r25 \n\t"    \
1442    "mul r8, r20 \n\t"     \
1443    "add r24, r0 \n\t"     \
1444    "adc r22, r1 \n\t"     \
1445    "adc r23, r25 \n\t"    \
1446    "mul r9, r19 \n\t"     \
1447    "add r24, r0 \n\t"     \
1448    "adc r22, r1 \n\t"     \
1449    "adc r23, r25 \n\t"    \
1450    "mul r10, r18 \n\t"    \
1451    "add r24, r0 \n\t"     \
1452    "adc r22, r1 \n\t"     \
1453    "adc r23, r25 \n\t"    \
1454    "mul r11, r17 \n\t"    \
1455    "add r24, r0 \n\t"     \
1456    "adc r22, r1 \n\t"     \
1457    "adc r23, r25 \n\t"    \
1458    "ld r0, z \n\t"        \
1459    "add r24, r0 \n\t"     \
1460    "adc r22, r25 \n\t"    \
1461    "adc r23, r25 \n\t"    \
1462    "st z+, r24 \n\t"      \
1463                           \
1464    "ld r17, y+ \n\t"      \
1465    "ldi r24, 0 \n\t"      \
1466    "mul r2, r17 \n\t"     \
1467    "add r22, r0 \n\t"     \
1468    "adc r23, r1 \n\t"     \
1469    "adc r24, r25 \n\t"    \
1470    "mul r3, r16 \n\t"     \
1471    "add r22, r0 \n\t"     \
1472    "adc r23, r1 \n\t"     \
1473    "adc r24, r25 \n\t"    \
1474    "mul r4, r15 \n\t"     \
1475    "add r22, r0 \n\t"     \
1476    "adc r23, r1 \n\t"     \
1477    "adc r24, r25 \n\t"    \
1478    "mul r5, r14 \n\t"     \
1479    "add r22, r0 \n\t"     \
1480    "adc r23, r1 \n\t"     \
1481    "adc r24, r25 \n\t"    \
1482    "mul r6, r13 \n\t"     \
1483    "add r22, r0 \n\t"     \
1484    "adc r23, r1 \n\t"     \
1485    "adc r24, r25 \n\t"    \
1486    "mul r7, r12 \n\t"     \
1487    "add r22, r0 \n\t"     \
1488    "adc r23, r1 \n\t"     \
1489    "adc r24, r25 \n\t"    \
1490    "mul r8, r21 \n\t"     \
1491    "add r22, r0 \n\t"     \
1492    "adc r23, r1 \n\t"     \
1493    "adc r24, r25 \n\t"    \
1494    "mul r9, r20 \n\t"     \
1495    "add r22, r0 \n\t"     \
1496    "adc r23, r1 \n\t"     \
1497    "adc r24, r25 \n\t"    \
1498    "mul r10, r19 \n\t"    \
1499    "add r22, r0 \n\t"     \
1500    "adc r23, r1 \n\t"     \
1501    "adc r24, r25 \n\t"    \
1502    "mul r11, r18 \n\t"    \
1503    "add r22, r0 \n\t"     \
1504    "adc r23, r1 \n\t"     \
1505    "adc r24, r25 \n\t"    \
1506    "ld r0, z \n\t"        \
1507    "add r22, r0 \n\t"     \
1508    "adc r23, r25 \n\t"    \
1509    "adc r24, r25 \n\t"    \
1510    "st z+, r22 \n\t"      \
1511                           \
1512    "ld r18, y+ \n\t"      \
1513    "ldi r22, 0 \n\t"      \
1514    "mul r2, r18 \n\t"     \
1515    "add r23, r0 \n\t"     \
1516    "adc r24, r1 \n\t"     \
1517    "adc r22, r25 \n\t"    \
1518    "mul r3, r17 \n\t"     \
1519    "add r23, r0 \n\t"     \
1520    "adc r24, r1 \n\t"     \
1521    "adc r22, r25 \n\t"    \
1522    "mul r4, r16 \n\t"     \
1523    "add r23, r0 \n\t"     \
1524    "adc r24, r1 \n\t"     \
1525    "adc r22, r25 \n\t"    \
1526    "mul r5, r15 \n\t"     \
1527    "add r23, r0 \n\t"     \
1528    "adc r24, r1 \n\t"     \
1529    "adc r22, r25 \n\t"    \
1530    "mul r6, r14 \n\t"     \
1531    "add r23, r0 \n\t"     \
1532    "adc r24, r1 \n\t"     \
1533    "adc r22, r25 \n\t"    \
1534    "mul r7, r13 \n\t"     \
1535    "add r23, r0 \n\t"     \
1536    "adc r24, r1 \n\t"     \
1537    "adc r22, r25 \n\t"    \
1538    "mul r8, r12 \n\t"     \
1539    "add r23, r0 \n\t"     \
1540    "adc r24, r1 \n\t"     \
1541    "adc r22, r25 \n\t"    \
1542    "mul r9, r21 \n\t"     \
1543    "add r23, r0 \n\t"     \
1544    "adc r24, r1 \n\t"     \
1545    "adc r22, r25 \n\t"    \
1546    "mul r10, r20 \n\t"    \
1547    "add r23, r0 \n\t"     \
1548    "adc r24, r1 \n\t"     \
1549    "adc r22, r25 \n\t"    \
1550    "mul r11, r19 \n\t"    \
1551    "add r23, r0 \n\t"     \
1552    "adc r24, r1 \n\t"     \
1553    "adc r22, r25 \n\t"    \
1554    "ld r0, z \n\t"        \
1555    "add r23, r0 \n\t"     \
1556    "adc r24, r25 \n\t"    \
1557    "adc r22, r25 \n\t"    \
1558    "st z+, r23 \n\t"      \
1559                           \
1560    "ld r19, y+ \n\t"      \
1561    "ldi r23, 0 \n\t"      \
1562    "mul r2, r19 \n\t"     \
1563    "add r24, r0 \n\t"     \
1564    "adc r22, r1 \n\t"     \
1565    "adc r23, r25 \n\t"    \
1566    "mul r3, r18 \n\t"     \
1567    "add r24, r0 \n\t"     \
1568    "adc r22, r1 \n\t"     \
1569    "adc r23, r25 \n\t"    \
1570    "mul r4, r17 \n\t"     \
1571    "add r24, r0 \n\t"     \
1572    "adc r22, r1 \n\t"     \
1573    "adc r23, r25 \n\t"    \
1574    "mul r5, r16 \n\t"     \
1575    "add r24, r0 \n\t"     \
1576    "adc r22, r1 \n\t"     \
1577    "adc r23, r25 \n\t"    \
1578    "mul r6, r15 \n\t"     \
1579    "add r24, r0 \n\t"     \
1580    "adc r22, r1 \n\t"     \
1581    "adc r23, r25 \n\t"    \
1582    "mul r7, r14 \n\t"     \
1583    "add r24, r0 \n\t"     \
1584    "adc r22, r1 \n\t"     \
1585    "adc r23, r25 \n\t"    \
1586    "mul r8, r13 \n\t"     \
1587    "add r24, r0 \n\t"     \
1588    "adc r22, r1 \n\t"     \
1589    "adc r23, r25 \n\t"    \
1590    "mul r9, r12 \n\t"     \
1591    "add r24, r0 \n\t"     \
1592    "adc r22, r1 \n\t"     \
1593    "adc r23, r25 \n\t"    \
1594    "mul r10, r21 \n\t"    \
1595    "add r24, r0 \n\t"     \
1596    "adc r22, r1 \n\t"     \
1597    "adc r23, r25 \n\t"    \
1598    "mul r11, r20 \n\t"    \
1599    "add r24, r0 \n\t"     \
1600    "adc r22, r1 \n\t"     \
1601    "adc r23, r25 \n\t"    \
1602    "ld r0, z \n\t"        \
1603    "add r24, r0 \n\t"     \
1604    "adc r22, r25 \n\t"    \
1605    "adc r23, r25 \n\t"    \
1606    "st z+, r24 \n\t"      \
1607                           \
1608    "ld r20, y+ \n\t"      \
1609    "ldi r24, 0 \n\t"      \
1610    "mul r2, r20 \n\t"     \
1611    "add r22, r0 \n\t"     \
1612    "adc r23, r1 \n\t"     \
1613    "adc r24, r25 \n\t"    \
1614    "mul r3, r19 \n\t"     \
1615    "add r22, r0 \n\t"     \
1616    "adc r23, r1 \n\t"     \
1617    "adc r24, r25 \n\t"    \
1618    "mul r4, r18 \n\t"     \
1619    "add r22, r0 \n\t"     \
1620    "adc r23, r1 \n\t"     \
1621    "adc r24, r25 \n\t"    \
1622    "mul r5, r17 \n\t"     \
1623    "add r22, r0 \n\t"     \
1624    "adc r23, r1 \n\t"     \
1625    "adc r24, r25 \n\t"    \
1626    "mul r6, r16 \n\t"     \
1627    "add r22, r0 \n\t"     \
1628    "adc r23, r1 \n\t"     \
1629    "adc r24, r25 \n\t"    \
1630    "mul r7, r15 \n\t"     \
1631    "add r22, r0 \n\t"     \
1632    "adc r23, r1 \n\t"     \
1633    "adc r24, r25 \n\t"    \
1634    "mul r8, r14 \n\t"     \
1635    "add r22, r0 \n\t"     \
1636    "adc r23, r1 \n\t"     \
1637    "adc r24, r25 \n\t"    \
1638    "mul r9, r13 \n\t"     \
1639    "add r22, r0 \n\t"     \
1640    "adc r23, r1 \n\t"     \
1641    "adc r24, r25 \n\t"    \
1642    "mul r10, r12 \n\t"    \
1643    "add r22, r0 \n\t"     \
1644    "adc r23, r1 \n\t"     \
1645    "adc r24, r25 \n\t"    \
1646    "mul r11, r21 \n\t"    \
1647    "add r22, r0 \n\t"     \
1648    "adc r23, r1 \n\t"     \
1649    "adc r24, r25 \n\t"    \
1650    "ld r0, z \n\t"        \
1651    "add r22, r0 \n\t"     \
1652    "adc r23, r25 \n\t"    \
1653    "adc r24, r25 \n\t"    \
1654    "st z+, r22 \n\t"      \
1655                           \
1656    "ld r21, y+ \n\t"      \
1657    "ldi r22, 0 \n\t"      \
1658    "mul r2, r21 \n\t"     \
1659    "add r23, r0 \n\t"     \
1660    "adc r24, r1 \n\t"     \
1661    "adc r22, r25 \n\t"    \
1662    "mul r3, r20 \n\t"     \
1663    "add r23, r0 \n\t"     \
1664    "adc r24, r1 \n\t"     \
1665    "adc r22, r25 \n\t"    \
1666    "mul r4, r19 \n\t"     \
1667    "add r23, r0 \n\t"     \
1668    "adc r24, r1 \n\t"     \
1669    "adc r22, r25 \n\t"    \
1670    "mul r5, r18 \n\t"     \
1671    "add r23, r0 \n\t"     \
1672    "adc r24, r1 \n\t"     \
1673    "adc r22, r25 \n\t"    \
1674    "mul r6, r17 \n\t"     \
1675    "add r23, r0 \n\t"     \
1676    "adc r24, r1 \n\t"     \
1677    "adc r22, r25 \n\t"    \
1678    "mul r7, r16 \n\t"     \
1679    "add r23, r0 \n\t"     \
1680    "adc r24, r1 \n\t"     \
1681    "adc r22, r25 \n\t"    \
1682    "mul r8, r15 \n\t"     \
1683    "add r23, r0 \n\t"     \
1684    "adc r24, r1 \n\t"     \
1685    "adc r22, r25 \n\t"    \
1686    "mul r9, r14 \n\t"     \
1687    "add r23, r0 \n\t"     \
1688    "adc r24, r1 \n\t"     \
1689    "adc r22, r25 \n\t"    \
1690    "mul r10, r13 \n\t"    \
1691    "add r23, r0 \n\t"     \
1692    "adc r24, r1 \n\t"     \
1693    "adc r22, r25 \n\t"    \
1694    "mul r11, r12 \n\t"    \
1695    "add r23, r0 \n\t"     \
1696    "adc r24, r1 \n\t"     \
1697    "adc r22, r25 \n\t"    \
1698    "ld r0, z \n\t"        \
1699    "add r23, r0 \n\t"     \
1700    "adc r24, r25 \n\t"    \
1701    "adc r22, r25 \n\t"    \
1702    "st z+, r23 \n\t"      \
1703                           \
1704    "ldi r23, 0 \n\t"      \
1705    "mul r3, r21 \n\t"     \
1706    "add r24, r0 \n\t"     \
1707    "adc r22, r1 \n\t"     \
1708    "adc r23, r25 \n\t"    \
1709    "mul r4, r20 \n\t"     \
1710    "add r24, r0 \n\t"     \
1711    "adc r22, r1 \n\t"     \
1712    "adc r23, r25 \n\t"    \
1713    "mul r5, r19 \n\t"     \
1714    "add r24, r0 \n\t"     \
1715    "adc r22, r1 \n\t"     \
1716    "adc r23, r25 \n\t"    \
1717    "mul r6, r18 \n\t"     \
1718    "add r24, r0 \n\t"     \
1719    "adc r22, r1 \n\t"     \
1720    "adc r23, r25 \n\t"    \
1721    "mul r7, r17 \n\t"     \
1722    "add r24, r0 \n\t"     \
1723    "adc r22, r1 \n\t"     \
1724    "adc r23, r25 \n\t"    \
1725    "mul r8, r16 \n\t"     \
1726    "add r24, r0 \n\t"     \
1727    "adc r22, r1 \n\t"     \
1728    "adc r23, r25 \n\t"    \
1729    "mul r9, r15 \n\t"     \
1730    "add r24, r0 \n\t"     \
1731    "adc r22, r1 \n\t"     \
1732    "adc r23, r25 \n\t"    \
1733    "mul r10, r14 \n\t"    \
1734    "add r24, r0 \n\t"     \
1735    "adc r22, r1 \n\t"     \
1736    "adc r23, r25 \n\t"    \
1737    "mul r11, r13 \n\t"    \
1738    "add r24, r0 \n\t"     \
1739    "adc r22, r1 \n\t"     \
1740    "adc r23, r25 \n\t"    \
1741    "st z+, r24 \n\t"      \
1742                           \
1743    "ldi r24, 0 \n\t"      \
1744    "mul r4, r21 \n\t"     \
1745    "add r22, r0 \n\t"     \
1746    "adc r23, r1 \n\t"     \
1747    "adc r24, r25 \n\t"    \
1748    "mul r5, r20 \n\t"     \
1749    "add r22, r0 \n\t"     \
1750    "adc r23, r1 \n\t"     \
1751    "adc r24, r25 \n\t"    \
1752    "mul r6, r19 \n\t"     \
1753    "add r22, r0 \n\t"     \
1754    "adc r23, r1 \n\t"     \
1755    "adc r24, r25 \n\t"    \
1756    "mul r7, r18 \n\t"     \
1757    "add r22, r0 \n\t"     \
1758    "adc r23, r1 \n\t"     \
1759    "adc r24, r25 \n\t"    \
1760    "mul r8, r17 \n\t"     \
1761    "add r22, r0 \n\t"     \
1762    "adc r23, r1 \n\t"     \
1763    "adc r24, r25 \n\t"    \
1764    "mul r9, r16 \n\t"     \
1765    "add r22, r0 \n\t"     \
1766    "adc r23, r1 \n\t"     \
1767    "adc r24, r25 \n\t"    \
1768    "mul r10, r15 \n\t"    \
1769    "add r22, r0 \n\t"     \
1770    "adc r23, r1 \n\t"     \
1771    "adc r24, r25 \n\t"    \
1772    "mul r11, r14 \n\t"    \
1773    "add r22, r0 \n\t"     \
1774    "adc r23, r1 \n\t"     \
1775    "adc r24, r25 \n\t"    \
1776    "st z+, r22 \n\t"      \
1777                           \
1778    "ldi r22, 0 \n\t"      \
1779    "mul r5, r21 \n\t"     \
1780    "add r23, r0 \n\t"     \
1781    "adc r24, r1 \n\t"     \
1782    "adc r22, r25 \n\t"    \
1783    "mul r6, r20 \n\t"     \
1784    "add r23, r0 \n\t"     \
1785    "adc r24, r1 \n\t"     \
1786    "adc r22, r25 \n\t"    \
1787    "mul r7, r19 \n\t"     \
1788    "add r23, r0 \n\t"     \
1789    "adc r24, r1 \n\t"     \
1790    "adc r22, r25 \n\t"    \
1791    "mul r8, r18 \n\t"     \
1792    "add r23, r0 \n\t"     \
1793    "adc r24, r1 \n\t"     \
1794    "adc r22, r25 \n\t"    \
1795    "mul r9, r17 \n\t"     \
1796    "add r23, r0 \n\t"     \
1797    "adc r24, r1 \n\t"     \
1798    "adc r22, r25 \n\t"    \
1799    "mul r10, r16 \n\t"    \
1800    "add r23, r0 \n\t"     \
1801    "adc r24, r1 \n\t"     \
1802    "adc r22, r25 \n\t"    \
1803    "mul r11, r15 \n\t"    \
1804    "add r23, r0 \n\t"     \
1805    "adc r24, r1 \n\t"     \
1806    "adc r22, r25 \n\t"    \
1807    "st z+, r23 \n\t"      \
1808                           \
1809    "ldi r23, 0 \n\t"      \
1810    "mul r6, r21 \n\t"     \
1811    "add r24, r0 \n\t"     \
1812    "adc r22, r1 \n\t"     \
1813    "adc r23, r25 \n\t"    \
1814    "mul r7, r20 \n\t"     \
1815    "add r24, r0 \n\t"     \
1816    "adc r22, r1 \n\t"     \
1817    "adc r23, r25 \n\t"    \
1818    "mul r8, r19 \n\t"     \
1819    "add r24, r0 \n\t"     \
1820    "adc r22, r1 \n\t"     \
1821    "adc r23, r25 \n\t"    \
1822    "mul r9, r18 \n\t"     \
1823    "add r24, r0 \n\t"     \
1824    "adc r22, r1 \n\t"     \
1825    "adc r23, r25 \n\t"    \
1826    "mul r10, r17 \n\t"    \
1827    "add r24, r0 \n\t"     \
1828    "adc r22, r1 \n\t"     \
1829    "adc r23, r25 \n\t"    \
1830    "mul r11, r16 \n\t"    \
1831    "add r24, r0 \n\t"     \
1832    "adc r22, r1 \n\t"     \
1833    "adc r23, r25 \n\t"    \
1834    "st z+, r24 \n\t"      \
1835                           \
1836    "ldi r24, 0 \n\t"      \
1837    "mul r7, r21 \n\t"     \
1838    "add r22, r0 \n\t"     \
1839    "adc r23, r1 \n\t"     \
1840    "adc r24, r25 \n\t"    \
1841    "mul r8, r20 \n\t"     \
1842    "add r22, r0 \n\t"     \
1843    "adc r23, r1 \n\t"     \
1844    "adc r24, r25 \n\t"    \
1845    "mul r9, r19 \n\t"     \
1846    "add r22, r0 \n\t"     \
1847    "adc r23, r1 \n\t"     \
1848    "adc r24, r25 \n\t"    \
1849    "mul r10, r18 \n\t"    \
1850    "add r22, r0 \n\t"     \
1851    "adc r23, r1 \n\t"     \
1852    "adc r24, r25 \n\t"    \
1853    "mul r11, r17 \n\t"    \
1854    "add r22, r0 \n\t"     \
1855    "adc r23, r1 \n\t"     \
1856    "adc r24, r25 \n\t"    \
1857    "st z+, r22 \n\t"      \
1858                           \
1859    "ldi r22, 0 \n\t"      \
1860    "mul r8, r21 \n\t"     \
1861    "add r23, r0 \n\t"     \
1862    "adc r24, r1 \n\t"     \
1863    "adc r22, r25 \n\t"    \
1864    "mul r9, r20 \n\t"     \
1865    "add r23, r0 \n\t"     \
1866    "adc r24, r1 \n\t"     \
1867    "adc r22, r25 \n\t"    \
1868    "mul r10, r19 \n\t"    \
1869    "add r23, r0 \n\t"     \
1870    "adc r24, r1 \n\t"     \
1871    "adc r22, r25 \n\t"    \
1872    "mul r11, r18 \n\t"    \
1873    "add r23, r0 \n\t"     \
1874    "adc r24, r1 \n\t"     \
1875    "adc r22, r25 \n\t"    \
1876    "st z+, r23 \n\t"      \
1877                           \
1878    "ldi r23, 0 \n\t"      \
1879    "mul r9, r21 \n\t"     \
1880    "add r24, r0 \n\t"     \
1881    "adc r22, r1 \n\t"     \
1882    "adc r23, r25 \n\t"    \
1883    "mul r10, r20 \n\t"    \
1884    "add r24, r0 \n\t"     \
1885    "adc r22, r1 \n\t"     \
1886    "adc r23, r25 \n\t"    \
1887    "mul r11, r19 \n\t"    \
1888    "add r24, r0 \n\t"     \
1889    "adc r22, r1 \n\t"     \
1890    "adc r23, r25 \n\t"    \
1891    "st z+, r24 \n\t"      \
1892                           \
1893    "ldi r24, 0 \n\t"      \
1894    "mul r10, r21 \n\t"    \
1895    "add r22, r0 \n\t"     \
1896    "adc r23, r1 \n\t"     \
1897    "adc r24, r25 \n\t"    \
1898    "mul r11, r20 \n\t"    \
1899    "add r22, r0 \n\t"     \
1900    "adc r23, r1 \n\t"     \
1901    "adc r24, r25 \n\t"    \
1902    "st z+, r22 \n\t"      \
1903                           \
1904    "mul r11, r21 \n\t"    \
1905    "add r23, r0 \n\t"     \
1906    "adc r24, r1 \n\t"     \
1907    "st z+, r23 \n\t"      \
1908    "st z+, r24 \n\t"
1909
1910#define FAST_MULT_ASM_20_TO_24     \
1911    "cpi r18, 20 \n\t"             \
1912    "brne 1f \n\t"                 \
1913    "jmp 2f \n\t"                  \
1914    "1: \n\t"                      \
1915    "ld r2, x+ \n\t"               \
1916    "ld r6, y+ \n\t"               \
1917    "ld r3, x+ \n\t"               \
1918    "ld r7, y+ \n\t"               \
1919    "ld r4, x+ \n\t"               \
1920    "ld r8, y+ \n\t"               \
1921    "ld r5, x+ \n\t"               \
1922    "ld r9, y+ \n\t"               \
1923    "sbiw r26, 24 \n\t"            \
1924    "sbiw r28, 24 \n\t"            \
1925    "sbiw r30, 20 \n\t"            \
1926    "ld r10, x+ \n\t"              \
1927    "ld r14, y+ \n\t"              \
1928    "ld r11, x+ \n\t"              \
1929    "ld r15, y+ \n\t"              \
1930    "ld r12, x+ \n\t"              \
1931    "ld r16, y+ \n\t"              \
1932    "ld r13, x+ \n\t"              \
1933    "ld r17, y+ \n\t"              \
1934                                   \
1935    "mul r2, r14 \n\t"             \
1936    "mov r19, r0 \n\t"             \
1937    "mov r20, r1 \n\t"             \
1938    "ldi r21, 0 \n\t"              \
1939    "ld r0, z \n\t"                \
1940    "add r19, r0 \n\t"             \
1941    "adc r20, r25 \n\t"            \
1942    "mul r6, r10 \n\t"             \
1943    "add r19, r0 \n\t"             \
1944    "adc r20, r1 \n\t"             \
1945    "adc r21, r25 \n\t"            \
1946    "st z+, r19 \n\t"              \
1947                                   \
1948    "ldi r19, 0 \n\t"              \
1949    "ld r0, z \n\t"                \
1950    "add r20, r0 \n\t"             \
1951    "adc r21, r25 \n\t"            \
1952    "mul r2, r15 \n\t"             \
1953    "add r20, r0 \n\t"             \
1954    "adc r21, r1 \n\t"             \
1955    "adc r19, r25 \n\t"            \
1956    "mul r6, r11 \n\t"             \
1957    "add r20, r0 \n\t"             \
1958    "adc r21, r1 \n\t"             \
1959    "adc r19, r25 \n\t"            \
1960    "mul r3, r14 \n\t"             \
1961    "add r20, r0 \n\t"             \
1962    "adc r21, r1 \n\t"             \
1963    "adc r19, r25 \n\t"            \
1964    "mul r7, r10 \n\t"             \
1965    "add r20, r0 \n\t"             \
1966    "adc r21, r1 \n\t"             \
1967    "adc r19, r25 \n\t"            \
1968    "st z+, r20 \n\t"              \
1969                                   \
1970    "ldi r20, 0 \n\t"              \
1971    "ld r0, z \n\t"                \
1972    "add r21, r0 \n\t"             \
1973    "adc r19, r25 \n\t"            \
1974    "mul r2, r16 \n\t"             \
1975    "add r21, r0 \n\t"             \
1976    "adc r19, r1 \n\t"             \
1977    "adc r20, r25 \n\t"            \
1978    "mul r6, r12 \n\t"             \
1979    "add r21, r0 \n\t"             \
1980    "adc r19, r1 \n\t"             \
1981    "adc r20, r25 \n\t"            \
1982    "mul r3, r15 \n\t"             \
1983    "add r21, r0 \n\t"             \
1984    "adc r19, r1 \n\t"             \
1985    "adc r20, r25 \n\t"            \
1986    "mul r7, r11 \n\t"             \
1987    "add r21, r0 \n\t"             \
1988    "adc r19, r1 \n\t"             \
1989    "adc r20, r25 \n\t"            \
1990    "mul r4, r14 \n\t"             \
1991    "add r21, r0 \n\t"             \
1992    "adc r19, r1 \n\t"             \
1993    "adc r20, r25 \n\t"            \
1994    "mul r8, r10 \n\t"             \
1995    "add r21, r0 \n\t"             \
1996    "adc r19, r1 \n\t"             \
1997    "adc r20, r25 \n\t"            \
1998    "st z+, r21 \n\t"              \
1999                                   \
2000    "ldi r21, 0 \n\t"              \
2001    "ld r0, z \n\t"                \
2002    "add r19, r0 \n\t"             \
2003    "adc r20, r25 \n\t"            \
2004    "mul r2, r17 \n\t"             \
2005    "add r19, r0 \n\t"             \
2006    "adc r20, r1 \n\t"             \
2007    "adc r21, r25 \n\t"            \
2008    "mul r6, r13 \n\t"             \
2009    "add r19, r0 \n\t"             \
2010    "adc r20, r1 \n\t"             \
2011    "adc r21, r25 \n\t"            \
2012    "mul r3, r16 \n\t"             \
2013    "add r19, r0 \n\t"             \
2014    "adc r20, r1 \n\t"             \
2015    "adc r21, r25 \n\t"            \
2016    "mul r7, r12 \n\t"             \
2017    "add r19, r0 \n\t"             \
2018    "adc r20, r1 \n\t"             \
2019    "adc r21, r25 \n\t"            \
2020    "mul r4, r15 \n\t"             \
2021    "add r19, r0 \n\t"             \
2022    "adc r20, r1 \n\t"             \
2023    "adc r21, r25 \n\t"            \
2024    "mul r8, r11 \n\t"             \
2025    "add r19, r0 \n\t"             \
2026    "adc r20, r1 \n\t"             \
2027    "adc r21, r25 \n\t"            \
2028    "mul r5, r14 \n\t"             \
2029    "add r19, r0 \n\t"             \
2030    "adc r20, r1 \n\t"             \
2031    "adc r21, r25 \n\t"            \
2032    "mul r9, r10 \n\t"             \
2033    "add r19, r0 \n\t"             \
2034    "adc r20, r1 \n\t"             \
2035    "adc r21, r25 \n\t"            \
2036    "st z+, r19 \n\t"              \
2037                                   \
2038    "ldi r19, 0 \n\t"              \
2039    "ld r0, z \n\t"                \
2040    "add r20, r0 \n\t"             \
2041    "adc r21, r25 \n\t"            \
2042    "ld r10, x+ \n\t"              \
2043    "ld r14, y+ \n\t"              \
2044    "mul r2, r14 \n\t"             \
2045    "add r20, r0 \n\t"             \
2046    "adc r21, r1 \n\t"             \
2047    "adc r19, r25 \n\t"            \
2048    "mul r6, r10 \n\t"             \
2049    "add r20, r0 \n\t"             \
2050    "adc r21, r1 \n\t"             \
2051    "adc r19, r25 \n\t"            \
2052    "mul r3, r17 \n\t"             \
2053    "add r20, r0 \n\t"             \
2054    "adc r21, r1 \n\t"             \
2055    "adc r19, r25 \n\t"            \
2056    "mul r7, r13 \n\t"             \
2057    "add r20, r0 \n\t"             \
2058    "adc r21, r1 \n\t"             \
2059    "adc r19, r25 \n\t"            \
2060    "mul r4, r16 \n\t"             \
2061    "add r20, r0 \n\t"             \
2062    "adc r21, r1 \n\t"             \
2063    "adc r19, r25 \n\t"            \
2064    "mul r8, r12 \n\t"             \
2065    "add r20, r0 \n\t"             \
2066    "adc r21, r1 \n\t"             \
2067    "adc r19, r25 \n\t"            \
2068    "mul r5, r15 \n\t"             \
2069    "add r20, r0 \n\t"             \
2070    "adc r21, r1 \n\t"             \
2071    "adc r19, r25 \n\t"            \
2072    "mul r9, r11 \n\t"             \
2073    "add r20, r0 \n\t"             \
2074    "adc r21, r1 \n\t"             \
2075    "adc r19, r25 \n\t"            \
2076    "st z+, r20 \n\t"              \
2077                                   \
2078    "ldi r20, 0 \n\t"              \
2079    "ld r0, z \n\t"                \
2080    "add r21, r0 \n\t"             \
2081    "adc r19, r25 \n\t"            \
2082    "ld r11, x+ \n\t"              \
2083    "ld r15, y+ \n\t"              \
2084    "mul r2, r15 \n\t"             \
2085    "add r21, r0 \n\t"             \
2086    "adc r19, r1 \n\t"             \
2087    "adc r20, r25 \n\t"            \
2088    "mul r6, r11 \n\t"             \
2089    "add r21, r0 \n\t"             \
2090    "adc r19, r1 \n\t"             \
2091    "adc r20, r25 \n\t"            \
2092    "mul r3, r14 \n\t"             \
2093    "add r21, r0 \n\t"             \
2094    "adc r19, r1 \n\t"             \
2095    "adc r20, r25 \n\t"            \
2096    "mul r7, r10 \n\t"             \
2097    "add r21, r0 \n\t"             \
2098    "adc r19, r1 \n\t"             \
2099    "adc r20, r25 \n\t"            \
2100    "mul r4, r17 \n\t"             \
2101    "add r21, r0 \n\t"             \
2102    "adc r19, r1 \n\t"             \
2103    "adc r20, r25 \n\t"            \
2104    "mul r8, r13 \n\t"             \
2105    "add r21, r0 \n\t"             \
2106    "adc r19, r1 \n\t"             \
2107    "adc r20, r25 \n\t"            \
2108    "mul r5, r16 \n\t"             \
2109    "add r21, r0 \n\t"             \
2110    "adc r19, r1 \n\t"             \
2111    "adc r20, r25 \n\t"            \
2112    "mul r9, r12 \n\t"             \
2113    "add r21, r0 \n\t"             \
2114    "adc r19, r1 \n\t"             \
2115    "adc r20, r25 \n\t"            \
2116    "st z+, r21 \n\t"              \
2117                                   \
2118    "ldi r21, 0 \n\t"              \
2119    "ld r0, z \n\t"                \
2120    "add r19, r0 \n\t"             \
2121    "adc r20, r25 \n\t"            \
2122    "ld r12, x+ \n\t"              \
2123    "ld r16, y+ \n\t"              \
2124    "mul r2, r16 \n\t"             \
2125    "add r19, r0 \n\t"             \
2126    "adc r20, r1 \n\t"             \
2127    "adc r21, r25 \n\t"            \
2128    "mul r6, r12 \n\t"             \
2129    "add r19, r0 \n\t"             \
2130    "adc r20, r1 \n\t"             \
2131    "adc r21, r25 \n\t"            \
2132    "mul r3, r15 \n\t"             \
2133    "add r19, r0 \n\t"             \
2134    "adc r20, r1 \n\t"             \
2135    "adc r21, r25 \n\t"            \
2136    "mul r7, r11 \n\t"             \
2137    "add r19, r0 \n\t"             \
2138    "adc r20, r1 \n\t"             \
2139    "adc r21, r25 \n\t"            \
2140    "mul r4, r14 \n\t"             \
2141    "add r19, r0 \n\t"             \
2142    "adc r20, r1 \n\t"             \
2143    "adc r21, r25 \n\t"            \
2144    "mul r8, r10 \n\t"             \
2145    "add r19, r0 \n\t"             \
2146    "adc r20, r1 \n\t"             \
2147    "adc r21, r25 \n\t"            \
2148    "mul r5, r17 \n\t"             \
2149    "add r19, r0 \n\t"             \
2150    "adc r20, r1 \n\t"             \
2151    "adc r21, r25 \n\t"            \
2152    "mul r9, r13 \n\t"             \
2153    "add r19, r0 \n\t"             \
2154    "adc r20, r1 \n\t"             \
2155    "adc r21, r25 \n\t"            \
2156    "st z+, r19 \n\t"              \
2157                                   \
2158    "ldi r19, 0 \n\t"              \
2159    "ld r0, z \n\t"                \
2160    "add r20, r0 \n\t"             \
2161    "adc r21, r25 \n\t"            \
2162    "ld r13, x+ \n\t"              \
2163    "ld r17, y+ \n\t"              \
2164    "mul r2, r17 \n\t"             \
2165    "add r20, r0 \n\t"             \
2166    "adc r21, r1 \n\t"             \
2167    "adc r19, r25 \n\t"            \
2168    "mul r6, r13 \n\t"             \
2169    "add r20, r0 \n\t"             \
2170    "adc r21, r1 \n\t"             \
2171    "adc r19, r25 \n\t"            \
2172    "mul r3, r16 \n\t"             \
2173    "add r20, r0 \n\t"             \
2174    "adc r21, r1 \n\t"             \
2175    "adc r19, r25 \n\t"            \
2176    "mul r7, r12 \n\t"             \
2177    "add r20, r0 \n\t"             \
2178    "adc r21, r1 \n\t"             \
2179    "adc r19, r25 \n\t"            \
2180    "mul r4, r15 \n\t"             \
2181    "add r20, r0 \n\t"             \
2182    "adc r21, r1 \n\t"             \
2183    "adc r19, r25 \n\t"            \
2184    "mul r8, r11 \n\t"             \
2185    "add r20, r0 \n\t"             \
2186    "adc r21, r1 \n\t"             \
2187    "adc r19, r25 \n\t"            \
2188    "mul r5, r14 \n\t"             \
2189    "add r20, r0 \n\t"             \
2190    "adc r21, r1 \n\t"             \
2191    "adc r19, r25 \n\t"            \
2192    "mul r9, r10 \n\t"             \
2193    "add r20, r0 \n\t"             \
2194    "adc r21, r1 \n\t"             \
2195    "adc r19, r25 \n\t"            \
2196    "st z+, r20 \n\t"              \
2197                                   \
2198    "ldi r20, 0 \n\t"              \
2199    "ld r0, z \n\t"                \
2200    "add r21, r0 \n\t"             \
2201    "adc r19, r25 \n\t"            \
2202    "ld r10, x+ \n\t"              \
2203    "ld r14, y+ \n\t"              \
2204    "mul r2, r14 \n\t"             \
2205    "add r21, r0 \n\t"             \
2206    "adc r19, r1 \n\t"             \
2207    "adc r20, r25 \n\t"            \
2208    "mul r6, r10 \n\t"             \
2209    "add r21, r0 \n\t"             \
2210    "adc r19, r1 \n\t"             \
2211    "adc r20, r25 \n\t"            \
2212    "mul r3, r17 \n\t"             \
2213    "add r21, r0 \n\t"             \
2214    "adc r19, r1 \n\t"             \
2215    "adc r20, r25 \n\t"            \
2216    "mul r7, r13 \n\t"             \
2217    "add r21, r0 \n\t"             \
2218    "adc r19, r1 \n\t"             \
2219    "adc r20, r25 \n\t"            \
2220    "mul r4, r16 \n\t"             \
2221    "add r21, r0 \n\t"             \
2222    "adc r19, r1 \n\t"             \
2223    "adc r20, r25 \n\t"            \
2224    "mul r8, r12 \n\t"             \
2225    "add r21, r0 \n\t"             \
2226    "adc r19, r1 \n\t"             \
2227    "adc r20, r25 \n\t"            \
2228    "mul r5, r15 \n\t"             \
2229    "add r21, r0 \n\t"             \
2230    "adc r19, r1 \n\t"             \
2231    "adc r20, r25 \n\t"            \
2232    "mul r9, r11 \n\t"             \
2233    "add r21, r0 \n\t"             \
2234    "adc r19, r1 \n\t"             \
2235    "adc r20, r25 \n\t"            \
2236    "st z+, r21 \n\t"              \
2237                                   \
2238    "ldi r21, 0 \n\t"              \
2239    "ld r0, z \n\t"                \
2240    "add r19, r0 \n\t"             \
2241    "adc r20, r25 \n\t"            \
2242    "ld r11, x+ \n\t"              \
2243    "ld r15, y+ \n\t"              \
2244    "mul r2, r15 \n\t"             \
2245    "add r19, r0 \n\t"             \
2246    "adc r20, r1 \n\t"             \
2247    "adc r21, r25 \n\t"            \
2248    "mul r6, r11 \n\t"             \
2249    "add r19, r0 \n\t"             \
2250    "adc r20, r1 \n\t"             \
2251    "adc r21, r25 \n\t"            \
2252    "mul r3, r14 \n\t"             \
2253    "add r19, r0 \n\t"             \
2254    "adc r20, r1 \n\t"             \
2255    "adc r21, r25 \n\t"            \
2256    "mul r7, r10 \n\t"             \
2257    "add r19, r0 \n\t"             \
2258    "adc r20, r1 \n\t"             \
2259    "adc r21, r25 \n\t"            \
2260    "mul r4, r17 \n\t"             \
2261    "add r19, r0 \n\t"             \
2262    "adc r20, r1 \n\t"             \
2263    "adc r21, r25 \n\t"            \
2264    "mul r8, r13 \n\t"             \
2265    "add r19, r0 \n\t"             \
2266    "adc r20, r1 \n\t"             \
2267    "adc r21, r25 \n\t"            \
2268    "mul r5, r16 \n\t"             \
2269    "add r19, r0 \n\t"             \
2270    "adc r20, r1 \n\t"             \
2271    "adc r21, r25 \n\t"            \
2272    "mul r9, r12 \n\t"             \
2273    "add r19, r0 \n\t"             \
2274    "adc r20, r1 \n\t"             \
2275    "adc r21, r25 \n\t"            \
2276    "st z+, r19 \n\t"              \
2277                                   \
2278    "ldi r19, 0 \n\t"              \
2279    "ld r0, z \n\t"                \
2280    "add r20, r0 \n\t"             \
2281    "adc r21, r25 \n\t"            \
2282    "ld r12, x+ \n\t"              \
2283    "ld r16, y+ \n\t"              \
2284    "mul r2, r16 \n\t"             \
2285    "add r20, r0 \n\t"             \
2286    "adc r21, r1 \n\t"             \
2287    "adc r19, r25 \n\t"            \
2288    "mul r6, r12 \n\t"             \
2289    "add r20, r0 \n\t"             \
2290    "adc r21, r1 \n\t"             \
2291    "adc r19, r25 \n\t"            \
2292    "mul r3, r15 \n\t"             \
2293    "add r20, r0 \n\t"             \
2294    "adc r21, r1 \n\t"             \
2295    "adc r19, r25 \n\t"            \
2296    "mul r7, r11 \n\t"             \
2297    "add r20, r0 \n\t"             \
2298    "adc r21, r1 \n\t"             \
2299    "adc r19, r25 \n\t"            \
2300    "mul r4, r14 \n\t"             \
2301    "add r20, r0 \n\t"             \
2302    "adc r21, r1 \n\t"             \
2303    "adc r19, r25 \n\t"            \
2304    "mul r8, r10 \n\t"             \
2305    "add r20, r0 \n\t"             \
2306    "adc r21, r1 \n\t"             \
2307    "adc r19, r25 \n\t"            \
2308    "mul r5, r17 \n\t"             \
2309    "add r20, r0 \n\t"             \
2310    "adc r21, r1 \n\t"             \
2311    "adc r19, r25 \n\t"            \
2312    "mul r9, r13 \n\t"             \
2313    "add r20, r0 \n\t"             \
2314    "adc r21, r1 \n\t"             \
2315    "adc r19, r25 \n\t"            \
2316    "st z+, r20 \n\t"              \
2317                                   \
2318    "ldi r20, 0 \n\t"              \
2319    "ld r0, z \n\t"                \
2320    "add r21, r0 \n\t"             \
2321    "adc r19, r25 \n\t"            \
2322    "ld r13, x+ \n\t"              \
2323    "ld r17, y+ \n\t"              \
2324    "mul r2, r17 \n\t"             \
2325    "add r21, r0 \n\t"             \
2326    "adc r19, r1 \n\t"             \
2327    "adc r20, r25 \n\t"            \
2328    "mul r6, r13 \n\t"             \
2329    "add r21, r0 \n\t"             \
2330    "adc r19, r1 \n\t"             \
2331    "adc r20, r25 \n\t"            \
2332    "mul r3, r16 \n\t"             \
2333    "add r21, r0 \n\t"             \
2334    "adc r19, r1 \n\t"             \
2335    "adc r20, r25 \n\t"            \
2336    "mul r7, r12 \n\t"             \
2337    "add r21, r0 \n\t"             \
2338    "adc r19, r1 \n\t"             \
2339    "adc r20, r25 \n\t"            \
2340    "mul r4, r15 \n\t"             \
2341    "add r21, r0 \n\t"             \
2342    "adc r19, r1 \n\t"             \
2343    "adc r20, r25 \n\t"            \
2344    "mul r8, r11 \n\t"             \
2345    "add r21, r0 \n\t"             \
2346    "adc r19, r1 \n\t"             \
2347    "adc r20, r25 \n\t"            \
2348    "mul r5, r14 \n\t"             \
2349    "add r21, r0 \n\t"             \
2350    "adc r19, r1 \n\t"             \
2351    "adc r20, r25 \n\t"            \
2352    "mul r9, r10 \n\t"             \
2353    "add r21, r0 \n\t"             \
2354    "adc r19, r1 \n\t"             \
2355    "adc r20, r25 \n\t"            \
2356    "st z+, r21 \n\t"              \
2357                                   \
2358    "ldi r21, 0 \n\t"              \
2359    "ld r0, z \n\t"                \
2360    "add r19, r0 \n\t"             \
2361    "adc r20, r25 \n\t"            \
2362    "ld r10, x+ \n\t"              \
2363    "ld r14, y+ \n\t"              \
2364    "mul r2, r14 \n\t"             \
2365    "add r19, r0 \n\t"             \
2366    "adc r20, r1 \n\t"             \
2367    "adc r21, r25 \n\t"            \
2368    "mul r6, r10 \n\t"             \
2369    "add r19, r0 \n\t"             \
2370    "adc r20, r1 \n\t"             \
2371    "adc r21, r25 \n\t"            \
2372    "mul r3, r17 \n\t"             \
2373    "add r19, r0 \n\t"             \
2374    "adc r20, r1 \n\t"             \
2375    "adc r21, r25 \n\t"            \
2376    "mul r7, r13 \n\t"             \
2377    "add r19, r0 \n\t"             \
2378    "adc r20, r1 \n\t"             \
2379    "adc r21, r25 \n\t"            \
2380    "mul r4, r16 \n\t"             \
2381    "add r19, r0 \n\t"             \
2382    "adc r20, r1 \n\t"             \
2383    "adc r21, r25 \n\t"            \
2384    "mul r8, r12 \n\t"             \
2385    "add r19, r0 \n\t"             \
2386    "adc r20, r1 \n\t"             \
2387    "adc r21, r25 \n\t"            \
2388    "mul r5, r15 \n\t"             \
2389    "add r19, r0 \n\t"             \
2390    "adc r20, r1 \n\t"             \
2391    "adc r21, r25 \n\t"            \
2392    "mul r9, r11 \n\t"             \
2393    "add r19, r0 \n\t"             \
2394    "adc r20, r1 \n\t"             \
2395    "adc r21, r25 \n\t"            \
2396    "st z+, r19 \n\t"              \
2397                                   \
2398    "ldi r19, 0 \n\t"              \
2399    "ld r0, z \n\t"                \
2400    "add r20, r0 \n\t"             \
2401    "adc r21, r25 \n\t"            \
2402    "ld r11, x+ \n\t"              \
2403    "ld r15, y+ \n\t"              \
2404    "mul r2, r15 \n\t"             \
2405    "add r20, r0 \n\t"             \
2406    "adc r21, r1 \n\t"             \
2407    "adc r19, r25 \n\t"            \
2408    "mul r6, r11 \n\t"             \
2409    "add r20, r0 \n\t"             \
2410    "adc r21, r1 \n\t"             \
2411    "adc r19, r25 \n\t"            \
2412    "mul r3, r14 \n\t"             \
2413    "add r20, r0 \n\t"             \
2414    "adc r21, r1 \n\t"             \
2415    "adc r19, r25 \n\t"            \
2416    "mul r7, r10 \n\t"             \
2417    "add r20, r0 \n\t"             \
2418    "adc r21, r1 \n\t"             \
2419    "adc r19, r25 \n\t"            \
2420    "mul r4, r17 \n\t"             \
2421    "add r20, r0 \n\t"             \
2422    "adc r21, r1 \n\t"             \
2423    "adc r19, r25 \n\t"            \
2424    "mul r8, r13 \n\t"             \
2425    "add r20, r0 \n\t"             \
2426    "adc r21, r1 \n\t"             \
2427    "adc r19, r25 \n\t"            \
2428    "mul r5, r16 \n\t"             \
2429    "add r20, r0 \n\t"             \
2430    "adc r21, r1 \n\t"             \
2431    "adc r19, r25 \n\t"            \
2432    "mul r9, r12 \n\t"             \
2433    "add r20, r0 \n\t"             \
2434    "adc r21, r1 \n\t"             \
2435    "adc r19, r25 \n\t"            \
2436    "st z+, r20 \n\t"              \
2437                                   \
2438    "ldi r20, 0 \n\t"              \
2439    "ld r0, z \n\t"                \
2440    "add r21, r0 \n\t"             \
2441    "adc r19, r25 \n\t"            \
2442    "ld r12, x+ \n\t"              \
2443    "ld r16, y+ \n\t"              \
2444    "mul r2, r16 \n\t"             \
2445    "add r21, r0 \n\t"             \
2446    "adc r19, r1 \n\t"             \
2447    "adc r20, r25 \n\t"            \
2448    "mul r6, r12 \n\t"             \
2449    "add r21, r0 \n\t"             \
2450    "adc r19, r1 \n\t"             \
2451    "adc r20, r25 \n\t"            \
2452    "mul r3, r15 \n\t"             \
2453    "add r21, r0 \n\t"             \
2454    "adc r19, r1 \n\t"             \
2455    "adc r20, r25 \n\t"            \
2456    "mul r7, r11 \n\t"             \
2457    "add r21, r0 \n\t"             \
2458    "adc r19, r1 \n\t"             \
2459    "adc r20, r25 \n\t"            \
2460    "mul r4, r14 \n\t"             \
2461    "add r21, r0 \n\t"             \
2462    "adc r19, r1 \n\t"             \
2463    "adc r20, r25 \n\t"            \
2464    "mul r8, r10 \n\t"             \
2465    "add r21, r0 \n\t"             \
2466    "adc r19, r1 \n\t"             \
2467    "adc r20, r25 \n\t"            \
2468    "mul r5, r17 \n\t"             \
2469    "add r21, r0 \n\t"             \
2470    "adc r19, r1 \n\t"             \
2471    "adc r20, r25 \n\t"            \
2472    "mul r9, r13 \n\t"             \
2473    "add r21, r0 \n\t"             \
2474    "adc r19, r1 \n\t"             \
2475    "adc r20, r25 \n\t"            \
2476    "st z+, r21 \n\t"              \
2477                                   \
2478    "ldi r21, 0 \n\t"              \
2479    "ld r0, z \n\t"                \
2480    "add r19, r0 \n\t"             \
2481    "adc r20, r25 \n\t"            \
2482    "ld r13, x+ \n\t"              \
2483    "ld r17, y+ \n\t"              \
2484    "mul r2, r17 \n\t"             \
2485    "add r19, r0 \n\t"             \
2486    "adc r20, r1 \n\t"             \
2487    "adc r21, r25 \n\t"            \
2488    "mul r6, r13 \n\t"             \
2489    "add r19, r0 \n\t"             \
2490    "adc r20, r1 \n\t"             \
2491    "adc r21, r25 \n\t"            \
2492    "mul r3, r16 \n\t"             \
2493    "add r19, r0 \n\t"             \
2494    "adc r20, r1 \n\t"             \
2495    "adc r21, r25 \n\t"            \
2496    "mul r7, r12 \n\t"             \
2497    "add r19, r0 \n\t"             \
2498    "adc r20, r1 \n\t"             \
2499    "adc r21, r25 \n\t"            \
2500    "mul r4, r15 \n\t"             \
2501    "add r19, r0 \n\t"             \
2502    "adc r20, r1 \n\t"             \
2503    "adc r21, r25 \n\t"            \
2504    "mul r8, r11 \n\t"             \
2505    "add r19, r0 \n\t"             \
2506    "adc r20, r1 \n\t"             \
2507    "adc r21, r25 \n\t"            \
2508    "mul r5, r14 \n\t"             \
2509    "add r19, r0 \n\t"             \
2510    "adc r20, r1 \n\t"             \
2511    "adc r21, r25 \n\t"            \
2512    "mul r9, r10 \n\t"             \
2513    "add r19, r0 \n\t"             \
2514    "adc r20, r1 \n\t"             \
2515    "adc r21, r25 \n\t"            \
2516    "st z+, r19 \n\t"              \
2517                                   \
2518    "ldi r19, 0 \n\t"              \
2519    "ld r0, z \n\t"                \
2520    "add r20, r0 \n\t"             \
2521    "adc r21, r25 \n\t"            \
2522    "ld r10, x+ \n\t"              \
2523    "ld r14, y+ \n\t"              \
2524    "mul r2, r14 \n\t"             \
2525    "add r20, r0 \n\t"             \
2526    "adc r21, r1 \n\t"             \
2527    "adc r19, r25 \n\t"            \
2528    "mul r6, r10 \n\t"             \
2529    "add r20, r0 \n\t"             \
2530    "adc r21, r1 \n\t"             \
2531    "adc r19, r25 \n\t"            \
2532    "mul r3, r17 \n\t"             \
2533    "add r20, r0 \n\t"             \
2534    "adc r21, r1 \n\t"             \
2535    "adc r19, r25 \n\t"            \
2536    "mul r7, r13 \n\t"             \
2537    "add r20, r0 \n\t"             \
2538    "adc r21, r1 \n\t"             \
2539    "adc r19, r25 \n\t"            \
2540    "mul r4, r16 \n\t"             \
2541    "add r20, r0 \n\t"             \
2542    "adc r21, r1 \n\t"             \
2543    "adc r19, r25 \n\t"            \
2544    "mul r8, r12 \n\t"             \
2545    "add r20, r0 \n\t"             \
2546    "adc r21, r1 \n\t"             \
2547    "adc r19, r25 \n\t"            \
2548    "mul r5, r15 \n\t"             \
2549    "add r20, r0 \n\t"             \
2550    "adc r21, r1 \n\t"             \
2551    "adc r19, r25 \n\t"            \
2552    "mul r9, r11 \n\t"             \
2553    "add r20, r0 \n\t"             \
2554    "adc r21, r1 \n\t"             \
2555    "adc r19, r25 \n\t"            \
2556    "st z+, r20 \n\t"              \
2557                                   \
2558    "ldi r20, 0 \n\t"              \
2559    "ld r0, z \n\t"                \
2560    "add r21, r0 \n\t"             \
2561    "adc r19, r25 \n\t"            \
2562    "ld r11, x+ \n\t"              \
2563    "ld r15, y+ \n\t"              \
2564    "mul r2, r15 \n\t"             \
2565    "add r21, r0 \n\t"             \
2566    "adc r19, r1 \n\t"             \
2567    "adc r20, r25 \n\t"            \
2568    "mul r6, r11 \n\t"             \
2569    "add r21, r0 \n\t"             \
2570    "adc r19, r1 \n\t"             \
2571    "adc r20, r25 \n\t"            \
2572    "mul r3, r14 \n\t"             \
2573    "add r21, r0 \n\t"             \
2574    "adc r19, r1 \n\t"             \
2575    "adc r20, r25 \n\t"            \
2576    "mul r7, r10 \n\t"             \
2577    "add r21, r0 \n\t"             \
2578    "adc r19, r1 \n\t"             \
2579    "adc r20, r25 \n\t"            \
2580    "mul r4, r17 \n\t"             \
2581    "add r21, r0 \n\t"             \
2582    "adc r19, r1 \n\t"             \
2583    "adc r20, r25 \n\t"            \
2584    "mul r8, r13 \n\t"             \
2585    "add r21, r0 \n\t"             \
2586    "adc r19, r1 \n\t"             \
2587    "adc r20, r25 \n\t"            \
2588    "mul r5, r16 \n\t"             \
2589    "add r21, r0 \n\t"             \
2590    "adc r19, r1 \n\t"             \
2591    "adc r20, r25 \n\t"            \
2592    "mul r9, r12 \n\t"             \
2593    "add r21, r0 \n\t"             \
2594    "adc r19, r1 \n\t"             \
2595    "adc r20, r25 \n\t"            \
2596    "st z+, r21 \n\t"              \
2597                                   \
2598    "ldi r21, 0 \n\t"              \
2599    "ld r0, z \n\t"                \
2600    "add r19, r0 \n\t"             \
2601    "adc r20, r25 \n\t"            \
2602    "ld r12, x+ \n\t"              \
2603    "ld r16, y+ \n\t"              \
2604    "mul r2, r16 \n\t"             \
2605    "add r19, r0 \n\t"             \
2606    "adc r20, r1 \n\t"             \
2607    "adc r21, r25 \n\t"            \
2608    "mul r6, r12 \n\t"             \
2609    "add r19, r0 \n\t"             \
2610    "adc r20, r1 \n\t"             \
2611    "adc r21, r25 \n\t"            \
2612    "mul r3, r15 \n\t"             \
2613    "add r19, r0 \n\t"             \
2614    "adc r20, r1 \n\t"             \
2615    "adc r21, r25 \n\t"            \
2616    "mul r7, r11 \n\t"             \
2617    "add r19, r0 \n\t"             \
2618    "adc r20, r1 \n\t"             \
2619    "adc r21, r25 \n\t"            \
2620    "mul r4, r14 \n\t"             \
2621    "add r19, r0 \n\t"             \
2622    "adc r20, r1 \n\t"             \
2623    "adc r21, r25 \n\t"            \
2624    "mul r8, r10 \n\t"             \
2625    "add r19, r0 \n\t"             \
2626    "adc r20, r1 \n\t"             \
2627    "adc r21, r25 \n\t"            \
2628    "mul r5, r17 \n\t"             \
2629    "add r19, r0 \n\t"             \
2630    "adc r20, r1 \n\t"             \
2631    "adc r21, r25 \n\t"            \
2632    "mul r9, r13 \n\t"             \
2633    "add r19, r0 \n\t"             \
2634    "adc r20, r1 \n\t"             \
2635    "adc r21, r25 \n\t"            \
2636    "st z+, r19 \n\t"              \
2637                                   \
2638    "ldi r19, 0 \n\t"              \
2639    "ld r0, z \n\t"                \
2640    "add r20, r0 \n\t"             \
2641    "adc r21, r25 \n\t"            \
2642    "ld r13, x+ \n\t"              \
2643    "ld r17, y+ \n\t"              \
2644    "mul r2, r17 \n\t"             \
2645    "add r20, r0 \n\t"             \
2646    "adc r21, r1 \n\t"             \
2647    "adc r19, r25 \n\t"            \
2648    "mul r6, r13 \n\t"             \
2649    "add r20, r0 \n\t"             \
2650    "adc r21, r1 \n\t"             \
2651    "adc r19, r25 \n\t"            \
2652    "mul r3, r16 \n\t"             \
2653    "add r20, r0 \n\t"             \
2654    "adc r21, r1 \n\t"             \
2655    "adc r19, r25 \n\t"            \
2656    "mul r7, r12 \n\t"             \
2657    "add r20, r0 \n\t"             \
2658    "adc r21, r1 \n\t"             \
2659    "adc r19, r25 \n\t"            \
2660    "mul r4, r15 \n\t"             \
2661    "add r20, r0 \n\t"             \
2662    "adc r21, r1 \n\t"             \
2663    "adc r19, r25 \n\t"            \
2664    "mul r8, r11 \n\t"             \
2665    "add r20, r0 \n\t"             \
2666    "adc r21, r1 \n\t"             \
2667    "adc r19, r25 \n\t"            \
2668    "mul r5, r14 \n\t"             \
2669    "add r20, r0 \n\t"             \
2670    "adc r21, r1 \n\t"             \
2671    "adc r19, r25 \n\t"            \
2672    "mul r9, r10 \n\t"             \
2673    "add r20, r0 \n\t"             \
2674    "adc r21, r1 \n\t"             \
2675    "adc r19, r25 \n\t"            \
2676    "st z+, r20 \n\t"              \
2677                                   \
2678    "ldi r20, 0 \n\t"              \
2679    "mul r11, r9 \n\t"             \
2680    "add r21, r0 \n\t"             \
2681    "adc r19, r1 \n\t"             \
2682    "adc r20, r25 \n\t"            \
2683    "mul r12, r8 \n\t"             \
2684    "add r21, r0 \n\t"             \
2685    "adc r19, r1 \n\t"             \
2686    "adc r20, r25 \n\t"            \
2687    "mul r13, r7 \n\t"             \
2688    "add r21, r0 \n\t"             \
2689    "adc r19, r1 \n\t"             \
2690    "adc r20, r25 \n\t"            \
2691    "mul r2, r6 \n\t"              \
2692    "add r21, r0 \n\t"             \
2693    "adc r19, r1 \n\t"             \
2694    "adc r20, r25 \n\t"            \
2695    "mul r3, r17 \n\t"             \
2696    "add r21, r0 \n\t"             \
2697    "adc r19, r1 \n\t"             \
2698    "adc r20, r25 \n\t"            \
2699    "mul r4, r16 \n\t"             \
2700    "add r21, r0 \n\t"             \
2701    "adc r19, r1 \n\t"             \
2702    "adc r20, r25 \n\t"            \
2703    "mul r5, r15 \n\t"             \
2704    "add r21, r0 \n\t"             \
2705    "adc r19, r1 \n\t"             \
2706    "adc r20, r25 \n\t"            \
2707    "st z+, r21 \n\t"              \
2708                                   \
2709    "ldi r21, 0 \n\t"              \
2710    "mul r12, r9 \n\t"             \
2711    "add r19, r0 \n\t"             \
2712    "adc r20, r1 \n\t"             \
2713    "adc r21, r25 \n\t"            \
2714    "mul r13, r8 \n\t"             \
2715    "add r19, r0 \n\t"             \
2716    "adc r20, r1 \n\t"             \
2717    "adc r21, r25 \n\t"            \
2718    "mul r2, r7 \n\t"              \
2719    "add r19, r0 \n\t"             \
2720    "adc r20, r1 \n\t"             \
2721    "adc r21, r25 \n\t"            \
2722    "mul r3, r6 \n\t"              \
2723    "add r19, r0 \n\t"             \
2724    "adc r20, r1 \n\t"             \
2725    "adc r21, r25 \n\t"            \
2726    "mul r4, r17 \n\t"             \
2727    "add r19, r0 \n\t"             \
2728    "adc r20, r1 \n\t"             \
2729    "adc r21, r25 \n\t"            \
2730    "mul r5, r16 \n\t"             \
2731    "add r19, r0 \n\t"             \
2732    "adc r20, r1 \n\t"             \
2733    "adc r21, r25 \n\t"            \
2734    "st z+, r19 \n\t"              \
2735                                   \
2736    "ldi r19, 0 \n\t"              \
2737    "mul r13, r9 \n\t"             \
2738    "add r20, r0 \n\t"             \
2739    "adc r21, r1 \n\t"             \
2740    "adc r19, r25 \n\t"            \
2741    "mul r2, r8 \n\t"              \
2742    "add r20, r0 \n\t"             \
2743    "adc r21, r1 \n\t"             \
2744    "adc r19, r25 \n\t"            \
2745    "mul r3, r7 \n\t"              \
2746    "add r20, r0 \n\t"             \
2747    "adc r21, r1 \n\t"             \
2748    "adc r19, r25 \n\t"            \
2749    "mul r4, r6 \n\t"              \
2750    "add r20, r0 \n\t"             \
2751    "adc r21, r1 \n\t"             \
2752    "adc r19, r25 \n\t"            \
2753    "mul r5, r17 \n\t"             \
2754    "add r20, r0 \n\t"             \
2755    "adc r21, r1 \n\t"             \
2756    "adc r19, r25 \n\t"            \
2757    "st z+, r20 \n\t"              \
2758                                   \
2759    "ldi r20, 0 \n\t"              \
2760    "mul r2, r9 \n\t"              \
2761    "add r21, r0 \n\t"             \
2762    "adc r19, r1 \n\t"             \
2763    "adc r20, r25 \n\t"            \
2764    "mul r3, r8 \n\t"              \
2765    "add r21, r0 \n\t"             \
2766    "adc r19, r1 \n\t"             \
2767    "adc r20, r25 \n\t"            \
2768    "mul r4, r7 \n\t"              \
2769    "add r21, r0 \n\t"             \
2770    "adc r19, r1 \n\t"             \
2771    "adc r20, r25 \n\t"            \
2772    "mul r5, r6 \n\t"              \
2773    "add r21, r0 \n\t"             \
2774    "adc r19, r1 \n\t"             \
2775    "adc r20, r25 \n\t"            \
2776    "st z+, r21 \n\t"              \
2777                                   \
2778    "ldi r21, 0 \n\t"              \
2779    "mul r3, r9 \n\t"              \
2780    "add r19, r0 \n\t"             \
2781    "adc r20, r1 \n\t"             \
2782    "adc r21, r25 \n\t"            \
2783    "mul r4, r8 \n\t"              \
2784    "add r19, r0 \n\t"             \
2785    "adc r20, r1 \n\t"             \
2786    "adc r21, r25 \n\t"            \
2787    "mul r5, r7 \n\t"              \
2788    "add r19, r0 \n\t"             \
2789    "adc r20, r1 \n\t"             \
2790    "adc r21, r25 \n\t"            \
2791    "st z+, r19 \n\t"              \
2792                                   \
2793    "ldi r19, 0 \n\t"              \
2794    "mul r4, r9 \n\t"              \
2795    "add r20, r0 \n\t"             \
2796    "adc r21, r1 \n\t"             \
2797    "adc r19, r25 \n\t"            \
2798    "mul r5, r8 \n\t"              \
2799    "add r20, r0 \n\t"             \
2800    "adc r21, r1 \n\t"             \
2801    "adc r19, r25 \n\t"            \
2802    "st z+, r20 \n\t"              \
2803                                   \
2804    "mul r5, r9 \n\t"              \
2805    "add r21, r0 \n\t"             \
2806    "adc r19, r1 \n\t"             \
2807    "st z+, r21 \n\t"              \
2808    "st z+, r19 \n\t"              \
2809    "adiw r26, 4 \n\t"             \
2810    "adiw r28, 4 \n\t"
2811
2812#define FAST_MULT_ASM_24       \
2813    "adiw r30, 20 \n\t"        \
2814    "adiw r28, 20 \n\t"        \
2815    "ld r2, x+ \n\t"           \
2816    "ld r3, x+ \n\t"           \
2817    "ld r4, x+ \n\t"           \
2818    "ld r5, x+ \n\t"           \
2819    "ld r12, y+ \n\t"          \
2820    "ld r13, y+ \n\t"          \
2821    "ld r14, y+ \n\t"          \
2822    "ld r15, y+ \n\t"          \
2823    "ldi r25, 0 \n\t"          \
2824                               \
2825    "ldi r23, 0 \n\t"          \
2826    "mul r2, r12 \n\t"         \
2827    "st z+, r0 \n\t"           \
2828    "mov r22, r1 \n\t"         \
2829                               \
2830    "ldi r24, 0 \n\t"          \
2831    "mul r2, r13 \n\t"         \
2832    "add r22, r0 \n\t"         \
2833    "adc r23, r1 \n\t"         \
2834    "mul r3, r12 \n\t"         \
2835    "add r22, r0 \n\t"         \
2836    "adc r23, r1 \n\t"         \
2837    "adc r24, r25 \n\t"        \
2838    "st z+, r22 \n\t"          \
2839                               \
2840    "ldi r22, 0 \n\t"          \
2841    "mul r2, r14 \n\t"         \
2842    "add r23, r0 \n\t"         \
2843    "adc r24, r1 \n\t"         \
2844    "adc r22, r25 \n\t"        \
2845    "mul r3, r13 \n\t"         \
2846    "add r23, r0 \n\t"         \
2847    "adc r24, r1 \n\t"         \
2848    "adc r22, r25 \n\t"        \
2849    "mul r4, r12 \n\t"         \
2850    "add r23, r0 \n\t"         \
2851    "adc r24, r1 \n\t"         \
2852    "adc r22, r25 \n\t"        \
2853    "st z+, r23 \n\t"          \
2854                               \
2855    "ldi r23, 0 \n\t"          \
2856    "mul r2, r15 \n\t"         \
2857    "add r24, r0 \n\t"         \
2858    "adc r22, r1 \n\t"         \
2859    "adc r23, r25 \n\t"        \
2860    "mul r3, r14 \n\t"         \
2861    "add r24, r0 \n\t"         \
2862    "adc r22, r1 \n\t"         \
2863    "adc r23, r25 \n\t"        \
2864    "mul r4, r13 \n\t"         \
2865    "add r24, r0 \n\t"         \
2866    "adc r22, r1 \n\t"         \
2867    "adc r23, r25 \n\t"        \
2868    "mul r5, r12 \n\t"         \
2869    "add r24, r0 \n\t"         \
2870    "adc r22, r1 \n\t"         \
2871    "adc r23, r25 \n\t"        \
2872    "st z+, r24 \n\t"          \
2873                               \
2874    "ldi r24, 0 \n\t"          \
2875    "mul r3, r15 \n\t"         \
2876    "add r22, r0 \n\t"         \
2877    "adc r23, r1 \n\t"         \
2878    "adc r24, r25 \n\t"        \
2879    "mul r4, r14 \n\t"         \
2880    "add r22, r0 \n\t"         \
2881    "adc r23, r1 \n\t"         \
2882    "adc r24, r25 \n\t"        \
2883    "mul r5, r13 \n\t"         \
2884    "add r22, r0 \n\t"         \
2885    "adc r23, r1 \n\t"         \
2886    "adc r24, r25 \n\t"        \
2887    "st z+, r22 \n\t"          \
2888                               \
2889    "ldi r22, 0 \n\t"          \
2890    "mul r4, r15 \n\t"         \
2891    "add r23, r0 \n\t"         \
2892    "adc r24, r1 \n\t"         \
2893    "adc r22, r25 \n\t"        \
2894    "mul r5, r14 \n\t"         \
2895    "add r23, r0 \n\t"         \
2896    "adc r24, r1 \n\t"         \
2897    "adc r22, r25 \n\t"        \
2898    "st z+, r23 \n\t"          \
2899                               \
2900    "mul r5, r15 \n\t"         \
2901    "add r24, r0 \n\t"         \
2902    "adc r22, r1 \n\t"         \
2903    "st z+, r24 \n\t"          \
2904    "st z+, r22 \n\t"          \
2905                               \
2906    "sbiw r30, 18 \n\t"        \
2907    "sbiw r28, 14 \n\t"        \
2908    "ld r12, y+ \n\t"          \
2909    "ld r13, y+ \n\t"          \
2910    "ld r14, y+ \n\t"          \
2911    "ld r15, y+ \n\t"          \
2912    "ld r16, y+ \n\t"          \
2913    "ld r17, y+ \n\t"          \
2914    "ld r18, y+ \n\t"          \
2915    "ld r19, y+ \n\t"          \
2916    "ld r20, y+ \n\t"          \
2917    "ld r21, y+ \n\t"          \
2918    "ld r6, x+ \n\t"           \
2919    "ld r7, x+ \n\t"           \
2920    "ld r8, x+ \n\t"           \
2921    "ld r9, x+ \n\t"           \
2922    "ld r10, x+ \n\t"          \
2923    "ld r11, x+ \n\t"          \
2924                               \
2925    "ldi r23, 0 \n\t"          \
2926    "mul r2, r12 \n\t"         \
2927    "st z+, r0 \n\t"           \
2928    "mov r22, r1 \n\t"         \
2929                               \
2930    "ldi r24, 0 \n\t"          \
2931    "mul r2, r13 \n\t"         \
2932    "add r22, r0 \n\t"         \
2933    "adc r23, r1 \n\t"         \
2934    "mul r3, r12 \n\t"         \
2935    "add r22, r0 \n\t"         \
2936    "adc r23, r1 \n\t"         \
2937    "adc r24, r25 \n\t"        \
2938    "st z+, r22 \n\t"          \
2939                               \
2940    "ldi r22, 0 \n\t"          \
2941    "mul r2, r14 \n\t"         \
2942    "add r23, r0 \n\t"         \
2943    "adc r24, r1 \n\t"         \
2944    "adc r22, r25 \n\t"        \
2945    "mul r3, r13 \n\t"         \
2946    "add r23, r0 \n\t"         \
2947    "adc r24, r1 \n\t"         \
2948    "adc r22, r25 \n\t"        \
2949    "mul r4, r12 \n\t"         \
2950    "add r23, r0 \n\t"         \
2951    "adc r24, r1 \n\t"         \
2952    "adc r22, r25 \n\t"        \
2953    "st z+, r23 \n\t"          \
2954                               \
2955    "ldi r23, 0 \n\t"          \
2956    "mul r2, r15 \n\t"         \
2957    "add r24, r0 \n\t"         \
2958    "adc r22, r1 \n\t"         \
2959    "adc r23, r25 \n\t"        \
2960    "mul r3, r14 \n\t"         \
2961    "add r24, r0 \n\t"         \
2962    "adc r22, r1 \n\t"         \
2963    "adc r23, r25 \n\t"        \
2964    "mul r4, r13 \n\t"         \
2965    "add r24, r0 \n\t"         \
2966    "adc r22, r1 \n\t"         \
2967    "adc r23, r25 \n\t"        \
2968    "mul r5, r12 \n\t"         \
2969    "add r24, r0 \n\t"         \
2970    "adc r22, r1 \n\t"         \
2971    "adc r23, r25 \n\t"        \
2972    "st z+, r24 \n\t"          \
2973                               \
2974    "ldi r24, 0 \n\t"          \
2975    "mul r2, r16 \n\t"         \
2976    "add r22, r0 \n\t"         \
2977    "adc r23, r1 \n\t"         \
2978    "adc r24, r25 \n\t"        \
2979    "mul r3, r15 \n\t"         \
2980    "add r22, r0 \n\t"         \
2981    "adc r23, r1 \n\t"         \
2982    "adc r24, r25 \n\t"        \
2983    "mul r4, r14 \n\t"         \
2984    "add r22, r0 \n\t"         \
2985    "adc r23, r1 \n\t"         \
2986    "adc r24, r25 \n\t"        \
2987    "mul r5, r13 \n\t"         \
2988    "add r22, r0 \n\t"         \
2989    "adc r23, r1 \n\t"         \
2990    "adc r24, r25 \n\t"        \
2991    "mul r6, r12 \n\t"         \
2992    "add r22, r0 \n\t"         \
2993    "adc r23, r1 \n\t"         \
2994    "adc r24, r25 \n\t"        \
2995    "st z+, r22 \n\t"          \
2996                               \
2997    "ldi r22, 0 \n\t"          \
2998    "mul r2, r17 \n\t"         \
2999    "add r23, r0 \n\t"         \
3000    "adc r24, r1 \n\t"         \
3001    "adc r22, r25 \n\t"        \
3002    "mul r3, r16 \n\t"         \
3003    "add r23, r0 \n\t"         \
3004    "adc r24, r1 \n\t"         \
3005    "adc r22, r25 \n\t"        \
3006    "mul r4, r15 \n\t"         \
3007    "add r23, r0 \n\t"         \
3008    "adc r24, r1 \n\t"         \
3009    "adc r22, r25 \n\t"        \
3010    "mul r5, r14 \n\t"         \
3011    "add r23, r0 \n\t"         \
3012    "adc r24, r1 \n\t"         \
3013    "adc r22, r25 \n\t"        \
3014    "mul r6, r13 \n\t"         \
3015    "add r23, r0 \n\t"         \
3016    "adc r24, r1 \n\t"         \
3017    "adc r22, r25 \n\t"        \
3018    "mul r7, r12 \n\t"         \
3019    "add r23, r0 \n\t"         \
3020    "adc r24, r1 \n\t"         \
3021    "adc r22, r25 \n\t"        \
3022    "st z+, r23 \n\t"          \
3023                               \
3024    "ldi r23, 0 \n\t"          \
3025    "mul r2, r18 \n\t"         \
3026    "add r24, r0 \n\t"         \
3027    "adc r22, r1 \n\t"         \
3028    "adc r23, r25 \n\t"        \
3029    "mul r3, r17 \n\t"         \
3030    "add r24, r0 \n\t"         \
3031    "adc r22, r1 \n\t"         \
3032    "adc r23, r25 \n\t"        \
3033    "mul r4, r16 \n\t"         \
3034    "add r24, r0 \n\t"         \
3035    "adc r22, r1 \n\t"         \
3036    "adc r23, r25 \n\t"        \
3037    "mul r5, r15 \n\t"         \
3038    "add r24, r0 \n\t"         \
3039    "adc r22, r1 \n\t"         \
3040    "adc r23, r25 \n\t"        \
3041    "mul r6, r14 \n\t"         \
3042    "add r24, r0 \n\t"         \
3043    "adc r22, r1 \n\t"         \
3044    "adc r23, r25 \n\t"        \
3045    "mul r7, r13 \n\t"         \
3046    "add r24, r0 \n\t"         \
3047    "adc r22, r1 \n\t"         \
3048    "adc r23, r25 \n\t"        \
3049    "mul r8, r12 \n\t"         \
3050    "add r24, r0 \n\t"         \
3051    "adc r22, r1 \n\t"         \
3052    "adc r23, r25 \n\t"        \
3053    "st z+, r24 \n\t"          \
3054                               \
3055    "ldi r24, 0 \n\t"          \
3056    "mul r2, r19 \n\t"         \
3057    "add r22, r0 \n\t"         \
3058    "adc r23, r1 \n\t"         \
3059    "adc r24, r25 \n\t"        \
3060    "mul r3, r18 \n\t"         \
3061    "add r22, r0 \n\t"         \
3062    "adc r23, r1 \n\t"         \
3063    "adc r24, r25 \n\t"        \
3064    "mul r4, r17 \n\t"         \
3065    "add r22, r0 \n\t"         \
3066    "adc r23, r1 \n\t"         \
3067    "adc r24, r25 \n\t"        \
3068    "mul r5, r16 \n\t"         \
3069    "add r22, r0 \n\t"         \
3070    "adc r23, r1 \n\t"         \
3071    "adc r24, r25 \n\t"        \
3072    "mul r6, r15 \n\t"         \
3073    "add r22, r0 \n\t"         \
3074    "adc r23, r1 \n\t"         \
3075    "adc r24, r25 \n\t"        \
3076    "mul r7, r14 \n\t"         \
3077    "add r22, r0 \n\t"         \
3078    "adc r23, r1 \n\t"         \
3079    "adc r24, r25 \n\t"        \
3080    "mul r8, r13 \n\t"         \
3081    "add r22, r0 \n\t"         \
3082    "adc r23, r1 \n\t"         \
3083    "adc r24, r25 \n\t"        \
3084    "mul r9, r12 \n\t"         \
3085    "add r22, r0 \n\t"         \
3086    "adc r23, r1 \n\t"         \
3087    "adc r24, r25 \n\t"        \
3088    "st z+, r22 \n\t"          \
3089                               \
3090    "ldi r22, 0 \n\t"          \
3091    "mul r2, r20 \n\t"         \
3092    "add r23, r0 \n\t"         \
3093    "adc r24, r1 \n\t"         \
3094    "adc r22, r25 \n\t"        \
3095    "mul r3, r19 \n\t"         \
3096    "add r23, r0 \n\t"         \
3097    "adc r24, r1 \n\t"         \
3098    "adc r22, r25 \n\t"        \
3099    "mul r4, r18 \n\t"         \
3100    "add r23, r0 \n\t"         \
3101    "adc r24, r1 \n\t"         \
3102    "adc r22, r25 \n\t"        \
3103    "mul r5, r17 \n\t"         \
3104    "add r23, r0 \n\t"         \
3105    "adc r24, r1 \n\t"         \
3106    "adc r22, r25 \n\t"        \
3107    "mul r6, r16 \n\t"         \
3108    "add r23, r0 \n\t"         \
3109    "adc r24, r1 \n\t"         \
3110    "adc r22, r25 \n\t"        \
3111    "mul r7, r15 \n\t"         \
3112    "add r23, r0 \n\t"         \
3113    "adc r24, r1 \n\t"         \
3114    "adc r22, r25 \n\t"        \
3115    "mul r8, r14 \n\t"         \
3116    "add r23, r0 \n\t"         \
3117    "adc r24, r1 \n\t"         \
3118    "adc r22, r25 \n\t"        \
3119    "mul r9, r13 \n\t"         \
3120    "add r23, r0 \n\t"         \
3121    "adc r24, r1 \n\t"         \
3122    "adc r22, r25 \n\t"        \
3123    "mul r10, r12 \n\t"        \
3124    "add r23, r0 \n\t"         \
3125    "adc r24, r1 \n\t"         \
3126    "adc r22, r25 \n\t"        \
3127    "st z+, r23 \n\t"          \
3128                               \
3129    "ldi r23, 0 \n\t"          \
3130    "mul r2, r21 \n\t"         \
3131    "add r24, r0 \n\t"         \
3132    "adc r22, r1 \n\t"         \
3133    "adc r23, r25 \n\t"        \
3134    "mul r3, r20 \n\t"         \
3135    "add r24, r0 \n\t"         \
3136    "adc r22, r1 \n\t"         \
3137    "adc r23, r25 \n\t"        \
3138    "mul r4, r19 \n\t"         \
3139    "add r24, r0 \n\t"         \
3140    "adc r22, r1 \n\t"         \
3141    "adc r23, r25 \n\t"        \
3142    "mul r5, r18 \n\t"         \
3143    "add r24, r0 \n\t"         \
3144    "adc r22, r1 \n\t"         \
3145    "adc r23, r25 \n\t"        \
3146    "mul r6, r17 \n\t"         \
3147    "add r24, r0 \n\t"         \
3148    "adc r22, r1 \n\t"         \
3149    "adc r23, r25 \n\t"        \
3150    "mul r7, r16 \n\t"         \
3151    "add r24, r0 \n\t"         \
3152    "adc r22, r1 \n\t"         \
3153    "adc r23, r25 \n\t"        \
3154    "mul r8, r15 \n\t"         \
3155    "add r24, r0 \n\t"         \
3156    "adc r22, r1 \n\t"         \
3157    "adc r23, r25 \n\t"        \
3158    "mul r9, r14 \n\t"         \
3159    "add r24, r0 \n\t"         \
3160    "adc r22, r1 \n\t"         \
3161    "adc r23, r25 \n\t"        \
3162    "mul r10, r13 \n\t"        \
3163    "add r24, r0 \n\t"         \
3164    "adc r22, r1 \n\t"         \
3165    "adc r23, r25 \n\t"        \
3166    "mul r11, r12 \n\t"        \
3167    "add r24, r0 \n\t"         \
3168    "adc r22, r1 \n\t"         \
3169    "adc r23, r25 \n\t"        \
3170    "st z+, r24 \n\t"          \
3171                               \
3172    "ld r2, x+ \n\t"           \
3173    "ldi r24, 0 \n\t"          \
3174    "mul r3, r21 \n\t"         \
3175    "add r22, r0 \n\t"         \
3176    "adc r23, r1 \n\t"         \
3177    "adc r24, r25 \n\t"        \
3178    "mul r4, r20 \n\t"         \
3179    "add r22, r0 \n\t"         \
3180    "adc r23, r1 \n\t"         \
3181    "adc r24, r25 \n\t"        \
3182    "mul r5, r19 \n\t"         \
3183    "add r22, r0 \n\t"         \
3184    "adc r23, r1 \n\t"         \
3185    "adc r24, r25 \n\t"        \
3186    "mul r6, r18 \n\t"         \
3187    "add r22, r0 \n\t"         \
3188    "adc r23, r1 \n\t"         \
3189    "adc r24, r25 \n\t"        \
3190    "mul r7, r17 \n\t"         \
3191    "add r22, r0 \n\t"         \
3192    "adc r23, r1 \n\t"         \
3193    "adc r24, r25 \n\t"        \
3194    "mul r8, r16 \n\t"         \
3195    "add r22, r0 \n\t"         \
3196    "adc r23, r1 \n\t"         \
3197    "adc r24, r25 \n\t"        \
3198    "mul r9, r15 \n\t"         \
3199    "add r22, r0 \n\t"         \
3200    "adc r23, r1 \n\t"         \
3201    "adc r24, r25 \n\t"        \
3202    "mul r10, r14 \n\t"        \
3203    "add r22, r0 \n\t"         \
3204    "adc r23, r1 \n\t"         \
3205    "adc r24, r25 \n\t"        \
3206    "mul r11, r13 \n\t"        \
3207    "add r22, r0 \n\t"         \
3208    "adc r23, r1 \n\t"         \
3209    "adc r24, r25 \n\t"        \
3210    "mul r2, r12 \n\t"         \
3211    "add r22, r0 \n\t"         \
3212    "adc r23, r1 \n\t"         \
3213    "adc r24, r25 \n\t"        \
3214    "ld r0, z \n\t"            \
3215    "add r22, r0 \n\t"         \
3216    "adc r23, r25 \n\t"        \
3217    "adc r24, r25 \n\t"        \
3218    "st z+, r22 \n\t"          \
3219                               \
3220    "ld r3, x+ \n\t"           \
3221    "ldi r22, 0 \n\t"          \
3222    "mul r4, r21 \n\t"         \
3223    "add r23, r0 \n\t"         \
3224    "adc r24, r1 \n\t"         \
3225    "adc r22, r25 \n\t"        \
3226    "mul r5, r20 \n\t"         \
3227    "add r23, r0 \n\t"         \
3228    "adc r24, r1 \n\t"         \
3229    "adc r22, r25 \n\t"        \
3230    "mul r6, r19 \n\t"         \
3231    "add r23, r0 \n\t"         \
3232    "adc r24, r1 \n\t"         \
3233    "adc r22, r25 \n\t"        \
3234    "mul r7, r18 \n\t"         \
3235    "add r23, r0 \n\t"         \
3236    "adc r24, r1 \n\t"         \
3237    "adc r22, r25 \n\t"        \
3238    "mul r8, r17 \n\t"         \
3239    "add r23, r0 \n\t"         \
3240    "adc r24, r1 \n\t"         \
3241    "adc r22, r25 \n\t"        \
3242    "mul r9, r16 \n\t"         \
3243    "add r23, r0 \n\t"         \
3244    "adc r24, r1 \n\t"         \
3245    "adc r22, r25 \n\t"        \
3246    "mul r10, r15 \n\t"        \
3247    "add r23, r0 \n\t"         \
3248    "adc r24, r1 \n\t"         \
3249    "adc r22, r25 \n\t"        \
3250    "mul r11, r14 \n\t"        \
3251    "add r23, r0 \n\t"         \
3252    "adc r24, r1 \n\t"         \
3253    "adc r22, r25 \n\t"        \
3254    "mul r2, r13 \n\t"         \
3255    "add r23, r0 \n\t"         \
3256    "adc r24, r1 \n\t"         \
3257    "adc r22, r25 \n\t"        \
3258    "mul r3, r12 \n\t"         \
3259    "add r23, r0 \n\t"         \
3260    "adc r24, r1 \n\t"         \
3261    "adc r22, r25 \n\t"        \
3262    "ld r0, z \n\t"            \
3263    "add r23, r0 \n\t"         \
3264    "adc r24, r25 \n\t"        \
3265    "adc r22, r25 \n\t"        \
3266    "st z+, r23 \n\t"          \
3267                               \
3268    "ld r4, x+ \n\t"           \
3269    "ldi r23, 0 \n\t"          \
3270    "mul r5, r21 \n\t"         \
3271    "add r24, r0 \n\t"         \
3272    "adc r22, r1 \n\t"         \
3273    "adc r23, r25 \n\t"        \
3274    "mul r6, r20 \n\t"         \
3275    "add r24, r0 \n\t"         \
3276    "adc r22, r1 \n\t"         \
3277    "adc r23, r25 \n\t"        \
3278    "mul r7, r19 \n\t"         \
3279    "add r24, r0 \n\t"         \
3280    "adc r22, r1 \n\t"         \
3281    "adc r23, r25 \n\t"        \
3282    "mul r8, r18 \n\t"         \
3283    "add r24, r0 \n\t"         \
3284    "adc r22, r1 \n\t"         \
3285    "adc r23, r25 \n\t"        \
3286    "mul r9, r17 \n\t"         \
3287    "add r24, r0 \n\t"         \
3288    "adc r22, r1 \n\t"         \
3289    "adc r23, r25 \n\t"        \
3290    "mul r10, r16 \n\t"        \
3291    "add r24, r0 \n\t"         \
3292    "adc r22, r1 \n\t"         \
3293    "adc r23, r25 \n\t"        \
3294    "mul r11, r15 \n\t"        \
3295    "add r24, r0 \n\t"         \
3296    "adc r22, r1 \n\t"         \
3297    "adc r23, r25 \n\t"        \
3298    "mul r2, r14 \n\t"         \
3299    "add r24, r0 \n\t"         \
3300    "adc r22, r1 \n\t"         \
3301    "adc r23, r25 \n\t"        \
3302    "mul r3, r13 \n\t"         \
3303    "add r24, r0 \n\t"         \
3304    "adc r22, r1 \n\t"         \
3305    "adc r23, r25 \n\t"        \
3306    "mul r4, r12 \n\t"         \
3307    "add r24, r0 \n\t"         \
3308    "adc r22, r1 \n\t"         \
3309    "adc r23, r25 \n\t"        \
3310    "ld r0, z \n\t"            \
3311    "add r24, r0 \n\t"         \
3312    "adc r22, r25 \n\t"        \
3313    "adc r23, r25 \n\t"        \
3314    "st z+, r24 \n\t"          \
3315                               \
3316    "ld r5, x+ \n\t"           \
3317    "ldi r24, 0 \n\t"          \
3318    "mul r6, r21 \n\t"         \
3319    "add r22, r0 \n\t"         \
3320    "adc r23, r1 \n\t"         \
3321    "adc r24, r25 \n\t"        \
3322    "mul r7, r20 \n\t"         \
3323    "add r22, r0 \n\t"         \
3324    "adc r23, r1 \n\t"         \
3325    "adc r24, r25 \n\t"        \
3326    "mul r8, r19 \n\t"         \
3327    "add r22, r0 \n\t"         \
3328    "adc r23, r1 \n\t"         \
3329    "adc r24, r25 \n\t"        \
3330    "mul r9, r18 \n\t"         \
3331    "add r22, r0 \n\t"         \
3332    "adc r23, r1 \n\t"         \
3333    "adc r24, r25 \n\t"        \
3334    "mul r10, r17 \n\t"        \
3335    "add r22, r0 \n\t"         \
3336    "adc r23, r1 \n\t"         \
3337    "adc r24, r25 \n\t"        \
3338    "mul r11, r16 \n\t"        \
3339    "add r22, r0 \n\t"         \
3340    "adc r23, r1 \n\t"         \
3341    "adc r24, r25 \n\t"        \
3342    "mul r2, r15 \n\t"         \
3343    "add r22, r0 \n\t"         \
3344    "adc r23, r1 \n\t"         \
3345    "adc r24, r25 \n\t"        \
3346    "mul r3, r14 \n\t"         \
3347    "add r22, r0 \n\t"         \
3348    "adc r23, r1 \n\t"         \
3349    "adc r24, r25 \n\t"        \
3350    "mul r4, r13 \n\t"         \
3351    "add r22, r0 \n\t"         \
3352    "adc r23, r1 \n\t"         \
3353    "adc r24, r25 \n\t"        \
3354    "mul r5, r12 \n\t"         \
3355    "add r22, r0 \n\t"         \
3356    "adc r23, r1 \n\t"         \
3357    "adc r24, r25 \n\t"        \
3358    "ld r0, z \n\t"            \
3359    "add r22, r0 \n\t"         \
3360    "adc r23, r25 \n\t"        \
3361    "adc r24, r25 \n\t"        \
3362    "st z+, r22 \n\t"          \
3363                               \
3364    "ld r12, y+ \n\t"          \
3365    "ldi r22, 0 \n\t"          \
3366    "mul r6, r12 \n\t"         \
3367    "add r23, r0 \n\t"         \
3368    "adc r24, r1 \n\t"         \
3369    "adc r22, r25 \n\t"        \
3370    "mul r7, r21 \n\t"         \
3371    "add r23, r0 \n\t"         \
3372    "adc r24, r1 \n\t"         \
3373    "adc r22, r25 \n\t"        \
3374    "mul r8, r20 \n\t"         \
3375    "add r23, r0 \n\t"         \
3376    "adc r24, r1 \n\t"         \
3377    "adc r22, r25 \n\t"        \
3378    "mul r9, r19 \n\t"         \
3379    "add r23, r0 \n\t"         \
3380    "adc r24, r1 \n\t"         \
3381    "adc r22, r25 \n\t"        \
3382    "mul r10, r18 \n\t"        \
3383    "add r23, r0 \n\t"         \
3384    "adc r24, r1 \n\t"         \
3385    "adc r22, r25 \n\t"        \
3386    "mul r11, r17 \n\t"        \
3387    "add r23, r0 \n\t"         \
3388    "adc r24, r1 \n\t"         \
3389    "adc r22, r25 \n\t"        \
3390    "mul r2, r16 \n\t"         \
3391    "add r23, r0 \n\t"         \
3392    "adc r24, r1 \n\t"         \
3393    "adc r22, r25 \n\t"        \
3394    "mul r3, r15 \n\t"         \
3395    "add r23, r0 \n\t"         \
3396    "adc r24, r1 \n\t"         \
3397    "adc r22, r25 \n\t"        \
3398    "mul r4, r14 \n\t"         \
3399    "add r23, r0 \n\t"         \
3400    "adc r24, r1 \n\t"         \
3401    "adc r22, r25 \n\t"        \
3402    "mul r5, r13 \n\t"         \
3403    "add r23, r0 \n\t"         \
3404    "adc r24, r1 \n\t"         \
3405    "adc r22, r25 \n\t"        \
3406    "ld r0, z \n\t"            \
3407    "add r23, r0 \n\t"         \
3408    "adc r24, r25 \n\t"        \
3409    "adc r22, r25 \n\t"        \
3410    "st z+, r23 \n\t"          \
3411                               \
3412    "ld r13, y+ \n\t"          \
3413    "ldi r23, 0 \n\t"          \
3414    "mul r6, r13 \n\t"         \
3415    "add r24, r0 \n\t"         \
3416    "adc r22, r1 \n\t"         \
3417    "adc r23, r25 \n\t"        \
3418    "mul r7, r12 \n\t"         \
3419    "add r24, r0 \n\t"         \
3420    "adc r22, r1 \n\t"         \
3421    "adc r23, r25 \n\t"        \
3422    "mul r8, r21 \n\t"         \
3423    "add r24, r0 \n\t"         \
3424    "adc r22, r1 \n\t"         \
3425    "adc r23, r25 \n\t"        \
3426    "mul r9, r20 \n\t"         \
3427    "add r24, r0 \n\t"         \
3428    "adc r22, r1 \n\t"         \
3429    "adc r23, r25 \n\t"        \
3430    "mul r10, r19 \n\t"        \
3431    "add r24, r0 \n\t"         \
3432    "adc r22, r1 \n\t"         \
3433    "adc r23, r25 \n\t"        \
3434    "mul r11, r18 \n\t"        \
3435    "add r24, r0 \n\t"         \
3436    "adc r22, r1 \n\t"         \
3437    "adc r23, r25 \n\t"        \
3438    "mul r2, r17 \n\t"         \
3439    "add r24, r0 \n\t"         \
3440    "adc r22, r1 \n\t"         \
3441    "adc r23, r25 \n\t"        \
3442    "mul r3, r16 \n\t"         \
3443    "add r24, r0 \n\t"         \
3444    "adc r22, r1 \n\t"         \
3445    "adc r23, r25 \n\t"        \
3446    "mul r4, r15 \n\t"         \
3447    "add r24, r0 \n\t"         \
3448    "adc r22, r1 \n\t"         \
3449    "adc r23, r25 \n\t"        \
3450    "mul r5, r14 \n\t"         \
3451    "add r24, r0 \n\t"         \
3452    "adc r22, r1 \n\t"         \
3453    "adc r23, r25 \n\t"        \
3454    "ld r0, z \n\t"            \
3455    "add r24, r0 \n\t"         \
3456    "adc r22, r25 \n\t"        \
3457    "adc r23, r25 \n\t"        \
3458    "st z+, r24 \n\t"          \
3459                               \
3460    "ld r14, y+ \n\t"          \
3461    "ldi r24, 0 \n\t"          \
3462    "mul r6, r14 \n\t"         \
3463    "add r22, r0 \n\t"         \
3464    "adc r23, r1 \n\t"         \
3465    "adc r24, r25 \n\t"        \
3466    "mul r7, r13 \n\t"         \
3467    "add r22, r0 \n\t"         \
3468    "adc r23, r1 \n\t"         \
3469    "adc r24, r25 \n\t"        \
3470    "mul r8, r12 \n\t"         \
3471    "add r22, r0 \n\t"         \
3472    "adc r23, r1 \n\t"         \
3473    "adc r24, r25 \n\t"        \
3474    "mul r9, r21 \n\t"         \
3475    "add r22, r0 \n\t"         \
3476    "adc r23, r1 \n\t"         \
3477    "adc r24, r25 \n\t"        \
3478    "mul r10, r20 \n\t"        \
3479    "add r22, r0 \n\t"         \
3480    "adc r23, r1 \n\t"         \
3481    "adc r24, r25 \n\t"        \
3482    "mul r11, r19 \n\t"        \
3483    "add r22, r0 \n\t"         \
3484    "adc r23, r1 \n\t"         \
3485    "adc r24, r25 \n\t"        \
3486    "mul r2, r18 \n\t"         \
3487    "add r22, r0 \n\t"         \
3488    "adc r23, r1 \n\t"         \
3489    "adc r24, r25 \n\t"        \
3490    "mul r3, r17 \n\t"         \
3491    "add r22, r0 \n\t"         \
3492    "adc r23, r1 \n\t"         \
3493    "adc r24, r25 \n\t"        \
3494    "mul r4, r16 \n\t"         \
3495    "add r22, r0 \n\t"         \
3496    "adc r23, r1 \n\t"         \
3497    "adc r24, r25 \n\t"        \
3498    "mul r5, r15 \n\t"         \
3499    "add r22, r0 \n\t"         \
3500    "adc r23, r1 \n\t"         \
3501    "adc r24, r25 \n\t"        \
3502    "ld r0, z \n\t"            \
3503    "add r22, r0 \n\t"         \
3504    "adc r23, r25 \n\t"        \
3505    "adc r24, r25 \n\t"        \
3506    "st z+, r22 \n\t"          \
3507                               \
3508    "ld r15, y+ \n\t"          \
3509    "ldi r22, 0 \n\t"          \
3510    "mul r6, r15 \n\t"         \
3511    "add r23, r0 \n\t"         \
3512    "adc r24, r1 \n\t"         \
3513    "adc r22, r25 \n\t"        \
3514    "mul r7, r14 \n\t"         \
3515    "add r23, r0 \n\t"         \
3516    "adc r24, r1 \n\t"         \
3517    "adc r22, r25 \n\t"        \
3518    "mul r8, r13 \n\t"         \
3519    "add r23, r0 \n\t"         \
3520    "adc r24, r1 \n\t"         \
3521    "adc r22, r25 \n\t"        \
3522    "mul r9, r12 \n\t"         \
3523    "add r23, r0 \n\t"         \
3524    "adc r24, r1 \n\t"         \
3525    "adc r22, r25 \n\t"        \
3526    "mul r10, r21 \n\t"        \
3527    "add r23, r0 \n\t"         \
3528    "adc r24, r1 \n\t"         \
3529    "adc r22, r25 \n\t"        \
3530    "mul r11, r20 \n\t"        \
3531    "add r23, r0 \n\t"         \
3532    "adc r24, r1 \n\t"         \
3533    "adc r22, r25 \n\t"        \
3534    "mul r2, r19 \n\t"         \
3535    "add r23, r0 \n\t"         \
3536    "adc r24, r1 \n\t"         \
3537    "adc r22, r25 \n\t"        \
3538    "mul r3, r18 \n\t"         \
3539    "add r23, r0 \n\t"         \
3540    "adc r24, r1 \n\t"         \
3541    "adc r22, r25 \n\t"        \
3542    "mul r4, r17 \n\t"         \
3543    "add r23, r0 \n\t"         \
3544    "adc r24, r1 \n\t"         \
3545    "adc r22, r25 \n\t"        \
3546    "mul r5, r16 \n\t"         \
3547    "add r23, r0 \n\t"         \
3548    "adc r24, r1 \n\t"         \
3549    "adc r22, r25 \n\t"        \
3550    "ld r0, z \n\t"            \
3551    "add r23, r0 \n\t"         \
3552    "adc r24, r25 \n\t"        \
3553    "adc r22, r25 \n\t"        \
3554    "st z+, r23 \n\t"          \
3555                               \
3556    "ldi r23, 0 \n\t"          \
3557    "mul r7, r15 \n\t"         \
3558    "add r24, r0 \n\t"         \
3559    "adc r22, r1 \n\t"         \
3560    "adc r23, r25 \n\t"        \
3561    "mul r8, r14 \n\t"         \
3562    "add r24, r0 \n\t"         \
3563    "adc r22, r1 \n\t"         \
3564    "adc r23, r25 \n\t"        \
3565    "mul r9, r13 \n\t"         \
3566    "add r24, r0 \n\t"         \
3567    "adc r22, r1 \n\t"         \
3568    "adc r23, r25 \n\t"        \
3569    "mul r10, r12 \n\t"        \
3570    "add r24, r0 \n\t"         \
3571    "adc r22, r1 \n\t"         \
3572    "adc r23, r25 \n\t"        \
3573    "mul r11, r21 \n\t"        \
3574    "add r24, r0 \n\t"         \
3575    "adc r22, r1 \n\t"         \
3576    "adc r23, r25 \n\t"        \
3577    "mul r2, r20 \n\t"         \
3578    "add r24, r0 \n\t"         \
3579    "adc r22, r1 \n\t"         \
3580    "adc r23, r25 \n\t"        \
3581    "mul r3, r19 \n\t"         \
3582    "add r24, r0 \n\t"         \
3583    "adc r22, r1 \n\t"         \
3584    "adc r23, r25 \n\t"        \
3585    "mul r4, r18 \n\t"         \
3586    "add r24, r0 \n\t"         \
3587    "adc r22, r1 \n\t"         \
3588    "adc r23, r25 \n\t"        \
3589    "mul r5, r17 \n\t"         \
3590    "add r24, r0 \n\t"         \
3591    "adc r22, r1 \n\t"         \
3592    "adc r23, r25 \n\t"        \
3593    "st z+, r24 \n\t"          \
3594                               \
3595    "ldi r24, 0 \n\t"          \
3596    "mul r8, r15 \n\t"         \
3597    "add r22, r0 \n\t"         \
3598    "adc r23, r1 \n\t"         \
3599    "adc r24, r25 \n\t"        \
3600    "mul r9, r14 \n\t"         \
3601    "add r22, r0 \n\t"         \
3602    "adc r23, r1 \n\t"         \
3603    "adc r24, r25 \n\t"        \
3604    "mul r10, r13 \n\t"        \
3605    "add r22, r0 \n\t"         \
3606    "adc r23, r1 \n\t"         \
3607    "adc r24, r25 \n\t"        \
3608    "mul r11, r12 \n\t"        \
3609    "add r22, r0 \n\t"         \
3610    "adc r23, r1 \n\t"         \
3611    "adc r24, r25 \n\t"        \
3612    "mul r2, r21 \n\t"         \
3613    "add r22, r0 \n\t"         \
3614    "adc r23, r1 \n\t"         \
3615    "adc r24, r25 \n\t"        \
3616    "mul r3, r20 \n\t"         \
3617    "add r22, r0 \n\t"         \
3618    "adc r23, r1 \n\t"         \
3619    "adc r24, r25 \n\t"        \
3620    "mul r4, r19 \n\t"         \
3621    "add r22, r0 \n\t"         \
3622    "adc r23, r1 \n\t"         \
3623    "adc r24, r25 \n\t"        \
3624    "mul r5, r18 \n\t"         \
3625    "add r22, r0 \n\t"         \
3626    "adc r23, r1 \n\t"         \
3627    "adc r24, r25 \n\t"        \
3628    "st z+, r22 \n\t"          \
3629                               \
3630    "ldi r22, 0 \n\t"          \
3631    "mul r9, r15 \n\t"         \
3632    "add r23, r0 \n\t"         \
3633    "adc r24, r1 \n\t"         \
3634    "adc r22, r25 \n\t"        \
3635    "mul r10, r14 \n\t"        \
3636    "add r23, r0 \n\t"         \
3637    "adc r24, r1 \n\t"         \
3638    "adc r22, r25 \n\t"        \
3639    "mul r11, r13 \n\t"        \
3640    "add r23, r0 \n\t"         \
3641    "adc r24, r1 \n\t"         \
3642    "adc r22, r25 \n\t"        \
3643    "mul r2, r12 \n\t"         \
3644    "add r23, r0 \n\t"         \
3645    "adc r24, r1 \n\t"         \
3646    "adc r22, r25 \n\t"        \
3647    "mul r3, r21 \n\t"         \
3648    "add r23, r0 \n\t"         \
3649    "adc r24, r1 \n\t"         \
3650    "adc r22, r25 \n\t"        \
3651    "mul r4, r20 \n\t"         \
3652    "add r23, r0 \n\t"         \
3653    "adc r24, r1 \n\t"         \
3654    "adc r22, r25 \n\t"        \
3655    "mul r5, r19 \n\t"         \
3656    "add r23, r0 \n\t"         \
3657    "adc r24, r1 \n\t"         \
3658    "adc r22, r25 \n\t"        \
3659    "st z+, r23 \n\t"          \
3660                               \
3661    "ldi r23, 0 \n\t"          \
3662    "mul r10, r15 \n\t"        \
3663    "add r24, r0 \n\t"         \
3664    "adc r22, r1 \n\t"         \
3665    "adc r23, r25 \n\t"        \
3666    "mul r11, r14 \n\t"        \
3667    "add r24, r0 \n\t"         \
3668    "adc r22, r1 \n\t"         \
3669    "adc r23, r25 \n\t"        \
3670    "mul r2, r13 \n\t"         \
3671    "add r24, r0 \n\t"         \
3672    "adc r22, r1 \n\t"         \
3673    "adc r23, r25 \n\t"        \
3674    "mul r3, r12 \n\t"         \
3675    "add r24, r0 \n\t"         \
3676    "adc r22, r1 \n\t"         \
3677    "adc r23, r25 \n\t"        \
3678    "mul r4, r21 \n\t"         \
3679    "add r24, r0 \n\t"         \
3680    "adc r22, r1 \n\t"         \
3681    "adc r23, r25 \n\t"        \
3682    "mul r5, r20 \n\t"         \
3683    "add r24, r0 \n\t"         \
3684    "adc r22, r1 \n\t"         \
3685    "adc r23, r25 \n\t"        \
3686    "st z+, r24 \n\t"          \
3687                               \
3688    "ldi r24, 0 \n\t"          \
3689    "mul r11, r15 \n\t"        \
3690    "add r22, r0 \n\t"         \
3691    "adc r23, r1 \n\t"         \
3692    "adc r24, r25 \n\t"        \
3693    "mul r2, r14 \n\t"         \
3694    "add r22, r0 \n\t"         \
3695    "adc r23, r1 \n\t"         \
3696    "adc r24, r25 \n\t"        \
3697    "mul r3, r13 \n\t"         \
3698    "add r22, r0 \n\t"         \
3699    "adc r23, r1 \n\t"         \
3700    "adc r24, r25 \n\t"        \
3701    "mul r4, r12 \n\t"         \
3702    "add r22, r0 \n\t"         \
3703    "adc r23, r1 \n\t"         \
3704    "adc r24, r25 \n\t"        \
3705    "mul r5, r21 \n\t"         \
3706    "add r22, r0 \n\t"         \
3707    "adc r23, r1 \n\t"         \
3708    "adc r24, r25 \n\t"        \
3709    "st z+, r22 \n\t"          \
3710                               \
3711    "ldi r22, 0 \n\t"          \
3712    "mul r2, r15 \n\t"         \
3713    "add r23, r0 \n\t"         \
3714    "adc r24, r1 \n\t"         \
3715    "adc r22, r25 \n\t"        \
3716    "mul r3, r14 \n\t"         \
3717    "add r23, r0 \n\t"         \
3718    "adc r24, r1 \n\t"         \
3719    "adc r22, r25 \n\t"        \
3720    "mul r4, r13 \n\t"         \
3721    "add r23, r0 \n\t"         \
3722    "adc r24, r1 \n\t"         \
3723    "adc r22, r25 \n\t"        \
3724    "mul r5, r12 \n\t"         \
3725    "add r23, r0 \n\t"         \
3726    "adc r24, r1 \n\t"         \
3727    "adc r22, r25 \n\t"        \
3728    "st z+, r23 \n\t"          \
3729                               \
3730    "ldi r23, 0 \n\t"          \
3731    "mul r3, r15 \n\t"         \
3732    "add r24, r0 \n\t"         \
3733    "adc r22, r1 \n\t"         \
3734    "adc r23, r25 \n\t"        \
3735    "mul r4, r14 \n\t"         \
3736    "add r24, r0 \n\t"         \
3737    "adc r22, r1 \n\t"         \
3738    "adc r23, r25 \n\t"        \
3739    "mul r5, r13 \n\t"         \
3740    "add r24, r0 \n\t"         \
3741    "adc r22, r1 \n\t"         \
3742    "adc r23, r25 \n\t"        \
3743    "st z+, r24 \n\t"          \
3744                               \
3745    "ldi r24, 0 \n\t"          \
3746    "mul r4, r15 \n\t"         \
3747    "add r22, r0 \n\t"         \
3748    "adc r23, r1 \n\t"         \
3749    "adc r24, r25 \n\t"        \
3750    "mul r5, r14 \n\t"         \
3751    "add r22, r0 \n\t"         \
3752    "adc r23, r1 \n\t"         \
3753    "adc r24, r25 \n\t"        \
3754    "st z+, r22 \n\t"          \
3755                               \
3756    "mul r5, r15 \n\t"         \
3757    "add r23, r0 \n\t"         \
3758    "adc r24, r1 \n\t"         \
3759    "st z+, r23 \n\t"          \
3760    "st z+, r24 \n\t"          \
3761                               \
3762    "sbiw r30, 38 \n\t"        \
3763    "sbiw r28, 24 \n\t"        \
3764    "sbiw r26, 14 \n\t"        \
3765    "ld r2, x+ \n\t"           \
3766    "ld r12, y+ \n\t"          \
3767    "ld r3, x+ \n\t"           \
3768    "ld r13, y+ \n\t"          \
3769    "ld r4, x+ \n\t"           \
3770    "ld r14, y+ \n\t"          \
3771    "ld r5, x+ \n\t"           \
3772    "ld r15, y+ \n\t"          \
3773    "ld r6, x+ \n\t"           \
3774    "ld r16, y+ \n\t"          \
3775    "ld r7, x+ \n\t"           \
3776    "ld r17, y+ \n\t"          \
3777    "ld r8, x+ \n\t"           \
3778    "ld r18, y+ \n\t"          \
3779    "ld r9, x+ \n\t"           \
3780    "ld r19, y+ \n\t"          \
3781    "ld r10, x+ \n\t"          \
3782    "ld r20, y+ \n\t"          \
3783    "ld r11, x+ \n\t"          \
3784    "ld r21, y+ \n\t"          \
3785                               \
3786    "ldi r23, 0 \n\t"          \
3787    "mul r2, r12 \n\t"         \
3788    "st z+, r0 \n\t"           \
3789    "mov r22, r1 \n\t"         \
3790                               \
3791    "ldi r24, 0 \n\t"          \
3792    "mul r2, r13 \n\t"         \
3793    "add r22, r0 \n\t"         \
3794    "adc r23, r1 \n\t"         \
3795    "mul r3, r12 \n\t"         \
3796    "add r22, r0 \n\t"         \
3797    "adc r23, r1 \n\t"         \
3798    "adc r24, r25 \n\t"        \
3799    "st z+, r22 \n\t"          \
3800                               \
3801    "ldi r22, 0 \n\t"          \
3802    "mul r2, r14 \n\t"         \
3803    "add r23, r0 \n\t"         \
3804    "adc r24, r1 \n\t"         \
3805    "adc r22, r25 \n\t"        \
3806    "mul r3, r13 \n\t"         \
3807    "add r23, r0 \n\t"         \
3808    "adc r24, r1 \n\t"         \
3809    "adc r22, r25 \n\t"        \
3810    "mul r4, r12 \n\t"         \
3811    "add r23, r0 \n\t"         \
3812    "adc r24, r1 \n\t"         \
3813    "adc r22, r25 \n\t"        \
3814    "st z+, r23 \n\t"          \
3815                               \
3816    "ldi r23, 0 \n\t"          \
3817    "mul r2, r15 \n\t"         \
3818    "add r24, r0 \n\t"         \
3819    "adc r22, r1 \n\t"         \
3820    "adc r23, r25 \n\t"        \
3821    "mul r3, r14 \n\t"         \
3822    "add r24, r0 \n\t"         \
3823    "adc r22, r1 \n\t"         \
3824    "adc r23, r25 \n\t"        \
3825    "mul r4, r13 \n\t"         \
3826    "add r24, r0 \n\t"         \
3827    "adc r22, r1 \n\t"         \
3828    "adc r23, r25 \n\t"        \
3829    "mul r5, r12 \n\t"         \
3830    "add r24, r0 \n\t"         \
3831    "adc r22, r1 \n\t"         \
3832    "adc r23, r25 \n\t"        \
3833    "st z+, r24 \n\t"          \
3834                               \
3835    "ldi r24, 0 \n\t"          \
3836    "mul r2, r16 \n\t"         \
3837    "add r22, r0 \n\t"         \
3838    "adc r23, r1 \n\t"         \
3839    "adc r24, r25 \n\t"        \
3840    "mul r3, r15 \n\t"         \
3841    "add r22, r0 \n\t"         \
3842    "adc r23, r1 \n\t"         \
3843    "adc r24, r25 \n\t"        \
3844    "mul r4, r14 \n\t"         \
3845    "add r22, r0 \n\t"         \
3846    "adc r23, r1 \n\t"         \
3847    "adc r24, r25 \n\t"        \
3848    "mul r5, r13 \n\t"         \
3849    "add r22, r0 \n\t"         \
3850    "adc r23, r1 \n\t"         \
3851    "adc r24, r25 \n\t"        \
3852    "mul r6, r12 \n\t"         \
3853    "add r22, r0 \n\t"         \
3854    "adc r23, r1 \n\t"         \
3855    "adc r24, r25 \n\t"        \
3856    "st z+, r22 \n\t"          \
3857                               \
3858    "ldi r22, 0 \n\t"          \
3859    "mul r2, r17 \n\t"         \
3860    "add r23, r0 \n\t"         \
3861    "adc r24, r1 \n\t"         \
3862    "adc r22, r25 \n\t"        \
3863    "mul r3, r16 \n\t"         \
3864    "add r23, r0 \n\t"         \
3865    "adc r24, r1 \n\t"         \
3866    "adc r22, r25 \n\t"        \
3867    "mul r4, r15 \n\t"         \
3868    "add r23, r0 \n\t"         \
3869    "adc r24, r1 \n\t"         \
3870    "adc r22, r25 \n\t"        \
3871    "mul r5, r14 \n\t"         \
3872    "add r23, r0 \n\t"         \
3873    "adc r24, r1 \n\t"         \
3874    "adc r22, r25 \n\t"        \
3875    "mul r6, r13 \n\t"         \
3876    "add r23, r0 \n\t"         \
3877    "adc r24, r1 \n\t"         \
3878    "adc r22, r25 \n\t"        \
3879    "mul r7, r12 \n\t"         \
3880    "add r23, r0 \n\t"         \
3881    "adc r24, r1 \n\t"         \
3882    "adc r22, r25 \n\t"        \
3883    "st z+, r23 \n\t"          \
3884                               \
3885    "ldi r23, 0 \n\t"          \
3886    "mul r2, r18 \n\t"         \
3887    "add r24, r0 \n\t"         \
3888    "adc r22, r1 \n\t"         \
3889    "adc r23, r25 \n\t"        \
3890    "mul r3, r17 \n\t"         \
3891    "add r24, r0 \n\t"         \
3892    "adc r22, r1 \n\t"         \
3893    "adc r23, r25 \n\t"        \
3894    "mul r4, r16 \n\t"         \
3895    "add r24, r0 \n\t"         \
3896    "adc r22, r1 \n\t"         \
3897    "adc r23, r25 \n\t"        \
3898    "mul r5, r15 \n\t"         \
3899    "add r24, r0 \n\t"         \
3900    "adc r22, r1 \n\t"         \
3901    "adc r23, r25 \n\t"        \
3902    "mul r6, r14 \n\t"         \
3903    "add r24, r0 \n\t"         \
3904    "adc r22, r1 \n\t"         \
3905    "adc r23, r25 \n\t"        \
3906    "mul r7, r13 \n\t"         \
3907    "add r24, r0 \n\t"         \
3908    "adc r22, r1 \n\t"         \
3909    "adc r23, r25 \n\t"        \
3910    "mul r8, r12 \n\t"         \
3911    "add r24, r0 \n\t"         \
3912    "adc r22, r1 \n\t"         \
3913    "adc r23, r25 \n\t"        \
3914    "st z+, r24 \n\t"          \
3915                               \
3916    "ldi r24, 0 \n\t"          \
3917    "mul r2, r19 \n\t"         \
3918    "add r22, r0 \n\t"         \
3919    "adc r23, r1 \n\t"         \
3920    "adc r24, r25 \n\t"        \
3921    "mul r3, r18 \n\t"         \
3922    "add r22, r0 \n\t"         \
3923    "adc r23, r1 \n\t"         \
3924    "adc r24, r25 \n\t"        \
3925    "mul r4, r17 \n\t"         \
3926    "add r22, r0 \n\t"         \
3927    "adc r23, r1 \n\t"         \
3928    "adc r24, r25 \n\t"        \
3929    "mul r5, r16 \n\t"         \
3930    "add r22, r0 \n\t"         \
3931    "adc r23, r1 \n\t"         \
3932    "adc r24, r25 \n\t"        \
3933    "mul r6, r15 \n\t"         \
3934    "add r22, r0 \n\t"         \
3935    "adc r23, r1 \n\t"         \
3936    "adc r24, r25 \n\t"        \
3937    "mul r7, r14 \n\t"         \
3938    "add r22, r0 \n\t"         \
3939    "adc r23, r1 \n\t"         \
3940    "adc r24, r25 \n\t"        \
3941    "mul r8, r13 \n\t"         \
3942    "add r22, r0 \n\t"         \
3943    "adc r23, r1 \n\t"         \
3944    "adc r24, r25 \n\t"        \
3945    "mul r9, r12 \n\t"         \
3946    "add r22, r0 \n\t"         \
3947    "adc r23, r1 \n\t"         \
3948    "adc r24, r25 \n\t"        \
3949    "st z+, r22 \n\t"          \
3950                               \
3951    "ldi r22, 0 \n\t"          \
3952    "mul r2, r20 \n\t"         \
3953    "add r23, r0 \n\t"         \
3954    "adc r24, r1 \n\t"         \
3955    "adc r22, r25 \n\t"        \
3956    "mul r3, r19 \n\t"         \
3957    "add r23, r0 \n\t"         \
3958    "adc r24, r1 \n\t"         \
3959    "adc r22, r25 \n\t"        \
3960    "mul r4, r18 \n\t"         \
3961    "add r23, r0 \n\t"         \
3962    "adc r24, r1 \n\t"         \
3963    "adc r22, r25 \n\t"        \
3964    "mul r5, r17 \n\t"         \
3965    "add r23, r0 \n\t"         \
3966    "adc r24, r1 \n\t"         \
3967    "adc r22, r25 \n\t"        \
3968    "mul r6, r16 \n\t"         \
3969    "add r23, r0 \n\t"         \
3970    "adc r24, r1 \n\t"         \
3971    "adc r22, r25 \n\t"        \
3972    "mul r7, r15 \n\t"         \
3973    "add r23, r0 \n\t"         \
3974    "adc r24, r1 \n\t"         \
3975    "adc r22, r25 \n\t"        \
3976    "mul r8, r14 \n\t"         \
3977    "add r23, r0 \n\t"         \
3978    "adc r24, r1 \n\t"         \
3979    "adc r22, r25 \n\t"        \
3980    "mul r9, r13 \n\t"         \
3981    "add r23, r0 \n\t"         \
3982    "adc r24, r1 \n\t"         \
3983    "adc r22, r25 \n\t"        \
3984    "mul r10, r12 \n\t"        \
3985    "add r23, r0 \n\t"         \
3986    "adc r24, r1 \n\t"         \
3987    "adc r22, r25 \n\t"        \
3988    "st z+, r23 \n\t"          \
3989                               \
3990    "ldi r23, 0 \n\t"          \
3991    "mul r2, r21 \n\t"         \
3992    "add r24, r0 \n\t"         \
3993    "adc r22, r1 \n\t"         \
3994    "adc r23, r25 \n\t"        \
3995    "mul r3, r20 \n\t"         \
3996    "add r24, r0 \n\t"         \
3997    "adc r22, r1 \n\t"         \
3998    "adc r23, r25 \n\t"        \
3999    "mul r4, r19 \n\t"         \
4000    "add r24, r0 \n\t"         \
4001    "adc r22, r1 \n\t"         \
4002    "adc r23, r25 \n\t"        \
4003    "mul r5, r18 \n\t"         \
4004    "add r24, r0 \n\t"         \
4005    "adc r22, r1 \n\t"         \
4006    "adc r23, r25 \n\t"        \
4007    "mul r6, r17 \n\t"         \
4008    "add r24, r0 \n\t"         \
4009    "adc r22, r1 \n\t"         \
4010    "adc r23, r25 \n\t"        \
4011    "mul r7, r16 \n\t"         \
4012    "add r24, r0 \n\t"         \
4013    "adc r22, r1 \n\t"         \
4014    "adc r23, r25 \n\t"        \
4015    "mul r8, r15 \n\t"         \
4016    "add r24, r0 \n\t"         \
4017    "adc r22, r1 \n\t"         \
4018    "adc r23, r25 \n\t"        \
4019    "mul r9, r14 \n\t"         \
4020    "add r24, r0 \n\t"         \
4021    "adc r22, r1 \n\t"         \
4022    "adc r23, r25 \n\t"        \
4023    "mul r10, r13 \n\t"        \
4024    "add r24, r0 \n\t"         \
4025    "adc r22, r1 \n\t"         \
4026    "adc r23, r25 \n\t"        \
4027    "mul r11, r12 \n\t"        \
4028    "add r24, r0 \n\t"         \
4029    "adc r22, r1 \n\t"         \
4030    "adc r23, r25 \n\t"        \
4031    "st z+, r24 \n\t"          \
4032                               \
4033    "ld r2, x+ \n\t"           \
4034    "ldi r24, 0 \n\t"          \
4035    "mul r3, r21 \n\t"         \
4036    "add r22, r0 \n\t"         \
4037    "adc r23, r1 \n\t"         \
4038    "adc r24, r25 \n\t"        \
4039    "mul r4, r20 \n\t"         \
4040    "add r22, r0 \n\t"         \
4041    "adc r23, r1 \n\t"         \
4042    "adc r24, r25 \n\t"        \
4043    "mul r5, r19 \n\t"         \
4044    "add r22, r0 \n\t"         \
4045    "adc r23, r1 \n\t"         \
4046    "adc r24, r25 \n\t"        \
4047    "mul r6, r18 \n\t"         \
4048    "add r22, r0 \n\t"         \
4049    "adc r23, r1 \n\t"         \
4050    "adc r24, r25 \n\t"        \
4051    "mul r7, r17 \n\t"         \
4052    "add r22, r0 \n\t"         \
4053    "adc r23, r1 \n\t"         \
4054    "adc r24, r25 \n\t"        \
4055    "mul r8, r16 \n\t"         \
4056    "add r22, r0 \n\t"         \
4057    "adc r23, r1 \n\t"         \
4058    "adc r24, r25 \n\t"        \
4059    "mul r9, r15 \n\t"         \
4060    "add r22, r0 \n\t"         \
4061    "adc r23, r1 \n\t"         \
4062    "adc r24, r25 \n\t"        \
4063    "mul r10, r14 \n\t"        \
4064    "add r22, r0 \n\t"         \
4065    "adc r23, r1 \n\t"         \
4066    "adc r24, r25 \n\t"        \
4067    "mul r11, r13 \n\t"        \
4068    "add r22, r0 \n\t"         \
4069    "adc r23, r1 \n\t"         \
4070    "adc r24, r25 \n\t"        \
4071    "mul r2, r12 \n\t"         \
4072    "add r22, r0 \n\t"         \
4073    "adc r23, r1 \n\t"         \
4074    "adc r24, r25 \n\t"        \
4075    "ld r0, z \n\t"            \
4076    "add r22, r0 \n\t"         \
4077    "adc r23, r25 \n\t"        \
4078    "adc r24, r25 \n\t"        \
4079    "st z+, r22 \n\t"          \
4080                               \
4081    "ld r3, x+ \n\t"           \
4082    "ldi r22, 0 \n\t"          \
4083    "mul r4, r21 \n\t"         \
4084    "add r23, r0 \n\t"         \
4085    "adc r24, r1 \n\t"         \
4086    "adc r22, r25 \n\t"        \
4087    "mul r5, r20 \n\t"         \
4088    "add r23, r0 \n\t"         \
4089    "adc r24, r1 \n\t"         \
4090    "adc r22, r25 \n\t"        \
4091    "mul r6, r19 \n\t"         \
4092    "add r23, r0 \n\t"         \
4093    "adc r24, r1 \n\t"         \
4094    "adc r22, r25 \n\t"        \
4095    "mul r7, r18 \n\t"         \
4096    "add r23, r0 \n\t"         \
4097    "adc r24, r1 \n\t"         \
4098    "adc r22, r25 \n\t"        \
4099    "mul r8, r17 \n\t"         \
4100    "add r23, r0 \n\t"         \
4101    "adc r24, r1 \n\t"         \
4102    "adc r22, r25 \n\t"        \
4103    "mul r9, r16 \n\t"         \
4104    "add r23, r0 \n\t"         \
4105    "adc r24, r1 \n\t"         \
4106    "adc r22, r25 \n\t"        \
4107    "mul r10, r15 \n\t"        \
4108    "add r23, r0 \n\t"         \
4109    "adc r24, r1 \n\t"         \
4110    "adc r22, r25 \n\t"        \
4111    "mul r11, r14 \n\t"        \
4112    "add r23, r0 \n\t"         \
4113    "adc r24, r1 \n\t"         \
4114    "adc r22, r25 \n\t"        \
4115    "mul r2, r13 \n\t"         \
4116    "add r23, r0 \n\t"         \
4117    "adc r24, r1 \n\t"         \
4118    "adc r22, r25 \n\t"        \
4119    "mul r3, r12 \n\t"         \
4120    "add r23, r0 \n\t"         \
4121    "adc r24, r1 \n\t"         \
4122    "adc r22, r25 \n\t"        \
4123    "ld r0, z \n\t"            \
4124    "add r23, r0 \n\t"         \
4125    "adc r24, r25 \n\t"        \
4126    "adc r22, r25 \n\t"        \
4127    "st z+, r23 \n\t"          \
4128                               \
4129    "ld r4, x+ \n\t"           \
4130    "ldi r23, 0 \n\t"          \
4131    "mul r5, r21 \n\t"         \
4132    "add r24, r0 \n\t"         \
4133    "adc r22, r1 \n\t"         \
4134    "adc r23, r25 \n\t"        \
4135    "mul r6, r20 \n\t"         \
4136    "add r24, r0 \n\t"         \
4137    "adc r22, r1 \n\t"         \
4138    "adc r23, r25 \n\t"        \
4139    "mul r7, r19 \n\t"         \
4140    "add r24, r0 \n\t"         \
4141    "adc r22, r1 \n\t"         \
4142    "adc r23, r25 \n\t"        \
4143    "mul r8, r18 \n\t"         \
4144    "add r24, r0 \n\t"         \
4145    "adc r22, r1 \n\t"         \
4146    "adc r23, r25 \n\t"        \
4147    "mul r9, r17 \n\t"         \
4148    "add r24, r0 \n\t"         \
4149    "adc r22, r1 \n\t"         \
4150    "adc r23, r25 \n\t"        \
4151    "mul r10, r16 \n\t"        \
4152    "add r24, r0 \n\t"         \
4153    "adc r22, r1 \n\t"         \
4154    "adc r23, r25 \n\t"        \
4155    "mul r11, r15 \n\t"        \
4156    "add r24, r0 \n\t"         \
4157    "adc r22, r1 \n\t"         \
4158    "adc r23, r25 \n\t"        \
4159    "mul r2, r14 \n\t"         \
4160    "add r24, r0 \n\t"         \
4161    "adc r22, r1 \n\t"         \
4162    "adc r23, r25 \n\t"        \
4163    "mul r3, r13 \n\t"         \
4164    "add r24, r0 \n\t"         \
4165    "adc r22, r1 \n\t"         \
4166    "adc r23, r25 \n\t"        \
4167    "mul r4, r12 \n\t"         \
4168    "add r24, r0 \n\t"         \
4169    "adc r22, r1 \n\t"         \
4170    "adc r23, r25 \n\t"        \
4171    "ld r0, z \n\t"            \
4172    "add r24, r0 \n\t"         \
4173    "adc r22, r25 \n\t"        \
4174    "adc r23, r25 \n\t"        \
4175    "st z+, r24 \n\t"          \
4176                               \
4177    "ld r5, x+ \n\t"           \
4178    "ldi r24, 0 \n\t"          \
4179    "mul r6, r21 \n\t"         \
4180    "add r22, r0 \n\t"         \
4181    "adc r23, r1 \n\t"         \
4182    "adc r24, r25 \n\t"        \
4183    "mul r7, r20 \n\t"         \
4184    "add r22, r0 \n\t"         \
4185    "adc r23, r1 \n\t"         \
4186    "adc r24, r25 \n\t"        \
4187    "mul r8, r19 \n\t"         \
4188    "add r22, r0 \n\t"         \
4189    "adc r23, r1 \n\t"         \
4190    "adc r24, r25 \n\t"        \
4191    "mul r9, r18 \n\t"         \
4192    "add r22, r0 \n\t"         \
4193    "adc r23, r1 \n\t"         \
4194    "adc r24, r25 \n\t"        \
4195    "mul r10, r17 \n\t"        \
4196    "add r22, r0 \n\t"         \
4197    "adc r23, r1 \n\t"         \
4198    "adc r24, r25 \n\t"        \
4199    "mul r11, r16 \n\t"        \
4200    "add r22, r0 \n\t"         \
4201    "adc r23, r1 \n\t"         \
4202    "adc r24, r25 \n\t"        \
4203    "mul r2, r15 \n\t"         \
4204    "add r22, r0 \n\t"         \
4205    "adc r23, r1 \n\t"         \
4206    "adc r24, r25 \n\t"        \
4207    "mul r3, r14 \n\t"         \
4208    "add r22, r0 \n\t"         \
4209    "adc r23, r1 \n\t"         \
4210    "adc r24, r25 \n\t"        \
4211    "mul r4, r13 \n\t"         \
4212    "add r22, r0 \n\t"         \
4213    "adc r23, r1 \n\t"         \
4214    "adc r24, r25 \n\t"        \
4215    "mul r5, r12 \n\t"         \
4216    "add r22, r0 \n\t"         \
4217    "adc r23, r1 \n\t"         \
4218    "adc r24, r25 \n\t"        \
4219    "ld r0, z \n\t"            \
4220    "add r22, r0 \n\t"         \
4221    "adc r23, r25 \n\t"        \
4222    "adc r24, r25 \n\t"        \
4223    "st z+, r22 \n\t"          \
4224                               \
4225    "ld r6, x+ \n\t"           \
4226    "ldi r22, 0 \n\t"          \
4227    "mul r7, r21 \n\t"         \
4228    "add r23, r0 \n\t"         \
4229    "adc r24, r1 \n\t"         \
4230    "adc r22, r25 \n\t"        \
4231    "mul r8, r20 \n\t"         \
4232    "add r23, r0 \n\t"         \
4233    "adc r24, r1 \n\t"         \
4234    "adc r22, r25 \n\t"        \
4235    "mul r9, r19 \n\t"         \
4236    "add r23, r0 \n\t"         \
4237    "adc r24, r1 \n\t"         \
4238    "adc r22, r25 \n\t"        \
4239    "mul r10, r18 \n\t"        \
4240    "add r23, r0 \n\t"         \
4241    "adc r24, r1 \n\t"         \
4242    "adc r22, r25 \n\t"        \
4243    "mul r11, r17 \n\t"        \
4244    "add r23, r0 \n\t"         \
4245    "adc r24, r1 \n\t"         \
4246    "adc r22, r25 \n\t"        \
4247    "mul r2, r16 \n\t"         \
4248    "add r23, r0 \n\t"         \
4249    "adc r24, r1 \n\t"         \
4250    "adc r22, r25 \n\t"        \
4251    "mul r3, r15 \n\t"         \
4252    "add r23, r0 \n\t"         \
4253    "adc r24, r1 \n\t"         \
4254    "adc r22, r25 \n\t"        \
4255    "mul r4, r14 \n\t"         \
4256    "add r23, r0 \n\t"         \
4257    "adc r24, r1 \n\t"         \
4258    "adc r22, r25 \n\t"        \
4259    "mul r5, r13 \n\t"         \
4260    "add r23, r0 \n\t"         \
4261    "adc r24, r1 \n\t"         \
4262    "adc r22, r25 \n\t"        \
4263    "mul r6, r12 \n\t"         \
4264    "add r23, r0 \n\t"         \
4265    "adc r24, r1 \n\t"         \
4266    "adc r22, r25 \n\t"        \
4267    "ld r0, z \n\t"            \
4268    "add r23, r0 \n\t"         \
4269    "adc r24, r25 \n\t"        \
4270    "adc r22, r25 \n\t"        \
4271    "st z+, r23 \n\t"          \
4272                               \
4273    "ld r7, x+ \n\t"           \
4274    "ldi r23, 0 \n\t"          \
4275    "mul r8, r21 \n\t"         \
4276    "add r24, r0 \n\t"         \
4277    "adc r22, r1 \n\t"         \
4278    "adc r23, r25 \n\t"        \
4279    "mul r9, r20 \n\t"         \
4280    "add r24, r0 \n\t"         \
4281    "adc r22, r1 \n\t"         \
4282    "adc r23, r25 \n\t"        \
4283    "mul r10, r19 \n\t"        \
4284    "add r24, r0 \n\t"         \
4285    "adc r22, r1 \n\t"         \
4286    "adc r23, r25 \n\t"        \
4287    "mul r11, r18 \n\t"        \
4288    "add r24, r0 \n\t"         \
4289    "adc r22, r1 \n\t"         \
4290    "adc r23, r25 \n\t"        \
4291    "mul r2, r17 \n\t"         \
4292    "add r24, r0 \n\t"         \
4293    "adc r22, r1 \n\t"         \
4294    "adc r23, r25 \n\t"        \
4295    "mul r3, r16 \n\t"         \
4296    "add r24, r0 \n\t"         \
4297    "adc r22, r1 \n\t"         \
4298    "adc r23, r25 \n\t"        \
4299    "mul r4, r15 \n\t"         \
4300    "add r24, r0 \n\t"         \
4301    "adc r22, r1 \n\t"         \
4302    "adc r23, r25 \n\t"        \
4303    "mul r5, r14 \n\t"         \
4304    "add r24, r0 \n\t"         \
4305    "adc r22, r1 \n\t"         \
4306    "adc r23, r25 \n\t"        \
4307    "mul r6, r13 \n\t"         \
4308    "add r24, r0 \n\t"         \
4309    "adc r22, r1 \n\t"         \
4310    "adc r23, r25 \n\t"        \
4311    "mul r7, r12 \n\t"         \
4312    "add r24, r0 \n\t"         \
4313    "adc r22, r1 \n\t"         \
4314    "adc r23, r25 \n\t"        \
4315    "ld r0, z \n\t"            \
4316    "add r24, r0 \n\t"         \
4317    "adc r22, r25 \n\t"        \
4318    "adc r23, r25 \n\t"        \
4319    "st z+, r24 \n\t"          \
4320                               \
4321    "ld r8, x+ \n\t"           \
4322    "ldi r24, 0 \n\t"          \
4323    "mul r9, r21 \n\t"         \
4324    "add r22, r0 \n\t"         \
4325    "adc r23, r1 \n\t"         \
4326    "adc r24, r25 \n\t"        \
4327    "mul r10, r20 \n\t"        \
4328    "add r22, r0 \n\t"         \
4329    "adc r23, r1 \n\t"         \
4330    "adc r24, r25 \n\t"        \
4331    "mul r11, r19 \n\t"        \
4332    "add r22, r0 \n\t"         \
4333    "adc r23, r1 \n\t"         \
4334    "adc r24, r25 \n\t"        \
4335    "mul r2, r18 \n\t"         \
4336    "add r22, r0 \n\t"         \
4337    "adc r23, r1 \n\t"         \
4338    "adc r24, r25 \n\t"        \
4339    "mul r3, r17 \n\t"         \
4340    "add r22, r0 \n\t"         \
4341    "adc r23, r1 \n\t"         \
4342    "adc r24, r25 \n\t"        \
4343    "mul r4, r16 \n\t"         \
4344    "add r22, r0 \n\t"         \
4345    "adc r23, r1 \n\t"         \
4346    "adc r24, r25 \n\t"        \
4347    "mul r5, r15 \n\t"         \
4348    "add r22, r0 \n\t"         \
4349    "adc r23, r1 \n\t"         \
4350    "adc r24, r25 \n\t"        \
4351    "mul r6, r14 \n\t"         \
4352    "add r22, r0 \n\t"         \
4353    "adc r23, r1 \n\t"         \
4354    "adc r24, r25 \n\t"        \
4355    "mul r7, r13 \n\t"         \
4356    "add r22, r0 \n\t"         \
4357    "adc r23, r1 \n\t"         \
4358    "adc r24, r25 \n\t"        \
4359    "mul r8, r12 \n\t"         \
4360    "add r22, r0 \n\t"         \
4361    "adc r23, r1 \n\t"         \
4362    "adc r24, r25 \n\t"        \
4363    "ld r0, z \n\t"            \
4364    "add r22, r0 \n\t"         \
4365    "adc r23, r25 \n\t"        \
4366    "adc r24, r25 \n\t"        \
4367    "st z+, r22 \n\t"          \
4368                               \
4369    "ld r9, x+ \n\t"           \
4370    "ldi r22, 0 \n\t"          \
4371    "mul r10, r21 \n\t"        \
4372    "add r23, r0 \n\t"         \
4373    "adc r24, r1 \n\t"         \
4374    "adc r22, r25 \n\t"        \
4375    "mul r11, r20 \n\t"        \
4376    "add r23, r0 \n\t"         \
4377    "adc r24, r1 \n\t"         \
4378    "adc r22, r25 \n\t"        \
4379    "mul r2, r19 \n\t"         \
4380    "add r23, r0 \n\t"         \
4381    "adc r24, r1 \n\t"         \
4382    "adc r22, r25 \n\t"        \
4383    "mul r3, r18 \n\t"         \
4384    "add r23, r0 \n\t"         \
4385    "adc r24, r1 \n\t"         \
4386    "adc r22, r25 \n\t"        \
4387    "mul r4, r17 \n\t"         \
4388    "add r23, r0 \n\t"         \
4389    "adc r24, r1 \n\t"         \
4390    "adc r22, r25 \n\t"        \
4391    "mul r5, r16 \n\t"         \
4392    "add r23, r0 \n\t"         \
4393    "adc r24, r1 \n\t"         \
4394    "adc r22, r25 \n\t"        \
4395    "mul r6, r15 \n\t"         \
4396    "add r23, r0 \n\t"         \
4397    "adc r24, r1 \n\t"         \
4398    "adc r22, r25 \n\t"        \
4399    "mul r7, r14 \n\t"         \
4400    "add r23, r0 \n\t"         \
4401    "adc r24, r1 \n\t"         \
4402    "adc r22, r25 \n\t"        \
4403    "mul r8, r13 \n\t"         \
4404    "add r23, r0 \n\t"         \
4405    "adc r24, r1 \n\t"         \
4406    "adc r22, r25 \n\t"        \
4407    "mul r9, r12 \n\t"         \
4408    "add r23, r0 \n\t"         \
4409    "adc r24, r1 \n\t"         \
4410    "adc r22, r25 \n\t"        \
4411    "ld r0, z \n\t"            \
4412    "add r23, r0 \n\t"         \
4413    "adc r24, r25 \n\t"        \
4414    "adc r22, r25 \n\t"        \
4415    "st z+, r23 \n\t"          \
4416                               \
4417    "ld r10, x+ \n\t"          \
4418    "ldi r23, 0 \n\t"          \
4419    "mul r11, r21 \n\t"        \
4420    "add r24, r0 \n\t"         \
4421    "adc r22, r1 \n\t"         \
4422    "adc r23, r25 \n\t"        \
4423    "mul r2, r20 \n\t"         \
4424    "add r24, r0 \n\t"         \
4425    "adc r22, r1 \n\t"         \
4426    "adc r23, r25 \n\t"        \
4427    "mul r3, r19 \n\t"         \
4428    "add r24, r0 \n\t"         \
4429    "adc r22, r1 \n\t"         \
4430    "adc r23, r25 \n\t"        \
4431    "mul r4, r18 \n\t"         \
4432    "add r24, r0 \n\t"         \
4433    "adc r22, r1 \n\t"         \
4434    "adc r23, r25 \n\t"        \
4435    "mul r5, r17 \n\t"         \
4436    "add r24, r0 \n\t"         \
4437    "adc r22, r1 \n\t"         \
4438    "adc r23, r25 \n\t"        \
4439    "mul r6, r16 \n\t"         \
4440    "add r24, r0 \n\t"         \
4441    "adc r22, r1 \n\t"         \
4442    "adc r23, r25 \n\t"        \
4443    "mul r7, r15 \n\t"         \
4444    "add r24, r0 \n\t"         \
4445    "adc r22, r1 \n\t"         \
4446    "adc r23, r25 \n\t"        \
4447    "mul r8, r14 \n\t"         \
4448    "add r24, r0 \n\t"         \
4449    "adc r22, r1 \n\t"         \
4450    "adc r23, r25 \n\t"        \
4451    "mul r9, r13 \n\t"         \
4452    "add r24, r0 \n\t"         \
4453    "adc r22, r1 \n\t"         \
4454    "adc r23, r25 \n\t"        \
4455    "mul r10, r12 \n\t"        \
4456    "add r24, r0 \n\t"         \
4457    "adc r22, r1 \n\t"         \
4458    "adc r23, r25 \n\t"        \
4459    "ld r0, z \n\t"            \
4460    "add r24, r0 \n\t"         \
4461    "adc r22, r25 \n\t"        \
4462    "adc r23, r25 \n\t"        \
4463    "st z+, r24 \n\t"          \
4464                               \
4465    "ld r11, x+ \n\t"          \
4466    "ldi r24, 0 \n\t"          \
4467    "mul r2, r21 \n\t"         \
4468    "add r22, r0 \n\t"         \
4469    "adc r23, r1 \n\t"         \
4470    "adc r24, r25 \n\t"        \
4471    "mul r3, r20 \n\t"         \
4472    "add r22, r0 \n\t"         \
4473    "adc r23, r1 \n\t"         \
4474    "adc r24, r25 \n\t"        \
4475    "mul r4, r19 \n\t"         \
4476    "add r22, r0 \n\t"         \
4477    "adc r23, r1 \n\t"         \
4478    "adc r24, r25 \n\t"        \
4479    "mul r5, r18 \n\t"         \
4480    "add r22, r0 \n\t"         \
4481    "adc r23, r1 \n\t"         \
4482    "adc r24, r25 \n\t"        \
4483    "mul r6, r17 \n\t"         \
4484    "add r22, r0 \n\t"         \
4485    "adc r23, r1 \n\t"         \
4486    "adc r24, r25 \n\t"        \
4487    "mul r7, r16 \n\t"         \
4488    "add r22, r0 \n\t"         \
4489    "adc r23, r1 \n\t"         \
4490    "adc r24, r25 \n\t"        \
4491    "mul r8, r15 \n\t"         \
4492    "add r22, r0 \n\t"         \
4493    "adc r23, r1 \n\t"         \
4494    "adc r24, r25 \n\t"        \
4495    "mul r9, r14 \n\t"         \
4496    "add r22, r0 \n\t"         \
4497    "adc r23, r1 \n\t"         \
4498    "adc r24, r25 \n\t"        \
4499    "mul r10, r13 \n\t"        \
4500    "add r22, r0 \n\t"         \
4501    "adc r23, r1 \n\t"         \
4502    "adc r24, r25 \n\t"        \
4503    "mul r11, r12 \n\t"        \
4504    "add r22, r0 \n\t"         \
4505    "adc r23, r1 \n\t"         \
4506    "adc r24, r25 \n\t"        \
4507    "ld r0, z \n\t"            \
4508    "add r22, r0 \n\t"         \
4509    "adc r23, r25 \n\t"        \
4510    "adc r24, r25 \n\t"        \
4511    "st z+, r22 \n\t"          \
4512                               \
4513    "ld r2, x+ \n\t"           \
4514    "ldi r22, 0 \n\t"          \
4515    "mul r3, r21 \n\t"         \
4516    "add r23, r0 \n\t"         \
4517    "adc r24, r1 \n\t"         \
4518    "adc r22, r25 \n\t"        \
4519    "mul r4, r20 \n\t"         \
4520    "add r23, r0 \n\t"         \
4521    "adc r24, r1 \n\t"         \
4522    "adc r22, r25 \n\t"        \
4523    "mul r5, r19 \n\t"         \
4524    "add r23, r0 \n\t"         \
4525    "adc r24, r1 \n\t"         \
4526    "adc r22, r25 \n\t"        \
4527    "mul r6, r18 \n\t"         \
4528    "add r23, r0 \n\t"         \
4529    "adc r24, r1 \n\t"         \
4530    "adc r22, r25 \n\t"        \
4531    "mul r7, r17 \n\t"         \
4532    "add r23, r0 \n\t"         \
4533    "adc r24, r1 \n\t"         \
4534    "adc r22, r25 \n\t"        \
4535    "mul r8, r16 \n\t"         \
4536    "add r23, r0 \n\t"         \
4537    "adc r24, r1 \n\t"         \
4538    "adc r22, r25 \n\t"        \
4539    "mul r9, r15 \n\t"         \
4540    "add r23, r0 \n\t"         \
4541    "adc r24, r1 \n\t"         \
4542    "adc r22, r25 \n\t"        \
4543    "mul r10, r14 \n\t"        \
4544    "add r23, r0 \n\t"         \
4545    "adc r24, r1 \n\t"         \
4546    "adc r22, r25 \n\t"        \
4547    "mul r11, r13 \n\t"        \
4548    "add r23, r0 \n\t"         \
4549    "adc r24, r1 \n\t"         \
4550    "adc r22, r25 \n\t"        \
4551    "mul r2, r12 \n\t"         \
4552    "add r23, r0 \n\t"         \
4553    "adc r24, r1 \n\t"         \
4554    "adc r22, r25 \n\t"        \
4555    "ld r0, z \n\t"            \
4556    "add r23, r0 \n\t"         \
4557    "adc r24, r25 \n\t"        \
4558    "adc r22, r25 \n\t"        \
4559    "st z+, r23 \n\t"          \
4560                               \
4561    "ld r3, x+ \n\t"           \
4562    "ldi r23, 0 \n\t"          \
4563    "mul r4, r21 \n\t"         \
4564    "add r24, r0 \n\t"         \
4565    "adc r22, r1 \n\t"         \
4566    "adc r23, r25 \n\t"        \
4567    "mul r5, r20 \n\t"         \
4568    "add r24, r0 \n\t"         \
4569    "adc r22, r1 \n\t"         \
4570    "adc r23, r25 \n\t"        \
4571    "mul r6, r19 \n\t"         \
4572    "add r24, r0 \n\t"         \
4573    "adc r22, r1 \n\t"         \
4574    "adc r23, r25 \n\t"        \
4575    "mul r7, r18 \n\t"         \
4576    "add r24, r0 \n\t"         \
4577    "adc r22, r1 \n\t"         \
4578    "adc r23, r25 \n\t"        \
4579    "mul r8, r17 \n\t"         \
4580    "add r24, r0 \n\t"         \
4581    "adc r22, r1 \n\t"         \
4582    "adc r23, r25 \n\t"        \
4583    "mul r9, r16 \n\t"         \
4584    "add r24, r0 \n\t"         \
4585    "adc r22, r1 \n\t"         \
4586    "adc r23, r25 \n\t"        \
4587    "mul r10, r15 \n\t"        \
4588    "add r24, r0 \n\t"         \
4589    "adc r22, r1 \n\t"         \
4590    "adc r23, r25 \n\t"        \
4591    "mul r11, r14 \n\t"        \
4592    "add r24, r0 \n\t"         \
4593    "adc r22, r1 \n\t"         \
4594    "adc r23, r25 \n\t"        \
4595    "mul r2, r13 \n\t"         \
4596    "add r24, r0 \n\t"         \
4597    "adc r22, r1 \n\t"         \
4598    "adc r23, r25 \n\t"        \
4599    "mul r3, r12 \n\t"         \
4600    "add r24, r0 \n\t"         \
4601    "adc r22, r1 \n\t"         \
4602    "adc r23, r25 \n\t"        \
4603    "ld r0, z \n\t"            \
4604    "add r24, r0 \n\t"         \
4605    "adc r22, r25 \n\t"        \
4606    "adc r23, r25 \n\t"        \
4607    "st z+, r24 \n\t"          \
4608                               \
4609    "ld r4, x+ \n\t"           \
4610    "ldi r24, 0 \n\t"          \
4611    "mul r5, r21 \n\t"         \
4612    "add r22, r0 \n\t"         \
4613    "adc r23, r1 \n\t"         \
4614    "adc r24, r25 \n\t"        \
4615    "mul r6, r20 \n\t"         \
4616    "add r22, r0 \n\t"         \
4617    "adc r23, r1 \n\t"         \
4618    "adc r24, r25 \n\t"        \
4619    "mul r7, r19 \n\t"         \
4620    "add r22, r0 \n\t"         \
4621    "adc r23, r1 \n\t"         \
4622    "adc r24, r25 \n\t"        \
4623    "mul r8, r18 \n\t"         \
4624    "add r22, r0 \n\t"         \
4625    "adc r23, r1 \n\t"         \
4626    "adc r24, r25 \n\t"        \
4627    "mul r9, r17 \n\t"         \
4628    "add r22, r0 \n\t"         \
4629    "adc r23, r1 \n\t"         \
4630    "adc r24, r25 \n\t"        \
4631    "mul r10, r16 \n\t"        \
4632    "add r22, r0 \n\t"         \
4633    "adc r23, r1 \n\t"         \
4634    "adc r24, r25 \n\t"        \
4635    "mul r11, r15 \n\t"        \
4636    "add r22, r0 \n\t"         \
4637    "adc r23, r1 \n\t"         \
4638    "adc r24, r25 \n\t"        \
4639    "mul r2, r14 \n\t"         \
4640    "add r22, r0 \n\t"         \
4641    "adc r23, r1 \n\t"         \
4642    "adc r24, r25 \n\t"        \
4643    "mul r3, r13 \n\t"         \
4644    "add r22, r0 \n\t"         \
4645    "adc r23, r1 \n\t"         \
4646    "adc r24, r25 \n\t"        \
4647    "mul r4, r12 \n\t"         \
4648    "add r22, r0 \n\t"         \
4649    "adc r23, r1 \n\t"         \
4650    "adc r24, r25 \n\t"        \
4651    "ld r0, z \n\t"            \
4652    "add r22, r0 \n\t"         \
4653    "adc r23, r25 \n\t"        \
4654    "adc r24, r25 \n\t"        \
4655    "st z+, r22 \n\t"          \
4656                               \
4657    "ld r5, x+ \n\t"           \
4658    "ldi r22, 0 \n\t"          \
4659    "mul r6, r21 \n\t"         \
4660    "add r23, r0 \n\t"         \
4661    "adc r24, r1 \n\t"         \
4662    "adc r22, r25 \n\t"        \
4663    "mul r7, r20 \n\t"         \
4664    "add r23, r0 \n\t"         \
4665    "adc r24, r1 \n\t"         \
4666    "adc r22, r25 \n\t"        \
4667    "mul r8, r19 \n\t"         \
4668    "add r23, r0 \n\t"         \
4669    "adc r24, r1 \n\t"         \
4670    "adc r22, r25 \n\t"        \
4671    "mul r9, r18 \n\t"         \
4672    "add r23, r0 \n\t"         \
4673    "adc r24, r1 \n\t"         \
4674    "adc r22, r25 \n\t"        \
4675    "mul r10, r17 \n\t"        \
4676    "add r23, r0 \n\t"         \
4677    "adc r24, r1 \n\t"         \
4678    "adc r22, r25 \n\t"        \
4679    "mul r11, r16 \n\t"        \
4680    "add r23, r0 \n\t"         \
4681    "adc r24, r1 \n\t"         \
4682    "adc r22, r25 \n\t"        \
4683    "mul r2, r15 \n\t"         \
4684    "add r23, r0 \n\t"         \
4685    "adc r24, r1 \n\t"         \
4686    "adc r22, r25 \n\t"        \
4687    "mul r3, r14 \n\t"         \
4688    "add r23, r0 \n\t"         \
4689    "adc r24, r1 \n\t"         \
4690    "adc r22, r25 \n\t"        \
4691    "mul r4, r13 \n\t"         \
4692    "add r23, r0 \n\t"         \
4693    "adc r24, r1 \n\t"         \
4694    "adc r22, r25 \n\t"        \
4695    "mul r5, r12 \n\t"         \
4696    "add r23, r0 \n\t"         \
4697    "adc r24, r1 \n\t"         \
4698    "adc r22, r25 \n\t"        \
4699    "ld r0, z \n\t"            \
4700    "add r23, r0 \n\t"         \
4701    "adc r24, r25 \n\t"        \
4702    "adc r22, r25 \n\t"        \
4703    "st z+, r23 \n\t"          \
4704                               \
4705    "ld r12, y+ \n\t"          \
4706    "ldi r23, 0 \n\t"          \
4707    "mul r6, r12 \n\t"         \
4708    "add r24, r0 \n\t"         \
4709    "adc r22, r1 \n\t"         \
4710    "adc r23, r25 \n\t"        \
4711    "mul r7, r21 \n\t"         \
4712    "add r24, r0 \n\t"         \
4713    "adc r22, r1 \n\t"         \
4714    "adc r23, r25 \n\t"        \
4715    "mul r8, r20 \n\t"         \
4716    "add r24, r0 \n\t"         \
4717    "adc r22, r1 \n\t"         \
4718    "adc r23, r25 \n\t"        \
4719    "mul r9, r19 \n\t"         \
4720    "add r24, r0 \n\t"         \
4721    "adc r22, r1 \n\t"         \
4722    "adc r23, r25 \n\t"        \
4723    "mul r10, r18 \n\t"        \
4724    "add r24, r0 \n\t"         \
4725    "adc r22, r1 \n\t"         \
4726    "adc r23, r25 \n\t"        \
4727    "mul r11, r17 \n\t"        \
4728    "add r24, r0 \n\t"         \
4729    "adc r22, r1 \n\t"         \
4730    "adc r23, r25 \n\t"        \
4731    "mul r2, r16 \n\t"         \
4732    "add r24, r0 \n\t"         \
4733    "adc r22, r1 \n\t"         \
4734    "adc r23, r25 \n\t"        \
4735    "mul r3, r15 \n\t"         \
4736    "add r24, r0 \n\t"         \
4737    "adc r22, r1 \n\t"         \
4738    "adc r23, r25 \n\t"        \
4739    "mul r4, r14 \n\t"         \
4740    "add r24, r0 \n\t"         \
4741    "adc r22, r1 \n\t"         \
4742    "adc r23, r25 \n\t"        \
4743    "mul r5, r13 \n\t"         \
4744    "add r24, r0 \n\t"         \
4745    "adc r22, r1 \n\t"         \
4746    "adc r23, r25 \n\t"        \
4747    "ld r0, z \n\t"            \
4748    "add r24, r0 \n\t"         \
4749    "adc r22, r25 \n\t"        \
4750    "adc r23, r25 \n\t"        \
4751    "st z+, r24 \n\t"          \
4752                               \
4753    "ld r13, y+ \n\t"          \
4754    "ldi r24, 0 \n\t"          \
4755    "mul r6, r13 \n\t"         \
4756    "add r22, r0 \n\t"         \
4757    "adc r23, r1 \n\t"         \
4758    "adc r24, r25 \n\t"        \
4759    "mul r7, r12 \n\t"         \
4760    "add r22, r0 \n\t"         \
4761    "adc r23, r1 \n\t"         \
4762    "adc r24, r25 \n\t"        \
4763    "mul r8, r21 \n\t"         \
4764    "add r22, r0 \n\t"         \
4765    "adc r23, r1 \n\t"         \
4766    "adc r24, r25 \n\t"        \
4767    "mul r9, r20 \n\t"         \
4768    "add r22, r0 \n\t"         \
4769    "adc r23, r1 \n\t"         \
4770    "adc r24, r25 \n\t"        \
4771    "mul r10, r19 \n\t"        \
4772    "add r22, r0 \n\t"         \
4773    "adc r23, r1 \n\t"         \
4774    "adc r24, r25 \n\t"        \
4775    "mul r11, r18 \n\t"        \
4776    "add r22, r0 \n\t"         \
4777    "adc r23, r1 \n\t"         \
4778    "adc r24, r25 \n\t"        \
4779    "mul r2, r17 \n\t"         \
4780    "add r22, r0 \n\t"         \
4781    "adc r23, r1 \n\t"         \
4782    "adc r24, r25 \n\t"        \
4783    "mul r3, r16 \n\t"         \
4784    "add r22, r0 \n\t"         \
4785    "adc r23, r1 \n\t"         \
4786    "adc r24, r25 \n\t"        \
4787    "mul r4, r15 \n\t"         \
4788    "add r22, r0 \n\t"         \
4789    "adc r23, r1 \n\t"         \
4790    "adc r24, r25 \n\t"        \
4791    "mul r5, r14 \n\t"         \
4792    "add r22, r0 \n\t"         \
4793    "adc r23, r1 \n\t"         \
4794    "adc r24, r25 \n\t"        \
4795    "ld r0, z \n\t"            \
4796    "add r22, r0 \n\t"         \
4797    "adc r23, r25 \n\t"        \
4798    "adc r24, r25 \n\t"        \
4799    "st z+, r22 \n\t"          \
4800                               \
4801    "ld r14, y+ \n\t"          \
4802    "ldi r22, 0 \n\t"          \
4803    "mul r6, r14 \n\t"         \
4804    "add r23, r0 \n\t"         \
4805    "adc r24, r1 \n\t"         \
4806    "adc r22, r25 \n\t"        \
4807    "mul r7, r13 \n\t"         \
4808    "add r23, r0 \n\t"         \
4809    "adc r24, r1 \n\t"         \
4810    "adc r22, r25 \n\t"        \
4811    "mul r8, r12 \n\t"         \
4812    "add r23, r0 \n\t"         \
4813    "adc r24, r1 \n\t"         \
4814    "adc r22, r25 \n\t"        \
4815    "mul r9, r21 \n\t"         \
4816    "add r23, r0 \n\t"         \
4817    "adc r24, r1 \n\t"         \
4818    "adc r22, r25 \n\t"        \
4819    "mul r10, r20 \n\t"        \
4820    "add r23, r0 \n\t"         \
4821    "adc r24, r1 \n\t"         \
4822    "adc r22, r25 \n\t"        \
4823    "mul r11, r19 \n\t"        \
4824    "add r23, r0 \n\t"         \
4825    "adc r24, r1 \n\t"         \
4826    "adc r22, r25 \n\t"        \
4827    "mul r2, r18 \n\t"         \
4828    "add r23, r0 \n\t"         \
4829    "adc r24, r1 \n\t"         \
4830    "adc r22, r25 \n\t"        \
4831    "mul r3, r17 \n\t"         \
4832    "add r23, r0 \n\t"         \
4833    "adc r24, r1 \n\t"         \
4834    "adc r22, r25 \n\t"        \
4835    "mul r4, r16 \n\t"         \
4836    "add r23, r0 \n\t"         \
4837    "adc r24, r1 \n\t"         \
4838    "adc r22, r25 \n\t"        \
4839    "mul r5, r15 \n\t"         \
4840    "add r23, r0 \n\t"         \
4841    "adc r24, r1 \n\t"         \
4842    "adc r22, r25 \n\t"        \
4843    "ld r0, z \n\t"            \
4844    "add r23, r0 \n\t"         \
4845    "adc r24, r25 \n\t"        \
4846    "adc r22, r25 \n\t"        \
4847    "st z+, r23 \n\t"          \
4848                               \
4849    "ld r15, y+ \n\t"          \
4850    "ldi r23, 0 \n\t"          \
4851    "mul r6, r15 \n\t"         \
4852    "add r24, r0 \n\t"         \
4853    "adc r22, r1 \n\t"         \
4854    "adc r23, r25 \n\t"        \
4855    "mul r7, r14 \n\t"         \
4856    "add r24, r0 \n\t"         \
4857    "adc r22, r1 \n\t"         \
4858    "adc r23, r25 \n\t"        \
4859    "mul r8, r13 \n\t"         \
4860    "add r24, r0 \n\t"         \
4861    "adc r22, r1 \n\t"         \
4862    "adc r23, r25 \n\t"        \
4863    "mul r9, r12 \n\t"         \
4864    "add r24, r0 \n\t"         \
4865    "adc r22, r1 \n\t"         \
4866    "adc r23, r25 \n\t"        \
4867    "mul r10, r21 \n\t"        \
4868    "add r24, r0 \n\t"         \
4869    "adc r22, r1 \n\t"         \
4870    "adc r23, r25 \n\t"        \
4871    "mul r11, r20 \n\t"        \
4872    "add r24, r0 \n\t"         \
4873    "adc r22, r1 \n\t"         \
4874    "adc r23, r25 \n\t"        \
4875    "mul r2, r19 \n\t"         \
4876    "add r24, r0 \n\t"         \
4877    "adc r22, r1 \n\t"         \
4878    "adc r23, r25 \n\t"        \
4879    "mul r3, r18 \n\t"         \
4880    "add r24, r0 \n\t"         \
4881    "adc r22, r1 \n\t"         \
4882    "adc r23, r25 \n\t"        \
4883    "mul r4, r17 \n\t"         \
4884    "add r24, r0 \n\t"         \
4885    "adc r22, r1 \n\t"         \
4886    "adc r23, r25 \n\t"        \
4887    "mul r5, r16 \n\t"         \
4888    "add r24, r0 \n\t"         \
4889    "adc r22, r1 \n\t"         \
4890    "adc r23, r25 \n\t"        \
4891    "ld r0, z \n\t"            \
4892    "add r24, r0 \n\t"         \
4893    "adc r22, r25 \n\t"        \
4894    "adc r23, r25 \n\t"        \
4895    "st z+, r24 \n\t"          \
4896                               \
4897    "ld r16, y+ \n\t"          \
4898    "ldi r24, 0 \n\t"          \
4899    "mul r6, r16 \n\t"         \
4900    "add r22, r0 \n\t"         \
4901    "adc r23, r1 \n\t"         \
4902    "adc r24, r25 \n\t"        \
4903    "mul r7, r15 \n\t"         \
4904    "add r22, r0 \n\t"         \
4905    "adc r23, r1 \n\t"         \
4906    "adc r24, r25 \n\t"        \
4907    "mul r8, r14 \n\t"         \
4908    "add r22, r0 \n\t"         \
4909    "adc r23, r1 \n\t"         \
4910    "adc r24, r25 \n\t"        \
4911    "mul r9, r13 \n\t"         \
4912    "add r22, r0 \n\t"         \
4913    "adc r23, r1 \n\t"         \
4914    "adc r24, r25 \n\t"        \
4915    "mul r10, r12 \n\t"        \
4916    "add r22, r0 \n\t"         \
4917    "adc r23, r1 \n\t"         \
4918    "adc r24, r25 \n\t"        \
4919    "mul r11, r21 \n\t"        \
4920    "add r22, r0 \n\t"         \
4921    "adc r23, r1 \n\t"         \
4922    "adc r24, r25 \n\t"        \
4923    "mul r2, r20 \n\t"         \
4924    "add r22, r0 \n\t"         \
4925    "adc r23, r1 \n\t"         \
4926    "adc r24, r25 \n\t"        \
4927    "mul r3, r19 \n\t"         \
4928    "add r22, r0 \n\t"         \
4929    "adc r23, r1 \n\t"         \
4930    "adc r24, r25 \n\t"        \
4931    "mul r4, r18 \n\t"         \
4932    "add r22, r0 \n\t"         \
4933    "adc r23, r1 \n\t"         \
4934    "adc r24, r25 \n\t"        \
4935    "mul r5, r17 \n\t"         \
4936    "add r22, r0 \n\t"         \
4937    "adc r23, r1 \n\t"         \
4938    "adc r24, r25 \n\t"        \
4939    "ld r0, z \n\t"            \
4940    "add r22, r0 \n\t"         \
4941    "adc r23, r25 \n\t"        \
4942    "adc r24, r25 \n\t"        \
4943    "st z+, r22 \n\t"          \
4944                               \
4945    "ld r17, y+ \n\t"          \
4946    "ldi r22, 0 \n\t"          \
4947    "mul r6, r17 \n\t"         \
4948    "add r23, r0 \n\t"         \
4949    "adc r24, r1 \n\t"         \
4950    "adc r22, r25 \n\t"        \
4951    "mul r7, r16 \n\t"         \
4952    "add r23, r0 \n\t"         \
4953    "adc r24, r1 \n\t"         \
4954    "adc r22, r25 \n\t"        \
4955    "mul r8, r15 \n\t"         \
4956    "add r23, r0 \n\t"         \
4957    "adc r24, r1 \n\t"         \
4958    "adc r22, r25 \n\t"        \
4959    "mul r9, r14 \n\t"         \
4960    "add r23, r0 \n\t"         \
4961    "adc r24, r1 \n\t"         \
4962    "adc r22, r25 \n\t"        \
4963    "mul r10, r13 \n\t"        \
4964    "add r23, r0 \n\t"         \
4965    "adc r24, r1 \n\t"         \
4966    "adc r22, r25 \n\t"        \
4967    "mul r11, r12 \n\t"        \
4968    "add r23, r0 \n\t"         \
4969    "adc r24, r1 \n\t"         \
4970    "adc r22, r25 \n\t"        \
4971    "mul r2, r21 \n\t"         \
4972    "add r23, r0 \n\t"         \
4973    "adc r24, r1 \n\t"         \
4974    "adc r22, r25 \n\t"        \
4975    "mul r3, r20 \n\t"         \
4976    "add r23, r0 \n\t"         \
4977    "adc r24, r1 \n\t"         \
4978    "adc r22, r25 \n\t"        \
4979    "mul r4, r19 \n\t"         \
4980    "add r23, r0 \n\t"         \
4981    "adc r24, r1 \n\t"         \
4982    "adc r22, r25 \n\t"        \
4983    "mul r5, r18 \n\t"         \
4984    "add r23, r0 \n\t"         \
4985    "adc r24, r1 \n\t"         \
4986    "adc r22, r25 \n\t"        \
4987    "ld r0, z \n\t"            \
4988    "add r23, r0 \n\t"         \
4989    "adc r24, r25 \n\t"        \
4990    "adc r22, r25 \n\t"        \
4991    "st z+, r23 \n\t"          \
4992                               \
4993    "ld r18, y+ \n\t"          \
4994    "ldi r23, 0 \n\t"          \
4995    "mul r6, r18 \n\t"         \
4996    "add r24, r0 \n\t"         \
4997    "adc r22, r1 \n\t"         \
4998    "adc r23, r25 \n\t"        \
4999    "mul r7, r17 \n\t"         \
5000    "add r24, r0 \n\t"         \
5001    "adc r22, r1 \n\t"         \
5002    "adc r23, r25 \n\t"        \
5003    "mul r8, r16 \n\t"         \
5004    "add r24, r0 \n\t"         \
5005    "adc r22, r1 \n\t"         \
5006    "adc r23, r25 \n\t"        \
5007    "mul r9, r15 \n\t"         \
5008    "add r24, r0 \n\t"         \
5009    "adc r22, r1 \n\t"         \
5010    "adc r23, r25 \n\t"        \
5011    "mul r10, r14 \n\t"        \
5012    "add r24, r0 \n\t"         \
5013    "adc r22, r1 \n\t"         \
5014    "adc r23, r25 \n\t"        \
5015    "mul r11, r13 \n\t"        \
5016    "add r24, r0 \n\t"         \
5017    "adc r22, r1 \n\t"         \
5018    "adc r23, r25 \n\t"        \
5019    "mul r2, r12 \n\t"         \
5020    "add r24, r0 \n\t"         \
5021    "adc r22, r1 \n\t"         \
5022    "adc r23, r25 \n\t"        \
5023    "mul r3, r21 \n\t"         \
5024    "add r24, r0 \n\t"         \
5025    "adc r22, r1 \n\t"         \
5026    "adc r23, r25 \n\t"        \
5027    "mul r4, r20 \n\t"         \
5028    "add r24, r0 \n\t"         \
5029    "adc r22, r1 \n\t"         \
5030    "adc r23, r25 \n\t"        \
5031    "mul r5, r19 \n\t"         \
5032    "add r24, r0 \n\t"         \
5033    "adc r22, r1 \n\t"         \
5034    "adc r23, r25 \n\t"        \
5035    "ld r0, z \n\t"            \
5036    "add r24, r0 \n\t"         \
5037    "adc r22, r25 \n\t"        \
5038    "adc r23, r25 \n\t"        \
5039    "st z+, r24 \n\t"          \
5040                               \
5041    "ld r19, y+ \n\t"          \
5042    "ldi r24, 0 \n\t"          \
5043    "mul r6, r19 \n\t"         \
5044    "add r22, r0 \n\t"         \
5045    "adc r23, r1 \n\t"         \
5046    "adc r24, r25 \n\t"        \
5047    "mul r7, r18 \n\t"         \
5048    "add r22, r0 \n\t"         \
5049    "adc r23, r1 \n\t"         \
5050    "adc r24, r25 \n\t"        \
5051    "mul r8, r17 \n\t"         \
5052    "add r22, r0 \n\t"         \
5053    "adc r23, r1 \n\t"         \
5054    "adc r24, r25 \n\t"        \
5055    "mul r9, r16 \n\t"         \
5056    "add r22, r0 \n\t"         \
5057    "adc r23, r1 \n\t"         \
5058    "adc r24, r25 \n\t"        \
5059    "mul r10, r15 \n\t"        \
5060    "add r22, r0 \n\t"         \
5061    "adc r23, r1 \n\t"         \
5062    "adc r24, r25 \n\t"        \
5063    "mul r11, r14 \n\t"        \
5064    "add r22, r0 \n\t"         \
5065    "adc r23, r1 \n\t"         \
5066    "adc r24, r25 \n\t"        \
5067    "mul r2, r13 \n\t"         \
5068    "add r22, r0 \n\t"         \
5069    "adc r23, r1 \n\t"         \
5070    "adc r24, r25 \n\t"        \
5071    "mul r3, r12 \n\t"         \
5072    "add r22, r0 \n\t"         \
5073    "adc r23, r1 \n\t"         \
5074    "adc r24, r25 \n\t"        \
5075    "mul r4, r21 \n\t"         \
5076    "add r22, r0 \n\t"         \
5077    "adc r23, r1 \n\t"         \
5078    "adc r24, r25 \n\t"        \
5079    "mul r5, r20 \n\t"         \
5080    "add r22, r0 \n\t"         \
5081    "adc r23, r1 \n\t"         \
5082    "adc r24, r25 \n\t"        \
5083    "ld r0, z \n\t"            \
5084    "add r22, r0 \n\t"         \
5085    "adc r23, r25 \n\t"        \
5086    "adc r24, r25 \n\t"        \
5087    "st z+, r22 \n\t"          \
5088                               \
5089    "ld r20, y+ \n\t"          \
5090    "ldi r22, 0 \n\t"          \
5091    "mul r6, r20 \n\t"         \
5092    "add r23, r0 \n\t"         \
5093    "adc r24, r1 \n\t"         \
5094    "adc r22, r25 \n\t"        \
5095    "mul r7, r19 \n\t"         \
5096    "add r23, r0 \n\t"         \
5097    "adc r24, r1 \n\t"         \
5098    "adc r22, r25 \n\t"        \
5099    "mul r8, r18 \n\t"         \
5100    "add r23, r0 \n\t"         \
5101    "adc r24, r1 \n\t"         \
5102    "adc r22, r25 \n\t"        \
5103    "mul r9, r17 \n\t"         \
5104    "add r23, r0 \n\t"         \
5105    "adc r24, r1 \n\t"         \
5106    "adc r22, r25 \n\t"        \
5107    "mul r10, r16 \n\t"        \
5108    "add r23, r0 \n\t"         \
5109    "adc r24, r1 \n\t"         \
5110    "adc r22, r25 \n\t"        \
5111    "mul r11, r15 \n\t"        \
5112    "add r23, r0 \n\t"         \
5113    "adc r24, r1 \n\t"         \
5114    "adc r22, r25 \n\t"        \
5115    "mul r2, r14 \n\t"         \
5116    "add r23, r0 \n\t"         \
5117    "adc r24, r1 \n\t"         \
5118    "adc r22, r25 \n\t"        \
5119    "mul r3, r13 \n\t"         \
5120    "add r23, r0 \n\t"         \
5121    "adc r24, r1 \n\t"         \
5122    "adc r22, r25 \n\t"        \
5123    "mul r4, r12 \n\t"         \
5124    "add r23, r0 \n\t"         \
5125    "adc r24, r1 \n\t"         \
5126    "adc r22, r25 \n\t"        \
5127    "mul r5, r21 \n\t"         \
5128    "add r23, r0 \n\t"         \
5129    "adc r24, r1 \n\t"         \
5130    "adc r22, r25 \n\t"        \
5131    "ld r0, z \n\t"            \
5132    "add r23, r0 \n\t"         \
5133    "adc r24, r25 \n\t"        \
5134    "adc r22, r25 \n\t"        \
5135    "st z+, r23 \n\t"          \
5136                               \
5137    "ld r21, y+ \n\t"          \
5138    "ldi r23, 0 \n\t"          \
5139    "mul r6, r21 \n\t"         \
5140    "add r24, r0 \n\t"         \
5141    "adc r22, r1 \n\t"         \
5142    "adc r23, r25 \n\t"        \
5143    "mul r7, r20 \n\t"         \
5144    "add r24, r0 \n\t"         \
5145    "adc r22, r1 \n\t"         \
5146    "adc r23, r25 \n\t"        \
5147    "mul r8, r19 \n\t"         \
5148    "add r24, r0 \n\t"         \
5149    "adc r22, r1 \n\t"         \
5150    "adc r23, r25 \n\t"        \
5151    "mul r9, r18 \n\t"         \
5152    "add r24, r0 \n\t"         \
5153    "adc r22, r1 \n\t"         \
5154    "adc r23, r25 \n\t"        \
5155    "mul r10, r17 \n\t"        \
5156    "add r24, r0 \n\t"         \
5157    "adc r22, r1 \n\t"         \
5158    "adc r23, r25 \n\t"        \
5159    "mul r11, r16 \n\t"        \
5160    "add r24, r0 \n\t"         \
5161    "adc r22, r1 \n\t"         \
5162    "adc r23, r25 \n\t"        \
5163    "mul r2, r15 \n\t"         \
5164    "add r24, r0 \n\t"         \
5165    "adc r22, r1 \n\t"         \
5166    "adc r23, r25 \n\t"        \
5167    "mul r3, r14 \n\t"         \
5168    "add r24, r0 \n\t"         \
5169    "adc r22, r1 \n\t"         \
5170    "adc r23, r25 \n\t"        \
5171    "mul r4, r13 \n\t"         \
5172    "add r24, r0 \n\t"         \
5173    "adc r22, r1 \n\t"         \
5174    "adc r23, r25 \n\t"        \
5175    "mul r5, r12 \n\t"         \
5176    "add r24, r0 \n\t"         \
5177    "adc r22, r1 \n\t"         \
5178    "adc r23, r25 \n\t"        \
5179    "ld r0, z \n\t"            \
5180    "add r24, r0 \n\t"         \
5181    "adc r22, r25 \n\t"        \
5182    "adc r23, r25 \n\t"        \
5183    "st z+, r24 \n\t"          \
5184                               \
5185    "ld r12, y+ \n\t"          \
5186    "ldi r24, 0 \n\t"          \
5187    "mul r6, r12 \n\t"         \
5188    "add r22, r0 \n\t"         \
5189    "adc r23, r1 \n\t"         \
5190    "adc r24, r25 \n\t"        \
5191    "mul r7, r21 \n\t"         \
5192    "add r22, r0 \n\t"         \
5193    "adc r23, r1 \n\t"         \
5194    "adc r24, r25 \n\t"        \
5195    "mul r8, r20 \n\t"         \
5196    "add r22, r0 \n\t"         \
5197    "adc r23, r1 \n\t"         \
5198    "adc r24, r25 \n\t"        \
5199    "mul r9, r19 \n\t"         \
5200    "add r22, r0 \n\t"         \
5201    "adc r23, r1 \n\t"         \
5202    "adc r24, r25 \n\t"        \
5203    "mul r10, r18 \n\t"        \
5204    "add r22, r0 \n\t"         \
5205    "adc r23, r1 \n\t"         \
5206    "adc r24, r25 \n\t"        \
5207    "mul r11, r17 \n\t"        \
5208    "add r22, r0 \n\t"         \
5209    "adc r23, r1 \n\t"         \
5210    "adc r24, r25 \n\t"        \
5211    "mul r2, r16 \n\t"         \
5212    "add r22, r0 \n\t"         \
5213    "adc r23, r1 \n\t"         \
5214    "adc r24, r25 \n\t"        \
5215    "mul r3, r15 \n\t"         \
5216    "add r22, r0 \n\t"         \
5217    "adc r23, r1 \n\t"         \
5218    "adc r24, r25 \n\t"        \
5219    "mul r4, r14 \n\t"         \
5220    "add r22, r0 \n\t"         \
5221    "adc r23, r1 \n\t"         \
5222    "adc r24, r25 \n\t"        \
5223    "mul r5, r13 \n\t"         \
5224    "add r22, r0 \n\t"         \
5225    "adc r23, r1 \n\t"         \
5226    "adc r24, r25 \n\t"        \
5227    "ld r0, z \n\t"            \
5228    "add r22, r0 \n\t"         \
5229    "adc r23, r25 \n\t"        \
5230    "adc r24, r25 \n\t"        \
5231    "st z+, r22 \n\t"          \
5232                               \
5233    "ld r13, y+ \n\t"          \
5234    "ldi r22, 0 \n\t"          \
5235    "mul r6, r13 \n\t"         \
5236    "add r23, r0 \n\t"         \
5237    "adc r24, r1 \n\t"         \
5238    "adc r22, r25 \n\t"        \
5239    "mul r7, r12 \n\t"         \
5240    "add r23, r0 \n\t"         \
5241    "adc r24, r1 \n\t"         \
5242    "adc r22, r25 \n\t"        \
5243    "mul r8, r21 \n\t"         \
5244    "add r23, r0 \n\t"         \
5245    "adc r24, r1 \n\t"         \
5246    "adc r22, r25 \n\t"        \
5247    "mul r9, r20 \n\t"         \
5248    "add r23, r0 \n\t"         \
5249    "adc r24, r1 \n\t"         \
5250    "adc r22, r25 \n\t"        \
5251    "mul r10, r19 \n\t"        \
5252    "add r23, r0 \n\t"         \
5253    "adc r24, r1 \n\t"         \
5254    "adc r22, r25 \n\t"        \
5255    "mul r11, r18 \n\t"        \
5256    "add r23, r0 \n\t"         \
5257    "adc r24, r1 \n\t"         \
5258    "adc r22, r25 \n\t"        \
5259    "mul r2, r17 \n\t"         \
5260    "add r23, r0 \n\t"         \
5261    "adc r24, r1 \n\t"         \
5262    "adc r22, r25 \n\t"        \
5263    "mul r3, r16 \n\t"         \
5264    "add r23, r0 \n\t"         \
5265    "adc r24, r1 \n\t"         \
5266    "adc r22, r25 \n\t"        \
5267    "mul r4, r15 \n\t"         \
5268    "add r23, r0 \n\t"         \
5269    "adc r24, r1 \n\t"         \
5270    "adc r22, r25 \n\t"        \
5271    "mul r5, r14 \n\t"         \
5272    "add r23, r0 \n\t"         \
5273    "adc r24, r1 \n\t"         \
5274    "adc r22, r25 \n\t"        \
5275    "ld r0, z \n\t"            \
5276    "add r23, r0 \n\t"         \
5277    "adc r24, r25 \n\t"        \
5278    "adc r22, r25 \n\t"        \
5279    "st z+, r23 \n\t"          \
5280                               \
5281    "ld r14, y+ \n\t"          \
5282    "ldi r23, 0 \n\t"          \
5283    "mul r6, r14 \n\t"         \
5284    "add r24, r0 \n\t"         \
5285    "adc r22, r1 \n\t"         \
5286    "adc r23, r25 \n\t"        \
5287    "mul r7, r13 \n\t"         \
5288    "add r24, r0 \n\t"         \
5289    "adc r22, r1 \n\t"         \
5290    "adc r23, r25 \n\t"        \
5291    "mul r8, r12 \n\t"         \
5292    "add r24, r0 \n\t"         \
5293    "adc r22, r1 \n\t"         \
5294    "adc r23, r25 \n\t"        \
5295    "mul r9, r21 \n\t"         \
5296    "add r24, r0 \n\t"         \
5297    "adc r22, r1 \n\t"         \
5298    "adc r23, r25 \n\t"        \
5299    "mul r10, r20 \n\t"        \
5300    "add r24, r0 \n\t"         \
5301    "adc r22, r1 \n\t"         \
5302    "adc r23, r25 \n\t"        \
5303    "mul r11, r19 \n\t"        \
5304    "add r24, r0 \n\t"         \
5305    "adc r22, r1 \n\t"         \
5306    "adc r23, r25 \n\t"        \
5307    "mul r2, r18 \n\t"         \
5308    "add r24, r0 \n\t"         \
5309    "adc r22, r1 \n\t"         \
5310    "adc r23, r25 \n\t"        \
5311    "mul r3, r17 \n\t"         \
5312    "add r24, r0 \n\t"         \
5313    "adc r22, r1 \n\t"         \
5314    "adc r23, r25 \n\t"        \
5315    "mul r4, r16 \n\t"         \
5316    "add r24, r0 \n\t"         \
5317    "adc r22, r1 \n\t"         \
5318    "adc r23, r25 \n\t"        \
5319    "mul r5, r15 \n\t"         \
5320    "add r24, r0 \n\t"         \
5321    "adc r22, r1 \n\t"         \
5322    "adc r23, r25 \n\t"        \
5323    "ld r0, z \n\t"            \
5324    "add r24, r0 \n\t"         \
5325    "adc r22, r25 \n\t"        \
5326    "adc r23, r25 \n\t"        \
5327    "st z+, r24 \n\t"          \
5328                               \
5329    "ld r15, y+ \n\t"          \
5330    "ldi r24, 0 \n\t"          \
5331    "mul r6, r15 \n\t"         \
5332    "add r22, r0 \n\t"         \
5333    "adc r23, r1 \n\t"         \
5334    "adc r24, r25 \n\t"        \
5335    "mul r7, r14 \n\t"         \
5336    "add r22, r0 \n\t"         \
5337    "adc r23, r1 \n\t"         \
5338    "adc r24, r25 \n\t"        \
5339    "mul r8, r13 \n\t"         \
5340    "add r22, r0 \n\t"         \
5341    "adc r23, r1 \n\t"         \
5342    "adc r24, r25 \n\t"        \
5343    "mul r9, r12 \n\t"         \
5344    "add r22, r0 \n\t"         \
5345    "adc r23, r1 \n\t"         \
5346    "adc r24, r25 \n\t"        \
5347    "mul r10, r21 \n\t"        \
5348    "add r22, r0 \n\t"         \
5349    "adc r23, r1 \n\t"         \
5350    "adc r24, r25 \n\t"        \
5351    "mul r11, r20 \n\t"        \
5352    "add r22, r0 \n\t"         \
5353    "adc r23, r1 \n\t"         \
5354    "adc r24, r25 \n\t"        \
5355    "mul r2, r19 \n\t"         \
5356    "add r22, r0 \n\t"         \
5357    "adc r23, r1 \n\t"         \
5358    "adc r24, r25 \n\t"        \
5359    "mul r3, r18 \n\t"         \
5360    "add r22, r0 \n\t"         \
5361    "adc r23, r1 \n\t"         \
5362    "adc r24, r25 \n\t"        \
5363    "mul r4, r17 \n\t"         \
5364    "add r22, r0 \n\t"         \
5365    "adc r23, r1 \n\t"         \
5366    "adc r24, r25 \n\t"        \
5367    "mul r5, r16 \n\t"         \
5368    "add r22, r0 \n\t"         \
5369    "adc r23, r1 \n\t"         \
5370    "adc r24, r25 \n\t"        \
5371    "ld r0, z \n\t"            \
5372    "add r22, r0 \n\t"         \
5373    "adc r23, r25 \n\t"        \
5374    "adc r24, r25 \n\t"        \
5375    "st z+, r22 \n\t"          \
5376                               \
5377    "ldi r22, 0 \n\t"          \
5378    "mul r7, r15 \n\t"         \
5379    "add r23, r0 \n\t"         \
5380    "adc r24, r1 \n\t"         \
5381    "adc r22, r25 \n\t"        \
5382    "mul r8, r14 \n\t"         \
5383    "add r23, r0 \n\t"         \
5384    "adc r24, r1 \n\t"         \
5385    "adc r22, r25 \n\t"        \
5386    "mul r9, r13 \n\t"         \
5387    "add r23, r0 \n\t"         \
5388    "adc r24, r1 \n\t"         \
5389    "adc r22, r25 \n\t"        \
5390    "mul r10, r12 \n\t"        \
5391    "add r23, r0 \n\t"         \
5392    "adc r24, r1 \n\t"         \
5393    "adc r22, r25 \n\t"        \
5394    "mul r11, r21 \n\t"        \
5395    "add r23, r0 \n\t"         \
5396    "adc r24, r1 \n\t"         \
5397    "adc r22, r25 \n\t"        \
5398    "mul r2, r20 \n\t"         \
5399    "add r23, r0 \n\t"         \
5400    "adc r24, r1 \n\t"         \
5401    "adc r22, r25 \n\t"        \
5402    "mul r3, r19 \n\t"         \
5403    "add r23, r0 \n\t"         \
5404    "adc r24, r1 \n\t"         \
5405    "adc r22, r25 \n\t"        \
5406    "mul r4, r18 \n\t"         \
5407    "add r23, r0 \n\t"         \
5408    "adc r24, r1 \n\t"         \
5409    "adc r22, r25 \n\t"        \
5410    "mul r5, r17 \n\t"         \
5411    "add r23, r0 \n\t"         \
5412    "adc r24, r1 \n\t"         \
5413    "adc r22, r25 \n\t"        \
5414    "st z+, r23 \n\t"          \
5415                               \
5416    "ldi r23, 0 \n\t"          \
5417    "mul r8, r15 \n\t"         \
5418    "add r24, r0 \n\t"         \
5419    "adc r22, r1 \n\t"         \
5420    "adc r23, r25 \n\t"        \
5421    "mul r9, r14 \n\t"         \
5422    "add r24, r0 \n\t"         \
5423    "adc r22, r1 \n\t"         \
5424    "adc r23, r25 \n\t"        \
5425    "mul r10, r13 \n\t"        \
5426    "add r24, r0 \n\t"         \
5427    "adc r22, r1 \n\t"         \
5428    "adc r23, r25 \n\t"        \
5429    "mul r11, r12 \n\t"        \
5430    "add r24, r0 \n\t"         \
5431    "adc r22, r1 \n\t"         \
5432    "adc r23, r25 \n\t"        \
5433    "mul r2, r21 \n\t"         \
5434    "add r24, r0 \n\t"         \
5435    "adc r22, r1 \n\t"         \
5436    "adc r23, r25 \n\t"        \
5437    "mul r3, r20 \n\t"         \
5438    "add r24, r0 \n\t"         \
5439    "adc r22, r1 \n\t"         \
5440    "adc r23, r25 \n\t"        \
5441    "mul r4, r19 \n\t"         \
5442    "add r24, r0 \n\t"         \
5443    "adc r22, r1 \n\t"         \
5444    "adc r23, r25 \n\t"        \
5445    "mul r5, r18 \n\t"         \
5446    "add r24, r0 \n\t"         \
5447    "adc r22, r1 \n\t"         \
5448    "adc r23, r25 \n\t"        \
5449    "st z+, r24 \n\t"          \
5450                               \
5451    "ldi r24, 0 \n\t"          \
5452    "mul r9, r15 \n\t"         \
5453    "add r22, r0 \n\t"         \
5454    "adc r23, r1 \n\t"         \
5455    "adc r24, r25 \n\t"        \
5456    "mul r10, r14 \n\t"        \
5457    "add r22, r0 \n\t"         \
5458    "adc r23, r1 \n\t"         \
5459    "adc r24, r25 \n\t"        \
5460    "mul r11, r13 \n\t"        \
5461    "add r22, r0 \n\t"         \
5462    "adc r23, r1 \n\t"         \
5463    "adc r24, r25 \n\t"        \
5464    "mul r2, r12 \n\t"         \
5465    "add r22, r0 \n\t"         \
5466    "adc r23, r1 \n\t"         \
5467    "adc r24, r25 \n\t"        \
5468    "mul r3, r21 \n\t"         \
5469    "add r22, r0 \n\t"         \
5470    "adc r23, r1 \n\t"         \
5471    "adc r24, r25 \n\t"        \
5472    "mul r4, r20 \n\t"         \
5473    "add r22, r0 \n\t"         \
5474    "adc r23, r1 \n\t"         \
5475    "adc r24, r25 \n\t"        \
5476    "mul r5, r19 \n\t"         \
5477    "add r22, r0 \n\t"         \
5478    "adc r23, r1 \n\t"         \
5479    "adc r24, r25 \n\t"        \
5480    "st z+, r22 \n\t"          \
5481                               \
5482    "ldi r22, 0 \n\t"          \
5483    "mul r10, r15 \n\t"        \
5484    "add r23, r0 \n\t"         \
5485    "adc r24, r1 \n\t"         \
5486    "adc r22, r25 \n\t"        \
5487    "mul r11, r14 \n\t"        \
5488    "add r23, r0 \n\t"         \
5489    "adc r24, r1 \n\t"         \
5490    "adc r22, r25 \n\t"        \
5491    "mul r2, r13 \n\t"         \
5492    "add r23, r0 \n\t"         \
5493    "adc r24, r1 \n\t"         \
5494    "adc r22, r25 \n\t"        \
5495    "mul r3, r12 \n\t"         \
5496    "add r23, r0 \n\t"         \
5497    "adc r24, r1 \n\t"         \
5498    "adc r22, r25 \n\t"        \
5499    "mul r4, r21 \n\t"         \
5500    "add r23, r0 \n\t"         \
5501    "adc r24, r1 \n\t"         \
5502    "adc r22, r25 \n\t"        \
5503    "mul r5, r20 \n\t"         \
5504    "add r23, r0 \n\t"         \
5505    "adc r24, r1 \n\t"         \
5506    "adc r22, r25 \n\t"        \
5507    "st z+, r23 \n\t"          \
5508                               \
5509    "ldi r23, 0 \n\t"          \
5510    "mul r11, r15 \n\t"        \
5511    "add r24, r0 \n\t"         \
5512    "adc r22, r1 \n\t"         \
5513    "adc r23, r25 \n\t"        \
5514    "mul r2, r14 \n\t"         \
5515    "add r24, r0 \n\t"         \
5516    "adc r22, r1 \n\t"         \
5517    "adc r23, r25 \n\t"        \
5518    "mul r3, r13 \n\t"         \
5519    "add r24, r0 \n\t"         \
5520    "adc r22, r1 \n\t"         \
5521    "adc r23, r25 \n\t"        \
5522    "mul r4, r12 \n\t"         \
5523    "add r24, r0 \n\t"         \
5524    "adc r22, r1 \n\t"         \
5525    "adc r23, r25 \n\t"        \
5526    "mul r5, r21 \n\t"         \
5527    "add r24, r0 \n\t"         \
5528    "adc r22, r1 \n\t"         \
5529    "adc r23, r25 \n\t"        \
5530    "st z+, r24 \n\t"          \
5531                               \
5532    "ldi r24, 0 \n\t"          \
5533    "mul r2, r15 \n\t"         \
5534    "add r22, r0 \n\t"         \
5535    "adc r23, r1 \n\t"         \
5536    "adc r24, r25 \n\t"        \
5537    "mul r3, r14 \n\t"         \
5538    "add r22, r0 \n\t"         \
5539    "adc r23, r1 \n\t"         \
5540    "adc r24, r25 \n\t"        \
5541    "mul r4, r13 \n\t"         \
5542    "add r22, r0 \n\t"         \
5543    "adc r23, r1 \n\t"         \
5544    "adc r24, r25 \n\t"        \
5545    "mul r5, r12 \n\t"         \
5546    "add r22, r0 \n\t"         \
5547    "adc r23, r1 \n\t"         \
5548    "adc r24, r25 \n\t"        \
5549    "st z+, r22 \n\t"          \
5550                               \
5551    "ldi r22, 0 \n\t"          \
5552    "mul r3, r15 \n\t"         \
5553    "add r23, r0 \n\t"         \
5554    "adc r24, r1 \n\t"         \
5555    "adc r22, r25 \n\t"        \
5556    "mul r4, r14 \n\t"         \
5557    "add r23, r0 \n\t"         \
5558    "adc r24, r1 \n\t"         \
5559    "adc r22, r25 \n\t"        \
5560    "mul r5, r13 \n\t"         \
5561    "add r23, r0 \n\t"         \
5562    "adc r24, r1 \n\t"         \
5563    "adc r22, r25 \n\t"        \
5564    "st z+, r23 \n\t"          \
5565                               \
5566    "ldi r23, 0 \n\t"          \
5567    "mul r4, r15 \n\t"         \
5568    "add r24, r0 \n\t"         \
5569    "adc r22, r1 \n\t"         \
5570    "adc r23, r25 \n\t"        \
5571    "mul r5, r14 \n\t"         \
5572    "add r24, r0 \n\t"         \
5573    "adc r22, r1 \n\t"         \
5574    "adc r23, r25 \n\t"        \
5575    "st z+, r24 \n\t"          \
5576                               \
5577    "mul r5, r15 \n\t"         \
5578    "add r22, r0 \n\t"         \
5579    "adc r23, r1 \n\t"         \
5580    "st z+, r22 \n\t"          \
5581    "st z+, r23 \n\t"
5582
5583#define FAST_MULT_ASM_24_TO_28     \
5584    "cpi r18, 24 \n\t"             \
5585    "brne 1f \n\t"                 \
5586    "jmp 2f \n\t"                  \
5587    "1: \n\t"                      \
5588    "ld r2, x+ \n\t"               \
5589    "ld r6, y+ \n\t"               \
5590    "ld r3, x+ \n\t"               \
5591    "ld r7, y+ \n\t"               \
5592    "ld r4, x+ \n\t"               \
5593    "ld r8, y+ \n\t"               \
5594    "ld r5, x+ \n\t"               \
5595    "ld r9, y+ \n\t"               \
5596    "sbiw r26, 28 \n\t"            \
5597    "sbiw r28, 28 \n\t"            \
5598    "sbiw r30, 24 \n\t"            \
5599    "ld r10, x+ \n\t"              \
5600    "ld r14, y+ \n\t"              \
5601    "ld r11, x+ \n\t"              \
5602    "ld r15, y+ \n\t"              \
5603    "ld r12, x+ \n\t"              \
5604    "ld r16, y+ \n\t"              \
5605    "ld r13, x+ \n\t"              \
5606    "ld r17, y+ \n\t"              \
5607                                   \
5608    "mul r2, r14 \n\t"             \
5609    "mov r19, r0 \n\t"             \
5610    "mov r20, r1 \n\t"             \
5611    "ldi r21, 0 \n\t"              \
5612    "ld r0, z \n\t"                \
5613    "add r19, r0 \n\t"             \
5614    "adc r20, r25 \n\t"            \
5615    "mul r6, r10 \n\t"             \
5616    "add r19, r0 \n\t"             \
5617    "adc r20, r1 \n\t"             \
5618    "adc r21, r25 \n\t"            \
5619    "st z+, r19 \n\t"              \
5620                                   \
5621    "ldi r19, 0 \n\t"              \
5622    "ld r0, z \n\t"                \
5623    "add r20, r0 \n\t"             \
5624    "adc r21, r25 \n\t"            \
5625    "mul r2, r15 \n\t"             \
5626    "add r20, r0 \n\t"             \
5627    "adc r21, r1 \n\t"             \
5628    "adc r19, r25 \n\t"            \
5629    "mul r6, r11 \n\t"             \
5630    "add r20, r0 \n\t"             \
5631    "adc r21, r1 \n\t"             \
5632    "adc r19, r25 \n\t"            \
5633    "mul r3, r14 \n\t"             \
5634    "add r20, r0 \n\t"             \
5635    "adc r21, r1 \n\t"             \
5636    "adc r19, r25 \n\t"            \
5637    "mul r7, r10 \n\t"             \
5638    "add r20, r0 \n\t"             \
5639    "adc r21, r1 \n\t"             \
5640    "adc r19, r25 \n\t"            \
5641    "st z+, r20 \n\t"              \
5642                                   \
5643    "ldi r20, 0 \n\t"              \
5644    "ld r0, z \n\t"                \
5645    "add r21, r0 \n\t"             \
5646    "adc r19, r25 \n\t"            \
5647    "mul r2, r16 \n\t"             \
5648    "add r21, r0 \n\t"             \
5649    "adc r19, r1 \n\t"             \
5650    "adc r20, r25 \n\t"            \
5651    "mul r6, r12 \n\t"             \
5652    "add r21, r0 \n\t"             \
5653    "adc r19, r1 \n\t"             \
5654    "adc r20, r25 \n\t"            \
5655    "mul r3, r15 \n\t"             \
5656    "add r21, r0 \n\t"             \
5657    "adc r19, r1 \n\t"             \
5658    "adc r20, r25 \n\t"            \
5659    "mul r7, r11 \n\t"             \
5660    "add r21, r0 \n\t"             \
5661    "adc r19, r1 \n\t"             \
5662    "adc r20, r25 \n\t"            \
5663    "mul r4, r14 \n\t"             \
5664    "add r21, r0 \n\t"             \
5665    "adc r19, r1 \n\t"             \
5666    "adc r20, r25 \n\t"            \
5667    "mul r8, r10 \n\t"             \
5668    "add r21, r0 \n\t"             \
5669    "adc r19, r1 \n\t"             \
5670    "adc r20, r25 \n\t"            \
5671    "st z+, r21 \n\t"              \
5672                                   \
5673    "ldi r21, 0 \n\t"              \
5674    "ld r0, z \n\t"                \
5675    "add r19, r0 \n\t"             \
5676    "adc r20, r25 \n\t"            \
5677    "mul r2, r17 \n\t"             \
5678    "add r19, r0 \n\t"             \
5679    "adc r20, r1 \n\t"             \
5680    "adc r21, r25 \n\t"            \
5681    "mul r6, r13 \n\t"             \
5682    "add r19, r0 \n\t"             \
5683    "adc r20, r1 \n\t"             \
5684    "adc r21, r25 \n\t"            \
5685    "mul r3, r16 \n\t"             \
5686    "add r19, r0 \n\t"             \
5687    "adc r20, r1 \n\t"             \
5688    "adc r21, r25 \n\t"            \
5689    "mul r7, r12 \n\t"             \
5690    "add r19, r0 \n\t"             \
5691    "adc r20, r1 \n\t"             \
5692    "adc r21, r25 \n\t"            \
5693    "mul r4, r15 \n\t"             \
5694    "add r19, r0 \n\t"             \
5695    "adc r20, r1 \n\t"             \
5696    "adc r21, r25 \n\t"            \
5697    "mul r8, r11 \n\t"             \
5698    "add r19, r0 \n\t"             \
5699    "adc r20, r1 \n\t"             \
5700    "adc r21, r25 \n\t"            \
5701    "mul r5, r14 \n\t"             \
5702    "add r19, r0 \n\t"             \
5703    "adc r20, r1 \n\t"             \
5704    "adc r21, r25 \n\t"            \
5705    "mul r9, r10 \n\t"             \
5706    "add r19, r0 \n\t"             \
5707    "adc r20, r1 \n\t"             \
5708    "adc r21, r25 \n\t"            \
5709    "st z+, r19 \n\t"              \
5710                                   \
5711    "ldi r19, 0 \n\t"              \
5712    "ld r0, z \n\t"                \
5713    "add r20, r0 \n\t"             \
5714    "adc r21, r25 \n\t"            \
5715    "ld r10, x+ \n\t"              \
5716    "ld r14, y+ \n\t"              \
5717    "mul r2, r14 \n\t"             \
5718    "add r20, r0 \n\t"             \
5719    "adc r21, r1 \n\t"             \
5720    "adc r19, r25 \n\t"            \
5721    "mul r6, r10 \n\t"             \
5722    "add r20, r0 \n\t"             \
5723    "adc r21, r1 \n\t"             \
5724    "adc r19, r25 \n\t"            \
5725    "mul r3, r17 \n\t"             \
5726    "add r20, r0 \n\t"             \
5727    "adc r21, r1 \n\t"             \
5728    "adc r19, r25 \n\t"            \
5729    "mul r7, r13 \n\t"             \
5730    "add r20, r0 \n\t"             \
5731    "adc r21, r1 \n\t"             \
5732    "adc r19, r25 \n\t"            \
5733    "mul r4, r16 \n\t"             \
5734    "add r20, r0 \n\t"             \
5735    "adc r21, r1 \n\t"             \
5736    "adc r19, r25 \n\t"            \
5737    "mul r8, r12 \n\t"             \
5738    "add r20, r0 \n\t"             \
5739    "adc r21, r1 \n\t"             \
5740    "adc r19, r25 \n\t"            \
5741    "mul r5, r15 \n\t"             \
5742    "add r20, r0 \n\t"             \
5743    "adc r21, r1 \n\t"             \
5744    "adc r19, r25 \n\t"            \
5745    "mul r9, r11 \n\t"             \
5746    "add r20, r0 \n\t"             \
5747    "adc r21, r1 \n\t"             \
5748    "adc r19, r25 \n\t"            \
5749    "st z+, r20 \n\t"              \
5750                                   \
5751    "ldi r20, 0 \n\t"              \
5752    "ld r0, z \n\t"                \
5753    "add r21, r0 \n\t"             \
5754    "adc r19, r25 \n\t"            \
5755    "ld r11, x+ \n\t"              \
5756    "ld r15, y+ \n\t"              \
5757    "mul r2, r15 \n\t"             \
5758    "add r21, r0 \n\t"             \
5759    "adc r19, r1 \n\t"             \
5760    "adc r20, r25 \n\t"            \
5761    "mul r6, r11 \n\t"             \
5762    "add r21, r0 \n\t"             \
5763    "adc r19, r1 \n\t"             \
5764    "adc r20, r25 \n\t"            \
5765    "mul r3, r14 \n\t"             \
5766    "add r21, r0 \n\t"             \
5767    "adc r19, r1 \n\t"             \
5768    "adc r20, r25 \n\t"            \
5769    "mul r7, r10 \n\t"             \
5770    "add r21, r0 \n\t"             \
5771    "adc r19, r1 \n\t"             \
5772    "adc r20, r25 \n\t"            \
5773    "mul r4, r17 \n\t"             \
5774    "add r21, r0 \n\t"             \
5775    "adc r19, r1 \n\t"             \
5776    "adc r20, r25 \n\t"            \
5777    "mul r8, r13 \n\t"             \
5778    "add r21, r0 \n\t"             \
5779    "adc r19, r1 \n\t"             \
5780    "adc r20, r25 \n\t"            \
5781    "mul r5, r16 \n\t"             \
5782    "add r21, r0 \n\t"             \
5783    "adc r19, r1 \n\t"             \
5784    "adc r20, r25 \n\t"            \
5785    "mul r9, r12 \n\t"             \
5786    "add r21, r0 \n\t"             \
5787    "adc r19, r1 \n\t"             \
5788    "adc r20, r25 \n\t"            \
5789    "st z+, r21 \n\t"              \
5790                                   \
5791    "ldi r21, 0 \n\t"              \
5792    "ld r0, z \n\t"                \
5793    "add r19, r0 \n\t"             \
5794    "adc r20, r25 \n\t"            \
5795    "ld r12, x+ \n\t"              \
5796    "ld r16, y+ \n\t"              \
5797    "mul r2, r16 \n\t"             \
5798    "add r19, r0 \n\t"             \
5799    "adc r20, r1 \n\t"             \
5800    "adc r21, r25 \n\t"            \
5801    "mul r6, r12 \n\t"             \
5802    "add r19, r0 \n\t"             \
5803    "adc r20, r1 \n\t"             \
5804    "adc r21, r25 \n\t"            \
5805    "mul r3, r15 \n\t"             \
5806    "add r19, r0 \n\t"             \
5807    "adc r20, r1 \n\t"             \
5808    "adc r21, r25 \n\t"            \
5809    "mul r7, r11 \n\t"             \
5810    "add r19, r0 \n\t"             \
5811    "adc r20, r1 \n\t"             \
5812    "adc r21, r25 \n\t"            \
5813    "mul r4, r14 \n\t"             \
5814    "add r19, r0 \n\t"             \
5815    "adc r20, r1 \n\t"             \
5816    "adc r21, r25 \n\t"            \
5817    "mul r8, r10 \n\t"             \
5818    "add r19, r0 \n\t"             \
5819    "adc r20, r1 \n\t"             \
5820    "adc r21, r25 \n\t"            \
5821    "mul r5, r17 \n\t"             \
5822    "add r19, r0 \n\t"             \
5823    "adc r20, r1 \n\t"             \
5824    "adc r21, r25 \n\t"            \
5825    "mul r9, r13 \n\t"             \
5826    "add r19, r0 \n\t"             \
5827    "adc r20, r1 \n\t"             \
5828    "adc r21, r25 \n\t"            \
5829    "st z+, r19 \n\t"              \
5830                                   \
5831    "ldi r19, 0 \n\t"              \
5832    "ld r0, z \n\t"                \
5833    "add r20, r0 \n\t"             \
5834    "adc r21, r25 \n\t"            \
5835    "ld r13, x+ \n\t"              \
5836    "ld r17, y+ \n\t"              \
5837    "mul r2, r17 \n\t"             \
5838    "add r20, r0 \n\t"             \
5839    "adc r21, r1 \n\t"             \
5840    "adc r19, r25 \n\t"            \
5841    "mul r6, r13 \n\t"             \
5842    "add r20, r0 \n\t"             \
5843    "adc r21, r1 \n\t"             \
5844    "adc r19, r25 \n\t"            \
5845    "mul r3, r16 \n\t"             \
5846    "add r20, r0 \n\t"             \
5847    "adc r21, r1 \n\t"             \
5848    "adc r19, r25 \n\t"            \
5849    "mul r7, r12 \n\t"             \
5850    "add r20, r0 \n\t"             \
5851    "adc r21, r1 \n\t"             \
5852    "adc r19, r25 \n\t"            \
5853    "mul r4, r15 \n\t"             \
5854    "add r20, r0 \n\t"             \
5855    "adc r21, r1 \n\t"             \
5856    "adc r19, r25 \n\t"            \
5857    "mul r8, r11 \n\t"             \
5858    "add r20, r0 \n\t"             \
5859    "adc r21, r1 \n\t"             \
5860    "adc r19, r25 \n\t"            \
5861    "mul r5, r14 \n\t"             \
5862    "add r20, r0 \n\t"             \
5863    "adc r21, r1 \n\t"             \
5864    "adc r19, r25 \n\t"            \
5865    "mul r9, r10 \n\t"             \
5866    "add r20, r0 \n\t"             \
5867    "adc r21, r1 \n\t"             \
5868    "adc r19, r25 \n\t"            \
5869    "st z+, r20 \n\t"              \
5870                                   \
5871    "ldi r20, 0 \n\t"              \
5872    "ld r0, z \n\t"                \
5873    "add r21, r0 \n\t"             \
5874    "adc r19, r25 \n\t"            \
5875    "ld r10, x+ \n\t"              \
5876    "ld r14, y+ \n\t"              \
5877    "mul r2, r14 \n\t"             \
5878    "add r21, r0 \n\t"             \
5879    "adc r19, r1 \n\t"             \
5880    "adc r20, r25 \n\t"            \
5881    "mul r6, r10 \n\t"             \
5882    "add r21, r0 \n\t"             \
5883    "adc r19, r1 \n\t"             \
5884    "adc r20, r25 \n\t"            \
5885    "mul r3, r17 \n\t"             \
5886    "add r21, r0 \n\t"             \
5887    "adc r19, r1 \n\t"             \
5888    "adc r20, r25 \n\t"            \
5889    "mul r7, r13 \n\t"             \
5890    "add r21, r0 \n\t"             \
5891    "adc r19, r1 \n\t"             \
5892    "adc r20, r25 \n\t"            \
5893    "mul r4, r16 \n\t"             \
5894    "add r21, r0 \n\t"             \
5895    "adc r19, r1 \n\t"             \
5896    "adc r20, r25 \n\t"            \
5897    "mul r8, r12 \n\t"             \
5898    "add r21, r0 \n\t"             \
5899    "adc r19, r1 \n\t"             \
5900    "adc r20, r25 \n\t"            \
5901    "mul r5, r15 \n\t"             \
5902    "add r21, r0 \n\t"             \
5903    "adc r19, r1 \n\t"             \
5904    "adc r20, r25 \n\t"            \
5905    "mul r9, r11 \n\t"             \
5906    "add r21, r0 \n\t"             \
5907    "adc r19, r1 \n\t"             \
5908    "adc r20, r25 \n\t"            \
5909    "st z+, r21 \n\t"              \
5910                                   \
5911    "ldi r21, 0 \n\t"              \
5912    "ld r0, z \n\t"                \
5913    "add r19, r0 \n\t"             \
5914    "adc r20, r25 \n\t"            \
5915    "ld r11, x+ \n\t"              \
5916    "ld r15, y+ \n\t"              \
5917    "mul r2, r15 \n\t"             \
5918    "add r19, r0 \n\t"             \
5919    "adc r20, r1 \n\t"             \
5920    "adc r21, r25 \n\t"            \
5921    "mul r6, r11 \n\t"             \
5922    "add r19, r0 \n\t"             \
5923    "adc r20, r1 \n\t"             \
5924    "adc r21, r25 \n\t"            \
5925    "mul r3, r14 \n\t"             \
5926    "add r19, r0 \n\t"             \
5927    "adc r20, r1 \n\t"             \
5928    "adc r21, r25 \n\t"            \
5929    "mul r7, r10 \n\t"             \
5930    "add r19, r0 \n\t"             \
5931    "adc r20, r1 \n\t"             \
5932    "adc r21, r25 \n\t"            \
5933    "mul r4, r17 \n\t"             \
5934    "add r19, r0 \n\t"             \
5935    "adc r20, r1 \n\t"             \
5936    "adc r21, r25 \n\t"            \
5937    "mul r8, r13 \n\t"             \
5938    "add r19, r0 \n\t"             \
5939    "adc r20, r1 \n\t"             \
5940    "adc r21, r25 \n\t"            \
5941    "mul r5, r16 \n\t"             \
5942    "add r19, r0 \n\t"             \
5943    "adc r20, r1 \n\t"             \
5944    "adc r21, r25 \n\t"            \
5945    "mul r9, r12 \n\t"             \
5946    "add r19, r0 \n\t"             \
5947    "adc r20, r1 \n\t"             \
5948    "adc r21, r25 \n\t"            \
5949    "st z+, r19 \n\t"              \
5950                                   \
5951    "ldi r19, 0 \n\t"              \
5952    "ld r0, z \n\t"                \
5953    "add r20, r0 \n\t"             \
5954    "adc r21, r25 \n\t"            \
5955    "ld r12, x+ \n\t"              \
5956    "ld r16, y+ \n\t"              \
5957    "mul r2, r16 \n\t"             \
5958    "add r20, r0 \n\t"             \
5959    "adc r21, r1 \n\t"             \
5960    "adc r19, r25 \n\t"            \
5961    "mul r6, r12 \n\t"             \
5962    "add r20, r0 \n\t"             \
5963    "adc r21, r1 \n\t"             \
5964    "adc r19, r25 \n\t"            \
5965    "mul r3, r15 \n\t"             \
5966    "add r20, r0 \n\t"             \
5967    "adc r21, r1 \n\t"             \
5968    "adc r19, r25 \n\t"            \
5969    "mul r7, r11 \n\t"             \
5970    "add r20, r0 \n\t"             \
5971    "adc r21, r1 \n\t"             \
5972    "adc r19, r25 \n\t"            \
5973    "mul r4, r14 \n\t"             \
5974    "add r20, r0 \n\t"             \
5975    "adc r21, r1 \n\t"             \
5976    "adc r19, r25 \n\t"            \
5977    "mul r8, r10 \n\t"             \
5978    "add r20, r0 \n\t"             \
5979    "adc r21, r1 \n\t"             \
5980    "adc r19, r25 \n\t"            \
5981    "mul r5, r17 \n\t"             \
5982    "add r20, r0 \n\t"             \
5983    "adc r21, r1 \n\t"             \
5984    "adc r19, r25 \n\t"            \
5985    "mul r9, r13 \n\t"             \
5986    "add r20, r0 \n\t"             \
5987    "adc r21, r1 \n\t"             \
5988    "adc r19, r25 \n\t"            \
5989    "st z+, r20 \n\t"              \
5990                                   \
5991    "ldi r20, 0 \n\t"              \
5992    "ld r0, z \n\t"                \
5993    "add r21, r0 \n\t"             \
5994    "adc r19, r25 \n\t"            \
5995    "ld r13, x+ \n\t"              \
5996    "ld r17, y+ \n\t"              \
5997    "mul r2, r17 \n\t"             \
5998    "add r21, r0 \n\t"             \
5999    "adc r19, r1 \n\t"             \
6000    "adc r20, r25 \n\t"            \
6001    "mul r6, r13 \n\t"             \
6002    "add r21, r0 \n\t"             \
6003    "adc r19, r1 \n\t"             \
6004    "adc r20, r25 \n\t"            \
6005    "mul r3, r16 \n\t"             \
6006    "add r21, r0 \n\t"             \
6007    "adc r19, r1 \n\t"             \
6008    "adc r20, r25 \n\t"            \
6009    "mul r7, r12 \n\t"             \
6010    "add r21, r0 \n\t"             \
6011    "adc r19, r1 \n\t"             \
6012    "adc r20, r25 \n\t"            \
6013    "mul r4, r15 \n\t"             \
6014    "add r21, r0 \n\t"             \
6015    "adc r19, r1 \n\t"             \
6016    "adc r20, r25 \n\t"            \
6017    "mul r8, r11 \n\t"             \
6018    "add r21, r0 \n\t"             \
6019    "adc r19, r1 \n\t"             \
6020    "adc r20, r25 \n\t"            \
6021    "mul r5, r14 \n\t"             \
6022    "add r21, r0 \n\t"             \
6023    "adc r19, r1 \n\t"             \
6024    "adc r20, r25 \n\t"            \
6025    "mul r9, r10 \n\t"             \
6026    "add r21, r0 \n\t"             \
6027    "adc r19, r1 \n\t"             \
6028    "adc r20, r25 \n\t"            \
6029    "st z+, r21 \n\t"              \
6030                                   \
6031    "ldi r21, 0 \n\t"              \
6032    "ld r0, z \n\t"                \
6033    "add r19, r0 \n\t"             \
6034    "adc r20, r25 \n\t"            \
6035    "ld r10, x+ \n\t"              \
6036    "ld r14, y+ \n\t"              \
6037    "mul r2, r14 \n\t"             \
6038    "add r19, r0 \n\t"             \
6039    "adc r20, r1 \n\t"             \
6040    "adc r21, r25 \n\t"            \
6041    "mul r6, r10 \n\t"             \
6042    "add r19, r0 \n\t"             \
6043    "adc r20, r1 \n\t"             \
6044    "adc r21, r25 \n\t"            \
6045    "mul r3, r17 \n\t"             \
6046    "add r19, r0 \n\t"             \
6047    "adc r20, r1 \n\t"             \
6048    "adc r21, r25 \n\t"            \
6049    "mul r7, r13 \n\t"             \
6050    "add r19, r0 \n\t"             \
6051    "adc r20, r1 \n\t"             \
6052    "adc r21, r25 \n\t"            \
6053    "mul r4, r16 \n\t"             \
6054    "add r19, r0 \n\t"             \
6055    "adc r20, r1 \n\t"             \
6056    "adc r21, r25 \n\t"            \
6057    "mul r8, r12 \n\t"             \
6058    "add r19, r0 \n\t"             \
6059    "adc r20, r1 \n\t"             \
6060    "adc r21, r25 \n\t"            \
6061    "mul r5, r15 \n\t"             \
6062    "add r19, r0 \n\t"             \
6063    "adc r20, r1 \n\t"             \
6064    "adc r21, r25 \n\t"            \
6065    "mul r9, r11 \n\t"             \
6066    "add r19, r0 \n\t"             \
6067    "adc r20, r1 \n\t"             \
6068    "adc r21, r25 \n\t"            \
6069    "st z+, r19 \n\t"              \
6070                                   \
6071    "ldi r19, 0 \n\t"              \
6072    "ld r0, z \n\t"                \
6073    "add r20, r0 \n\t"             \
6074    "adc r21, r25 \n\t"            \
6075    "ld r11, x+ \n\t"              \
6076    "ld r15, y+ \n\t"              \
6077    "mul r2, r15 \n\t"             \
6078    "add r20, r0 \n\t"             \
6079    "adc r21, r1 \n\t"             \
6080    "adc r19, r25 \n\t"            \
6081    "mul r6, r11 \n\t"             \
6082    "add r20, r0 \n\t"             \
6083    "adc r21, r1 \n\t"             \
6084    "adc r19, r25 \n\t"            \
6085    "mul r3, r14 \n\t"             \
6086    "add r20, r0 \n\t"             \
6087    "adc r21, r1 \n\t"             \
6088    "adc r19, r25 \n\t"            \
6089    "mul r7, r10 \n\t"             \
6090    "add r20, r0 \n\t"             \
6091    "adc r21, r1 \n\t"             \
6092    "adc r19, r25 \n\t"            \
6093    "mul r4, r17 \n\t"             \
6094    "add r20, r0 \n\t"             \
6095    "adc r21, r1 \n\t"             \
6096    "adc r19, r25 \n\t"            \
6097    "mul r8, r13 \n\t"             \
6098    "add r20, r0 \n\t"             \
6099    "adc r21, r1 \n\t"             \
6100    "adc r19, r25 \n\t"            \
6101    "mul r5, r16 \n\t"             \
6102    "add r20, r0 \n\t"             \
6103    "adc r21, r1 \n\t"             \
6104    "adc r19, r25 \n\t"            \
6105    "mul r9, r12 \n\t"             \
6106    "add r20, r0 \n\t"             \
6107    "adc r21, r1 \n\t"             \
6108    "adc r19, r25 \n\t"            \
6109    "st z+, r20 \n\t"              \
6110                                   \
6111    "ldi r20, 0 \n\t"              \
6112    "ld r0, z \n\t"                \
6113    "add r21, r0 \n\t"             \
6114    "adc r19, r25 \n\t"            \
6115    "ld r12, x+ \n\t"              \
6116    "ld r16, y+ \n\t"              \
6117    "mul r2, r16 \n\t"             \
6118    "add r21, r0 \n\t"             \
6119    "adc r19, r1 \n\t"             \
6120    "adc r20, r25 \n\t"            \
6121    "mul r6, r12 \n\t"             \
6122    "add r21, r0 \n\t"             \
6123    "adc r19, r1 \n\t"             \
6124    "adc r20, r25 \n\t"            \
6125    "mul r3, r15 \n\t"             \
6126    "add r21, r0 \n\t"             \
6127    "adc r19, r1 \n\t"             \
6128    "adc r20, r25 \n\t"            \
6129    "mul r7, r11 \n\t"             \
6130    "add r21, r0 \n\t"             \
6131    "adc r19, r1 \n\t"             \
6132    "adc r20, r25 \n\t"            \
6133    "mul r4, r14 \n\t"             \
6134    "add r21, r0 \n\t"             \
6135    "adc r19, r1 \n\t"             \
6136    "adc r20, r25 \n\t"            \
6137    "mul r8, r10 \n\t"             \
6138    "add r21, r0 \n\t"             \
6139    "adc r19, r1 \n\t"             \
6140    "adc r20, r25 \n\t"            \
6141    "mul r5, r17 \n\t"             \
6142    "add r21, r0 \n\t"             \
6143    "adc r19, r1 \n\t"             \
6144    "adc r20, r25 \n\t"            \
6145    "mul r9, r13 \n\t"             \
6146    "add r21, r0 \n\t"             \
6147    "adc r19, r1 \n\t"             \
6148    "adc r20, r25 \n\t"            \
6149    "st z+, r21 \n\t"              \
6150                                   \
6151    "ldi r21, 0 \n\t"              \
6152    "ld r0, z \n\t"                \
6153    "add r19, r0 \n\t"             \
6154    "adc r20, r25 \n\t"            \
6155    "ld r13, x+ \n\t"              \
6156    "ld r17, y+ \n\t"              \
6157    "mul r2, r17 \n\t"             \
6158    "add r19, r0 \n\t"             \
6159    "adc r20, r1 \n\t"             \
6160    "adc r21, r25 \n\t"            \
6161    "mul r6, r13 \n\t"             \
6162    "add r19, r0 \n\t"             \
6163    "adc r20, r1 \n\t"             \
6164    "adc r21, r25 \n\t"            \
6165    "mul r3, r16 \n\t"             \
6166    "add r19, r0 \n\t"             \
6167    "adc r20, r1 \n\t"             \
6168    "adc r21, r25 \n\t"            \
6169    "mul r7, r12 \n\t"             \
6170    "add r19, r0 \n\t"             \
6171    "adc r20, r1 \n\t"             \
6172    "adc r21, r25 \n\t"            \
6173    "mul r4, r15 \n\t"             \
6174    "add r19, r0 \n\t"             \
6175    "adc r20, r1 \n\t"             \
6176    "adc r21, r25 \n\t"            \
6177    "mul r8, r11 \n\t"             \
6178    "add r19, r0 \n\t"             \
6179    "adc r20, r1 \n\t"             \
6180    "adc r21, r25 \n\t"            \
6181    "mul r5, r14 \n\t"             \
6182    "add r19, r0 \n\t"             \
6183    "adc r20, r1 \n\t"             \
6184    "adc r21, r25 \n\t"            \
6185    "mul r9, r10 \n\t"             \
6186    "add r19, r0 \n\t"             \
6187    "adc r20, r1 \n\t"             \
6188    "adc r21, r25 \n\t"            \
6189    "st z+, r19 \n\t"              \
6190                                   \
6191    "ldi r19, 0 \n\t"              \
6192    "ld r0, z \n\t"                \
6193    "add r20, r0 \n\t"             \
6194    "adc r21, r25 \n\t"            \
6195    "ld r10, x+ \n\t"              \
6196    "ld r14, y+ \n\t"              \
6197    "mul r2, r14 \n\t"             \
6198    "add r20, r0 \n\t"             \
6199    "adc r21, r1 \n\t"             \
6200    "adc r19, r25 \n\t"            \
6201    "mul r6, r10 \n\t"             \
6202    "add r20, r0 \n\t"             \
6203    "adc r21, r1 \n\t"             \
6204    "adc r19, r25 \n\t"            \
6205    "mul r3, r17 \n\t"             \
6206    "add r20, r0 \n\t"             \
6207    "adc r21, r1 \n\t"             \
6208    "adc r19, r25 \n\t"            \
6209    "mul r7, r13 \n\t"             \
6210    "add r20, r0 \n\t"             \
6211    "adc r21, r1 \n\t"             \
6212    "adc r19, r25 \n\t"            \
6213    "mul r4, r16 \n\t"             \
6214    "add r20, r0 \n\t"             \
6215    "adc r21, r1 \n\t"             \
6216    "adc r19, r25 \n\t"            \
6217    "mul r8, r12 \n\t"             \
6218    "add r20, r0 \n\t"             \
6219    "adc r21, r1 \n\t"             \
6220    "adc r19, r25 \n\t"            \
6221    "mul r5, r15 \n\t"             \
6222    "add r20, r0 \n\t"             \
6223    "adc r21, r1 \n\t"             \
6224    "adc r19, r25 \n\t"            \
6225    "mul r9, r11 \n\t"             \
6226    "add r20, r0 \n\t"             \
6227    "adc r21, r1 \n\t"             \
6228    "adc r19, r25 \n\t"            \
6229    "st z+, r20 \n\t"              \
6230                                   \
6231    "ldi r20, 0 \n\t"              \
6232    "ld r0, z \n\t"                \
6233    "add r21, r0 \n\t"             \
6234    "adc r19, r25 \n\t"            \
6235    "ld r11, x+ \n\t"              \
6236    "ld r15, y+ \n\t"              \
6237    "mul r2, r15 \n\t"             \
6238    "add r21, r0 \n\t"             \
6239    "adc r19, r1 \n\t"             \
6240    "adc r20, r25 \n\t"            \
6241    "mul r6, r11 \n\t"             \
6242    "add r21, r0 \n\t"             \
6243    "adc r19, r1 \n\t"             \
6244    "adc r20, r25 \n\t"            \
6245    "mul r3, r14 \n\t"             \
6246    "add r21, r0 \n\t"             \
6247    "adc r19, r1 \n\t"             \
6248    "adc r20, r25 \n\t"            \
6249    "mul r7, r10 \n\t"             \
6250    "add r21, r0 \n\t"             \
6251    "adc r19, r1 \n\t"             \
6252    "adc r20, r25 \n\t"            \
6253    "mul r4, r17 \n\t"             \
6254    "add r21, r0 \n\t"             \
6255    "adc r19, r1 \n\t"             \
6256    "adc r20, r25 \n\t"            \
6257    "mul r8, r13 \n\t"             \
6258    "add r21, r0 \n\t"             \
6259    "adc r19, r1 \n\t"             \
6260    "adc r20, r25 \n\t"            \
6261    "mul r5, r16 \n\t"             \
6262    "add r21, r0 \n\t"             \
6263    "adc r19, r1 \n\t"             \
6264    "adc r20, r25 \n\t"            \
6265    "mul r9, r12 \n\t"             \
6266    "add r21, r0 \n\t"             \
6267    "adc r19, r1 \n\t"             \
6268    "adc r20, r25 \n\t"            \
6269    "st z+, r21 \n\t"              \
6270                                   \
6271    "ldi r21, 0 \n\t"              \
6272    "ld r0, z \n\t"                \
6273    "add r19, r0 \n\t"             \
6274    "adc r20, r25 \n\t"            \
6275    "ld r12, x+ \n\t"              \
6276    "ld r16, y+ \n\t"              \
6277    "mul r2, r16 \n\t"             \
6278    "add r19, r0 \n\t"             \
6279    "adc r20, r1 \n\t"             \
6280    "adc r21, r25 \n\t"            \
6281    "mul r6, r12 \n\t"             \
6282    "add r19, r0 \n\t"             \
6283    "adc r20, r1 \n\t"             \
6284    "adc r21, r25 \n\t"            \
6285    "mul r3, r15 \n\t"             \
6286    "add r19, r0 \n\t"             \
6287    "adc r20, r1 \n\t"             \
6288    "adc r21, r25 \n\t"            \
6289    "mul r7, r11 \n\t"             \
6290    "add r19, r0 \n\t"             \
6291    "adc r20, r1 \n\t"             \
6292    "adc r21, r25 \n\t"            \
6293    "mul r4, r14 \n\t"             \
6294    "add r19, r0 \n\t"             \
6295    "adc r20, r1 \n\t"             \
6296    "adc r21, r25 \n\t"            \
6297    "mul r8, r10 \n\t"             \
6298    "add r19, r0 \n\t"             \
6299    "adc r20, r1 \n\t"             \
6300    "adc r21, r25 \n\t"            \
6301    "mul r5, r17 \n\t"             \
6302    "add r19, r0 \n\t"             \
6303    "adc r20, r1 \n\t"             \
6304    "adc r21, r25 \n\t"            \
6305    "mul r9, r13 \n\t"             \
6306    "add r19, r0 \n\t"             \
6307    "adc r20, r1 \n\t"             \
6308    "adc r21, r25 \n\t"            \
6309    "st z+, r19 \n\t"              \
6310                                   \
6311    "ldi r19, 0 \n\t"              \
6312    "ld r0, z \n\t"                \
6313    "add r20, r0 \n\t"             \
6314    "adc r21, r25 \n\t"            \
6315    "ld r13, x+ \n\t"              \
6316    "ld r17, y+ \n\t"              \
6317    "mul r2, r17 \n\t"             \
6318    "add r20, r0 \n\t"             \
6319    "adc r21, r1 \n\t"             \
6320    "adc r19, r25 \n\t"            \
6321    "mul r6, r13 \n\t"             \
6322    "add r20, r0 \n\t"             \
6323    "adc r21, r1 \n\t"             \
6324    "adc r19, r25 \n\t"            \
6325    "mul r3, r16 \n\t"             \
6326    "add r20, r0 \n\t"             \
6327    "adc r21, r1 \n\t"             \
6328    "adc r19, r25 \n\t"            \
6329    "mul r7, r12 \n\t"             \
6330    "add r20, r0 \n\t"             \
6331    "adc r21, r1 \n\t"             \
6332    "adc r19, r25 \n\t"            \
6333    "mul r4, r15 \n\t"             \
6334    "add r20, r0 \n\t"             \
6335    "adc r21, r1 \n\t"             \
6336    "adc r19, r25 \n\t"            \
6337    "mul r8, r11 \n\t"             \
6338    "add r20, r0 \n\t"             \
6339    "adc r21, r1 \n\t"             \
6340    "adc r19, r25 \n\t"            \
6341    "mul r5, r14 \n\t"             \
6342    "add r20, r0 \n\t"             \
6343    "adc r21, r1 \n\t"             \
6344    "adc r19, r25 \n\t"            \
6345    "mul r9, r10 \n\t"             \
6346    "add r20, r0 \n\t"             \
6347    "adc r21, r1 \n\t"             \
6348    "adc r19, r25 \n\t"            \
6349    "st z+, r20 \n\t"              \
6350                                   \
6351    "ldi r20, 0 \n\t"              \
6352    "ld r0, z \n\t"                \
6353    "add r21, r0 \n\t"             \
6354    "adc r19, r25 \n\t"            \
6355    "ld r10, x+ \n\t"              \
6356    "ld r14, y+ \n\t"              \
6357    "mul r2, r14 \n\t"             \
6358    "add r21, r0 \n\t"             \
6359    "adc r19, r1 \n\t"             \
6360    "adc r20, r25 \n\t"            \
6361    "mul r6, r10 \n\t"             \
6362    "add r21, r0 \n\t"             \
6363    "adc r19, r1 \n\t"             \
6364    "adc r20, r25 \n\t"            \
6365    "mul r3, r17 \n\t"             \
6366    "add r21, r0 \n\t"             \
6367    "adc r19, r1 \n\t"             \
6368    "adc r20, r25 \n\t"            \
6369    "mul r7, r13 \n\t"             \
6370    "add r21, r0 \n\t"             \
6371    "adc r19, r1 \n\t"             \
6372    "adc r20, r25 \n\t"            \
6373    "mul r4, r16 \n\t"             \
6374    "add r21, r0 \n\t"             \
6375    "adc r19, r1 \n\t"             \
6376    "adc r20, r25 \n\t"            \
6377    "mul r8, r12 \n\t"             \
6378    "add r21, r0 \n\t"             \
6379    "adc r19, r1 \n\t"             \
6380    "adc r20, r25 \n\t"            \
6381    "mul r5, r15 \n\t"             \
6382    "add r21, r0 \n\t"             \
6383    "adc r19, r1 \n\t"             \
6384    "adc r20, r25 \n\t"            \
6385    "mul r9, r11 \n\t"             \
6386    "add r21, r0 \n\t"             \
6387    "adc r19, r1 \n\t"             \
6388    "adc r20, r25 \n\t"            \
6389    "st z+, r21 \n\t"              \
6390                                   \
6391    "ldi r21, 0 \n\t"              \
6392    "ld r0, z \n\t"                \
6393    "add r19, r0 \n\t"             \
6394    "adc r20, r25 \n\t"            \
6395    "ld r11, x+ \n\t"              \
6396    "ld r15, y+ \n\t"              \
6397    "mul r2, r15 \n\t"             \
6398    "add r19, r0 \n\t"             \
6399    "adc r20, r1 \n\t"             \
6400    "adc r21, r25 \n\t"            \
6401    "mul r6, r11 \n\t"             \
6402    "add r19, r0 \n\t"             \
6403    "adc r20, r1 \n\t"             \
6404    "adc r21, r25 \n\t"            \
6405    "mul r3, r14 \n\t"             \
6406    "add r19, r0 \n\t"             \
6407    "adc r20, r1 \n\t"             \
6408    "adc r21, r25 \n\t"            \
6409    "mul r7, r10 \n\t"             \
6410    "add r19, r0 \n\t"             \
6411    "adc r20, r1 \n\t"             \
6412    "adc r21, r25 \n\t"            \
6413    "mul r4, r17 \n\t"             \
6414    "add r19, r0 \n\t"             \
6415    "adc r20, r1 \n\t"             \
6416    "adc r21, r25 \n\t"            \
6417    "mul r8, r13 \n\t"             \
6418    "add r19, r0 \n\t"             \
6419    "adc r20, r1 \n\t"             \
6420    "adc r21, r25 \n\t"            \
6421    "mul r5, r16 \n\t"             \
6422    "add r19, r0 \n\t"             \
6423    "adc r20, r1 \n\t"             \
6424    "adc r21, r25 \n\t"            \
6425    "mul r9, r12 \n\t"             \
6426    "add r19, r0 \n\t"             \
6427    "adc r20, r1 \n\t"             \
6428    "adc r21, r25 \n\t"            \
6429    "st z+, r19 \n\t"              \
6430                                   \
6431    "ldi r19, 0 \n\t"              \
6432    "ld r0, z \n\t"                \
6433    "add r20, r0 \n\t"             \
6434    "adc r21, r25 \n\t"            \
6435    "ld r12, x+ \n\t"              \
6436    "ld r16, y+ \n\t"              \
6437    "mul r2, r16 \n\t"             \
6438    "add r20, r0 \n\t"             \
6439    "adc r21, r1 \n\t"             \
6440    "adc r19, r25 \n\t"            \
6441    "mul r6, r12 \n\t"             \
6442    "add r20, r0 \n\t"             \
6443    "adc r21, r1 \n\t"             \
6444    "adc r19, r25 \n\t"            \
6445    "mul r3, r15 \n\t"             \
6446    "add r20, r0 \n\t"             \
6447    "adc r21, r1 \n\t"             \
6448    "adc r19, r25 \n\t"            \
6449    "mul r7, r11 \n\t"             \
6450    "add r20, r0 \n\t"             \
6451    "adc r21, r1 \n\t"             \
6452    "adc r19, r25 \n\t"            \
6453    "mul r4, r14 \n\t"             \
6454    "add r20, r0 \n\t"             \
6455    "adc r21, r1 \n\t"             \
6456    "adc r19, r25 \n\t"            \
6457    "mul r8, r10 \n\t"             \
6458    "add r20, r0 \n\t"             \
6459    "adc r21, r1 \n\t"             \
6460    "adc r19, r25 \n\t"            \
6461    "mul r5, r17 \n\t"             \
6462    "add r20, r0 \n\t"             \
6463    "adc r21, r1 \n\t"             \
6464    "adc r19, r25 \n\t"            \
6465    "mul r9, r13 \n\t"             \
6466    "add r20, r0 \n\t"             \
6467    "adc r21, r1 \n\t"             \
6468    "adc r19, r25 \n\t"            \
6469    "st z+, r20 \n\t"              \
6470                                   \
6471    "ldi r20, 0 \n\t"              \
6472    "ld r0, z \n\t"                \
6473    "add r21, r0 \n\t"             \
6474    "adc r19, r25 \n\t"            \
6475    "ld r13, x+ \n\t"              \
6476    "ld r17, y+ \n\t"              \
6477    "mul r2, r17 \n\t"             \
6478    "add r21, r0 \n\t"             \
6479    "adc r19, r1 \n\t"             \
6480    "adc r20, r25 \n\t"            \
6481    "mul r6, r13 \n\t"             \
6482    "add r21, r0 \n\t"             \
6483    "adc r19, r1 \n\t"             \
6484    "adc r20, r25 \n\t"            \
6485    "mul r3, r16 \n\t"             \
6486    "add r21, r0 \n\t"             \
6487    "adc r19, r1 \n\t"             \
6488    "adc r20, r25 \n\t"            \
6489    "mul r7, r12 \n\t"             \
6490    "add r21, r0 \n\t"             \
6491    "adc r19, r1 \n\t"             \
6492    "adc r20, r25 \n\t"            \
6493    "mul r4, r15 \n\t"             \
6494    "add r21, r0 \n\t"             \
6495    "adc r19, r1 \n\t"             \
6496    "adc r20, r25 \n\t"            \
6497    "mul r8, r11 \n\t"             \
6498    "add r21, r0 \n\t"             \
6499    "adc r19, r1 \n\t"             \
6500    "adc r20, r25 \n\t"            \
6501    "mul r5, r14 \n\t"             \
6502    "add r21, r0 \n\t"             \
6503    "adc r19, r1 \n\t"             \
6504    "adc r20, r25 \n\t"            \
6505    "mul r9, r10 \n\t"             \
6506    "add r21, r0 \n\t"             \
6507    "adc r19, r1 \n\t"             \
6508    "adc r20, r25 \n\t"            \
6509    "st z+, r21 \n\t"              \
6510                                   \
6511    "ldi r21, 0 \n\t"              \
6512    "mul r11, r9 \n\t"             \
6513    "add r19, r0 \n\t"             \
6514    "adc r20, r1 \n\t"             \
6515    "adc r21, r25 \n\t"            \
6516    "mul r12, r8 \n\t"             \
6517    "add r19, r0 \n\t"             \
6518    "adc r20, r1 \n\t"             \
6519    "adc r21, r25 \n\t"            \
6520    "mul r13, r7 \n\t"             \
6521    "add r19, r0 \n\t"             \
6522    "adc r20, r1 \n\t"             \
6523    "adc r21, r25 \n\t"            \
6524    "mul r2, r6 \n\t"              \
6525    "add r19, r0 \n\t"             \
6526    "adc r20, r1 \n\t"             \
6527    "adc r21, r25 \n\t"            \
6528    "mul r3, r17 \n\t"             \
6529    "add r19, r0 \n\t"             \
6530    "adc r20, r1 \n\t"             \
6531    "adc r21, r25 \n\t"            \
6532    "mul r4, r16 \n\t"             \
6533    "add r19, r0 \n\t"             \
6534    "adc r20, r1 \n\t"             \
6535    "adc r21, r25 \n\t"            \
6536    "mul r5, r15 \n\t"             \
6537    "add r19, r0 \n\t"             \
6538    "adc r20, r1 \n\t"             \
6539    "adc r21, r25 \n\t"            \
6540    "st z+, r19 \n\t"              \
6541                                   \
6542    "ldi r19, 0 \n\t"              \
6543    "mul r12, r9 \n\t"             \
6544    "add r20, r0 \n\t"             \
6545    "adc r21, r1 \n\t"             \
6546    "adc r19, r25 \n\t"            \
6547    "mul r13, r8 \n\t"             \
6548    "add r20, r0 \n\t"             \
6549    "adc r21, r1 \n\t"             \
6550    "adc r19, r25 \n\t"            \
6551    "mul r2, r7 \n\t"              \
6552    "add r20, r0 \n\t"             \
6553    "adc r21, r1 \n\t"             \
6554    "adc r19, r25 \n\t"            \
6555    "mul r3, r6 \n\t"              \
6556    "add r20, r0 \n\t"             \
6557    "adc r21, r1 \n\t"             \
6558    "adc r19, r25 \n\t"            \
6559    "mul r4, r17 \n\t"             \
6560    "add r20, r0 \n\t"             \
6561    "adc r21, r1 \n\t"             \
6562    "adc r19, r25 \n\t"            \
6563    "mul r5, r16 \n\t"             \
6564    "add r20, r0 \n\t"             \
6565    "adc r21, r1 \n\t"             \
6566    "adc r19, r25 \n\t"            \
6567    "st z+, r20 \n\t"              \
6568                                   \
6569    "ldi r20, 0 \n\t"              \
6570    "mul r13, r9 \n\t"             \
6571    "add r21, r0 \n\t"             \
6572    "adc r19, r1 \n\t"             \
6573    "adc r20, r25 \n\t"            \
6574    "mul r2, r8 \n\t"              \
6575    "add r21, r0 \n\t"             \
6576    "adc r19, r1 \n\t"             \
6577    "adc r20, r25 \n\t"            \
6578    "mul r3, r7 \n\t"              \
6579    "add r21, r0 \n\t"             \
6580    "adc r19, r1 \n\t"             \
6581    "adc r20, r25 \n\t"            \
6582    "mul r4, r6 \n\t"              \
6583    "add r21, r0 \n\t"             \
6584    "adc r19, r1 \n\t"             \
6585    "adc r20, r25 \n\t"            \
6586    "mul r5, r17 \n\t"             \
6587    "add r21, r0 \n\t"             \
6588    "adc r19, r1 \n\t"             \
6589    "adc r20, r25 \n\t"            \
6590    "st z+, r21 \n\t"              \
6591                                   \
6592    "ldi r21, 0 \n\t"              \
6593    "mul r2, r9 \n\t"              \
6594    "add r19, r0 \n\t"             \
6595    "adc r20, r1 \n\t"             \
6596    "adc r21, r25 \n\t"            \
6597    "mul r3, r8 \n\t"              \
6598    "add r19, r0 \n\t"             \
6599    "adc r20, r1 \n\t"             \
6600    "adc r21, r25 \n\t"            \
6601    "mul r4, r7 \n\t"              \
6602    "add r19, r0 \n\t"             \
6603    "adc r20, r1 \n\t"             \
6604    "adc r21, r25 \n\t"            \
6605    "mul r5, r6 \n\t"              \
6606    "add r19, r0 \n\t"             \
6607    "adc r20, r1 \n\t"             \
6608    "adc r21, r25 \n\t"            \
6609    "st z+, r19 \n\t"              \
6610                                   \
6611    "ldi r19, 0 \n\t"              \
6612    "mul r3, r9 \n\t"              \
6613    "add r20, r0 \n\t"             \
6614    "adc r21, r1 \n\t"             \
6615    "adc r19, r25 \n\t"            \
6616    "mul r4, r8 \n\t"              \
6617    "add r20, r0 \n\t"             \
6618    "adc r21, r1 \n\t"             \
6619    "adc r19, r25 \n\t"            \
6620    "mul r5, r7 \n\t"              \
6621    "add r20, r0 \n\t"             \
6622    "adc r21, r1 \n\t"             \
6623    "adc r19, r25 \n\t"            \
6624    "st z+, r20 \n\t"              \
6625                                   \
6626    "ldi r20, 0 \n\t"              \
6627    "mul r4, r9 \n\t"              \
6628    "add r21, r0 \n\t"             \
6629    "adc r19, r1 \n\t"             \
6630    "adc r20, r25 \n\t"            \
6631    "mul r5, r8 \n\t"              \
6632    "add r21, r0 \n\t"             \
6633    "adc r19, r1 \n\t"             \
6634    "adc r20, r25 \n\t"            \
6635    "st z+, r21 \n\t"              \
6636                                   \
6637    "mul r5, r9 \n\t"              \
6638    "add r19, r0 \n\t"             \
6639    "adc r20, r1 \n\t"             \
6640    "st z+, r19 \n\t"              \
6641    "st z+, r20 \n\t"              \
6642    "adiw r26, 4 \n\t"             \
6643    "adiw r28, 4 \n\t"
6644
6645#define FAST_MULT_ASM_28   \
6646    "adiw r30, 20 \n\t"    \
6647    "adiw r28, 20 \n\t"    \
6648    "ld r2, x+ \n\t"       \
6649    "ld r3, x+ \n\t"       \
6650    "ld r4, x+ \n\t"       \
6651    "ld r5, x+ \n\t"       \
6652    "ld r6, x+ \n\t"       \
6653    "ld r7, x+ \n\t"       \
6654    "ld r8, x+ \n\t"       \
6655    "ld r9, x+ \n\t"       \
6656    "ld r12, y+ \n\t"      \
6657    "ld r13, y+ \n\t"      \
6658    "ld r14, y+ \n\t"      \
6659    "ld r15, y+ \n\t"      \
6660    "ld r16, y+ \n\t"      \
6661    "ld r17, y+ \n\t"      \
6662    "ld r18, y+ \n\t"      \
6663    "ld r19, y+ \n\t"      \
6664    "ldi r25, 0 \n\t"      \
6665                           \
6666    "ldi r23, 0 \n\t"      \
6667    "mul r2, r12 \n\t"     \
6668    "st z+, r0 \n\t"       \
6669    "mov r22, r1 \n\t"     \
6670                           \
6671    "ldi r24, 0 \n\t"      \
6672    "mul r2, r13 \n\t"     \
6673    "add r22, r0 \n\t"     \
6674    "adc r23, r1 \n\t"     \
6675    "mul r3, r12 \n\t"     \
6676    "add r22, r0 \n\t"     \
6677    "adc r23, r1 \n\t"     \
6678    "adc r24, r25 \n\t"    \
6679    "st z+, r22 \n\t"      \
6680                           \
6681    "ldi r22, 0 \n\t"      \
6682    "mul r2, r14 \n\t"     \
6683    "add r23, r0 \n\t"     \
6684    "adc r24, r1 \n\t"     \
6685    "adc r22, r25 \n\t"    \
6686    "mul r3, r13 \n\t"     \
6687    "add r23, r0 \n\t"     \
6688    "adc r24, r1 \n\t"     \
6689    "adc r22, r25 \n\t"    \
6690    "mul r4, r12 \n\t"     \
6691    "add r23, r0 \n\t"     \
6692    "adc r24, r1 \n\t"     \
6693    "adc r22, r25 \n\t"    \
6694    "st z+, r23 \n\t"      \
6695                           \
6696    "ldi r23, 0 \n\t"      \
6697    "mul r2, r15 \n\t"     \
6698    "add r24, r0 \n\t"     \
6699    "adc r22, r1 \n\t"     \
6700    "adc r23, r25 \n\t"    \
6701    "mul r3, r14 \n\t"     \
6702    "add r24, r0 \n\t"     \
6703    "adc r22, r1 \n\t"     \
6704    "adc r23, r25 \n\t"    \
6705    "mul r4, r13 \n\t"     \
6706    "add r24, r0 \n\t"     \
6707    "adc r22, r1 \n\t"     \
6708    "adc r23, r25 \n\t"    \
6709    "mul r5, r12 \n\t"     \
6710    "add r24, r0 \n\t"     \
6711    "adc r22, r1 \n\t"     \
6712    "adc r23, r25 \n\t"    \
6713    "st z+, r24 \n\t"      \
6714                           \
6715    "ldi r24, 0 \n\t"      \
6716    "mul r2, r16 \n\t"     \
6717    "add r22, r0 \n\t"     \
6718    "adc r23, r1 \n\t"     \
6719    "adc r24, r25 \n\t"    \
6720    "mul r3, r15 \n\t"     \
6721    "add r22, r0 \n\t"     \
6722    "adc r23, r1 \n\t"     \
6723    "adc r24, r25 \n\t"    \
6724    "mul r4, r14 \n\t"     \
6725    "add r22, r0 \n\t"     \
6726    "adc r23, r1 \n\t"     \
6727    "adc r24, r25 \n\t"    \
6728    "mul r5, r13 \n\t"     \
6729    "add r22, r0 \n\t"     \
6730    "adc r23, r1 \n\t"     \
6731    "adc r24, r25 \n\t"    \
6732    "mul r6, r12 \n\t"     \
6733    "add r22, r0 \n\t"     \
6734    "adc r23, r1 \n\t"     \
6735    "adc r24, r25 \n\t"    \
6736    "st z+, r22 \n\t"      \
6737                           \
6738    "ldi r22, 0 \n\t"      \
6739    "mul r2, r17 \n\t"     \
6740    "add r23, r0 \n\t"     \
6741    "adc r24, r1 \n\t"     \
6742    "adc r22, r25 \n\t"    \
6743    "mul r3, r16 \n\t"     \
6744    "add r23, r0 \n\t"     \
6745    "adc r24, r1 \n\t"     \
6746    "adc r22, r25 \n\t"    \
6747    "mul r4, r15 \n\t"     \
6748    "add r23, r0 \n\t"     \
6749    "adc r24, r1 \n\t"     \
6750    "adc r22, r25 \n\t"    \
6751    "mul r5, r14 \n\t"     \
6752    "add r23, r0 \n\t"     \
6753    "adc r24, r1 \n\t"     \
6754    "adc r22, r25 \n\t"    \
6755    "mul r6, r13 \n\t"     \
6756    "add r23, r0 \n\t"     \
6757    "adc r24, r1 \n\t"     \
6758    "adc r22, r25 \n\t"    \
6759    "mul r7, r12 \n\t"     \
6760    "add r23, r0 \n\t"     \
6761    "adc r24, r1 \n\t"     \
6762    "adc r22, r25 \n\t"    \
6763    "st z+, r23 \n\t"      \
6764                           \
6765    "ldi r23, 0 \n\t"      \
6766    "mul r2, r18 \n\t"     \
6767    "add r24, r0 \n\t"     \
6768    "adc r22, r1 \n\t"     \
6769    "adc r23, r25 \n\t"    \
6770    "mul r3, r17 \n\t"     \
6771    "add r24, r0 \n\t"     \
6772    "adc r22, r1 \n\t"     \
6773    "adc r23, r25 \n\t"    \
6774    "mul r4, r16 \n\t"     \
6775    "add r24, r0 \n\t"     \
6776    "adc r22, r1 \n\t"     \
6777    "adc r23, r25 \n\t"    \
6778    "mul r5, r15 \n\t"     \
6779    "add r24, r0 \n\t"     \
6780    "adc r22, r1 \n\t"     \
6781    "adc r23, r25 \n\t"    \
6782    "mul r6, r14 \n\t"     \
6783    "add r24, r0 \n\t"     \
6784    "adc r22, r1 \n\t"     \
6785    "adc r23, r25 \n\t"    \
6786    "mul r7, r13 \n\t"     \
6787    "add r24, r0 \n\t"     \
6788    "adc r22, r1 \n\t"     \
6789    "adc r23, r25 \n\t"    \
6790    "mul r8, r12 \n\t"     \
6791    "add r24, r0 \n\t"     \
6792    "adc r22, r1 \n\t"     \
6793    "adc r23, r25 \n\t"    \
6794    "st z+, r24 \n\t"      \
6795                           \
6796    "ldi r24, 0 \n\t"      \
6797    "mul r2, r19 \n\t"     \
6798    "add r22, r0 \n\t"     \
6799    "adc r23, r1 \n\t"     \
6800    "adc r24, r25 \n\t"    \
6801    "mul r3, r18 \n\t"     \
6802    "add r22, r0 \n\t"     \
6803    "adc r23, r1 \n\t"     \
6804    "adc r24, r25 \n\t"    \
6805    "mul r4, r17 \n\t"     \
6806    "add r22, r0 \n\t"     \
6807    "adc r23, r1 \n\t"     \
6808    "adc r24, r25 \n\t"    \
6809    "mul r5, r16 \n\t"     \
6810    "add r22, r0 \n\t"     \
6811    "adc r23, r1 \n\t"     \
6812    "adc r24, r25 \n\t"    \
6813    "mul r6, r15 \n\t"     \
6814    "add r22, r0 \n\t"     \
6815    "adc r23, r1 \n\t"     \
6816    "adc r24, r25 \n\t"    \
6817    "mul r7, r14 \n\t"     \
6818    "add r22, r0 \n\t"     \
6819    "adc r23, r1 \n\t"     \
6820    "adc r24, r25 \n\t"    \
6821    "mul r8, r13 \n\t"     \
6822    "add r22, r0 \n\t"     \
6823    "adc r23, r1 \n\t"     \
6824    "adc r24, r25 \n\t"    \
6825    "mul r9, r12 \n\t"     \
6826    "add r22, r0 \n\t"     \
6827    "adc r23, r1 \n\t"     \
6828    "adc r24, r25 \n\t"    \
6829    "st z+, r22 \n\t"      \
6830                           \
6831    "ldi r22, 0 \n\t"      \
6832    "mul r3, r19 \n\t"     \
6833    "add r23, r0 \n\t"     \
6834    "adc r24, r1 \n\t"     \
6835    "adc r22, r25 \n\t"    \
6836    "mul r4, r18 \n\t"     \
6837    "add r23, r0 \n\t"     \
6838    "adc r24, r1 \n\t"     \
6839    "adc r22, r25 \n\t"    \
6840    "mul r5, r17 \n\t"     \
6841    "add r23, r0 \n\t"     \
6842    "adc r24, r1 \n\t"     \
6843    "adc r22, r25 \n\t"    \
6844    "mul r6, r16 \n\t"     \
6845    "add r23, r0 \n\t"     \
6846    "adc r24, r1 \n\t"     \
6847    "adc r22, r25 \n\t"    \
6848    "mul r7, r15 \n\t"     \
6849    "add r23, r0 \n\t"     \
6850    "adc r24, r1 \n\t"     \
6851    "adc r22, r25 \n\t"    \
6852    "mul r8, r14 \n\t"     \
6853    "add r23, r0 \n\t"     \
6854    "adc r24, r1 \n\t"     \
6855    "adc r22, r25 \n\t"    \
6856    "mul r9, r13 \n\t"     \
6857    "add r23, r0 \n\t"     \
6858    "adc r24, r1 \n\t"     \
6859    "adc r22, r25 \n\t"    \
6860    "st z+, r23 \n\t"      \
6861                           \
6862    "ldi r23, 0 \n\t"      \
6863    "mul r4, r19 \n\t"     \
6864    "add r24, r0 \n\t"     \
6865    "adc r22, r1 \n\t"     \
6866    "adc r23, r25 \n\t"    \
6867    "mul r5, r18 \n\t"     \
6868    "add r24, r0 \n\t"     \
6869    "adc r22, r1 \n\t"     \
6870    "adc r23, r25 \n\t"    \
6871    "mul r6, r17 \n\t"     \
6872    "add r24, r0 \n\t"     \
6873    "adc r22, r1 \n\t"     \
6874    "adc r23, r25 \n\t"    \
6875    "mul r7, r16 \n\t"     \
6876    "add r24, r0 \n\t"     \
6877    "adc r22, r1 \n\t"     \
6878    "adc r23, r25 \n\t"    \
6879    "mul r8, r15 \n\t"     \
6880    "add r24, r0 \n\t"     \
6881    "adc r22, r1 \n\t"     \
6882    "adc r23, r25 \n\t"    \
6883    "mul r9, r14 \n\t"     \
6884    "add r24, r0 \n\t"     \
6885    "adc r22, r1 \n\t"     \
6886    "adc r23, r25 \n\t"    \
6887    "st z+, r24 \n\t"      \
6888                           \
6889    "ldi r24, 0 \n\t"      \
6890    "mul r5, r19 \n\t"     \
6891    "add r22, r0 \n\t"     \
6892    "adc r23, r1 \n\t"     \
6893    "adc r24, r25 \n\t"    \
6894    "mul r6, r18 \n\t"     \
6895    "add r22, r0 \n\t"     \
6896    "adc r23, r1 \n\t"     \
6897    "adc r24, r25 \n\t"    \
6898    "mul r7, r17 \n\t"     \
6899    "add r22, r0 \n\t"     \
6900    "adc r23, r1 \n\t"     \
6901    "adc r24, r25 \n\t"    \
6902    "mul r8, r16 \n\t"     \
6903    "add r22, r0 \n\t"     \
6904    "adc r23, r1 \n\t"     \
6905    "adc r24, r25 \n\t"    \
6906    "mul r9, r15 \n\t"     \
6907    "add r22, r0 \n\t"     \
6908    "adc r23, r1 \n\t"     \
6909    "adc r24, r25 \n\t"    \
6910    "st z+, r22 \n\t"      \
6911                           \
6912    "ldi r22, 0 \n\t"      \
6913    "mul r6, r19 \n\t"     \
6914    "add r23, r0 \n\t"     \
6915    "adc r24, r1 \n\t"     \
6916    "adc r22, r25 \n\t"    \
6917    "mul r7, r18 \n\t"     \
6918    "add r23, r0 \n\t"     \
6919    "adc r24, r1 \n\t"     \
6920    "adc r22, r25 \n\t"    \
6921    "mul r8, r17 \n\t"     \
6922    "add r23, r0 \n\t"     \
6923    "adc r24, r1 \n\t"     \
6924    "adc r22, r25 \n\t"    \
6925    "mul r9, r16 \n\t"     \
6926    "add r23, r0 \n\t"     \
6927    "adc r24, r1 \n\t"     \
6928    "adc r22, r25 \n\t"    \
6929    "st z+, r23 \n\t"      \
6930                           \
6931    "ldi r23, 0 \n\t"      \
6932    "mul r7, r19 \n\t"     \
6933    "add r24, r0 \n\t"     \
6934    "adc r22, r1 \n\t"     \
6935    "adc r23, r25 \n\t"    \
6936    "mul r8, r18 \n\t"     \
6937    "add r24, r0 \n\t"     \
6938    "adc r22, r1 \n\t"     \
6939    "adc r23, r25 \n\t"    \
6940    "mul r9, r17 \n\t"     \
6941    "add r24, r0 \n\t"     \
6942    "adc r22, r1 \n\t"     \
6943    "adc r23, r25 \n\t"    \
6944    "st z+, r24 \n\t"      \
6945                           \
6946    "ldi r24, 0 \n\t"      \
6947    "mul r8, r19 \n\t"     \
6948    "add r22, r0 \n\t"     \
6949    "adc r23, r1 \n\t"     \
6950    "adc r24, r25 \n\t"    \
6951    "mul r9, r18 \n\t"     \
6952    "add r22, r0 \n\t"     \
6953    "adc r23, r1 \n\t"     \
6954    "adc r24, r25 \n\t"    \
6955    "st z+, r22 \n\t"      \
6956                           \
6957    "mul r9, r19 \n\t"     \
6958    "add r23, r0 \n\t"     \
6959    "adc r24, r1 \n\t"     \
6960    "st z+, r23 \n\t"      \
6961    "st z+, r24 \n\t"      \
6962                           \
6963    "sbiw r30, 26 \n\t"    \
6964    "sbiw r28, 18 \n\t"    \
6965    "ld r12, y+ \n\t"      \
6966    "ld r13, y+ \n\t"      \
6967    "ld r14, y+ \n\t"      \
6968    "ld r15, y+ \n\t"      \
6969    "ld r16, y+ \n\t"      \
6970    "ld r17, y+ \n\t"      \
6971    "ld r18, y+ \n\t"      \
6972    "ld r19, y+ \n\t"      \
6973    "ld r20, y+ \n\t"      \
6974    "ld r21, y+ \n\t"      \
6975    "ld r10, x+ \n\t"      \
6976    "ld r11, x+ \n\t"      \
6977                           \
6978    "ldi r23, 0 \n\t"      \
6979    "mul r2, r12 \n\t"     \
6980    "st z+, r0 \n\t"       \
6981    "mov r22, r1 \n\t"     \
6982                           \
6983    "ldi r24, 0 \n\t"      \
6984    "mul r2, r13 \n\t"     \
6985    "add r22, r0 \n\t"     \
6986    "adc r23, r1 \n\t"     \
6987    "mul r3, r12 \n\t"     \
6988    "add r22, r0 \n\t"     \
6989    "adc r23, r1 \n\t"     \
6990    "adc r24, r25 \n\t"    \
6991    "st z+, r22 \n\t"      \
6992                           \
6993    "ldi r22, 0 \n\t"      \
6994    "mul r2, r14 \n\t"     \
6995    "add r23, r0 \n\t"     \
6996    "adc r24, r1 \n\t"     \
6997    "adc r22, r25 \n\t"    \
6998    "mul r3, r13 \n\t"     \
6999    "add r23, r0 \n\t"     \
7000    "adc r24, r1 \n\t"     \
7001    "adc r22, r25 \n\t"    \
7002    "mul r4, r12 \n\t"     \
7003    "add r23, r0 \n\t"     \
7004    "adc r24, r1 \n\t"     \
7005    "adc r22, r25 \n\t"    \
7006    "st z+, r23 \n\t"      \
7007                           \
7008    "ldi r23, 0 \n\t"      \
7009    "mul r2, r15 \n\t"     \
7010    "add r24, r0 \n\t"     \
7011    "adc r22, r1 \n\t"     \
7012    "adc r23, r25 \n\t"    \
7013    "mul r3, r14 \n\t"     \
7014    "add r24, r0 \n\t"     \
7015    "adc r22, r1 \n\t"     \
7016    "adc r23, r25 \n\t"    \
7017    "mul r4, r13 \n\t"     \
7018    "add r24, r0 \n\t"     \
7019    "adc r22, r1 \n\t"     \
7020    "adc r23, r25 \n\t"    \
7021    "mul r5, r12 \n\t"     \
7022    "add r24, r0 \n\t"     \
7023    "adc r22, r1 \n\t"     \
7024    "adc r23, r25 \n\t"    \
7025    "st z+, r24 \n\t"      \
7026                           \
7027    "ldi r24, 0 \n\t"      \
7028    "mul r2, r16 \n\t"     \
7029    "add r22, r0 \n\t"     \
7030    "adc r23, r1 \n\t"     \
7031    "adc r24, r25 \n\t"    \
7032    "mul r3, r15 \n\t"     \
7033    "add r22, r0 \n\t"     \
7034    "adc r23, r1 \n\t"     \
7035    "adc r24, r25 \n\t"    \
7036    "mul r4, r14 \n\t"     \
7037    "add r22, r0 \n\t"     \
7038    "adc r23, r1 \n\t"     \
7039    "adc r24, r25 \n\t"    \
7040    "mul r5, r13 \n\t"     \
7041    "add r22, r0 \n\t"     \
7042    "adc r23, r1 \n\t"     \
7043    "adc r24, r25 \n\t"    \
7044    "mul r6, r12 \n\t"     \
7045    "add r22, r0 \n\t"     \
7046    "adc r23, r1 \n\t"     \
7047    "adc r24, r25 \n\t"    \
7048    "st z+, r22 \n\t"      \
7049                           \
7050    "ldi r22, 0 \n\t"      \
7051    "mul r2, r17 \n\t"     \
7052    "add r23, r0 \n\t"     \
7053    "adc r24, r1 \n\t"     \
7054    "adc r22, r25 \n\t"    \
7055    "mul r3, r16 \n\t"     \
7056    "add r23, r0 \n\t"     \
7057    "adc r24, r1 \n\t"     \
7058    "adc r22, r25 \n\t"    \
7059    "mul r4, r15 \n\t"     \
7060    "add r23, r0 \n\t"     \
7061    "adc r24, r1 \n\t"     \
7062    "adc r22, r25 \n\t"    \
7063    "mul r5, r14 \n\t"     \
7064    "add r23, r0 \n\t"     \
7065    "adc r24, r1 \n\t"     \
7066    "adc r22, r25 \n\t"    \
7067    "mul r6, r13 \n\t"     \
7068    "add r23, r0 \n\t"     \
7069    "adc r24, r1 \n\t"     \
7070    "adc r22, r25 \n\t"    \
7071    "mul r7, r12 \n\t"     \
7072    "add r23, r0 \n\t"     \
7073    "adc r24, r1 \n\t"     \
7074    "adc r22, r25 \n\t"    \
7075    "st z+, r23 \n\t"      \
7076                           \
7077    "ldi r23, 0 \n\t"      \
7078    "mul r2, r18 \n\t"     \
7079    "add r24, r0 \n\t"     \
7080    "adc r22, r1 \n\t"     \
7081    "adc r23, r25 \n\t"    \
7082    "mul r3, r17 \n\t"     \
7083    "add r24, r0 \n\t"     \
7084    "adc r22, r1 \n\t"     \
7085    "adc r23, r25 \n\t"    \
7086    "mul r4, r16 \n\t"     \
7087    "add r24, r0 \n\t"     \
7088    "adc r22, r1 \n\t"     \
7089    "adc r23, r25 \n\t"    \
7090    "mul r5, r15 \n\t"     \
7091    "add r24, r0 \n\t"     \
7092    "adc r22, r1 \n\t"     \
7093    "adc r23, r25 \n\t"    \
7094    "mul r6, r14 \n\t"     \
7095    "add r24, r0 \n\t"     \
7096    "adc r22, r1 \n\t"     \
7097    "adc r23, r25 \n\t"    \
7098    "mul r7, r13 \n\t"     \
7099    "add r24, r0 \n\t"     \
7100    "adc r22, r1 \n\t"     \
7101    "adc r23, r25 \n\t"    \
7102    "mul r8, r12 \n\t"     \
7103    "add r24, r0 \n\t"     \
7104    "adc r22, r1 \n\t"     \
7105    "adc r23, r25 \n\t"    \
7106    "st z+, r24 \n\t"      \
7107                           \
7108    "ldi r24, 0 \n\t"      \
7109    "mul r2, r19 \n\t"     \
7110    "add r22, r0 \n\t"     \
7111    "adc r23, r1 \n\t"     \
7112    "adc r24, r25 \n\t"    \
7113    "mul r3, r18 \n\t"     \
7114    "add r22, r0 \n\t"     \
7115    "adc r23, r1 \n\t"     \
7116    "adc r24, r25 \n\t"    \
7117    "mul r4, r17 \n\t"     \
7118    "add r22, r0 \n\t"     \
7119    "adc r23, r1 \n\t"     \
7120    "adc r24, r25 \n\t"    \
7121    "mul r5, r16 \n\t"     \
7122    "add r22, r0 \n\t"     \
7123    "adc r23, r1 \n\t"     \
7124    "adc r24, r25 \n\t"    \
7125    "mul r6, r15 \n\t"     \
7126    "add r22, r0 \n\t"     \
7127    "adc r23, r1 \n\t"     \
7128    "adc r24, r25 \n\t"    \
7129    "mul r7, r14 \n\t"     \
7130    "add r22, r0 \n\t"     \
7131    "adc r23, r1 \n\t"     \
7132    "adc r24, r25 \n\t"    \
7133    "mul r8, r13 \n\t"     \
7134    "add r22, r0 \n\t"     \
7135    "adc r23, r1 \n\t"     \
7136    "adc r24, r25 \n\t"    \
7137    "mul r9, r12 \n\t"     \
7138    "add r22, r0 \n\t"     \
7139    "adc r23, r1 \n\t"     \
7140    "adc r24, r25 \n\t"    \
7141    "st z+, r22 \n\t"      \
7142                           \
7143    "ldi r22, 0 \n\t"      \
7144    "mul r2, r20 \n\t"     \
7145    "add r23, r0 \n\t"     \
7146    "adc r24, r1 \n\t"     \
7147    "adc r22, r25 \n\t"    \
7148    "mul r3, r19 \n\t"     \
7149    "add r23, r0 \n\t"     \
7150    "adc r24, r1 \n\t"     \
7151    "adc r22, r25 \n\t"    \
7152    "mul r4, r18 \n\t"     \
7153    "add r23, r0 \n\t"     \
7154    "adc r24, r1 \n\t"     \
7155    "adc r22, r25 \n\t"    \
7156    "mul r5, r17 \n\t"     \
7157    "add r23, r0 \n\t"     \
7158    "adc r24, r1 \n\t"     \
7159    "adc r22, r25 \n\t"    \
7160    "mul r6, r16 \n\t"     \
7161    "add r23, r0 \n\t"     \
7162    "adc r24, r1 \n\t"     \
7163    "adc r22, r25 \n\t"    \
7164    "mul r7, r15 \n\t"     \
7165    "add r23, r0 \n\t"     \
7166    "adc r24, r1 \n\t"     \
7167    "adc r22, r25 \n\t"    \
7168    "mul r8, r14 \n\t"     \
7169    "add r23, r0 \n\t"     \
7170    "adc r24, r1 \n\t"     \
7171    "adc r22, r25 \n\t"    \
7172    "mul r9, r13 \n\t"     \
7173    "add r23, r0 \n\t"     \
7174    "adc r24, r1 \n\t"     \
7175    "adc r22, r25 \n\t"    \
7176    "mul r10, r12 \n\t"    \
7177    "add r23, r0 \n\t"     \
7178    "adc r24, r1 \n\t"     \
7179    "adc r22, r25 \n\t"    \
7180    "st z+, r23 \n\t"      \
7181                           \
7182    "ldi r23, 0 \n\t"      \
7183    "mul r2, r21 \n\t"     \
7184    "add r24, r0 \n\t"     \
7185    "adc r22, r1 \n\t"     \
7186    "adc r23, r25 \n\t"    \
7187    "mul r3, r20 \n\t"     \
7188    "add r24, r0 \n\t"     \
7189    "adc r22, r1 \n\t"     \
7190    "adc r23, r25 \n\t"    \
7191    "mul r4, r19 \n\t"     \
7192    "add r24, r0 \n\t"     \
7193    "adc r22, r1 \n\t"     \
7194    "adc r23, r25 \n\t"    \
7195    "mul r5, r18 \n\t"     \
7196    "add r24, r0 \n\t"     \
7197    "adc r22, r1 \n\t"     \
7198    "adc r23, r25 \n\t"    \
7199    "mul r6, r17 \n\t"     \
7200    "add r24, r0 \n\t"     \
7201    "adc r22, r1 \n\t"     \
7202    "adc r23, r25 \n\t"    \
7203    "mul r7, r16 \n\t"     \
7204    "add r24, r0 \n\t"     \
7205    "adc r22, r1 \n\t"     \
7206    "adc r23, r25 \n\t"    \
7207    "mul r8, r15 \n\t"     \
7208    "add r24, r0 \n\t"     \
7209    "adc r22, r1 \n\t"     \
7210    "adc r23, r25 \n\t"    \
7211    "mul r9, r14 \n\t"     \
7212    "add r24, r0 \n\t"     \
7213    "adc r22, r1 \n\t"     \
7214    "adc r23, r25 \n\t"    \
7215    "mul r10, r13 \n\t"    \
7216    "add r24, r0 \n\t"     \
7217    "adc r22, r1 \n\t"     \
7218    "adc r23, r25 \n\t"    \
7219    "mul r11, r12 \n\t"    \
7220    "add r24, r0 \n\t"     \
7221    "adc r22, r1 \n\t"     \
7222    "adc r23, r25 \n\t"    \
7223    "st z+, r24 \n\t"      \
7224                           \
7225    "ld r2, x+ \n\t"       \
7226    "ldi r24, 0 \n\t"      \
7227    "mul r3, r21 \n\t"     \
7228    "add r22, r0 \n\t"     \
7229    "adc r23, r1 \n\t"     \
7230    "adc r24, r25 \n\t"    \
7231    "mul r4, r20 \n\t"     \
7232    "add r22, r0 \n\t"     \
7233    "adc r23, r1 \n\t"     \
7234    "adc r24, r25 \n\t"    \
7235    "mul r5, r19 \n\t"     \
7236    "add r22, r0 \n\t"     \
7237    "adc r23, r1 \n\t"     \
7238    "adc r24, r25 \n\t"    \
7239    "mul r6, r18 \n\t"     \
7240    "add r22, r0 \n\t"     \
7241    "adc r23, r1 \n\t"     \
7242    "adc r24, r25 \n\t"    \
7243    "mul r7, r17 \n\t"     \
7244    "add r22, r0 \n\t"     \
7245    "adc r23, r1 \n\t"     \
7246    "adc r24, r25 \n\t"    \
7247    "mul r8, r16 \n\t"     \
7248    "add r22, r0 \n\t"     \
7249    "adc r23, r1 \n\t"     \
7250    "adc r24, r25 \n\t"    \
7251    "mul r9, r15 \n\t"     \
7252    "add r22, r0 \n\t"     \
7253    "adc r23, r1 \n\t"     \
7254    "adc r24, r25 \n\t"    \
7255    "mul r10, r14 \n\t"    \
7256    "add r22, r0 \n\t"     \
7257    "adc r23, r1 \n\t"     \
7258    "adc r24, r25 \n\t"    \
7259    "mul r11, r13 \n\t"    \
7260    "add r22, r0 \n\t"     \
7261    "adc r23, r1 \n\t"     \
7262    "adc r24, r25 \n\t"    \
7263    "mul r2, r12 \n\t"     \
7264    "add r22, r0 \n\t"     \
7265    "adc r23, r1 \n\t"     \
7266    "adc r24, r25 \n\t"    \
7267    "ld r0, z \n\t"        \
7268    "add r22, r0 \n\t"     \
7269    "adc r23, r25 \n\t"    \
7270    "adc r24, r25 \n\t"    \
7271    "st z+, r22 \n\t"      \
7272                           \
7273    "ld r3, x+ \n\t"       \
7274    "ldi r22, 0 \n\t"      \
7275    "mul r4, r21 \n\t"     \
7276    "add r23, r0 \n\t"     \
7277    "adc r24, r1 \n\t"     \
7278    "adc r22, r25 \n\t"    \
7279    "mul r5, r20 \n\t"     \
7280    "add r23, r0 \n\t"     \
7281    "adc r24, r1 \n\t"     \
7282    "adc r22, r25 \n\t"    \
7283    "mul r6, r19 \n\t"     \
7284    "add r23, r0 \n\t"     \
7285    "adc r24, r1 \n\t"     \
7286    "adc r22, r25 \n\t"    \
7287    "mul r7, r18 \n\t"     \
7288    "add r23, r0 \n\t"     \
7289    "adc r24, r1 \n\t"     \
7290    "adc r22, r25 \n\t"    \
7291    "mul r8, r17 \n\t"     \
7292    "add r23, r0 \n\t"     \
7293    "adc r24, r1 \n\t"     \
7294    "adc r22, r25 \n\t"    \
7295    "mul r9, r16 \n\t"     \
7296    "add r23, r0 \n\t"     \
7297    "adc r24, r1 \n\t"     \
7298    "adc r22, r25 \n\t"    \
7299    "mul r10, r15 \n\t"    \
7300    "add r23, r0 \n\t"     \
7301    "adc r24, r1 \n\t"     \
7302    "adc r22, r25 \n\t"    \
7303    "mul r11, r14 \n\t"    \
7304    "add r23, r0 \n\t"     \
7305    "adc r24, r1 \n\t"     \
7306    "adc r22, r25 \n\t"    \
7307    "mul r2, r13 \n\t"     \
7308    "add r23, r0 \n\t"     \
7309    "adc r24, r1 \n\t"     \
7310    "adc r22, r25 \n\t"    \
7311    "mul r3, r12 \n\t"     \
7312    "add r23, r0 \n\t"     \
7313    "adc r24, r1 \n\t"     \
7314    "adc r22, r25 \n\t"    \
7315    "ld r0, z \n\t"        \
7316    "add r23, r0 \n\t"     \
7317    "adc r24, r25 \n\t"    \
7318    "adc r22, r25 \n\t"    \
7319    "st z+, r23 \n\t"      \
7320                           \
7321    "ld r4, x+ \n\t"       \
7322    "ldi r23, 0 \n\t"      \
7323    "mul r5, r21 \n\t"     \
7324    "add r24, r0 \n\t"     \
7325    "adc r22, r1 \n\t"     \
7326    "adc r23, r25 \n\t"    \
7327    "mul r6, r20 \n\t"     \
7328    "add r24, r0 \n\t"     \
7329    "adc r22, r1 \n\t"     \
7330    "adc r23, r25 \n\t"    \
7331    "mul r7, r19 \n\t"     \
7332    "add r24, r0 \n\t"     \
7333    "adc r22, r1 \n\t"     \
7334    "adc r23, r25 \n\t"    \
7335    "mul r8, r18 \n\t"     \
7336    "add r24, r0 \n\t"     \
7337    "adc r22, r1 \n\t"     \
7338    "adc r23, r25 \n\t"    \
7339    "mul r9, r17 \n\t"     \
7340    "add r24, r0 \n\t"     \
7341    "adc r22, r1 \n\t"     \
7342    "adc r23, r25 \n\t"    \
7343    "mul r10, r16 \n\t"    \
7344    "add r24, r0 \n\t"     \
7345    "adc r22, r1 \n\t"     \
7346    "adc r23, r25 \n\t"    \
7347    "mul r11, r15 \n\t"    \
7348    "add r24, r0 \n\t"     \
7349    "adc r22, r1 \n\t"     \
7350    "adc r23, r25 \n\t"    \
7351    "mul r2, r14 \n\t"     \
7352    "add r24, r0 \n\t"     \
7353    "adc r22, r1 \n\t"     \
7354    "adc r23, r25 \n\t"    \
7355    "mul r3, r13 \n\t"     \
7356    "add r24, r0 \n\t"     \
7357    "adc r22, r1 \n\t"     \
7358    "adc r23, r25 \n\t"    \
7359    "mul r4, r12 \n\t"     \
7360    "add r24, r0 \n\t"     \
7361    "adc r22, r1 \n\t"     \
7362    "adc r23, r25 \n\t"    \
7363    "ld r0, z \n\t"        \
7364    "add r24, r0 \n\t"     \
7365    "adc r22, r25 \n\t"    \
7366    "adc r23, r25 \n\t"    \
7367    "st z+, r24 \n\t"      \
7368                           \
7369    "ld r5, x+ \n\t"       \
7370    "ldi r24, 0 \n\t"      \
7371    "mul r6, r21 \n\t"     \
7372    "add r22, r0 \n\t"     \
7373    "adc r23, r1 \n\t"     \
7374    "adc r24, r25 \n\t"    \
7375    "mul r7, r20 \n\t"     \
7376    "add r22, r0 \n\t"     \
7377    "adc r23, r1 \n\t"     \
7378    "adc r24, r25 \n\t"    \
7379    "mul r8, r19 \n\t"     \
7380    "add r22, r0 \n\t"     \
7381    "adc r23, r1 \n\t"     \
7382    "adc r24, r25 \n\t"    \
7383    "mul r9, r18 \n\t"     \
7384    "add r22, r0 \n\t"     \
7385    "adc r23, r1 \n\t"     \
7386    "adc r24, r25 \n\t"    \
7387    "mul r10, r17 \n\t"    \
7388    "add r22, r0 \n\t"     \
7389    "adc r23, r1 \n\t"     \
7390    "adc r24, r25 \n\t"    \
7391    "mul r11, r16 \n\t"    \
7392    "add r22, r0 \n\t"     \
7393    "adc r23, r1 \n\t"     \
7394    "adc r24, r25 \n\t"    \
7395    "mul r2, r15 \n\t"     \
7396    "add r22, r0 \n\t"     \
7397    "adc r23, r1 \n\t"     \
7398    "adc r24, r25 \n\t"    \
7399    "mul r3, r14 \n\t"     \
7400    "add r22, r0 \n\t"     \
7401    "adc r23, r1 \n\t"     \
7402    "adc r24, r25 \n\t"    \
7403    "mul r4, r13 \n\t"     \
7404    "add r22, r0 \n\t"     \
7405    "adc r23, r1 \n\t"     \
7406    "adc r24, r25 \n\t"    \
7407    "mul r5, r12 \n\t"     \
7408    "add r22, r0 \n\t"     \
7409    "adc r23, r1 \n\t"     \
7410    "adc r24, r25 \n\t"    \
7411    "ld r0, z \n\t"        \
7412    "add r22, r0 \n\t"     \
7413    "adc r23, r25 \n\t"    \
7414    "adc r24, r25 \n\t"    \
7415    "st z+, r22 \n\t"      \
7416                           \
7417    "ld r6, x+ \n\t"       \
7418    "ldi r22, 0 \n\t"      \
7419    "mul r7, r21 \n\t"     \
7420    "add r23, r0 \n\t"     \
7421    "adc r24, r1 \n\t"     \
7422    "adc r22, r25 \n\t"    \
7423    "mul r8, r20 \n\t"     \
7424    "add r23, r0 \n\t"     \
7425    "adc r24, r1 \n\t"     \
7426    "adc r22, r25 \n\t"    \
7427    "mul r9, r19 \n\t"     \
7428    "add r23, r0 \n\t"     \
7429    "adc r24, r1 \n\t"     \
7430    "adc r22, r25 \n\t"    \
7431    "mul r10, r18 \n\t"    \
7432    "add r23, r0 \n\t"     \
7433    "adc r24, r1 \n\t"     \
7434    "adc r22, r25 \n\t"    \
7435    "mul r11, r17 \n\t"    \
7436    "add r23, r0 \n\t"     \
7437    "adc r24, r1 \n\t"     \
7438    "adc r22, r25 \n\t"    \
7439    "mul r2, r16 \n\t"     \
7440    "add r23, r0 \n\t"     \
7441    "adc r24, r1 \n\t"     \
7442    "adc r22, r25 \n\t"    \
7443    "mul r3, r15 \n\t"     \
7444    "add r23, r0 \n\t"     \
7445    "adc r24, r1 \n\t"     \
7446    "adc r22, r25 \n\t"    \
7447    "mul r4, r14 \n\t"     \
7448    "add r23, r0 \n\t"     \
7449    "adc r24, r1 \n\t"     \
7450    "adc r22, r25 \n\t"    \
7451    "mul r5, r13 \n\t"     \
7452    "add r23, r0 \n\t"     \
7453    "adc r24, r1 \n\t"     \
7454    "adc r22, r25 \n\t"    \
7455    "mul r6, r12 \n\t"     \
7456    "add r23, r0 \n\t"     \
7457    "adc r24, r1 \n\t"     \
7458    "adc r22, r25 \n\t"    \
7459    "ld r0, z \n\t"        \
7460    "add r23, r0 \n\t"     \
7461    "adc r24, r25 \n\t"    \
7462    "adc r22, r25 \n\t"    \
7463    "st z+, r23 \n\t"      \
7464                           \
7465    "ld r7, x+ \n\t"       \
7466    "ldi r23, 0 \n\t"      \
7467    "mul r8, r21 \n\t"     \
7468    "add r24, r0 \n\t"     \
7469    "adc r22, r1 \n\t"     \
7470    "adc r23, r25 \n\t"    \
7471    "mul r9, r20 \n\t"     \
7472    "add r24, r0 \n\t"     \
7473    "adc r22, r1 \n\t"     \
7474    "adc r23, r25 \n\t"    \
7475    "mul r10, r19 \n\t"    \
7476    "add r24, r0 \n\t"     \
7477    "adc r22, r1 \n\t"     \
7478    "adc r23, r25 \n\t"    \
7479    "mul r11, r18 \n\t"    \
7480    "add r24, r0 \n\t"     \
7481    "adc r22, r1 \n\t"     \
7482    "adc r23, r25 \n\t"    \
7483    "mul r2, r17 \n\t"     \
7484    "add r24, r0 \n\t"     \
7485    "adc r22, r1 \n\t"     \
7486    "adc r23, r25 \n\t"    \
7487    "mul r3, r16 \n\t"     \
7488    "add r24, r0 \n\t"     \
7489    "adc r22, r1 \n\t"     \
7490    "adc r23, r25 \n\t"    \
7491    "mul r4, r15 \n\t"     \
7492    "add r24, r0 \n\t"     \
7493    "adc r22, r1 \n\t"     \
7494    "adc r23, r25 \n\t"    \
7495    "mul r5, r14 \n\t"     \
7496    "add r24, r0 \n\t"     \
7497    "adc r22, r1 \n\t"     \
7498    "adc r23, r25 \n\t"    \
7499    "mul r6, r13 \n\t"     \
7500    "add r24, r0 \n\t"     \
7501    "adc r22, r1 \n\t"     \
7502    "adc r23, r25 \n\t"    \
7503    "mul r7, r12 \n\t"     \
7504    "add r24, r0 \n\t"     \
7505    "adc r22, r1 \n\t"     \
7506    "adc r23, r25 \n\t"    \
7507    "ld r0, z \n\t"        \
7508    "add r24, r0 \n\t"     \
7509    "adc r22, r25 \n\t"    \
7510    "adc r23, r25 \n\t"    \
7511    "st z+, r24 \n\t"      \
7512                           \
7513    "ld r8, x+ \n\t"       \
7514    "ldi r24, 0 \n\t"      \
7515    "mul r9, r21 \n\t"     \
7516    "add r22, r0 \n\t"     \
7517    "adc r23, r1 \n\t"     \
7518    "adc r24, r25 \n\t"    \
7519    "mul r10, r20 \n\t"    \
7520    "add r22, r0 \n\t"     \
7521    "adc r23, r1 \n\t"     \
7522    "adc r24, r25 \n\t"    \
7523    "mul r11, r19 \n\t"    \
7524    "add r22, r0 \n\t"     \
7525    "adc r23, r1 \n\t"     \
7526    "adc r24, r25 \n\t"    \
7527    "mul r2, r18 \n\t"     \
7528    "add r22, r0 \n\t"     \
7529    "adc r23, r1 \n\t"     \
7530    "adc r24, r25 \n\t"    \
7531    "mul r3, r17 \n\t"     \
7532    "add r22, r0 \n\t"     \
7533    "adc r23, r1 \n\t"     \
7534    "adc r24, r25 \n\t"    \
7535    "mul r4, r16 \n\t"     \
7536    "add r22, r0 \n\t"     \
7537    "adc r23, r1 \n\t"     \
7538    "adc r24, r25 \n\t"    \
7539    "mul r5, r15 \n\t"     \
7540    "add r22, r0 \n\t"     \
7541    "adc r23, r1 \n\t"     \
7542    "adc r24, r25 \n\t"    \
7543    "mul r6, r14 \n\t"     \
7544    "add r22, r0 \n\t"     \
7545    "adc r23, r1 \n\t"     \
7546    "adc r24, r25 \n\t"    \
7547    "mul r7, r13 \n\t"     \
7548    "add r22, r0 \n\t"     \
7549    "adc r23, r1 \n\t"     \
7550    "adc r24, r25 \n\t"    \
7551    "mul r8, r12 \n\t"     \
7552    "add r22, r0 \n\t"     \
7553    "adc r23, r1 \n\t"     \
7554    "adc r24, r25 \n\t"    \
7555    "ld r0, z \n\t"        \
7556    "add r22, r0 \n\t"     \
7557    "adc r23, r25 \n\t"    \
7558    "adc r24, r25 \n\t"    \
7559    "st z+, r22 \n\t"      \
7560                           \
7561    "ld r9, x+ \n\t"       \
7562    "ldi r22, 0 \n\t"      \
7563    "mul r10, r21 \n\t"    \
7564    "add r23, r0 \n\t"     \
7565    "adc r24, r1 \n\t"     \
7566    "adc r22, r25 \n\t"    \
7567    "mul r11, r20 \n\t"    \
7568    "add r23, r0 \n\t"     \
7569    "adc r24, r1 \n\t"     \
7570    "adc r22, r25 \n\t"    \
7571    "mul r2, r19 \n\t"     \
7572    "add r23, r0 \n\t"     \
7573    "adc r24, r1 \n\t"     \
7574    "adc r22, r25 \n\t"    \
7575    "mul r3, r18 \n\t"     \
7576    "add r23, r0 \n\t"     \
7577    "adc r24, r1 \n\t"     \
7578    "adc r22, r25 \n\t"    \
7579    "mul r4, r17 \n\t"     \
7580    "add r23, r0 \n\t"     \
7581    "adc r24, r1 \n\t"     \
7582    "adc r22, r25 \n\t"    \
7583    "mul r5, r16 \n\t"     \
7584    "add r23, r0 \n\t"     \
7585    "adc r24, r1 \n\t"     \
7586    "adc r22, r25 \n\t"    \
7587    "mul r6, r15 \n\t"     \
7588    "add r23, r0 \n\t"     \
7589    "adc r24, r1 \n\t"     \
7590    "adc r22, r25 \n\t"    \
7591    "mul r7, r14 \n\t"     \
7592    "add r23, r0 \n\t"     \
7593    "adc r24, r1 \n\t"     \
7594    "adc r22, r25 \n\t"    \
7595    "mul r8, r13 \n\t"     \
7596    "add r23, r0 \n\t"     \
7597    "adc r24, r1 \n\t"     \
7598    "adc r22, r25 \n\t"    \
7599    "mul r9, r12 \n\t"     \
7600    "add r23, r0 \n\t"     \
7601    "adc r24, r1 \n\t"     \
7602    "adc r22, r25 \n\t"    \
7603    "ld r0, z \n\t"        \
7604    "add r23, r0 \n\t"     \
7605    "adc r24, r25 \n\t"    \
7606    "adc r22, r25 \n\t"    \
7607    "st z+, r23 \n\t"      \
7608                           \
7609    "ld r12, y+ \n\t"      \
7610    "ldi r23, 0 \n\t"      \
7611    "mul r10, r12 \n\t"    \
7612    "add r24, r0 \n\t"     \
7613    "adc r22, r1 \n\t"     \
7614    "adc r23, r25 \n\t"    \
7615    "mul r11, r21 \n\t"    \
7616    "add r24, r0 \n\t"     \
7617    "adc r22, r1 \n\t"     \
7618    "adc r23, r25 \n\t"    \
7619    "mul r2, r20 \n\t"     \
7620    "add r24, r0 \n\t"     \
7621    "adc r22, r1 \n\t"     \
7622    "adc r23, r25 \n\t"    \
7623    "mul r3, r19 \n\t"     \
7624    "add r24, r0 \n\t"     \
7625    "adc r22, r1 \n\t"     \
7626    "adc r23, r25 \n\t"    \
7627    "mul r4, r18 \n\t"     \
7628    "add r24, r0 \n\t"     \
7629    "adc r22, r1 \n\t"     \
7630    "adc r23, r25 \n\t"    \
7631    "mul r5, r17 \n\t"     \
7632    "add r24, r0 \n\t"     \
7633    "adc r22, r1 \n\t"     \
7634    "adc r23, r25 \n\t"    \
7635    "mul r6, r16 \n\t"     \
7636    "add r24, r0 \n\t"     \
7637    "adc r22, r1 \n\t"     \
7638    "adc r23, r25 \n\t"    \
7639    "mul r7, r15 \n\t"     \
7640    "add r24, r0 \n\t"     \
7641    "adc r22, r1 \n\t"     \
7642    "adc r23, r25 \n\t"    \
7643    "mul r8, r14 \n\t"     \
7644    "add r24, r0 \n\t"     \
7645    "adc r22, r1 \n\t"     \
7646    "adc r23, r25 \n\t"    \
7647    "mul r9, r13 \n\t"     \
7648    "add r24, r0 \n\t"     \
7649    "adc r22, r1 \n\t"     \
7650    "adc r23, r25 \n\t"    \
7651    "ld r0, z \n\t"        \
7652    "add r24, r0 \n\t"     \
7653    "adc r22, r25 \n\t"    \
7654    "adc r23, r25 \n\t"    \
7655    "st z+, r24 \n\t"      \
7656                           \
7657    "ld r13, y+ \n\t"      \
7658    "ldi r24, 0 \n\t"      \
7659    "mul r10, r13 \n\t"    \
7660    "add r22, r0 \n\t"     \
7661    "adc r23, r1 \n\t"     \
7662    "adc r24, r25 \n\t"    \
7663    "mul r11, r12 \n\t"    \
7664    "add r22, r0 \n\t"     \
7665    "adc r23, r1 \n\t"     \
7666    "adc r24, r25 \n\t"    \
7667    "mul r2, r21 \n\t"     \
7668    "add r22, r0 \n\t"     \
7669    "adc r23, r1 \n\t"     \
7670    "adc r24, r25 \n\t"    \
7671    "mul r3, r20 \n\t"     \
7672    "add r22, r0 \n\t"     \
7673    "adc r23, r1 \n\t"     \
7674    "adc r24, r25 \n\t"    \
7675    "mul r4, r19 \n\t"     \
7676    "add r22, r0 \n\t"     \
7677    "adc r23, r1 \n\t"     \
7678    "adc r24, r25 \n\t"    \
7679    "mul r5, r18 \n\t"     \
7680    "add r22, r0 \n\t"     \
7681    "adc r23, r1 \n\t"     \
7682    "adc r24, r25 \n\t"    \
7683    "mul r6, r17 \n\t"     \
7684    "add r22, r0 \n\t"     \
7685    "adc r23, r1 \n\t"     \
7686    "adc r24, r25 \n\t"    \
7687    "mul r7, r16 \n\t"     \
7688    "add r22, r0 \n\t"     \
7689    "adc r23, r1 \n\t"     \
7690    "adc r24, r25 \n\t"    \
7691    "mul r8, r15 \n\t"     \
7692    "add r22, r0 \n\t"     \
7693    "adc r23, r1 \n\t"     \
7694    "adc r24, r25 \n\t"    \
7695    "mul r9, r14 \n\t"     \
7696    "add r22, r0 \n\t"     \
7697    "adc r23, r1 \n\t"     \
7698    "adc r24, r25 \n\t"    \
7699    "ld r0, z \n\t"        \
7700    "add r22, r0 \n\t"     \
7701    "adc r23, r25 \n\t"    \
7702    "adc r24, r25 \n\t"    \
7703    "st z+, r22 \n\t"      \
7704                           \
7705    "ld r14, y+ \n\t"      \
7706    "ldi r22, 0 \n\t"      \
7707    "mul r10, r14 \n\t"    \
7708    "add r23, r0 \n\t"     \
7709    "adc r24, r1 \n\t"     \
7710    "adc r22, r25 \n\t"    \
7711    "mul r11, r13 \n\t"    \
7712    "add r23, r0 \n\t"     \
7713    "adc r24, r1 \n\t"     \
7714    "adc r22, r25 \n\t"    \
7715    "mul r2, r12 \n\t"     \
7716    "add r23, r0 \n\t"     \
7717    "adc r24, r1 \n\t"     \
7718    "adc r22, r25 \n\t"    \
7719    "mul r3, r21 \n\t"     \
7720    "add r23, r0 \n\t"     \
7721    "adc r24, r1 \n\t"     \
7722    "adc r22, r25 \n\t"    \
7723    "mul r4, r20 \n\t"     \
7724    "add r23, r0 \n\t"     \
7725    "adc r24, r1 \n\t"     \
7726    "adc r22, r25 \n\t"    \
7727    "mul r5, r19 \n\t"     \
7728    "add r23, r0 \n\t"     \
7729    "adc r24, r1 \n\t"     \
7730    "adc r22, r25 \n\t"    \
7731    "mul r6, r18 \n\t"     \
7732    "add r23, r0 \n\t"     \
7733    "adc r24, r1 \n\t"     \
7734    "adc r22, r25 \n\t"    \
7735    "mul r7, r17 \n\t"     \
7736    "add r23, r0 \n\t"     \
7737    "adc r24, r1 \n\t"     \
7738    "adc r22, r25 \n\t"    \
7739    "mul r8, r16 \n\t"     \
7740    "add r23, r0 \n\t"     \
7741    "adc r24, r1 \n\t"     \
7742    "adc r22, r25 \n\t"    \
7743    "mul r9, r15 \n\t"     \
7744    "add r23, r0 \n\t"     \
7745    "adc r24, r1 \n\t"     \
7746    "adc r22, r25 \n\t"    \
7747    "ld r0, z \n\t"        \
7748    "add r23, r0 \n\t"     \
7749    "adc r24, r25 \n\t"    \
7750    "adc r22, r25 \n\t"    \
7751    "st z+, r23 \n\t"      \
7752                           \
7753    "ld r15, y+ \n\t"      \
7754    "ldi r23, 0 \n\t"      \
7755    "mul r10, r15 \n\t"    \
7756    "add r24, r0 \n\t"     \
7757    "adc r22, r1 \n\t"     \
7758    "adc r23, r25 \n\t"    \
7759    "mul r11, r14 \n\t"    \
7760    "add r24, r0 \n\t"     \
7761    "adc r22, r1 \n\t"     \
7762    "adc r23, r25 \n\t"    \
7763    "mul r2, r13 \n\t"     \
7764    "add r24, r0 \n\t"     \
7765    "adc r22, r1 \n\t"     \
7766    "adc r23, r25 \n\t"    \
7767    "mul r3, r12 \n\t"     \
7768    "add r24, r0 \n\t"     \
7769    "adc r22, r1 \n\t"     \
7770    "adc r23, r25 \n\t"    \
7771    "mul r4, r21 \n\t"     \
7772    "add r24, r0 \n\t"     \
7773    "adc r22, r1 \n\t"     \
7774    "adc r23, r25 \n\t"    \
7775    "mul r5, r20 \n\t"     \
7776    "add r24, r0 \n\t"     \
7777    "adc r22, r1 \n\t"     \
7778    "adc r23, r25 \n\t"    \
7779    "mul r6, r19 \n\t"     \
7780    "add r24, r0 \n\t"     \
7781    "adc r22, r1 \n\t"     \
7782    "adc r23, r25 \n\t"    \
7783    "mul r7, r18 \n\t"     \
7784    "add r24, r0 \n\t"     \
7785    "adc r22, r1 \n\t"     \
7786    "adc r23, r25 \n\t"    \
7787    "mul r8, r17 \n\t"     \
7788    "add r24, r0 \n\t"     \
7789    "adc r22, r1 \n\t"     \
7790    "adc r23, r25 \n\t"    \
7791    "mul r9, r16 \n\t"     \
7792    "add r24, r0 \n\t"     \
7793    "adc r22, r1 \n\t"     \
7794    "adc r23, r25 \n\t"    \
7795    "ld r0, z \n\t"        \
7796    "add r24, r0 \n\t"     \
7797    "adc r22, r25 \n\t"    \
7798    "adc r23, r25 \n\t"    \
7799    "st z+, r24 \n\t"      \
7800                           \
7801    "ld r16, y+ \n\t"      \
7802    "ldi r24, 0 \n\t"      \
7803    "mul r10, r16 \n\t"    \
7804    "add r22, r0 \n\t"     \
7805    "adc r23, r1 \n\t"     \
7806    "adc r24, r25 \n\t"    \
7807    "mul r11, r15 \n\t"    \
7808    "add r22, r0 \n\t"     \
7809    "adc r23, r1 \n\t"     \
7810    "adc r24, r25 \n\t"    \
7811    "mul r2, r14 \n\t"     \
7812    "add r22, r0 \n\t"     \
7813    "adc r23, r1 \n\t"     \
7814    "adc r24, r25 \n\t"    \
7815    "mul r3, r13 \n\t"     \
7816    "add r22, r0 \n\t"     \
7817    "adc r23, r1 \n\t"     \
7818    "adc r24, r25 \n\t"    \
7819    "mul r4, r12 \n\t"     \
7820    "add r22, r0 \n\t"     \
7821    "adc r23, r1 \n\t"     \
7822    "adc r24, r25 \n\t"    \
7823    "mul r5, r21 \n\t"     \
7824    "add r22, r0 \n\t"     \
7825    "adc r23, r1 \n\t"     \
7826    "adc r24, r25 \n\t"    \
7827    "mul r6, r20 \n\t"     \
7828    "add r22, r0 \n\t"     \
7829    "adc r23, r1 \n\t"     \
7830    "adc r24, r25 \n\t"    \
7831    "mul r7, r19 \n\t"     \
7832    "add r22, r0 \n\t"     \
7833    "adc r23, r1 \n\t"     \
7834    "adc r24, r25 \n\t"    \
7835    "mul r8, r18 \n\t"     \
7836    "add r22, r0 \n\t"     \
7837    "adc r23, r1 \n\t"     \
7838    "adc r24, r25 \n\t"    \
7839    "mul r9, r17 \n\t"     \
7840    "add r22, r0 \n\t"     \
7841    "adc r23, r1 \n\t"     \
7842    "adc r24, r25 \n\t"    \
7843    "ld r0, z \n\t"        \
7844    "add r22, r0 \n\t"     \
7845    "adc r23, r25 \n\t"    \
7846    "adc r24, r25 \n\t"    \
7847    "st z+, r22 \n\t"      \
7848                           \
7849    "ld r17, y+ \n\t"      \
7850    "ldi r22, 0 \n\t"      \
7851    "mul r10, r17 \n\t"    \
7852    "add r23, r0 \n\t"     \
7853    "adc r24, r1 \n\t"     \
7854    "adc r22, r25 \n\t"    \
7855    "mul r11, r16 \n\t"    \
7856    "add r23, r0 \n\t"     \
7857    "adc r24, r1 \n\t"     \
7858    "adc r22, r25 \n\t"    \
7859    "mul r2, r15 \n\t"     \
7860    "add r23, r0 \n\t"     \
7861    "adc r24, r1 \n\t"     \
7862    "adc r22, r25 \n\t"    \
7863    "mul r3, r14 \n\t"     \
7864    "add r23, r0 \n\t"     \
7865    "adc r24, r1 \n\t"     \
7866    "adc r22, r25 \n\t"    \
7867    "mul r4, r13 \n\t"     \
7868    "add r23, r0 \n\t"     \
7869    "adc r24, r1 \n\t"     \
7870    "adc r22, r25 \n\t"    \
7871    "mul r5, r12 \n\t"     \
7872    "add r23, r0 \n\t"     \
7873    "adc r24, r1 \n\t"     \
7874    "adc r22, r25 \n\t"    \
7875    "mul r6, r21 \n\t"     \
7876    "add r23, r0 \n\t"     \
7877    "adc r24, r1 \n\t"     \
7878    "adc r22, r25 \n\t"    \
7879    "mul r7, r20 \n\t"     \
7880    "add r23, r0 \n\t"     \
7881    "adc r24, r1 \n\t"     \
7882    "adc r22, r25 \n\t"    \
7883    "mul r8, r19 \n\t"     \
7884    "add r23, r0 \n\t"     \
7885    "adc r24, r1 \n\t"     \
7886    "adc r22, r25 \n\t"    \
7887    "mul r9, r18 \n\t"     \
7888    "add r23, r0 \n\t"     \
7889    "adc r24, r1 \n\t"     \
7890    "adc r22, r25 \n\t"    \
7891    "ld r0, z \n\t"        \
7892    "add r23, r0 \n\t"     \
7893    "adc r24, r25 \n\t"    \
7894    "adc r22, r25 \n\t"    \
7895    "st z+, r23 \n\t"      \
7896                           \
7897    "ld r18, y+ \n\t"      \
7898    "ldi r23, 0 \n\t"      \
7899    "mul r10, r18 \n\t"    \
7900    "add r24, r0 \n\t"     \
7901    "adc r22, r1 \n\t"     \
7902    "adc r23, r25 \n\t"    \
7903    "mul r11, r17 \n\t"    \
7904    "add r24, r0 \n\t"     \
7905    "adc r22, r1 \n\t"     \
7906    "adc r23, r25 \n\t"    \
7907    "mul r2, r16 \n\t"     \
7908    "add r24, r0 \n\t"     \
7909    "adc r22, r1 \n\t"     \
7910    "adc r23, r25 \n\t"    \
7911    "mul r3, r15 \n\t"     \
7912    "add r24, r0 \n\t"     \
7913    "adc r22, r1 \n\t"     \
7914    "adc r23, r25 \n\t"    \
7915    "mul r4, r14 \n\t"     \
7916    "add r24, r0 \n\t"     \
7917    "adc r22, r1 \n\t"     \
7918    "adc r23, r25 \n\t"    \
7919    "mul r5, r13 \n\t"     \
7920    "add r24, r0 \n\t"     \
7921    "adc r22, r1 \n\t"     \
7922    "adc r23, r25 \n\t"    \
7923    "mul r6, r12 \n\t"     \
7924    "add r24, r0 \n\t"     \
7925    "adc r22, r1 \n\t"     \
7926    "adc r23, r25 \n\t"    \
7927    "mul r7, r21 \n\t"     \
7928    "add r24, r0 \n\t"     \
7929    "adc r22, r1 \n\t"     \
7930    "adc r23, r25 \n\t"    \
7931    "mul r8, r20 \n\t"     \
7932    "add r24, r0 \n\t"     \
7933    "adc r22, r1 \n\t"     \
7934    "adc r23, r25 \n\t"    \
7935    "mul r9, r19 \n\t"     \
7936    "add r24, r0 \n\t"     \
7937    "adc r22, r1 \n\t"     \
7938    "adc r23, r25 \n\t"    \
7939    "ld r0, z \n\t"        \
7940    "add r24, r0 \n\t"     \
7941    "adc r22, r25 \n\t"    \
7942    "adc r23, r25 \n\t"    \
7943    "st z+, r24 \n\t"      \
7944                           \
7945    "ld r19, y+ \n\t"      \
7946    "ldi r24, 0 \n\t"      \
7947    "mul r10, r19 \n\t"    \
7948    "add r22, r0 \n\t"     \
7949    "adc r23, r1 \n\t"     \
7950    "adc r24, r25 \n\t"    \
7951    "mul r11, r18 \n\t"    \
7952    "add r22, r0 \n\t"     \
7953    "adc r23, r1 \n\t"     \
7954    "adc r24, r25 \n\t"    \
7955    "mul r2, r17 \n\t"     \
7956    "add r22, r0 \n\t"     \
7957    "adc r23, r1 \n\t"     \
7958    "adc r24, r25 \n\t"    \
7959    "mul r3, r16 \n\t"     \
7960    "add r22, r0 \n\t"     \
7961    "adc r23, r1 \n\t"     \
7962    "adc r24, r25 \n\t"    \
7963    "mul r4, r15 \n\t"     \
7964    "add r22, r0 \n\t"     \
7965    "adc r23, r1 \n\t"     \
7966    "adc r24, r25 \n\t"    \
7967    "mul r5, r14 \n\t"     \
7968    "add r22, r0 \n\t"     \
7969    "adc r23, r1 \n\t"     \
7970    "adc r24, r25 \n\t"    \
7971    "mul r6, r13 \n\t"     \
7972    "add r22, r0 \n\t"     \
7973    "adc r23, r1 \n\t"     \
7974    "adc r24, r25 \n\t"    \
7975    "mul r7, r12 \n\t"     \
7976    "add r22, r0 \n\t"     \
7977    "adc r23, r1 \n\t"     \
7978    "adc r24, r25 \n\t"    \
7979    "mul r8, r21 \n\t"     \
7980    "add r22, r0 \n\t"     \
7981    "adc r23, r1 \n\t"     \
7982    "adc r24, r25 \n\t"    \
7983    "mul r9, r20 \n\t"     \
7984    "add r22, r0 \n\t"     \
7985    "adc r23, r1 \n\t"     \
7986    "adc r24, r25 \n\t"    \
7987    "ld r0, z \n\t"        \
7988    "add r22, r0 \n\t"     \
7989    "adc r23, r25 \n\t"    \
7990    "adc r24, r25 \n\t"    \
7991    "st z+, r22 \n\t"      \
7992                           \
7993    "ldi r22, 0 \n\t"      \
7994    "mul r11, r19 \n\t"    \
7995    "add r23, r0 \n\t"     \
7996    "adc r24, r1 \n\t"     \
7997    "adc r22, r25 \n\t"    \
7998    "mul r2, r18 \n\t"     \
7999    "add r23, r0 \n\t"     \
8000    "adc r24, r1 \n\t"     \
8001    "adc r22, r25 \n\t"    \
8002    "mul r3, r17 \n\t"     \
8003    "add r23, r0 \n\t"     \
8004    "adc r24, r1 \n\t"     \
8005    "adc r22, r25 \n\t"    \
8006    "mul r4, r16 \n\t"     \
8007    "add r23, r0 \n\t"     \
8008    "adc r24, r1 \n\t"     \
8009    "adc r22, r25 \n\t"    \
8010    "mul r5, r15 \n\t"     \
8011    "add r23, r0 \n\t"     \
8012    "adc r24, r1 \n\t"     \
8013    "adc r22, r25 \n\t"    \
8014    "mul r6, r14 \n\t"     \
8015    "add r23, r0 \n\t"     \
8016    "adc r24, r1 \n\t"     \
8017    "adc r22, r25 \n\t"    \
8018    "mul r7, r13 \n\t"     \
8019    "add r23, r0 \n\t"     \
8020    "adc r24, r1 \n\t"     \
8021    "adc r22, r25 \n\t"    \
8022    "mul r8, r12 \n\t"     \
8023    "add r23, r0 \n\t"     \
8024    "adc r24, r1 \n\t"     \
8025    "adc r22, r25 \n\t"    \
8026    "mul r9, r21 \n\t"     \
8027    "add r23, r0 \n\t"     \
8028    "adc r24, r1 \n\t"     \
8029    "adc r22, r25 \n\t"    \
8030    "st z+, r23 \n\t"      \
8031                           \
8032    "ldi r23, 0 \n\t"      \
8033    "mul r2, r19 \n\t"     \
8034    "add r24, r0 \n\t"     \
8035    "adc r22, r1 \n\t"     \
8036    "adc r23, r25 \n\t"    \
8037    "mul r3, r18 \n\t"     \
8038    "add r24, r0 \n\t"     \
8039    "adc r22, r1 \n\t"     \
8040    "adc r23, r25 \n\t"    \
8041    "mul r4, r17 \n\t"     \
8042    "add r24, r0 \n\t"     \
8043    "adc r22, r1 \n\t"     \
8044    "adc r23, r25 \n\t"    \
8045    "mul r5, r16 \n\t"     \
8046    "add r24, r0 \n\t"     \
8047    "adc r22, r1 \n\t"     \
8048    "adc r23, r25 \n\t"    \
8049    "mul r6, r15 \n\t"     \
8050    "add r24, r0 \n\t"     \
8051    "adc r22, r1 \n\t"     \
8052    "adc r23, r25 \n\t"    \
8053    "mul r7, r14 \n\t"     \
8054    "add r24, r0 \n\t"     \
8055    "adc r22, r1 \n\t"     \
8056    "adc r23, r25 \n\t"    \
8057    "mul r8, r13 \n\t"     \
8058    "add r24, r0 \n\t"     \
8059    "adc r22, r1 \n\t"     \
8060    "adc r23, r25 \n\t"    \
8061    "mul r9, r12 \n\t"     \
8062    "add r24, r0 \n\t"     \
8063    "adc r22, r1 \n\t"     \
8064    "adc r23, r25 \n\t"    \
8065    "st z+, r24 \n\t"      \
8066                           \
8067    "ldi r24, 0 \n\t"      \
8068    "mul r3, r19 \n\t"     \
8069    "add r22, r0 \n\t"     \
8070    "adc r23, r1 \n\t"     \
8071    "adc r24, r25 \n\t"    \
8072    "mul r4, r18 \n\t"     \
8073    "add r22, r0 \n\t"     \
8074    "adc r23, r1 \n\t"     \
8075    "adc r24, r25 \n\t"    \
8076    "mul r5, r17 \n\t"     \
8077    "add r22, r0 \n\t"     \
8078    "adc r23, r1 \n\t"     \
8079    "adc r24, r25 \n\t"    \
8080    "mul r6, r16 \n\t"     \
8081    "add r22, r0 \n\t"     \
8082    "adc r23, r1 \n\t"     \
8083    "adc r24, r25 \n\t"    \
8084    "mul r7, r15 \n\t"     \
8085    "add r22, r0 \n\t"     \
8086    "adc r23, r1 \n\t"     \
8087    "adc r24, r25 \n\t"    \
8088    "mul r8, r14 \n\t"     \
8089    "add r22, r0 \n\t"     \
8090    "adc r23, r1 \n\t"     \
8091    "adc r24, r25 \n\t"    \
8092    "mul r9, r13 \n\t"     \
8093    "add r22, r0 \n\t"     \
8094    "adc r23, r1 \n\t"     \
8095    "adc r24, r25 \n\t"    \
8096    "st z+, r22 \n\t"      \
8097                           \
8098    "ldi r22, 0 \n\t"      \
8099    "mul r4, r19 \n\t"     \
8100    "add r23, r0 \n\t"     \
8101    "adc r24, r1 \n\t"     \
8102    "adc r22, r25 \n\t"    \
8103    "mul r5, r18 \n\t"     \
8104    "add r23, r0 \n\t"     \
8105    "adc r24, r1 \n\t"     \
8106    "adc r22, r25 \n\t"    \
8107    "mul r6, r17 \n\t"     \
8108    "add r23, r0 \n\t"     \
8109    "adc r24, r1 \n\t"     \
8110    "adc r22, r25 \n\t"    \
8111    "mul r7, r16 \n\t"     \
8112    "add r23, r0 \n\t"     \
8113    "adc r24, r1 \n\t"     \
8114    "adc r22, r25 \n\t"    \
8115    "mul r8, r15 \n\t"     \
8116    "add r23, r0 \n\t"     \
8117    "adc r24, r1 \n\t"     \
8118    "adc r22, r25 \n\t"    \
8119    "mul r9, r14 \n\t"     \
8120    "add r23, r0 \n\t"     \
8121    "adc r24, r1 \n\t"     \
8122    "adc r22, r25 \n\t"    \
8123    "st z+, r23 \n\t"      \
8124                           \
8125    "ldi r23, 0 \n\t"      \
8126    "mul r5, r19 \n\t"     \
8127    "add r24, r0 \n\t"     \
8128    "adc r22, r1 \n\t"     \
8129    "adc r23, r25 \n\t"    \
8130    "mul r6, r18 \n\t"     \
8131    "add r24, r0 \n\t"     \
8132    "adc r22, r1 \n\t"     \
8133    "adc r23, r25 \n\t"    \
8134    "mul r7, r17 \n\t"     \
8135    "add r24, r0 \n\t"     \
8136    "adc r22, r1 \n\t"     \
8137    "adc r23, r25 \n\t"    \
8138    "mul r8, r16 \n\t"     \
8139    "add r24, r0 \n\t"     \
8140    "adc r22, r1 \n\t"     \
8141    "adc r23, r25 \n\t"    \
8142    "mul r9, r15 \n\t"     \
8143    "add r24, r0 \n\t"     \
8144    "adc r22, r1 \n\t"     \
8145    "adc r23, r25 \n\t"    \
8146    "st z+, r24 \n\t"      \
8147                           \
8148    "ldi r24, 0 \n\t"      \
8149    "mul r6, r19 \n\t"     \
8150    "add r22, r0 \n\t"     \
8151    "adc r23, r1 \n\t"     \
8152    "adc r24, r25 \n\t"    \
8153    "mul r7, r18 \n\t"     \
8154    "add r22, r0 \n\t"     \
8155    "adc r23, r1 \n\t"     \
8156    "adc r24, r25 \n\t"    \
8157    "mul r8, r17 \n\t"     \
8158    "add r22, r0 \n\t"     \
8159    "adc r23, r1 \n\t"     \
8160    "adc r24, r25 \n\t"    \
8161    "mul r9, r16 \n\t"     \
8162    "add r22, r0 \n\t"     \
8163    "adc r23, r1 \n\t"     \
8164    "adc r24, r25 \n\t"    \
8165    "st z+, r22 \n\t"      \
8166                           \
8167    "ldi r22, 0 \n\t"      \
8168    "mul r7, r19 \n\t"     \
8169    "add r23, r0 \n\t"     \
8170    "adc r24, r1 \n\t"     \
8171    "adc r22, r25 \n\t"    \
8172    "mul r8, r18 \n\t"     \
8173    "add r23, r0 \n\t"     \
8174    "adc r24, r1 \n\t"     \
8175    "adc r22, r25 \n\t"    \
8176    "mul r9, r17 \n\t"     \
8177    "add r23, r0 \n\t"     \
8178    "adc r24, r1 \n\t"     \
8179    "adc r22, r25 \n\t"    \
8180    "st z+, r23 \n\t"      \
8181                           \
8182    "ldi r23, 0 \n\t"      \
8183    "mul r8, r19 \n\t"     \
8184    "add r24, r0 \n\t"     \
8185    "adc r22, r1 \n\t"     \
8186    "adc r23, r25 \n\t"    \
8187    "mul r9, r18 \n\t"     \
8188    "add r24, r0 \n\t"     \
8189    "adc r22, r1 \n\t"     \
8190    "adc r23, r25 \n\t"    \
8191    "st z+, r24 \n\t"      \
8192                           \
8193    "mul r9, r19 \n\t"     \
8194    "add r22, r0 \n\t"     \
8195    "adc r23, r1 \n\t"     \
8196    "st z+, r22 \n\t"      \
8197    "st z+, r23 \n\t"      \
8198                           \
8199    "sbiw r30, 46 \n\t"    \
8200    "sbiw r28, 28 \n\t"    \
8201    "sbiw r26, 18 \n\t"    \
8202    "ld r2, x+ \n\t"       \
8203    "ld r12, y+ \n\t"      \
8204    "ld r3, x+ \n\t"       \
8205    "ld r13, y+ \n\t"      \
8206    "ld r4, x+ \n\t"       \
8207    "ld r14, y+ \n\t"      \
8208    "ld r5, x+ \n\t"       \
8209    "ld r15, y+ \n\t"      \
8210    "ld r6, x+ \n\t"       \
8211    "ld r16, y+ \n\t"      \
8212    "ld r7, x+ \n\t"       \
8213    "ld r17, y+ \n\t"      \
8214    "ld r8, x+ \n\t"       \
8215    "ld r18, y+ \n\t"      \
8216    "ld r9, x+ \n\t"       \
8217    "ld r19, y+ \n\t"      \
8218    "ld r10, x+ \n\t"      \
8219    "ld r20, y+ \n\t"      \
8220    "ld r11, x+ \n\t"      \
8221    "ld r21, y+ \n\t"      \
8222                           \
8223    "ldi r23, 0 \n\t"      \
8224    "mul r2, r12 \n\t"     \
8225    "st z+, r0 \n\t"       \
8226    "mov r22, r1 \n\t"     \
8227                           \
8228    "ldi r24, 0 \n\t"      \
8229    "mul r2, r13 \n\t"     \
8230    "add r22, r0 \n\t"     \
8231    "adc r23, r1 \n\t"     \
8232    "mul r3, r12 \n\t"     \
8233    "add r22, r0 \n\t"     \
8234    "adc r23, r1 \n\t"     \
8235    "adc r24, r25 \n\t"    \
8236    "st z+, r22 \n\t"      \
8237                           \
8238    "ldi r22, 0 \n\t"      \
8239    "mul r2, r14 \n\t"     \
8240    "add r23, r0 \n\t"     \
8241    "adc r24, r1 \n\t"     \
8242    "adc r22, r25 \n\t"    \
8243    "mul r3, r13 \n\t"     \
8244    "add r23, r0 \n\t"     \
8245    "adc r24, r1 \n\t"     \
8246    "adc r22, r25 \n\t"    \
8247    "mul r4, r12 \n\t"     \
8248    "add r23, r0 \n\t"     \
8249    "adc r24, r1 \n\t"     \
8250    "adc r22, r25 \n\t"    \
8251    "st z+, r23 \n\t"      \
8252                           \
8253    "ldi r23, 0 \n\t"      \
8254    "mul r2, r15 \n\t"     \
8255    "add r24, r0 \n\t"     \
8256    "adc r22, r1 \n\t"     \
8257    "adc r23, r25 \n\t"    \
8258    "mul r3, r14 \n\t"     \
8259    "add r24, r0 \n\t"     \
8260    "adc r22, r1 \n\t"     \
8261    "adc r23, r25 \n\t"    \
8262    "mul r4, r13 \n\t"     \
8263    "add r24, r0 \n\t"     \
8264    "adc r22, r1 \n\t"     \
8265    "adc r23, r25 \n\t"    \
8266    "mul r5, r12 \n\t"     \
8267    "add r24, r0 \n\t"     \
8268    "adc r22, r1 \n\t"     \
8269    "adc r23, r25 \n\t"    \
8270    "st z+, r24 \n\t"      \
8271                           \
8272    "ldi r24, 0 \n\t"      \
8273    "mul r2, r16 \n\t"     \
8274    "add r22, r0 \n\t"     \
8275    "adc r23, r1 \n\t"     \
8276    "adc r24, r25 \n\t"    \
8277    "mul r3, r15 \n\t"     \
8278    "add r22, r0 \n\t"     \
8279    "adc r23, r1 \n\t"     \
8280    "adc r24, r25 \n\t"    \
8281    "mul r4, r14 \n\t"     \
8282    "add r22, r0 \n\t"     \
8283    "adc r23, r1 \n\t"     \
8284    "adc r24, r25 \n\t"    \
8285    "mul r5, r13 \n\t"     \
8286    "add r22, r0 \n\t"     \
8287    "adc r23, r1 \n\t"     \
8288    "adc r24, r25 \n\t"    \
8289    "mul r6, r12 \n\t"     \
8290    "add r22, r0 \n\t"     \
8291    "adc r23, r1 \n\t"     \
8292    "adc r24, r25 \n\t"    \
8293    "st z+, r22 \n\t"      \
8294                           \
8295    "ldi r22, 0 \n\t"      \
8296    "mul r2, r17 \n\t"     \
8297    "add r23, r0 \n\t"     \
8298    "adc r24, r1 \n\t"     \
8299    "adc r22, r25 \n\t"    \
8300    "mul r3, r16 \n\t"     \
8301    "add r23, r0 \n\t"     \
8302    "adc r24, r1 \n\t"     \
8303    "adc r22, r25 \n\t"    \
8304    "mul r4, r15 \n\t"     \
8305    "add r23, r0 \n\t"     \
8306    "adc r24, r1 \n\t"     \
8307    "adc r22, r25 \n\t"    \
8308    "mul r5, r14 \n\t"     \
8309    "add r23, r0 \n\t"     \
8310    "adc r24, r1 \n\t"     \
8311    "adc r22, r25 \n\t"    \
8312    "mul r6, r13 \n\t"     \
8313    "add r23, r0 \n\t"     \
8314    "adc r24, r1 \n\t"     \
8315    "adc r22, r25 \n\t"    \
8316    "mul r7, r12 \n\t"     \
8317    "add r23, r0 \n\t"     \
8318    "adc r24, r1 \n\t"     \
8319    "adc r22, r25 \n\t"    \
8320    "st z+, r23 \n\t"      \
8321                           \
8322    "ldi r23, 0 \n\t"      \
8323    "mul r2, r18 \n\t"     \
8324    "add r24, r0 \n\t"     \
8325    "adc r22, r1 \n\t"     \
8326    "adc r23, r25 \n\t"    \
8327    "mul r3, r17 \n\t"     \
8328    "add r24, r0 \n\t"     \
8329    "adc r22, r1 \n\t"     \
8330    "adc r23, r25 \n\t"    \
8331    "mul r4, r16 \n\t"     \
8332    "add r24, r0 \n\t"     \
8333    "adc r22, r1 \n\t"     \
8334    "adc r23, r25 \n\t"    \
8335    "mul r5, r15 \n\t"     \
8336    "add r24, r0 \n\t"     \
8337    "adc r22, r1 \n\t"     \
8338    "adc r23, r25 \n\t"    \
8339    "mul r6, r14 \n\t"     \
8340    "add r24, r0 \n\t"     \
8341    "adc r22, r1 \n\t"     \
8342    "adc r23, r25 \n\t"    \
8343    "mul r7, r13 \n\t"     \
8344    "add r24, r0 \n\t"     \
8345    "adc r22, r1 \n\t"     \
8346    "adc r23, r25 \n\t"    \
8347    "mul r8, r12 \n\t"     \
8348    "add r24, r0 \n\t"     \
8349    "adc r22, r1 \n\t"     \
8350    "adc r23, r25 \n\t"    \
8351    "st z+, r24 \n\t"      \
8352                           \
8353    "ldi r24, 0 \n\t"      \
8354    "mul r2, r19 \n\t"     \
8355    "add r22, r0 \n\t"     \
8356    "adc r23, r1 \n\t"     \
8357    "adc r24, r25 \n\t"    \
8358    "mul r3, r18 \n\t"     \
8359    "add r22, r0 \n\t"     \
8360    "adc r23, r1 \n\t"     \
8361    "adc r24, r25 \n\t"    \
8362    "mul r4, r17 \n\t"     \
8363    "add r22, r0 \n\t"     \
8364    "adc r23, r1 \n\t"     \
8365    "adc r24, r25 \n\t"    \
8366    "mul r5, r16 \n\t"     \
8367    "add r22, r0 \n\t"     \
8368    "adc r23, r1 \n\t"     \
8369    "adc r24, r25 \n\t"    \
8370    "mul r6, r15 \n\t"     \
8371    "add r22, r0 \n\t"     \
8372    "adc r23, r1 \n\t"     \
8373    "adc r24, r25 \n\t"    \
8374    "mul r7, r14 \n\t"     \
8375    "add r22, r0 \n\t"     \
8376    "adc r23, r1 \n\t"     \
8377    "adc r24, r25 \n\t"    \
8378    "mul r8, r13 \n\t"     \
8379    "add r22, r0 \n\t"     \
8380    "adc r23, r1 \n\t"     \
8381    "adc r24, r25 \n\t"    \
8382    "mul r9, r12 \n\t"     \
8383    "add r22, r0 \n\t"     \
8384    "adc r23, r1 \n\t"     \
8385    "adc r24, r25 \n\t"    \
8386    "st z+, r22 \n\t"      \
8387                           \
8388    "ldi r22, 0 \n\t"      \
8389    "mul r2, r20 \n\t"     \
8390    "add r23, r0 \n\t"     \
8391    "adc r24, r1 \n\t"     \
8392    "adc r22, r25 \n\t"    \
8393    "mul r3, r19 \n\t"     \
8394    "add r23, r0 \n\t"     \
8395    "adc r24, r1 \n\t"     \
8396    "adc r22, r25 \n\t"    \
8397    "mul r4, r18 \n\t"     \
8398    "add r23, r0 \n\t"     \
8399    "adc r24, r1 \n\t"     \
8400    "adc r22, r25 \n\t"    \
8401    "mul r5, r17 \n\t"     \
8402    "add r23, r0 \n\t"     \
8403    "adc r24, r1 \n\t"     \
8404    "adc r22, r25 \n\t"    \
8405    "mul r6, r16 \n\t"     \
8406    "add r23, r0 \n\t"     \
8407    "adc r24, r1 \n\t"     \
8408    "adc r22, r25 \n\t"    \
8409    "mul r7, r15 \n\t"     \
8410    "add r23, r0 \n\t"     \
8411    "adc r24, r1 \n\t"     \
8412    "adc r22, r25 \n\t"    \
8413    "mul r8, r14 \n\t"     \
8414    "add r23, r0 \n\t"     \
8415    "adc r24, r1 \n\t"     \
8416    "adc r22, r25 \n\t"    \
8417    "mul r9, r13 \n\t"     \
8418    "add r23, r0 \n\t"     \
8419    "adc r24, r1 \n\t"     \
8420    "adc r22, r25 \n\t"    \
8421    "mul r10, r12 \n\t"    \
8422    "add r23, r0 \n\t"     \
8423    "adc r24, r1 \n\t"     \
8424    "adc r22, r25 \n\t"    \
8425    "st z+, r23 \n\t"      \
8426                           \
8427    "ldi r23, 0 \n\t"      \
8428    "mul r2, r21 \n\t"     \
8429    "add r24, r0 \n\t"     \
8430    "adc r22, r1 \n\t"     \
8431    "adc r23, r25 \n\t"    \
8432    "mul r3, r20 \n\t"     \
8433    "add r24, r0 \n\t"     \
8434    "adc r22, r1 \n\t"     \
8435    "adc r23, r25 \n\t"    \
8436    "mul r4, r19 \n\t"     \
8437    "add r24, r0 \n\t"     \
8438    "adc r22, r1 \n\t"     \
8439    "adc r23, r25 \n\t"    \
8440    "mul r5, r18 \n\t"     \
8441    "add r24, r0 \n\t"     \
8442    "adc r22, r1 \n\t"     \
8443    "adc r23, r25 \n\t"    \
8444    "mul r6, r17 \n\t"     \
8445    "add r24, r0 \n\t"     \
8446    "adc r22, r1 \n\t"     \
8447    "adc r23, r25 \n\t"    \
8448    "mul r7, r16 \n\t"     \
8449    "add r24, r0 \n\t"     \
8450    "adc r22, r1 \n\t"     \
8451    "adc r23, r25 \n\t"    \
8452    "mul r8, r15 \n\t"     \
8453    "add r24, r0 \n\t"     \
8454    "adc r22, r1 \n\t"     \
8455    "adc r23, r25 \n\t"    \
8456    "mul r9, r14 \n\t"     \
8457    "add r24, r0 \n\t"     \
8458    "adc r22, r1 \n\t"     \
8459    "adc r23, r25 \n\t"    \
8460    "mul r10, r13 \n\t"    \
8461    "add r24, r0 \n\t"     \
8462    "adc r22, r1 \n\t"     \
8463    "adc r23, r25 \n\t"    \
8464    "mul r11, r12 \n\t"    \
8465    "add r24, r0 \n\t"     \
8466    "adc r22, r1 \n\t"     \
8467    "adc r23, r25 \n\t"    \
8468    "st z+, r24 \n\t"      \
8469                           \
8470    "ld r2, x+ \n\t"       \
8471    "ldi r24, 0 \n\t"      \
8472    "mul r3, r21 \n\t"     \
8473    "add r22, r0 \n\t"     \
8474    "adc r23, r1 \n\t"     \
8475    "adc r24, r25 \n\t"    \
8476    "mul r4, r20 \n\t"     \
8477    "add r22, r0 \n\t"     \
8478    "adc r23, r1 \n\t"     \
8479    "adc r24, r25 \n\t"    \
8480    "mul r5, r19 \n\t"     \
8481    "add r22, r0 \n\t"     \
8482    "adc r23, r1 \n\t"     \
8483    "adc r24, r25 \n\t"    \
8484    "mul r6, r18 \n\t"     \
8485    "add r22, r0 \n\t"     \
8486    "adc r23, r1 \n\t"     \
8487    "adc r24, r25 \n\t"    \
8488    "mul r7, r17 \n\t"     \
8489    "add r22, r0 \n\t"     \
8490    "adc r23, r1 \n\t"     \
8491    "adc r24, r25 \n\t"    \
8492    "mul r8, r16 \n\t"     \
8493    "add r22, r0 \n\t"     \
8494    "adc r23, r1 \n\t"     \
8495    "adc r24, r25 \n\t"    \
8496    "mul r9, r15 \n\t"     \
8497    "add r22, r0 \n\t"     \
8498    "adc r23, r1 \n\t"     \
8499    "adc r24, r25 \n\t"    \
8500    "mul r10, r14 \n\t"    \
8501    "add r22, r0 \n\t"     \
8502    "adc r23, r1 \n\t"     \
8503    "adc r24, r25 \n\t"    \
8504    "mul r11, r13 \n\t"    \
8505    "add r22, r0 \n\t"     \
8506    "adc r23, r1 \n\t"     \
8507    "adc r24, r25 \n\t"    \
8508    "mul r2, r12 \n\t"     \
8509    "add r22, r0 \n\t"     \
8510    "adc r23, r1 \n\t"     \
8511    "adc r24, r25 \n\t"    \
8512    "ld r0, z \n\t"        \
8513    "add r22, r0 \n\t"     \
8514    "adc r23, r25 \n\t"    \
8515    "adc r24, r25 \n\t"    \
8516    "st z+, r22 \n\t"      \
8517                           \
8518    "ld r3, x+ \n\t"       \
8519    "ldi r22, 0 \n\t"      \
8520    "mul r4, r21 \n\t"     \
8521    "add r23, r0 \n\t"     \
8522    "adc r24, r1 \n\t"     \
8523    "adc r22, r25 \n\t"    \
8524    "mul r5, r20 \n\t"     \
8525    "add r23, r0 \n\t"     \
8526    "adc r24, r1 \n\t"     \
8527    "adc r22, r25 \n\t"    \
8528    "mul r6, r19 \n\t"     \
8529    "add r23, r0 \n\t"     \
8530    "adc r24, r1 \n\t"     \
8531    "adc r22, r25 \n\t"    \
8532    "mul r7, r18 \n\t"     \
8533    "add r23, r0 \n\t"     \
8534    "adc r24, r1 \n\t"     \
8535    "adc r22, r25 \n\t"    \
8536    "mul r8, r17 \n\t"     \
8537    "add r23, r0 \n\t"     \
8538    "adc r24, r1 \n\t"     \
8539    "adc r22, r25 \n\t"    \
8540    "mul r9, r16 \n\t"     \
8541    "add r23, r0 \n\t"     \
8542    "adc r24, r1 \n\t"     \
8543    "adc r22, r25 \n\t"    \
8544    "mul r10, r15 \n\t"    \
8545    "add r23, r0 \n\t"     \
8546    "adc r24, r1 \n\t"     \
8547    "adc r22, r25 \n\t"    \
8548    "mul r11, r14 \n\t"    \
8549    "add r23, r0 \n\t"     \
8550    "adc r24, r1 \n\t"     \
8551    "adc r22, r25 \n\t"    \
8552    "mul r2, r13 \n\t"     \
8553    "add r23, r0 \n\t"     \
8554    "adc r24, r1 \n\t"     \
8555    "adc r22, r25 \n\t"    \
8556    "mul r3, r12 \n\t"     \
8557    "add r23, r0 \n\t"     \
8558    "adc r24, r1 \n\t"     \
8559    "adc r22, r25 \n\t"    \
8560    "ld r0, z \n\t"        \
8561    "add r23, r0 \n\t"     \
8562    "adc r24, r25 \n\t"    \
8563    "adc r22, r25 \n\t"    \
8564    "st z+, r23 \n\t"      \
8565                           \
8566    "ld r4, x+ \n\t"       \
8567    "ldi r23, 0 \n\t"      \
8568    "mul r5, r21 \n\t"     \
8569    "add r24, r0 \n\t"     \
8570    "adc r22, r1 \n\t"     \
8571    "adc r23, r25 \n\t"    \
8572    "mul r6, r20 \n\t"     \
8573    "add r24, r0 \n\t"     \
8574    "adc r22, r1 \n\t"     \
8575    "adc r23, r25 \n\t"    \
8576    "mul r7, r19 \n\t"     \
8577    "add r24, r0 \n\t"     \
8578    "adc r22, r1 \n\t"     \
8579    "adc r23, r25 \n\t"    \
8580    "mul r8, r18 \n\t"     \
8581    "add r24, r0 \n\t"     \
8582    "adc r22, r1 \n\t"     \
8583    "adc r23, r25 \n\t"    \
8584    "mul r9, r17 \n\t"     \
8585    "add r24, r0 \n\t"     \
8586    "adc r22, r1 \n\t"     \
8587    "adc r23, r25 \n\t"    \
8588    "mul r10, r16 \n\t"    \
8589    "add r24, r0 \n\t"     \
8590    "adc r22, r1 \n\t"     \
8591    "adc r23, r25 \n\t"    \
8592    "mul r11, r15 \n\t"    \
8593    "add r24, r0 \n\t"     \
8594    "adc r22, r1 \n\t"     \
8595    "adc r23, r25 \n\t"    \
8596    "mul r2, r14 \n\t"     \
8597    "add r24, r0 \n\t"     \
8598    "adc r22, r1 \n\t"     \
8599    "adc r23, r25 \n\t"    \
8600    "mul r3, r13 \n\t"     \
8601    "add r24, r0 \n\t"     \
8602    "adc r22, r1 \n\t"     \
8603    "adc r23, r25 \n\t"    \
8604    "mul r4, r12 \n\t"     \
8605    "add r24, r0 \n\t"     \
8606    "adc r22, r1 \n\t"     \
8607    "adc r23, r25 \n\t"    \
8608    "ld r0, z \n\t"        \
8609    "add r24, r0 \n\t"     \
8610    "adc r22, r25 \n\t"    \
8611    "adc r23, r25 \n\t"    \
8612    "st z+, r24 \n\t"      \
8613                           \
8614    "ld r5, x+ \n\t"       \
8615    "ldi r24, 0 \n\t"      \
8616    "mul r6, r21 \n\t"     \
8617    "add r22, r0 \n\t"     \
8618    "adc r23, r1 \n\t"     \
8619    "adc r24, r25 \n\t"    \
8620    "mul r7, r20 \n\t"     \
8621    "add r22, r0 \n\t"     \
8622    "adc r23, r1 \n\t"     \
8623    "adc r24, r25 \n\t"    \
8624    "mul r8, r19 \n\t"     \
8625    "add r22, r0 \n\t"     \
8626    "adc r23, r1 \n\t"     \
8627    "adc r24, r25 \n\t"    \
8628    "mul r9, r18 \n\t"     \
8629    "add r22, r0 \n\t"     \
8630    "adc r23, r1 \n\t"     \
8631    "adc r24, r25 \n\t"    \
8632    "mul r10, r17 \n\t"    \
8633    "add r22, r0 \n\t"     \
8634    "adc r23, r1 \n\t"     \
8635    "adc r24, r25 \n\t"    \
8636    "mul r11, r16 \n\t"    \
8637    "add r22, r0 \n\t"     \
8638    "adc r23, r1 \n\t"     \
8639    "adc r24, r25 \n\t"    \
8640    "mul r2, r15 \n\t"     \
8641    "add r22, r0 \n\t"     \
8642    "adc r23, r1 \n\t"     \
8643    "adc r24, r25 \n\t"    \
8644    "mul r3, r14 \n\t"     \
8645    "add r22, r0 \n\t"     \
8646    "adc r23, r1 \n\t"     \
8647    "adc r24, r25 \n\t"    \
8648    "mul r4, r13 \n\t"     \
8649    "add r22, r0 \n\t"     \
8650    "adc r23, r1 \n\t"     \
8651    "adc r24, r25 \n\t"    \
8652    "mul r5, r12 \n\t"     \
8653    "add r22, r0 \n\t"     \
8654    "adc r23, r1 \n\t"     \
8655    "adc r24, r25 \n\t"    \
8656    "ld r0, z \n\t"        \
8657    "add r22, r0 \n\t"     \
8658    "adc r23, r25 \n\t"    \
8659    "adc r24, r25 \n\t"    \
8660    "st z+, r22 \n\t"      \
8661                           \
8662    "ld r6, x+ \n\t"       \
8663    "ldi r22, 0 \n\t"      \
8664    "mul r7, r21 \n\t"     \
8665    "add r23, r0 \n\t"     \
8666    "adc r24, r1 \n\t"     \
8667    "adc r22, r25 \n\t"    \
8668    "mul r8, r20 \n\t"     \
8669    "add r23, r0 \n\t"     \
8670    "adc r24, r1 \n\t"     \
8671    "adc r22, r25 \n\t"    \
8672    "mul r9, r19 \n\t"     \
8673    "add r23, r0 \n\t"     \
8674    "adc r24, r1 \n\t"     \
8675    "adc r22, r25 \n\t"    \
8676    "mul r10, r18 \n\t"    \
8677    "add r23, r0 \n\t"     \
8678    "adc r24, r1 \n\t"     \
8679    "adc r22, r25 \n\t"    \
8680    "mul r11, r17 \n\t"    \
8681    "add r23, r0 \n\t"     \
8682    "adc r24, r1 \n\t"     \
8683    "adc r22, r25 \n\t"    \
8684    "mul r2, r16 \n\t"     \
8685    "add r23, r0 \n\t"     \
8686    "adc r24, r1 \n\t"     \
8687    "adc r22, r25 \n\t"    \
8688    "mul r3, r15 \n\t"     \
8689    "add r23, r0 \n\t"     \
8690    "adc r24, r1 \n\t"     \
8691    "adc r22, r25 \n\t"    \
8692    "mul r4, r14 \n\t"     \
8693    "add r23, r0 \n\t"     \
8694    "adc r24, r1 \n\t"     \
8695    "adc r22, r25 \n\t"    \
8696    "mul r5, r13 \n\t"     \
8697    "add r23, r0 \n\t"     \
8698    "adc r24, r1 \n\t"     \
8699    "adc r22, r25 \n\t"    \
8700    "mul r6, r12 \n\t"     \
8701    "add r23, r0 \n\t"     \
8702    "adc r24, r1 \n\t"     \
8703    "adc r22, r25 \n\t"    \
8704    "ld r0, z \n\t"        \
8705    "add r23, r0 \n\t"     \
8706    "adc r24, r25 \n\t"    \
8707    "adc r22, r25 \n\t"    \
8708    "st z+, r23 \n\t"      \
8709                           \
8710    "ld r7, x+ \n\t"       \
8711    "ldi r23, 0 \n\t"      \
8712    "mul r8, r21 \n\t"     \
8713    "add r24, r0 \n\t"     \
8714    "adc r22, r1 \n\t"     \
8715    "adc r23, r25 \n\t"    \
8716    "mul r9, r20 \n\t"     \
8717    "add r24, r0 \n\t"     \
8718    "adc r22, r1 \n\t"     \
8719    "adc r23, r25 \n\t"    \
8720    "mul r10, r19 \n\t"    \
8721    "add r24, r0 \n\t"     \
8722    "adc r22, r1 \n\t"     \
8723    "adc r23, r25 \n\t"    \
8724    "mul r11, r18 \n\t"    \
8725    "add r24, r0 \n\t"     \
8726    "adc r22, r1 \n\t"     \
8727    "adc r23, r25 \n\t"    \
8728    "mul r2, r17 \n\t"     \
8729    "add r24, r0 \n\t"     \
8730    "adc r22, r1 \n\t"     \
8731    "adc r23, r25 \n\t"    \
8732    "mul r3, r16 \n\t"     \
8733    "add r24, r0 \n\t"     \
8734    "adc r22, r1 \n\t"     \
8735    "adc r23, r25 \n\t"    \
8736    "mul r4, r15 \n\t"     \
8737    "add r24, r0 \n\t"     \
8738    "adc r22, r1 \n\t"     \
8739    "adc r23, r25 \n\t"    \
8740    "mul r5, r14 \n\t"     \
8741    "add r24, r0 \n\t"     \
8742    "adc r22, r1 \n\t"     \
8743    "adc r23, r25 \n\t"    \
8744    "mul r6, r13 \n\t"     \
8745    "add r24, r0 \n\t"     \
8746    "adc r22, r1 \n\t"     \
8747    "adc r23, r25 \n\t"    \
8748    "mul r7, r12 \n\t"     \
8749    "add r24, r0 \n\t"     \
8750    "adc r22, r1 \n\t"     \
8751    "adc r23, r25 \n\t"    \
8752    "ld r0, z \n\t"        \
8753    "add r24, r0 \n\t"     \
8754    "adc r22, r25 \n\t"    \
8755    "adc r23, r25 \n\t"    \
8756    "st z+, r24 \n\t"      \
8757                           \
8758    "ld r8, x+ \n\t"       \
8759    "ldi r24, 0 \n\t"      \
8760    "mul r9, r21 \n\t"     \
8761    "add r22, r0 \n\t"     \
8762    "adc r23, r1 \n\t"     \
8763    "adc r24, r25 \n\t"    \
8764    "mul r10, r20 \n\t"    \
8765    "add r22, r0 \n\t"     \
8766    "adc r23, r1 \n\t"     \
8767    "adc r24, r25 \n\t"    \
8768    "mul r11, r19 \n\t"    \
8769    "add r22, r0 \n\t"     \
8770    "adc r23, r1 \n\t"     \
8771    "adc r24, r25 \n\t"    \
8772    "mul r2, r18 \n\t"     \
8773    "add r22, r0 \n\t"     \
8774    "adc r23, r1 \n\t"     \
8775    "adc r24, r25 \n\t"    \
8776    "mul r3, r17 \n\t"     \
8777    "add r22, r0 \n\t"     \
8778    "adc r23, r1 \n\t"     \
8779    "adc r24, r25 \n\t"    \
8780    "mul r4, r16 \n\t"     \
8781    "add r22, r0 \n\t"     \
8782    "adc r23, r1 \n\t"     \
8783    "adc r24, r25 \n\t"    \
8784    "mul r5, r15 \n\t"     \
8785    "add r22, r0 \n\t"     \
8786    "adc r23, r1 \n\t"     \
8787    "adc r24, r25 \n\t"    \
8788    "mul r6, r14 \n\t"     \
8789    "add r22, r0 \n\t"     \
8790    "adc r23, r1 \n\t"     \
8791    "adc r24, r25 \n\t"    \
8792    "mul r7, r13 \n\t"     \
8793    "add r22, r0 \n\t"     \
8794    "adc r23, r1 \n\t"     \
8795    "adc r24, r25 \n\t"    \
8796    "mul r8, r12 \n\t"     \
8797    "add r22, r0 \n\t"     \
8798    "adc r23, r1 \n\t"     \
8799    "adc r24, r25 \n\t"    \
8800    "ld r0, z \n\t"        \
8801    "add r22, r0 \n\t"     \
8802    "adc r23, r25 \n\t"    \
8803    "adc r24, r25 \n\t"    \
8804    "st z+, r22 \n\t"      \
8805                           \
8806    "ld r9, x+ \n\t"       \
8807    "ldi r22, 0 \n\t"      \
8808    "mul r10, r21 \n\t"    \
8809    "add r23, r0 \n\t"     \
8810    "adc r24, r1 \n\t"     \
8811    "adc r22, r25 \n\t"    \
8812    "mul r11, r20 \n\t"    \
8813    "add r23, r0 \n\t"     \
8814    "adc r24, r1 \n\t"     \
8815    "adc r22, r25 \n\t"    \
8816    "mul r2, r19 \n\t"     \
8817    "add r23, r0 \n\t"     \
8818    "adc r24, r1 \n\t"     \
8819    "adc r22, r25 \n\t"    \
8820    "mul r3, r18 \n\t"     \
8821    "add r23, r0 \n\t"     \
8822    "adc r24, r1 \n\t"     \
8823    "adc r22, r25 \n\t"    \
8824    "mul r4, r17 \n\t"     \
8825    "add r23, r0 \n\t"     \
8826    "adc r24, r1 \n\t"     \
8827    "adc r22, r25 \n\t"    \
8828    "mul r5, r16 \n\t"     \
8829    "add r23, r0 \n\t"     \
8830    "adc r24, r1 \n\t"     \
8831    "adc r22, r25 \n\t"    \
8832    "mul r6, r15 \n\t"     \
8833    "add r23, r0 \n\t"     \
8834    "adc r24, r1 \n\t"     \
8835    "adc r22, r25 \n\t"    \
8836    "mul r7, r14 \n\t"     \
8837    "add r23, r0 \n\t"     \
8838    "adc r24, r1 \n\t"     \
8839    "adc r22, r25 \n\t"    \
8840    "mul r8, r13 \n\t"     \
8841    "add r23, r0 \n\t"     \
8842    "adc r24, r1 \n\t"     \
8843    "adc r22, r25 \n\t"    \
8844    "mul r9, r12 \n\t"     \
8845    "add r23, r0 \n\t"     \
8846    "adc r24, r1 \n\t"     \
8847    "adc r22, r25 \n\t"    \
8848    "ld r0, z \n\t"        \
8849    "add r23, r0 \n\t"     \
8850    "adc r24, r25 \n\t"    \
8851    "adc r22, r25 \n\t"    \
8852    "st z+, r23 \n\t"      \
8853                           \
8854    "ld r10, x+ \n\t"      \
8855    "ldi r23, 0 \n\t"      \
8856    "mul r11, r21 \n\t"    \
8857    "add r24, r0 \n\t"     \
8858    "adc r22, r1 \n\t"     \
8859    "adc r23, r25 \n\t"    \
8860    "mul r2, r20 \n\t"     \
8861    "add r24, r0 \n\t"     \
8862    "adc r22, r1 \n\t"     \
8863    "adc r23, r25 \n\t"    \
8864    "mul r3, r19 \n\t"     \
8865    "add r24, r0 \n\t"     \
8866    "adc r22, r1 \n\t"     \
8867    "adc r23, r25 \n\t"    \
8868    "mul r4, r18 \n\t"     \
8869    "add r24, r0 \n\t"     \
8870    "adc r22, r1 \n\t"     \
8871    "adc r23, r25 \n\t"    \
8872    "mul r5, r17 \n\t"     \
8873    "add r24, r0 \n\t"     \
8874    "adc r22, r1 \n\t"     \
8875    "adc r23, r25 \n\t"    \
8876    "mul r6, r16 \n\t"     \
8877    "add r24, r0 \n\t"     \
8878    "adc r22, r1 \n\t"     \
8879    "adc r23, r25 \n\t"    \
8880    "mul r7, r15 \n\t"     \
8881    "add r24, r0 \n\t"     \
8882    "adc r22, r1 \n\t"     \
8883    "adc r23, r25 \n\t"    \
8884    "mul r8, r14 \n\t"     \
8885    "add r24, r0 \n\t"     \
8886    "adc r22, r1 \n\t"     \
8887    "adc r23, r25 \n\t"    \
8888    "mul r9, r13 \n\t"     \
8889    "add r24, r0 \n\t"     \
8890    "adc r22, r1 \n\t"     \
8891    "adc r23, r25 \n\t"    \
8892    "mul r10, r12 \n\t"    \
8893    "add r24, r0 \n\t"     \
8894    "adc r22, r1 \n\t"     \
8895    "adc r23, r25 \n\t"    \
8896    "ld r0, z \n\t"        \
8897    "add r24, r0 \n\t"     \
8898    "adc r22, r25 \n\t"    \
8899    "adc r23, r25 \n\t"    \
8900    "st z+, r24 \n\t"      \
8901                           \
8902    "ld r11, x+ \n\t"      \
8903    "ldi r24, 0 \n\t"      \
8904    "mul r2, r21 \n\t"     \
8905    "add r22, r0 \n\t"     \
8906    "adc r23, r1 \n\t"     \
8907    "adc r24, r25 \n\t"    \
8908    "mul r3, r20 \n\t"     \
8909    "add r22, r0 \n\t"     \
8910    "adc r23, r1 \n\t"     \
8911    "adc r24, r25 \n\t"    \
8912    "mul r4, r19 \n\t"     \
8913    "add r22, r0 \n\t"     \
8914    "adc r23, r1 \n\t"     \
8915    "adc r24, r25 \n\t"    \
8916    "mul r5, r18 \n\t"     \
8917    "add r22, r0 \n\t"     \
8918    "adc r23, r1 \n\t"     \
8919    "adc r24, r25 \n\t"    \
8920    "mul r6, r17 \n\t"     \
8921    "add r22, r0 \n\t"     \
8922    "adc r23, r1 \n\t"     \
8923    "adc r24, r25 \n\t"    \
8924    "mul r7, r16 \n\t"     \
8925    "add r22, r0 \n\t"     \
8926    "adc r23, r1 \n\t"     \
8927    "adc r24, r25 \n\t"    \
8928    "mul r8, r15 \n\t"     \
8929    "add r22, r0 \n\t"     \
8930    "adc r23, r1 \n\t"     \
8931    "adc r24, r25 \n\t"    \
8932    "mul r9, r14 \n\t"     \
8933    "add r22, r0 \n\t"     \
8934    "adc r23, r1 \n\t"     \
8935    "adc r24, r25 \n\t"    \
8936    "mul r10, r13 \n\t"    \
8937    "add r22, r0 \n\t"     \
8938    "adc r23, r1 \n\t"     \
8939    "adc r24, r25 \n\t"    \
8940    "mul r11, r12 \n\t"    \
8941    "add r22, r0 \n\t"     \
8942    "adc r23, r1 \n\t"     \
8943    "adc r24, r25 \n\t"    \
8944    "ld r0, z \n\t"        \
8945    "add r22, r0 \n\t"     \
8946    "adc r23, r25 \n\t"    \
8947    "adc r24, r25 \n\t"    \
8948    "st z+, r22 \n\t"      \
8949                           \
8950    "ld r2, x+ \n\t"       \
8951    "ldi r22, 0 \n\t"      \
8952    "mul r3, r21 \n\t"     \
8953    "add r23, r0 \n\t"     \
8954    "adc r24, r1 \n\t"     \
8955    "adc r22, r25 \n\t"    \
8956    "mul r4, r20 \n\t"     \
8957    "add r23, r0 \n\t"     \
8958    "adc r24, r1 \n\t"     \
8959    "adc r22, r25 \n\t"    \
8960    "mul r5, r19 \n\t"     \
8961    "add r23, r0 \n\t"     \
8962    "adc r24, r1 \n\t"     \
8963    "adc r22, r25 \n\t"    \
8964    "mul r6, r18 \n\t"     \
8965    "add r23, r0 \n\t"     \
8966    "adc r24, r1 \n\t"     \
8967    "adc r22, r25 \n\t"    \
8968    "mul r7, r17 \n\t"     \
8969    "add r23, r0 \n\t"     \
8970    "adc r24, r1 \n\t"     \
8971    "adc r22, r25 \n\t"    \
8972    "mul r8, r16 \n\t"     \
8973    "add r23, r0 \n\t"     \
8974    "adc r24, r1 \n\t"     \
8975    "adc r22, r25 \n\t"    \
8976    "mul r9, r15 \n\t"     \
8977    "add r23, r0 \n\t"     \
8978    "adc r24, r1 \n\t"     \
8979    "adc r22, r25 \n\t"    \
8980    "mul r10, r14 \n\t"    \
8981    "add r23, r0 \n\t"     \
8982    "adc r24, r1 \n\t"     \
8983    "adc r22, r25 \n\t"    \
8984    "mul r11, r13 \n\t"    \
8985    "add r23, r0 \n\t"     \
8986    "adc r24, r1 \n\t"     \
8987    "adc r22, r25 \n\t"    \
8988    "mul r2, r12 \n\t"     \
8989    "add r23, r0 \n\t"     \
8990    "adc r24, r1 \n\t"     \
8991    "adc r22, r25 \n\t"    \
8992    "ld r0, z \n\t"        \
8993    "add r23, r0 \n\t"     \
8994    "adc r24, r25 \n\t"    \
8995    "adc r22, r25 \n\t"    \
8996    "st z+, r23 \n\t"      \
8997                           \
8998    "ld r3, x+ \n\t"       \
8999    "ldi r23, 0 \n\t"      \
9000    "mul r4, r21 \n\t"     \
9001    "add r24, r0 \n\t"     \
9002    "adc r22, r1 \n\t"     \
9003    "adc r23, r25 \n\t"    \
9004    "mul r5, r20 \n\t"     \
9005    "add r24, r0 \n\t"     \
9006    "adc r22, r1 \n\t"     \
9007    "adc r23, r25 \n\t"    \
9008    "mul r6, r19 \n\t"     \
9009    "add r24, r0 \n\t"     \
9010    "adc r22, r1 \n\t"     \
9011    "adc r23, r25 \n\t"    \
9012    "mul r7, r18 \n\t"     \
9013    "add r24, r0 \n\t"     \
9014    "adc r22, r1 \n\t"     \
9015    "adc r23, r25 \n\t"    \
9016    "mul r8, r17 \n\t"     \
9017    "add r24, r0 \n\t"     \
9018    "adc r22, r1 \n\t"     \
9019    "adc r23, r25 \n\t"    \
9020    "mul r9, r16 \n\t"     \
9021    "add r24, r0 \n\t"     \
9022    "adc r22, r1 \n\t"     \
9023    "adc r23, r25 \n\t"    \
9024    "mul r10, r15 \n\t"    \
9025    "add r24, r0 \n\t"     \
9026    "adc r22, r1 \n\t"     \
9027    "adc r23, r25 \n\t"    \
9028    "mul r11, r14 \n\t"    \
9029    "add r24, r0 \n\t"     \
9030    "adc r22, r1 \n\t"     \
9031    "adc r23, r25 \n\t"    \
9032    "mul r2, r13 \n\t"     \
9033    "add r24, r0 \n\t"     \
9034    "adc r22, r1 \n\t"     \
9035    "adc r23, r25 \n\t"    \
9036    "mul r3, r12 \n\t"     \
9037    "add r24, r0 \n\t"     \
9038    "adc r22, r1 \n\t"     \
9039    "adc r23, r25 \n\t"    \
9040    "ld r0, z \n\t"        \
9041    "add r24, r0 \n\t"     \
9042    "adc r22, r25 \n\t"    \
9043    "adc r23, r25 \n\t"    \
9044    "st z+, r24 \n\t"      \
9045                           \
9046    "ld r4, x+ \n\t"       \
9047    "ldi r24, 0 \n\t"      \
9048    "mul r5, r21 \n\t"     \
9049    "add r22, r0 \n\t"     \
9050    "adc r23, r1 \n\t"     \
9051    "adc r24, r25 \n\t"    \
9052    "mul r6, r20 \n\t"     \
9053    "add r22, r0 \n\t"     \
9054    "adc r23, r1 \n\t"     \
9055    "adc r24, r25 \n\t"    \
9056    "mul r7, r19 \n\t"     \
9057    "add r22, r0 \n\t"     \
9058    "adc r23, r1 \n\t"     \
9059    "adc r24, r25 \n\t"    \
9060    "mul r8, r18 \n\t"     \
9061    "add r22, r0 \n\t"     \
9062    "adc r23, r1 \n\t"     \
9063    "adc r24, r25 \n\t"    \
9064    "mul r9, r17 \n\t"     \
9065    "add r22, r0 \n\t"     \
9066    "adc r23, r1 \n\t"     \
9067    "adc r24, r25 \n\t"    \
9068    "mul r10, r16 \n\t"    \
9069    "add r22, r0 \n\t"     \
9070    "adc r23, r1 \n\t"     \
9071    "adc r24, r25 \n\t"    \
9072    "mul r11, r15 \n\t"    \
9073    "add r22, r0 \n\t"     \
9074    "adc r23, r1 \n\t"     \
9075    "adc r24, r25 \n\t"    \
9076    "mul r2, r14 \n\t"     \
9077    "add r22, r0 \n\t"     \
9078    "adc r23, r1 \n\t"     \
9079    "adc r24, r25 \n\t"    \
9080    "mul r3, r13 \n\t"     \
9081    "add r22, r0 \n\t"     \
9082    "adc r23, r1 \n\t"     \
9083    "adc r24, r25 \n\t"    \
9084    "mul r4, r12 \n\t"     \
9085    "add r22, r0 \n\t"     \
9086    "adc r23, r1 \n\t"     \
9087    "adc r24, r25 \n\t"    \
9088    "ld r0, z \n\t"        \
9089    "add r22, r0 \n\t"     \
9090    "adc r23, r25 \n\t"    \
9091    "adc r24, r25 \n\t"    \
9092    "st z+, r22 \n\t"      \
9093                           \
9094    "ld r5, x+ \n\t"       \
9095    "ldi r22, 0 \n\t"      \
9096    "mul r6, r21 \n\t"     \
9097    "add r23, r0 \n\t"     \
9098    "adc r24, r1 \n\t"     \
9099    "adc r22, r25 \n\t"    \
9100    "mul r7, r20 \n\t"     \
9101    "add r23, r0 \n\t"     \
9102    "adc r24, r1 \n\t"     \
9103    "adc r22, r25 \n\t"    \
9104    "mul r8, r19 \n\t"     \
9105    "add r23, r0 \n\t"     \
9106    "adc r24, r1 \n\t"     \
9107    "adc r22, r25 \n\t"    \
9108    "mul r9, r18 \n\t"     \
9109    "add r23, r0 \n\t"     \
9110    "adc r24, r1 \n\t"     \
9111    "adc r22, r25 \n\t"    \
9112    "mul r10, r17 \n\t"    \
9113    "add r23, r0 \n\t"     \
9114    "adc r24, r1 \n\t"     \
9115    "adc r22, r25 \n\t"    \
9116    "mul r11, r16 \n\t"    \
9117    "add r23, r0 \n\t"     \
9118    "adc r24, r1 \n\t"     \
9119    "adc r22, r25 \n\t"    \
9120    "mul r2, r15 \n\t"     \
9121    "add r23, r0 \n\t"     \
9122    "adc r24, r1 \n\t"     \
9123    "adc r22, r25 \n\t"    \
9124    "mul r3, r14 \n\t"     \
9125    "add r23, r0 \n\t"     \
9126    "adc r24, r1 \n\t"     \
9127    "adc r22, r25 \n\t"    \
9128    "mul r4, r13 \n\t"     \
9129    "add r23, r0 \n\t"     \
9130    "adc r24, r1 \n\t"     \
9131    "adc r22, r25 \n\t"    \
9132    "mul r5, r12 \n\t"     \
9133    "add r23, r0 \n\t"     \
9134    "adc r24, r1 \n\t"     \
9135    "adc r22, r25 \n\t"    \
9136    "ld r0, z \n\t"        \
9137    "add r23, r0 \n\t"     \
9138    "adc r24, r25 \n\t"    \
9139    "adc r22, r25 \n\t"    \
9140    "st z+, r23 \n\t"      \
9141                           \
9142    "ld r6, x+ \n\t"       \
9143    "ldi r23, 0 \n\t"      \
9144    "mul r7, r21 \n\t"     \
9145    "add r24, r0 \n\t"     \
9146    "adc r22, r1 \n\t"     \
9147    "adc r23, r25 \n\t"    \
9148    "mul r8, r20 \n\t"     \
9149    "add r24, r0 \n\t"     \
9150    "adc r22, r1 \n\t"     \
9151    "adc r23, r25 \n\t"    \
9152    "mul r9, r19 \n\t"     \
9153    "add r24, r0 \n\t"     \
9154    "adc r22, r1 \n\t"     \
9155    "adc r23, r25 \n\t"    \
9156    "mul r10, r18 \n\t"    \
9157    "add r24, r0 \n\t"     \
9158    "adc r22, r1 \n\t"     \
9159    "adc r23, r25 \n\t"    \
9160    "mul r11, r17 \n\t"    \
9161    "add r24, r0 \n\t"     \
9162    "adc r22, r1 \n\t"     \
9163    "adc r23, r25 \n\t"    \
9164    "mul r2, r16 \n\t"     \
9165    "add r24, r0 \n\t"     \
9166    "adc r22, r1 \n\t"     \
9167    "adc r23, r25 \n\t"    \
9168    "mul r3, r15 \n\t"     \
9169    "add r24, r0 \n\t"     \
9170    "adc r22, r1 \n\t"     \
9171    "adc r23, r25 \n\t"    \
9172    "mul r4, r14 \n\t"     \
9173    "add r24, r0 \n\t"     \
9174    "adc r22, r1 \n\t"     \
9175    "adc r23, r25 \n\t"    \
9176    "mul r5, r13 \n\t"     \
9177    "add r24, r0 \n\t"     \
9178    "adc r22, r1 \n\t"     \
9179    "adc r23, r25 \n\t"    \
9180    "mul r6, r12 \n\t"     \
9181    "add r24, r0 \n\t"     \
9182    "adc r22, r1 \n\t"     \
9183    "adc r23, r25 \n\t"    \
9184    "ld r0, z \n\t"        \
9185    "add r24, r0 \n\t"     \
9186    "adc r22, r25 \n\t"    \
9187    "adc r23, r25 \n\t"    \
9188    "st z+, r24 \n\t"      \
9189                           \
9190    "ld r7, x+ \n\t"       \
9191    "ldi r24, 0 \n\t"      \
9192    "mul r8, r21 \n\t"     \
9193    "add r22, r0 \n\t"     \
9194    "adc r23, r1 \n\t"     \
9195    "adc r24, r25 \n\t"    \
9196    "mul r9, r20 \n\t"     \
9197    "add r22, r0 \n\t"     \
9198    "adc r23, r1 \n\t"     \
9199    "adc r24, r25 \n\t"    \
9200    "mul r10, r19 \n\t"    \
9201    "add r22, r0 \n\t"     \
9202    "adc r23, r1 \n\t"     \
9203    "adc r24, r25 \n\t"    \
9204    "mul r11, r18 \n\t"    \
9205    "add r22, r0 \n\t"     \
9206    "adc r23, r1 \n\t"     \
9207    "adc r24, r25 \n\t"    \
9208    "mul r2, r17 \n\t"     \
9209    "add r22, r0 \n\t"     \
9210    "adc r23, r1 \n\t"     \
9211    "adc r24, r25 \n\t"    \
9212    "mul r3, r16 \n\t"     \
9213    "add r22, r0 \n\t"     \
9214    "adc r23, r1 \n\t"     \
9215    "adc r24, r25 \n\t"    \
9216    "mul r4, r15 \n\t"     \
9217    "add r22, r0 \n\t"     \
9218    "adc r23, r1 \n\t"     \
9219    "adc r24, r25 \n\t"    \
9220    "mul r5, r14 \n\t"     \
9221    "add r22, r0 \n\t"     \
9222    "adc r23, r1 \n\t"     \
9223    "adc r24, r25 \n\t"    \
9224    "mul r6, r13 \n\t"     \
9225    "add r22, r0 \n\t"     \
9226    "adc r23, r1 \n\t"     \
9227    "adc r24, r25 \n\t"    \
9228    "mul r7, r12 \n\t"     \
9229    "add r22, r0 \n\t"     \
9230    "adc r23, r1 \n\t"     \
9231    "adc r24, r25 \n\t"    \
9232    "ld r0, z \n\t"        \
9233    "add r22, r0 \n\t"     \
9234    "adc r23, r25 \n\t"    \
9235    "adc r24, r25 \n\t"    \
9236    "st z+, r22 \n\t"      \
9237                           \
9238    "ld r8, x+ \n\t"       \
9239    "ldi r22, 0 \n\t"      \
9240    "mul r9, r21 \n\t"     \
9241    "add r23, r0 \n\t"     \
9242    "adc r24, r1 \n\t"     \
9243    "adc r22, r25 \n\t"    \
9244    "mul r10, r20 \n\t"    \
9245    "add r23, r0 \n\t"     \
9246    "adc r24, r1 \n\t"     \
9247    "adc r22, r25 \n\t"    \
9248    "mul r11, r19 \n\t"    \
9249    "add r23, r0 \n\t"     \
9250    "adc r24, r1 \n\t"     \
9251    "adc r22, r25 \n\t"    \
9252    "mul r2, r18 \n\t"     \
9253    "add r23, r0 \n\t"     \
9254    "adc r24, r1 \n\t"     \
9255    "adc r22, r25 \n\t"    \
9256    "mul r3, r17 \n\t"     \
9257    "add r23, r0 \n\t"     \
9258    "adc r24, r1 \n\t"     \
9259    "adc r22, r25 \n\t"    \
9260    "mul r4, r16 \n\t"     \
9261    "add r23, r0 \n\t"     \
9262    "adc r24, r1 \n\t"     \
9263    "adc r22, r25 \n\t"    \
9264    "mul r5, r15 \n\t"     \
9265    "add r23, r0 \n\t"     \
9266    "adc r24, r1 \n\t"     \
9267    "adc r22, r25 \n\t"    \
9268    "mul r6, r14 \n\t"     \
9269    "add r23, r0 \n\t"     \
9270    "adc r24, r1 \n\t"     \
9271    "adc r22, r25 \n\t"    \
9272    "mul r7, r13 \n\t"     \
9273    "add r23, r0 \n\t"     \
9274    "adc r24, r1 \n\t"     \
9275    "adc r22, r25 \n\t"    \
9276    "mul r8, r12 \n\t"     \
9277    "add r23, r0 \n\t"     \
9278    "adc r24, r1 \n\t"     \
9279    "adc r22, r25 \n\t"    \
9280    "ld r0, z \n\t"        \
9281    "add r23, r0 \n\t"     \
9282    "adc r24, r25 \n\t"    \
9283    "adc r22, r25 \n\t"    \
9284    "st z+, r23 \n\t"      \
9285                           \
9286    "ld r9, x+ \n\t"       \
9287    "ldi r23, 0 \n\t"      \
9288    "mul r10, r21 \n\t"    \
9289    "add r24, r0 \n\t"     \
9290    "adc r22, r1 \n\t"     \
9291    "adc r23, r25 \n\t"    \
9292    "mul r11, r20 \n\t"    \
9293    "add r24, r0 \n\t"     \
9294    "adc r22, r1 \n\t"     \
9295    "adc r23, r25 \n\t"    \
9296    "mul r2, r19 \n\t"     \
9297    "add r24, r0 \n\t"     \
9298    "adc r22, r1 \n\t"     \
9299    "adc r23, r25 \n\t"    \
9300    "mul r3, r18 \n\t"     \
9301    "add r24, r0 \n\t"     \
9302    "adc r22, r1 \n\t"     \
9303    "adc r23, r25 \n\t"    \
9304    "mul r4, r17 \n\t"     \
9305    "add r24, r0 \n\t"     \
9306    "adc r22, r1 \n\t"     \
9307    "adc r23, r25 \n\t"    \
9308    "mul r5, r16 \n\t"     \
9309    "add r24, r0 \n\t"     \
9310    "adc r22, r1 \n\t"     \
9311    "adc r23, r25 \n\t"    \
9312    "mul r6, r15 \n\t"     \
9313    "add r24, r0 \n\t"     \
9314    "adc r22, r1 \n\t"     \
9315    "adc r23, r25 \n\t"    \
9316    "mul r7, r14 \n\t"     \
9317    "add r24, r0 \n\t"     \
9318    "adc r22, r1 \n\t"     \
9319    "adc r23, r25 \n\t"    \
9320    "mul r8, r13 \n\t"     \
9321    "add r24, r0 \n\t"     \
9322    "adc r22, r1 \n\t"     \
9323    "adc r23, r25 \n\t"    \
9324    "mul r9, r12 \n\t"     \
9325    "add r24, r0 \n\t"     \
9326    "adc r22, r1 \n\t"     \
9327    "adc r23, r25 \n\t"    \
9328    "ld r0, z \n\t"        \
9329    "add r24, r0 \n\t"     \
9330    "adc r22, r25 \n\t"    \
9331    "adc r23, r25 \n\t"    \
9332    "st z+, r24 \n\t"      \
9333                           \
9334    "ld r12, y+ \n\t"      \
9335    "ldi r24, 0 \n\t"      \
9336    "mul r10, r12 \n\t"    \
9337    "add r22, r0 \n\t"     \
9338    "adc r23, r1 \n\t"     \
9339    "adc r24, r25 \n\t"    \
9340    "mul r11, r21 \n\t"    \
9341    "add r22, r0 \n\t"     \
9342    "adc r23, r1 \n\t"     \
9343    "adc r24, r25 \n\t"    \
9344    "mul r2, r20 \n\t"     \
9345    "add r22, r0 \n\t"     \
9346    "adc r23, r1 \n\t"     \
9347    "adc r24, r25 \n\t"    \
9348    "mul r3, r19 \n\t"     \
9349    "add r22, r0 \n\t"     \
9350    "adc r23, r1 \n\t"     \
9351    "adc r24, r25 \n\t"    \
9352    "mul r4, r18 \n\t"     \
9353    "add r22, r0 \n\t"     \
9354    "adc r23, r1 \n\t"     \
9355    "adc r24, r25 \n\t"    \
9356    "mul r5, r17 \n\t"     \
9357    "add r22, r0 \n\t"     \
9358    "adc r23, r1 \n\t"     \
9359    "adc r24, r25 \n\t"    \
9360    "mul r6, r16 \n\t"     \
9361    "add r22, r0 \n\t"     \
9362    "adc r23, r1 \n\t"     \
9363    "adc r24, r25 \n\t"    \
9364    "mul r7, r15 \n\t"     \
9365    "add r22, r0 \n\t"     \
9366    "adc r23, r1 \n\t"     \
9367    "adc r24, r25 \n\t"    \
9368    "mul r8, r14 \n\t"     \
9369    "add r22, r0 \n\t"     \
9370    "adc r23, r1 \n\t"     \
9371    "adc r24, r25 \n\t"    \
9372    "mul r9, r13 \n\t"     \
9373    "add r22, r0 \n\t"     \
9374    "adc r23, r1 \n\t"     \
9375    "adc r24, r25 \n\t"    \
9376    "ld r0, z \n\t"        \
9377    "add r22, r0 \n\t"     \
9378    "adc r23, r25 \n\t"    \
9379    "adc r24, r25 \n\t"    \
9380    "st z+, r22 \n\t"      \
9381                           \
9382    "ld r13, y+ \n\t"      \
9383    "ldi r22, 0 \n\t"      \
9384    "mul r10, r13 \n\t"    \
9385    "add r23, r0 \n\t"     \
9386    "adc r24, r1 \n\t"     \
9387    "adc r22, r25 \n\t"    \
9388    "mul r11, r12 \n\t"    \
9389    "add r23, r0 \n\t"     \
9390    "adc r24, r1 \n\t"     \
9391    "adc r22, r25 \n\t"    \
9392    "mul r2, r21 \n\t"     \
9393    "add r23, r0 \n\t"     \
9394    "adc r24, r1 \n\t"     \
9395    "adc r22, r25 \n\t"    \
9396    "mul r3, r20 \n\t"     \
9397    "add r23, r0 \n\t"     \
9398    "adc r24, r1 \n\t"     \
9399    "adc r22, r25 \n\t"    \
9400    "mul r4, r19 \n\t"     \
9401    "add r23, r0 \n\t"     \
9402    "adc r24, r1 \n\t"     \
9403    "adc r22, r25 \n\t"    \
9404    "mul r5, r18 \n\t"     \
9405    "add r23, r0 \n\t"     \
9406    "adc r24, r1 \n\t"     \
9407    "adc r22, r25 \n\t"    \
9408    "mul r6, r17 \n\t"     \
9409    "add r23, r0 \n\t"     \
9410    "adc r24, r1 \n\t"     \
9411    "adc r22, r25 \n\t"    \
9412    "mul r7, r16 \n\t"     \
9413    "add r23, r0 \n\t"     \
9414    "adc r24, r1 \n\t"     \
9415    "adc r22, r25 \n\t"    \
9416    "mul r8, r15 \n\t"     \
9417    "add r23, r0 \n\t"     \
9418    "adc r24, r1 \n\t"     \
9419    "adc r22, r25 \n\t"    \
9420    "mul r9, r14 \n\t"     \
9421    "add r23, r0 \n\t"     \
9422    "adc r24, r1 \n\t"     \
9423    "adc r22, r25 \n\t"    \
9424    "ld r0, z \n\t"        \
9425    "add r23, r0 \n\t"     \
9426    "adc r24, r25 \n\t"    \
9427    "adc r22, r25 \n\t"    \
9428    "st z+, r23 \n\t"      \
9429                           \
9430    "ld r14, y+ \n\t"      \
9431    "ldi r23, 0 \n\t"      \
9432    "mul r10, r14 \n\t"    \
9433    "add r24, r0 \n\t"     \
9434    "adc r22, r1 \n\t"     \
9435    "adc r23, r25 \n\t"    \
9436    "mul r11, r13 \n\t"    \
9437    "add r24, r0 \n\t"     \
9438    "adc r22, r1 \n\t"     \
9439    "adc r23, r25 \n\t"    \
9440    "mul r2, r12 \n\t"     \
9441    "add r24, r0 \n\t"     \
9442    "adc r22, r1 \n\t"     \
9443    "adc r23, r25 \n\t"    \
9444    "mul r3, r21 \n\t"     \
9445    "add r24, r0 \n\t"     \
9446    "adc r22, r1 \n\t"     \
9447    "adc r23, r25 \n\t"    \
9448    "mul r4, r20 \n\t"     \
9449    "add r24, r0 \n\t"     \
9450    "adc r22, r1 \n\t"     \
9451    "adc r23, r25 \n\t"    \
9452    "mul r5, r19 \n\t"     \
9453    "add r24, r0 \n\t"     \
9454    "adc r22, r1 \n\t"     \
9455    "adc r23, r25 \n\t"    \
9456    "mul r6, r18 \n\t"     \
9457    "add r24, r0 \n\t"     \
9458    "adc r22, r1 \n\t"     \
9459    "adc r23, r25 \n\t"    \
9460    "mul r7, r17 \n\t"     \
9461    "add r24, r0 \n\t"     \
9462    "adc r22, r1 \n\t"     \
9463    "adc r23, r25 \n\t"    \
9464    "mul r8, r16 \n\t"     \
9465    "add r24, r0 \n\t"     \
9466    "adc r22, r1 \n\t"     \
9467    "adc r23, r25 \n\t"    \
9468    "mul r9, r15 \n\t"     \
9469    "add r24, r0 \n\t"     \
9470    "adc r22, r1 \n\t"     \
9471    "adc r23, r25 \n\t"    \
9472    "ld r0, z \n\t"        \
9473    "add r24, r0 \n\t"     \
9474    "adc r22, r25 \n\t"    \
9475    "adc r23, r25 \n\t"    \
9476    "st z+, r24 \n\t"      \
9477                           \
9478    "ld r15, y+ \n\t"      \
9479    "ldi r24, 0 \n\t"      \
9480    "mul r10, r15 \n\t"    \
9481    "add r22, r0 \n\t"     \
9482    "adc r23, r1 \n\t"     \
9483    "adc r24, r25 \n\t"    \
9484    "mul r11, r14 \n\t"    \
9485    "add r22, r0 \n\t"     \
9486    "adc r23, r1 \n\t"     \
9487    "adc r24, r25 \n\t"    \
9488    "mul r2, r13 \n\t"     \
9489    "add r22, r0 \n\t"     \
9490    "adc r23, r1 \n\t"     \
9491    "adc r24, r25 \n\t"    \
9492    "mul r3, r12 \n\t"     \
9493    "add r22, r0 \n\t"     \
9494    "adc r23, r1 \n\t"     \
9495    "adc r24, r25 \n\t"    \
9496    "mul r4, r21 \n\t"     \
9497    "add r22, r0 \n\t"     \
9498    "adc r23, r1 \n\t"     \
9499    "adc r24, r25 \n\t"    \
9500    "mul r5, r20 \n\t"     \
9501    "add r22, r0 \n\t"     \
9502    "adc r23, r1 \n\t"     \
9503    "adc r24, r25 \n\t"    \
9504    "mul r6, r19 \n\t"     \
9505    "add r22, r0 \n\t"     \
9506    "adc r23, r1 \n\t"     \
9507    "adc r24, r25 \n\t"    \
9508    "mul r7, r18 \n\t"     \
9509    "add r22, r0 \n\t"     \
9510    "adc r23, r1 \n\t"     \
9511    "adc r24, r25 \n\t"    \
9512    "mul r8, r17 \n\t"     \
9513    "add r22, r0 \n\t"     \
9514    "adc r23, r1 \n\t"     \
9515    "adc r24, r25 \n\t"    \
9516    "mul r9, r16 \n\t"     \
9517    "add r22, r0 \n\t"     \
9518    "adc r23, r1 \n\t"     \
9519    "adc r24, r25 \n\t"    \
9520    "ld r0, z \n\t"        \
9521    "add r22, r0 \n\t"     \
9522    "adc r23, r25 \n\t"    \
9523    "adc r24, r25 \n\t"    \
9524    "st z+, r22 \n\t"      \
9525                           \
9526    "ld r16, y+ \n\t"      \
9527    "ldi r22, 0 \n\t"      \
9528    "mul r10, r16 \n\t"    \
9529    "add r23, r0 \n\t"     \
9530    "adc r24, r1 \n\t"     \
9531    "adc r22, r25 \n\t"    \
9532    "mul r11, r15 \n\t"    \
9533    "add r23, r0 \n\t"     \
9534    "adc r24, r1 \n\t"     \
9535    "adc r22, r25 \n\t"    \
9536    "mul r2, r14 \n\t"     \
9537    "add r23, r0 \n\t"     \
9538    "adc r24, r1 \n\t"     \
9539    "adc r22, r25 \n\t"    \
9540    "mul r3, r13 \n\t"     \
9541    "add r23, r0 \n\t"     \
9542    "adc r24, r1 \n\t"     \
9543    "adc r22, r25 \n\t"    \
9544    "mul r4, r12 \n\t"     \
9545    "add r23, r0 \n\t"     \
9546    "adc r24, r1 \n\t"     \
9547    "adc r22, r25 \n\t"    \
9548    "mul r5, r21 \n\t"     \
9549    "add r23, r0 \n\t"     \
9550    "adc r24, r1 \n\t"     \
9551    "adc r22, r25 \n\t"    \
9552    "mul r6, r20 \n\t"     \
9553    "add r23, r0 \n\t"     \
9554    "adc r24, r1 \n\t"     \
9555    "adc r22, r25 \n\t"    \
9556    "mul r7, r19 \n\t"     \
9557    "add r23, r0 \n\t"     \
9558    "adc r24, r1 \n\t"     \
9559    "adc r22, r25 \n\t"    \
9560    "mul r8, r18 \n\t"     \
9561    "add r23, r0 \n\t"     \
9562    "adc r24, r1 \n\t"     \
9563    "adc r22, r25 \n\t"    \
9564    "mul r9, r17 \n\t"     \
9565    "add r23, r0 \n\t"     \
9566    "adc r24, r1 \n\t"     \
9567    "adc r22, r25 \n\t"    \
9568    "ld r0, z \n\t"        \
9569    "add r23, r0 \n\t"     \
9570    "adc r24, r25 \n\t"    \
9571    "adc r22, r25 \n\t"    \
9572    "st z+, r23 \n\t"      \
9573                           \
9574    "ld r17, y+ \n\t"      \
9575    "ldi r23, 0 \n\t"      \
9576    "mul r10, r17 \n\t"    \
9577    "add r24, r0 \n\t"     \
9578    "adc r22, r1 \n\t"     \
9579    "adc r23, r25 \n\t"    \
9580    "mul r11, r16 \n\t"    \
9581    "add r24, r0 \n\t"     \
9582    "adc r22, r1 \n\t"     \
9583    "adc r23, r25 \n\t"    \
9584    "mul r2, r15 \n\t"     \
9585    "add r24, r0 \n\t"     \
9586    "adc r22, r1 \n\t"     \
9587    "adc r23, r25 \n\t"    \
9588    "mul r3, r14 \n\t"     \
9589    "add r24, r0 \n\t"     \
9590    "adc r22, r1 \n\t"     \
9591    "adc r23, r25 \n\t"    \
9592    "mul r4, r13 \n\t"     \
9593    "add r24, r0 \n\t"     \
9594    "adc r22, r1 \n\t"     \
9595    "adc r23, r25 \n\t"    \
9596    "mul r5, r12 \n\t"     \
9597    "add r24, r0 \n\t"     \
9598    "adc r22, r1 \n\t"     \
9599    "adc r23, r25 \n\t"    \
9600    "mul r6, r21 \n\t"     \
9601    "add r24, r0 \n\t"     \
9602    "adc r22, r1 \n\t"     \
9603    "adc r23, r25 \n\t"    \
9604    "mul r7, r20 \n\t"     \
9605    "add r24, r0 \n\t"     \
9606    "adc r22, r1 \n\t"     \
9607    "adc r23, r25 \n\t"    \
9608    "mul r8, r19 \n\t"     \
9609    "add r24, r0 \n\t"     \
9610    "adc r22, r1 \n\t"     \
9611    "adc r23, r25 \n\t"    \
9612    "mul r9, r18 \n\t"     \
9613    "add r24, r0 \n\t"     \
9614    "adc r22, r1 \n\t"     \
9615    "adc r23, r25 \n\t"    \
9616    "ld r0, z \n\t"        \
9617    "add r24, r0 \n\t"     \
9618    "adc r22, r25 \n\t"    \
9619    "adc r23, r25 \n\t"    \
9620    "st z+, r24 \n\t"      \
9621                           \
9622    "ld r18, y+ \n\t"      \
9623    "ldi r24, 0 \n\t"      \
9624    "mul r10, r18 \n\t"    \
9625    "add r22, r0 \n\t"     \
9626    "adc r23, r1 \n\t"     \
9627    "adc r24, r25 \n\t"    \
9628    "mul r11, r17 \n\t"    \
9629    "add r22, r0 \n\t"     \
9630    "adc r23, r1 \n\t"     \
9631    "adc r24, r25 \n\t"    \
9632    "mul r2, r16 \n\t"     \
9633    "add r22, r0 \n\t"     \
9634    "adc r23, r1 \n\t"     \
9635    "adc r24, r25 \n\t"    \
9636    "mul r3, r15 \n\t"     \
9637    "add r22, r0 \n\t"     \
9638    "adc r23, r1 \n\t"     \
9639    "adc r24, r25 \n\t"    \
9640    "mul r4, r14 \n\t"     \
9641    "add r22, r0 \n\t"     \
9642    "adc r23, r1 \n\t"     \
9643    "adc r24, r25 \n\t"    \
9644    "mul r5, r13 \n\t"     \
9645    "add r22, r0 \n\t"     \
9646    "adc r23, r1 \n\t"     \
9647    "adc r24, r25 \n\t"    \
9648    "mul r6, r12 \n\t"     \
9649    "add r22, r0 \n\t"     \
9650    "adc r23, r1 \n\t"     \
9651    "adc r24, r25 \n\t"    \
9652    "mul r7, r21 \n\t"     \
9653    "add r22, r0 \n\t"     \
9654    "adc r23, r1 \n\t"     \
9655    "adc r24, r25 \n\t"    \
9656    "mul r8, r20 \n\t"     \
9657    "add r22, r0 \n\t"     \
9658    "adc r23, r1 \n\t"     \
9659    "adc r24, r25 \n\t"    \
9660    "mul r9, r19 \n\t"     \
9661    "add r22, r0 \n\t"     \
9662    "adc r23, r1 \n\t"     \
9663    "adc r24, r25 \n\t"    \
9664    "ld r0, z \n\t"        \
9665    "add r22, r0 \n\t"     \
9666    "adc r23, r25 \n\t"    \
9667    "adc r24, r25 \n\t"    \
9668    "st z+, r22 \n\t"      \
9669                           \
9670    "ld r19, y+ \n\t"      \
9671    "ldi r22, 0 \n\t"      \
9672    "mul r10, r19 \n\t"    \
9673    "add r23, r0 \n\t"     \
9674    "adc r24, r1 \n\t"     \
9675    "adc r22, r25 \n\t"    \
9676    "mul r11, r18 \n\t"    \
9677    "add r23, r0 \n\t"     \
9678    "adc r24, r1 \n\t"     \
9679    "adc r22, r25 \n\t"    \
9680    "mul r2, r17 \n\t"     \
9681    "add r23, r0 \n\t"     \
9682    "adc r24, r1 \n\t"     \
9683    "adc r22, r25 \n\t"    \
9684    "mul r3, r16 \n\t"     \
9685    "add r23, r0 \n\t"     \
9686    "adc r24, r1 \n\t"     \
9687    "adc r22, r25 \n\t"    \
9688    "mul r4, r15 \n\t"     \
9689    "add r23, r0 \n\t"     \
9690    "adc r24, r1 \n\t"     \
9691    "adc r22, r25 \n\t"    \
9692    "mul r5, r14 \n\t"     \
9693    "add r23, r0 \n\t"     \
9694    "adc r24, r1 \n\t"     \
9695    "adc r22, r25 \n\t"    \
9696    "mul r6, r13 \n\t"     \
9697    "add r23, r0 \n\t"     \
9698    "adc r24, r1 \n\t"     \
9699    "adc r22, r25 \n\t"    \
9700    "mul r7, r12 \n\t"     \
9701    "add r23, r0 \n\t"     \
9702    "adc r24, r1 \n\t"     \
9703    "adc r22, r25 \n\t"    \
9704    "mul r8, r21 \n\t"     \
9705    "add r23, r0 \n\t"     \
9706    "adc r24, r1 \n\t"     \
9707    "adc r22, r25 \n\t"    \
9708    "mul r9, r20 \n\t"     \
9709    "add r23, r0 \n\t"     \
9710    "adc r24, r1 \n\t"     \
9711    "adc r22, r25 \n\t"    \
9712    "ld r0, z \n\t"        \
9713    "add r23, r0 \n\t"     \
9714    "adc r24, r25 \n\t"    \
9715    "adc r22, r25 \n\t"    \
9716    "st z+, r23 \n\t"      \
9717                           \
9718    "ld r20, y+ \n\t"      \
9719    "ldi r23, 0 \n\t"      \
9720    "mul r10, r20 \n\t"    \
9721    "add r24, r0 \n\t"     \
9722    "adc r22, r1 \n\t"     \
9723    "adc r23, r25 \n\t"    \
9724    "mul r11, r19 \n\t"    \
9725    "add r24, r0 \n\t"     \
9726    "adc r22, r1 \n\t"     \
9727    "adc r23, r25 \n\t"    \
9728    "mul r2, r18 \n\t"     \
9729    "add r24, r0 \n\t"     \
9730    "adc r22, r1 \n\t"     \
9731    "adc r23, r25 \n\t"    \
9732    "mul r3, r17 \n\t"     \
9733    "add r24, r0 \n\t"     \
9734    "adc r22, r1 \n\t"     \
9735    "adc r23, r25 \n\t"    \
9736    "mul r4, r16 \n\t"     \
9737    "add r24, r0 \n\t"     \
9738    "adc r22, r1 \n\t"     \
9739    "adc r23, r25 \n\t"    \
9740    "mul r5, r15 \n\t"     \
9741    "add r24, r0 \n\t"     \
9742    "adc r22, r1 \n\t"     \
9743    "adc r23, r25 \n\t"    \
9744    "mul r6, r14 \n\t"     \
9745    "add r24, r0 \n\t"     \
9746    "adc r22, r1 \n\t"     \
9747    "adc r23, r25 \n\t"    \
9748    "mul r7, r13 \n\t"     \
9749    "add r24, r0 \n\t"     \
9750    "adc r22, r1 \n\t"     \
9751    "adc r23, r25 \n\t"    \
9752    "mul r8, r12 \n\t"     \
9753    "add r24, r0 \n\t"     \
9754    "adc r22, r1 \n\t"     \
9755    "adc r23, r25 \n\t"    \
9756    "mul r9, r21 \n\t"     \
9757    "add r24, r0 \n\t"     \
9758    "adc r22, r1 \n\t"     \
9759    "adc r23, r25 \n\t"    \
9760    "ld r0, z \n\t"        \
9761    "add r24, r0 \n\t"     \
9762    "adc r22, r25 \n\t"    \
9763    "adc r23, r25 \n\t"    \
9764    "st z+, r24 \n\t"      \
9765                           \
9766    "ld r21, y+ \n\t"      \
9767    "ldi r24, 0 \n\t"      \
9768    "mul r10, r21 \n\t"    \
9769    "add r22, r0 \n\t"     \
9770    "adc r23, r1 \n\t"     \
9771    "adc r24, r25 \n\t"    \
9772    "mul r11, r20 \n\t"    \
9773    "add r22, r0 \n\t"     \
9774    "adc r23, r1 \n\t"     \
9775    "adc r24, r25 \n\t"    \
9776    "mul r2, r19 \n\t"     \
9777    "add r22, r0 \n\t"     \
9778    "adc r23, r1 \n\t"     \
9779    "adc r24, r25 \n\t"    \
9780    "mul r3, r18 \n\t"     \
9781    "add r22, r0 \n\t"     \
9782    "adc r23, r1 \n\t"     \
9783    "adc r24, r25 \n\t"    \
9784    "mul r4, r17 \n\t"     \
9785    "add r22, r0 \n\t"     \
9786    "adc r23, r1 \n\t"     \
9787    "adc r24, r25 \n\t"    \
9788    "mul r5, r16 \n\t"     \
9789    "add r22, r0 \n\t"     \
9790    "adc r23, r1 \n\t"     \
9791    "adc r24, r25 \n\t"    \
9792    "mul r6, r15 \n\t"     \
9793    "add r22, r0 \n\t"     \
9794    "adc r23, r1 \n\t"     \
9795    "adc r24, r25 \n\t"    \
9796    "mul r7, r14 \n\t"     \
9797    "add r22, r0 \n\t"     \
9798    "adc r23, r1 \n\t"     \
9799    "adc r24, r25 \n\t"    \
9800    "mul r8, r13 \n\t"     \
9801    "add r22, r0 \n\t"     \
9802    "adc r23, r1 \n\t"     \
9803    "adc r24, r25 \n\t"    \
9804    "mul r9, r12 \n\t"     \
9805    "add r22, r0 \n\t"     \
9806    "adc r23, r1 \n\t"     \
9807    "adc r24, r25 \n\t"    \
9808    "ld r0, z \n\t"        \
9809    "add r22, r0 \n\t"     \
9810    "adc r23, r25 \n\t"    \
9811    "adc r24, r25 \n\t"    \
9812    "st z+, r22 \n\t"      \
9813                           \
9814    "ld r12, y+ \n\t"      \
9815    "ldi r22, 0 \n\t"      \
9816    "mul r10, r12 \n\t"    \
9817    "add r23, r0 \n\t"     \
9818    "adc r24, r1 \n\t"     \
9819    "adc r22, r25 \n\t"    \
9820    "mul r11, r21 \n\t"    \
9821    "add r23, r0 \n\t"     \
9822    "adc r24, r1 \n\t"     \
9823    "adc r22, r25 \n\t"    \
9824    "mul r2, r20 \n\t"     \
9825    "add r23, r0 \n\t"     \
9826    "adc r24, r1 \n\t"     \
9827    "adc r22, r25 \n\t"    \
9828    "mul r3, r19 \n\t"     \
9829    "add r23, r0 \n\t"     \
9830    "adc r24, r1 \n\t"     \
9831    "adc r22, r25 \n\t"    \
9832    "mul r4, r18 \n\t"     \
9833    "add r23, r0 \n\t"     \
9834    "adc r24, r1 \n\t"     \
9835    "adc r22, r25 \n\t"    \
9836    "mul r5, r17 \n\t"     \
9837    "add r23, r0 \n\t"     \
9838    "adc r24, r1 \n\t"     \
9839    "adc r22, r25 \n\t"    \
9840    "mul r6, r16 \n\t"     \
9841    "add r23, r0 \n\t"     \
9842    "adc r24, r1 \n\t"     \
9843    "adc r22, r25 \n\t"    \
9844    "mul r7, r15 \n\t"     \
9845    "add r23, r0 \n\t"     \
9846    "adc r24, r1 \n\t"     \
9847    "adc r22, r25 \n\t"    \
9848    "mul r8, r14 \n\t"     \
9849    "add r23, r0 \n\t"     \
9850    "adc r24, r1 \n\t"     \
9851    "adc r22, r25 \n\t"    \
9852    "mul r9, r13 \n\t"     \
9853    "add r23, r0 \n\t"     \
9854    "adc r24, r1 \n\t"     \
9855    "adc r22, r25 \n\t"    \
9856    "ld r0, z \n\t"        \
9857    "add r23, r0 \n\t"     \
9858    "adc r24, r25 \n\t"    \
9859    "adc r22, r25 \n\t"    \
9860    "st z+, r23 \n\t"      \
9861                           \
9862    "ld r13, y+ \n\t"      \
9863    "ldi r23, 0 \n\t"      \
9864    "mul r10, r13 \n\t"    \
9865    "add r24, r0 \n\t"     \
9866    "adc r22, r1 \n\t"     \
9867    "adc r23, r25 \n\t"    \
9868    "mul r11, r12 \n\t"    \
9869    "add r24, r0 \n\t"     \
9870    "adc r22, r1 \n\t"     \
9871    "adc r23, r25 \n\t"    \
9872    "mul r2, r21 \n\t"     \
9873    "add r24, r0 \n\t"     \
9874    "adc r22, r1 \n\t"     \
9875    "adc r23, r25 \n\t"    \
9876    "mul r3, r20 \n\t"     \
9877    "add r24, r0 \n\t"     \
9878    "adc r22, r1 \n\t"     \
9879    "adc r23, r25 \n\t"    \
9880    "mul r4, r19 \n\t"     \
9881    "add r24, r0 \n\t"     \
9882    "adc r22, r1 \n\t"     \
9883    "adc r23, r25 \n\t"    \
9884    "mul r5, r18 \n\t"     \
9885    "add r24, r0 \n\t"     \
9886    "adc r22, r1 \n\t"     \
9887    "adc r23, r25 \n\t"    \
9888    "mul r6, r17 \n\t"     \
9889    "add r24, r0 \n\t"     \
9890    "adc r22, r1 \n\t"     \
9891    "adc r23, r25 \n\t"    \
9892    "mul r7, r16 \n\t"     \
9893    "add r24, r0 \n\t"     \
9894    "adc r22, r1 \n\t"     \
9895    "adc r23, r25 \n\t"    \
9896    "mul r8, r15 \n\t"     \
9897    "add r24, r0 \n\t"     \
9898    "adc r22, r1 \n\t"     \
9899    "adc r23, r25 \n\t"    \
9900    "mul r9, r14 \n\t"     \
9901    "add r24, r0 \n\t"     \
9902    "adc r22, r1 \n\t"     \
9903    "adc r23, r25 \n\t"    \
9904    "ld r0, z \n\t"        \
9905    "add r24, r0 \n\t"     \
9906    "adc r22, r25 \n\t"    \
9907    "adc r23, r25 \n\t"    \
9908    "st z+, r24 \n\t"      \
9909                           \
9910    "ld r14, y+ \n\t"      \
9911    "ldi r24, 0 \n\t"      \
9912    "mul r10, r14 \n\t"    \
9913    "add r22, r0 \n\t"     \
9914    "adc r23, r1 \n\t"     \
9915    "adc r24, r25 \n\t"    \
9916    "mul r11, r13 \n\t"    \
9917    "add r22, r0 \n\t"     \
9918    "adc r23, r1 \n\t"     \
9919    "adc r24, r25 \n\t"    \
9920    "mul r2, r12 \n\t"     \
9921    "add r22, r0 \n\t"     \
9922    "adc r23, r1 \n\t"     \
9923    "adc r24, r25 \n\t"    \
9924    "mul r3, r21 \n\t"     \
9925    "add r22, r0 \n\t"     \
9926    "adc r23, r1 \n\t"     \
9927    "adc r24, r25 \n\t"    \
9928    "mul r4, r20 \n\t"     \
9929    "add r22, r0 \n\t"     \
9930    "adc r23, r1 \n\t"     \
9931    "adc r24, r25 \n\t"    \
9932    "mul r5, r19 \n\t"     \
9933    "add r22, r0 \n\t"     \
9934    "adc r23, r1 \n\t"     \
9935    "adc r24, r25 \n\t"    \
9936    "mul r6, r18 \n\t"     \
9937    "add r22, r0 \n\t"     \
9938    "adc r23, r1 \n\t"     \
9939    "adc r24, r25 \n\t"    \
9940    "mul r7, r17 \n\t"     \
9941    "add r22, r0 \n\t"     \
9942    "adc r23, r1 \n\t"     \
9943    "adc r24, r25 \n\t"    \
9944    "mul r8, r16 \n\t"     \
9945    "add r22, r0 \n\t"     \
9946    "adc r23, r1 \n\t"     \
9947    "adc r24, r25 \n\t"    \
9948    "mul r9, r15 \n\t"     \
9949    "add r22, r0 \n\t"     \
9950    "adc r23, r1 \n\t"     \
9951    "adc r24, r25 \n\t"    \
9952    "ld r0, z \n\t"        \
9953    "add r22, r0 \n\t"     \
9954    "adc r23, r25 \n\t"    \
9955    "adc r24, r25 \n\t"    \
9956    "st z+, r22 \n\t"      \
9957                           \
9958    "ld r15, y+ \n\t"      \
9959    "ldi r22, 0 \n\t"      \
9960    "mul r10, r15 \n\t"    \
9961    "add r23, r0 \n\t"     \
9962    "adc r24, r1 \n\t"     \
9963    "adc r22, r25 \n\t"    \
9964    "mul r11, r14 \n\t"    \
9965    "add r23, r0 \n\t"     \
9966    "adc r24, r1 \n\t"     \
9967    "adc r22, r25 \n\t"    \
9968    "mul r2, r13 \n\t"     \
9969    "add r23, r0 \n\t"     \
9970    "adc r24, r1 \n\t"     \
9971    "adc r22, r25 \n\t"    \
9972    "mul r3, r12 \n\t"     \
9973    "add r23, r0 \n\t"     \
9974    "adc r24, r1 \n\t"     \
9975    "adc r22, r25 \n\t"    \
9976    "mul r4, r21 \n\t"     \
9977    "add r23, r0 \n\t"     \
9978    "adc r24, r1 \n\t"     \
9979    "adc r22, r25 \n\t"    \
9980    "mul r5, r20 \n\t"     \
9981    "add r23, r0 \n\t"     \
9982    "adc r24, r1 \n\t"     \
9983    "adc r22, r25 \n\t"    \
9984    "mul r6, r19 \n\t"     \
9985    "add r23, r0 \n\t"     \
9986    "adc r24, r1 \n\t"     \
9987    "adc r22, r25 \n\t"    \
9988    "mul r7, r18 \n\t"     \
9989    "add r23, r0 \n\t"     \
9990    "adc r24, r1 \n\t"     \
9991    "adc r22, r25 \n\t"    \
9992    "mul r8, r17 \n\t"     \
9993    "add r23, r0 \n\t"     \
9994    "adc r24, r1 \n\t"     \
9995    "adc r22, r25 \n\t"    \
9996    "mul r9, r16 \n\t"     \
9997    "add r23, r0 \n\t"     \
9998    "adc r24, r1 \n\t"     \
9999    "adc r22, r25 \n\t"    \
10000    "ld r0, z \n\t"        \
10001    "add r23, r0 \n\t"     \
10002    "adc r24, r25 \n\t"    \
10003    "adc r22, r25 \n\t"    \
10004    "st z+, r23 \n\t"      \
10005                           \
10006    "ld r16, y+ \n\t"      \
10007    "ldi r23, 0 \n\t"      \
10008    "mul r10, r16 \n\t"    \
10009    "add r24, r0 \n\t"     \
10010    "adc r22, r1 \n\t"     \
10011    "adc r23, r25 \n\t"    \
10012    "mul r11, r15 \n\t"    \
10013    "add r24, r0 \n\t"     \
10014    "adc r22, r1 \n\t"     \
10015    "adc r23, r25 \n\t"    \
10016    "mul r2, r14 \n\t"     \
10017    "add r24, r0 \n\t"     \
10018    "adc r22, r1 \n\t"     \
10019    "adc r23, r25 \n\t"    \
10020    "mul r3, r13 \n\t"     \
10021    "add r24, r0 \n\t"     \
10022    "adc r22, r1 \n\t"     \
10023    "adc r23, r25 \n\t"    \
10024    "mul r4, r12 \n\t"     \
10025    "add r24, r0 \n\t"     \
10026    "adc r22, r1 \n\t"     \
10027    "adc r23, r25 \n\t"    \
10028    "mul r5, r21 \n\t"     \
10029    "add r24, r0 \n\t"     \
10030    "adc r22, r1 \n\t"     \
10031    "adc r23, r25 \n\t"    \
10032    "mul r6, r20 \n\t"     \
10033    "add r24, r0 \n\t"     \
10034    "adc r22, r1 \n\t"     \
10035    "adc r23, r25 \n\t"    \
10036    "mul r7, r19 \n\t"     \
10037    "add r24, r0 \n\t"     \
10038    "adc r22, r1 \n\t"     \
10039    "adc r23, r25 \n\t"    \
10040    "mul r8, r18 \n\t"     \
10041    "add r24, r0 \n\t"     \
10042    "adc r22, r1 \n\t"     \
10043    "adc r23, r25 \n\t"    \
10044    "mul r9, r17 \n\t"     \
10045    "add r24, r0 \n\t"     \
10046    "adc r22, r1 \n\t"     \
10047    "adc r23, r25 \n\t"    \
10048    "ld r0, z \n\t"        \
10049    "add r24, r0 \n\t"     \
10050    "adc r22, r25 \n\t"    \
10051    "adc r23, r25 \n\t"    \
10052    "st z+, r24 \n\t"      \
10053                           \
10054    "ld r17, y+ \n\t"      \
10055    "ldi r24, 0 \n\t"      \
10056    "mul r10, r17 \n\t"    \
10057    "add r22, r0 \n\t"     \
10058    "adc r23, r1 \n\t"     \
10059    "adc r24, r25 \n\t"    \
10060    "mul r11, r16 \n\t"    \
10061    "add r22, r0 \n\t"     \
10062    "adc r23, r1 \n\t"     \
10063    "adc r24, r25 \n\t"    \
10064    "mul r2, r15 \n\t"     \
10065    "add r22, r0 \n\t"     \
10066    "adc r23, r1 \n\t"     \
10067    "adc r24, r25 \n\t"    \
10068    "mul r3, r14 \n\t"     \
10069    "add r22, r0 \n\t"     \
10070    "adc r23, r1 \n\t"     \
10071    "adc r24, r25 \n\t"    \
10072    "mul r4, r13 \n\t"     \
10073    "add r22, r0 \n\t"     \
10074    "adc r23, r1 \n\t"     \
10075    "adc r24, r25 \n\t"    \
10076    "mul r5, r12 \n\t"     \
10077    "add r22, r0 \n\t"     \
10078    "adc r23, r1 \n\t"     \
10079    "adc r24, r25 \n\t"    \
10080    "mul r6, r21 \n\t"     \
10081    "add r22, r0 \n\t"     \
10082    "adc r23, r1 \n\t"     \
10083    "adc r24, r25 \n\t"    \
10084    "mul r7, r20 \n\t"     \
10085    "add r22, r0 \n\t"     \
10086    "adc r23, r1 \n\t"     \
10087    "adc r24, r25 \n\t"    \
10088    "mul r8, r19 \n\t"     \
10089    "add r22, r0 \n\t"     \
10090    "adc r23, r1 \n\t"     \
10091    "adc r24, r25 \n\t"    \
10092    "mul r9, r18 \n\t"     \
10093    "add r22, r0 \n\t"     \
10094    "adc r23, r1 \n\t"     \
10095    "adc r24, r25 \n\t"    \
10096    "ld r0, z \n\t"        \
10097    "add r22, r0 \n\t"     \
10098    "adc r23, r25 \n\t"    \
10099    "adc r24, r25 \n\t"    \
10100    "st z+, r22 \n\t"      \
10101                           \
10102    "ld r18, y+ \n\t"      \
10103    "ldi r22, 0 \n\t"      \
10104    "mul r10, r18 \n\t"    \
10105    "add r23, r0 \n\t"     \
10106    "adc r24, r1 \n\t"     \
10107    "adc r22, r25 \n\t"    \
10108    "mul r11, r17 \n\t"    \
10109    "add r23, r0 \n\t"     \
10110    "adc r24, r1 \n\t"     \
10111    "adc r22, r25 \n\t"    \
10112    "mul r2, r16 \n\t"     \
10113    "add r23, r0 \n\t"     \
10114    "adc r24, r1 \n\t"     \
10115    "adc r22, r25 \n\t"    \
10116    "mul r3, r15 \n\t"     \
10117    "add r23, r0 \n\t"     \
10118    "adc r24, r1 \n\t"     \
10119    "adc r22, r25 \n\t"    \
10120    "mul r4, r14 \n\t"     \
10121    "add r23, r0 \n\t"     \
10122    "adc r24, r1 \n\t"     \
10123    "adc r22, r25 \n\t"    \
10124    "mul r5, r13 \n\t"     \
10125    "add r23, r0 \n\t"     \
10126    "adc r24, r1 \n\t"     \
10127    "adc r22, r25 \n\t"    \
10128    "mul r6, r12 \n\t"     \
10129    "add r23, r0 \n\t"     \
10130    "adc r24, r1 \n\t"     \
10131    "adc r22, r25 \n\t"    \
10132    "mul r7, r21 \n\t"     \
10133    "add r23, r0 \n\t"     \
10134    "adc r24, r1 \n\t"     \
10135    "adc r22, r25 \n\t"    \
10136    "mul r8, r20 \n\t"     \
10137    "add r23, r0 \n\t"     \
10138    "adc r24, r1 \n\t"     \
10139    "adc r22, r25 \n\t"    \
10140    "mul r9, r19 \n\t"     \
10141    "add r23, r0 \n\t"     \
10142    "adc r24, r1 \n\t"     \
10143    "adc r22, r25 \n\t"    \
10144    "ld r0, z \n\t"        \
10145    "add r23, r0 \n\t"     \
10146    "adc r24, r25 \n\t"    \
10147    "adc r22, r25 \n\t"    \
10148    "st z+, r23 \n\t"      \
10149                           \
10150    "ld r19, y+ \n\t"      \
10151    "ldi r23, 0 \n\t"      \
10152    "mul r10, r19 \n\t"    \
10153    "add r24, r0 \n\t"     \
10154    "adc r22, r1 \n\t"     \
10155    "adc r23, r25 \n\t"    \
10156    "mul r11, r18 \n\t"    \
10157    "add r24, r0 \n\t"     \
10158    "adc r22, r1 \n\t"     \
10159    "adc r23, r25 \n\t"    \
10160    "mul r2, r17 \n\t"     \
10161    "add r24, r0 \n\t"     \
10162    "adc r22, r1 \n\t"     \
10163    "adc r23, r25 \n\t"    \
10164    "mul r3, r16 \n\t"     \
10165    "add r24, r0 \n\t"     \
10166    "adc r22, r1 \n\t"     \
10167    "adc r23, r25 \n\t"    \
10168    "mul r4, r15 \n\t"     \
10169    "add r24, r0 \n\t"     \
10170    "adc r22, r1 \n\t"     \
10171    "adc r23, r25 \n\t"    \
10172    "mul r5, r14 \n\t"     \
10173    "add r24, r0 \n\t"     \
10174    "adc r22, r1 \n\t"     \
10175    "adc r23, r25 \n\t"    \
10176    "mul r6, r13 \n\t"     \
10177    "add r24, r0 \n\t"     \
10178    "adc r22, r1 \n\t"     \
10179    "adc r23, r25 \n\t"    \
10180    "mul r7, r12 \n\t"     \
10181    "add r24, r0 \n\t"     \
10182    "adc r22, r1 \n\t"     \
10183    "adc r23, r25 \n\t"    \
10184    "mul r8, r21 \n\t"     \
10185    "add r24, r0 \n\t"     \
10186    "adc r22, r1 \n\t"     \
10187    "adc r23, r25 \n\t"    \
10188    "mul r9, r20 \n\t"     \
10189    "add r24, r0 \n\t"     \
10190    "adc r22, r1 \n\t"     \
10191    "adc r23, r25 \n\t"    \
10192    "ld r0, z \n\t"        \
10193    "add r24, r0 \n\t"     \
10194    "adc r22, r25 \n\t"    \
10195    "adc r23, r25 \n\t"    \
10196    "st z+, r24 \n\t"      \
10197                           \
10198    "ldi r24, 0 \n\t"      \
10199    "mul r11, r19 \n\t"    \
10200    "add r22, r0 \n\t"     \
10201    "adc r23, r1 \n\t"     \
10202    "adc r24, r25 \n\t"    \
10203    "mul r2, r18 \n\t"     \
10204    "add r22, r0 \n\t"     \
10205    "adc r23, r1 \n\t"     \
10206    "adc r24, r25 \n\t"    \
10207    "mul r3, r17 \n\t"     \
10208    "add r22, r0 \n\t"     \
10209    "adc r23, r1 \n\t"     \
10210    "adc r24, r25 \n\t"    \
10211    "mul r4, r16 \n\t"     \
10212    "add r22, r0 \n\t"     \
10213    "adc r23, r1 \n\t"     \
10214    "adc r24, r25 \n\t"    \
10215    "mul r5, r15 \n\t"     \
10216    "add r22, r0 \n\t"     \
10217    "adc r23, r1 \n\t"     \
10218    "adc r24, r25 \n\t"    \
10219    "mul r6, r14 \n\t"     \
10220    "add r22, r0 \n\t"     \
10221    "adc r23, r1 \n\t"     \
10222    "adc r24, r25 \n\t"    \
10223    "mul r7, r13 \n\t"     \
10224    "add r22, r0 \n\t"     \
10225    "adc r23, r1 \n\t"     \
10226    "adc r24, r25 \n\t"    \
10227    "mul r8, r12 \n\t"     \
10228    "add r22, r0 \n\t"     \
10229    "adc r23, r1 \n\t"     \
10230    "adc r24, r25 \n\t"    \
10231    "mul r9, r21 \n\t"     \
10232    "add r22, r0 \n\t"     \
10233    "adc r23, r1 \n\t"     \
10234    "adc r24, r25 \n\t"    \
10235    "st z+, r22 \n\t"      \
10236                           \
10237    "ldi r22, 0 \n\t"      \
10238    "mul r2, r19 \n\t"     \
10239    "add r23, r0 \n\t"     \
10240    "adc r24, r1 \n\t"     \
10241    "adc r22, r25 \n\t"    \
10242    "mul r3, r18 \n\t"     \
10243    "add r23, r0 \n\t"     \
10244    "adc r24, r1 \n\t"     \
10245    "adc r22, r25 \n\t"    \
10246    "mul r4, r17 \n\t"     \
10247    "add r23, r0 \n\t"     \
10248    "adc r24, r1 \n\t"     \
10249    "adc r22, r25 \n\t"    \
10250    "mul r5, r16 \n\t"     \
10251    "add r23, r0 \n\t"     \
10252    "adc r24, r1 \n\t"     \
10253    "adc r22, r25 \n\t"    \
10254    "mul r6, r15 \n\t"     \
10255    "add r23, r0 \n\t"     \
10256    "adc r24, r1 \n\t"     \
10257    "adc r22, r25 \n\t"    \
10258    "mul r7, r14 \n\t"     \
10259    "add r23, r0 \n\t"     \
10260    "adc r24, r1 \n\t"     \
10261    "adc r22, r25 \n\t"    \
10262    "mul r8, r13 \n\t"     \
10263    "add r23, r0 \n\t"     \
10264    "adc r24, r1 \n\t"     \
10265    "adc r22, r25 \n\t"    \
10266    "mul r9, r12 \n\t"     \
10267    "add r23, r0 \n\t"     \
10268    "adc r24, r1 \n\t"     \
10269    "adc r22, r25 \n\t"    \
10270    "st z+, r23 \n\t"      \
10271                           \
10272    "ldi r23, 0 \n\t"      \
10273    "mul r3, r19 \n\t"     \
10274    "add r24, r0 \n\t"     \
10275    "adc r22, r1 \n\t"     \
10276    "adc r23, r25 \n\t"    \
10277    "mul r4, r18 \n\t"     \
10278    "add r24, r0 \n\t"     \
10279    "adc r22, r1 \n\t"     \
10280    "adc r23, r25 \n\t"    \
10281    "mul r5, r17 \n\t"     \
10282    "add r24, r0 \n\t"     \
10283    "adc r22, r1 \n\t"     \
10284    "adc r23, r25 \n\t"    \
10285    "mul r6, r16 \n\t"     \
10286    "add r24, r0 \n\t"     \
10287    "adc r22, r1 \n\t"     \
10288    "adc r23, r25 \n\t"    \
10289    "mul r7, r15 \n\t"     \
10290    "add r24, r0 \n\t"     \
10291    "adc r22, r1 \n\t"     \
10292    "adc r23, r25 \n\t"    \
10293    "mul r8, r14 \n\t"     \
10294    "add r24, r0 \n\t"     \
10295    "adc r22, r1 \n\t"     \
10296    "adc r23, r25 \n\t"    \
10297    "mul r9, r13 \n\t"     \
10298    "add r24, r0 \n\t"     \
10299    "adc r22, r1 \n\t"     \
10300    "adc r23, r25 \n\t"    \
10301    "st z+, r24 \n\t"      \
10302                           \
10303    "ldi r24, 0 \n\t"      \
10304    "mul r4, r19 \n\t"     \
10305    "add r22, r0 \n\t"     \
10306    "adc r23, r1 \n\t"     \
10307    "adc r24, r25 \n\t"    \
10308    "mul r5, r18 \n\t"     \
10309    "add r22, r0 \n\t"     \
10310    "adc r23, r1 \n\t"     \
10311    "adc r24, r25 \n\t"    \
10312    "mul r6, r17 \n\t"     \
10313    "add r22, r0 \n\t"     \
10314    "adc r23, r1 \n\t"     \
10315    "adc r24, r25 \n\t"    \
10316    "mul r7, r16 \n\t"     \
10317    "add r22, r0 \n\t"     \
10318    "adc r23, r1 \n\t"     \
10319    "adc r24, r25 \n\t"    \
10320    "mul r8, r15 \n\t"     \
10321    "add r22, r0 \n\t"     \
10322    "adc r23, r1 \n\t"     \
10323    "adc r24, r25 \n\t"    \
10324    "mul r9, r14 \n\t"     \
10325    "add r22, r0 \n\t"     \
10326    "adc r23, r1 \n\t"     \
10327    "adc r24, r25 \n\t"    \
10328    "st z+, r22 \n\t"      \
10329                           \
10330    "ldi r22, 0 \n\t"      \
10331    "mul r5, r19 \n\t"     \
10332    "add r23, r0 \n\t"     \
10333    "adc r24, r1 \n\t"     \
10334    "adc r22, r25 \n\t"    \
10335    "mul r6, r18 \n\t"     \
10336    "add r23, r0 \n\t"     \
10337    "adc r24, r1 \n\t"     \
10338    "adc r22, r25 \n\t"    \
10339    "mul r7, r17 \n\t"     \
10340    "add r23, r0 \n\t"     \
10341    "adc r24, r1 \n\t"     \
10342    "adc r22, r25 \n\t"    \
10343    "mul r8, r16 \n\t"     \
10344    "add r23, r0 \n\t"     \
10345    "adc r24, r1 \n\t"     \
10346    "adc r22, r25 \n\t"    \
10347    "mul r9, r15 \n\t"     \
10348    "add r23, r0 \n\t"     \
10349    "adc r24, r1 \n\t"     \
10350    "adc r22, r25 \n\t"    \
10351    "st z+, r23 \n\t"      \
10352                           \
10353    "ldi r23, 0 \n\t"      \
10354    "mul r6, r19 \n\t"     \
10355    "add r24, r0 \n\t"     \
10356    "adc r22, r1 \n\t"     \
10357    "adc r23, r25 \n\t"    \
10358    "mul r7, r18 \n\t"     \
10359    "add r24, r0 \n\t"     \
10360    "adc r22, r1 \n\t"     \
10361    "adc r23, r25 \n\t"    \
10362    "mul r8, r17 \n\t"     \
10363    "add r24, r0 \n\t"     \
10364    "adc r22, r1 \n\t"     \
10365    "adc r23, r25 \n\t"    \
10366    "mul r9, r16 \n\t"     \
10367    "add r24, r0 \n\t"     \
10368    "adc r22, r1 \n\t"     \
10369    "adc r23, r25 \n\t"    \
10370    "st z+, r24 \n\t"      \
10371                           \
10372    "ldi r24, 0 \n\t"      \
10373    "mul r7, r19 \n\t"     \
10374    "add r22, r0 \n\t"     \
10375    "adc r23, r1 \n\t"     \
10376    "adc r24, r25 \n\t"    \
10377    "mul r8, r18 \n\t"     \
10378    "add r22, r0 \n\t"     \
10379    "adc r23, r1 \n\t"     \
10380    "adc r24, r25 \n\t"    \
10381    "mul r9, r17 \n\t"     \
10382    "add r22, r0 \n\t"     \
10383    "adc r23, r1 \n\t"     \
10384    "adc r24, r25 \n\t"    \
10385    "st z+, r22 \n\t"      \
10386                           \
10387    "ldi r22, 0 \n\t"      \
10388    "mul r8, r19 \n\t"     \
10389    "add r23, r0 \n\t"     \
10390    "adc r24, r1 \n\t"     \
10391    "adc r22, r25 \n\t"    \
10392    "mul r9, r18 \n\t"     \
10393    "add r23, r0 \n\t"     \
10394    "adc r24, r1 \n\t"     \
10395    "adc r22, r25 \n\t"    \
10396    "st z+, r23 \n\t"      \
10397                           \
10398    "mul r9, r19 \n\t"     \
10399    "add r24, r0 \n\t"     \
10400    "adc r22, r1 \n\t"     \
10401    "st z+, r24 \n\t"      \
10402    "st z+, r22 \n\t"
10403
10404#define FAST_MULT_ASM_28_TO_32     \
10405    "cpi r18, 28 \n\t"             \
10406    "brne 1f \n\t"                 \
10407    "jmp 2f \n\t"                  \
10408    "1: \n\t"                      \
10409    "ld r2, x+ \n\t"               \
10410    "ld r6, y+ \n\t"               \
10411    "ld r3, x+ \n\t"               \
10412    "ld r7, y+ \n\t"               \
10413    "ld r4, x+ \n\t"               \
10414    "ld r8, y+ \n\t"               \
10415    "ld r5, x+ \n\t"               \
10416    "ld r9, y+ \n\t"               \
10417    "sbiw r26, 32 \n\t"            \
10418    "sbiw r28, 32 \n\t"            \
10419    "sbiw r30, 28 \n\t"            \
10420    "ld r10, x+ \n\t"              \
10421    "ld r14, y+ \n\t"              \
10422    "ld r11, x+ \n\t"              \
10423    "ld r15, y+ \n\t"              \
10424    "ld r12, x+ \n\t"              \
10425    "ld r16, y+ \n\t"              \
10426    "ld r13, x+ \n\t"              \
10427    "ld r17, y+ \n\t"              \
10428                                   \
10429    "mul r2, r14 \n\t"             \
10430    "mov r19, r0 \n\t"             \
10431    "mov r20, r1 \n\t"             \
10432    "ldi r21, 0 \n\t"              \
10433    "ld r0, z \n\t"                \
10434    "add r19, r0 \n\t"             \
10435    "adc r20, r25 \n\t"            \
10436    "mul r6, r10 \n\t"             \
10437    "add r19, r0 \n\t"             \
10438    "adc r20, r1 \n\t"             \
10439    "adc r21, r25 \n\t"            \
10440    "st z+, r19 \n\t"              \
10441                                   \
10442    "ldi r19, 0 \n\t"              \
10443    "ld r0, z \n\t"                \
10444    "add r20, r0 \n\t"             \
10445    "adc r21, r25 \n\t"            \
10446    "mul r2, r15 \n\t"             \
10447    "add r20, r0 \n\t"             \
10448    "adc r21, r1 \n\t"             \
10449    "adc r19, r25 \n\t"            \
10450    "mul r6, r11 \n\t"             \
10451    "add r20, r0 \n\t"             \
10452    "adc r21, r1 \n\t"             \
10453    "adc r19, r25 \n\t"            \
10454    "mul r3, r14 \n\t"             \
10455    "add r20, r0 \n\t"             \
10456    "adc r21, r1 \n\t"             \
10457    "adc r19, r25 \n\t"            \
10458    "mul r7, r10 \n\t"             \
10459    "add r20, r0 \n\t"             \
10460    "adc r21, r1 \n\t"             \
10461    "adc r19, r25 \n\t"            \
10462    "st z+, r20 \n\t"              \
10463                                   \
10464    "ldi r20, 0 \n\t"              \
10465    "ld r0, z \n\t"                \
10466    "add r21, r0 \n\t"             \
10467    "adc r19, r25 \n\t"            \
10468    "mul r2, r16 \n\t"             \
10469    "add r21, r0 \n\t"             \
10470    "adc r19, r1 \n\t"             \
10471    "adc r20, r25 \n\t"            \
10472    "mul r6, r12 \n\t"             \
10473    "add r21, r0 \n\t"             \
10474    "adc r19, r1 \n\t"             \
10475    "adc r20, r25 \n\t"            \
10476    "mul r3, r15 \n\t"             \
10477    "add r21, r0 \n\t"             \
10478    "adc r19, r1 \n\t"             \
10479    "adc r20, r25 \n\t"            \
10480    "mul r7, r11 \n\t"             \
10481    "add r21, r0 \n\t"             \
10482    "adc r19, r1 \n\t"             \
10483    "adc r20, r25 \n\t"            \
10484    "mul r4, r14 \n\t"             \
10485    "add r21, r0 \n\t"             \
10486    "adc r19, r1 \n\t"             \
10487    "adc r20, r25 \n\t"            \
10488    "mul r8, r10 \n\t"             \
10489    "add r21, r0 \n\t"             \
10490    "adc r19, r1 \n\t"             \
10491    "adc r20, r25 \n\t"            \
10492    "st z+, r21 \n\t"              \
10493                                   \
10494    "ldi r21, 0 \n\t"              \
10495    "ld r0, z \n\t"                \
10496    "add r19, r0 \n\t"             \
10497    "adc r20, r25 \n\t"            \
10498    "mul r2, r17 \n\t"             \
10499    "add r19, r0 \n\t"             \
10500    "adc r20, r1 \n\t"             \
10501    "adc r21, r25 \n\t"            \
10502    "mul r6, r13 \n\t"             \
10503    "add r19, r0 \n\t"             \
10504    "adc r20, r1 \n\t"             \
10505    "adc r21, r25 \n\t"            \
10506    "mul r3, r16 \n\t"             \
10507    "add r19, r0 \n\t"             \
10508    "adc r20, r1 \n\t"             \
10509    "adc r21, r25 \n\t"            \
10510    "mul r7, r12 \n\t"             \
10511    "add r19, r0 \n\t"             \
10512    "adc r20, r1 \n\t"             \
10513    "adc r21, r25 \n\t"            \
10514    "mul r4, r15 \n\t"             \
10515    "add r19, r0 \n\t"             \
10516    "adc r20, r1 \n\t"             \
10517    "adc r21, r25 \n\t"            \
10518    "mul r8, r11 \n\t"             \
10519    "add r19, r0 \n\t"             \
10520    "adc r20, r1 \n\t"             \
10521    "adc r21, r25 \n\t"            \
10522    "mul r5, r14 \n\t"             \
10523    "add r19, r0 \n\t"             \
10524    "adc r20, r1 \n\t"             \
10525    "adc r21, r25 \n\t"            \
10526    "mul r9, r10 \n\t"             \
10527    "add r19, r0 \n\t"             \
10528    "adc r20, r1 \n\t"             \
10529    "adc r21, r25 \n\t"            \
10530    "st z+, r19 \n\t"              \
10531                                   \
10532    "ldi r19, 0 \n\t"              \
10533    "ld r0, z \n\t"                \
10534    "add r20, r0 \n\t"             \
10535    "adc r21, r25 \n\t"            \
10536    "ld r10, x+ \n\t"              \
10537    "ld r14, y+ \n\t"              \
10538    "mul r2, r14 \n\t"             \
10539    "add r20, r0 \n\t"             \
10540    "adc r21, r1 \n\t"             \
10541    "adc r19, r25 \n\t"            \
10542    "mul r6, r10 \n\t"             \
10543    "add r20, r0 \n\t"             \
10544    "adc r21, r1 \n\t"             \
10545    "adc r19, r25 \n\t"            \
10546    "mul r3, r17 \n\t"             \
10547    "add r20, r0 \n\t"             \
10548    "adc r21, r1 \n\t"             \
10549    "adc r19, r25 \n\t"            \
10550    "mul r7, r13 \n\t"             \
10551    "add r20, r0 \n\t"             \
10552    "adc r21, r1 \n\t"             \
10553    "adc r19, r25 \n\t"            \
10554    "mul r4, r16 \n\t"             \
10555    "add r20, r0 \n\t"             \
10556    "adc r21, r1 \n\t"             \
10557    "adc r19, r25 \n\t"            \
10558    "mul r8, r12 \n\t"             \
10559    "add r20, r0 \n\t"             \
10560    "adc r21, r1 \n\t"             \
10561    "adc r19, r25 \n\t"            \
10562    "mul r5, r15 \n\t"             \
10563    "add r20, r0 \n\t"             \
10564    "adc r21, r1 \n\t"             \
10565    "adc r19, r25 \n\t"            \
10566    "mul r9, r11 \n\t"             \
10567    "add r20, r0 \n\t"             \
10568    "adc r21, r1 \n\t"             \
10569    "adc r19, r25 \n\t"            \
10570    "st z+, r20 \n\t"              \
10571                                   \
10572    "ldi r20, 0 \n\t"              \
10573    "ld r0, z \n\t"                \
10574    "add r21, r0 \n\t"             \
10575    "adc r19, r25 \n\t"            \
10576    "ld r11, x+ \n\t"              \
10577    "ld r15, y+ \n\t"              \
10578    "mul r2, r15 \n\t"             \
10579    "add r21, r0 \n\t"             \
10580    "adc r19, r1 \n\t"             \
10581    "adc r20, r25 \n\t"            \
10582    "mul r6, r11 \n\t"             \
10583    "add r21, r0 \n\t"             \
10584    "adc r19, r1 \n\t"             \
10585    "adc r20, r25 \n\t"            \
10586    "mul r3, r14 \n\t"             \
10587    "add r21, r0 \n\t"             \
10588    "adc r19, r1 \n\t"             \
10589    "adc r20, r25 \n\t"            \
10590    "mul r7, r10 \n\t"             \
10591    "add r21, r0 \n\t"             \
10592    "adc r19, r1 \n\t"             \
10593    "adc r20, r25 \n\t"            \
10594    "mul r4, r17 \n\t"             \
10595    "add r21, r0 \n\t"             \
10596    "adc r19, r1 \n\t"             \
10597    "adc r20, r25 \n\t"            \
10598    "mul r8, r13 \n\t"             \
10599    "add r21, r0 \n\t"             \
10600    "adc r19, r1 \n\t"             \
10601    "adc r20, r25 \n\t"            \
10602    "mul r5, r16 \n\t"             \
10603    "add r21, r0 \n\t"             \
10604    "adc r19, r1 \n\t"             \
10605    "adc r20, r25 \n\t"            \
10606    "mul r9, r12 \n\t"             \
10607    "add r21, r0 \n\t"             \
10608    "adc r19, r1 \n\t"             \
10609    "adc r20, r25 \n\t"            \
10610    "st z+, r21 \n\t"              \
10611                                   \
10612    "ldi r21, 0 \n\t"              \
10613    "ld r0, z \n\t"                \
10614    "add r19, r0 \n\t"             \
10615    "adc r20, r25 \n\t"            \
10616    "ld r12, x+ \n\t"              \
10617    "ld r16, y+ \n\t"              \
10618    "mul r2, r16 \n\t"             \
10619    "add r19, r0 \n\t"             \
10620    "adc r20, r1 \n\t"             \
10621    "adc r21, r25 \n\t"            \
10622    "mul r6, r12 \n\t"             \
10623    "add r19, r0 \n\t"             \
10624    "adc r20, r1 \n\t"             \
10625    "adc r21, r25 \n\t"            \
10626    "mul r3, r15 \n\t"             \
10627    "add r19, r0 \n\t"             \
10628    "adc r20, r1 \n\t"             \
10629    "adc r21, r25 \n\t"            \
10630    "mul r7, r11 \n\t"             \
10631    "add r19, r0 \n\t"             \
10632    "adc r20, r1 \n\t"             \
10633    "adc r21, r25 \n\t"            \
10634    "mul r4, r14 \n\t"             \
10635    "add r19, r0 \n\t"             \
10636    "adc r20, r1 \n\t"             \
10637    "adc r21, r25 \n\t"            \
10638    "mul r8, r10 \n\t"             \
10639    "add r19, r0 \n\t"             \
10640    "adc r20, r1 \n\t"             \
10641    "adc r21, r25 \n\t"            \
10642    "mul r5, r17 \n\t"             \
10643    "add r19, r0 \n\t"             \
10644    "adc r20, r1 \n\t"             \
10645    "adc r21, r25 \n\t"            \
10646    "mul r9, r13 \n\t"             \
10647    "add r19, r0 \n\t"             \
10648    "adc r20, r1 \n\t"             \
10649    "adc r21, r25 \n\t"            \
10650    "st z+, r19 \n\t"              \
10651                                   \
10652    "ldi r19, 0 \n\t"              \
10653    "ld r0, z \n\t"                \
10654    "add r20, r0 \n\t"             \
10655    "adc r21, r25 \n\t"            \
10656    "ld r13, x+ \n\t"              \
10657    "ld r17, y+ \n\t"              \
10658    "mul r2, r17 \n\t"             \
10659    "add r20, r0 \n\t"             \
10660    "adc r21, r1 \n\t"             \
10661    "adc r19, r25 \n\t"            \
10662    "mul r6, r13 \n\t"             \
10663    "add r20, r0 \n\t"             \
10664    "adc r21, r1 \n\t"             \
10665    "adc r19, r25 \n\t"            \
10666    "mul r3, r16 \n\t"             \
10667    "add r20, r0 \n\t"             \
10668    "adc r21, r1 \n\t"             \
10669    "adc r19, r25 \n\t"            \
10670    "mul r7, r12 \n\t"             \
10671    "add r20, r0 \n\t"             \
10672    "adc r21, r1 \n\t"             \
10673    "adc r19, r25 \n\t"            \
10674    "mul r4, r15 \n\t"             \
10675    "add r20, r0 \n\t"             \
10676    "adc r21, r1 \n\t"             \
10677    "adc r19, r25 \n\t"            \
10678    "mul r8, r11 \n\t"             \
10679    "add r20, r0 \n\t"             \
10680    "adc r21, r1 \n\t"             \
10681    "adc r19, r25 \n\t"            \
10682    "mul r5, r14 \n\t"             \
10683    "add r20, r0 \n\t"             \
10684    "adc r21, r1 \n\t"             \
10685    "adc r19, r25 \n\t"            \
10686    "mul r9, r10 \n\t"             \
10687    "add r20, r0 \n\t"             \
10688    "adc r21, r1 \n\t"             \
10689    "adc r19, r25 \n\t"            \
10690    "st z+, r20 \n\t"              \
10691                                   \
10692    "ldi r20, 0 \n\t"              \
10693    "ld r0, z \n\t"                \
10694    "add r21, r0 \n\t"             \
10695    "adc r19, r25 \n\t"            \
10696    "ld r10, x+ \n\t"              \
10697    "ld r14, y+ \n\t"              \
10698    "mul r2, r14 \n\t"             \
10699    "add r21, r0 \n\t"             \
10700    "adc r19, r1 \n\t"             \
10701    "adc r20, r25 \n\t"            \
10702    "mul r6, r10 \n\t"             \
10703    "add r21, r0 \n\t"             \
10704    "adc r19, r1 \n\t"             \
10705    "adc r20, r25 \n\t"            \
10706    "mul r3, r17 \n\t"             \
10707    "add r21, r0 \n\t"             \
10708    "adc r19, r1 \n\t"             \
10709    "adc r20, r25 \n\t"            \
10710    "mul r7, r13 \n\t"             \
10711    "add r21, r0 \n\t"             \
10712    "adc r19, r1 \n\t"             \
10713    "adc r20, r25 \n\t"            \
10714    "mul r4, r16 \n\t"             \
10715    "add r21, r0 \n\t"             \
10716    "adc r19, r1 \n\t"             \
10717    "adc r20, r25 \n\t"            \
10718    "mul r8, r12 \n\t"             \
10719    "add r21, r0 \n\t"             \
10720    "adc r19, r1 \n\t"             \
10721    "adc r20, r25 \n\t"            \
10722    "mul r5, r15 \n\t"             \
10723    "add r21, r0 \n\t"             \
10724    "adc r19, r1 \n\t"             \
10725    "adc r20, r25 \n\t"            \
10726    "mul r9, r11 \n\t"             \
10727    "add r21, r0 \n\t"             \
10728    "adc r19, r1 \n\t"             \
10729    "adc r20, r25 \n\t"            \
10730    "st z+, r21 \n\t"              \
10731                                   \
10732    "ldi r21, 0 \n\t"              \
10733    "ld r0, z \n\t"                \
10734    "add r19, r0 \n\t"             \
10735    "adc r20, r25 \n\t"            \
10736    "ld r11, x+ \n\t"              \
10737    "ld r15, y+ \n\t"              \
10738    "mul r2, r15 \n\t"             \
10739    "add r19, r0 \n\t"             \
10740    "adc r20, r1 \n\t"             \
10741    "adc r21, r25 \n\t"            \
10742    "mul r6, r11 \n\t"             \
10743    "add r19, r0 \n\t"             \
10744    "adc r20, r1 \n\t"             \
10745    "adc r21, r25 \n\t"            \
10746    "mul r3, r14 \n\t"             \
10747    "add r19, r0 \n\t"             \
10748    "adc r20, r1 \n\t"             \
10749    "adc r21, r25 \n\t"            \
10750    "mul r7, r10 \n\t"             \
10751    "add r19, r0 \n\t"             \
10752    "adc r20, r1 \n\t"             \
10753    "adc r21, r25 \n\t"            \
10754    "mul r4, r17 \n\t"             \
10755    "add r19, r0 \n\t"             \
10756    "adc r20, r1 \n\t"             \
10757    "adc r21, r25 \n\t"            \
10758    "mul r8, r13 \n\t"             \
10759    "add r19, r0 \n\t"             \
10760    "adc r20, r1 \n\t"             \
10761    "adc r21, r25 \n\t"            \
10762    "mul r5, r16 \n\t"             \
10763    "add r19, r0 \n\t"             \
10764    "adc r20, r1 \n\t"             \
10765    "adc r21, r25 \n\t"            \
10766    "mul r9, r12 \n\t"             \
10767    "add r19, r0 \n\t"             \
10768    "adc r20, r1 \n\t"             \
10769    "adc r21, r25 \n\t"            \
10770    "st z+, r19 \n\t"              \
10771                                   \
10772    "ldi r19, 0 \n\t"              \
10773    "ld r0, z \n\t"                \
10774    "add r20, r0 \n\t"             \
10775    "adc r21, r25 \n\t"            \
10776    "ld r12, x+ \n\t"              \
10777    "ld r16, y+ \n\t"              \
10778    "mul r2, r16 \n\t"             \
10779    "add r20, r0 \n\t"             \
10780    "adc r21, r1 \n\t"             \
10781    "adc r19, r25 \n\t"            \
10782    "mul r6, r12 \n\t"             \
10783    "add r20, r0 \n\t"             \
10784    "adc r21, r1 \n\t"             \
10785    "adc r19, r25 \n\t"            \
10786    "mul r3, r15 \n\t"             \
10787    "add r20, r0 \n\t"             \
10788    "adc r21, r1 \n\t"             \
10789    "adc r19, r25 \n\t"            \
10790    "mul r7, r11 \n\t"             \
10791    "add r20, r0 \n\t"             \
10792    "adc r21, r1 \n\t"             \
10793    "adc r19, r25 \n\t"            \
10794    "mul r4, r14 \n\t"             \
10795    "add r20, r0 \n\t"             \
10796    "adc r21, r1 \n\t"             \
10797    "adc r19, r25 \n\t"            \
10798    "mul r8, r10 \n\t"             \
10799    "add r20, r0 \n\t"             \
10800    "adc r21, r1 \n\t"             \
10801    "adc r19, r25 \n\t"            \
10802    "mul r5, r17 \n\t"             \
10803    "add r20, r0 \n\t"             \
10804    "adc r21, r1 \n\t"             \
10805    "adc r19, r25 \n\t"            \
10806    "mul r9, r13 \n\t"             \
10807    "add r20, r0 \n\t"             \
10808    "adc r21, r1 \n\t"             \
10809    "adc r19, r25 \n\t"            \
10810    "st z+, r20 \n\t"              \
10811                                   \
10812    "ldi r20, 0 \n\t"              \
10813    "ld r0, z \n\t"                \
10814    "add r21, r0 \n\t"             \
10815    "adc r19, r25 \n\t"            \
10816    "ld r13, x+ \n\t"              \
10817    "ld r17, y+ \n\t"              \
10818    "mul r2, r17 \n\t"             \
10819    "add r21, r0 \n\t"             \
10820    "adc r19, r1 \n\t"             \
10821    "adc r20, r25 \n\t"            \
10822    "mul r6, r13 \n\t"             \
10823    "add r21, r0 \n\t"             \
10824    "adc r19, r1 \n\t"             \
10825    "adc r20, r25 \n\t"            \
10826    "mul r3, r16 \n\t"             \
10827    "add r21, r0 \n\t"             \
10828    "adc r19, r1 \n\t"             \
10829    "adc r20, r25 \n\t"            \
10830    "mul r7, r12 \n\t"             \
10831    "add r21, r0 \n\t"             \
10832    "adc r19, r1 \n\t"             \
10833    "adc r20, r25 \n\t"            \
10834    "mul r4, r15 \n\t"             \
10835    "add r21, r0 \n\t"             \
10836    "adc r19, r1 \n\t"             \
10837    "adc r20, r25 \n\t"            \
10838    "mul r8, r11 \n\t"             \
10839    "add r21, r0 \n\t"             \
10840    "adc r19, r1 \n\t"             \
10841    "adc r20, r25 \n\t"            \
10842    "mul r5, r14 \n\t"             \
10843    "add r21, r0 \n\t"             \
10844    "adc r19, r1 \n\t"             \
10845    "adc r20, r25 \n\t"            \
10846    "mul r9, r10 \n\t"             \
10847    "add r21, r0 \n\t"             \
10848    "adc r19, r1 \n\t"             \
10849    "adc r20, r25 \n\t"            \
10850    "st z+, r21 \n\t"              \
10851                                   \
10852    "ldi r21, 0 \n\t"              \
10853    "ld r0, z \n\t"                \
10854    "add r19, r0 \n\t"             \
10855    "adc r20, r25 \n\t"            \
10856    "ld r10, x+ \n\t"              \
10857    "ld r14, y+ \n\t"              \
10858    "mul r2, r14 \n\t"             \
10859    "add r19, r0 \n\t"             \
10860    "adc r20, r1 \n\t"             \
10861    "adc r21, r25 \n\t"            \
10862    "mul r6, r10 \n\t"             \
10863    "add r19, r0 \n\t"             \
10864    "adc r20, r1 \n\t"             \
10865    "adc r21, r25 \n\t"            \
10866    "mul r3, r17 \n\t"             \
10867    "add r19, r0 \n\t"             \
10868    "adc r20, r1 \n\t"             \
10869    "adc r21, r25 \n\t"            \
10870    "mul r7, r13 \n\t"             \
10871    "add r19, r0 \n\t"             \
10872    "adc r20, r1 \n\t"             \
10873    "adc r21, r25 \n\t"            \
10874    "mul r4, r16 \n\t"             \
10875    "add r19, r0 \n\t"             \
10876    "adc r20, r1 \n\t"             \
10877    "adc r21, r25 \n\t"            \
10878    "mul r8, r12 \n\t"             \
10879    "add r19, r0 \n\t"             \
10880    "adc r20, r1 \n\t"             \
10881    "adc r21, r25 \n\t"            \
10882    "mul r5, r15 \n\t"             \
10883    "add r19, r0 \n\t"             \
10884    "adc r20, r1 \n\t"             \
10885    "adc r21, r25 \n\t"            \
10886    "mul r9, r11 \n\t"             \
10887    "add r19, r0 \n\t"             \
10888    "adc r20, r1 \n\t"             \
10889    "adc r21, r25 \n\t"            \
10890    "st z+, r19 \n\t"              \
10891                                   \
10892    "ldi r19, 0 \n\t"              \
10893    "ld r0, z \n\t"                \
10894    "add r20, r0 \n\t"             \
10895    "adc r21, r25 \n\t"            \
10896    "ld r11, x+ \n\t"              \
10897    "ld r15, y+ \n\t"              \
10898    "mul r2, r15 \n\t"             \
10899    "add r20, r0 \n\t"             \
10900    "adc r21, r1 \n\t"             \
10901    "adc r19, r25 \n\t"            \
10902    "mul r6, r11 \n\t"             \
10903    "add r20, r0 \n\t"             \
10904    "adc r21, r1 \n\t"             \
10905    "adc r19, r25 \n\t"            \
10906    "mul r3, r14 \n\t"             \
10907    "add r20, r0 \n\t"             \
10908    "adc r21, r1 \n\t"             \
10909    "adc r19, r25 \n\t"            \
10910    "mul r7, r10 \n\t"             \
10911    "add r20, r0 \n\t"             \
10912    "adc r21, r1 \n\t"             \
10913    "adc r19, r25 \n\t"            \
10914    "mul r4, r17 \n\t"             \
10915    "add r20, r0 \n\t"             \
10916    "adc r21, r1 \n\t"             \
10917    "adc r19, r25 \n\t"            \
10918    "mul r8, r13 \n\t"             \
10919    "add r20, r0 \n\t"             \
10920    "adc r21, r1 \n\t"             \
10921    "adc r19, r25 \n\t"            \
10922    "mul r5, r16 \n\t"             \
10923    "add r20, r0 \n\t"             \
10924    "adc r21, r1 \n\t"             \
10925    "adc r19, r25 \n\t"            \
10926    "mul r9, r12 \n\t"             \
10927    "add r20, r0 \n\t"             \
10928    "adc r21, r1 \n\t"             \
10929    "adc r19, r25 \n\t"            \
10930    "st z+, r20 \n\t"              \
10931                                   \
10932    "ldi r20, 0 \n\t"              \
10933    "ld r0, z \n\t"                \
10934    "add r21, r0 \n\t"             \
10935    "adc r19, r25 \n\t"            \
10936    "ld r12, x+ \n\t"              \
10937    "ld r16, y+ \n\t"              \
10938    "mul r2, r16 \n\t"             \
10939    "add r21, r0 \n\t"             \
10940    "adc r19, r1 \n\t"             \
10941    "adc r20, r25 \n\t"            \
10942    "mul r6, r12 \n\t"             \
10943    "add r21, r0 \n\t"             \
10944    "adc r19, r1 \n\t"             \
10945    "adc r20, r25 \n\t"            \
10946    "mul r3, r15 \n\t"             \
10947    "add r21, r0 \n\t"             \
10948    "adc r19, r1 \n\t"             \
10949    "adc r20, r25 \n\t"            \
10950    "mul r7, r11 \n\t"             \
10951    "add r21, r0 \n\t"             \
10952    "adc r19, r1 \n\t"             \
10953    "adc r20, r25 \n\t"            \
10954    "mul r4, r14 \n\t"             \
10955    "add r21, r0 \n\t"             \
10956    "adc r19, r1 \n\t"             \
10957    "adc r20, r25 \n\t"            \
10958    "mul r8, r10 \n\t"             \
10959    "add r21, r0 \n\t"             \
10960    "adc r19, r1 \n\t"             \
10961    "adc r20, r25 \n\t"            \
10962    "mul r5, r17 \n\t"             \
10963    "add r21, r0 \n\t"             \
10964    "adc r19, r1 \n\t"             \
10965    "adc r20, r25 \n\t"            \
10966    "mul r9, r13 \n\t"             \
10967    "add r21, r0 \n\t"             \
10968    "adc r19, r1 \n\t"             \
10969    "adc r20, r25 \n\t"            \
10970    "st z+, r21 \n\t"              \
10971                                   \
10972    "ldi r21, 0 \n\t"              \
10973    "ld r0, z \n\t"                \
10974    "add r19, r0 \n\t"             \
10975    "adc r20, r25 \n\t"            \
10976    "ld r13, x+ \n\t"              \
10977    "ld r17, y+ \n\t"              \
10978    "mul r2, r17 \n\t"             \
10979    "add r19, r0 \n\t"             \
10980    "adc r20, r1 \n\t"             \
10981    "adc r21, r25 \n\t"            \
10982    "mul r6, r13 \n\t"             \
10983    "add r19, r0 \n\t"             \
10984    "adc r20, r1 \n\t"             \
10985    "adc r21, r25 \n\t"            \
10986    "mul r3, r16 \n\t"             \
10987    "add r19, r0 \n\t"             \
10988    "adc r20, r1 \n\t"             \
10989    "adc r21, r25 \n\t"            \
10990    "mul r7, r12 \n\t"             \
10991    "add r19, r0 \n\t"             \
10992    "adc r20, r1 \n\t"             \
10993    "adc r21, r25 \n\t"            \
10994    "mul r4, r15 \n\t"             \
10995    "add r19, r0 \n\t"             \
10996    "adc r20, r1 \n\t"             \
10997    "adc r21, r25 \n\t"            \
10998    "mul r8, r11 \n\t"             \
10999    "add r19, r0 \n\t"             \
11000    "adc r20, r1 \n\t"             \
11001    "adc r21, r25 \n\t"            \
11002    "mul r5, r14 \n\t"             \
11003    "add r19, r0 \n\t"             \
11004    "adc r20, r1 \n\t"             \
11005    "adc r21, r25 \n\t"            \
11006    "mul r9, r10 \n\t"             \
11007    "add r19, r0 \n\t"             \
11008    "adc r20, r1 \n\t"             \
11009    "adc r21, r25 \n\t"            \
11010    "st z+, r19 \n\t"              \
11011                                   \
11012    "ldi r19, 0 \n\t"              \
11013    "ld r0, z \n\t"                \
11014    "add r20, r0 \n\t"             \
11015    "adc r21, r25 \n\t"            \
11016    "ld r10, x+ \n\t"              \
11017    "ld r14, y+ \n\t"              \
11018    "mul r2, r14 \n\t"             \
11019    "add r20, r0 \n\t"             \
11020    "adc r21, r1 \n\t"             \
11021    "adc r19, r25 \n\t"            \
11022    "mul r6, r10 \n\t"             \
11023    "add r20, r0 \n\t"             \
11024    "adc r21, r1 \n\t"             \
11025    "adc r19, r25 \n\t"            \
11026    "mul r3, r17 \n\t"             \
11027    "add r20, r0 \n\t"             \
11028    "adc r21, r1 \n\t"             \
11029    "adc r19, r25 \n\t"            \
11030    "mul r7, r13 \n\t"             \
11031    "add r20, r0 \n\t"             \
11032    "adc r21, r1 \n\t"             \
11033    "adc r19, r25 \n\t"            \
11034    "mul r4, r16 \n\t"             \
11035    "add r20, r0 \n\t"             \
11036    "adc r21, r1 \n\t"             \
11037    "adc r19, r25 \n\t"            \
11038    "mul r8, r12 \n\t"             \
11039    "add r20, r0 \n\t"             \
11040    "adc r21, r1 \n\t"             \
11041    "adc r19, r25 \n\t"            \
11042    "mul r5, r15 \n\t"             \
11043    "add r20, r0 \n\t"             \
11044    "adc r21, r1 \n\t"             \
11045    "adc r19, r25 \n\t"            \
11046    "mul r9, r11 \n\t"             \
11047    "add r20, r0 \n\t"             \
11048    "adc r21, r1 \n\t"             \
11049    "adc r19, r25 \n\t"            \
11050    "st z+, r20 \n\t"              \
11051                                   \
11052    "ldi r20, 0 \n\t"              \
11053    "ld r0, z \n\t"                \
11054    "add r21, r0 \n\t"             \
11055    "adc r19, r25 \n\t"            \
11056    "ld r11, x+ \n\t"              \
11057    "ld r15, y+ \n\t"              \
11058    "mul r2, r15 \n\t"             \
11059    "add r21, r0 \n\t"             \
11060    "adc r19, r1 \n\t"             \
11061    "adc r20, r25 \n\t"            \
11062    "mul r6, r11 \n\t"             \
11063    "add r21, r0 \n\t"             \
11064    "adc r19, r1 \n\t"             \
11065    "adc r20, r25 \n\t"            \
11066    "mul r3, r14 \n\t"             \
11067    "add r21, r0 \n\t"             \
11068    "adc r19, r1 \n\t"             \
11069    "adc r20, r25 \n\t"            \
11070    "mul r7, r10 \n\t"             \
11071    "add r21, r0 \n\t"             \
11072    "adc r19, r1 \n\t"             \
11073    "adc r20, r25 \n\t"            \
11074    "mul r4, r17 \n\t"             \
11075    "add r21, r0 \n\t"             \
11076    "adc r19, r1 \n\t"             \
11077    "adc r20, r25 \n\t"            \
11078    "mul r8, r13 \n\t"             \
11079    "add r21, r0 \n\t"             \
11080    "adc r19, r1 \n\t"             \
11081    "adc r20, r25 \n\t"            \
11082    "mul r5, r16 \n\t"             \
11083    "add r21, r0 \n\t"             \
11084    "adc r19, r1 \n\t"             \
11085    "adc r20, r25 \n\t"            \
11086    "mul r9, r12 \n\t"             \
11087    "add r21, r0 \n\t"             \
11088    "adc r19, r1 \n\t"             \
11089    "adc r20, r25 \n\t"            \
11090    "st z+, r21 \n\t"              \
11091                                   \
11092    "ldi r21, 0 \n\t"              \
11093    "ld r0, z \n\t"                \
11094    "add r19, r0 \n\t"             \
11095    "adc r20, r25 \n\t"            \
11096    "ld r12, x+ \n\t"              \
11097    "ld r16, y+ \n\t"              \
11098    "mul r2, r16 \n\t"             \
11099    "add r19, r0 \n\t"             \
11100    "adc r20, r1 \n\t"             \
11101    "adc r21, r25 \n\t"            \
11102    "mul r6, r12 \n\t"             \
11103    "add r19, r0 \n\t"             \
11104    "adc r20, r1 \n\t"             \
11105    "adc r21, r25 \n\t"            \
11106    "mul r3, r15 \n\t"             \
11107    "add r19, r0 \n\t"             \
11108    "adc r20, r1 \n\t"             \
11109    "adc r21, r25 \n\t"            \
11110    "mul r7, r11 \n\t"             \
11111    "add r19, r0 \n\t"             \
11112    "adc r20, r1 \n\t"             \
11113    "adc r21, r25 \n\t"            \
11114    "mul r4, r14 \n\t"             \
11115    "add r19, r0 \n\t"             \
11116    "adc r20, r1 \n\t"             \
11117    "adc r21, r25 \n\t"            \
11118    "mul r8, r10 \n\t"             \
11119    "add r19, r0 \n\t"             \
11120    "adc r20, r1 \n\t"             \
11121    "adc r21, r25 \n\t"            \
11122    "mul r5, r17 \n\t"             \
11123    "add r19, r0 \n\t"             \
11124    "adc r20, r1 \n\t"             \
11125    "adc r21, r25 \n\t"            \
11126    "mul r9, r13 \n\t"             \
11127    "add r19, r0 \n\t"             \
11128    "adc r20, r1 \n\t"             \
11129    "adc r21, r25 \n\t"            \
11130    "st z+, r19 \n\t"              \
11131                                   \
11132    "ldi r19, 0 \n\t"              \
11133    "ld r0, z \n\t"                \
11134    "add r20, r0 \n\t"             \
11135    "adc r21, r25 \n\t"            \
11136    "ld r13, x+ \n\t"              \
11137    "ld r17, y+ \n\t"              \
11138    "mul r2, r17 \n\t"             \
11139    "add r20, r0 \n\t"             \
11140    "adc r21, r1 \n\t"             \
11141    "adc r19, r25 \n\t"            \
11142    "mul r6, r13 \n\t"             \
11143    "add r20, r0 \n\t"             \
11144    "adc r21, r1 \n\t"             \
11145    "adc r19, r25 \n\t"            \
11146    "mul r3, r16 \n\t"             \
11147    "add r20, r0 \n\t"             \
11148    "adc r21, r1 \n\t"             \
11149    "adc r19, r25 \n\t"            \
11150    "mul r7, r12 \n\t"             \
11151    "add r20, r0 \n\t"             \
11152    "adc r21, r1 \n\t"             \
11153    "adc r19, r25 \n\t"            \
11154    "mul r4, r15 \n\t"             \
11155    "add r20, r0 \n\t"             \
11156    "adc r21, r1 \n\t"             \
11157    "adc r19, r25 \n\t"            \
11158    "mul r8, r11 \n\t"             \
11159    "add r20, r0 \n\t"             \
11160    "adc r21, r1 \n\t"             \
11161    "adc r19, r25 \n\t"            \
11162    "mul r5, r14 \n\t"             \
11163    "add r20, r0 \n\t"             \
11164    "adc r21, r1 \n\t"             \
11165    "adc r19, r25 \n\t"            \
11166    "mul r9, r10 \n\t"             \
11167    "add r20, r0 \n\t"             \
11168    "adc r21, r1 \n\t"             \
11169    "adc r19, r25 \n\t"            \
11170    "st z+, r20 \n\t"              \
11171                                   \
11172    "ldi r20, 0 \n\t"              \
11173    "ld r0, z \n\t"                \
11174    "add r21, r0 \n\t"             \
11175    "adc r19, r25 \n\t"            \
11176    "ld r10, x+ \n\t"              \
11177    "ld r14, y+ \n\t"              \
11178    "mul r2, r14 \n\t"             \
11179    "add r21, r0 \n\t"             \
11180    "adc r19, r1 \n\t"             \
11181    "adc r20, r25 \n\t"            \
11182    "mul r6, r10 \n\t"             \
11183    "add r21, r0 \n\t"             \
11184    "adc r19, r1 \n\t"             \
11185    "adc r20, r25 \n\t"            \
11186    "mul r3, r17 \n\t"             \
11187    "add r21, r0 \n\t"             \
11188    "adc r19, r1 \n\t"             \
11189    "adc r20, r25 \n\t"            \
11190    "mul r7, r13 \n\t"             \
11191    "add r21, r0 \n\t"             \
11192    "adc r19, r1 \n\t"             \
11193    "adc r20, r25 \n\t"            \
11194    "mul r4, r16 \n\t"             \
11195    "add r21, r0 \n\t"             \
11196    "adc r19, r1 \n\t"             \
11197    "adc r20, r25 \n\t"            \
11198    "mul r8, r12 \n\t"             \
11199    "add r21, r0 \n\t"             \
11200    "adc r19, r1 \n\t"             \
11201    "adc r20, r25 \n\t"            \
11202    "mul r5, r15 \n\t"             \
11203    "add r21, r0 \n\t"             \
11204    "adc r19, r1 \n\t"             \
11205    "adc r20, r25 \n\t"            \
11206    "mul r9, r11 \n\t"             \
11207    "add r21, r0 \n\t"             \
11208    "adc r19, r1 \n\t"             \
11209    "adc r20, r25 \n\t"            \
11210    "st z+, r21 \n\t"              \
11211                                   \
11212    "ldi r21, 0 \n\t"              \
11213    "ld r0, z \n\t"                \
11214    "add r19, r0 \n\t"             \
11215    "adc r20, r25 \n\t"            \
11216    "ld r11, x+ \n\t"              \
11217    "ld r15, y+ \n\t"              \
11218    "mul r2, r15 \n\t"             \
11219    "add r19, r0 \n\t"             \
11220    "adc r20, r1 \n\t"             \
11221    "adc r21, r25 \n\t"            \
11222    "mul r6, r11 \n\t"             \
11223    "add r19, r0 \n\t"             \
11224    "adc r20, r1 \n\t"             \
11225    "adc r21, r25 \n\t"            \
11226    "mul r3, r14 \n\t"             \
11227    "add r19, r0 \n\t"             \
11228    "adc r20, r1 \n\t"             \
11229    "adc r21, r25 \n\t"            \
11230    "mul r7, r10 \n\t"             \
11231    "add r19, r0 \n\t"             \
11232    "adc r20, r1 \n\t"             \
11233    "adc r21, r25 \n\t"            \
11234    "mul r4, r17 \n\t"             \
11235    "add r19, r0 \n\t"             \
11236    "adc r20, r1 \n\t"             \
11237    "adc r21, r25 \n\t"            \
11238    "mul r8, r13 \n\t"             \
11239    "add r19, r0 \n\t"             \
11240    "adc r20, r1 \n\t"             \
11241    "adc r21, r25 \n\t"            \
11242    "mul r5, r16 \n\t"             \
11243    "add r19, r0 \n\t"             \
11244    "adc r20, r1 \n\t"             \
11245    "adc r21, r25 \n\t"            \
11246    "mul r9, r12 \n\t"             \
11247    "add r19, r0 \n\t"             \
11248    "adc r20, r1 \n\t"             \
11249    "adc r21, r25 \n\t"            \
11250    "st z+, r19 \n\t"              \
11251                                   \
11252    "ldi r19, 0 \n\t"              \
11253    "ld r0, z \n\t"                \
11254    "add r20, r0 \n\t"             \
11255    "adc r21, r25 \n\t"            \
11256    "ld r12, x+ \n\t"              \
11257    "ld r16, y+ \n\t"              \
11258    "mul r2, r16 \n\t"             \
11259    "add r20, r0 \n\t"             \
11260    "adc r21, r1 \n\t"             \
11261    "adc r19, r25 \n\t"            \
11262    "mul r6, r12 \n\t"             \
11263    "add r20, r0 \n\t"             \
11264    "adc r21, r1 \n\t"             \
11265    "adc r19, r25 \n\t"            \
11266    "mul r3, r15 \n\t"             \
11267    "add r20, r0 \n\t"             \
11268    "adc r21, r1 \n\t"             \
11269    "adc r19, r25 \n\t"            \
11270    "mul r7, r11 \n\t"             \
11271    "add r20, r0 \n\t"             \
11272    "adc r21, r1 \n\t"             \
11273    "adc r19, r25 \n\t"            \
11274    "mul r4, r14 \n\t"             \
11275    "add r20, r0 \n\t"             \
11276    "adc r21, r1 \n\t"             \
11277    "adc r19, r25 \n\t"            \
11278    "mul r8, r10 \n\t"             \
11279    "add r20, r0 \n\t"             \
11280    "adc r21, r1 \n\t"             \
11281    "adc r19, r25 \n\t"            \
11282    "mul r5, r17 \n\t"             \
11283    "add r20, r0 \n\t"             \
11284    "adc r21, r1 \n\t"             \
11285    "adc r19, r25 \n\t"            \
11286    "mul r9, r13 \n\t"             \
11287    "add r20, r0 \n\t"             \
11288    "adc r21, r1 \n\t"             \
11289    "adc r19, r25 \n\t"            \
11290    "st z+, r20 \n\t"              \
11291                                   \
11292    "ldi r20, 0 \n\t"              \
11293    "ld r0, z \n\t"                \
11294    "add r21, r0 \n\t"             \
11295    "adc r19, r25 \n\t"            \
11296    "ld r13, x+ \n\t"              \
11297    "ld r17, y+ \n\t"              \
11298    "mul r2, r17 \n\t"             \
11299    "add r21, r0 \n\t"             \
11300    "adc r19, r1 \n\t"             \
11301    "adc r20, r25 \n\t"            \
11302    "mul r6, r13 \n\t"             \
11303    "add r21, r0 \n\t"             \
11304    "adc r19, r1 \n\t"             \
11305    "adc r20, r25 \n\t"            \
11306    "mul r3, r16 \n\t"             \
11307    "add r21, r0 \n\t"             \
11308    "adc r19, r1 \n\t"             \
11309    "adc r20, r25 \n\t"            \
11310    "mul r7, r12 \n\t"             \
11311    "add r21, r0 \n\t"             \
11312    "adc r19, r1 \n\t"             \
11313    "adc r20, r25 \n\t"            \
11314    "mul r4, r15 \n\t"             \
11315    "add r21, r0 \n\t"             \
11316    "adc r19, r1 \n\t"             \
11317    "adc r20, r25 \n\t"            \
11318    "mul r8, r11 \n\t"             \
11319    "add r21, r0 \n\t"             \
11320    "adc r19, r1 \n\t"             \
11321    "adc r20, r25 \n\t"            \
11322    "mul r5, r14 \n\t"             \
11323    "add r21, r0 \n\t"             \
11324    "adc r19, r1 \n\t"             \
11325    "adc r20, r25 \n\t"            \
11326    "mul r9, r10 \n\t"             \
11327    "add r21, r0 \n\t"             \
11328    "adc r19, r1 \n\t"             \
11329    "adc r20, r25 \n\t"            \
11330    "st z+, r21 \n\t"              \
11331                                   \
11332    "ldi r21, 0 \n\t"              \
11333    "ld r0, z \n\t"                \
11334    "add r19, r0 \n\t"             \
11335    "adc r20, r25 \n\t"            \
11336    "ld r10, x+ \n\t"              \
11337    "ld r14, y+ \n\t"              \
11338    "mul r2, r14 \n\t"             \
11339    "add r19, r0 \n\t"             \
11340    "adc r20, r1 \n\t"             \
11341    "adc r21, r25 \n\t"            \
11342    "mul r6, r10 \n\t"             \
11343    "add r19, r0 \n\t"             \
11344    "adc r20, r1 \n\t"             \
11345    "adc r21, r25 \n\t"            \
11346    "mul r3, r17 \n\t"             \
11347    "add r19, r0 \n\t"             \
11348    "adc r20, r1 \n\t"             \
11349    "adc r21, r25 \n\t"            \
11350    "mul r7, r13 \n\t"             \
11351    "add r19, r0 \n\t"             \
11352    "adc r20, r1 \n\t"             \
11353    "adc r21, r25 \n\t"            \
11354    "mul r4, r16 \n\t"             \
11355    "add r19, r0 \n\t"             \
11356    "adc r20, r1 \n\t"             \
11357    "adc r21, r25 \n\t"            \
11358    "mul r8, r12 \n\t"             \
11359    "add r19, r0 \n\t"             \
11360    "adc r20, r1 \n\t"             \
11361    "adc r21, r25 \n\t"            \
11362    "mul r5, r15 \n\t"             \
11363    "add r19, r0 \n\t"             \
11364    "adc r20, r1 \n\t"             \
11365    "adc r21, r25 \n\t"            \
11366    "mul r9, r11 \n\t"             \
11367    "add r19, r0 \n\t"             \
11368    "adc r20, r1 \n\t"             \
11369    "adc r21, r25 \n\t"            \
11370    "st z+, r19 \n\t"              \
11371                                   \
11372    "ldi r19, 0 \n\t"              \
11373    "ld r0, z \n\t"                \
11374    "add r20, r0 \n\t"             \
11375    "adc r21, r25 \n\t"            \
11376    "ld r11, x+ \n\t"              \
11377    "ld r15, y+ \n\t"              \
11378    "mul r2, r15 \n\t"             \
11379    "add r20, r0 \n\t"             \
11380    "adc r21, r1 \n\t"             \
11381    "adc r19, r25 \n\t"            \
11382    "mul r6, r11 \n\t"             \
11383    "add r20, r0 \n\t"             \
11384    "adc r21, r1 \n\t"             \
11385    "adc r19, r25 \n\t"            \
11386    "mul r3, r14 \n\t"             \
11387    "add r20, r0 \n\t"             \
11388    "adc r21, r1 \n\t"             \
11389    "adc r19, r25 \n\t"            \
11390    "mul r7, r10 \n\t"             \
11391    "add r20, r0 \n\t"             \
11392    "adc r21, r1 \n\t"             \
11393    "adc r19, r25 \n\t"            \
11394    "mul r4, r17 \n\t"             \
11395    "add r20, r0 \n\t"             \
11396    "adc r21, r1 \n\t"             \
11397    "adc r19, r25 \n\t"            \
11398    "mul r8, r13 \n\t"             \
11399    "add r20, r0 \n\t"             \
11400    "adc r21, r1 \n\t"             \
11401    "adc r19, r25 \n\t"            \
11402    "mul r5, r16 \n\t"             \
11403    "add r20, r0 \n\t"             \
11404    "adc r21, r1 \n\t"             \
11405    "adc r19, r25 \n\t"            \
11406    "mul r9, r12 \n\t"             \
11407    "add r20, r0 \n\t"             \
11408    "adc r21, r1 \n\t"             \
11409    "adc r19, r25 \n\t"            \
11410    "st z+, r20 \n\t"              \
11411                                   \
11412    "ldi r20, 0 \n\t"              \
11413    "ld r0, z \n\t"                \
11414    "add r21, r0 \n\t"             \
11415    "adc r19, r25 \n\t"            \
11416    "ld r12, x+ \n\t"              \
11417    "ld r16, y+ \n\t"              \
11418    "mul r2, r16 \n\t"             \
11419    "add r21, r0 \n\t"             \
11420    "adc r19, r1 \n\t"             \
11421    "adc r20, r25 \n\t"            \
11422    "mul r6, r12 \n\t"             \
11423    "add r21, r0 \n\t"             \
11424    "adc r19, r1 \n\t"             \
11425    "adc r20, r25 \n\t"            \
11426    "mul r3, r15 \n\t"             \
11427    "add r21, r0 \n\t"             \
11428    "adc r19, r1 \n\t"             \
11429    "adc r20, r25 \n\t"            \
11430    "mul r7, r11 \n\t"             \
11431    "add r21, r0 \n\t"             \
11432    "adc r19, r1 \n\t"             \
11433    "adc r20, r25 \n\t"            \
11434    "mul r4, r14 \n\t"             \
11435    "add r21, r0 \n\t"             \
11436    "adc r19, r1 \n\t"             \
11437    "adc r20, r25 \n\t"            \
11438    "mul r8, r10 \n\t"             \
11439    "add r21, r0 \n\t"             \
11440    "adc r19, r1 \n\t"             \
11441    "adc r20, r25 \n\t"            \
11442    "mul r5, r17 \n\t"             \
11443    "add r21, r0 \n\t"             \
11444    "adc r19, r1 \n\t"             \
11445    "adc r20, r25 \n\t"            \
11446    "mul r9, r13 \n\t"             \
11447    "add r21, r0 \n\t"             \
11448    "adc r19, r1 \n\t"             \
11449    "adc r20, r25 \n\t"            \
11450    "st z+, r21 \n\t"              \
11451                                   \
11452    "ldi r21, 0 \n\t"              \
11453    "ld r0, z \n\t"                \
11454    "add r19, r0 \n\t"             \
11455    "adc r20, r25 \n\t"            \
11456    "ld r13, x+ \n\t"              \
11457    "ld r17, y+ \n\t"              \
11458    "mul r2, r17 \n\t"             \
11459    "add r19, r0 \n\t"             \
11460    "adc r20, r1 \n\t"             \
11461    "adc r21, r25 \n\t"            \
11462    "mul r6, r13 \n\t"             \
11463    "add r19, r0 \n\t"             \
11464    "adc r20, r1 \n\t"             \
11465    "adc r21, r25 \n\t"            \
11466    "mul r3, r16 \n\t"             \
11467    "add r19, r0 \n\t"             \
11468    "adc r20, r1 \n\t"             \
11469    "adc r21, r25 \n\t"            \
11470    "mul r7, r12 \n\t"             \
11471    "add r19, r0 \n\t"             \
11472    "adc r20, r1 \n\t"             \
11473    "adc r21, r25 \n\t"            \
11474    "mul r4, r15 \n\t"             \
11475    "add r19, r0 \n\t"             \
11476    "adc r20, r1 \n\t"             \
11477    "adc r21, r25 \n\t"            \
11478    "mul r8, r11 \n\t"             \
11479    "add r19, r0 \n\t"             \
11480    "adc r20, r1 \n\t"             \
11481    "adc r21, r25 \n\t"            \
11482    "mul r5, r14 \n\t"             \
11483    "add r19, r0 \n\t"             \
11484    "adc r20, r1 \n\t"             \
11485    "adc r21, r25 \n\t"            \
11486    "mul r9, r10 \n\t"             \
11487    "add r19, r0 \n\t"             \
11488    "adc r20, r1 \n\t"             \
11489    "adc r21, r25 \n\t"            \
11490    "st z+, r19 \n\t"              \
11491                                   \
11492    "ldi r19, 0 \n\t"              \
11493    "mul r11, r9 \n\t"             \
11494    "add r20, r0 \n\t"             \
11495    "adc r21, r1 \n\t"             \
11496    "adc r19, r25 \n\t"            \
11497    "mul r12, r8 \n\t"             \
11498    "add r20, r0 \n\t"             \
11499    "adc r21, r1 \n\t"             \
11500    "adc r19, r25 \n\t"            \
11501    "mul r13, r7 \n\t"             \
11502    "add r20, r0 \n\t"             \
11503    "adc r21, r1 \n\t"             \
11504    "adc r19, r25 \n\t"            \
11505    "mul r2, r6 \n\t"              \
11506    "add r20, r0 \n\t"             \
11507    "adc r21, r1 \n\t"             \
11508    "adc r19, r25 \n\t"            \
11509    "mul r3, r17 \n\t"             \
11510    "add r20, r0 \n\t"             \
11511    "adc r21, r1 \n\t"             \
11512    "adc r19, r25 \n\t"            \
11513    "mul r4, r16 \n\t"             \
11514    "add r20, r0 \n\t"             \
11515    "adc r21, r1 \n\t"             \
11516    "adc r19, r25 \n\t"            \
11517    "mul r5, r15 \n\t"             \
11518    "add r20, r0 \n\t"             \
11519    "adc r21, r1 \n\t"             \
11520    "adc r19, r25 \n\t"            \
11521    "st z+, r20 \n\t"              \
11522                                   \
11523    "ldi r20, 0 \n\t"              \
11524    "mul r12, r9 \n\t"             \
11525    "add r21, r0 \n\t"             \
11526    "adc r19, r1 \n\t"             \
11527    "adc r20, r25 \n\t"            \
11528    "mul r13, r8 \n\t"             \
11529    "add r21, r0 \n\t"             \
11530    "adc r19, r1 \n\t"             \
11531    "adc r20, r25 \n\t"            \
11532    "mul r2, r7 \n\t"              \
11533    "add r21, r0 \n\t"             \
11534    "adc r19, r1 \n\t"             \
11535    "adc r20, r25 \n\t"            \
11536    "mul r3, r6 \n\t"              \
11537    "add r21, r0 \n\t"             \
11538    "adc r19, r1 \n\t"             \
11539    "adc r20, r25 \n\t"            \
11540    "mul r4, r17 \n\t"             \
11541    "add r21, r0 \n\t"             \
11542    "adc r19, r1 \n\t"             \
11543    "adc r20, r25 \n\t"            \
11544    "mul r5, r16 \n\t"             \
11545    "add r21, r0 \n\t"             \
11546    "adc r19, r1 \n\t"             \
11547    "adc r20, r25 \n\t"            \
11548    "st z+, r21 \n\t"              \
11549                                   \
11550    "ldi r21, 0 \n\t"              \
11551    "mul r13, r9 \n\t"             \
11552    "add r19, r0 \n\t"             \
11553    "adc r20, r1 \n\t"             \
11554    "adc r21, r25 \n\t"            \
11555    "mul r2, r8 \n\t"              \
11556    "add r19, r0 \n\t"             \
11557    "adc r20, r1 \n\t"             \
11558    "adc r21, r25 \n\t"            \
11559    "mul r3, r7 \n\t"              \
11560    "add r19, r0 \n\t"             \
11561    "adc r20, r1 \n\t"             \
11562    "adc r21, r25 \n\t"            \
11563    "mul r4, r6 \n\t"              \
11564    "add r19, r0 \n\t"             \
11565    "adc r20, r1 \n\t"             \
11566    "adc r21, r25 \n\t"            \
11567    "mul r5, r17 \n\t"             \
11568    "add r19, r0 \n\t"             \
11569    "adc r20, r1 \n\t"             \
11570    "adc r21, r25 \n\t"            \
11571    "st z+, r19 \n\t"              \
11572                                   \
11573    "ldi r19, 0 \n\t"              \
11574    "mul r2, r9 \n\t"              \
11575    "add r20, r0 \n\t"             \
11576    "adc r21, r1 \n\t"             \
11577    "adc r19, r25 \n\t"            \
11578    "mul r3, r8 \n\t"              \
11579    "add r20, r0 \n\t"             \
11580    "adc r21, r1 \n\t"             \
11581    "adc r19, r25 \n\t"            \
11582    "mul r4, r7 \n\t"              \
11583    "add r20, r0 \n\t"             \
11584    "adc r21, r1 \n\t"             \
11585    "adc r19, r25 \n\t"            \
11586    "mul r5, r6 \n\t"              \
11587    "add r20, r0 \n\t"             \
11588    "adc r21, r1 \n\t"             \
11589    "adc r19, r25 \n\t"            \
11590    "st z+, r20 \n\t"              \
11591                                   \
11592    "ldi r20, 0 \n\t"              \
11593    "mul r3, r9 \n\t"              \
11594    "add r21, r0 \n\t"             \
11595    "adc r19, r1 \n\t"             \
11596    "adc r20, r25 \n\t"            \
11597    "mul r4, r8 \n\t"              \
11598    "add r21, r0 \n\t"             \
11599    "adc r19, r1 \n\t"             \
11600    "adc r20, r25 \n\t"            \
11601    "mul r5, r7 \n\t"              \
11602    "add r21, r0 \n\t"             \
11603    "adc r19, r1 \n\t"             \
11604    "adc r20, r25 \n\t"            \
11605    "st z+, r21 \n\t"              \
11606                                   \
11607    "ldi r21, 0 \n\t"              \
11608    "mul r4, r9 \n\t"              \
11609    "add r19, r0 \n\t"             \
11610    "adc r20, r1 \n\t"             \
11611    "adc r21, r25 \n\t"            \
11612    "mul r5, r8 \n\t"              \
11613    "add r19, r0 \n\t"             \
11614    "adc r20, r1 \n\t"             \
11615    "adc r21, r25 \n\t"            \
11616    "st z+, r19 \n\t"              \
11617                                   \
11618    "mul r5, r9 \n\t"              \
11619    "add r20, r0 \n\t"             \
11620    "adc r21, r1 \n\t"             \
11621    "st z+, r20 \n\t"              \
11622    "st z+, r21 \n\t"
11623    /* Not necessary to move ptrs since we don't support sizes > 32 */
11624
11625#define FAST_MULT_ASM_32       \
11626    "adiw r30, 30 \n\t"        \
11627    "adiw r28, 30 \n\t"        \
11628    "ld r2, x+ \n\t"           \
11629    "ld r3, x+ \n\t"           \
11630    "ld r12, y+ \n\t"          \
11631    "ld r13, y+ \n\t"          \
11632    "ldi r25, 0 \n\t"          \
11633                               \
11634    "ldi r23, 0 \n\t"          \
11635    "mul r2, r12 \n\t"         \
11636    "st z+, r0 \n\t"           \
11637    "mov r22, r1 \n\t"         \
11638                               \
11639    "ldi r24, 0 \n\t"          \
11640    "mul r2, r13 \n\t"         \
11641    "add r22, r0 \n\t"         \
11642    "adc r23, r1 \n\t"         \
11643    "mul r3, r12 \n\t"         \
11644    "add r22, r0 \n\t"         \
11645    "adc r23, r1 \n\t"         \
11646    "adc r24, r25 \n\t"        \
11647    "st z+, r22 \n\t"          \
11648                               \
11649    "mul r3, r13 \n\t"         \
11650    "add r23, r0 \n\t"         \
11651    "adc r24, r1 \n\t"         \
11652    "st z+, r23 \n\t"          \
11653    "st z+, r24 \n\t"          \
11654                               \
11655    "sbiw r30, 14 \n\t"        \
11656    "sbiw r28, 12 \n\t"        \
11657    "ld r12, y+ \n\t"          \
11658    "ld r13, y+ \n\t"          \
11659    "ld r14, y+ \n\t"          \
11660    "ld r15, y+ \n\t"          \
11661    "ld r16, y+ \n\t"          \
11662    "ld r17, y+ \n\t"          \
11663    "ld r18, y+ \n\t"          \
11664    "ld r19, y+ \n\t"          \
11665    "ld r20, y+ \n\t"          \
11666    "ld r21, y+ \n\t"          \
11667    "ld r4, x+ \n\t"           \
11668    "ld r5, x+ \n\t"           \
11669    "ld r6, x+ \n\t"           \
11670    "ld r7, x+ \n\t"           \
11671    "ld r8, x+ \n\t"           \
11672    "ld r9, x+ \n\t"           \
11673    "ld r10, x+ \n\t"          \
11674    "ld r11, x+ \n\t"          \
11675                               \
11676    "ldi r23, 0 \n\t"          \
11677    "mul r2, r12 \n\t"         \
11678    "st z+, r0 \n\t"           \
11679    "mov r22, r1 \n\t"         \
11680                               \
11681    "ldi r24, 0 \n\t"          \
11682    "mul r2, r13 \n\t"         \
11683    "add r22, r0 \n\t"         \
11684    "adc r23, r1 \n\t"         \
11685    "mul r3, r12 \n\t"         \
11686    "add r22, r0 \n\t"         \
11687    "adc r23, r1 \n\t"         \
11688    "adc r24, r25 \n\t"        \
11689    "st z+, r22 \n\t"          \
11690                               \
11691    "ldi r22, 0 \n\t"          \
11692    "mul r2, r14 \n\t"         \
11693    "add r23, r0 \n\t"         \
11694    "adc r24, r1 \n\t"         \
11695    "adc r22, r25 \n\t"        \
11696    "mul r3, r13 \n\t"         \
11697    "add r23, r0 \n\t"         \
11698    "adc r24, r1 \n\t"         \
11699    "adc r22, r25 \n\t"        \
11700    "mul r4, r12 \n\t"         \
11701    "add r23, r0 \n\t"         \
11702    "adc r24, r1 \n\t"         \
11703    "adc r22, r25 \n\t"        \
11704    "st z+, r23 \n\t"          \
11705                               \
11706    "ldi r23, 0 \n\t"          \
11707    "mul r2, r15 \n\t"         \
11708    "add r24, r0 \n\t"         \
11709    "adc r22, r1 \n\t"         \
11710    "adc r23, r25 \n\t"        \
11711    "mul r3, r14 \n\t"         \
11712    "add r24, r0 \n\t"         \
11713    "adc r22, r1 \n\t"         \
11714    "adc r23, r25 \n\t"        \
11715    "mul r4, r13 \n\t"         \
11716    "add r24, r0 \n\t"         \
11717    "adc r22, r1 \n\t"         \
11718    "adc r23, r25 \n\t"        \
11719    "mul r5, r12 \n\t"         \
11720    "add r24, r0 \n\t"         \
11721    "adc r22, r1 \n\t"         \
11722    "adc r23, r25 \n\t"        \
11723    "st z+, r24 \n\t"          \
11724                               \
11725    "ldi r24, 0 \n\t"          \
11726    "mul r2, r16 \n\t"         \
11727    "add r22, r0 \n\t"         \
11728    "adc r23, r1 \n\t"         \
11729    "adc r24, r25 \n\t"        \
11730    "mul r3, r15 \n\t"         \
11731    "add r22, r0 \n\t"         \
11732    "adc r23, r1 \n\t"         \
11733    "adc r24, r25 \n\t"        \
11734    "mul r4, r14 \n\t"         \
11735    "add r22, r0 \n\t"         \
11736    "adc r23, r1 \n\t"         \
11737    "adc r24, r25 \n\t"        \
11738    "mul r5, r13 \n\t"         \
11739    "add r22, r0 \n\t"         \
11740    "adc r23, r1 \n\t"         \
11741    "adc r24, r25 \n\t"        \
11742    "mul r6, r12 \n\t"         \
11743    "add r22, r0 \n\t"         \
11744    "adc r23, r1 \n\t"         \
11745    "adc r24, r25 \n\t"        \
11746    "st z+, r22 \n\t"          \
11747                               \
11748    "ldi r22, 0 \n\t"          \
11749    "mul r2, r17 \n\t"         \
11750    "add r23, r0 \n\t"         \
11751    "adc r24, r1 \n\t"         \
11752    "adc r22, r25 \n\t"        \
11753    "mul r3, r16 \n\t"         \
11754    "add r23, r0 \n\t"         \
11755    "adc r24, r1 \n\t"         \
11756    "adc r22, r25 \n\t"        \
11757    "mul r4, r15 \n\t"         \
11758    "add r23, r0 \n\t"         \
11759    "adc r24, r1 \n\t"         \
11760    "adc r22, r25 \n\t"        \
11761    "mul r5, r14 \n\t"         \
11762    "add r23, r0 \n\t"         \
11763    "adc r24, r1 \n\t"         \
11764    "adc r22, r25 \n\t"        \
11765    "mul r6, r13 \n\t"         \
11766    "add r23, r0 \n\t"         \
11767    "adc r24, r1 \n\t"         \
11768    "adc r22, r25 \n\t"        \
11769    "mul r7, r12 \n\t"         \
11770    "add r23, r0 \n\t"         \
11771    "adc r24, r1 \n\t"         \
11772    "adc r22, r25 \n\t"        \
11773    "st z+, r23 \n\t"          \
11774                               \
11775    "ldi r23, 0 \n\t"          \
11776    "mul r2, r18 \n\t"         \
11777    "add r24, r0 \n\t"         \
11778    "adc r22, r1 \n\t"         \
11779    "adc r23, r25 \n\t"        \
11780    "mul r3, r17 \n\t"         \
11781    "add r24, r0 \n\t"         \
11782    "adc r22, r1 \n\t"         \
11783    "adc r23, r25 \n\t"        \
11784    "mul r4, r16 \n\t"         \
11785    "add r24, r0 \n\t"         \
11786    "adc r22, r1 \n\t"         \
11787    "adc r23, r25 \n\t"        \
11788    "mul r5, r15 \n\t"         \
11789    "add r24, r0 \n\t"         \
11790    "adc r22, r1 \n\t"         \
11791    "adc r23, r25 \n\t"        \
11792    "mul r6, r14 \n\t"         \
11793    "add r24, r0 \n\t"         \
11794    "adc r22, r1 \n\t"         \
11795    "adc r23, r25 \n\t"        \
11796    "mul r7, r13 \n\t"         \
11797    "add r24, r0 \n\t"         \
11798    "adc r22, r1 \n\t"         \
11799    "adc r23, r25 \n\t"        \
11800    "mul r8, r12 \n\t"         \
11801    "add r24, r0 \n\t"         \
11802    "adc r22, r1 \n\t"         \
11803    "adc r23, r25 \n\t"        \
11804    "st z+, r24 \n\t"          \
11805                               \
11806    "ldi r24, 0 \n\t"          \
11807    "mul r2, r19 \n\t"         \
11808    "add r22, r0 \n\t"         \
11809    "adc r23, r1 \n\t"         \
11810    "adc r24, r25 \n\t"        \
11811    "mul r3, r18 \n\t"         \
11812    "add r22, r0 \n\t"         \
11813    "adc r23, r1 \n\t"         \
11814    "adc r24, r25 \n\t"        \
11815    "mul r4, r17 \n\t"         \
11816    "add r22, r0 \n\t"         \
11817    "adc r23, r1 \n\t"         \
11818    "adc r24, r25 \n\t"        \
11819    "mul r5, r16 \n\t"         \
11820    "add r22, r0 \n\t"         \
11821    "adc r23, r1 \n\t"         \
11822    "adc r24, r25 \n\t"        \
11823    "mul r6, r15 \n\t"         \
11824    "add r22, r0 \n\t"         \
11825    "adc r23, r1 \n\t"         \
11826    "adc r24, r25 \n\t"        \
11827    "mul r7, r14 \n\t"         \
11828    "add r22, r0 \n\t"         \
11829    "adc r23, r1 \n\t"         \
11830    "adc r24, r25 \n\t"        \
11831    "mul r8, r13 \n\t"         \
11832    "add r22, r0 \n\t"         \
11833    "adc r23, r1 \n\t"         \
11834    "adc r24, r25 \n\t"        \
11835    "mul r9, r12 \n\t"         \
11836    "add r22, r0 \n\t"         \
11837    "adc r23, r1 \n\t"         \
11838    "adc r24, r25 \n\t"        \
11839    "st z+, r22 \n\t"          \
11840                               \
11841    "ldi r22, 0 \n\t"          \
11842    "mul r2, r20 \n\t"         \
11843    "add r23, r0 \n\t"         \
11844    "adc r24, r1 \n\t"         \
11845    "adc r22, r25 \n\t"        \
11846    "mul r3, r19 \n\t"         \
11847    "add r23, r0 \n\t"         \
11848    "adc r24, r1 \n\t"         \
11849    "adc r22, r25 \n\t"        \
11850    "mul r4, r18 \n\t"         \
11851    "add r23, r0 \n\t"         \
11852    "adc r24, r1 \n\t"         \
11853    "adc r22, r25 \n\t"        \
11854    "mul r5, r17 \n\t"         \
11855    "add r23, r0 \n\t"         \
11856    "adc r24, r1 \n\t"         \
11857    "adc r22, r25 \n\t"        \
11858    "mul r6, r16 \n\t"         \
11859    "add r23, r0 \n\t"         \
11860    "adc r24, r1 \n\t"         \
11861    "adc r22, r25 \n\t"        \
11862    "mul r7, r15 \n\t"         \
11863    "add r23, r0 \n\t"         \
11864    "adc r24, r1 \n\t"         \
11865    "adc r22, r25 \n\t"        \
11866    "mul r8, r14 \n\t"         \
11867    "add r23, r0 \n\t"         \
11868    "adc r24, r1 \n\t"         \
11869    "adc r22, r25 \n\t"        \
11870    "mul r9, r13 \n\t"         \
11871    "add r23, r0 \n\t"         \
11872    "adc r24, r1 \n\t"         \
11873    "adc r22, r25 \n\t"        \
11874    "mul r10, r12 \n\t"        \
11875    "add r23, r0 \n\t"         \
11876    "adc r24, r1 \n\t"         \
11877    "adc r22, r25 \n\t"        \
11878    "st z+, r23 \n\t"          \
11879                               \
11880    "ldi r23, 0 \n\t"          \
11881    "mul r2, r21 \n\t"         \
11882    "add r24, r0 \n\t"         \
11883    "adc r22, r1 \n\t"         \
11884    "adc r23, r25 \n\t"        \
11885    "mul r3, r20 \n\t"         \
11886    "add r24, r0 \n\t"         \
11887    "adc r22, r1 \n\t"         \
11888    "adc r23, r25 \n\t"        \
11889    "mul r4, r19 \n\t"         \
11890    "add r24, r0 \n\t"         \
11891    "adc r22, r1 \n\t"         \
11892    "adc r23, r25 \n\t"        \
11893    "mul r5, r18 \n\t"         \
11894    "add r24, r0 \n\t"         \
11895    "adc r22, r1 \n\t"         \
11896    "adc r23, r25 \n\t"        \
11897    "mul r6, r17 \n\t"         \
11898    "add r24, r0 \n\t"         \
11899    "adc r22, r1 \n\t"         \
11900    "adc r23, r25 \n\t"        \
11901    "mul r7, r16 \n\t"         \
11902    "add r24, r0 \n\t"         \
11903    "adc r22, r1 \n\t"         \
11904    "adc r23, r25 \n\t"        \
11905    "mul r8, r15 \n\t"         \
11906    "add r24, r0 \n\t"         \
11907    "adc r22, r1 \n\t"         \
11908    "adc r23, r25 \n\t"        \
11909    "mul r9, r14 \n\t"         \
11910    "add r24, r0 \n\t"         \
11911    "adc r22, r1 \n\t"         \
11912    "adc r23, r25 \n\t"        \
11913    "mul r10, r13 \n\t"        \
11914    "add r24, r0 \n\t"         \
11915    "adc r22, r1 \n\t"         \
11916    "adc r23, r25 \n\t"        \
11917    "mul r11, r12 \n\t"        \
11918    "add r24, r0 \n\t"         \
11919    "adc r22, r1 \n\t"         \
11920    "adc r23, r25 \n\t"        \
11921    "st z+, r24 \n\t"          \
11922                               \
11923    "ld r2, x+ \n\t"           \
11924    "ldi r24, 0 \n\t"          \
11925    "mul r3, r21 \n\t"         \
11926    "add r22, r0 \n\t"         \
11927    "adc r23, r1 \n\t"         \
11928    "adc r24, r25 \n\t"        \
11929    "mul r4, r20 \n\t"         \
11930    "add r22, r0 \n\t"         \
11931    "adc r23, r1 \n\t"         \
11932    "adc r24, r25 \n\t"        \
11933    "mul r5, r19 \n\t"         \
11934    "add r22, r0 \n\t"         \
11935    "adc r23, r1 \n\t"         \
11936    "adc r24, r25 \n\t"        \
11937    "mul r6, r18 \n\t"         \
11938    "add r22, r0 \n\t"         \
11939    "adc r23, r1 \n\t"         \
11940    "adc r24, r25 \n\t"        \
11941    "mul r7, r17 \n\t"         \
11942    "add r22, r0 \n\t"         \
11943    "adc r23, r1 \n\t"         \
11944    "adc r24, r25 \n\t"        \
11945    "mul r8, r16 \n\t"         \
11946    "add r22, r0 \n\t"         \
11947    "adc r23, r1 \n\t"         \
11948    "adc r24, r25 \n\t"        \
11949    "mul r9, r15 \n\t"         \
11950    "add r22, r0 \n\t"         \
11951    "adc r23, r1 \n\t"         \
11952    "adc r24, r25 \n\t"        \
11953    "mul r10, r14 \n\t"        \
11954    "add r22, r0 \n\t"         \
11955    "adc r23, r1 \n\t"         \
11956    "adc r24, r25 \n\t"        \
11957    "mul r11, r13 \n\t"        \
11958    "add r22, r0 \n\t"         \
11959    "adc r23, r1 \n\t"         \
11960    "adc r24, r25 \n\t"        \
11961    "mul r2, r12 \n\t"         \
11962    "add r22, r0 \n\t"         \
11963    "adc r23, r1 \n\t"         \
11964    "adc r24, r25 \n\t"        \
11965    "ld r0, z \n\t"            \
11966    "add r22, r0 \n\t"         \
11967    "adc r23, r25 \n\t"        \
11968    "adc r24, r25 \n\t"        \
11969    "st z+, r22 \n\t"          \
11970                               \
11971    "ld r3, x+ \n\t"           \
11972    "ldi r22, 0 \n\t"          \
11973    "mul r4, r21 \n\t"         \
11974    "add r23, r0 \n\t"         \
11975    "adc r24, r1 \n\t"         \
11976    "adc r22, r25 \n\t"        \
11977    "mul r5, r20 \n\t"         \
11978    "add r23, r0 \n\t"         \
11979    "adc r24, r1 \n\t"         \
11980    "adc r22, r25 \n\t"        \
11981    "mul r6, r19 \n\t"         \
11982    "add r23, r0 \n\t"         \
11983    "adc r24, r1 \n\t"         \
11984    "adc r22, r25 \n\t"        \
11985    "mul r7, r18 \n\t"         \
11986    "add r23, r0 \n\t"         \
11987    "adc r24, r1 \n\t"         \
11988    "adc r22, r25 \n\t"        \
11989    "mul r8, r17 \n\t"         \
11990    "add r23, r0 \n\t"         \
11991    "adc r24, r1 \n\t"         \
11992    "adc r22, r25 \n\t"        \
11993    "mul r9, r16 \n\t"         \
11994    "add r23, r0 \n\t"         \
11995    "adc r24, r1 \n\t"         \
11996    "adc r22, r25 \n\t"        \
11997    "mul r10, r15 \n\t"        \
11998    "add r23, r0 \n\t"         \
11999    "adc r24, r1 \n\t"         \
12000    "adc r22, r25 \n\t"        \
12001    "mul r11, r14 \n\t"        \
12002    "add r23, r0 \n\t"         \
12003    "adc r24, r1 \n\t"         \
12004    "adc r22, r25 \n\t"        \
12005    "mul r2, r13 \n\t"         \
12006    "add r23, r0 \n\t"         \
12007    "adc r24, r1 \n\t"         \
12008    "adc r22, r25 \n\t"        \
12009    "mul r3, r12 \n\t"         \
12010    "add r23, r0 \n\t"         \
12011    "adc r24, r1 \n\t"         \
12012    "adc r22, r25 \n\t"        \
12013    "ld r0, z \n\t"            \
12014    "add r23, r0 \n\t"         \
12015    "adc r24, r25 \n\t"        \
12016    "adc r22, r25 \n\t"        \
12017    "st z+, r23 \n\t"          \
12018                               \
12019    "ld r12, y+ \n\t"          \
12020    "ldi r23, 0 \n\t"          \
12021    "mul r4, r12 \n\t"         \
12022    "add r24, r0 \n\t"         \
12023    "adc r22, r1 \n\t"         \
12024    "adc r23, r25 \n\t"        \
12025    "mul r5, r21 \n\t"         \
12026    "add r24, r0 \n\t"         \
12027    "adc r22, r1 \n\t"         \
12028    "adc r23, r25 \n\t"        \
12029    "mul r6, r20 \n\t"         \
12030    "add r24, r0 \n\t"         \
12031    "adc r22, r1 \n\t"         \
12032    "adc r23, r25 \n\t"        \
12033    "mul r7, r19 \n\t"         \
12034    "add r24, r0 \n\t"         \
12035    "adc r22, r1 \n\t"         \
12036    "adc r23, r25 \n\t"        \
12037    "mul r8, r18 \n\t"         \
12038    "add r24, r0 \n\t"         \
12039    "adc r22, r1 \n\t"         \
12040    "adc r23, r25 \n\t"        \
12041    "mul r9, r17 \n\t"         \
12042    "add r24, r0 \n\t"         \
12043    "adc r22, r1 \n\t"         \
12044    "adc r23, r25 \n\t"        \
12045    "mul r10, r16 \n\t"        \
12046    "add r24, r0 \n\t"         \
12047    "adc r22, r1 \n\t"         \
12048    "adc r23, r25 \n\t"        \
12049    "mul r11, r15 \n\t"        \
12050    "add r24, r0 \n\t"         \
12051    "adc r22, r1 \n\t"         \
12052    "adc r23, r25 \n\t"        \
12053    "mul r2, r14 \n\t"         \
12054    "add r24, r0 \n\t"         \
12055    "adc r22, r1 \n\t"         \
12056    "adc r23, r25 \n\t"        \
12057    "mul r3, r13 \n\t"         \
12058    "add r24, r0 \n\t"         \
12059    "adc r22, r1 \n\t"         \
12060    "adc r23, r25 \n\t"        \
12061    "ld r0, z \n\t"            \
12062    "add r24, r0 \n\t"         \
12063    "adc r22, r25 \n\t"        \
12064    "adc r23, r25 \n\t"        \
12065    "st z+, r24 \n\t"          \
12066                               \
12067    "ld r13, y+ \n\t"          \
12068    "ldi r24, 0 \n\t"          \
12069    "mul r4, r13 \n\t"         \
12070    "add r22, r0 \n\t"         \
12071    "adc r23, r1 \n\t"         \
12072    "adc r24, r25 \n\t"        \
12073    "mul r5, r12 \n\t"         \
12074    "add r22, r0 \n\t"         \
12075    "adc r23, r1 \n\t"         \
12076    "adc r24, r25 \n\t"        \
12077    "mul r6, r21 \n\t"         \
12078    "add r22, r0 \n\t"         \
12079    "adc r23, r1 \n\t"         \
12080    "adc r24, r25 \n\t"        \
12081    "mul r7, r20 \n\t"         \
12082    "add r22, r0 \n\t"         \
12083    "adc r23, r1 \n\t"         \
12084    "adc r24, r25 \n\t"        \
12085    "mul r8, r19 \n\t"         \
12086    "add r22, r0 \n\t"         \
12087    "adc r23, r1 \n\t"         \
12088    "adc r24, r25 \n\t"        \
12089    "mul r9, r18 \n\t"         \
12090    "add r22, r0 \n\t"         \
12091    "adc r23, r1 \n\t"         \
12092    "adc r24, r25 \n\t"        \
12093    "mul r10, r17 \n\t"        \
12094    "add r22, r0 \n\t"         \
12095    "adc r23, r1 \n\t"         \
12096    "adc r24, r25 \n\t"        \
12097    "mul r11, r16 \n\t"        \
12098    "add r22, r0 \n\t"         \
12099    "adc r23, r1 \n\t"         \
12100    "adc r24, r25 \n\t"        \
12101    "mul r2, r15 \n\t"         \
12102    "add r22, r0 \n\t"         \
12103    "adc r23, r1 \n\t"         \
12104    "adc r24, r25 \n\t"        \
12105    "mul r3, r14 \n\t"         \
12106    "add r22, r0 \n\t"         \
12107    "adc r23, r1 \n\t"         \
12108    "adc r24, r25 \n\t"        \
12109    "ld r0, z \n\t"            \
12110    "add r22, r0 \n\t"         \
12111    "adc r23, r25 \n\t"        \
12112    "adc r24, r25 \n\t"        \
12113    "st z+, r22 \n\t"          \
12114                               \
12115    "ldi r22, 0 \n\t"          \
12116    "mul r5, r13 \n\t"         \
12117    "add r23, r0 \n\t"         \
12118    "adc r24, r1 \n\t"         \
12119    "adc r22, r25 \n\t"        \
12120    "mul r6, r12 \n\t"         \
12121    "add r23, r0 \n\t"         \
12122    "adc r24, r1 \n\t"         \
12123    "adc r22, r25 \n\t"        \
12124    "mul r7, r21 \n\t"         \
12125    "add r23, r0 \n\t"         \
12126    "adc r24, r1 \n\t"         \
12127    "adc r22, r25 \n\t"        \
12128    "mul r8, r20 \n\t"         \
12129    "add r23, r0 \n\t"         \
12130    "adc r24, r1 \n\t"         \
12131    "adc r22, r25 \n\t"        \
12132    "mul r9, r19 \n\t"         \
12133    "add r23, r0 \n\t"         \
12134    "adc r24, r1 \n\t"         \
12135    "adc r22, r25 \n\t"        \
12136    "mul r10, r18 \n\t"        \
12137    "add r23, r0 \n\t"         \
12138    "adc r24, r1 \n\t"         \
12139    "adc r22, r25 \n\t"        \
12140    "mul r11, r17 \n\t"        \
12141    "add r23, r0 \n\t"         \
12142    "adc r24, r1 \n\t"         \
12143    "adc r22, r25 \n\t"        \
12144    "mul r2, r16 \n\t"         \
12145    "add r23, r0 \n\t"         \
12146    "adc r24, r1 \n\t"         \
12147    "adc r22, r25 \n\t"        \
12148    "mul r3, r15 \n\t"         \
12149    "add r23, r0 \n\t"         \
12150    "adc r24, r1 \n\t"         \
12151    "adc r22, r25 \n\t"        \
12152    "st z+, r23 \n\t"          \
12153                               \
12154    "ldi r23, 0 \n\t"          \
12155    "mul r6, r13 \n\t"         \
12156    "add r24, r0 \n\t"         \
12157    "adc r22, r1 \n\t"         \
12158    "adc r23, r25 \n\t"        \
12159    "mul r7, r12 \n\t"         \
12160    "add r24, r0 \n\t"         \
12161    "adc r22, r1 \n\t"         \
12162    "adc r23, r25 \n\t"        \
12163    "mul r8, r21 \n\t"         \
12164    "add r24, r0 \n\t"         \
12165    "adc r22, r1 \n\t"         \
12166    "adc r23, r25 \n\t"        \
12167    "mul r9, r20 \n\t"         \
12168    "add r24, r0 \n\t"         \
12169    "adc r22, r1 \n\t"         \
12170    "adc r23, r25 \n\t"        \
12171    "mul r10, r19 \n\t"        \
12172    "add r24, r0 \n\t"         \
12173    "adc r22, r1 \n\t"         \
12174    "adc r23, r25 \n\t"        \
12175    "mul r11, r18 \n\t"        \
12176    "add r24, r0 \n\t"         \
12177    "adc r22, r1 \n\t"         \
12178    "adc r23, r25 \n\t"        \
12179    "mul r2, r17 \n\t"         \
12180    "add r24, r0 \n\t"         \
12181    "adc r22, r1 \n\t"         \
12182    "adc r23, r25 \n\t"        \
12183    "mul r3, r16 \n\t"         \
12184    "add r24, r0 \n\t"         \
12185    "adc r22, r1 \n\t"         \
12186    "adc r23, r25 \n\t"        \
12187    "st z+, r24 \n\t"          \
12188                               \
12189    "ldi r24, 0 \n\t"          \
12190    "mul r7, r13 \n\t"         \
12191    "add r22, r0 \n\t"         \
12192    "adc r23, r1 \n\t"         \
12193    "adc r24, r25 \n\t"        \
12194    "mul r8, r12 \n\t"         \
12195    "add r22, r0 \n\t"         \
12196    "adc r23, r1 \n\t"         \
12197    "adc r24, r25 \n\t"        \
12198    "mul r9, r21 \n\t"         \
12199    "add r22, r0 \n\t"         \
12200    "adc r23, r1 \n\t"         \
12201    "adc r24, r25 \n\t"        \
12202    "mul r10, r20 \n\t"        \
12203    "add r22, r0 \n\t"         \
12204    "adc r23, r1 \n\t"         \
12205    "adc r24, r25 \n\t"        \
12206    "mul r11, r19 \n\t"        \
12207    "add r22, r0 \n\t"         \
12208    "adc r23, r1 \n\t"         \
12209    "adc r24, r25 \n\t"        \
12210    "mul r2, r18 \n\t"         \
12211    "add r22, r0 \n\t"         \
12212    "adc r23, r1 \n\t"         \
12213    "adc r24, r25 \n\t"        \
12214    "mul r3, r17 \n\t"         \
12215    "add r22, r0 \n\t"         \
12216    "adc r23, r1 \n\t"         \
12217    "adc r24, r25 \n\t"        \
12218    "st z+, r22 \n\t"          \
12219                               \
12220    "ldi r22, 0 \n\t"          \
12221    "mul r8, r13 \n\t"         \
12222    "add r23, r0 \n\t"         \
12223    "adc r24, r1 \n\t"         \
12224    "adc r22, r25 \n\t"        \
12225    "mul r9, r12 \n\t"         \
12226    "add r23, r0 \n\t"         \
12227    "adc r24, r1 \n\t"         \
12228    "adc r22, r25 \n\t"        \
12229    "mul r10, r21 \n\t"        \
12230    "add r23, r0 \n\t"         \
12231    "adc r24, r1 \n\t"         \
12232    "adc r22, r25 \n\t"        \
12233    "mul r11, r20 \n\t"        \
12234    "add r23, r0 \n\t"         \
12235    "adc r24, r1 \n\t"         \
12236    "adc r22, r25 \n\t"        \
12237    "mul r2, r19 \n\t"         \
12238    "add r23, r0 \n\t"         \
12239    "adc r24, r1 \n\t"         \
12240    "adc r22, r25 \n\t"        \
12241    "mul r3, r18 \n\t"         \
12242    "add r23, r0 \n\t"         \
12243    "adc r24, r1 \n\t"         \
12244    "adc r22, r25 \n\t"        \
12245    "st z+, r23 \n\t"          \
12246                               \
12247    "ldi r23, 0 \n\t"          \
12248    "mul r9, r13 \n\t"         \
12249    "add r24, r0 \n\t"         \
12250    "adc r22, r1 \n\t"         \
12251    "adc r23, r25 \n\t"        \
12252    "mul r10, r12 \n\t"        \
12253    "add r24, r0 \n\t"         \
12254    "adc r22, r1 \n\t"         \
12255    "adc r23, r25 \n\t"        \
12256    "mul r11, r21 \n\t"        \
12257    "add r24, r0 \n\t"         \
12258    "adc r22, r1 \n\t"         \
12259    "adc r23, r25 \n\t"        \
12260    "mul r2, r20 \n\t"         \
12261    "add r24, r0 \n\t"         \
12262    "adc r22, r1 \n\t"         \
12263    "adc r23, r25 \n\t"        \
12264    "mul r3, r19 \n\t"         \
12265    "add r24, r0 \n\t"         \
12266    "adc r22, r1 \n\t"         \
12267    "adc r23, r25 \n\t"        \
12268    "st z+, r24 \n\t"          \
12269                               \
12270    "ldi r24, 0 \n\t"          \
12271    "mul r10, r13 \n\t"        \
12272    "add r22, r0 \n\t"         \
12273    "adc r23, r1 \n\t"         \
12274    "adc r24, r25 \n\t"        \
12275    "mul r11, r12 \n\t"        \
12276    "add r22, r0 \n\t"         \
12277    "adc r23, r1 \n\t"         \
12278    "adc r24, r25 \n\t"        \
12279    "mul r2, r21 \n\t"         \
12280    "add r22, r0 \n\t"         \
12281    "adc r23, r1 \n\t"         \
12282    "adc r24, r25 \n\t"        \
12283    "mul r3, r20 \n\t"         \
12284    "add r22, r0 \n\t"         \
12285    "adc r23, r1 \n\t"         \
12286    "adc r24, r25 \n\t"        \
12287    "st z+, r22 \n\t"          \
12288                               \
12289    "ldi r22, 0 \n\t"          \
12290    "mul r11, r13 \n\t"        \
12291    "add r23, r0 \n\t"         \
12292    "adc r24, r1 \n\t"         \
12293    "adc r22, r25 \n\t"        \
12294    "mul r2, r12 \n\t"         \
12295    "add r23, r0 \n\t"         \
12296    "adc r24, r1 \n\t"         \
12297    "adc r22, r25 \n\t"        \
12298    "mul r3, r21 \n\t"         \
12299    "add r23, r0 \n\t"         \
12300    "adc r24, r1 \n\t"         \
12301    "adc r22, r25 \n\t"        \
12302    "st z+, r23 \n\t"          \
12303                               \
12304    "ldi r23, 0 \n\t"          \
12305    "mul r2, r13 \n\t"         \
12306    "add r24, r0 \n\t"         \
12307    "adc r22, r1 \n\t"         \
12308    "adc r23, r25 \n\t"        \
12309    "mul r3, r12 \n\t"         \
12310    "add r24, r0 \n\t"         \
12311    "adc r22, r1 \n\t"         \
12312    "adc r23, r25 \n\t"        \
12313    "st z+, r24 \n\t"          \
12314                               \
12315    "mul r3, r13 \n\t"         \
12316    "add r22, r0 \n\t"         \
12317    "adc r23, r1 \n\t"         \
12318    "st z+, r22 \n\t"          \
12319    "st z+, r23 \n\t"          \
12320                               \
12321    "sbiw r30, 34 \n\t"        \
12322    "sbiw r28, 22 \n\t"        \
12323    "sbiw r26, 12 \n\t"        \
12324    "ld r2, x+ \n\t"           \
12325    "ld r12, y+ \n\t"          \
12326    "ld r3, x+ \n\t"           \
12327    "ld r13, y+ \n\t"          \
12328    "ld r4, x+ \n\t"           \
12329    "ld r14, y+ \n\t"          \
12330    "ld r5, x+ \n\t"           \
12331    "ld r15, y+ \n\t"          \
12332    "ld r6, x+ \n\t"           \
12333    "ld r16, y+ \n\t"          \
12334    "ld r7, x+ \n\t"           \
12335    "ld r17, y+ \n\t"          \
12336    "ld r8, x+ \n\t"           \
12337    "ld r18, y+ \n\t"          \
12338    "ld r9, x+ \n\t"           \
12339    "ld r19, y+ \n\t"          \
12340    "ld r10, x+ \n\t"          \
12341    "ld r20, y+ \n\t"          \
12342    "ld r11, x+ \n\t"          \
12343    "ld r21, y+ \n\t"          \
12344                               \
12345    "ldi r23, 0 \n\t"          \
12346    "mul r2, r12 \n\t"         \
12347    "st z+, r0 \n\t"           \
12348    "mov r22, r1 \n\t"         \
12349                               \
12350    "ldi r24, 0 \n\t"          \
12351    "mul r2, r13 \n\t"         \
12352    "add r22, r0 \n\t"         \
12353    "adc r23, r1 \n\t"         \
12354    "mul r3, r12 \n\t"         \
12355    "add r22, r0 \n\t"         \
12356    "adc r23, r1 \n\t"         \
12357    "adc r24, r25 \n\t"        \
12358    "st z+, r22 \n\t"          \
12359                               \
12360    "ldi r22, 0 \n\t"          \
12361    "mul r2, r14 \n\t"         \
12362    "add r23, r0 \n\t"         \
12363    "adc r24, r1 \n\t"         \
12364    "adc r22, r25 \n\t"        \
12365    "mul r3, r13 \n\t"         \
12366    "add r23, r0 \n\t"         \
12367    "adc r24, r1 \n\t"         \
12368    "adc r22, r25 \n\t"        \
12369    "mul r4, r12 \n\t"         \
12370    "add r23, r0 \n\t"         \
12371    "adc r24, r1 \n\t"         \
12372    "adc r22, r25 \n\t"        \
12373    "st z+, r23 \n\t"          \
12374                               \
12375    "ldi r23, 0 \n\t"          \
12376    "mul r2, r15 \n\t"         \
12377    "add r24, r0 \n\t"         \
12378    "adc r22, r1 \n\t"         \
12379    "adc r23, r25 \n\t"        \
12380    "mul r3, r14 \n\t"         \
12381    "add r24, r0 \n\t"         \
12382    "adc r22, r1 \n\t"         \
12383    "adc r23, r25 \n\t"        \
12384    "mul r4, r13 \n\t"         \
12385    "add r24, r0 \n\t"         \
12386    "adc r22, r1 \n\t"         \
12387    "adc r23, r25 \n\t"        \
12388    "mul r5, r12 \n\t"         \
12389    "add r24, r0 \n\t"         \
12390    "adc r22, r1 \n\t"         \
12391    "adc r23, r25 \n\t"        \
12392    "st z+, r24 \n\t"          \
12393                               \
12394    "ldi r24, 0 \n\t"          \
12395    "mul r2, r16 \n\t"         \
12396    "add r22, r0 \n\t"         \
12397    "adc r23, r1 \n\t"         \
12398    "adc r24, r25 \n\t"        \
12399    "mul r3, r15 \n\t"         \
12400    "add r22, r0 \n\t"         \
12401    "adc r23, r1 \n\t"         \
12402    "adc r24, r25 \n\t"        \
12403    "mul r4, r14 \n\t"         \
12404    "add r22, r0 \n\t"         \
12405    "adc r23, r1 \n\t"         \
12406    "adc r24, r25 \n\t"        \
12407    "mul r5, r13 \n\t"         \
12408    "add r22, r0 \n\t"         \
12409    "adc r23, r1 \n\t"         \
12410    "adc r24, r25 \n\t"        \
12411    "mul r6, r12 \n\t"         \
12412    "add r22, r0 \n\t"         \
12413    "adc r23, r1 \n\t"         \
12414    "adc r24, r25 \n\t"        \
12415    "st z+, r22 \n\t"          \
12416                               \
12417    "ldi r22, 0 \n\t"          \
12418    "mul r2, r17 \n\t"         \
12419    "add r23, r0 \n\t"         \
12420    "adc r24, r1 \n\t"         \
12421    "adc r22, r25 \n\t"        \
12422    "mul r3, r16 \n\t"         \
12423    "add r23, r0 \n\t"         \
12424    "adc r24, r1 \n\t"         \
12425    "adc r22, r25 \n\t"        \
12426    "mul r4, r15 \n\t"         \
12427    "add r23, r0 \n\t"         \
12428    "adc r24, r1 \n\t"         \
12429    "adc r22, r25 \n\t"        \
12430    "mul r5, r14 \n\t"         \
12431    "add r23, r0 \n\t"         \
12432    "adc r24, r1 \n\t"         \
12433    "adc r22, r25 \n\t"        \
12434    "mul r6, r13 \n\t"         \
12435    "add r23, r0 \n\t"         \
12436    "adc r24, r1 \n\t"         \
12437    "adc r22, r25 \n\t"        \
12438    "mul r7, r12 \n\t"         \
12439    "add r23, r0 \n\t"         \
12440    "adc r24, r1 \n\t"         \
12441    "adc r22, r25 \n\t"        \
12442    "st z+, r23 \n\t"          \
12443                               \
12444    "ldi r23, 0 \n\t"          \
12445    "mul r2, r18 \n\t"         \
12446    "add r24, r0 \n\t"         \
12447    "adc r22, r1 \n\t"         \
12448    "adc r23, r25 \n\t"        \
12449    "mul r3, r17 \n\t"         \
12450    "add r24, r0 \n\t"         \
12451    "adc r22, r1 \n\t"         \
12452    "adc r23, r25 \n\t"        \
12453    "mul r4, r16 \n\t"         \
12454    "add r24, r0 \n\t"         \
12455    "adc r22, r1 \n\t"         \
12456    "adc r23, r25 \n\t"        \
12457    "mul r5, r15 \n\t"         \
12458    "add r24, r0 \n\t"         \
12459    "adc r22, r1 \n\t"         \
12460    "adc r23, r25 \n\t"        \
12461    "mul r6, r14 \n\t"         \
12462    "add r24, r0 \n\t"         \
12463    "adc r22, r1 \n\t"         \
12464    "adc r23, r25 \n\t"        \
12465    "mul r7, r13 \n\t"         \
12466    "add r24, r0 \n\t"         \
12467    "adc r22, r1 \n\t"         \
12468    "adc r23, r25 \n\t"        \
12469    "mul r8, r12 \n\t"         \
12470    "add r24, r0 \n\t"         \
12471    "adc r22, r1 \n\t"         \
12472    "adc r23, r25 \n\t"        \
12473    "st z+, r24 \n\t"          \
12474                               \
12475    "ldi r24, 0 \n\t"          \
12476    "mul r2, r19 \n\t"         \
12477    "add r22, r0 \n\t"         \
12478    "adc r23, r1 \n\t"         \
12479    "adc r24, r25 \n\t"        \
12480    "mul r3, r18 \n\t"         \
12481    "add r22, r0 \n\t"         \
12482    "adc r23, r1 \n\t"         \
12483    "adc r24, r25 \n\t"        \
12484    "mul r4, r17 \n\t"         \
12485    "add r22, r0 \n\t"         \
12486    "adc r23, r1 \n\t"         \
12487    "adc r24, r25 \n\t"        \
12488    "mul r5, r16 \n\t"         \
12489    "add r22, r0 \n\t"         \
12490    "adc r23, r1 \n\t"         \
12491    "adc r24, r25 \n\t"        \
12492    "mul r6, r15 \n\t"         \
12493    "add r22, r0 \n\t"         \
12494    "adc r23, r1 \n\t"         \
12495    "adc r24, r25 \n\t"        \
12496    "mul r7, r14 \n\t"         \
12497    "add r22, r0 \n\t"         \
12498    "adc r23, r1 \n\t"         \
12499    "adc r24, r25 \n\t"        \
12500    "mul r8, r13 \n\t"         \
12501    "add r22, r0 \n\t"         \
12502    "adc r23, r1 \n\t"         \
12503    "adc r24, r25 \n\t"        \
12504    "mul r9, r12 \n\t"         \
12505    "add r22, r0 \n\t"         \
12506    "adc r23, r1 \n\t"         \
12507    "adc r24, r25 \n\t"        \
12508    "st z+, r22 \n\t"          \
12509                               \
12510    "ldi r22, 0 \n\t"          \
12511    "mul r2, r20 \n\t"         \
12512    "add r23, r0 \n\t"         \
12513    "adc r24, r1 \n\t"         \
12514    "adc r22, r25 \n\t"        \
12515    "mul r3, r19 \n\t"         \
12516    "add r23, r0 \n\t"         \
12517    "adc r24, r1 \n\t"         \
12518    "adc r22, r25 \n\t"        \
12519    "mul r4, r18 \n\t"         \
12520    "add r23, r0 \n\t"         \
12521    "adc r24, r1 \n\t"         \
12522    "adc r22, r25 \n\t"        \
12523    "mul r5, r17 \n\t"         \
12524    "add r23, r0 \n\t"         \
12525    "adc r24, r1 \n\t"         \
12526    "adc r22, r25 \n\t"        \
12527    "mul r6, r16 \n\t"         \
12528    "add r23, r0 \n\t"         \
12529    "adc r24, r1 \n\t"         \
12530    "adc r22, r25 \n\t"        \
12531    "mul r7, r15 \n\t"         \
12532    "add r23, r0 \n\t"         \
12533    "adc r24, r1 \n\t"         \
12534    "adc r22, r25 \n\t"        \
12535    "mul r8, r14 \n\t"         \
12536    "add r23, r0 \n\t"         \
12537    "adc r24, r1 \n\t"         \
12538    "adc r22, r25 \n\t"        \
12539    "mul r9, r13 \n\t"         \
12540    "add r23, r0 \n\t"         \
12541    "adc r24, r1 \n\t"         \
12542    "adc r22, r25 \n\t"        \
12543    "mul r10, r12 \n\t"        \
12544    "add r23, r0 \n\t"         \
12545    "adc r24, r1 \n\t"         \
12546    "adc r22, r25 \n\t"        \
12547    "st z+, r23 \n\t"          \
12548                               \
12549    "ldi r23, 0 \n\t"          \
12550    "mul r2, r21 \n\t"         \
12551    "add r24, r0 \n\t"         \
12552    "adc r22, r1 \n\t"         \
12553    "adc r23, r25 \n\t"        \
12554    "mul r3, r20 \n\t"         \
12555    "add r24, r0 \n\t"         \
12556    "adc r22, r1 \n\t"         \
12557    "adc r23, r25 \n\t"        \
12558    "mul r4, r19 \n\t"         \
12559    "add r24, r0 \n\t"         \
12560    "adc r22, r1 \n\t"         \
12561    "adc r23, r25 \n\t"        \
12562    "mul r5, r18 \n\t"         \
12563    "add r24, r0 \n\t"         \
12564    "adc r22, r1 \n\t"         \
12565    "adc r23, r25 \n\t"        \
12566    "mul r6, r17 \n\t"         \
12567    "add r24, r0 \n\t"         \
12568    "adc r22, r1 \n\t"         \
12569    "adc r23, r25 \n\t"        \
12570    "mul r7, r16 \n\t"         \
12571    "add r24, r0 \n\t"         \
12572    "adc r22, r1 \n\t"         \
12573    "adc r23, r25 \n\t"        \
12574    "mul r8, r15 \n\t"         \
12575    "add r24, r0 \n\t"         \
12576    "adc r22, r1 \n\t"         \
12577    "adc r23, r25 \n\t"        \
12578    "mul r9, r14 \n\t"         \
12579    "add r24, r0 \n\t"         \
12580    "adc r22, r1 \n\t"         \
12581    "adc r23, r25 \n\t"        \
12582    "mul r10, r13 \n\t"        \
12583    "add r24, r0 \n\t"         \
12584    "adc r22, r1 \n\t"         \
12585    "adc r23, r25 \n\t"        \
12586    "mul r11, r12 \n\t"        \
12587    "add r24, r0 \n\t"         \
12588    "adc r22, r1 \n\t"         \
12589    "adc r23, r25 \n\t"        \
12590    "st z+, r24 \n\t"          \
12591                               \
12592    "ld r2, x+ \n\t"           \
12593    "ldi r24, 0 \n\t"          \
12594    "mul r3, r21 \n\t"         \
12595    "add r22, r0 \n\t"         \
12596    "adc r23, r1 \n\t"         \
12597    "adc r24, r25 \n\t"        \
12598    "mul r4, r20 \n\t"         \
12599    "add r22, r0 \n\t"         \
12600    "adc r23, r1 \n\t"         \
12601    "adc r24, r25 \n\t"        \
12602    "mul r5, r19 \n\t"         \
12603    "add r22, r0 \n\t"         \
12604    "adc r23, r1 \n\t"         \
12605    "adc r24, r25 \n\t"        \
12606    "mul r6, r18 \n\t"         \
12607    "add r22, r0 \n\t"         \
12608    "adc r23, r1 \n\t"         \
12609    "adc r24, r25 \n\t"        \
12610    "mul r7, r17 \n\t"         \
12611    "add r22, r0 \n\t"         \
12612    "adc r23, r1 \n\t"         \
12613    "adc r24, r25 \n\t"        \
12614    "mul r8, r16 \n\t"         \
12615    "add r22, r0 \n\t"         \
12616    "adc r23, r1 \n\t"         \
12617    "adc r24, r25 \n\t"        \
12618    "mul r9, r15 \n\t"         \
12619    "add r22, r0 \n\t"         \
12620    "adc r23, r1 \n\t"         \
12621    "adc r24, r25 \n\t"        \
12622    "mul r10, r14 \n\t"        \
12623    "add r22, r0 \n\t"         \
12624    "adc r23, r1 \n\t"         \
12625    "adc r24, r25 \n\t"        \
12626    "mul r11, r13 \n\t"        \
12627    "add r22, r0 \n\t"         \
12628    "adc r23, r1 \n\t"         \
12629    "adc r24, r25 \n\t"        \
12630    "mul r2, r12 \n\t"         \
12631    "add r22, r0 \n\t"         \
12632    "adc r23, r1 \n\t"         \
12633    "adc r24, r25 \n\t"        \
12634    "ld r0, z \n\t"            \
12635    "add r22, r0 \n\t"         \
12636    "adc r23, r25 \n\t"        \
12637    "adc r24, r25 \n\t"        \
12638    "st z+, r22 \n\t"          \
12639                               \
12640    "ld r3, x+ \n\t"           \
12641    "ldi r22, 0 \n\t"          \
12642    "mul r4, r21 \n\t"         \
12643    "add r23, r0 \n\t"         \
12644    "adc r24, r1 \n\t"         \
12645    "adc r22, r25 \n\t"        \
12646    "mul r5, r20 \n\t"         \
12647    "add r23, r0 \n\t"         \
12648    "adc r24, r1 \n\t"         \
12649    "adc r22, r25 \n\t"        \
12650    "mul r6, r19 \n\t"         \
12651    "add r23, r0 \n\t"         \
12652    "adc r24, r1 \n\t"         \
12653    "adc r22, r25 \n\t"        \
12654    "mul r7, r18 \n\t"         \
12655    "add r23, r0 \n\t"         \
12656    "adc r24, r1 \n\t"         \
12657    "adc r22, r25 \n\t"        \
12658    "mul r8, r17 \n\t"         \
12659    "add r23, r0 \n\t"         \
12660    "adc r24, r1 \n\t"         \
12661    "adc r22, r25 \n\t"        \
12662    "mul r9, r16 \n\t"         \
12663    "add r23, r0 \n\t"         \
12664    "adc r24, r1 \n\t"         \
12665    "adc r22, r25 \n\t"        \
12666    "mul r10, r15 \n\t"        \
12667    "add r23, r0 \n\t"         \
12668    "adc r24, r1 \n\t"         \
12669    "adc r22, r25 \n\t"        \
12670    "mul r11, r14 \n\t"        \
12671    "add r23, r0 \n\t"         \
12672    "adc r24, r1 \n\t"         \
12673    "adc r22, r25 \n\t"        \
12674    "mul r2, r13 \n\t"         \
12675    "add r23, r0 \n\t"         \
12676    "adc r24, r1 \n\t"         \
12677    "adc r22, r25 \n\t"        \
12678    "mul r3, r12 \n\t"         \
12679    "add r23, r0 \n\t"         \
12680    "adc r24, r1 \n\t"         \
12681    "adc r22, r25 \n\t"        \
12682    "ld r0, z \n\t"            \
12683    "add r23, r0 \n\t"         \
12684    "adc r24, r25 \n\t"        \
12685    "adc r22, r25 \n\t"        \
12686    "st z+, r23 \n\t"          \
12687                               \
12688    "ld r4, x+ \n\t"           \
12689    "ldi r23, 0 \n\t"          \
12690    "mul r5, r21 \n\t"         \
12691    "add r24, r0 \n\t"         \
12692    "adc r22, r1 \n\t"         \
12693    "adc r23, r25 \n\t"        \
12694    "mul r6, r20 \n\t"         \
12695    "add r24, r0 \n\t"         \
12696    "adc r22, r1 \n\t"         \
12697    "adc r23, r25 \n\t"        \
12698    "mul r7, r19 \n\t"         \
12699    "add r24, r0 \n\t"         \
12700    "adc r22, r1 \n\t"         \
12701    "adc r23, r25 \n\t"        \
12702    "mul r8, r18 \n\t"         \
12703    "add r24, r0 \n\t"         \
12704    "adc r22, r1 \n\t"         \
12705    "adc r23, r25 \n\t"        \
12706    "mul r9, r17 \n\t"         \
12707    "add r24, r0 \n\t"         \
12708    "adc r22, r1 \n\t"         \
12709    "adc r23, r25 \n\t"        \
12710    "mul r10, r16 \n\t"        \
12711    "add r24, r0 \n\t"         \
12712    "adc r22, r1 \n\t"         \
12713    "adc r23, r25 \n\t"        \
12714    "mul r11, r15 \n\t"        \
12715    "add r24, r0 \n\t"         \
12716    "adc r22, r1 \n\t"         \
12717    "adc r23, r25 \n\t"        \
12718    "mul r2, r14 \n\t"         \
12719    "add r24, r0 \n\t"         \
12720    "adc r22, r1 \n\t"         \
12721    "adc r23, r25 \n\t"        \
12722    "mul r3, r13 \n\t"         \
12723    "add r24, r0 \n\t"         \
12724    "adc r22, r1 \n\t"         \
12725    "adc r23, r25 \n\t"        \
12726    "mul r4, r12 \n\t"         \
12727    "add r24, r0 \n\t"         \
12728    "adc r22, r1 \n\t"         \
12729    "adc r23, r25 \n\t"        \
12730    "ld r0, z \n\t"            \
12731    "add r24, r0 \n\t"         \
12732    "adc r22, r25 \n\t"        \
12733    "adc r23, r25 \n\t"        \
12734    "st z+, r24 \n\t"          \
12735                               \
12736    "ld r5, x+ \n\t"           \
12737    "ldi r24, 0 \n\t"          \
12738    "mul r6, r21 \n\t"         \
12739    "add r22, r0 \n\t"         \
12740    "adc r23, r1 \n\t"         \
12741    "adc r24, r25 \n\t"        \
12742    "mul r7, r20 \n\t"         \
12743    "add r22, r0 \n\t"         \
12744    "adc r23, r1 \n\t"         \
12745    "adc r24, r25 \n\t"        \
12746    "mul r8, r19 \n\t"         \
12747    "add r22, r0 \n\t"         \
12748    "adc r23, r1 \n\t"         \
12749    "adc r24, r25 \n\t"        \
12750    "mul r9, r18 \n\t"         \
12751    "add r22, r0 \n\t"         \
12752    "adc r23, r1 \n\t"         \
12753    "adc r24, r25 \n\t"        \
12754    "mul r10, r17 \n\t"        \
12755    "add r22, r0 \n\t"         \
12756    "adc r23, r1 \n\t"         \
12757    "adc r24, r25 \n\t"        \
12758    "mul r11, r16 \n\t"        \
12759    "add r22, r0 \n\t"         \
12760    "adc r23, r1 \n\t"         \
12761    "adc r24, r25 \n\t"        \
12762    "mul r2, r15 \n\t"         \
12763    "add r22, r0 \n\t"         \
12764    "adc r23, r1 \n\t"         \
12765    "adc r24, r25 \n\t"        \
12766    "mul r3, r14 \n\t"         \
12767    "add r22, r0 \n\t"         \
12768    "adc r23, r1 \n\t"         \
12769    "adc r24, r25 \n\t"        \
12770    "mul r4, r13 \n\t"         \
12771    "add r22, r0 \n\t"         \
12772    "adc r23, r1 \n\t"         \
12773    "adc r24, r25 \n\t"        \
12774    "mul r5, r12 \n\t"         \
12775    "add r22, r0 \n\t"         \
12776    "adc r23, r1 \n\t"         \
12777    "adc r24, r25 \n\t"        \
12778    "ld r0, z \n\t"            \
12779    "add r22, r0 \n\t"         \
12780    "adc r23, r25 \n\t"        \
12781    "adc r24, r25 \n\t"        \
12782    "st z+, r22 \n\t"          \
12783                               \
12784    "ld r6, x+ \n\t"           \
12785    "ldi r22, 0 \n\t"          \
12786    "mul r7, r21 \n\t"         \
12787    "add r23, r0 \n\t"         \
12788    "adc r24, r1 \n\t"         \
12789    "adc r22, r25 \n\t"        \
12790    "mul r8, r20 \n\t"         \
12791    "add r23, r0 \n\t"         \
12792    "adc r24, r1 \n\t"         \
12793    "adc r22, r25 \n\t"        \
12794    "mul r9, r19 \n\t"         \
12795    "add r23, r0 \n\t"         \
12796    "adc r24, r1 \n\t"         \
12797    "adc r22, r25 \n\t"        \
12798    "mul r10, r18 \n\t"        \
12799    "add r23, r0 \n\t"         \
12800    "adc r24, r1 \n\t"         \
12801    "adc r22, r25 \n\t"        \
12802    "mul r11, r17 \n\t"        \
12803    "add r23, r0 \n\t"         \
12804    "adc r24, r1 \n\t"         \
12805    "adc r22, r25 \n\t"        \
12806    "mul r2, r16 \n\t"         \
12807    "add r23, r0 \n\t"         \
12808    "adc r24, r1 \n\t"         \
12809    "adc r22, r25 \n\t"        \
12810    "mul r3, r15 \n\t"         \
12811    "add r23, r0 \n\t"         \
12812    "adc r24, r1 \n\t"         \
12813    "adc r22, r25 \n\t"        \
12814    "mul r4, r14 \n\t"         \
12815    "add r23, r0 \n\t"         \
12816    "adc r24, r1 \n\t"         \
12817    "adc r22, r25 \n\t"        \
12818    "mul r5, r13 \n\t"         \
12819    "add r23, r0 \n\t"         \
12820    "adc r24, r1 \n\t"         \
12821    "adc r22, r25 \n\t"        \
12822    "mul r6, r12 \n\t"         \
12823    "add r23, r0 \n\t"         \
12824    "adc r24, r1 \n\t"         \
12825    "adc r22, r25 \n\t"        \
12826    "ld r0, z \n\t"            \
12827    "add r23, r0 \n\t"         \
12828    "adc r24, r25 \n\t"        \
12829    "adc r22, r25 \n\t"        \
12830    "st z+, r23 \n\t"          \
12831                               \
12832    "ld r7, x+ \n\t"           \
12833    "ldi r23, 0 \n\t"          \
12834    "mul r8, r21 \n\t"         \
12835    "add r24, r0 \n\t"         \
12836    "adc r22, r1 \n\t"         \
12837    "adc r23, r25 \n\t"        \
12838    "mul r9, r20 \n\t"         \
12839    "add r24, r0 \n\t"         \
12840    "adc r22, r1 \n\t"         \
12841    "adc r23, r25 \n\t"        \
12842    "mul r10, r19 \n\t"        \
12843    "add r24, r0 \n\t"         \
12844    "adc r22, r1 \n\t"         \
12845    "adc r23, r25 \n\t"        \
12846    "mul r11, r18 \n\t"        \
12847    "add r24, r0 \n\t"         \
12848    "adc r22, r1 \n\t"         \
12849    "adc r23, r25 \n\t"        \
12850    "mul r2, r17 \n\t"         \
12851    "add r24, r0 \n\t"         \
12852    "adc r22, r1 \n\t"         \
12853    "adc r23, r25 \n\t"        \
12854    "mul r3, r16 \n\t"         \
12855    "add r24, r0 \n\t"         \
12856    "adc r22, r1 \n\t"         \
12857    "adc r23, r25 \n\t"        \
12858    "mul r4, r15 \n\t"         \
12859    "add r24, r0 \n\t"         \
12860    "adc r22, r1 \n\t"         \
12861    "adc r23, r25 \n\t"        \
12862    "mul r5, r14 \n\t"         \
12863    "add r24, r0 \n\t"         \
12864    "adc r22, r1 \n\t"         \
12865    "adc r23, r25 \n\t"        \
12866    "mul r6, r13 \n\t"         \
12867    "add r24, r0 \n\t"         \
12868    "adc r22, r1 \n\t"         \
12869    "adc r23, r25 \n\t"        \
12870    "mul r7, r12 \n\t"         \
12871    "add r24, r0 \n\t"         \
12872    "adc r22, r1 \n\t"         \
12873    "adc r23, r25 \n\t"        \
12874    "ld r0, z \n\t"            \
12875    "add r24, r0 \n\t"         \
12876    "adc r22, r25 \n\t"        \
12877    "adc r23, r25 \n\t"        \
12878    "st z+, r24 \n\t"          \
12879                               \
12880    "ld r8, x+ \n\t"           \
12881    "ldi r24, 0 \n\t"          \
12882    "mul r9, r21 \n\t"         \
12883    "add r22, r0 \n\t"         \
12884    "adc r23, r1 \n\t"         \
12885    "adc r24, r25 \n\t"        \
12886    "mul r10, r20 \n\t"        \
12887    "add r22, r0 \n\t"         \
12888    "adc r23, r1 \n\t"         \
12889    "adc r24, r25 \n\t"        \
12890    "mul r11, r19 \n\t"        \
12891    "add r22, r0 \n\t"         \
12892    "adc r23, r1 \n\t"         \
12893    "adc r24, r25 \n\t"        \
12894    "mul r2, r18 \n\t"         \
12895    "add r22, r0 \n\t"         \
12896    "adc r23, r1 \n\t"         \
12897    "adc r24, r25 \n\t"        \
12898    "mul r3, r17 \n\t"         \
12899    "add r22, r0 \n\t"         \
12900    "adc r23, r1 \n\t"         \
12901    "adc r24, r25 \n\t"        \
12902    "mul r4, r16 \n\t"         \
12903    "add r22, r0 \n\t"         \
12904    "adc r23, r1 \n\t"         \
12905    "adc r24, r25 \n\t"        \
12906    "mul r5, r15 \n\t"         \
12907    "add r22, r0 \n\t"         \
12908    "adc r23, r1 \n\t"         \
12909    "adc r24, r25 \n\t"        \
12910    "mul r6, r14 \n\t"         \
12911    "add r22, r0 \n\t"         \
12912    "adc r23, r1 \n\t"         \
12913    "adc r24, r25 \n\t"        \
12914    "mul r7, r13 \n\t"         \
12915    "add r22, r0 \n\t"         \
12916    "adc r23, r1 \n\t"         \
12917    "adc r24, r25 \n\t"        \
12918    "mul r8, r12 \n\t"         \
12919    "add r22, r0 \n\t"         \
12920    "adc r23, r1 \n\t"         \
12921    "adc r24, r25 \n\t"        \
12922    "ld r0, z \n\t"            \
12923    "add r22, r0 \n\t"         \
12924    "adc r23, r25 \n\t"        \
12925    "adc r24, r25 \n\t"        \
12926    "st z+, r22 \n\t"          \
12927                               \
12928    "ld r9, x+ \n\t"           \
12929    "ldi r22, 0 \n\t"          \
12930    "mul r10, r21 \n\t"        \
12931    "add r23, r0 \n\t"         \
12932    "adc r24, r1 \n\t"         \
12933    "adc r22, r25 \n\t"        \
12934    "mul r11, r20 \n\t"        \
12935    "add r23, r0 \n\t"         \
12936    "adc r24, r1 \n\t"         \
12937    "adc r22, r25 \n\t"        \
12938    "mul r2, r19 \n\t"         \
12939    "add r23, r0 \n\t"         \
12940    "adc r24, r1 \n\t"         \
12941    "adc r22, r25 \n\t"        \
12942    "mul r3, r18 \n\t"         \
12943    "add r23, r0 \n\t"         \
12944    "adc r24, r1 \n\t"         \
12945    "adc r22, r25 \n\t"        \
12946    "mul r4, r17 \n\t"         \
12947    "add r23, r0 \n\t"         \
12948    "adc r24, r1 \n\t"         \
12949    "adc r22, r25 \n\t"        \
12950    "mul r5, r16 \n\t"         \
12951    "add r23, r0 \n\t"         \
12952    "adc r24, r1 \n\t"         \
12953    "adc r22, r25 \n\t"        \
12954    "mul r6, r15 \n\t"         \
12955    "add r23, r0 \n\t"         \
12956    "adc r24, r1 \n\t"         \
12957    "adc r22, r25 \n\t"        \
12958    "mul r7, r14 \n\t"         \
12959    "add r23, r0 \n\t"         \
12960    "adc r24, r1 \n\t"         \
12961    "adc r22, r25 \n\t"        \
12962    "mul r8, r13 \n\t"         \
12963    "add r23, r0 \n\t"         \
12964    "adc r24, r1 \n\t"         \
12965    "adc r22, r25 \n\t"        \
12966    "mul r9, r12 \n\t"         \
12967    "add r23, r0 \n\t"         \
12968    "adc r24, r1 \n\t"         \
12969    "adc r22, r25 \n\t"        \
12970    "ld r0, z \n\t"            \
12971    "add r23, r0 \n\t"         \
12972    "adc r24, r25 \n\t"        \
12973    "adc r22, r25 \n\t"        \
12974    "st z+, r23 \n\t"          \
12975                               \
12976    "ld r10, x+ \n\t"          \
12977    "ldi r23, 0 \n\t"          \
12978    "mul r11, r21 \n\t"        \
12979    "add r24, r0 \n\t"         \
12980    "adc r22, r1 \n\t"         \
12981    "adc r23, r25 \n\t"        \
12982    "mul r2, r20 \n\t"         \
12983    "add r24, r0 \n\t"         \
12984    "adc r22, r1 \n\t"         \
12985    "adc r23, r25 \n\t"        \
12986    "mul r3, r19 \n\t"         \
12987    "add r24, r0 \n\t"         \
12988    "adc r22, r1 \n\t"         \
12989    "adc r23, r25 \n\t"        \
12990    "mul r4, r18 \n\t"         \
12991    "add r24, r0 \n\t"         \
12992    "adc r22, r1 \n\t"         \
12993    "adc r23, r25 \n\t"        \
12994    "mul r5, r17 \n\t"         \
12995    "add r24, r0 \n\t"         \
12996    "adc r22, r1 \n\t"         \
12997    "adc r23, r25 \n\t"        \
12998    "mul r6, r16 \n\t"         \
12999    "add r24, r0 \n\t"         \
13000    "adc r22, r1 \n\t"         \
13001    "adc r23, r25 \n\t"        \
13002    "mul r7, r15 \n\t"         \
13003    "add r24, r0 \n\t"         \
13004    "adc r22, r1 \n\t"         \
13005    "adc r23, r25 \n\t"        \
13006    "mul r8, r14 \n\t"         \
13007    "add r24, r0 \n\t"         \
13008    "adc r22, r1 \n\t"         \
13009    "adc r23, r25 \n\t"        \
13010    "mul r9, r13 \n\t"         \
13011    "add r24, r0 \n\t"         \
13012    "adc r22, r1 \n\t"         \
13013    "adc r23, r25 \n\t"        \
13014    "mul r10, r12 \n\t"        \
13015    "add r24, r0 \n\t"         \
13016    "adc r22, r1 \n\t"         \
13017    "adc r23, r25 \n\t"        \
13018    "ld r0, z \n\t"            \
13019    "add r24, r0 \n\t"         \
13020    "adc r22, r25 \n\t"        \
13021    "adc r23, r25 \n\t"        \
13022    "st z+, r24 \n\t"          \
13023                               \
13024    "ld r11, x+ \n\t"          \
13025    "ldi r24, 0 \n\t"          \
13026    "mul r2, r21 \n\t"         \
13027    "add r22, r0 \n\t"         \
13028    "adc r23, r1 \n\t"         \
13029    "adc r24, r25 \n\t"        \
13030    "mul r3, r20 \n\t"         \
13031    "add r22, r0 \n\t"         \
13032    "adc r23, r1 \n\t"         \
13033    "adc r24, r25 \n\t"        \
13034    "mul r4, r19 \n\t"         \
13035    "add r22, r0 \n\t"         \
13036    "adc r23, r1 \n\t"         \
13037    "adc r24, r25 \n\t"        \
13038    "mul r5, r18 \n\t"         \
13039    "add r22, r0 \n\t"         \
13040    "adc r23, r1 \n\t"         \
13041    "adc r24, r25 \n\t"        \
13042    "mul r6, r17 \n\t"         \
13043    "add r22, r0 \n\t"         \
13044    "adc r23, r1 \n\t"         \
13045    "adc r24, r25 \n\t"        \
13046    "mul r7, r16 \n\t"         \
13047    "add r22, r0 \n\t"         \
13048    "adc r23, r1 \n\t"         \
13049    "adc r24, r25 \n\t"        \
13050    "mul r8, r15 \n\t"         \
13051    "add r22, r0 \n\t"         \
13052    "adc r23, r1 \n\t"         \
13053    "adc r24, r25 \n\t"        \
13054    "mul r9, r14 \n\t"         \
13055    "add r22, r0 \n\t"         \
13056    "adc r23, r1 \n\t"         \
13057    "adc r24, r25 \n\t"        \
13058    "mul r10, r13 \n\t"        \
13059    "add r22, r0 \n\t"         \
13060    "adc r23, r1 \n\t"         \
13061    "adc r24, r25 \n\t"        \
13062    "mul r11, r12 \n\t"        \
13063    "add r22, r0 \n\t"         \
13064    "adc r23, r1 \n\t"         \
13065    "adc r24, r25 \n\t"        \
13066    "ld r0, z \n\t"            \
13067    "add r22, r0 \n\t"         \
13068    "adc r23, r25 \n\t"        \
13069    "adc r24, r25 \n\t"        \
13070    "st z+, r22 \n\t"          \
13071                               \
13072    "ld r2, x+ \n\t"           \
13073    "ldi r22, 0 \n\t"          \
13074    "mul r3, r21 \n\t"         \
13075    "add r23, r0 \n\t"         \
13076    "adc r24, r1 \n\t"         \
13077    "adc r22, r25 \n\t"        \
13078    "mul r4, r20 \n\t"         \
13079    "add r23, r0 \n\t"         \
13080    "adc r24, r1 \n\t"         \
13081    "adc r22, r25 \n\t"        \
13082    "mul r5, r19 \n\t"         \
13083    "add r23, r0 \n\t"         \
13084    "adc r24, r1 \n\t"         \
13085    "adc r22, r25 \n\t"        \
13086    "mul r6, r18 \n\t"         \
13087    "add r23, r0 \n\t"         \
13088    "adc r24, r1 \n\t"         \
13089    "adc r22, r25 \n\t"        \
13090    "mul r7, r17 \n\t"         \
13091    "add r23, r0 \n\t"         \
13092    "adc r24, r1 \n\t"         \
13093    "adc r22, r25 \n\t"        \
13094    "mul r8, r16 \n\t"         \
13095    "add r23, r0 \n\t"         \
13096    "adc r24, r1 \n\t"         \
13097    "adc r22, r25 \n\t"        \
13098    "mul r9, r15 \n\t"         \
13099    "add r23, r0 \n\t"         \
13100    "adc r24, r1 \n\t"         \
13101    "adc r22, r25 \n\t"        \
13102    "mul r10, r14 \n\t"        \
13103    "add r23, r0 \n\t"         \
13104    "adc r24, r1 \n\t"         \
13105    "adc r22, r25 \n\t"        \
13106    "mul r11, r13 \n\t"        \
13107    "add r23, r0 \n\t"         \
13108    "adc r24, r1 \n\t"         \
13109    "adc r22, r25 \n\t"        \
13110    "mul r2, r12 \n\t"         \
13111    "add r23, r0 \n\t"         \
13112    "adc r24, r1 \n\t"         \
13113    "adc r22, r25 \n\t"        \
13114    "ld r0, z \n\t"            \
13115    "add r23, r0 \n\t"         \
13116    "adc r24, r25 \n\t"        \
13117    "adc r22, r25 \n\t"        \
13118    "st z+, r23 \n\t"          \
13119                               \
13120    "ld r3, x+ \n\t"           \
13121    "ldi r23, 0 \n\t"          \
13122    "mul r4, r21 \n\t"         \
13123    "add r24, r0 \n\t"         \
13124    "adc r22, r1 \n\t"         \
13125    "adc r23, r25 \n\t"        \
13126    "mul r5, r20 \n\t"         \
13127    "add r24, r0 \n\t"         \
13128    "adc r22, r1 \n\t"         \
13129    "adc r23, r25 \n\t"        \
13130    "mul r6, r19 \n\t"         \
13131    "add r24, r0 \n\t"         \
13132    "adc r22, r1 \n\t"         \
13133    "adc r23, r25 \n\t"        \
13134    "mul r7, r18 \n\t"         \
13135    "add r24, r0 \n\t"         \
13136    "adc r22, r1 \n\t"         \
13137    "adc r23, r25 \n\t"        \
13138    "mul r8, r17 \n\t"         \
13139    "add r24, r0 \n\t"         \
13140    "adc r22, r1 \n\t"         \
13141    "adc r23, r25 \n\t"        \
13142    "mul r9, r16 \n\t"         \
13143    "add r24, r0 \n\t"         \
13144    "adc r22, r1 \n\t"         \
13145    "adc r23, r25 \n\t"        \
13146    "mul r10, r15 \n\t"        \
13147    "add r24, r0 \n\t"         \
13148    "adc r22, r1 \n\t"         \
13149    "adc r23, r25 \n\t"        \
13150    "mul r11, r14 \n\t"        \
13151    "add r24, r0 \n\t"         \
13152    "adc r22, r1 \n\t"         \
13153    "adc r23, r25 \n\t"        \
13154    "mul r2, r13 \n\t"         \
13155    "add r24, r0 \n\t"         \
13156    "adc r22, r1 \n\t"         \
13157    "adc r23, r25 \n\t"        \
13158    "mul r3, r12 \n\t"         \
13159    "add r24, r0 \n\t"         \
13160    "adc r22, r1 \n\t"         \
13161    "adc r23, r25 \n\t"        \
13162    "ld r0, z \n\t"            \
13163    "add r24, r0 \n\t"         \
13164    "adc r22, r25 \n\t"        \
13165    "adc r23, r25 \n\t"        \
13166    "st z+, r24 \n\t"          \
13167                               \
13168    "ld r12, y+ \n\t"          \
13169    "ldi r24, 0 \n\t"          \
13170    "mul r4, r12 \n\t"         \
13171    "add r22, r0 \n\t"         \
13172    "adc r23, r1 \n\t"         \
13173    "adc r24, r25 \n\t"        \
13174    "mul r5, r21 \n\t"         \
13175    "add r22, r0 \n\t"         \
13176    "adc r23, r1 \n\t"         \
13177    "adc r24, r25 \n\t"        \
13178    "mul r6, r20 \n\t"         \
13179    "add r22, r0 \n\t"         \
13180    "adc r23, r1 \n\t"         \
13181    "adc r24, r25 \n\t"        \
13182    "mul r7, r19 \n\t"         \
13183    "add r22, r0 \n\t"         \
13184    "adc r23, r1 \n\t"         \
13185    "adc r24, r25 \n\t"        \
13186    "mul r8, r18 \n\t"         \
13187    "add r22, r0 \n\t"         \
13188    "adc r23, r1 \n\t"         \
13189    "adc r24, r25 \n\t"        \
13190    "mul r9, r17 \n\t"         \
13191    "add r22, r0 \n\t"         \
13192    "adc r23, r1 \n\t"         \
13193    "adc r24, r25 \n\t"        \
13194    "mul r10, r16 \n\t"        \
13195    "add r22, r0 \n\t"         \
13196    "adc r23, r1 \n\t"         \
13197    "adc r24, r25 \n\t"        \
13198    "mul r11, r15 \n\t"        \
13199    "add r22, r0 \n\t"         \
13200    "adc r23, r1 \n\t"         \
13201    "adc r24, r25 \n\t"        \
13202    "mul r2, r14 \n\t"         \
13203    "add r22, r0 \n\t"         \
13204    "adc r23, r1 \n\t"         \
13205    "adc r24, r25 \n\t"        \
13206    "mul r3, r13 \n\t"         \
13207    "add r22, r0 \n\t"         \
13208    "adc r23, r1 \n\t"         \
13209    "adc r24, r25 \n\t"        \
13210    "ld r0, z \n\t"            \
13211    "add r22, r0 \n\t"         \
13212    "adc r23, r25 \n\t"        \
13213    "adc r24, r25 \n\t"        \
13214    "st z+, r22 \n\t"          \
13215                               \
13216    "ld r13, y+ \n\t"          \
13217    "ldi r22, 0 \n\t"          \
13218    "mul r4, r13 \n\t"         \
13219    "add r23, r0 \n\t"         \
13220    "adc r24, r1 \n\t"         \
13221    "adc r22, r25 \n\t"        \
13222    "mul r5, r12 \n\t"         \
13223    "add r23, r0 \n\t"         \
13224    "adc r24, r1 \n\t"         \
13225    "adc r22, r25 \n\t"        \
13226    "mul r6, r21 \n\t"         \
13227    "add r23, r0 \n\t"         \
13228    "adc r24, r1 \n\t"         \
13229    "adc r22, r25 \n\t"        \
13230    "mul r7, r20 \n\t"         \
13231    "add r23, r0 \n\t"         \
13232    "adc r24, r1 \n\t"         \
13233    "adc r22, r25 \n\t"        \
13234    "mul r8, r19 \n\t"         \
13235    "add r23, r0 \n\t"         \
13236    "adc r24, r1 \n\t"         \
13237    "adc r22, r25 \n\t"        \
13238    "mul r9, r18 \n\t"         \
13239    "add r23, r0 \n\t"         \
13240    "adc r24, r1 \n\t"         \
13241    "adc r22, r25 \n\t"        \
13242    "mul r10, r17 \n\t"        \
13243    "add r23, r0 \n\t"         \
13244    "adc r24, r1 \n\t"         \
13245    "adc r22, r25 \n\t"        \
13246    "mul r11, r16 \n\t"        \
13247    "add r23, r0 \n\t"         \
13248    "adc r24, r1 \n\t"         \
13249    "adc r22, r25 \n\t"        \
13250    "mul r2, r15 \n\t"         \
13251    "add r23, r0 \n\t"         \
13252    "adc r24, r1 \n\t"         \
13253    "adc r22, r25 \n\t"        \
13254    "mul r3, r14 \n\t"         \
13255    "add r23, r0 \n\t"         \
13256    "adc r24, r1 \n\t"         \
13257    "adc r22, r25 \n\t"        \
13258    "ld r0, z \n\t"            \
13259    "add r23, r0 \n\t"         \
13260    "adc r24, r25 \n\t"        \
13261    "adc r22, r25 \n\t"        \
13262    "st z+, r23 \n\t"          \
13263                               \
13264    "ld r14, y+ \n\t"          \
13265    "ldi r23, 0 \n\t"          \
13266    "mul r4, r14 \n\t"         \
13267    "add r24, r0 \n\t"         \
13268    "adc r22, r1 \n\t"         \
13269    "adc r23, r25 \n\t"        \
13270    "mul r5, r13 \n\t"         \
13271    "add r24, r0 \n\t"         \
13272    "adc r22, r1 \n\t"         \
13273    "adc r23, r25 \n\t"        \
13274    "mul r6, r12 \n\t"         \
13275    "add r24, r0 \n\t"         \
13276    "adc r22, r1 \n\t"         \
13277    "adc r23, r25 \n\t"        \
13278    "mul r7, r21 \n\t"         \
13279    "add r24, r0 \n\t"         \
13280    "adc r22, r1 \n\t"         \
13281    "adc r23, r25 \n\t"        \
13282    "mul r8, r20 \n\t"         \
13283    "add r24, r0 \n\t"         \
13284    "adc r22, r1 \n\t"         \
13285    "adc r23, r25 \n\t"        \
13286    "mul r9, r19 \n\t"         \
13287    "add r24, r0 \n\t"         \
13288    "adc r22, r1 \n\t"         \
13289    "adc r23, r25 \n\t"        \
13290    "mul r10, r18 \n\t"        \
13291    "add r24, r0 \n\t"         \
13292    "adc r22, r1 \n\t"         \
13293    "adc r23, r25 \n\t"        \
13294    "mul r11, r17 \n\t"        \
13295    "add r24, r0 \n\t"         \
13296    "adc r22, r1 \n\t"         \
13297    "adc r23, r25 \n\t"        \
13298    "mul r2, r16 \n\t"         \
13299    "add r24, r0 \n\t"         \
13300    "adc r22, r1 \n\t"         \
13301    "adc r23, r25 \n\t"        \
13302    "mul r3, r15 \n\t"         \
13303    "add r24, r0 \n\t"         \
13304    "adc r22, r1 \n\t"         \
13305    "adc r23, r25 \n\t"        \
13306    "ld r0, z \n\t"            \
13307    "add r24, r0 \n\t"         \
13308    "adc r22, r25 \n\t"        \
13309    "adc r23, r25 \n\t"        \
13310    "st z+, r24 \n\t"          \
13311                               \
13312    "ld r15, y+ \n\t"          \
13313    "ldi r24, 0 \n\t"          \
13314    "mul r4, r15 \n\t"         \
13315    "add r22, r0 \n\t"         \
13316    "adc r23, r1 \n\t"         \
13317    "adc r24, r25 \n\t"        \
13318    "mul r5, r14 \n\t"         \
13319    "add r22, r0 \n\t"         \
13320    "adc r23, r1 \n\t"         \
13321    "adc r24, r25 \n\t"        \
13322    "mul r6, r13 \n\t"         \
13323    "add r22, r0 \n\t"         \
13324    "adc r23, r1 \n\t"         \
13325    "adc r24, r25 \n\t"        \
13326    "mul r7, r12 \n\t"         \
13327    "add r22, r0 \n\t"         \
13328    "adc r23, r1 \n\t"         \
13329    "adc r24, r25 \n\t"        \
13330    "mul r8, r21 \n\t"         \
13331    "add r22, r0 \n\t"         \
13332    "adc r23, r1 \n\t"         \
13333    "adc r24, r25 \n\t"        \
13334    "mul r9, r20 \n\t"         \
13335    "add r22, r0 \n\t"         \
13336    "adc r23, r1 \n\t"         \
13337    "adc r24, r25 \n\t"        \
13338    "mul r10, r19 \n\t"        \
13339    "add r22, r0 \n\t"         \
13340    "adc r23, r1 \n\t"         \
13341    "adc r24, r25 \n\t"        \
13342    "mul r11, r18 \n\t"        \
13343    "add r22, r0 \n\t"         \
13344    "adc r23, r1 \n\t"         \
13345    "adc r24, r25 \n\t"        \
13346    "mul r2, r17 \n\t"         \
13347    "add r22, r0 \n\t"         \
13348    "adc r23, r1 \n\t"         \
13349    "adc r24, r25 \n\t"        \
13350    "mul r3, r16 \n\t"         \
13351    "add r22, r0 \n\t"         \
13352    "adc r23, r1 \n\t"         \
13353    "adc r24, r25 \n\t"        \
13354    "ld r0, z \n\t"            \
13355    "add r22, r0 \n\t"         \
13356    "adc r23, r25 \n\t"        \
13357    "adc r24, r25 \n\t"        \
13358    "st z+, r22 \n\t"          \
13359                               \
13360    "ld r16, y+ \n\t"          \
13361    "ldi r22, 0 \n\t"          \
13362    "mul r4, r16 \n\t"         \
13363    "add r23, r0 \n\t"         \
13364    "adc r24, r1 \n\t"         \
13365    "adc r22, r25 \n\t"        \
13366    "mul r5, r15 \n\t"         \
13367    "add r23, r0 \n\t"         \
13368    "adc r24, r1 \n\t"         \
13369    "adc r22, r25 \n\t"        \
13370    "mul r6, r14 \n\t"         \
13371    "add r23, r0 \n\t"         \
13372    "adc r24, r1 \n\t"         \
13373    "adc r22, r25 \n\t"        \
13374    "mul r7, r13 \n\t"         \
13375    "add r23, r0 \n\t"         \
13376    "adc r24, r1 \n\t"         \
13377    "adc r22, r25 \n\t"        \
13378    "mul r8, r12 \n\t"         \
13379    "add r23, r0 \n\t"         \
13380    "adc r24, r1 \n\t"         \
13381    "adc r22, r25 \n\t"        \
13382    "mul r9, r21 \n\t"         \
13383    "add r23, r0 \n\t"         \
13384    "adc r24, r1 \n\t"         \
13385    "adc r22, r25 \n\t"        \
13386    "mul r10, r20 \n\t"        \
13387    "add r23, r0 \n\t"         \
13388    "adc r24, r1 \n\t"         \
13389    "adc r22, r25 \n\t"        \
13390    "mul r11, r19 \n\t"        \
13391    "add r23, r0 \n\t"         \
13392    "adc r24, r1 \n\t"         \
13393    "adc r22, r25 \n\t"        \
13394    "mul r2, r18 \n\t"         \
13395    "add r23, r0 \n\t"         \
13396    "adc r24, r1 \n\t"         \
13397    "adc r22, r25 \n\t"        \
13398    "mul r3, r17 \n\t"         \
13399    "add r23, r0 \n\t"         \
13400    "adc r24, r1 \n\t"         \
13401    "adc r22, r25 \n\t"        \
13402    "ld r0, z \n\t"            \
13403    "add r23, r0 \n\t"         \
13404    "adc r24, r25 \n\t"        \
13405    "adc r22, r25 \n\t"        \
13406    "st z+, r23 \n\t"          \
13407                               \
13408    "ld r17, y+ \n\t"          \
13409    "ldi r23, 0 \n\t"          \
13410    "mul r4, r17 \n\t"         \
13411    "add r24, r0 \n\t"         \
13412    "adc r22, r1 \n\t"         \
13413    "adc r23, r25 \n\t"        \
13414    "mul r5, r16 \n\t"         \
13415    "add r24, r0 \n\t"         \
13416    "adc r22, r1 \n\t"         \
13417    "adc r23, r25 \n\t"        \
13418    "mul r6, r15 \n\t"         \
13419    "add r24, r0 \n\t"         \
13420    "adc r22, r1 \n\t"         \
13421    "adc r23, r25 \n\t"        \
13422    "mul r7, r14 \n\t"         \
13423    "add r24, r0 \n\t"         \
13424    "adc r22, r1 \n\t"         \
13425    "adc r23, r25 \n\t"        \
13426    "mul r8, r13 \n\t"         \
13427    "add r24, r0 \n\t"         \
13428    "adc r22, r1 \n\t"         \
13429    "adc r23, r25 \n\t"        \
13430    "mul r9, r12 \n\t"         \
13431    "add r24, r0 \n\t"         \
13432    "adc r22, r1 \n\t"         \
13433    "adc r23, r25 \n\t"        \
13434    "mul r10, r21 \n\t"        \
13435    "add r24, r0 \n\t"         \
13436    "adc r22, r1 \n\t"         \
13437    "adc r23, r25 \n\t"        \
13438    "mul r11, r20 \n\t"        \
13439    "add r24, r0 \n\t"         \
13440    "adc r22, r1 \n\t"         \
13441    "adc r23, r25 \n\t"        \
13442    "mul r2, r19 \n\t"         \
13443    "add r24, r0 \n\t"         \
13444    "adc r22, r1 \n\t"         \
13445    "adc r23, r25 \n\t"        \
13446    "mul r3, r18 \n\t"         \
13447    "add r24, r0 \n\t"         \
13448    "adc r22, r1 \n\t"         \
13449    "adc r23, r25 \n\t"        \
13450    "ld r0, z \n\t"            \
13451    "add r24, r0 \n\t"         \
13452    "adc r22, r25 \n\t"        \
13453    "adc r23, r25 \n\t"        \
13454    "st z+, r24 \n\t"          \
13455                               \
13456    "ld r18, y+ \n\t"          \
13457    "ldi r24, 0 \n\t"          \
13458    "mul r4, r18 \n\t"         \
13459    "add r22, r0 \n\t"         \
13460    "adc r23, r1 \n\t"         \
13461    "adc r24, r25 \n\t"        \
13462    "mul r5, r17 \n\t"         \
13463    "add r22, r0 \n\t"         \
13464    "adc r23, r1 \n\t"         \
13465    "adc r24, r25 \n\t"        \
13466    "mul r6, r16 \n\t"         \
13467    "add r22, r0 \n\t"         \
13468    "adc r23, r1 \n\t"         \
13469    "adc r24, r25 \n\t"        \
13470    "mul r7, r15 \n\t"         \
13471    "add r22, r0 \n\t"         \
13472    "adc r23, r1 \n\t"         \
13473    "adc r24, r25 \n\t"        \
13474    "mul r8, r14 \n\t"         \
13475    "add r22, r0 \n\t"         \
13476    "adc r23, r1 \n\t"         \
13477    "adc r24, r25 \n\t"        \
13478    "mul r9, r13 \n\t"         \
13479    "add r22, r0 \n\t"         \
13480    "adc r23, r1 \n\t"         \
13481    "adc r24, r25 \n\t"        \
13482    "mul r10, r12 \n\t"        \
13483    "add r22, r0 \n\t"         \
13484    "adc r23, r1 \n\t"         \
13485    "adc r24, r25 \n\t"        \
13486    "mul r11, r21 \n\t"        \
13487    "add r22, r0 \n\t"         \
13488    "adc r23, r1 \n\t"         \
13489    "adc r24, r25 \n\t"        \
13490    "mul r2, r20 \n\t"         \
13491    "add r22, r0 \n\t"         \
13492    "adc r23, r1 \n\t"         \
13493    "adc r24, r25 \n\t"        \
13494    "mul r3, r19 \n\t"         \
13495    "add r22, r0 \n\t"         \
13496    "adc r23, r1 \n\t"         \
13497    "adc r24, r25 \n\t"        \
13498    "ld r0, z \n\t"            \
13499    "add r22, r0 \n\t"         \
13500    "adc r23, r25 \n\t"        \
13501    "adc r24, r25 \n\t"        \
13502    "st z+, r22 \n\t"          \
13503                               \
13504    "ld r19, y+ \n\t"          \
13505    "ldi r22, 0 \n\t"          \
13506    "mul r4, r19 \n\t"         \
13507    "add r23, r0 \n\t"         \
13508    "adc r24, r1 \n\t"         \
13509    "adc r22, r25 \n\t"        \
13510    "mul r5, r18 \n\t"         \
13511    "add r23, r0 \n\t"         \
13512    "adc r24, r1 \n\t"         \
13513    "adc r22, r25 \n\t"        \
13514    "mul r6, r17 \n\t"         \
13515    "add r23, r0 \n\t"         \
13516    "adc r24, r1 \n\t"         \
13517    "adc r22, r25 \n\t"        \
13518    "mul r7, r16 \n\t"         \
13519    "add r23, r0 \n\t"         \
13520    "adc r24, r1 \n\t"         \
13521    "adc r22, r25 \n\t"        \
13522    "mul r8, r15 \n\t"         \
13523    "add r23, r0 \n\t"         \
13524    "adc r24, r1 \n\t"         \
13525    "adc r22, r25 \n\t"        \
13526    "mul r9, r14 \n\t"         \
13527    "add r23, r0 \n\t"         \
13528    "adc r24, r1 \n\t"         \
13529    "adc r22, r25 \n\t"        \
13530    "mul r10, r13 \n\t"        \
13531    "add r23, r0 \n\t"         \
13532    "adc r24, r1 \n\t"         \
13533    "adc r22, r25 \n\t"        \
13534    "mul r11, r12 \n\t"        \
13535    "add r23, r0 \n\t"         \
13536    "adc r24, r1 \n\t"         \
13537    "adc r22, r25 \n\t"        \
13538    "mul r2, r21 \n\t"         \
13539    "add r23, r0 \n\t"         \
13540    "adc r24, r1 \n\t"         \
13541    "adc r22, r25 \n\t"        \
13542    "mul r3, r20 \n\t"         \
13543    "add r23, r0 \n\t"         \
13544    "adc r24, r1 \n\t"         \
13545    "adc r22, r25 \n\t"        \
13546    "ld r0, z \n\t"            \
13547    "add r23, r0 \n\t"         \
13548    "adc r24, r25 \n\t"        \
13549    "adc r22, r25 \n\t"        \
13550    "st z+, r23 \n\t"          \
13551                               \
13552    "ld r20, y+ \n\t"          \
13553    "ldi r23, 0 \n\t"          \
13554    "mul r4, r20 \n\t"         \
13555    "add r24, r0 \n\t"         \
13556    "adc r22, r1 \n\t"         \
13557    "adc r23, r25 \n\t"        \
13558    "mul r5, r19 \n\t"         \
13559    "add r24, r0 \n\t"         \
13560    "adc r22, r1 \n\t"         \
13561    "adc r23, r25 \n\t"        \
13562    "mul r6, r18 \n\t"         \
13563    "add r24, r0 \n\t"         \
13564    "adc r22, r1 \n\t"         \
13565    "adc r23, r25 \n\t"        \
13566    "mul r7, r17 \n\t"         \
13567    "add r24, r0 \n\t"         \
13568    "adc r22, r1 \n\t"         \
13569    "adc r23, r25 \n\t"        \
13570    "mul r8, r16 \n\t"         \
13571    "add r24, r0 \n\t"         \
13572    "adc r22, r1 \n\t"         \
13573    "adc r23, r25 \n\t"        \
13574    "mul r9, r15 \n\t"         \
13575    "add r24, r0 \n\t"         \
13576    "adc r22, r1 \n\t"         \
13577    "adc r23, r25 \n\t"        \
13578    "mul r10, r14 \n\t"        \
13579    "add r24, r0 \n\t"         \
13580    "adc r22, r1 \n\t"         \
13581    "adc r23, r25 \n\t"        \
13582    "mul r11, r13 \n\t"        \
13583    "add r24, r0 \n\t"         \
13584    "adc r22, r1 \n\t"         \
13585    "adc r23, r25 \n\t"        \
13586    "mul r2, r12 \n\t"         \
13587    "add r24, r0 \n\t"         \
13588    "adc r22, r1 \n\t"         \
13589    "adc r23, r25 \n\t"        \
13590    "mul r3, r21 \n\t"         \
13591    "add r24, r0 \n\t"         \
13592    "adc r22, r1 \n\t"         \
13593    "adc r23, r25 \n\t"        \
13594    "ld r0, z \n\t"            \
13595    "add r24, r0 \n\t"         \
13596    "adc r22, r25 \n\t"        \
13597    "adc r23, r25 \n\t"        \
13598    "st z+, r24 \n\t"          \
13599                               \
13600    "ld r21, y+ \n\t"          \
13601    "ldi r24, 0 \n\t"          \
13602    "mul r4, r21 \n\t"         \
13603    "add r22, r0 \n\t"         \
13604    "adc r23, r1 \n\t"         \
13605    "adc r24, r25 \n\t"        \
13606    "mul r5, r20 \n\t"         \
13607    "add r22, r0 \n\t"         \
13608    "adc r23, r1 \n\t"         \
13609    "adc r24, r25 \n\t"        \
13610    "mul r6, r19 \n\t"         \
13611    "add r22, r0 \n\t"         \
13612    "adc r23, r1 \n\t"         \
13613    "adc r24, r25 \n\t"        \
13614    "mul r7, r18 \n\t"         \
13615    "add r22, r0 \n\t"         \
13616    "adc r23, r1 \n\t"         \
13617    "adc r24, r25 \n\t"        \
13618    "mul r8, r17 \n\t"         \
13619    "add r22, r0 \n\t"         \
13620    "adc r23, r1 \n\t"         \
13621    "adc r24, r25 \n\t"        \
13622    "mul r9, r16 \n\t"         \
13623    "add r22, r0 \n\t"         \
13624    "adc r23, r1 \n\t"         \
13625    "adc r24, r25 \n\t"        \
13626    "mul r10, r15 \n\t"        \
13627    "add r22, r0 \n\t"         \
13628    "adc r23, r1 \n\t"         \
13629    "adc r24, r25 \n\t"        \
13630    "mul r11, r14 \n\t"        \
13631    "add r22, r0 \n\t"         \
13632    "adc r23, r1 \n\t"         \
13633    "adc r24, r25 \n\t"        \
13634    "mul r2, r13 \n\t"         \
13635    "add r22, r0 \n\t"         \
13636    "adc r23, r1 \n\t"         \
13637    "adc r24, r25 \n\t"        \
13638    "mul r3, r12 \n\t"         \
13639    "add r22, r0 \n\t"         \
13640    "adc r23, r1 \n\t"         \
13641    "adc r24, r25 \n\t"        \
13642    "ld r0, z \n\t"            \
13643    "add r22, r0 \n\t"         \
13644    "adc r23, r25 \n\t"        \
13645    "adc r24, r25 \n\t"        \
13646    "st z+, r22 \n\t"          \
13647                               \
13648    "ld r12, y+ \n\t"          \
13649    "ldi r22, 0 \n\t"          \
13650    "mul r4, r12 \n\t"         \
13651    "add r23, r0 \n\t"         \
13652    "adc r24, r1 \n\t"         \
13653    "adc r22, r25 \n\t"        \
13654    "mul r5, r21 \n\t"         \
13655    "add r23, r0 \n\t"         \
13656    "adc r24, r1 \n\t"         \
13657    "adc r22, r25 \n\t"        \
13658    "mul r6, r20 \n\t"         \
13659    "add r23, r0 \n\t"         \
13660    "adc r24, r1 \n\t"         \
13661    "adc r22, r25 \n\t"        \
13662    "mul r7, r19 \n\t"         \
13663    "add r23, r0 \n\t"         \
13664    "adc r24, r1 \n\t"         \
13665    "adc r22, r25 \n\t"        \
13666    "mul r8, r18 \n\t"         \
13667    "add r23, r0 \n\t"         \
13668    "adc r24, r1 \n\t"         \
13669    "adc r22, r25 \n\t"        \
13670    "mul r9, r17 \n\t"         \
13671    "add r23, r0 \n\t"         \
13672    "adc r24, r1 \n\t"         \
13673    "adc r22, r25 \n\t"        \
13674    "mul r10, r16 \n\t"        \
13675    "add r23, r0 \n\t"         \
13676    "adc r24, r1 \n\t"         \
13677    "adc r22, r25 \n\t"        \
13678    "mul r11, r15 \n\t"        \
13679    "add r23, r0 \n\t"         \
13680    "adc r24, r1 \n\t"         \
13681    "adc r22, r25 \n\t"        \
13682    "mul r2, r14 \n\t"         \
13683    "add r23, r0 \n\t"         \
13684    "adc r24, r1 \n\t"         \
13685    "adc r22, r25 \n\t"        \
13686    "mul r3, r13 \n\t"         \
13687    "add r23, r0 \n\t"         \
13688    "adc r24, r1 \n\t"         \
13689    "adc r22, r25 \n\t"        \
13690    "ld r0, z \n\t"            \
13691    "add r23, r0 \n\t"         \
13692    "adc r24, r25 \n\t"        \
13693    "adc r22, r25 \n\t"        \
13694    "st z+, r23 \n\t"          \
13695                               \
13696    "ld r13, y+ \n\t"          \
13697    "ldi r23, 0 \n\t"          \
13698    "mul r4, r13 \n\t"         \
13699    "add r24, r0 \n\t"         \
13700    "adc r22, r1 \n\t"         \
13701    "adc r23, r25 \n\t"        \
13702    "mul r5, r12 \n\t"         \
13703    "add r24, r0 \n\t"         \
13704    "adc r22, r1 \n\t"         \
13705    "adc r23, r25 \n\t"        \
13706    "mul r6, r21 \n\t"         \
13707    "add r24, r0 \n\t"         \
13708    "adc r22, r1 \n\t"         \
13709    "adc r23, r25 \n\t"        \
13710    "mul r7, r20 \n\t"         \
13711    "add r24, r0 \n\t"         \
13712    "adc r22, r1 \n\t"         \
13713    "adc r23, r25 \n\t"        \
13714    "mul r8, r19 \n\t"         \
13715    "add r24, r0 \n\t"         \
13716    "adc r22, r1 \n\t"         \
13717    "adc r23, r25 \n\t"        \
13718    "mul r9, r18 \n\t"         \
13719    "add r24, r0 \n\t"         \
13720    "adc r22, r1 \n\t"         \
13721    "adc r23, r25 \n\t"        \
13722    "mul r10, r17 \n\t"        \
13723    "add r24, r0 \n\t"         \
13724    "adc r22, r1 \n\t"         \
13725    "adc r23, r25 \n\t"        \
13726    "mul r11, r16 \n\t"        \
13727    "add r24, r0 \n\t"         \
13728    "adc r22, r1 \n\t"         \
13729    "adc r23, r25 \n\t"        \
13730    "mul r2, r15 \n\t"         \
13731    "add r24, r0 \n\t"         \
13732    "adc r22, r1 \n\t"         \
13733    "adc r23, r25 \n\t"        \
13734    "mul r3, r14 \n\t"         \
13735    "add r24, r0 \n\t"         \
13736    "adc r22, r1 \n\t"         \
13737    "adc r23, r25 \n\t"        \
13738    "ld r0, z \n\t"            \
13739    "add r24, r0 \n\t"         \
13740    "adc r22, r25 \n\t"        \
13741    "adc r23, r25 \n\t"        \
13742    "st z+, r24 \n\t"          \
13743                               \
13744    "ldi r24, 0 \n\t"          \
13745    "mul r5, r13 \n\t"         \
13746    "add r22, r0 \n\t"         \
13747    "adc r23, r1 \n\t"         \
13748    "adc r24, r25 \n\t"        \
13749    "mul r6, r12 \n\t"         \
13750    "add r22, r0 \n\t"         \
13751    "adc r23, r1 \n\t"         \
13752    "adc r24, r25 \n\t"        \
13753    "mul r7, r21 \n\t"         \
13754    "add r22, r0 \n\t"         \
13755    "adc r23, r1 \n\t"         \
13756    "adc r24, r25 \n\t"        \
13757    "mul r8, r20 \n\t"         \
13758    "add r22, r0 \n\t"         \
13759    "adc r23, r1 \n\t"         \
13760    "adc r24, r25 \n\t"        \
13761    "mul r9, r19 \n\t"         \
13762    "add r22, r0 \n\t"         \
13763    "adc r23, r1 \n\t"         \
13764    "adc r24, r25 \n\t"        \
13765    "mul r10, r18 \n\t"        \
13766    "add r22, r0 \n\t"         \
13767    "adc r23, r1 \n\t"         \
13768    "adc r24, r25 \n\t"        \
13769    "mul r11, r17 \n\t"        \
13770    "add r22, r0 \n\t"         \
13771    "adc r23, r1 \n\t"         \
13772    "adc r24, r25 \n\t"        \
13773    "mul r2, r16 \n\t"         \
13774    "add r22, r0 \n\t"         \
13775    "adc r23, r1 \n\t"         \
13776    "adc r24, r25 \n\t"        \
13777    "mul r3, r15 \n\t"         \
13778    "add r22, r0 \n\t"         \
13779    "adc r23, r1 \n\t"         \
13780    "adc r24, r25 \n\t"        \
13781    "st z+, r22 \n\t"          \
13782                               \
13783    "ldi r22, 0 \n\t"          \
13784    "mul r6, r13 \n\t"         \
13785    "add r23, r0 \n\t"         \
13786    "adc r24, r1 \n\t"         \
13787    "adc r22, r25 \n\t"        \
13788    "mul r7, r12 \n\t"         \
13789    "add r23, r0 \n\t"         \
13790    "adc r24, r1 \n\t"         \
13791    "adc r22, r25 \n\t"        \
13792    "mul r8, r21 \n\t"         \
13793    "add r23, r0 \n\t"         \
13794    "adc r24, r1 \n\t"         \
13795    "adc r22, r25 \n\t"        \
13796    "mul r9, r20 \n\t"         \
13797    "add r23, r0 \n\t"         \
13798    "adc r24, r1 \n\t"         \
13799    "adc r22, r25 \n\t"        \
13800    "mul r10, r19 \n\t"        \
13801    "add r23, r0 \n\t"         \
13802    "adc r24, r1 \n\t"         \
13803    "adc r22, r25 \n\t"        \
13804    "mul r11, r18 \n\t"        \
13805    "add r23, r0 \n\t"         \
13806    "adc r24, r1 \n\t"         \
13807    "adc r22, r25 \n\t"        \
13808    "mul r2, r17 \n\t"         \
13809    "add r23, r0 \n\t"         \
13810    "adc r24, r1 \n\t"         \
13811    "adc r22, r25 \n\t"        \
13812    "mul r3, r16 \n\t"         \
13813    "add r23, r0 \n\t"         \
13814    "adc r24, r1 \n\t"         \
13815    "adc r22, r25 \n\t"        \
13816    "st z+, r23 \n\t"          \
13817                               \
13818    "ldi r23, 0 \n\t"          \
13819    "mul r7, r13 \n\t"         \
13820    "add r24, r0 \n\t"         \
13821    "adc r22, r1 \n\t"         \
13822    "adc r23, r25 \n\t"        \
13823    "mul r8, r12 \n\t"         \
13824    "add r24, r0 \n\t"         \
13825    "adc r22, r1 \n\t"         \
13826    "adc r23, r25 \n\t"        \
13827    "mul r9, r21 \n\t"         \
13828    "add r24, r0 \n\t"         \
13829    "adc r22, r1 \n\t"         \
13830    "adc r23, r25 \n\t"        \
13831    "mul r10, r20 \n\t"        \
13832    "add r24, r0 \n\t"         \
13833    "adc r22, r1 \n\t"         \
13834    "adc r23, r25 \n\t"        \
13835    "mul r11, r19 \n\t"        \
13836    "add r24, r0 \n\t"         \
13837    "adc r22, r1 \n\t"         \
13838    "adc r23, r25 \n\t"        \
13839    "mul r2, r18 \n\t"         \
13840    "add r24, r0 \n\t"         \
13841    "adc r22, r1 \n\t"         \
13842    "adc r23, r25 \n\t"        \
13843    "mul r3, r17 \n\t"         \
13844    "add r24, r0 \n\t"         \
13845    "adc r22, r1 \n\t"         \
13846    "adc r23, r25 \n\t"        \
13847    "st z+, r24 \n\t"          \
13848                               \
13849    "ldi r24, 0 \n\t"          \
13850    "mul r8, r13 \n\t"         \
13851    "add r22, r0 \n\t"         \
13852    "adc r23, r1 \n\t"         \
13853    "adc r24, r25 \n\t"        \
13854    "mul r9, r12 \n\t"         \
13855    "add r22, r0 \n\t"         \
13856    "adc r23, r1 \n\t"         \
13857    "adc r24, r25 \n\t"        \
13858    "mul r10, r21 \n\t"        \
13859    "add r22, r0 \n\t"         \
13860    "adc r23, r1 \n\t"         \
13861    "adc r24, r25 \n\t"        \
13862    "mul r11, r20 \n\t"        \
13863    "add r22, r0 \n\t"         \
13864    "adc r23, r1 \n\t"         \
13865    "adc r24, r25 \n\t"        \
13866    "mul r2, r19 \n\t"         \
13867    "add r22, r0 \n\t"         \
13868    "adc r23, r1 \n\t"         \
13869    "adc r24, r25 \n\t"        \
13870    "mul r3, r18 \n\t"         \
13871    "add r22, r0 \n\t"         \
13872    "adc r23, r1 \n\t"         \
13873    "adc r24, r25 \n\t"        \
13874    "st z+, r22 \n\t"          \
13875                               \
13876    "ldi r22, 0 \n\t"          \
13877    "mul r9, r13 \n\t"         \
13878    "add r23, r0 \n\t"         \
13879    "adc r24, r1 \n\t"         \
13880    "adc r22, r25 \n\t"        \
13881    "mul r10, r12 \n\t"        \
13882    "add r23, r0 \n\t"         \
13883    "adc r24, r1 \n\t"         \
13884    "adc r22, r25 \n\t"        \
13885    "mul r11, r21 \n\t"        \
13886    "add r23, r0 \n\t"         \
13887    "adc r24, r1 \n\t"         \
13888    "adc r22, r25 \n\t"        \
13889    "mul r2, r20 \n\t"         \
13890    "add r23, r0 \n\t"         \
13891    "adc r24, r1 \n\t"         \
13892    "adc r22, r25 \n\t"        \
13893    "mul r3, r19 \n\t"         \
13894    "add r23, r0 \n\t"         \
13895    "adc r24, r1 \n\t"         \
13896    "adc r22, r25 \n\t"        \
13897    "st z+, r23 \n\t"          \
13898                               \
13899    "ldi r23, 0 \n\t"          \
13900    "mul r10, r13 \n\t"        \
13901    "add r24, r0 \n\t"         \
13902    "adc r22, r1 \n\t"         \
13903    "adc r23, r25 \n\t"        \
13904    "mul r11, r12 \n\t"        \
13905    "add r24, r0 \n\t"         \
13906    "adc r22, r1 \n\t"         \
13907    "adc r23, r25 \n\t"        \
13908    "mul r2, r21 \n\t"         \
13909    "add r24, r0 \n\t"         \
13910    "adc r22, r1 \n\t"         \
13911    "adc r23, r25 \n\t"        \
13912    "mul r3, r20 \n\t"         \
13913    "add r24, r0 \n\t"         \
13914    "adc r22, r1 \n\t"         \
13915    "adc r23, r25 \n\t"        \
13916    "st z+, r24 \n\t"          \
13917                               \
13918    "ldi r24, 0 \n\t"          \
13919    "mul r11, r13 \n\t"        \
13920    "add r22, r0 \n\t"         \
13921    "adc r23, r1 \n\t"         \
13922    "adc r24, r25 \n\t"        \
13923    "mul r2, r12 \n\t"         \
13924    "add r22, r0 \n\t"         \
13925    "adc r23, r1 \n\t"         \
13926    "adc r24, r25 \n\t"        \
13927    "mul r3, r21 \n\t"         \
13928    "add r22, r0 \n\t"         \
13929    "adc r23, r1 \n\t"         \
13930    "adc r24, r25 \n\t"        \
13931    "st z+, r22 \n\t"          \
13932                               \
13933    "ldi r22, 0 \n\t"          \
13934    "mul r2, r13 \n\t"         \
13935    "add r23, r0 \n\t"         \
13936    "adc r24, r1 \n\t"         \
13937    "adc r22, r25 \n\t"        \
13938    "mul r3, r12 \n\t"         \
13939    "add r23, r0 \n\t"         \
13940    "adc r24, r1 \n\t"         \
13941    "adc r22, r25 \n\t"        \
13942    "st z+, r23 \n\t"          \
13943                               \
13944    "mul r3, r13 \n\t"         \
13945    "add r24, r0 \n\t"         \
13946    "adc r22, r1 \n\t"         \
13947    "st z+, r24 \n\t"          \
13948    "st z+, r22 \n\t"          \
13949                               \
13950    "sbiw r30, 54 \n\t"        \
13951    "sbiw r28, 32 \n\t"        \
13952    "sbiw r26, 22 \n\t"        \
13953    "ld r2, x+ \n\t"           \
13954    "ld r12, y+ \n\t"          \
13955    "ld r3, x+ \n\t"           \
13956    "ld r13, y+ \n\t"          \
13957    "ld r4, x+ \n\t"           \
13958    "ld r14, y+ \n\t"          \
13959    "ld r5, x+ \n\t"           \
13960    "ld r15, y+ \n\t"          \
13961    "ld r6, x+ \n\t"           \
13962    "ld r16, y+ \n\t"          \
13963    "ld r7, x+ \n\t"           \
13964    "ld r17, y+ \n\t"          \
13965    "ld r8, x+ \n\t"           \
13966    "ld r18, y+ \n\t"          \
13967    "ld r9, x+ \n\t"           \
13968    "ld r19, y+ \n\t"          \
13969    "ld r10, x+ \n\t"          \
13970    "ld r20, y+ \n\t"          \
13971    "ld r11, x+ \n\t"          \
13972    "ld r21, y+ \n\t"          \
13973                               \
13974    "ldi r23, 0 \n\t"          \
13975    "mul r2, r12 \n\t"         \
13976    "st z+, r0 \n\t"           \
13977    "mov r22, r1 \n\t"         \
13978                               \
13979    "ldi r24, 0 \n\t"          \
13980    "mul r2, r13 \n\t"         \
13981    "add r22, r0 \n\t"         \
13982    "adc r23, r1 \n\t"         \
13983    "mul r3, r12 \n\t"         \
13984    "add r22, r0 \n\t"         \
13985    "adc r23, r1 \n\t"         \
13986    "adc r24, r25 \n\t"        \
13987    "st z+, r22 \n\t"          \
13988                               \
13989    "ldi r22, 0 \n\t"          \
13990    "mul r2, r14 \n\t"         \
13991    "add r23, r0 \n\t"         \
13992    "adc r24, r1 \n\t"         \
13993    "adc r22, r25 \n\t"        \
13994    "mul r3, r13 \n\t"         \
13995    "add r23, r0 \n\t"         \
13996    "adc r24, r1 \n\t"         \
13997    "adc r22, r25 \n\t"        \
13998    "mul r4, r12 \n\t"         \
13999    "add r23, r0 \n\t"         \
14000    "adc r24, r1 \n\t"         \
14001    "adc r22, r25 \n\t"        \
14002    "st z+, r23 \n\t"          \
14003                               \
14004    "ldi r23, 0 \n\t"          \
14005    "mul r2, r15 \n\t"         \
14006    "add r24, r0 \n\t"         \
14007    "adc r22, r1 \n\t"         \
14008    "adc r23, r25 \n\t"        \
14009    "mul r3, r14 \n\t"         \
14010    "add r24, r0 \n\t"         \
14011    "adc r22, r1 \n\t"         \
14012    "adc r23, r25 \n\t"        \
14013    "mul r4, r13 \n\t"         \
14014    "add r24, r0 \n\t"         \
14015    "adc r22, r1 \n\t"         \
14016    "adc r23, r25 \n\t"        \
14017    "mul r5, r12 \n\t"         \
14018    "add r24, r0 \n\t"         \
14019    "adc r22, r1 \n\t"         \
14020    "adc r23, r25 \n\t"        \
14021    "st z+, r24 \n\t"          \
14022                               \
14023    "ldi r24, 0 \n\t"          \
14024    "mul r2, r16 \n\t"         \
14025    "add r22, r0 \n\t"         \
14026    "adc r23, r1 \n\t"         \
14027    "adc r24, r25 \n\t"        \
14028    "mul r3, r15 \n\t"         \
14029    "add r22, r0 \n\t"         \
14030    "adc r23, r1 \n\t"         \
14031    "adc r24, r25 \n\t"        \
14032    "mul r4, r14 \n\t"         \
14033    "add r22, r0 \n\t"         \
14034    "adc r23, r1 \n\t"         \
14035    "adc r24, r25 \n\t"        \
14036    "mul r5, r13 \n\t"         \
14037    "add r22, r0 \n\t"         \
14038    "adc r23, r1 \n\t"         \
14039    "adc r24, r25 \n\t"        \
14040    "mul r6, r12 \n\t"         \
14041    "add r22, r0 \n\t"         \
14042    "adc r23, r1 \n\t"         \
14043    "adc r24, r25 \n\t"        \
14044    "st z+, r22 \n\t"          \
14045                               \
14046    "ldi r22, 0 \n\t"          \
14047    "mul r2, r17 \n\t"         \
14048    "add r23, r0 \n\t"         \
14049    "adc r24, r1 \n\t"         \
14050    "adc r22, r25 \n\t"        \
14051    "mul r3, r16 \n\t"         \
14052    "add r23, r0 \n\t"         \
14053    "adc r24, r1 \n\t"         \
14054    "adc r22, r25 \n\t"        \
14055    "mul r4, r15 \n\t"         \
14056    "add r23, r0 \n\t"         \
14057    "adc r24, r1 \n\t"         \
14058    "adc r22, r25 \n\t"        \
14059    "mul r5, r14 \n\t"         \
14060    "add r23, r0 \n\t"         \
14061    "adc r24, r1 \n\t"         \
14062    "adc r22, r25 \n\t"        \
14063    "mul r6, r13 \n\t"         \
14064    "add r23, r0 \n\t"         \
14065    "adc r24, r1 \n\t"         \
14066    "adc r22, r25 \n\t"        \
14067    "mul r7, r12 \n\t"         \
14068    "add r23, r0 \n\t"         \
14069    "adc r24, r1 \n\t"         \
14070    "adc r22, r25 \n\t"        \
14071    "st z+, r23 \n\t"          \
14072                               \
14073    "ldi r23, 0 \n\t"          \
14074    "mul r2, r18 \n\t"         \
14075    "add r24, r0 \n\t"         \
14076    "adc r22, r1 \n\t"         \
14077    "adc r23, r25 \n\t"        \
14078    "mul r3, r17 \n\t"         \
14079    "add r24, r0 \n\t"         \
14080    "adc r22, r1 \n\t"         \
14081    "adc r23, r25 \n\t"        \
14082    "mul r4, r16 \n\t"         \
14083    "add r24, r0 \n\t"         \
14084    "adc r22, r1 \n\t"         \
14085    "adc r23, r25 \n\t"        \
14086    "mul r5, r15 \n\t"         \
14087    "add r24, r0 \n\t"         \
14088    "adc r22, r1 \n\t"         \
14089    "adc r23, r25 \n\t"        \
14090    "mul r6, r14 \n\t"         \
14091    "add r24, r0 \n\t"         \
14092    "adc r22, r1 \n\t"         \
14093    "adc r23, r25 \n\t"        \
14094    "mul r7, r13 \n\t"         \
14095    "add r24, r0 \n\t"         \
14096    "adc r22, r1 \n\t"         \
14097    "adc r23, r25 \n\t"        \
14098    "mul r8, r12 \n\t"         \
14099    "add r24, r0 \n\t"         \
14100    "adc r22, r1 \n\t"         \
14101    "adc r23, r25 \n\t"        \
14102    "st z+, r24 \n\t"          \
14103                               \
14104    "ldi r24, 0 \n\t"          \
14105    "mul r2, r19 \n\t"         \
14106    "add r22, r0 \n\t"         \
14107    "adc r23, r1 \n\t"         \
14108    "adc r24, r25 \n\t"        \
14109    "mul r3, r18 \n\t"         \
14110    "add r22, r0 \n\t"         \
14111    "adc r23, r1 \n\t"         \
14112    "adc r24, r25 \n\t"        \
14113    "mul r4, r17 \n\t"         \
14114    "add r22, r0 \n\t"         \
14115    "adc r23, r1 \n\t"         \
14116    "adc r24, r25 \n\t"        \
14117    "mul r5, r16 \n\t"         \
14118    "add r22, r0 \n\t"         \
14119    "adc r23, r1 \n\t"         \
14120    "adc r24, r25 \n\t"        \
14121    "mul r6, r15 \n\t"         \
14122    "add r22, r0 \n\t"         \
14123    "adc r23, r1 \n\t"         \
14124    "adc r24, r25 \n\t"        \
14125    "mul r7, r14 \n\t"         \
14126    "add r22, r0 \n\t"         \
14127    "adc r23, r1 \n\t"         \
14128    "adc r24, r25 \n\t"        \
14129    "mul r8, r13 \n\t"         \
14130    "add r22, r0 \n\t"         \
14131    "adc r23, r1 \n\t"         \
14132    "adc r24, r25 \n\t"        \
14133    "mul r9, r12 \n\t"         \
14134    "add r22, r0 \n\t"         \
14135    "adc r23, r1 \n\t"         \
14136    "adc r24, r25 \n\t"        \
14137    "st z+, r22 \n\t"          \
14138                               \
14139    "ldi r22, 0 \n\t"          \
14140    "mul r2, r20 \n\t"         \
14141    "add r23, r0 \n\t"         \
14142    "adc r24, r1 \n\t"         \
14143    "adc r22, r25 \n\t"        \
14144    "mul r3, r19 \n\t"         \
14145    "add r23, r0 \n\t"         \
14146    "adc r24, r1 \n\t"         \
14147    "adc r22, r25 \n\t"        \
14148    "mul r4, r18 \n\t"         \
14149    "add r23, r0 \n\t"         \
14150    "adc r24, r1 \n\t"         \
14151    "adc r22, r25 \n\t"        \
14152    "mul r5, r17 \n\t"         \
14153    "add r23, r0 \n\t"         \
14154    "adc r24, r1 \n\t"         \
14155    "adc r22, r25 \n\t"        \
14156    "mul r6, r16 \n\t"         \
14157    "add r23, r0 \n\t"         \
14158    "adc r24, r1 \n\t"         \
14159    "adc r22, r25 \n\t"        \
14160    "mul r7, r15 \n\t"         \
14161    "add r23, r0 \n\t"         \
14162    "adc r24, r1 \n\t"         \
14163    "adc r22, r25 \n\t"        \
14164    "mul r8, r14 \n\t"         \
14165    "add r23, r0 \n\t"         \
14166    "adc r24, r1 \n\t"         \
14167    "adc r22, r25 \n\t"        \
14168    "mul r9, r13 \n\t"         \
14169    "add r23, r0 \n\t"         \
14170    "adc r24, r1 \n\t"         \
14171    "adc r22, r25 \n\t"        \
14172    "mul r10, r12 \n\t"        \
14173    "add r23, r0 \n\t"         \
14174    "adc r24, r1 \n\t"         \
14175    "adc r22, r25 \n\t"        \
14176    "st z+, r23 \n\t"          \
14177                               \
14178    "ldi r23, 0 \n\t"          \
14179    "mul r2, r21 \n\t"         \
14180    "add r24, r0 \n\t"         \
14181    "adc r22, r1 \n\t"         \
14182    "adc r23, r25 \n\t"        \
14183    "mul r3, r20 \n\t"         \
14184    "add r24, r0 \n\t"         \
14185    "adc r22, r1 \n\t"         \
14186    "adc r23, r25 \n\t"        \
14187    "mul r4, r19 \n\t"         \
14188    "add r24, r0 \n\t"         \
14189    "adc r22, r1 \n\t"         \
14190    "adc r23, r25 \n\t"        \
14191    "mul r5, r18 \n\t"         \
14192    "add r24, r0 \n\t"         \
14193    "adc r22, r1 \n\t"         \
14194    "adc r23, r25 \n\t"        \
14195    "mul r6, r17 \n\t"         \
14196    "add r24, r0 \n\t"         \
14197    "adc r22, r1 \n\t"         \
14198    "adc r23, r25 \n\t"        \
14199    "mul r7, r16 \n\t"         \
14200    "add r24, r0 \n\t"         \
14201    "adc r22, r1 \n\t"         \
14202    "adc r23, r25 \n\t"        \
14203    "mul r8, r15 \n\t"         \
14204    "add r24, r0 \n\t"         \
14205    "adc r22, r1 \n\t"         \
14206    "adc r23, r25 \n\t"        \
14207    "mul r9, r14 \n\t"         \
14208    "add r24, r0 \n\t"         \
14209    "adc r22, r1 \n\t"         \
14210    "adc r23, r25 \n\t"        \
14211    "mul r10, r13 \n\t"        \
14212    "add r24, r0 \n\t"         \
14213    "adc r22, r1 \n\t"         \
14214    "adc r23, r25 \n\t"        \
14215    "mul r11, r12 \n\t"        \
14216    "add r24, r0 \n\t"         \
14217    "adc r22, r1 \n\t"         \
14218    "adc r23, r25 \n\t"        \
14219    "st z+, r24 \n\t"          \
14220                               \
14221    "ld r2, x+ \n\t"           \
14222    "ldi r24, 0 \n\t"          \
14223    "mul r3, r21 \n\t"         \
14224    "add r22, r0 \n\t"         \
14225    "adc r23, r1 \n\t"         \
14226    "adc r24, r25 \n\t"        \
14227    "mul r4, r20 \n\t"         \
14228    "add r22, r0 \n\t"         \
14229    "adc r23, r1 \n\t"         \
14230    "adc r24, r25 \n\t"        \
14231    "mul r5, r19 \n\t"         \
14232    "add r22, r0 \n\t"         \
14233    "adc r23, r1 \n\t"         \
14234    "adc r24, r25 \n\t"        \
14235    "mul r6, r18 \n\t"         \
14236    "add r22, r0 \n\t"         \
14237    "adc r23, r1 \n\t"         \
14238    "adc r24, r25 \n\t"        \
14239    "mul r7, r17 \n\t"         \
14240    "add r22, r0 \n\t"         \
14241    "adc r23, r1 \n\t"         \
14242    "adc r24, r25 \n\t"        \
14243    "mul r8, r16 \n\t"         \
14244    "add r22, r0 \n\t"         \
14245    "adc r23, r1 \n\t"         \
14246    "adc r24, r25 \n\t"        \
14247    "mul r9, r15 \n\t"         \
14248    "add r22, r0 \n\t"         \
14249    "adc r23, r1 \n\t"         \
14250    "adc r24, r25 \n\t"        \
14251    "mul r10, r14 \n\t"        \
14252    "add r22, r0 \n\t"         \
14253    "adc r23, r1 \n\t"         \
14254    "adc r24, r25 \n\t"        \
14255    "mul r11, r13 \n\t"        \
14256    "add r22, r0 \n\t"         \
14257    "adc r23, r1 \n\t"         \
14258    "adc r24, r25 \n\t"        \
14259    "mul r2, r12 \n\t"         \
14260    "add r22, r0 \n\t"         \
14261    "adc r23, r1 \n\t"         \
14262    "adc r24, r25 \n\t"        \
14263    "ld r0, z \n\t"            \
14264    "add r22, r0 \n\t"         \
14265    "adc r23, r25 \n\t"        \
14266    "adc r24, r25 \n\t"        \
14267    "st z+, r22 \n\t"          \
14268                               \
14269    "ld r3, x+ \n\t"           \
14270    "ldi r22, 0 \n\t"          \
14271    "mul r4, r21 \n\t"         \
14272    "add r23, r0 \n\t"         \
14273    "adc r24, r1 \n\t"         \
14274    "adc r22, r25 \n\t"        \
14275    "mul r5, r20 \n\t"         \
14276    "add r23, r0 \n\t"         \
14277    "adc r24, r1 \n\t"         \
14278    "adc r22, r25 \n\t"        \
14279    "mul r6, r19 \n\t"         \
14280    "add r23, r0 \n\t"         \
14281    "adc r24, r1 \n\t"         \
14282    "adc r22, r25 \n\t"        \
14283    "mul r7, r18 \n\t"         \
14284    "add r23, r0 \n\t"         \
14285    "adc r24, r1 \n\t"         \
14286    "adc r22, r25 \n\t"        \
14287    "mul r8, r17 \n\t"         \
14288    "add r23, r0 \n\t"         \
14289    "adc r24, r1 \n\t"         \
14290    "adc r22, r25 \n\t"        \
14291    "mul r9, r16 \n\t"         \
14292    "add r23, r0 \n\t"         \
14293    "adc r24, r1 \n\t"         \
14294    "adc r22, r25 \n\t"        \
14295    "mul r10, r15 \n\t"        \
14296    "add r23, r0 \n\t"         \
14297    "adc r24, r1 \n\t"         \
14298    "adc r22, r25 \n\t"        \
14299    "mul r11, r14 \n\t"        \
14300    "add r23, r0 \n\t"         \
14301    "adc r24, r1 \n\t"         \
14302    "adc r22, r25 \n\t"        \
14303    "mul r2, r13 \n\t"         \
14304    "add r23, r0 \n\t"         \
14305    "adc r24, r1 \n\t"         \
14306    "adc r22, r25 \n\t"        \
14307    "mul r3, r12 \n\t"         \
14308    "add r23, r0 \n\t"         \
14309    "adc r24, r1 \n\t"         \
14310    "adc r22, r25 \n\t"        \
14311    "ld r0, z \n\t"            \
14312    "add r23, r0 \n\t"         \
14313    "adc r24, r25 \n\t"        \
14314    "adc r22, r25 \n\t"        \
14315    "st z+, r23 \n\t"          \
14316                               \
14317    "ld r4, x+ \n\t"           \
14318    "ldi r23, 0 \n\t"          \
14319    "mul r5, r21 \n\t"         \
14320    "add r24, r0 \n\t"         \
14321    "adc r22, r1 \n\t"         \
14322    "adc r23, r25 \n\t"        \
14323    "mul r6, r20 \n\t"         \
14324    "add r24, r0 \n\t"         \
14325    "adc r22, r1 \n\t"         \
14326    "adc r23, r25 \n\t"        \
14327    "mul r7, r19 \n\t"         \
14328    "add r24, r0 \n\t"         \
14329    "adc r22, r1 \n\t"         \
14330    "adc r23, r25 \n\t"        \
14331    "mul r8, r18 \n\t"         \
14332    "add r24, r0 \n\t"         \
14333    "adc r22, r1 \n\t"         \
14334    "adc r23, r25 \n\t"        \
14335    "mul r9, r17 \n\t"         \
14336    "add r24, r0 \n\t"         \
14337    "adc r22, r1 \n\t"         \
14338    "adc r23, r25 \n\t"        \
14339    "mul r10, r16 \n\t"        \
14340    "add r24, r0 \n\t"         \
14341    "adc r22, r1 \n\t"         \
14342    "adc r23, r25 \n\t"        \
14343    "mul r11, r15 \n\t"        \
14344    "add r24, r0 \n\t"         \
14345    "adc r22, r1 \n\t"         \
14346    "adc r23, r25 \n\t"        \
14347    "mul r2, r14 \n\t"         \
14348    "add r24, r0 \n\t"         \
14349    "adc r22, r1 \n\t"         \
14350    "adc r23, r25 \n\t"        \
14351    "mul r3, r13 \n\t"         \
14352    "add r24, r0 \n\t"         \
14353    "adc r22, r1 \n\t"         \
14354    "adc r23, r25 \n\t"        \
14355    "mul r4, r12 \n\t"         \
14356    "add r24, r0 \n\t"         \
14357    "adc r22, r1 \n\t"         \
14358    "adc r23, r25 \n\t"        \
14359    "ld r0, z \n\t"            \
14360    "add r24, r0 \n\t"         \
14361    "adc r22, r25 \n\t"        \
14362    "adc r23, r25 \n\t"        \
14363    "st z+, r24 \n\t"          \
14364                               \
14365    "ld r5, x+ \n\t"           \
14366    "ldi r24, 0 \n\t"          \
14367    "mul r6, r21 \n\t"         \
14368    "add r22, r0 \n\t"         \
14369    "adc r23, r1 \n\t"         \
14370    "adc r24, r25 \n\t"        \
14371    "mul r7, r20 \n\t"         \
14372    "add r22, r0 \n\t"         \
14373    "adc r23, r1 \n\t"         \
14374    "adc r24, r25 \n\t"        \
14375    "mul r8, r19 \n\t"         \
14376    "add r22, r0 \n\t"         \
14377    "adc r23, r1 \n\t"         \
14378    "adc r24, r25 \n\t"        \
14379    "mul r9, r18 \n\t"         \
14380    "add r22, r0 \n\t"         \
14381    "adc r23, r1 \n\t"         \
14382    "adc r24, r25 \n\t"        \
14383    "mul r10, r17 \n\t"        \
14384    "add r22, r0 \n\t"         \
14385    "adc r23, r1 \n\t"         \
14386    "adc r24, r25 \n\t"        \
14387    "mul r11, r16 \n\t"        \
14388    "add r22, r0 \n\t"         \
14389    "adc r23, r1 \n\t"         \
14390    "adc r24, r25 \n\t"        \
14391    "mul r2, r15 \n\t"         \
14392    "add r22, r0 \n\t"         \
14393    "adc r23, r1 \n\t"         \
14394    "adc r24, r25 \n\t"        \
14395    "mul r3, r14 \n\t"         \
14396    "add r22, r0 \n\t"         \
14397    "adc r23, r1 \n\t"         \
14398    "adc r24, r25 \n\t"        \
14399    "mul r4, r13 \n\t"         \
14400    "add r22, r0 \n\t"         \
14401    "adc r23, r1 \n\t"         \
14402    "adc r24, r25 \n\t"        \
14403    "mul r5, r12 \n\t"         \
14404    "add r22, r0 \n\t"         \
14405    "adc r23, r1 \n\t"         \
14406    "adc r24, r25 \n\t"        \
14407    "ld r0, z \n\t"            \
14408    "add r22, r0 \n\t"         \
14409    "adc r23, r25 \n\t"        \
14410    "adc r24, r25 \n\t"        \
14411    "st z+, r22 \n\t"          \
14412                               \
14413    "ld r6, x+ \n\t"           \
14414    "ldi r22, 0 \n\t"          \
14415    "mul r7, r21 \n\t"         \
14416    "add r23, r0 \n\t"         \
14417    "adc r24, r1 \n\t"         \
14418    "adc r22, r25 \n\t"        \
14419    "mul r8, r20 \n\t"         \
14420    "add r23, r0 \n\t"         \
14421    "adc r24, r1 \n\t"         \
14422    "adc r22, r25 \n\t"        \
14423    "mul r9, r19 \n\t"         \
14424    "add r23, r0 \n\t"         \
14425    "adc r24, r1 \n\t"         \
14426    "adc r22, r25 \n\t"        \
14427    "mul r10, r18 \n\t"        \
14428    "add r23, r0 \n\t"         \
14429    "adc r24, r1 \n\t"         \
14430    "adc r22, r25 \n\t"        \
14431    "mul r11, r17 \n\t"        \
14432    "add r23, r0 \n\t"         \
14433    "adc r24, r1 \n\t"         \
14434    "adc r22, r25 \n\t"        \
14435    "mul r2, r16 \n\t"         \
14436    "add r23, r0 \n\t"         \
14437    "adc r24, r1 \n\t"         \
14438    "adc r22, r25 \n\t"        \
14439    "mul r3, r15 \n\t"         \
14440    "add r23, r0 \n\t"         \
14441    "adc r24, r1 \n\t"         \
14442    "adc r22, r25 \n\t"        \
14443    "mul r4, r14 \n\t"         \
14444    "add r23, r0 \n\t"         \
14445    "adc r24, r1 \n\t"         \
14446    "adc r22, r25 \n\t"        \
14447    "mul r5, r13 \n\t"         \
14448    "add r23, r0 \n\t"         \
14449    "adc r24, r1 \n\t"         \
14450    "adc r22, r25 \n\t"        \
14451    "mul r6, r12 \n\t"         \
14452    "add r23, r0 \n\t"         \
14453    "adc r24, r1 \n\t"         \
14454    "adc r22, r25 \n\t"        \
14455    "ld r0, z \n\t"            \
14456    "add r23, r0 \n\t"         \
14457    "adc r24, r25 \n\t"        \
14458    "adc r22, r25 \n\t"        \
14459    "st z+, r23 \n\t"          \
14460                               \
14461    "ld r7, x+ \n\t"           \
14462    "ldi r23, 0 \n\t"          \
14463    "mul r8, r21 \n\t"         \
14464    "add r24, r0 \n\t"         \
14465    "adc r22, r1 \n\t"         \
14466    "adc r23, r25 \n\t"        \
14467    "mul r9, r20 \n\t"         \
14468    "add r24, r0 \n\t"         \
14469    "adc r22, r1 \n\t"         \
14470    "adc r23, r25 \n\t"        \
14471    "mul r10, r19 \n\t"        \
14472    "add r24, r0 \n\t"         \
14473    "adc r22, r1 \n\t"         \
14474    "adc r23, r25 \n\t"        \
14475    "mul r11, r18 \n\t"        \
14476    "add r24, r0 \n\t"         \
14477    "adc r22, r1 \n\t"         \
14478    "adc r23, r25 \n\t"        \
14479    "mul r2, r17 \n\t"         \
14480    "add r24, r0 \n\t"         \
14481    "adc r22, r1 \n\t"         \
14482    "adc r23, r25 \n\t"        \
14483    "mul r3, r16 \n\t"         \
14484    "add r24, r0 \n\t"         \
14485    "adc r22, r1 \n\t"         \
14486    "adc r23, r25 \n\t"        \
14487    "mul r4, r15 \n\t"         \
14488    "add r24, r0 \n\t"         \
14489    "adc r22, r1 \n\t"         \
14490    "adc r23, r25 \n\t"        \
14491    "mul r5, r14 \n\t"         \
14492    "add r24, r0 \n\t"         \
14493    "adc r22, r1 \n\t"         \
14494    "adc r23, r25 \n\t"        \
14495    "mul r6, r13 \n\t"         \
14496    "add r24, r0 \n\t"         \
14497    "adc r22, r1 \n\t"         \
14498    "adc r23, r25 \n\t"        \
14499    "mul r7, r12 \n\t"         \
14500    "add r24, r0 \n\t"         \
14501    "adc r22, r1 \n\t"         \
14502    "adc r23, r25 \n\t"        \
14503    "ld r0, z \n\t"            \
14504    "add r24, r0 \n\t"         \
14505    "adc r22, r25 \n\t"        \
14506    "adc r23, r25 \n\t"        \
14507    "st z+, r24 \n\t"          \
14508                               \
14509    "ld r8, x+ \n\t"           \
14510    "ldi r24, 0 \n\t"          \
14511    "mul r9, r21 \n\t"         \
14512    "add r22, r0 \n\t"         \
14513    "adc r23, r1 \n\t"         \
14514    "adc r24, r25 \n\t"        \
14515    "mul r10, r20 \n\t"        \
14516    "add r22, r0 \n\t"         \
14517    "adc r23, r1 \n\t"         \
14518    "adc r24, r25 \n\t"        \
14519    "mul r11, r19 \n\t"        \
14520    "add r22, r0 \n\t"         \
14521    "adc r23, r1 \n\t"         \
14522    "adc r24, r25 \n\t"        \
14523    "mul r2, r18 \n\t"         \
14524    "add r22, r0 \n\t"         \
14525    "adc r23, r1 \n\t"         \
14526    "adc r24, r25 \n\t"        \
14527    "mul r3, r17 \n\t"         \
14528    "add r22, r0 \n\t"         \
14529    "adc r23, r1 \n\t"         \
14530    "adc r24, r25 \n\t"        \
14531    "mul r4, r16 \n\t"         \
14532    "add r22, r0 \n\t"         \
14533    "adc r23, r1 \n\t"         \
14534    "adc r24, r25 \n\t"        \
14535    "mul r5, r15 \n\t"         \
14536    "add r22, r0 \n\t"         \
14537    "adc r23, r1 \n\t"         \
14538    "adc r24, r25 \n\t"        \
14539    "mul r6, r14 \n\t"         \
14540    "add r22, r0 \n\t"         \
14541    "adc r23, r1 \n\t"         \
14542    "adc r24, r25 \n\t"        \
14543    "mul r7, r13 \n\t"         \
14544    "add r22, r0 \n\t"         \
14545    "adc r23, r1 \n\t"         \
14546    "adc r24, r25 \n\t"        \
14547    "mul r8, r12 \n\t"         \
14548    "add r22, r0 \n\t"         \
14549    "adc r23, r1 \n\t"         \
14550    "adc r24, r25 \n\t"        \
14551    "ld r0, z \n\t"            \
14552    "add r22, r0 \n\t"         \
14553    "adc r23, r25 \n\t"        \
14554    "adc r24, r25 \n\t"        \
14555    "st z+, r22 \n\t"          \
14556                               \
14557    "ld r9, x+ \n\t"           \
14558    "ldi r22, 0 \n\t"          \
14559    "mul r10, r21 \n\t"        \
14560    "add r23, r0 \n\t"         \
14561    "adc r24, r1 \n\t"         \
14562    "adc r22, r25 \n\t"        \
14563    "mul r11, r20 \n\t"        \
14564    "add r23, r0 \n\t"         \
14565    "adc r24, r1 \n\t"         \
14566    "adc r22, r25 \n\t"        \
14567    "mul r2, r19 \n\t"         \
14568    "add r23, r0 \n\t"         \
14569    "adc r24, r1 \n\t"         \
14570    "adc r22, r25 \n\t"        \
14571    "mul r3, r18 \n\t"         \
14572    "add r23, r0 \n\t"         \
14573    "adc r24, r1 \n\t"         \
14574    "adc r22, r25 \n\t"        \
14575    "mul r4, r17 \n\t"         \
14576    "add r23, r0 \n\t"         \
14577    "adc r24, r1 \n\t"         \
14578    "adc r22, r25 \n\t"        \
14579    "mul r5, r16 \n\t"         \
14580    "add r23, r0 \n\t"         \
14581    "adc r24, r1 \n\t"         \
14582    "adc r22, r25 \n\t"        \
14583    "mul r6, r15 \n\t"         \
14584    "add r23, r0 \n\t"         \
14585    "adc r24, r1 \n\t"         \
14586    "adc r22, r25 \n\t"        \
14587    "mul r7, r14 \n\t"         \
14588    "add r23, r0 \n\t"         \
14589    "adc r24, r1 \n\t"         \
14590    "adc r22, r25 \n\t"        \
14591    "mul r8, r13 \n\t"         \
14592    "add r23, r0 \n\t"         \
14593    "adc r24, r1 \n\t"         \
14594    "adc r22, r25 \n\t"        \
14595    "mul r9, r12 \n\t"         \
14596    "add r23, r0 \n\t"         \
14597    "adc r24, r1 \n\t"         \
14598    "adc r22, r25 \n\t"        \
14599    "ld r0, z \n\t"            \
14600    "add r23, r0 \n\t"         \
14601    "adc r24, r25 \n\t"        \
14602    "adc r22, r25 \n\t"        \
14603    "st z+, r23 \n\t"          \
14604                               \
14605    "ld r10, x+ \n\t"          \
14606    "ldi r23, 0 \n\t"          \
14607    "mul r11, r21 \n\t"        \
14608    "add r24, r0 \n\t"         \
14609    "adc r22, r1 \n\t"         \
14610    "adc r23, r25 \n\t"        \
14611    "mul r2, r20 \n\t"         \
14612    "add r24, r0 \n\t"         \
14613    "adc r22, r1 \n\t"         \
14614    "adc r23, r25 \n\t"        \
14615    "mul r3, r19 \n\t"         \
14616    "add r24, r0 \n\t"         \
14617    "adc r22, r1 \n\t"         \
14618    "adc r23, r25 \n\t"        \
14619    "mul r4, r18 \n\t"         \
14620    "add r24, r0 \n\t"         \
14621    "adc r22, r1 \n\t"         \
14622    "adc r23, r25 \n\t"        \
14623    "mul r5, r17 \n\t"         \
14624    "add r24, r0 \n\t"         \
14625    "adc r22, r1 \n\t"         \
14626    "adc r23, r25 \n\t"        \
14627    "mul r6, r16 \n\t"         \
14628    "add r24, r0 \n\t"         \
14629    "adc r22, r1 \n\t"         \
14630    "adc r23, r25 \n\t"        \
14631    "mul r7, r15 \n\t"         \
14632    "add r24, r0 \n\t"         \
14633    "adc r22, r1 \n\t"         \
14634    "adc r23, r25 \n\t"        \
14635    "mul r8, r14 \n\t"         \
14636    "add r24, r0 \n\t"         \
14637    "adc r22, r1 \n\t"         \
14638    "adc r23, r25 \n\t"        \
14639    "mul r9, r13 \n\t"         \
14640    "add r24, r0 \n\t"         \
14641    "adc r22, r1 \n\t"         \
14642    "adc r23, r25 \n\t"        \
14643    "mul r10, r12 \n\t"        \
14644    "add r24, r0 \n\t"         \
14645    "adc r22, r1 \n\t"         \
14646    "adc r23, r25 \n\t"        \
14647    "ld r0, z \n\t"            \
14648    "add r24, r0 \n\t"         \
14649    "adc r22, r25 \n\t"        \
14650    "adc r23, r25 \n\t"        \
14651    "st z+, r24 \n\t"          \
14652                               \
14653    "ld r11, x+ \n\t"          \
14654    "ldi r24, 0 \n\t"          \
14655    "mul r2, r21 \n\t"         \
14656    "add r22, r0 \n\t"         \
14657    "adc r23, r1 \n\t"         \
14658    "adc r24, r25 \n\t"        \
14659    "mul r3, r20 \n\t"         \
14660    "add r22, r0 \n\t"         \
14661    "adc r23, r1 \n\t"         \
14662    "adc r24, r25 \n\t"        \
14663    "mul r4, r19 \n\t"         \
14664    "add r22, r0 \n\t"         \
14665    "adc r23, r1 \n\t"         \
14666    "adc r24, r25 \n\t"        \
14667    "mul r5, r18 \n\t"         \
14668    "add r22, r0 \n\t"         \
14669    "adc r23, r1 \n\t"         \
14670    "adc r24, r25 \n\t"        \
14671    "mul r6, r17 \n\t"         \
14672    "add r22, r0 \n\t"         \
14673    "adc r23, r1 \n\t"         \
14674    "adc r24, r25 \n\t"        \
14675    "mul r7, r16 \n\t"         \
14676    "add r22, r0 \n\t"         \
14677    "adc r23, r1 \n\t"         \
14678    "adc r24, r25 \n\t"        \
14679    "mul r8, r15 \n\t"         \
14680    "add r22, r0 \n\t"         \
14681    "adc r23, r1 \n\t"         \
14682    "adc r24, r25 \n\t"        \
14683    "mul r9, r14 \n\t"         \
14684    "add r22, r0 \n\t"         \
14685    "adc r23, r1 \n\t"         \
14686    "adc r24, r25 \n\t"        \
14687    "mul r10, r13 \n\t"        \
14688    "add r22, r0 \n\t"         \
14689    "adc r23, r1 \n\t"         \
14690    "adc r24, r25 \n\t"        \
14691    "mul r11, r12 \n\t"        \
14692    "add r22, r0 \n\t"         \
14693    "adc r23, r1 \n\t"         \
14694    "adc r24, r25 \n\t"        \
14695    "ld r0, z \n\t"            \
14696    "add r22, r0 \n\t"         \
14697    "adc r23, r25 \n\t"        \
14698    "adc r24, r25 \n\t"        \
14699    "st z+, r22 \n\t"          \
14700                               \
14701    "ld r2, x+ \n\t"           \
14702    "ldi r22, 0 \n\t"          \
14703    "mul r3, r21 \n\t"         \
14704    "add r23, r0 \n\t"         \
14705    "adc r24, r1 \n\t"         \
14706    "adc r22, r25 \n\t"        \
14707    "mul r4, r20 \n\t"         \
14708    "add r23, r0 \n\t"         \
14709    "adc r24, r1 \n\t"         \
14710    "adc r22, r25 \n\t"        \
14711    "mul r5, r19 \n\t"         \
14712    "add r23, r0 \n\t"         \
14713    "adc r24, r1 \n\t"         \
14714    "adc r22, r25 \n\t"        \
14715    "mul r6, r18 \n\t"         \
14716    "add r23, r0 \n\t"         \
14717    "adc r24, r1 \n\t"         \
14718    "adc r22, r25 \n\t"        \
14719    "mul r7, r17 \n\t"         \
14720    "add r23, r0 \n\t"         \
14721    "adc r24, r1 \n\t"         \
14722    "adc r22, r25 \n\t"        \
14723    "mul r8, r16 \n\t"         \
14724    "add r23, r0 \n\t"         \
14725    "adc r24, r1 \n\t"         \
14726    "adc r22, r25 \n\t"        \
14727    "mul r9, r15 \n\t"         \
14728    "add r23, r0 \n\t"         \
14729    "adc r24, r1 \n\t"         \
14730    "adc r22, r25 \n\t"        \
14731    "mul r10, r14 \n\t"        \
14732    "add r23, r0 \n\t"         \
14733    "adc r24, r1 \n\t"         \
14734    "adc r22, r25 \n\t"        \
14735    "mul r11, r13 \n\t"        \
14736    "add r23, r0 \n\t"         \
14737    "adc r24, r1 \n\t"         \
14738    "adc r22, r25 \n\t"        \
14739    "mul r2, r12 \n\t"         \
14740    "add r23, r0 \n\t"         \
14741    "adc r24, r1 \n\t"         \
14742    "adc r22, r25 \n\t"        \
14743    "ld r0, z \n\t"            \
14744    "add r23, r0 \n\t"         \
14745    "adc r24, r25 \n\t"        \
14746    "adc r22, r25 \n\t"        \
14747    "st z+, r23 \n\t"          \
14748                               \
14749    "ld r3, x+ \n\t"           \
14750    "ldi r23, 0 \n\t"          \
14751    "mul r4, r21 \n\t"         \
14752    "add r24, r0 \n\t"         \
14753    "adc r22, r1 \n\t"         \
14754    "adc r23, r25 \n\t"        \
14755    "mul r5, r20 \n\t"         \
14756    "add r24, r0 \n\t"         \
14757    "adc r22, r1 \n\t"         \
14758    "adc r23, r25 \n\t"        \
14759    "mul r6, r19 \n\t"         \
14760    "add r24, r0 \n\t"         \
14761    "adc r22, r1 \n\t"         \
14762    "adc r23, r25 \n\t"        \
14763    "mul r7, r18 \n\t"         \
14764    "add r24, r0 \n\t"         \
14765    "adc r22, r1 \n\t"         \
14766    "adc r23, r25 \n\t"        \
14767    "mul r8, r17 \n\t"         \
14768    "add r24, r0 \n\t"         \
14769    "adc r22, r1 \n\t"         \
14770    "adc r23, r25 \n\t"        \
14771    "mul r9, r16 \n\t"         \
14772    "add r24, r0 \n\t"         \
14773    "adc r22, r1 \n\t"         \
14774    "adc r23, r25 \n\t"        \
14775    "mul r10, r15 \n\t"        \
14776    "add r24, r0 \n\t"         \
14777    "adc r22, r1 \n\t"         \
14778    "adc r23, r25 \n\t"        \
14779    "mul r11, r14 \n\t"        \
14780    "add r24, r0 \n\t"         \
14781    "adc r22, r1 \n\t"         \
14782    "adc r23, r25 \n\t"        \
14783    "mul r2, r13 \n\t"         \
14784    "add r24, r0 \n\t"         \
14785    "adc r22, r1 \n\t"         \
14786    "adc r23, r25 \n\t"        \
14787    "mul r3, r12 \n\t"         \
14788    "add r24, r0 \n\t"         \
14789    "adc r22, r1 \n\t"         \
14790    "adc r23, r25 \n\t"        \
14791    "ld r0, z \n\t"            \
14792    "add r24, r0 \n\t"         \
14793    "adc r22, r25 \n\t"        \
14794    "adc r23, r25 \n\t"        \
14795    "st z+, r24 \n\t"          \
14796                               \
14797    "ld r4, x+ \n\t"           \
14798    "ldi r24, 0 \n\t"          \
14799    "mul r5, r21 \n\t"         \
14800    "add r22, r0 \n\t"         \
14801    "adc r23, r1 \n\t"         \
14802    "adc r24, r25 \n\t"        \
14803    "mul r6, r20 \n\t"         \
14804    "add r22, r0 \n\t"         \
14805    "adc r23, r1 \n\t"         \
14806    "adc r24, r25 \n\t"        \
14807    "mul r7, r19 \n\t"         \
14808    "add r22, r0 \n\t"         \
14809    "adc r23, r1 \n\t"         \
14810    "adc r24, r25 \n\t"        \
14811    "mul r8, r18 \n\t"         \
14812    "add r22, r0 \n\t"         \
14813    "adc r23, r1 \n\t"         \
14814    "adc r24, r25 \n\t"        \
14815    "mul r9, r17 \n\t"         \
14816    "add r22, r0 \n\t"         \
14817    "adc r23, r1 \n\t"         \
14818    "adc r24, r25 \n\t"        \
14819    "mul r10, r16 \n\t"        \
14820    "add r22, r0 \n\t"         \
14821    "adc r23, r1 \n\t"         \
14822    "adc r24, r25 \n\t"        \
14823    "mul r11, r15 \n\t"        \
14824    "add r22, r0 \n\t"         \
14825    "adc r23, r1 \n\t"         \
14826    "adc r24, r25 \n\t"        \
14827    "mul r2, r14 \n\t"         \
14828    "add r22, r0 \n\t"         \
14829    "adc r23, r1 \n\t"         \
14830    "adc r24, r25 \n\t"        \
14831    "mul r3, r13 \n\t"         \
14832    "add r22, r0 \n\t"         \
14833    "adc r23, r1 \n\t"         \
14834    "adc r24, r25 \n\t"        \
14835    "mul r4, r12 \n\t"         \
14836    "add r22, r0 \n\t"         \
14837    "adc r23, r1 \n\t"         \
14838    "adc r24, r25 \n\t"        \
14839    "ld r0, z \n\t"            \
14840    "add r22, r0 \n\t"         \
14841    "adc r23, r25 \n\t"        \
14842    "adc r24, r25 \n\t"        \
14843    "st z+, r22 \n\t"          \
14844                               \
14845    "ld r5, x+ \n\t"           \
14846    "ldi r22, 0 \n\t"          \
14847    "mul r6, r21 \n\t"         \
14848    "add r23, r0 \n\t"         \
14849    "adc r24, r1 \n\t"         \
14850    "adc r22, r25 \n\t"        \
14851    "mul r7, r20 \n\t"         \
14852    "add r23, r0 \n\t"         \
14853    "adc r24, r1 \n\t"         \
14854    "adc r22, r25 \n\t"        \
14855    "mul r8, r19 \n\t"         \
14856    "add r23, r0 \n\t"         \
14857    "adc r24, r1 \n\t"         \
14858    "adc r22, r25 \n\t"        \
14859    "mul r9, r18 \n\t"         \
14860    "add r23, r0 \n\t"         \
14861    "adc r24, r1 \n\t"         \
14862    "adc r22, r25 \n\t"        \
14863    "mul r10, r17 \n\t"        \
14864    "add r23, r0 \n\t"         \
14865    "adc r24, r1 \n\t"         \
14866    "adc r22, r25 \n\t"        \
14867    "mul r11, r16 \n\t"        \
14868    "add r23, r0 \n\t"         \
14869    "adc r24, r1 \n\t"         \
14870    "adc r22, r25 \n\t"        \
14871    "mul r2, r15 \n\t"         \
14872    "add r23, r0 \n\t"         \
14873    "adc r24, r1 \n\t"         \
14874    "adc r22, r25 \n\t"        \
14875    "mul r3, r14 \n\t"         \
14876    "add r23, r0 \n\t"         \
14877    "adc r24, r1 \n\t"         \
14878    "adc r22, r25 \n\t"        \
14879    "mul r4, r13 \n\t"         \
14880    "add r23, r0 \n\t"         \
14881    "adc r24, r1 \n\t"         \
14882    "adc r22, r25 \n\t"        \
14883    "mul r5, r12 \n\t"         \
14884    "add r23, r0 \n\t"         \
14885    "adc r24, r1 \n\t"         \
14886    "adc r22, r25 \n\t"        \
14887    "ld r0, z \n\t"            \
14888    "add r23, r0 \n\t"         \
14889    "adc r24, r25 \n\t"        \
14890    "adc r22, r25 \n\t"        \
14891    "st z+, r23 \n\t"          \
14892                               \
14893    "ld r6, x+ \n\t"           \
14894    "ldi r23, 0 \n\t"          \
14895    "mul r7, r21 \n\t"         \
14896    "add r24, r0 \n\t"         \
14897    "adc r22, r1 \n\t"         \
14898    "adc r23, r25 \n\t"        \
14899    "mul r8, r20 \n\t"         \
14900    "add r24, r0 \n\t"         \
14901    "adc r22, r1 \n\t"         \
14902    "adc r23, r25 \n\t"        \
14903    "mul r9, r19 \n\t"         \
14904    "add r24, r0 \n\t"         \
14905    "adc r22, r1 \n\t"         \
14906    "adc r23, r25 \n\t"        \
14907    "mul r10, r18 \n\t"        \
14908    "add r24, r0 \n\t"         \
14909    "adc r22, r1 \n\t"         \
14910    "adc r23, r25 \n\t"        \
14911    "mul r11, r17 \n\t"        \
14912    "add r24, r0 \n\t"         \
14913    "adc r22, r1 \n\t"         \
14914    "adc r23, r25 \n\t"        \
14915    "mul r2, r16 \n\t"         \
14916    "add r24, r0 \n\t"         \
14917    "adc r22, r1 \n\t"         \
14918    "adc r23, r25 \n\t"        \
14919    "mul r3, r15 \n\t"         \
14920    "add r24, r0 \n\t"         \
14921    "adc r22, r1 \n\t"         \
14922    "adc r23, r25 \n\t"        \
14923    "mul r4, r14 \n\t"         \
14924    "add r24, r0 \n\t"         \
14925    "adc r22, r1 \n\t"         \
14926    "adc r23, r25 \n\t"        \
14927    "mul r5, r13 \n\t"         \
14928    "add r24, r0 \n\t"         \
14929    "adc r22, r1 \n\t"         \
14930    "adc r23, r25 \n\t"        \
14931    "mul r6, r12 \n\t"         \
14932    "add r24, r0 \n\t"         \
14933    "adc r22, r1 \n\t"         \
14934    "adc r23, r25 \n\t"        \
14935    "ld r0, z \n\t"            \
14936    "add r24, r0 \n\t"         \
14937    "adc r22, r25 \n\t"        \
14938    "adc r23, r25 \n\t"        \
14939    "st z+, r24 \n\t"          \
14940                               \
14941    "ld r7, x+ \n\t"           \
14942    "ldi r24, 0 \n\t"          \
14943    "mul r8, r21 \n\t"         \
14944    "add r22, r0 \n\t"         \
14945    "adc r23, r1 \n\t"         \
14946    "adc r24, r25 \n\t"        \
14947    "mul r9, r20 \n\t"         \
14948    "add r22, r0 \n\t"         \
14949    "adc r23, r1 \n\t"         \
14950    "adc r24, r25 \n\t"        \
14951    "mul r10, r19 \n\t"        \
14952    "add r22, r0 \n\t"         \
14953    "adc r23, r1 \n\t"         \
14954    "adc r24, r25 \n\t"        \
14955    "mul r11, r18 \n\t"        \
14956    "add r22, r0 \n\t"         \
14957    "adc r23, r1 \n\t"         \
14958    "adc r24, r25 \n\t"        \
14959    "mul r2, r17 \n\t"         \
14960    "add r22, r0 \n\t"         \
14961    "adc r23, r1 \n\t"         \
14962    "adc r24, r25 \n\t"        \
14963    "mul r3, r16 \n\t"         \
14964    "add r22, r0 \n\t"         \
14965    "adc r23, r1 \n\t"         \
14966    "adc r24, r25 \n\t"        \
14967    "mul r4, r15 \n\t"         \
14968    "add r22, r0 \n\t"         \
14969    "adc r23, r1 \n\t"         \
14970    "adc r24, r25 \n\t"        \
14971    "mul r5, r14 \n\t"         \
14972    "add r22, r0 \n\t"         \
14973    "adc r23, r1 \n\t"         \
14974    "adc r24, r25 \n\t"        \
14975    "mul r6, r13 \n\t"         \
14976    "add r22, r0 \n\t"         \
14977    "adc r23, r1 \n\t"         \
14978    "adc r24, r25 \n\t"        \
14979    "mul r7, r12 \n\t"         \
14980    "add r22, r0 \n\t"         \
14981    "adc r23, r1 \n\t"         \
14982    "adc r24, r25 \n\t"        \
14983    "ld r0, z \n\t"            \
14984    "add r22, r0 \n\t"         \
14985    "adc r23, r25 \n\t"        \
14986    "adc r24, r25 \n\t"        \
14987    "st z+, r22 \n\t"          \
14988                               \
14989    "ld r8, x+ \n\t"           \
14990    "ldi r22, 0 \n\t"          \
14991    "mul r9, r21 \n\t"         \
14992    "add r23, r0 \n\t"         \
14993    "adc r24, r1 \n\t"         \
14994    "adc r22, r25 \n\t"        \
14995    "mul r10, r20 \n\t"        \
14996    "add r23, r0 \n\t"         \
14997    "adc r24, r1 \n\t"         \
14998    "adc r22, r25 \n\t"        \
14999    "mul r11, r19 \n\t"        \
15000    "add r23, r0 \n\t"         \
15001    "adc r24, r1 \n\t"         \
15002    "adc r22, r25 \n\t"        \
15003    "mul r2, r18 \n\t"         \
15004    "add r23, r0 \n\t"         \
15005    "adc r24, r1 \n\t"         \
15006    "adc r22, r25 \n\t"        \
15007    "mul r3, r17 \n\t"         \
15008    "add r23, r0 \n\t"         \
15009    "adc r24, r1 \n\t"         \
15010    "adc r22, r25 \n\t"        \
15011    "mul r4, r16 \n\t"         \
15012    "add r23, r0 \n\t"         \
15013    "adc r24, r1 \n\t"         \
15014    "adc r22, r25 \n\t"        \
15015    "mul r5, r15 \n\t"         \
15016    "add r23, r0 \n\t"         \
15017    "adc r24, r1 \n\t"         \
15018    "adc r22, r25 \n\t"        \
15019    "mul r6, r14 \n\t"         \
15020    "add r23, r0 \n\t"         \
15021    "adc r24, r1 \n\t"         \
15022    "adc r22, r25 \n\t"        \
15023    "mul r7, r13 \n\t"         \
15024    "add r23, r0 \n\t"         \
15025    "adc r24, r1 \n\t"         \
15026    "adc r22, r25 \n\t"        \
15027    "mul r8, r12 \n\t"         \
15028    "add r23, r0 \n\t"         \
15029    "adc r24, r1 \n\t"         \
15030    "adc r22, r25 \n\t"        \
15031    "ld r0, z \n\t"            \
15032    "add r23, r0 \n\t"         \
15033    "adc r24, r25 \n\t"        \
15034    "adc r22, r25 \n\t"        \
15035    "st z+, r23 \n\t"          \
15036                               \
15037    "ld r9, x+ \n\t"           \
15038    "ldi r23, 0 \n\t"          \
15039    "mul r10, r21 \n\t"        \
15040    "add r24, r0 \n\t"         \
15041    "adc r22, r1 \n\t"         \
15042    "adc r23, r25 \n\t"        \
15043    "mul r11, r20 \n\t"        \
15044    "add r24, r0 \n\t"         \
15045    "adc r22, r1 \n\t"         \
15046    "adc r23, r25 \n\t"        \
15047    "mul r2, r19 \n\t"         \
15048    "add r24, r0 \n\t"         \
15049    "adc r22, r1 \n\t"         \
15050    "adc r23, r25 \n\t"        \
15051    "mul r3, r18 \n\t"         \
15052    "add r24, r0 \n\t"         \
15053    "adc r22, r1 \n\t"         \
15054    "adc r23, r25 \n\t"        \
15055    "mul r4, r17 \n\t"         \
15056    "add r24, r0 \n\t"         \
15057    "adc r22, r1 \n\t"         \
15058    "adc r23, r25 \n\t"        \
15059    "mul r5, r16 \n\t"         \
15060    "add r24, r0 \n\t"         \
15061    "adc r22, r1 \n\t"         \
15062    "adc r23, r25 \n\t"        \
15063    "mul r6, r15 \n\t"         \
15064    "add r24, r0 \n\t"         \
15065    "adc r22, r1 \n\t"         \
15066    "adc r23, r25 \n\t"        \
15067    "mul r7, r14 \n\t"         \
15068    "add r24, r0 \n\t"         \
15069    "adc r22, r1 \n\t"         \
15070    "adc r23, r25 \n\t"        \
15071    "mul r8, r13 \n\t"         \
15072    "add r24, r0 \n\t"         \
15073    "adc r22, r1 \n\t"         \
15074    "adc r23, r25 \n\t"        \
15075    "mul r9, r12 \n\t"         \
15076    "add r24, r0 \n\t"         \
15077    "adc r22, r1 \n\t"         \
15078    "adc r23, r25 \n\t"        \
15079    "ld r0, z \n\t"            \
15080    "add r24, r0 \n\t"         \
15081    "adc r22, r25 \n\t"        \
15082    "adc r23, r25 \n\t"        \
15083    "st z+, r24 \n\t"          \
15084                               \
15085    "ld r10, x+ \n\t"          \
15086    "ldi r24, 0 \n\t"          \
15087    "mul r11, r21 \n\t"        \
15088    "add r22, r0 \n\t"         \
15089    "adc r23, r1 \n\t"         \
15090    "adc r24, r25 \n\t"        \
15091    "mul r2, r20 \n\t"         \
15092    "add r22, r0 \n\t"         \
15093    "adc r23, r1 \n\t"         \
15094    "adc r24, r25 \n\t"        \
15095    "mul r3, r19 \n\t"         \
15096    "add r22, r0 \n\t"         \
15097    "adc r23, r1 \n\t"         \
15098    "adc r24, r25 \n\t"        \
15099    "mul r4, r18 \n\t"         \
15100    "add r22, r0 \n\t"         \
15101    "adc r23, r1 \n\t"         \
15102    "adc r24, r25 \n\t"        \
15103    "mul r5, r17 \n\t"         \
15104    "add r22, r0 \n\t"         \
15105    "adc r23, r1 \n\t"         \
15106    "adc r24, r25 \n\t"        \
15107    "mul r6, r16 \n\t"         \
15108    "add r22, r0 \n\t"         \
15109    "adc r23, r1 \n\t"         \
15110    "adc r24, r25 \n\t"        \
15111    "mul r7, r15 \n\t"         \
15112    "add r22, r0 \n\t"         \
15113    "adc r23, r1 \n\t"         \
15114    "adc r24, r25 \n\t"        \
15115    "mul r8, r14 \n\t"         \
15116    "add r22, r0 \n\t"         \
15117    "adc r23, r1 \n\t"         \
15118    "adc r24, r25 \n\t"        \
15119    "mul r9, r13 \n\t"         \
15120    "add r22, r0 \n\t"         \
15121    "adc r23, r1 \n\t"         \
15122    "adc r24, r25 \n\t"        \
15123    "mul r10, r12 \n\t"        \
15124    "add r22, r0 \n\t"         \
15125    "adc r23, r1 \n\t"         \
15126    "adc r24, r25 \n\t"        \
15127    "ld r0, z \n\t"            \
15128    "add r22, r0 \n\t"         \
15129    "adc r23, r25 \n\t"        \
15130    "adc r24, r25 \n\t"        \
15131    "st z+, r22 \n\t"          \
15132                               \
15133    "ld r11, x+ \n\t"          \
15134    "ldi r22, 0 \n\t"          \
15135    "mul r2, r21 \n\t"         \
15136    "add r23, r0 \n\t"         \
15137    "adc r24, r1 \n\t"         \
15138    "adc r22, r25 \n\t"        \
15139    "mul r3, r20 \n\t"         \
15140    "add r23, r0 \n\t"         \
15141    "adc r24, r1 \n\t"         \
15142    "adc r22, r25 \n\t"        \
15143    "mul r4, r19 \n\t"         \
15144    "add r23, r0 \n\t"         \
15145    "adc r24, r1 \n\t"         \
15146    "adc r22, r25 \n\t"        \
15147    "mul r5, r18 \n\t"         \
15148    "add r23, r0 \n\t"         \
15149    "adc r24, r1 \n\t"         \
15150    "adc r22, r25 \n\t"        \
15151    "mul r6, r17 \n\t"         \
15152    "add r23, r0 \n\t"         \
15153    "adc r24, r1 \n\t"         \
15154    "adc r22, r25 \n\t"        \
15155    "mul r7, r16 \n\t"         \
15156    "add r23, r0 \n\t"         \
15157    "adc r24, r1 \n\t"         \
15158    "adc r22, r25 \n\t"        \
15159    "mul r8, r15 \n\t"         \
15160    "add r23, r0 \n\t"         \
15161    "adc r24, r1 \n\t"         \
15162    "adc r22, r25 \n\t"        \
15163    "mul r9, r14 \n\t"         \
15164    "add r23, r0 \n\t"         \
15165    "adc r24, r1 \n\t"         \
15166    "adc r22, r25 \n\t"        \
15167    "mul r10, r13 \n\t"        \
15168    "add r23, r0 \n\t"         \
15169    "adc r24, r1 \n\t"         \
15170    "adc r22, r25 \n\t"        \
15171    "mul r11, r12 \n\t"        \
15172    "add r23, r0 \n\t"         \
15173    "adc r24, r1 \n\t"         \
15174    "adc r22, r25 \n\t"        \
15175    "ld r0, z \n\t"            \
15176    "add r23, r0 \n\t"         \
15177    "adc r24, r25 \n\t"        \
15178    "adc r22, r25 \n\t"        \
15179    "st z+, r23 \n\t"          \
15180                               \
15181    "ld r2, x+ \n\t"           \
15182    "ldi r23, 0 \n\t"          \
15183    "mul r3, r21 \n\t"         \
15184    "add r24, r0 \n\t"         \
15185    "adc r22, r1 \n\t"         \
15186    "adc r23, r25 \n\t"        \
15187    "mul r4, r20 \n\t"         \
15188    "add r24, r0 \n\t"         \
15189    "adc r22, r1 \n\t"         \
15190    "adc r23, r25 \n\t"        \
15191    "mul r5, r19 \n\t"         \
15192    "add r24, r0 \n\t"         \
15193    "adc r22, r1 \n\t"         \
15194    "adc r23, r25 \n\t"        \
15195    "mul r6, r18 \n\t"         \
15196    "add r24, r0 \n\t"         \
15197    "adc r22, r1 \n\t"         \
15198    "adc r23, r25 \n\t"        \
15199    "mul r7, r17 \n\t"         \
15200    "add r24, r0 \n\t"         \
15201    "adc r22, r1 \n\t"         \
15202    "adc r23, r25 \n\t"        \
15203    "mul r8, r16 \n\t"         \
15204    "add r24, r0 \n\t"         \
15205    "adc r22, r1 \n\t"         \
15206    "adc r23, r25 \n\t"        \
15207    "mul r9, r15 \n\t"         \
15208    "add r24, r0 \n\t"         \
15209    "adc r22, r1 \n\t"         \
15210    "adc r23, r25 \n\t"        \
15211    "mul r10, r14 \n\t"        \
15212    "add r24, r0 \n\t"         \
15213    "adc r22, r1 \n\t"         \
15214    "adc r23, r25 \n\t"        \
15215    "mul r11, r13 \n\t"        \
15216    "add r24, r0 \n\t"         \
15217    "adc r22, r1 \n\t"         \
15218    "adc r23, r25 \n\t"        \
15219    "mul r2, r12 \n\t"         \
15220    "add r24, r0 \n\t"         \
15221    "adc r22, r1 \n\t"         \
15222    "adc r23, r25 \n\t"        \
15223    "ld r0, z \n\t"            \
15224    "add r24, r0 \n\t"         \
15225    "adc r22, r25 \n\t"        \
15226    "adc r23, r25 \n\t"        \
15227    "st z+, r24 \n\t"          \
15228                               \
15229    "ld r3, x+ \n\t"           \
15230    "ldi r24, 0 \n\t"          \
15231    "mul r4, r21 \n\t"         \
15232    "add r22, r0 \n\t"         \
15233    "adc r23, r1 \n\t"         \
15234    "adc r24, r25 \n\t"        \
15235    "mul r5, r20 \n\t"         \
15236    "add r22, r0 \n\t"         \
15237    "adc r23, r1 \n\t"         \
15238    "adc r24, r25 \n\t"        \
15239    "mul r6, r19 \n\t"         \
15240    "add r22, r0 \n\t"         \
15241    "adc r23, r1 \n\t"         \
15242    "adc r24, r25 \n\t"        \
15243    "mul r7, r18 \n\t"         \
15244    "add r22, r0 \n\t"         \
15245    "adc r23, r1 \n\t"         \
15246    "adc r24, r25 \n\t"        \
15247    "mul r8, r17 \n\t"         \
15248    "add r22, r0 \n\t"         \
15249    "adc r23, r1 \n\t"         \
15250    "adc r24, r25 \n\t"        \
15251    "mul r9, r16 \n\t"         \
15252    "add r22, r0 \n\t"         \
15253    "adc r23, r1 \n\t"         \
15254    "adc r24, r25 \n\t"        \
15255    "mul r10, r15 \n\t"        \
15256    "add r22, r0 \n\t"         \
15257    "adc r23, r1 \n\t"         \
15258    "adc r24, r25 \n\t"        \
15259    "mul r11, r14 \n\t"        \
15260    "add r22, r0 \n\t"         \
15261    "adc r23, r1 \n\t"         \
15262    "adc r24, r25 \n\t"        \
15263    "mul r2, r13 \n\t"         \
15264    "add r22, r0 \n\t"         \
15265    "adc r23, r1 \n\t"         \
15266    "adc r24, r25 \n\t"        \
15267    "mul r3, r12 \n\t"         \
15268    "add r22, r0 \n\t"         \
15269    "adc r23, r1 \n\t"         \
15270    "adc r24, r25 \n\t"        \
15271    "ld r0, z \n\t"            \
15272    "add r22, r0 \n\t"         \
15273    "adc r23, r25 \n\t"        \
15274    "adc r24, r25 \n\t"        \
15275    "st z+, r22 \n\t"          \
15276                               \
15277    "ld r12, y+ \n\t"          \
15278    "ldi r22, 0 \n\t"          \
15279    "mul r4, r12 \n\t"         \
15280    "add r23, r0 \n\t"         \
15281    "adc r24, r1 \n\t"         \
15282    "adc r22, r25 \n\t"        \
15283    "mul r5, r21 \n\t"         \
15284    "add r23, r0 \n\t"         \
15285    "adc r24, r1 \n\t"         \
15286    "adc r22, r25 \n\t"        \
15287    "mul r6, r20 \n\t"         \
15288    "add r23, r0 \n\t"         \
15289    "adc r24, r1 \n\t"         \
15290    "adc r22, r25 \n\t"        \
15291    "mul r7, r19 \n\t"         \
15292    "add r23, r0 \n\t"         \
15293    "adc r24, r1 \n\t"         \
15294    "adc r22, r25 \n\t"        \
15295    "mul r8, r18 \n\t"         \
15296    "add r23, r0 \n\t"         \
15297    "adc r24, r1 \n\t"         \
15298    "adc r22, r25 \n\t"        \
15299    "mul r9, r17 \n\t"         \
15300    "add r23, r0 \n\t"         \
15301    "adc r24, r1 \n\t"         \
15302    "adc r22, r25 \n\t"        \
15303    "mul r10, r16 \n\t"        \
15304    "add r23, r0 \n\t"         \
15305    "adc r24, r1 \n\t"         \
15306    "adc r22, r25 \n\t"        \
15307    "mul r11, r15 \n\t"        \
15308    "add r23, r0 \n\t"         \
15309    "adc r24, r1 \n\t"         \
15310    "adc r22, r25 \n\t"        \
15311    "mul r2, r14 \n\t"         \
15312    "add r23, r0 \n\t"         \
15313    "adc r24, r1 \n\t"         \
15314    "adc r22, r25 \n\t"        \
15315    "mul r3, r13 \n\t"         \
15316    "add r23, r0 \n\t"         \
15317    "adc r24, r1 \n\t"         \
15318    "adc r22, r25 \n\t"        \
15319    "ld r0, z \n\t"            \
15320    "add r23, r0 \n\t"         \
15321    "adc r24, r25 \n\t"        \
15322    "adc r22, r25 \n\t"        \
15323    "st z+, r23 \n\t"          \
15324                               \
15325    "ld r13, y+ \n\t"          \
15326    "ldi r23, 0 \n\t"          \
15327    "mul r4, r13 \n\t"         \
15328    "add r24, r0 \n\t"         \
15329    "adc r22, r1 \n\t"         \
15330    "adc r23, r25 \n\t"        \
15331    "mul r5, r12 \n\t"         \
15332    "add r24, r0 \n\t"         \
15333    "adc r22, r1 \n\t"         \
15334    "adc r23, r25 \n\t"        \
15335    "mul r6, r21 \n\t"         \
15336    "add r24, r0 \n\t"         \
15337    "adc r22, r1 \n\t"         \
15338    "adc r23, r25 \n\t"        \
15339    "mul r7, r20 \n\t"         \
15340    "add r24, r0 \n\t"         \
15341    "adc r22, r1 \n\t"         \
15342    "adc r23, r25 \n\t"        \
15343    "mul r8, r19 \n\t"         \
15344    "add r24, r0 \n\t"         \
15345    "adc r22, r1 \n\t"         \
15346    "adc r23, r25 \n\t"        \
15347    "mul r9, r18 \n\t"         \
15348    "add r24, r0 \n\t"         \
15349    "adc r22, r1 \n\t"         \
15350    "adc r23, r25 \n\t"        \
15351    "mul r10, r17 \n\t"        \
15352    "add r24, r0 \n\t"         \
15353    "adc r22, r1 \n\t"         \
15354    "adc r23, r25 \n\t"        \
15355    "mul r11, r16 \n\t"        \
15356    "add r24, r0 \n\t"         \
15357    "adc r22, r1 \n\t"         \
15358    "adc r23, r25 \n\t"        \
15359    "mul r2, r15 \n\t"         \
15360    "add r24, r0 \n\t"         \
15361    "adc r22, r1 \n\t"         \
15362    "adc r23, r25 \n\t"        \
15363    "mul r3, r14 \n\t"         \
15364    "add r24, r0 \n\t"         \
15365    "adc r22, r1 \n\t"         \
15366    "adc r23, r25 \n\t"        \
15367    "ld r0, z \n\t"            \
15368    "add r24, r0 \n\t"         \
15369    "adc r22, r25 \n\t"        \
15370    "adc r23, r25 \n\t"        \
15371    "st z+, r24 \n\t"          \
15372                               \
15373    "ld r14, y+ \n\t"          \
15374    "ldi r24, 0 \n\t"          \
15375    "mul r4, r14 \n\t"         \
15376    "add r22, r0 \n\t"         \
15377    "adc r23, r1 \n\t"         \
15378    "adc r24, r25 \n\t"        \
15379    "mul r5, r13 \n\t"         \
15380    "add r22, r0 \n\t"         \
15381    "adc r23, r1 \n\t"         \
15382    "adc r24, r25 \n\t"        \
15383    "mul r6, r12 \n\t"         \
15384    "add r22, r0 \n\t"         \
15385    "adc r23, r1 \n\t"         \
15386    "adc r24, r25 \n\t"        \
15387    "mul r7, r21 \n\t"         \
15388    "add r22, r0 \n\t"         \
15389    "adc r23, r1 \n\t"         \
15390    "adc r24, r25 \n\t"        \
15391    "mul r8, r20 \n\t"         \
15392    "add r22, r0 \n\t"         \
15393    "adc r23, r1 \n\t"         \
15394    "adc r24, r25 \n\t"        \
15395    "mul r9, r19 \n\t"         \
15396    "add r22, r0 \n\t"         \
15397    "adc r23, r1 \n\t"         \
15398    "adc r24, r25 \n\t"        \
15399    "mul r10, r18 \n\t"        \
15400    "add r22, r0 \n\t"         \
15401    "adc r23, r1 \n\t"         \
15402    "adc r24, r25 \n\t"        \
15403    "mul r11, r17 \n\t"        \
15404    "add r22, r0 \n\t"         \
15405    "adc r23, r1 \n\t"         \
15406    "adc r24, r25 \n\t"        \
15407    "mul r2, r16 \n\t"         \
15408    "add r22, r0 \n\t"         \
15409    "adc r23, r1 \n\t"         \
15410    "adc r24, r25 \n\t"        \
15411    "mul r3, r15 \n\t"         \
15412    "add r22, r0 \n\t"         \
15413    "adc r23, r1 \n\t"         \
15414    "adc r24, r25 \n\t"        \
15415    "ld r0, z \n\t"            \
15416    "add r22, r0 \n\t"         \
15417    "adc r23, r25 \n\t"        \
15418    "adc r24, r25 \n\t"        \
15419    "st z+, r22 \n\t"          \
15420                               \
15421    "ld r15, y+ \n\t"          \
15422    "ldi r22, 0 \n\t"          \
15423    "mul r4, r15 \n\t"         \
15424    "add r23, r0 \n\t"         \
15425    "adc r24, r1 \n\t"         \
15426    "adc r22, r25 \n\t"        \
15427    "mul r5, r14 \n\t"         \
15428    "add r23, r0 \n\t"         \
15429    "adc r24, r1 \n\t"         \
15430    "adc r22, r25 \n\t"        \
15431    "mul r6, r13 \n\t"         \
15432    "add r23, r0 \n\t"         \
15433    "adc r24, r1 \n\t"         \
15434    "adc r22, r25 \n\t"        \
15435    "mul r7, r12 \n\t"         \
15436    "add r23, r0 \n\t"         \
15437    "adc r24, r1 \n\t"         \
15438    "adc r22, r25 \n\t"        \
15439    "mul r8, r21 \n\t"         \
15440    "add r23, r0 \n\t"         \
15441    "adc r24, r1 \n\t"         \
15442    "adc r22, r25 \n\t"        \
15443    "mul r9, r20 \n\t"         \
15444    "add r23, r0 \n\t"         \
15445    "adc r24, r1 \n\t"         \
15446    "adc r22, r25 \n\t"        \
15447    "mul r10, r19 \n\t"        \
15448    "add r23, r0 \n\t"         \
15449    "adc r24, r1 \n\t"         \
15450    "adc r22, r25 \n\t"        \
15451    "mul r11, r18 \n\t"        \
15452    "add r23, r0 \n\t"         \
15453    "adc r24, r1 \n\t"         \
15454    "adc r22, r25 \n\t"        \
15455    "mul r2, r17 \n\t"         \
15456    "add r23, r0 \n\t"         \
15457    "adc r24, r1 \n\t"         \
15458    "adc r22, r25 \n\t"        \
15459    "mul r3, r16 \n\t"         \
15460    "add r23, r0 \n\t"         \
15461    "adc r24, r1 \n\t"         \
15462    "adc r22, r25 \n\t"        \
15463    "ld r0, z \n\t"            \
15464    "add r23, r0 \n\t"         \
15465    "adc r24, r25 \n\t"        \
15466    "adc r22, r25 \n\t"        \
15467    "st z+, r23 \n\t"          \
15468                               \
15469    "ld r16, y+ \n\t"          \
15470    "ldi r23, 0 \n\t"          \
15471    "mul r4, r16 \n\t"         \
15472    "add r24, r0 \n\t"         \
15473    "adc r22, r1 \n\t"         \
15474    "adc r23, r25 \n\t"        \
15475    "mul r5, r15 \n\t"         \
15476    "add r24, r0 \n\t"         \
15477    "adc r22, r1 \n\t"         \
15478    "adc r23, r25 \n\t"        \
15479    "mul r6, r14 \n\t"         \
15480    "add r24, r0 \n\t"         \
15481    "adc r22, r1 \n\t"         \
15482    "adc r23, r25 \n\t"        \
15483    "mul r7, r13 \n\t"         \
15484    "add r24, r0 \n\t"         \
15485    "adc r22, r1 \n\t"         \
15486    "adc r23, r25 \n\t"        \
15487    "mul r8, r12 \n\t"         \
15488    "add r24, r0 \n\t"         \
15489    "adc r22, r1 \n\t"         \
15490    "adc r23, r25 \n\t"        \
15491    "mul r9, r21 \n\t"         \
15492    "add r24, r0 \n\t"         \
15493    "adc r22, r1 \n\t"         \
15494    "adc r23, r25 \n\t"        \
15495    "mul r10, r20 \n\t"        \
15496    "add r24, r0 \n\t"         \
15497    "adc r22, r1 \n\t"         \
15498    "adc r23, r25 \n\t"        \
15499    "mul r11, r19 \n\t"        \
15500    "add r24, r0 \n\t"         \
15501    "adc r22, r1 \n\t"         \
15502    "adc r23, r25 \n\t"        \
15503    "mul r2, r18 \n\t"         \
15504    "add r24, r0 \n\t"         \
15505    "adc r22, r1 \n\t"         \
15506    "adc r23, r25 \n\t"        \
15507    "mul r3, r17 \n\t"         \
15508    "add r24, r0 \n\t"         \
15509    "adc r22, r1 \n\t"         \
15510    "adc r23, r25 \n\t"        \
15511    "ld r0, z \n\t"            \
15512    "add r24, r0 \n\t"         \
15513    "adc r22, r25 \n\t"        \
15514    "adc r23, r25 \n\t"        \
15515    "st z+, r24 \n\t"          \
15516                               \
15517    "ld r17, y+ \n\t"          \
15518    "ldi r24, 0 \n\t"          \
15519    "mul r4, r17 \n\t"         \
15520    "add r22, r0 \n\t"         \
15521    "adc r23, r1 \n\t"         \
15522    "adc r24, r25 \n\t"        \
15523    "mul r5, r16 \n\t"         \
15524    "add r22, r0 \n\t"         \
15525    "adc r23, r1 \n\t"         \
15526    "adc r24, r25 \n\t"        \
15527    "mul r6, r15 \n\t"         \
15528    "add r22, r0 \n\t"         \
15529    "adc r23, r1 \n\t"         \
15530    "adc r24, r25 \n\t"        \
15531    "mul r7, r14 \n\t"         \
15532    "add r22, r0 \n\t"         \
15533    "adc r23, r1 \n\t"         \
15534    "adc r24, r25 \n\t"        \
15535    "mul r8, r13 \n\t"         \
15536    "add r22, r0 \n\t"         \
15537    "adc r23, r1 \n\t"         \
15538    "adc r24, r25 \n\t"        \
15539    "mul r9, r12 \n\t"         \
15540    "add r22, r0 \n\t"         \
15541    "adc r23, r1 \n\t"         \
15542    "adc r24, r25 \n\t"        \
15543    "mul r10, r21 \n\t"        \
15544    "add r22, r0 \n\t"         \
15545    "adc r23, r1 \n\t"         \
15546    "adc r24, r25 \n\t"        \
15547    "mul r11, r20 \n\t"        \
15548    "add r22, r0 \n\t"         \
15549    "adc r23, r1 \n\t"         \
15550    "adc r24, r25 \n\t"        \
15551    "mul r2, r19 \n\t"         \
15552    "add r22, r0 \n\t"         \
15553    "adc r23, r1 \n\t"         \
15554    "adc r24, r25 \n\t"        \
15555    "mul r3, r18 \n\t"         \
15556    "add r22, r0 \n\t"         \
15557    "adc r23, r1 \n\t"         \
15558    "adc r24, r25 \n\t"        \
15559    "ld r0, z \n\t"            \
15560    "add r22, r0 \n\t"         \
15561    "adc r23, r25 \n\t"        \
15562    "adc r24, r25 \n\t"        \
15563    "st z+, r22 \n\t"          \
15564                               \
15565    "ld r18, y+ \n\t"          \
15566    "ldi r22, 0 \n\t"          \
15567    "mul r4, r18 \n\t"         \
15568    "add r23, r0 \n\t"         \
15569    "adc r24, r1 \n\t"         \
15570    "adc r22, r25 \n\t"        \
15571    "mul r5, r17 \n\t"         \
15572    "add r23, r0 \n\t"         \
15573    "adc r24, r1 \n\t"         \
15574    "adc r22, r25 \n\t"        \
15575    "mul r6, r16 \n\t"         \
15576    "add r23, r0 \n\t"         \
15577    "adc r24, r1 \n\t"         \
15578    "adc r22, r25 \n\t"        \
15579    "mul r7, r15 \n\t"         \
15580    "add r23, r0 \n\t"         \
15581    "adc r24, r1 \n\t"         \
15582    "adc r22, r25 \n\t"        \
15583    "mul r8, r14 \n\t"         \
15584    "add r23, r0 \n\t"         \
15585    "adc r24, r1 \n\t"         \
15586    "adc r22, r25 \n\t"        \
15587    "mul r9, r13 \n\t"         \
15588    "add r23, r0 \n\t"         \
15589    "adc r24, r1 \n\t"         \
15590    "adc r22, r25 \n\t"        \
15591    "mul r10, r12 \n\t"        \
15592    "add r23, r0 \n\t"         \
15593    "adc r24, r1 \n\t"         \
15594    "adc r22, r25 \n\t"        \
15595    "mul r11, r21 \n\t"        \
15596    "add r23, r0 \n\t"         \
15597    "adc r24, r1 \n\t"         \
15598    "adc r22, r25 \n\t"        \
15599    "mul r2, r20 \n\t"         \
15600    "add r23, r0 \n\t"         \
15601    "adc r24, r1 \n\t"         \
15602    "adc r22, r25 \n\t"        \
15603    "mul r3, r19 \n\t"         \
15604    "add r23, r0 \n\t"         \
15605    "adc r24, r1 \n\t"         \
15606    "adc r22, r25 \n\t"        \
15607    "ld r0, z \n\t"            \
15608    "add r23, r0 \n\t"         \
15609    "adc r24, r25 \n\t"        \
15610    "adc r22, r25 \n\t"        \
15611    "st z+, r23 \n\t"          \
15612                               \
15613    "ld r19, y+ \n\t"          \
15614    "ldi r23, 0 \n\t"          \
15615    "mul r4, r19 \n\t"         \
15616    "add r24, r0 \n\t"         \
15617    "adc r22, r1 \n\t"         \
15618    "adc r23, r25 \n\t"        \
15619    "mul r5, r18 \n\t"         \
15620    "add r24, r0 \n\t"         \
15621    "adc r22, r1 \n\t"         \
15622    "adc r23, r25 \n\t"        \
15623    "mul r6, r17 \n\t"         \
15624    "add r24, r0 \n\t"         \
15625    "adc r22, r1 \n\t"         \
15626    "adc r23, r25 \n\t"        \
15627    "mul r7, r16 \n\t"         \
15628    "add r24, r0 \n\t"         \
15629    "adc r22, r1 \n\t"         \
15630    "adc r23, r25 \n\t"        \
15631    "mul r8, r15 \n\t"         \
15632    "add r24, r0 \n\t"         \
15633    "adc r22, r1 \n\t"         \
15634    "adc r23, r25 \n\t"        \
15635    "mul r9, r14 \n\t"         \
15636    "add r24, r0 \n\t"         \
15637    "adc r22, r1 \n\t"         \
15638    "adc r23, r25 \n\t"        \
15639    "mul r10, r13 \n\t"        \
15640    "add r24, r0 \n\t"         \
15641    "adc r22, r1 \n\t"         \
15642    "adc r23, r25 \n\t"        \
15643    "mul r11, r12 \n\t"        \
15644    "add r24, r0 \n\t"         \
15645    "adc r22, r1 \n\t"         \
15646    "adc r23, r25 \n\t"        \
15647    "mul r2, r21 \n\t"         \
15648    "add r24, r0 \n\t"         \
15649    "adc r22, r1 \n\t"         \
15650    "adc r23, r25 \n\t"        \
15651    "mul r3, r20 \n\t"         \
15652    "add r24, r0 \n\t"         \
15653    "adc r22, r1 \n\t"         \
15654    "adc r23, r25 \n\t"        \
15655    "ld r0, z \n\t"            \
15656    "add r24, r0 \n\t"         \
15657    "adc r22, r25 \n\t"        \
15658    "adc r23, r25 \n\t"        \
15659    "st z+, r24 \n\t"          \
15660                               \
15661    "ld r20, y+ \n\t"          \
15662    "ldi r24, 0 \n\t"          \
15663    "mul r4, r20 \n\t"         \
15664    "add r22, r0 \n\t"         \
15665    "adc r23, r1 \n\t"         \
15666    "adc r24, r25 \n\t"        \
15667    "mul r5, r19 \n\t"         \
15668    "add r22, r0 \n\t"         \
15669    "adc r23, r1 \n\t"         \
15670    "adc r24, r25 \n\t"        \
15671    "mul r6, r18 \n\t"         \
15672    "add r22, r0 \n\t"         \
15673    "adc r23, r1 \n\t"         \
15674    "adc r24, r25 \n\t"        \
15675    "mul r7, r17 \n\t"         \
15676    "add r22, r0 \n\t"         \
15677    "adc r23, r1 \n\t"         \
15678    "adc r24, r25 \n\t"        \
15679    "mul r8, r16 \n\t"         \
15680    "add r22, r0 \n\t"         \
15681    "adc r23, r1 \n\t"         \
15682    "adc r24, r25 \n\t"        \
15683    "mul r9, r15 \n\t"         \
15684    "add r22, r0 \n\t"         \
15685    "adc r23, r1 \n\t"         \
15686    "adc r24, r25 \n\t"        \
15687    "mul r10, r14 \n\t"        \
15688    "add r22, r0 \n\t"         \
15689    "adc r23, r1 \n\t"         \
15690    "adc r24, r25 \n\t"        \
15691    "mul r11, r13 \n\t"        \
15692    "add r22, r0 \n\t"         \
15693    "adc r23, r1 \n\t"         \
15694    "adc r24, r25 \n\t"        \
15695    "mul r2, r12 \n\t"         \
15696    "add r22, r0 \n\t"         \
15697    "adc r23, r1 \n\t"         \
15698    "adc r24, r25 \n\t"        \
15699    "mul r3, r21 \n\t"         \
15700    "add r22, r0 \n\t"         \
15701    "adc r23, r1 \n\t"         \
15702    "adc r24, r25 \n\t"        \
15703    "ld r0, z \n\t"            \
15704    "add r22, r0 \n\t"         \
15705    "adc r23, r25 \n\t"        \
15706    "adc r24, r25 \n\t"        \
15707    "st z+, r22 \n\t"          \
15708                               \
15709    "ld r21, y+ \n\t"          \
15710    "ldi r22, 0 \n\t"          \
15711    "mul r4, r21 \n\t"         \
15712    "add r23, r0 \n\t"         \
15713    "adc r24, r1 \n\t"         \
15714    "adc r22, r25 \n\t"        \
15715    "mul r5, r20 \n\t"         \
15716    "add r23, r0 \n\t"         \
15717    "adc r24, r1 \n\t"         \
15718    "adc r22, r25 \n\t"        \
15719    "mul r6, r19 \n\t"         \
15720    "add r23, r0 \n\t"         \
15721    "adc r24, r1 \n\t"         \
15722    "adc r22, r25 \n\t"        \
15723    "mul r7, r18 \n\t"         \
15724    "add r23, r0 \n\t"         \
15725    "adc r24, r1 \n\t"         \
15726    "adc r22, r25 \n\t"        \
15727    "mul r8, r17 \n\t"         \
15728    "add r23, r0 \n\t"         \
15729    "adc r24, r1 \n\t"         \
15730    "adc r22, r25 \n\t"        \
15731    "mul r9, r16 \n\t"         \
15732    "add r23, r0 \n\t"         \
15733    "adc r24, r1 \n\t"         \
15734    "adc r22, r25 \n\t"        \
15735    "mul r10, r15 \n\t"        \
15736    "add r23, r0 \n\t"         \
15737    "adc r24, r1 \n\t"         \
15738    "adc r22, r25 \n\t"        \
15739    "mul r11, r14 \n\t"        \
15740    "add r23, r0 \n\t"         \
15741    "adc r24, r1 \n\t"         \
15742    "adc r22, r25 \n\t"        \
15743    "mul r2, r13 \n\t"         \
15744    "add r23, r0 \n\t"         \
15745    "adc r24, r1 \n\t"         \
15746    "adc r22, r25 \n\t"        \
15747    "mul r3, r12 \n\t"         \
15748    "add r23, r0 \n\t"         \
15749    "adc r24, r1 \n\t"         \
15750    "adc r22, r25 \n\t"        \
15751    "ld r0, z \n\t"            \
15752    "add r23, r0 \n\t"         \
15753    "adc r24, r25 \n\t"        \
15754    "adc r22, r25 \n\t"        \
15755    "st z+, r23 \n\t"          \
15756                               \
15757    "ld r12, y+ \n\t"          \
15758    "ldi r23, 0 \n\t"          \
15759    "mul r4, r12 \n\t"         \
15760    "add r24, r0 \n\t"         \
15761    "adc r22, r1 \n\t"         \
15762    "adc r23, r25 \n\t"        \
15763    "mul r5, r21 \n\t"         \
15764    "add r24, r0 \n\t"         \
15765    "adc r22, r1 \n\t"         \
15766    "adc r23, r25 \n\t"        \
15767    "mul r6, r20 \n\t"         \
15768    "add r24, r0 \n\t"         \
15769    "adc r22, r1 \n\t"         \
15770    "adc r23, r25 \n\t"        \
15771    "mul r7, r19 \n\t"         \
15772    "add r24, r0 \n\t"         \
15773    "adc r22, r1 \n\t"         \
15774    "adc r23, r25 \n\t"        \
15775    "mul r8, r18 \n\t"         \
15776    "add r24, r0 \n\t"         \
15777    "adc r22, r1 \n\t"         \
15778    "adc r23, r25 \n\t"        \
15779    "mul r9, r17 \n\t"         \
15780    "add r24, r0 \n\t"         \
15781    "adc r22, r1 \n\t"         \
15782    "adc r23, r25 \n\t"        \
15783    "mul r10, r16 \n\t"        \
15784    "add r24, r0 \n\t"         \
15785    "adc r22, r1 \n\t"         \
15786    "adc r23, r25 \n\t"        \
15787    "mul r11, r15 \n\t"        \
15788    "add r24, r0 \n\t"         \
15789    "adc r22, r1 \n\t"         \
15790    "adc r23, r25 \n\t"        \
15791    "mul r2, r14 \n\t"         \
15792    "add r24, r0 \n\t"         \
15793    "adc r22, r1 \n\t"         \
15794    "adc r23, r25 \n\t"        \
15795    "mul r3, r13 \n\t"         \
15796    "add r24, r0 \n\t"         \
15797    "adc r22, r1 \n\t"         \
15798    "adc r23, r25 \n\t"        \
15799    "ld r0, z \n\t"            \
15800    "add r24, r0 \n\t"         \
15801    "adc r22, r25 \n\t"        \
15802    "adc r23, r25 \n\t"        \
15803    "st z+, r24 \n\t"          \
15804                               \
15805    "ld r13, y+ \n\t"          \
15806    "ldi r24, 0 \n\t"          \
15807    "mul r4, r13 \n\t"         \
15808    "add r22, r0 \n\t"         \
15809    "adc r23, r1 \n\t"         \
15810    "adc r24, r25 \n\t"        \
15811    "mul r5, r12 \n\t"         \
15812    "add r22, r0 \n\t"         \
15813    "adc r23, r1 \n\t"         \
15814    "adc r24, r25 \n\t"        \
15815    "mul r6, r21 \n\t"         \
15816    "add r22, r0 \n\t"         \
15817    "adc r23, r1 \n\t"         \
15818    "adc r24, r25 \n\t"        \
15819    "mul r7, r20 \n\t"         \
15820    "add r22, r0 \n\t"         \
15821    "adc r23, r1 \n\t"         \
15822    "adc r24, r25 \n\t"        \
15823    "mul r8, r19 \n\t"         \
15824    "add r22, r0 \n\t"         \
15825    "adc r23, r1 \n\t"         \
15826    "adc r24, r25 \n\t"        \
15827    "mul r9, r18 \n\t"         \
15828    "add r22, r0 \n\t"         \
15829    "adc r23, r1 \n\t"         \
15830    "adc r24, r25 \n\t"        \
15831    "mul r10, r17 \n\t"        \
15832    "add r22, r0 \n\t"         \
15833    "adc r23, r1 \n\t"         \
15834    "adc r24, r25 \n\t"        \
15835    "mul r11, r16 \n\t"        \
15836    "add r22, r0 \n\t"         \
15837    "adc r23, r1 \n\t"         \
15838    "adc r24, r25 \n\t"        \
15839    "mul r2, r15 \n\t"         \
15840    "add r22, r0 \n\t"         \
15841    "adc r23, r1 \n\t"         \
15842    "adc r24, r25 \n\t"        \
15843    "mul r3, r14 \n\t"         \
15844    "add r22, r0 \n\t"         \
15845    "adc r23, r1 \n\t"         \
15846    "adc r24, r25 \n\t"        \
15847    "ld r0, z \n\t"            \
15848    "add r22, r0 \n\t"         \
15849    "adc r23, r25 \n\t"        \
15850    "adc r24, r25 \n\t"        \
15851    "st z+, r22 \n\t"          \
15852                               \
15853    "ld r14, y+ \n\t"          \
15854    "ldi r22, 0 \n\t"          \
15855    "mul r4, r14 \n\t"         \
15856    "add r23, r0 \n\t"         \
15857    "adc r24, r1 \n\t"         \
15858    "adc r22, r25 \n\t"        \
15859    "mul r5, r13 \n\t"         \
15860    "add r23, r0 \n\t"         \
15861    "adc r24, r1 \n\t"         \
15862    "adc r22, r25 \n\t"        \
15863    "mul r6, r12 \n\t"         \
15864    "add r23, r0 \n\t"         \
15865    "adc r24, r1 \n\t"         \
15866    "adc r22, r25 \n\t"        \
15867    "mul r7, r21 \n\t"         \
15868    "add r23, r0 \n\t"         \
15869    "adc r24, r1 \n\t"         \
15870    "adc r22, r25 \n\t"        \
15871    "mul r8, r20 \n\t"         \
15872    "add r23, r0 \n\t"         \
15873    "adc r24, r1 \n\t"         \
15874    "adc r22, r25 \n\t"        \
15875    "mul r9, r19 \n\t"         \
15876    "add r23, r0 \n\t"         \
15877    "adc r24, r1 \n\t"         \
15878    "adc r22, r25 \n\t"        \
15879    "mul r10, r18 \n\t"        \
15880    "add r23, r0 \n\t"         \
15881    "adc r24, r1 \n\t"         \
15882    "adc r22, r25 \n\t"        \
15883    "mul r11, r17 \n\t"        \
15884    "add r23, r0 \n\t"         \
15885    "adc r24, r1 \n\t"         \
15886    "adc r22, r25 \n\t"        \
15887    "mul r2, r16 \n\t"         \
15888    "add r23, r0 \n\t"         \
15889    "adc r24, r1 \n\t"         \
15890    "adc r22, r25 \n\t"        \
15891    "mul r3, r15 \n\t"         \
15892    "add r23, r0 \n\t"         \
15893    "adc r24, r1 \n\t"         \
15894    "adc r22, r25 \n\t"        \
15895    "ld r0, z \n\t"            \
15896    "add r23, r0 \n\t"         \
15897    "adc r24, r25 \n\t"        \
15898    "adc r22, r25 \n\t"        \
15899    "st z+, r23 \n\t"          \
15900                               \
15901    "ld r15, y+ \n\t"          \
15902    "ldi r23, 0 \n\t"          \
15903    "mul r4, r15 \n\t"         \
15904    "add r24, r0 \n\t"         \
15905    "adc r22, r1 \n\t"         \
15906    "adc r23, r25 \n\t"        \
15907    "mul r5, r14 \n\t"         \
15908    "add r24, r0 \n\t"         \
15909    "adc r22, r1 \n\t"         \
15910    "adc r23, r25 \n\t"        \
15911    "mul r6, r13 \n\t"         \
15912    "add r24, r0 \n\t"         \
15913    "adc r22, r1 \n\t"         \
15914    "adc r23, r25 \n\t"        \
15915    "mul r7, r12 \n\t"         \
15916    "add r24, r0 \n\t"         \
15917    "adc r22, r1 \n\t"         \
15918    "adc r23, r25 \n\t"        \
15919    "mul r8, r21 \n\t"         \
15920    "add r24, r0 \n\t"         \
15921    "adc r22, r1 \n\t"         \
15922    "adc r23, r25 \n\t"        \
15923    "mul r9, r20 \n\t"         \
15924    "add r24, r0 \n\t"         \
15925    "adc r22, r1 \n\t"         \
15926    "adc r23, r25 \n\t"        \
15927    "mul r10, r19 \n\t"        \
15928    "add r24, r0 \n\t"         \
15929    "adc r22, r1 \n\t"         \
15930    "adc r23, r25 \n\t"        \
15931    "mul r11, r18 \n\t"        \
15932    "add r24, r0 \n\t"         \
15933    "adc r22, r1 \n\t"         \
15934    "adc r23, r25 \n\t"        \
15935    "mul r2, r17 \n\t"         \
15936    "add r24, r0 \n\t"         \
15937    "adc r22, r1 \n\t"         \
15938    "adc r23, r25 \n\t"        \
15939    "mul r3, r16 \n\t"         \
15940    "add r24, r0 \n\t"         \
15941    "adc r22, r1 \n\t"         \
15942    "adc r23, r25 \n\t"        \
15943    "ld r0, z \n\t"            \
15944    "add r24, r0 \n\t"         \
15945    "adc r22, r25 \n\t"        \
15946    "adc r23, r25 \n\t"        \
15947    "st z+, r24 \n\t"          \
15948                               \
15949    "ld r16, y+ \n\t"          \
15950    "ldi r24, 0 \n\t"          \
15951    "mul r4, r16 \n\t"         \
15952    "add r22, r0 \n\t"         \
15953    "adc r23, r1 \n\t"         \
15954    "adc r24, r25 \n\t"        \
15955    "mul r5, r15 \n\t"         \
15956    "add r22, r0 \n\t"         \
15957    "adc r23, r1 \n\t"         \
15958    "adc r24, r25 \n\t"        \
15959    "mul r6, r14 \n\t"         \
15960    "add r22, r0 \n\t"         \
15961    "adc r23, r1 \n\t"         \
15962    "adc r24, r25 \n\t"        \
15963    "mul r7, r13 \n\t"         \
15964    "add r22, r0 \n\t"         \
15965    "adc r23, r1 \n\t"         \
15966    "adc r24, r25 \n\t"        \
15967    "mul r8, r12 \n\t"         \
15968    "add r22, r0 \n\t"         \
15969    "adc r23, r1 \n\t"         \
15970    "adc r24, r25 \n\t"        \
15971    "mul r9, r21 \n\t"         \
15972    "add r22, r0 \n\t"         \
15973    "adc r23, r1 \n\t"         \
15974    "adc r24, r25 \n\t"        \
15975    "mul r10, r20 \n\t"        \
15976    "add r22, r0 \n\t"         \
15977    "adc r23, r1 \n\t"         \
15978    "adc r24, r25 \n\t"        \
15979    "mul r11, r19 \n\t"        \
15980    "add r22, r0 \n\t"         \
15981    "adc r23, r1 \n\t"         \
15982    "adc r24, r25 \n\t"        \
15983    "mul r2, r18 \n\t"         \
15984    "add r22, r0 \n\t"         \
15985    "adc r23, r1 \n\t"         \
15986    "adc r24, r25 \n\t"        \
15987    "mul r3, r17 \n\t"         \
15988    "add r22, r0 \n\t"         \
15989    "adc r23, r1 \n\t"         \
15990    "adc r24, r25 \n\t"        \
15991    "ld r0, z \n\t"            \
15992    "add r22, r0 \n\t"         \
15993    "adc r23, r25 \n\t"        \
15994    "adc r24, r25 \n\t"        \
15995    "st z+, r22 \n\t"          \
15996                               \
15997    "ld r17, y+ \n\t"          \
15998    "ldi r22, 0 \n\t"          \
15999    "mul r4, r17 \n\t"         \
16000    "add r23, r0 \n\t"         \
16001    "adc r24, r1 \n\t"         \
16002    "adc r22, r25 \n\t"        \
16003    "mul r5, r16 \n\t"         \
16004    "add r23, r0 \n\t"         \
16005    "adc r24, r1 \n\t"         \
16006    "adc r22, r25 \n\t"        \
16007    "mul r6, r15 \n\t"         \
16008    "add r23, r0 \n\t"         \
16009    "adc r24, r1 \n\t"         \
16010    "adc r22, r25 \n\t"        \
16011    "mul r7, r14 \n\t"         \
16012    "add r23, r0 \n\t"         \
16013    "adc r24, r1 \n\t"         \
16014    "adc r22, r25 \n\t"        \
16015    "mul r8, r13 \n\t"         \
16016    "add r23, r0 \n\t"         \
16017    "adc r24, r1 \n\t"         \
16018    "adc r22, r25 \n\t"        \
16019    "mul r9, r12 \n\t"         \
16020    "add r23, r0 \n\t"         \
16021    "adc r24, r1 \n\t"         \
16022    "adc r22, r25 \n\t"        \
16023    "mul r10, r21 \n\t"        \
16024    "add r23, r0 \n\t"         \
16025    "adc r24, r1 \n\t"         \
16026    "adc r22, r25 \n\t"        \
16027    "mul r11, r20 \n\t"        \
16028    "add r23, r0 \n\t"         \
16029    "adc r24, r1 \n\t"         \
16030    "adc r22, r25 \n\t"        \
16031    "mul r2, r19 \n\t"         \
16032    "add r23, r0 \n\t"         \
16033    "adc r24, r1 \n\t"         \
16034    "adc r22, r25 \n\t"        \
16035    "mul r3, r18 \n\t"         \
16036    "add r23, r0 \n\t"         \
16037    "adc r24, r1 \n\t"         \
16038    "adc r22, r25 \n\t"        \
16039    "ld r0, z \n\t"            \
16040    "add r23, r0 \n\t"         \
16041    "adc r24, r25 \n\t"        \
16042    "adc r22, r25 \n\t"        \
16043    "st z+, r23 \n\t"          \
16044                               \
16045    "ld r18, y+ \n\t"          \
16046    "ldi r23, 0 \n\t"          \
16047    "mul r4, r18 \n\t"         \
16048    "add r24, r0 \n\t"         \
16049    "adc r22, r1 \n\t"         \
16050    "adc r23, r25 \n\t"        \
16051    "mul r5, r17 \n\t"         \
16052    "add r24, r0 \n\t"         \
16053    "adc r22, r1 \n\t"         \
16054    "adc r23, r25 \n\t"        \
16055    "mul r6, r16 \n\t"         \
16056    "add r24, r0 \n\t"         \
16057    "adc r22, r1 \n\t"         \
16058    "adc r23, r25 \n\t"        \
16059    "mul r7, r15 \n\t"         \
16060    "add r24, r0 \n\t"         \
16061    "adc r22, r1 \n\t"         \
16062    "adc r23, r25 \n\t"        \
16063    "mul r8, r14 \n\t"         \
16064    "add r24, r0 \n\t"         \
16065    "adc r22, r1 \n\t"         \
16066    "adc r23, r25 \n\t"        \
16067    "mul r9, r13 \n\t"         \
16068    "add r24, r0 \n\t"         \
16069    "adc r22, r1 \n\t"         \
16070    "adc r23, r25 \n\t"        \
16071    "mul r10, r12 \n\t"        \
16072    "add r24, r0 \n\t"         \
16073    "adc r22, r1 \n\t"         \
16074    "adc r23, r25 \n\t"        \
16075    "mul r11, r21 \n\t"        \
16076    "add r24, r0 \n\t"         \
16077    "adc r22, r1 \n\t"         \
16078    "adc r23, r25 \n\t"        \
16079    "mul r2, r20 \n\t"         \
16080    "add r24, r0 \n\t"         \
16081    "adc r22, r1 \n\t"         \
16082    "adc r23, r25 \n\t"        \
16083    "mul r3, r19 \n\t"         \
16084    "add r24, r0 \n\t"         \
16085    "adc r22, r1 \n\t"         \
16086    "adc r23, r25 \n\t"        \
16087    "ld r0, z \n\t"            \
16088    "add r24, r0 \n\t"         \
16089    "adc r22, r25 \n\t"        \
16090    "adc r23, r25 \n\t"        \
16091    "st z+, r24 \n\t"          \
16092                               \
16093    "ld r19, y+ \n\t"          \
16094    "ldi r24, 0 \n\t"          \
16095    "mul r4, r19 \n\t"         \
16096    "add r22, r0 \n\t"         \
16097    "adc r23, r1 \n\t"         \
16098    "adc r24, r25 \n\t"        \
16099    "mul r5, r18 \n\t"         \
16100    "add r22, r0 \n\t"         \
16101    "adc r23, r1 \n\t"         \
16102    "adc r24, r25 \n\t"        \
16103    "mul r6, r17 \n\t"         \
16104    "add r22, r0 \n\t"         \
16105    "adc r23, r1 \n\t"         \
16106    "adc r24, r25 \n\t"        \
16107    "mul r7, r16 \n\t"         \
16108    "add r22, r0 \n\t"         \
16109    "adc r23, r1 \n\t"         \
16110    "adc r24, r25 \n\t"        \
16111    "mul r8, r15 \n\t"         \
16112    "add r22, r0 \n\t"         \
16113    "adc r23, r1 \n\t"         \
16114    "adc r24, r25 \n\t"        \
16115    "mul r9, r14 \n\t"         \
16116    "add r22, r0 \n\t"         \
16117    "adc r23, r1 \n\t"         \
16118    "adc r24, r25 \n\t"        \
16119    "mul r10, r13 \n\t"        \
16120    "add r22, r0 \n\t"         \
16121    "adc r23, r1 \n\t"         \
16122    "adc r24, r25 \n\t"        \
16123    "mul r11, r12 \n\t"        \
16124    "add r22, r0 \n\t"         \
16125    "adc r23, r1 \n\t"         \
16126    "adc r24, r25 \n\t"        \
16127    "mul r2, r21 \n\t"         \
16128    "add r22, r0 \n\t"         \
16129    "adc r23, r1 \n\t"         \
16130    "adc r24, r25 \n\t"        \
16131    "mul r3, r20 \n\t"         \
16132    "add r22, r0 \n\t"         \
16133    "adc r23, r1 \n\t"         \
16134    "adc r24, r25 \n\t"        \
16135    "ld r0, z \n\t"            \
16136    "add r22, r0 \n\t"         \
16137    "adc r23, r25 \n\t"        \
16138    "adc r24, r25 \n\t"        \
16139    "st z+, r22 \n\t"          \
16140                               \
16141    "ld r20, y+ \n\t"          \
16142    "ldi r22, 0 \n\t"          \
16143    "mul r4, r20 \n\t"         \
16144    "add r23, r0 \n\t"         \
16145    "adc r24, r1 \n\t"         \
16146    "adc r22, r25 \n\t"        \
16147    "mul r5, r19 \n\t"         \
16148    "add r23, r0 \n\t"         \
16149    "adc r24, r1 \n\t"         \
16150    "adc r22, r25 \n\t"        \
16151    "mul r6, r18 \n\t"         \
16152    "add r23, r0 \n\t"         \
16153    "adc r24, r1 \n\t"         \
16154    "adc r22, r25 \n\t"        \
16155    "mul r7, r17 \n\t"         \
16156    "add r23, r0 \n\t"         \
16157    "adc r24, r1 \n\t"         \
16158    "adc r22, r25 \n\t"        \
16159    "mul r8, r16 \n\t"         \
16160    "add r23, r0 \n\t"         \
16161    "adc r24, r1 \n\t"         \
16162    "adc r22, r25 \n\t"        \
16163    "mul r9, r15 \n\t"         \
16164    "add r23, r0 \n\t"         \
16165    "adc r24, r1 \n\t"         \
16166    "adc r22, r25 \n\t"        \
16167    "mul r10, r14 \n\t"        \
16168    "add r23, r0 \n\t"         \
16169    "adc r24, r1 \n\t"         \
16170    "adc r22, r25 \n\t"        \
16171    "mul r11, r13 \n\t"        \
16172    "add r23, r0 \n\t"         \
16173    "adc r24, r1 \n\t"         \
16174    "adc r22, r25 \n\t"        \
16175    "mul r2, r12 \n\t"         \
16176    "add r23, r0 \n\t"         \
16177    "adc r24, r1 \n\t"         \
16178    "adc r22, r25 \n\t"        \
16179    "mul r3, r21 \n\t"         \
16180    "add r23, r0 \n\t"         \
16181    "adc r24, r1 \n\t"         \
16182    "adc r22, r25 \n\t"        \
16183    "ld r0, z \n\t"            \
16184    "add r23, r0 \n\t"         \
16185    "adc r24, r25 \n\t"        \
16186    "adc r22, r25 \n\t"        \
16187    "st z+, r23 \n\t"          \
16188                               \
16189    "ld r21, y+ \n\t"          \
16190    "ldi r23, 0 \n\t"          \
16191    "mul r4, r21 \n\t"         \
16192    "add r24, r0 \n\t"         \
16193    "adc r22, r1 \n\t"         \
16194    "adc r23, r25 \n\t"        \
16195    "mul r5, r20 \n\t"         \
16196    "add r24, r0 \n\t"         \
16197    "adc r22, r1 \n\t"         \
16198    "adc r23, r25 \n\t"        \
16199    "mul r6, r19 \n\t"         \
16200    "add r24, r0 \n\t"         \
16201    "adc r22, r1 \n\t"         \
16202    "adc r23, r25 \n\t"        \
16203    "mul r7, r18 \n\t"         \
16204    "add r24, r0 \n\t"         \
16205    "adc r22, r1 \n\t"         \
16206    "adc r23, r25 \n\t"        \
16207    "mul r8, r17 \n\t"         \
16208    "add r24, r0 \n\t"         \
16209    "adc r22, r1 \n\t"         \
16210    "adc r23, r25 \n\t"        \
16211    "mul r9, r16 \n\t"         \
16212    "add r24, r0 \n\t"         \
16213    "adc r22, r1 \n\t"         \
16214    "adc r23, r25 \n\t"        \
16215    "mul r10, r15 \n\t"        \
16216    "add r24, r0 \n\t"         \
16217    "adc r22, r1 \n\t"         \
16218    "adc r23, r25 \n\t"        \
16219    "mul r11, r14 \n\t"        \
16220    "add r24, r0 \n\t"         \
16221    "adc r22, r1 \n\t"         \
16222    "adc r23, r25 \n\t"        \
16223    "mul r2, r13 \n\t"         \
16224    "add r24, r0 \n\t"         \
16225    "adc r22, r1 \n\t"         \
16226    "adc r23, r25 \n\t"        \
16227    "mul r3, r12 \n\t"         \
16228    "add r24, r0 \n\t"         \
16229    "adc r22, r1 \n\t"         \
16230    "adc r23, r25 \n\t"        \
16231    "ld r0, z \n\t"            \
16232    "add r24, r0 \n\t"         \
16233    "adc r22, r25 \n\t"        \
16234    "adc r23, r25 \n\t"        \
16235    "st z+, r24 \n\t"          \
16236                               \
16237    "ld r12, y+ \n\t"          \
16238    "ldi r24, 0 \n\t"          \
16239    "mul r4, r12 \n\t"         \
16240    "add r22, r0 \n\t"         \
16241    "adc r23, r1 \n\t"         \
16242    "adc r24, r25 \n\t"        \
16243    "mul r5, r21 \n\t"         \
16244    "add r22, r0 \n\t"         \
16245    "adc r23, r1 \n\t"         \
16246    "adc r24, r25 \n\t"        \
16247    "mul r6, r20 \n\t"         \
16248    "add r22, r0 \n\t"         \
16249    "adc r23, r1 \n\t"         \
16250    "adc r24, r25 \n\t"        \
16251    "mul r7, r19 \n\t"         \
16252    "add r22, r0 \n\t"         \
16253    "adc r23, r1 \n\t"         \
16254    "adc r24, r25 \n\t"        \
16255    "mul r8, r18 \n\t"         \
16256    "add r22, r0 \n\t"         \
16257    "adc r23, r1 \n\t"         \
16258    "adc r24, r25 \n\t"        \
16259    "mul r9, r17 \n\t"         \
16260    "add r22, r0 \n\t"         \
16261    "adc r23, r1 \n\t"         \
16262    "adc r24, r25 \n\t"        \
16263    "mul r10, r16 \n\t"        \
16264    "add r22, r0 \n\t"         \
16265    "adc r23, r1 \n\t"         \
16266    "adc r24, r25 \n\t"        \
16267    "mul r11, r15 \n\t"        \
16268    "add r22, r0 \n\t"         \
16269    "adc r23, r1 \n\t"         \
16270    "adc r24, r25 \n\t"        \
16271    "mul r2, r14 \n\t"         \
16272    "add r22, r0 \n\t"         \
16273    "adc r23, r1 \n\t"         \
16274    "adc r24, r25 \n\t"        \
16275    "mul r3, r13 \n\t"         \
16276    "add r22, r0 \n\t"         \
16277    "adc r23, r1 \n\t"         \
16278    "adc r24, r25 \n\t"        \
16279    "ld r0, z \n\t"            \
16280    "add r22, r0 \n\t"         \
16281    "adc r23, r25 \n\t"        \
16282    "adc r24, r25 \n\t"        \
16283    "st z+, r22 \n\t"          \
16284                               \
16285    "ld r13, y+ \n\t"          \
16286    "ldi r22, 0 \n\t"          \
16287    "mul r4, r13 \n\t"         \
16288    "add r23, r0 \n\t"         \
16289    "adc r24, r1 \n\t"         \
16290    "adc r22, r25 \n\t"        \
16291    "mul r5, r12 \n\t"         \
16292    "add r23, r0 \n\t"         \
16293    "adc r24, r1 \n\t"         \
16294    "adc r22, r25 \n\t"        \
16295    "mul r6, r21 \n\t"         \
16296    "add r23, r0 \n\t"         \
16297    "adc r24, r1 \n\t"         \
16298    "adc r22, r25 \n\t"        \
16299    "mul r7, r20 \n\t"         \
16300    "add r23, r0 \n\t"         \
16301    "adc r24, r1 \n\t"         \
16302    "adc r22, r25 \n\t"        \
16303    "mul r8, r19 \n\t"         \
16304    "add r23, r0 \n\t"         \
16305    "adc r24, r1 \n\t"         \
16306    "adc r22, r25 \n\t"        \
16307    "mul r9, r18 \n\t"         \
16308    "add r23, r0 \n\t"         \
16309    "adc r24, r1 \n\t"         \
16310    "adc r22, r25 \n\t"        \
16311    "mul r10, r17 \n\t"        \
16312    "add r23, r0 \n\t"         \
16313    "adc r24, r1 \n\t"         \
16314    "adc r22, r25 \n\t"        \
16315    "mul r11, r16 \n\t"        \
16316    "add r23, r0 \n\t"         \
16317    "adc r24, r1 \n\t"         \
16318    "adc r22, r25 \n\t"        \
16319    "mul r2, r15 \n\t"         \
16320    "add r23, r0 \n\t"         \
16321    "adc r24, r1 \n\t"         \
16322    "adc r22, r25 \n\t"        \
16323    "mul r3, r14 \n\t"         \
16324    "add r23, r0 \n\t"         \
16325    "adc r24, r1 \n\t"         \
16326    "adc r22, r25 \n\t"        \
16327    "ld r0, z \n\t"            \
16328    "add r23, r0 \n\t"         \
16329    "adc r24, r25 \n\t"        \
16330    "adc r22, r25 \n\t"        \
16331    "st z+, r23 \n\t"          \
16332                               \
16333    "ldi r23, 0 \n\t"          \
16334    "mul r5, r13 \n\t"         \
16335    "add r24, r0 \n\t"         \
16336    "adc r22, r1 \n\t"         \
16337    "adc r23, r25 \n\t"        \
16338    "mul r6, r12 \n\t"         \
16339    "add r24, r0 \n\t"         \
16340    "adc r22, r1 \n\t"         \
16341    "adc r23, r25 \n\t"        \
16342    "mul r7, r21 \n\t"         \
16343    "add r24, r0 \n\t"         \
16344    "adc r22, r1 \n\t"         \
16345    "adc r23, r25 \n\t"        \
16346    "mul r8, r20 \n\t"         \
16347    "add r24, r0 \n\t"         \
16348    "adc r22, r1 \n\t"         \
16349    "adc r23, r25 \n\t"        \
16350    "mul r9, r19 \n\t"         \
16351    "add r24, r0 \n\t"         \
16352    "adc r22, r1 \n\t"         \
16353    "adc r23, r25 \n\t"        \
16354    "mul r10, r18 \n\t"        \
16355    "add r24, r0 \n\t"         \
16356    "adc r22, r1 \n\t"         \
16357    "adc r23, r25 \n\t"        \
16358    "mul r11, r17 \n\t"        \
16359    "add r24, r0 \n\t"         \
16360    "adc r22, r1 \n\t"         \
16361    "adc r23, r25 \n\t"        \
16362    "mul r2, r16 \n\t"         \
16363    "add r24, r0 \n\t"         \
16364    "adc r22, r1 \n\t"         \
16365    "adc r23, r25 \n\t"        \
16366    "mul r3, r15 \n\t"         \
16367    "add r24, r0 \n\t"         \
16368    "adc r22, r1 \n\t"         \
16369    "adc r23, r25 \n\t"        \
16370    "st z+, r24 \n\t"          \
16371                               \
16372    "ldi r24, 0 \n\t"          \
16373    "mul r6, r13 \n\t"         \
16374    "add r22, r0 \n\t"         \
16375    "adc r23, r1 \n\t"         \
16376    "adc r24, r25 \n\t"        \
16377    "mul r7, r12 \n\t"         \
16378    "add r22, r0 \n\t"         \
16379    "adc r23, r1 \n\t"         \
16380    "adc r24, r25 \n\t"        \
16381    "mul r8, r21 \n\t"         \
16382    "add r22, r0 \n\t"         \
16383    "adc r23, r1 \n\t"         \
16384    "adc r24, r25 \n\t"        \
16385    "mul r9, r20 \n\t"         \
16386    "add r22, r0 \n\t"         \
16387    "adc r23, r1 \n\t"         \
16388    "adc r24, r25 \n\t"        \
16389    "mul r10, r19 \n\t"        \
16390    "add r22, r0 \n\t"         \
16391    "adc r23, r1 \n\t"         \
16392    "adc r24, r25 \n\t"        \
16393    "mul r11, r18 \n\t"        \
16394    "add r22, r0 \n\t"         \
16395    "adc r23, r1 \n\t"         \
16396    "adc r24, r25 \n\t"        \
16397    "mul r2, r17 \n\t"         \
16398    "add r22, r0 \n\t"         \
16399    "adc r23, r1 \n\t"         \
16400    "adc r24, r25 \n\t"        \
16401    "mul r3, r16 \n\t"         \
16402    "add r22, r0 \n\t"         \
16403    "adc r23, r1 \n\t"         \
16404    "adc r24, r25 \n\t"        \
16405    "st z+, r22 \n\t"          \
16406                               \
16407    "ldi r22, 0 \n\t"          \
16408    "mul r7, r13 \n\t"         \
16409    "add r23, r0 \n\t"         \
16410    "adc r24, r1 \n\t"         \
16411    "adc r22, r25 \n\t"        \
16412    "mul r8, r12 \n\t"         \
16413    "add r23, r0 \n\t"         \
16414    "adc r24, r1 \n\t"         \
16415    "adc r22, r25 \n\t"        \
16416    "mul r9, r21 \n\t"         \
16417    "add r23, r0 \n\t"         \
16418    "adc r24, r1 \n\t"         \
16419    "adc r22, r25 \n\t"        \
16420    "mul r10, r20 \n\t"        \
16421    "add r23, r0 \n\t"         \
16422    "adc r24, r1 \n\t"         \
16423    "adc r22, r25 \n\t"        \
16424    "mul r11, r19 \n\t"        \
16425    "add r23, r0 \n\t"         \
16426    "adc r24, r1 \n\t"         \
16427    "adc r22, r25 \n\t"        \
16428    "mul r2, r18 \n\t"         \
16429    "add r23, r0 \n\t"         \
16430    "adc r24, r1 \n\t"         \
16431    "adc r22, r25 \n\t"        \
16432    "mul r3, r17 \n\t"         \
16433    "add r23, r0 \n\t"         \
16434    "adc r24, r1 \n\t"         \
16435    "adc r22, r25 \n\t"        \
16436    "st z+, r23 \n\t"          \
16437                               \
16438    "ldi r23, 0 \n\t"          \
16439    "mul r8, r13 \n\t"         \
16440    "add r24, r0 \n\t"         \
16441    "adc r22, r1 \n\t"         \
16442    "adc r23, r25 \n\t"        \
16443    "mul r9, r12 \n\t"         \
16444    "add r24, r0 \n\t"         \
16445    "adc r22, r1 \n\t"         \
16446    "adc r23, r25 \n\t"        \
16447    "mul r10, r21 \n\t"        \
16448    "add r24, r0 \n\t"         \
16449    "adc r22, r1 \n\t"         \
16450    "adc r23, r25 \n\t"        \
16451    "mul r11, r20 \n\t"        \
16452    "add r24, r0 \n\t"         \
16453    "adc r22, r1 \n\t"         \
16454    "adc r23, r25 \n\t"        \
16455    "mul r2, r19 \n\t"         \
16456    "add r24, r0 \n\t"         \
16457    "adc r22, r1 \n\t"         \
16458    "adc r23, r25 \n\t"        \
16459    "mul r3, r18 \n\t"         \
16460    "add r24, r0 \n\t"         \
16461    "adc r22, r1 \n\t"         \
16462    "adc r23, r25 \n\t"        \
16463    "st z+, r24 \n\t"          \
16464                               \
16465    "ldi r24, 0 \n\t"          \
16466    "mul r9, r13 \n\t"         \
16467    "add r22, r0 \n\t"         \
16468    "adc r23, r1 \n\t"         \
16469    "adc r24, r25 \n\t"        \
16470    "mul r10, r12 \n\t"        \
16471    "add r22, r0 \n\t"         \
16472    "adc r23, r1 \n\t"         \
16473    "adc r24, r25 \n\t"        \
16474    "mul r11, r21 \n\t"        \
16475    "add r22, r0 \n\t"         \
16476    "adc r23, r1 \n\t"         \
16477    "adc r24, r25 \n\t"        \
16478    "mul r2, r20 \n\t"         \
16479    "add r22, r0 \n\t"         \
16480    "adc r23, r1 \n\t"         \
16481    "adc r24, r25 \n\t"        \
16482    "mul r3, r19 \n\t"         \
16483    "add r22, r0 \n\t"         \
16484    "adc r23, r1 \n\t"         \
16485    "adc r24, r25 \n\t"        \
16486    "st z+, r22 \n\t"          \
16487                               \
16488    "ldi r22, 0 \n\t"          \
16489    "mul r10, r13 \n\t"        \
16490    "add r23, r0 \n\t"         \
16491    "adc r24, r1 \n\t"         \
16492    "adc r22, r25 \n\t"        \
16493    "mul r11, r12 \n\t"        \
16494    "add r23, r0 \n\t"         \
16495    "adc r24, r1 \n\t"         \
16496    "adc r22, r25 \n\t"        \
16497    "mul r2, r21 \n\t"         \
16498    "add r23, r0 \n\t"         \
16499    "adc r24, r1 \n\t"         \
16500    "adc r22, r25 \n\t"        \
16501    "mul r3, r20 \n\t"         \
16502    "add r23, r0 \n\t"         \
16503    "adc r24, r1 \n\t"         \
16504    "adc r22, r25 \n\t"        \
16505    "st z+, r23 \n\t"          \
16506                               \
16507    "ldi r23, 0 \n\t"          \
16508    "mul r11, r13 \n\t"        \
16509    "add r24, r0 \n\t"         \
16510    "adc r22, r1 \n\t"         \
16511    "adc r23, r25 \n\t"        \
16512    "mul r2, r12 \n\t"         \
16513    "add r24, r0 \n\t"         \
16514    "adc r22, r1 \n\t"         \
16515    "adc r23, r25 \n\t"        \
16516    "mul r3, r21 \n\t"         \
16517    "add r24, r0 \n\t"         \
16518    "adc r22, r1 \n\t"         \
16519    "adc r23, r25 \n\t"        \
16520    "st z+, r24 \n\t"          \
16521                               \
16522    "ldi r24, 0 \n\t"          \
16523    "mul r2, r13 \n\t"         \
16524    "add r22, r0 \n\t"         \
16525    "adc r23, r1 \n\t"         \
16526    "adc r24, r25 \n\t"        \
16527    "mul r3, r12 \n\t"         \
16528    "add r22, r0 \n\t"         \
16529    "adc r23, r1 \n\t"         \
16530    "adc r24, r25 \n\t"        \
16531    "st z+, r22 \n\t"          \
16532                               \
16533    "mul r3, r13 \n\t"         \
16534    "add r23, r0 \n\t"         \
16535    "adc r24, r1 \n\t"         \
16536    "st z+, r23 \n\t"          \
16537    "st z+, r24 \n\t"
16538
16539#define FAST_SQUARE_ASM_20         \
16540    "ld r2, x+ \n\t"               \
16541    "ld r3, x+ \n\t"               \
16542    "ld r4, x+ \n\t"               \
16543    "ld r5, x+ \n\t"               \
16544    "ld r6, x+ \n\t"               \
16545    "ld r7, x+ \n\t"               \
16546    "ld r8, x+ \n\t"               \
16547    "ld r9, x+ \n\t"               \
16548    "ld r10, x+ \n\t"              \
16549    "ld r11, x+ \n\t"              \
16550    "ld r12, x+ \n\t"              \
16551    "ld r13, x+ \n\t"              \
16552    "ld r14, x+ \n\t"              \
16553    "ld r15, x+ \n\t"              \
16554    "ld r16, x+ \n\t"              \
16555    "ld r17, x+ \n\t"              \
16556    "ld r18, x+ \n\t"              \
16557    "ld r19, x+ \n\t"              \
16558    "ld r20, x+ \n\t"              \
16559    "ld r21, x+ \n\t"              \
16560    "push r26 \n\t"                \
16561    "push r27 \n\t"                \
16562    "ldi r25, 0 \n\t"              \
16563                                   \
16564    "ldi r23, 0 \n\t"              \
16565    "mul r2, r2 \n\t"              \
16566    "st z+, r0 \n\t"               \
16567    "mov r22, r1 \n\t"             \
16568                                   \
16569    "ldi r24, 0 \n\t"              \
16570    "mul r2, r3 \n\t"              \
16571    "lsl r0 \n\t"                  \
16572    "rol r1 \n\t"                  \
16573    "adc r24, r25 \n\t"            \
16574    "add r22, r0 \n\t"             \
16575    "adc r23, r1 \n\t"             \
16576    "adc r24, r25 \n\t"            \
16577    "st z+, r22 \n\t"              \
16578                                   \
16579    "ldi r22, 0 \n\t"              \
16580    "mul r2, r4 \n\t"              \
16581    "lsl r0 \n\t"                  \
16582    "rol r1 \n\t"                  \
16583    "adc r22, r25 \n\t"            \
16584    "add r23, r0 \n\t"             \
16585    "adc r24, r1 \n\t"             \
16586    "adc r22, r25 \n\t"            \
16587    "mul r3, r3 \n\t"              \
16588    "add r23, r0 \n\t"             \
16589    "adc r24, r1 \n\t"             \
16590    "adc r22, r25 \n\t"            \
16591    "st z+, r23 \n\t"              \
16592                                   \
16593    "ldi r26, 0 \n\t"              \
16594    "mul r2, r5 \n\t"              \
16595    "mov r23, r0 \n\t"             \
16596    "mov r27, r1 \n\t"             \
16597    "mul r3, r4 \n\t"              \
16598    "add r23, r0 \n\t"             \
16599    "adc r27, r1 \n\t"             \
16600    "adc r26, r25 \n\t"            \
16601    "lsl r23 \n\t"                 \
16602    "rol r27 \n\t"                 \
16603    "rol r26 \n\t"                 \
16604    "add r23, r24 \n\t"            \
16605    "adc r27, r22 \n\t"            \
16606    "adc r26, r25 \n\t"            \
16607    "st z+, r23 \n\t"              \
16608                                   \
16609    "ldi r22, 0 \n\t"              \
16610    "mul r2, r6 \n\t"              \
16611    "mov r23, r0 \n\t"             \
16612    "mov r24, r1 \n\t"             \
16613    "mul r3, r5 \n\t"              \
16614    "add r23, r0 \n\t"             \
16615    "adc r24, r1 \n\t"             \
16616    "adc r22, r25 \n\t"            \
16617    "lsl r23 \n\t"                 \
16618    "rol r24 \n\t"                 \
16619    "rol r22 \n\t"                 \
16620    "mul r4, r4 \n\t"              \
16621    "add r23, r0 \n\t"             \
16622    "adc r24, r1 \n\t"             \
16623    "adc r22, r25 \n\t"            \
16624    "add r23, r27 \n\t"            \
16625    "adc r24, r26 \n\t"            \
16626    "adc r22, r25 \n\t"            \
16627    "st z+, r23 \n\t"              \
16628                                   \
16629    "ldi r26, 0 \n\t"              \
16630    "mul r2, r7 \n\t"              \
16631    "mov r23, r0 \n\t"             \
16632    "mov r27, r1 \n\t"             \
16633    "mul r3, r6 \n\t"              \
16634    "add r23, r0 \n\t"             \
16635    "adc r27, r1 \n\t"             \
16636    "adc r26, r25 \n\t"            \
16637    "mul r4, r5 \n\t"              \
16638    "add r23, r0 \n\t"             \
16639    "adc r27, r1 \n\t"             \
16640    "adc r26, r25 \n\t"            \
16641    "lsl r23 \n\t"                 \
16642    "rol r27 \n\t"                 \
16643    "rol r26 \n\t"                 \
16644    "add r23, r24 \n\t"            \
16645    "adc r27, r22 \n\t"            \
16646    "adc r26, r25 \n\t"            \
16647    "st z+, r23 \n\t"              \
16648                                   \
16649    "ldi r22, 0 \n\t"              \
16650    "mul r2, r8 \n\t"              \
16651    "mov r23, r0 \n\t"             \
16652    "mov r24, r1 \n\t"             \
16653    "mul r3, r7 \n\t"              \
16654    "add r23, r0 \n\t"             \
16655    "adc r24, r1 \n\t"             \
16656    "adc r22, r25 \n\t"            \
16657    "mul r4, r6 \n\t"              \
16658    "add r23, r0 \n\t"             \
16659    "adc r24, r1 \n\t"             \
16660    "adc r22, r25 \n\t"            \
16661    "lsl r23 \n\t"                 \
16662    "rol r24 \n\t"                 \
16663    "rol r22 \n\t"                 \
16664    "mul r5, r5 \n\t"              \
16665    "add r23, r0 \n\t"             \
16666    "adc r24, r1 \n\t"             \
16667    "adc r22, r25 \n\t"            \
16668    "add r23, r27 \n\t"            \
16669    "adc r24, r26 \n\t"            \
16670    "adc r22, r25 \n\t"            \
16671    "st z+, r23 \n\t"              \
16672                                   \
16673    "ldi r26, 0 \n\t"              \
16674    "mul r2, r9 \n\t"              \
16675    "mov r23, r0 \n\t"             \
16676    "mov r27, r1 \n\t"             \
16677    "mul r3, r8 \n\t"              \
16678    "add r23, r0 \n\t"             \
16679    "adc r27, r1 \n\t"             \
16680    "adc r26, r25 \n\t"            \
16681    "mul r4, r7 \n\t"              \
16682    "add r23, r0 \n\t"             \
16683    "adc r27, r1 \n\t"             \
16684    "adc r26, r25 \n\t"            \
16685    "mul r5, r6 \n\t"              \
16686    "add r23, r0 \n\t"             \
16687    "adc r27, r1 \n\t"             \
16688    "adc r26, r25 \n\t"            \
16689    "lsl r23 \n\t"                 \
16690    "rol r27 \n\t"                 \
16691    "rol r26 \n\t"                 \
16692    "add r23, r24 \n\t"            \
16693    "adc r27, r22 \n\t"            \
16694    "adc r26, r25 \n\t"            \
16695    "st z+, r23 \n\t"              \
16696                                   \
16697    "ldi r22, 0 \n\t"              \
16698    "mul r2, r10 \n\t"             \
16699    "mov r23, r0 \n\t"             \
16700    "mov r24, r1 \n\t"             \
16701    "mul r3, r9 \n\t"              \
16702    "add r23, r0 \n\t"             \
16703    "adc r24, r1 \n\t"             \
16704    "adc r22, r25 \n\t"            \
16705    "mul r4, r8 \n\t"              \
16706    "add r23, r0 \n\t"             \
16707    "adc r24, r1 \n\t"             \
16708    "adc r22, r25 \n\t"            \
16709    "mul r5, r7 \n\t"              \
16710    "add r23, r0 \n\t"             \
16711    "adc r24, r1 \n\t"             \
16712    "adc r22, r25 \n\t"            \
16713    "lsl r23 \n\t"                 \
16714    "rol r24 \n\t"                 \
16715    "rol r22 \n\t"                 \
16716    "mul r6, r6 \n\t"              \
16717    "add r23, r0 \n\t"             \
16718    "adc r24, r1 \n\t"             \
16719    "adc r22, r25 \n\t"            \
16720    "add r23, r27 \n\t"            \
16721    "adc r24, r26 \n\t"            \
16722    "adc r22, r25 \n\t"            \
16723    "st z+, r23 \n\t"              \
16724                                   \
16725    "ldi r26, 0 \n\t"              \
16726    "mul r2, r11 \n\t"             \
16727    "mov r23, r0 \n\t"             \
16728    "mov r27, r1 \n\t"             \
16729    "mul r3, r10 \n\t"             \
16730    "add r23, r0 \n\t"             \
16731    "adc r27, r1 \n\t"             \
16732    "adc r26, r25 \n\t"            \
16733    "mul r4, r9 \n\t"              \
16734    "add r23, r0 \n\t"             \
16735    "adc r27, r1 \n\t"             \
16736    "adc r26, r25 \n\t"            \
16737    "mul r5, r8 \n\t"              \
16738    "add r23, r0 \n\t"             \
16739    "adc r27, r1 \n\t"             \
16740    "adc r26, r25 \n\t"            \
16741    "mul r6, r7 \n\t"              \
16742    "add r23, r0 \n\t"             \
16743    "adc r27, r1 \n\t"             \
16744    "adc r26, r25 \n\t"            \
16745    "lsl r23 \n\t"                 \
16746    "rol r27 \n\t"                 \
16747    "rol r26 \n\t"                 \
16748    "add r23, r24 \n\t"            \
16749    "adc r27, r22 \n\t"            \
16750    "adc r26, r25 \n\t"            \
16751    "st z+, r23 \n\t"              \
16752                                   \
16753    "ldi r22, 0 \n\t"              \
16754    "mul r2, r12 \n\t"             \
16755    "mov r23, r0 \n\t"             \
16756    "mov r24, r1 \n\t"             \
16757    "mul r3, r11 \n\t"             \
16758    "add r23, r0 \n\t"             \
16759    "adc r24, r1 \n\t"             \
16760    "adc r22, r25 \n\t"            \
16761    "mul r4, r10 \n\t"             \
16762    "add r23, r0 \n\t"             \
16763    "adc r24, r1 \n\t"             \
16764    "adc r22, r25 \n\t"            \
16765    "mul r5, r9 \n\t"              \
16766    "add r23, r0 \n\t"             \
16767    "adc r24, r1 \n\t"             \
16768    "adc r22, r25 \n\t"            \
16769    "mul r6, r8 \n\t"              \
16770    "add r23, r0 \n\t"             \
16771    "adc r24, r1 \n\t"             \
16772    "adc r22, r25 \n\t"            \
16773    "lsl r23 \n\t"                 \
16774    "rol r24 \n\t"                 \
16775    "rol r22 \n\t"                 \
16776    "mul r7, r7 \n\t"              \
16777    "add r23, r0 \n\t"             \
16778    "adc r24, r1 \n\t"             \
16779    "adc r22, r25 \n\t"            \
16780    "add r23, r27 \n\t"            \
16781    "adc r24, r26 \n\t"            \
16782    "adc r22, r25 \n\t"            \
16783    "st z+, r23 \n\t"              \
16784                                   \
16785    "ldi r26, 0 \n\t"              \
16786    "mul r2, r13 \n\t"             \
16787    "mov r23, r0 \n\t"             \
16788    "mov r27, r1 \n\t"             \
16789    "mul r3, r12 \n\t"             \
16790    "add r23, r0 \n\t"             \
16791    "adc r27, r1 \n\t"             \
16792    "adc r26, r25 \n\t"            \
16793    "mul r4, r11 \n\t"             \
16794    "add r23, r0 \n\t"             \
16795    "adc r27, r1 \n\t"             \
16796    "adc r26, r25 \n\t"            \
16797    "mul r5, r10 \n\t"             \
16798    "add r23, r0 \n\t"             \
16799    "adc r27, r1 \n\t"             \
16800    "adc r26, r25 \n\t"            \
16801    "mul r6, r9 \n\t"              \
16802    "add r23, r0 \n\t"             \
16803    "adc r27, r1 \n\t"             \
16804    "adc r26, r25 \n\t"            \
16805    "mul r7, r8 \n\t"              \
16806    "add r23, r0 \n\t"             \
16807    "adc r27, r1 \n\t"             \
16808    "adc r26, r25 \n\t"            \
16809    "lsl r23 \n\t"                 \
16810    "rol r27 \n\t"                 \
16811    "rol r26 \n\t"                 \
16812    "add r23, r24 \n\t"            \
16813    "adc r27, r22 \n\t"            \
16814    "adc r26, r25 \n\t"            \
16815    "st z+, r23 \n\t"              \
16816                                   \
16817    "ldi r22, 0 \n\t"              \
16818    "mul r2, r14 \n\t"             \
16819    "mov r23, r0 \n\t"             \
16820    "mov r24, r1 \n\t"             \
16821    "mul r3, r13 \n\t"             \
16822    "add r23, r0 \n\t"             \
16823    "adc r24, r1 \n\t"             \
16824    "adc r22, r25 \n\t"            \
16825    "mul r4, r12 \n\t"             \
16826    "add r23, r0 \n\t"             \
16827    "adc r24, r1 \n\t"             \
16828    "adc r22, r25 \n\t"            \
16829    "mul r5, r11 \n\t"             \
16830    "add r23, r0 \n\t"             \
16831    "adc r24, r1 \n\t"             \
16832    "adc r22, r25 \n\t"            \
16833    "mul r6, r10 \n\t"             \
16834    "add r23, r0 \n\t"             \
16835    "adc r24, r1 \n\t"             \
16836    "adc r22, r25 \n\t"            \
16837    "mul r7, r9 \n\t"              \
16838    "add r23, r0 \n\t"             \
16839    "adc r24, r1 \n\t"             \
16840    "adc r22, r25 \n\t"            \
16841    "lsl r23 \n\t"                 \
16842    "rol r24 \n\t"                 \
16843    "rol r22 \n\t"                 \
16844    "mul r8, r8 \n\t"              \
16845    "add r23, r0 \n\t"             \
16846    "adc r24, r1 \n\t"             \
16847    "adc r22, r25 \n\t"            \
16848    "add r23, r27 \n\t"            \
16849    "adc r24, r26 \n\t"            \
16850    "adc r22, r25 \n\t"            \
16851    "st z+, r23 \n\t"              \
16852                                   \
16853    "ldi r26, 0 \n\t"              \
16854    "mul r2, r15 \n\t"             \
16855    "mov r23, r0 \n\t"             \
16856    "mov r27, r1 \n\t"             \
16857    "mul r3, r14 \n\t"             \
16858    "add r23, r0 \n\t"             \
16859    "adc r27, r1 \n\t"             \
16860    "adc r26, r25 \n\t"            \
16861    "mul r4, r13 \n\t"             \
16862    "add r23, r0 \n\t"             \
16863    "adc r27, r1 \n\t"             \
16864    "adc r26, r25 \n\t"            \
16865    "mul r5, r12 \n\t"             \
16866    "add r23, r0 \n\t"             \
16867    "adc r27, r1 \n\t"             \
16868    "adc r26, r25 \n\t"            \
16869    "mul r6, r11 \n\t"             \
16870    "add r23, r0 \n\t"             \
16871    "adc r27, r1 \n\t"             \
16872    "adc r26, r25 \n\t"            \
16873    "mul r7, r10 \n\t"             \
16874    "add r23, r0 \n\t"             \
16875    "adc r27, r1 \n\t"             \
16876    "adc r26, r25 \n\t"            \
16877    "mul r8, r9 \n\t"              \
16878    "add r23, r0 \n\t"             \
16879    "adc r27, r1 \n\t"             \
16880    "adc r26, r25 \n\t"            \
16881    "lsl r23 \n\t"                 \
16882    "rol r27 \n\t"                 \
16883    "rol r26 \n\t"                 \
16884    "add r23, r24 \n\t"            \
16885    "adc r27, r22 \n\t"            \
16886    "adc r26, r25 \n\t"            \
16887    "st z+, r23 \n\t"              \
16888                                   \
16889    "ldi r22, 0 \n\t"              \
16890    "mul r2, r16 \n\t"             \
16891    "mov r23, r0 \n\t"             \
16892    "mov r24, r1 \n\t"             \
16893    "mul r3, r15 \n\t"             \
16894    "add r23, r0 \n\t"             \
16895    "adc r24, r1 \n\t"             \
16896    "adc r22, r25 \n\t"            \
16897    "mul r4, r14 \n\t"             \
16898    "add r23, r0 \n\t"             \
16899    "adc r24, r1 \n\t"             \
16900    "adc r22, r25 \n\t"            \
16901    "mul r5, r13 \n\t"             \
16902    "add r23, r0 \n\t"             \
16903    "adc r24, r1 \n\t"             \
16904    "adc r22, r25 \n\t"            \
16905    "mul r6, r12 \n\t"             \
16906    "add r23, r0 \n\t"             \
16907    "adc r24, r1 \n\t"             \
16908    "adc r22, r25 \n\t"            \
16909    "mul r7, r11 \n\t"             \
16910    "add r23, r0 \n\t"             \
16911    "adc r24, r1 \n\t"             \
16912    "adc r22, r25 \n\t"            \
16913    "mul r8, r10 \n\t"             \
16914    "add r23, r0 \n\t"             \
16915    "adc r24, r1 \n\t"             \
16916    "adc r22, r25 \n\t"            \
16917    "lsl r23 \n\t"                 \
16918    "rol r24 \n\t"                 \
16919    "rol r22 \n\t"                 \
16920    "mul r9, r9 \n\t"              \
16921    "add r23, r0 \n\t"             \
16922    "adc r24, r1 \n\t"             \
16923    "adc r22, r25 \n\t"            \
16924    "add r23, r27 \n\t"            \
16925    "adc r24, r26 \n\t"            \
16926    "adc r22, r25 \n\t"            \
16927    "st z+, r23 \n\t"              \
16928                                   \
16929    "ldi r26, 0 \n\t"              \
16930    "mul r2, r17 \n\t"             \
16931    "mov r23, r0 \n\t"             \
16932    "mov r27, r1 \n\t"             \
16933    "mul r3, r16 \n\t"             \
16934    "add r23, r0 \n\t"             \
16935    "adc r27, r1 \n\t"             \
16936    "adc r26, r25 \n\t"            \
16937    "mul r4, r15 \n\t"             \
16938    "add r23, r0 \n\t"             \
16939    "adc r27, r1 \n\t"             \
16940    "adc r26, r25 \n\t"            \
16941    "mul r5, r14 \n\t"             \
16942    "add r23, r0 \n\t"             \
16943    "adc r27, r1 \n\t"             \
16944    "adc r26, r25 \n\t"            \
16945    "mul r6, r13 \n\t"             \
16946    "add r23, r0 \n\t"             \
16947    "adc r27, r1 \n\t"             \
16948    "adc r26, r25 \n\t"            \
16949    "mul r7, r12 \n\t"             \
16950    "add r23, r0 \n\t"             \
16951    "adc r27, r1 \n\t"             \
16952    "adc r26, r25 \n\t"            \
16953    "mul r8, r11 \n\t"             \
16954    "add r23, r0 \n\t"             \
16955    "adc r27, r1 \n\t"             \
16956    "adc r26, r25 \n\t"            \
16957    "mul r9, r10 \n\t"             \
16958    "add r23, r0 \n\t"             \
16959    "adc r27, r1 \n\t"             \
16960    "adc r26, r25 \n\t"            \
16961    "lsl r23 \n\t"                 \
16962    "rol r27 \n\t"                 \
16963    "rol r26 \n\t"                 \
16964    "add r23, r24 \n\t"            \
16965    "adc r27, r22 \n\t"            \
16966    "adc r26, r25 \n\t"            \
16967    "st z+, r23 \n\t"              \
16968                                   \
16969    "ldi r22, 0 \n\t"              \
16970    "mul r2, r18 \n\t"             \
16971    "mov r23, r0 \n\t"             \
16972    "mov r24, r1 \n\t"             \
16973    "mul r3, r17 \n\t"             \
16974    "add r23, r0 \n\t"             \
16975    "adc r24, r1 \n\t"             \
16976    "adc r22, r25 \n\t"            \
16977    "mul r4, r16 \n\t"             \
16978    "add r23, r0 \n\t"             \
16979    "adc r24, r1 \n\t"             \
16980    "adc r22, r25 \n\t"            \
16981    "mul r5, r15 \n\t"             \
16982    "add r23, r0 \n\t"             \
16983    "adc r24, r1 \n\t"             \
16984    "adc r22, r25 \n\t"            \
16985    "mul r6, r14 \n\t"             \
16986    "add r23, r0 \n\t"             \
16987    "adc r24, r1 \n\t"             \
16988    "adc r22, r25 \n\t"            \
16989    "mul r7, r13 \n\t"             \
16990    "add r23, r0 \n\t"             \
16991    "adc r24, r1 \n\t"             \
16992    "adc r22, r25 \n\t"            \
16993    "mul r8, r12 \n\t"             \
16994    "add r23, r0 \n\t"             \
16995    "adc r24, r1 \n\t"             \
16996    "adc r22, r25 \n\t"            \
16997    "mul r9, r11 \n\t"             \
16998    "add r23, r0 \n\t"             \
16999    "adc r24, r1 \n\t"             \
17000    "adc r22, r25 \n\t"            \
17001    "lsl r23 \n\t"                 \
17002    "rol r24 \n\t"                 \
17003    "rol r22 \n\t"                 \
17004    "mul r10, r10 \n\t"            \
17005    "add r23, r0 \n\t"             \
17006    "adc r24, r1 \n\t"             \
17007    "adc r22, r25 \n\t"            \
17008    "add r23, r27 \n\t"            \
17009    "adc r24, r26 \n\t"            \
17010    "adc r22, r25 \n\t"            \
17011    "st z+, r23 \n\t"              \
17012                                   \
17013    "ldi r26, 0 \n\t"              \
17014    "mul r2, r19 \n\t"             \
17015    "mov r23, r0 \n\t"             \
17016    "mov r27, r1 \n\t"             \
17017    "mul r3, r18 \n\t"             \
17018    "add r23, r0 \n\t"             \
17019    "adc r27, r1 \n\t"             \
17020    "adc r26, r25 \n\t"            \
17021    "mul r4, r17 \n\t"             \
17022    "add r23, r0 \n\t"             \
17023    "adc r27, r1 \n\t"             \
17024    "adc r26, r25 \n\t"            \
17025    "mul r5, r16 \n\t"             \
17026    "add r23, r0 \n\t"             \
17027    "adc r27, r1 \n\t"             \
17028    "adc r26, r25 \n\t"            \
17029    "mul r6, r15 \n\t"             \
17030    "add r23, r0 \n\t"             \
17031    "adc r27, r1 \n\t"             \
17032    "adc r26, r25 \n\t"            \
17033    "mul r7, r14 \n\t"             \
17034    "add r23, r0 \n\t"             \
17035    "adc r27, r1 \n\t"             \
17036    "adc r26, r25 \n\t"            \
17037    "mul r8, r13 \n\t"             \
17038    "add r23, r0 \n\t"             \
17039    "adc r27, r1 \n\t"             \
17040    "adc r26, r25 \n\t"            \
17041    "mul r9, r12 \n\t"             \
17042    "add r23, r0 \n\t"             \
17043    "adc r27, r1 \n\t"             \
17044    "adc r26, r25 \n\t"            \
17045    "mul r10, r11 \n\t"            \
17046    "add r23, r0 \n\t"             \
17047    "adc r27, r1 \n\t"             \
17048    "adc r26, r25 \n\t"            \
17049    "lsl r23 \n\t"                 \
17050    "rol r27 \n\t"                 \
17051    "rol r26 \n\t"                 \
17052    "add r23, r24 \n\t"            \
17053    "adc r27, r22 \n\t"            \
17054    "adc r26, r25 \n\t"            \
17055    "st z+, r23 \n\t"              \
17056                                   \
17057    "ldi r22, 0 \n\t"              \
17058    "mul r2, r20 \n\t"             \
17059    "mov r23, r0 \n\t"             \
17060    "mov r24, r1 \n\t"             \
17061    "mul r3, r19 \n\t"             \
17062    "add r23, r0 \n\t"             \
17063    "adc r24, r1 \n\t"             \
17064    "adc r22, r25 \n\t"            \
17065    "mul r4, r18 \n\t"             \
17066    "add r23, r0 \n\t"             \
17067    "adc r24, r1 \n\t"             \
17068    "adc r22, r25 \n\t"            \
17069    "mul r5, r17 \n\t"             \
17070    "add r23, r0 \n\t"             \
17071    "adc r24, r1 \n\t"             \
17072    "adc r22, r25 \n\t"            \
17073    "mul r6, r16 \n\t"             \
17074    "add r23, r0 \n\t"             \
17075    "adc r24, r1 \n\t"             \
17076    "adc r22, r25 \n\t"            \
17077    "mul r7, r15 \n\t"             \
17078    "add r23, r0 \n\t"             \
17079    "adc r24, r1 \n\t"             \
17080    "adc r22, r25 \n\t"            \
17081    "mul r8, r14 \n\t"             \
17082    "add r23, r0 \n\t"             \
17083    "adc r24, r1 \n\t"             \
17084    "adc r22, r25 \n\t"            \
17085    "mul r9, r13 \n\t"             \
17086    "add r23, r0 \n\t"             \
17087    "adc r24, r1 \n\t"             \
17088    "adc r22, r25 \n\t"            \
17089    "mul r10, r12 \n\t"            \
17090    "add r23, r0 \n\t"             \
17091    "adc r24, r1 \n\t"             \
17092    "adc r22, r25 \n\t"            \
17093    "lsl r23 \n\t"                 \
17094    "rol r24 \n\t"                 \
17095    "rol r22 \n\t"                 \
17096    "mul r11, r11 \n\t"            \
17097    "add r23, r0 \n\t"             \
17098    "adc r24, r1 \n\t"             \
17099    "adc r22, r25 \n\t"            \
17100    "add r23, r27 \n\t"            \
17101    "adc r24, r26 \n\t"            \
17102    "adc r22, r25 \n\t"            \
17103    "st z+, r23 \n\t"              \
17104                                   \
17105    "ldi r26, 0 \n\t"              \
17106    "mul r2, r21 \n\t"             \
17107    "mov r23, r0 \n\t"             \
17108    "mov r27, r1 \n\t"             \
17109    "mul r3, r20 \n\t"             \
17110    "add r23, r0 \n\t"             \
17111    "adc r27, r1 \n\t"             \
17112    "adc r26, r25 \n\t"            \
17113    "mul r4, r19 \n\t"             \
17114    "add r23, r0 \n\t"             \
17115    "adc r27, r1 \n\t"             \
17116    "adc r26, r25 \n\t"            \
17117    "mul r5, r18 \n\t"             \
17118    "add r23, r0 \n\t"             \
17119    "adc r27, r1 \n\t"             \
17120    "adc r26, r25 \n\t"            \
17121    "mul r6, r17 \n\t"             \
17122    "add r23, r0 \n\t"             \
17123    "adc r27, r1 \n\t"             \
17124    "adc r26, r25 \n\t"            \
17125    "mul r7, r16 \n\t"             \
17126    "add r23, r0 \n\t"             \
17127    "adc r27, r1 \n\t"             \
17128    "adc r26, r25 \n\t"            \
17129    "mul r8, r15 \n\t"             \
17130    "add r23, r0 \n\t"             \
17131    "adc r27, r1 \n\t"             \
17132    "adc r26, r25 \n\t"            \
17133    "mul r9, r14 \n\t"             \
17134    "add r23, r0 \n\t"             \
17135    "adc r27, r1 \n\t"             \
17136    "adc r26, r25 \n\t"            \
17137    "mul r10, r13 \n\t"            \
17138    "add r23, r0 \n\t"             \
17139    "adc r27, r1 \n\t"             \
17140    "adc r26, r25 \n\t"            \
17141    "mul r11, r12 \n\t"            \
17142    "add r23, r0 \n\t"             \
17143    "adc r27, r1 \n\t"             \
17144    "adc r26, r25 \n\t"            \
17145    "lsl r23 \n\t"                 \
17146    "rol r27 \n\t"                 \
17147    "rol r26 \n\t"                 \
17148    "add r23, r24 \n\t"            \
17149    "adc r27, r22 \n\t"            \
17150    "adc r26, r25 \n\t"            \
17151    "st z+, r23 \n\t"              \
17152                                   \
17153    "ldi r22, 0 \n\t"              \
17154    "mul r3, r21 \n\t"             \
17155    "mov r23, r0 \n\t"             \
17156    "mov r24, r1 \n\t"             \
17157    "mul r4, r20 \n\t"             \
17158    "add r23, r0 \n\t"             \
17159    "adc r24, r1 \n\t"             \
17160    "adc r22, r25 \n\t"            \
17161    "mul r5, r19 \n\t"             \
17162    "add r23, r0 \n\t"             \
17163    "adc r24, r1 \n\t"             \
17164    "adc r22, r25 \n\t"            \
17165    "mul r6, r18 \n\t"             \
17166    "add r23, r0 \n\t"             \
17167    "adc r24, r1 \n\t"             \
17168    "adc r22, r25 \n\t"            \
17169    "mul r7, r17 \n\t"             \
17170    "add r23, r0 \n\t"             \
17171    "adc r24, r1 \n\t"             \
17172    "adc r22, r25 \n\t"            \
17173    "mul r8, r16 \n\t"             \
17174    "add r23, r0 \n\t"             \
17175    "adc r24, r1 \n\t"             \
17176    "adc r22, r25 \n\t"            \
17177    "mul r9, r15 \n\t"             \
17178    "add r23, r0 \n\t"             \
17179    "adc r24, r1 \n\t"             \
17180    "adc r22, r25 \n\t"            \
17181    "mul r10, r14 \n\t"            \
17182    "add r23, r0 \n\t"             \
17183    "adc r24, r1 \n\t"             \
17184    "adc r22, r25 \n\t"            \
17185    "mul r11, r13 \n\t"            \
17186    "add r23, r0 \n\t"             \
17187    "adc r24, r1 \n\t"             \
17188    "adc r22, r25 \n\t"            \
17189    "lsl r23 \n\t"                 \
17190    "rol r24 \n\t"                 \
17191    "rol r22 \n\t"                 \
17192    "mul r12, r12 \n\t"            \
17193    "add r23, r0 \n\t"             \
17194    "adc r24, r1 \n\t"             \
17195    "adc r22, r25 \n\t"            \
17196    "add r23, r27 \n\t"            \
17197    "adc r24, r26 \n\t"            \
17198    "adc r22, r25 \n\t"            \
17199    "st z+, r23 \n\t"              \
17200                                   \
17201    "ldi r26, 0 \n\t"              \
17202    "mul r4, r21 \n\t"             \
17203    "mov r23, r0 \n\t"             \
17204    "mov r27, r1 \n\t"             \
17205    "mul r5, r20 \n\t"             \
17206    "add r23, r0 \n\t"             \
17207    "adc r27, r1 \n\t"             \
17208    "adc r26, r25 \n\t"            \
17209    "mul r6, r19 \n\t"             \
17210    "add r23, r0 \n\t"             \
17211    "adc r27, r1 \n\t"             \
17212    "adc r26, r25 \n\t"            \
17213    "mul r7, r18 \n\t"             \
17214    "add r23, r0 \n\t"             \
17215    "adc r27, r1 \n\t"             \
17216    "adc r26, r25 \n\t"            \
17217    "mul r8, r17 \n\t"             \
17218    "add r23, r0 \n\t"             \
17219    "adc r27, r1 \n\t"             \
17220    "adc r26, r25 \n\t"            \
17221    "mul r9, r16 \n\t"             \
17222    "add r23, r0 \n\t"             \
17223    "adc r27, r1 \n\t"             \
17224    "adc r26, r25 \n\t"            \
17225    "mul r10, r15 \n\t"            \
17226    "add r23, r0 \n\t"             \
17227    "adc r27, r1 \n\t"             \
17228    "adc r26, r25 \n\t"            \
17229    "mul r11, r14 \n\t"            \
17230    "add r23, r0 \n\t"             \
17231    "adc r27, r1 \n\t"             \
17232    "adc r26, r25 \n\t"            \
17233    "mul r12, r13 \n\t"            \
17234    "add r23, r0 \n\t"             \
17235    "adc r27, r1 \n\t"             \
17236    "adc r26, r25 \n\t"            \
17237    "lsl r23 \n\t"                 \
17238    "rol r27 \n\t"                 \
17239    "rol r26 \n\t"                 \
17240    "add r23, r24 \n\t"            \
17241    "adc r27, r22 \n\t"            \
17242    "adc r26, r25 \n\t"            \
17243    "st z+, r23 \n\t"              \
17244                                   \
17245    "ldi r22, 0 \n\t"              \
17246    "mul r5, r21 \n\t"             \
17247    "mov r23, r0 \n\t"             \
17248    "mov r24, r1 \n\t"             \
17249    "mul r6, r20 \n\t"             \
17250    "add r23, r0 \n\t"             \
17251    "adc r24, r1 \n\t"             \
17252    "adc r22, r25 \n\t"            \
17253    "mul r7, r19 \n\t"             \
17254    "add r23, r0 \n\t"             \
17255    "adc r24, r1 \n\t"             \
17256    "adc r22, r25 \n\t"            \
17257    "mul r8, r18 \n\t"             \
17258    "add r23, r0 \n\t"             \
17259    "adc r24, r1 \n\t"             \
17260    "adc r22, r25 \n\t"            \
17261    "mul r9, r17 \n\t"             \
17262    "add r23, r0 \n\t"             \
17263    "adc r24, r1 \n\t"             \
17264    "adc r22, r25 \n\t"            \
17265    "mul r10, r16 \n\t"            \
17266    "add r23, r0 \n\t"             \
17267    "adc r24, r1 \n\t"             \
17268    "adc r22, r25 \n\t"            \
17269    "mul r11, r15 \n\t"            \
17270    "add r23, r0 \n\t"             \
17271    "adc r24, r1 \n\t"             \
17272    "adc r22, r25 \n\t"            \
17273    "mul r12, r14 \n\t"            \
17274    "add r23, r0 \n\t"             \
17275    "adc r24, r1 \n\t"             \
17276    "adc r22, r25 \n\t"            \
17277    "lsl r23 \n\t"                 \
17278    "rol r24 \n\t"                 \
17279    "rol r22 \n\t"                 \
17280    "mul r13, r13 \n\t"            \
17281    "add r23, r0 \n\t"             \
17282    "adc r24, r1 \n\t"             \
17283    "adc r22, r25 \n\t"            \
17284    "add r23, r27 \n\t"            \
17285    "adc r24, r26 \n\t"            \
17286    "adc r22, r25 \n\t"            \
17287    "st z+, r23 \n\t"              \
17288                                   \
17289    "ldi r26, 0 \n\t"              \
17290    "mul r6, r21 \n\t"             \
17291    "mov r23, r0 \n\t"             \
17292    "mov r27, r1 \n\t"             \
17293    "mul r7, r20 \n\t"             \
17294    "add r23, r0 \n\t"             \
17295    "adc r27, r1 \n\t"             \
17296    "adc r26, r25 \n\t"            \
17297    "mul r8, r19 \n\t"             \
17298    "add r23, r0 \n\t"             \
17299    "adc r27, r1 \n\t"             \
17300    "adc r26, r25 \n\t"            \
17301    "mul r9, r18 \n\t"             \
17302    "add r23, r0 \n\t"             \
17303    "adc r27, r1 \n\t"             \
17304    "adc r26, r25 \n\t"            \
17305    "mul r10, r17 \n\t"            \
17306    "add r23, r0 \n\t"             \
17307    "adc r27, r1 \n\t"             \
17308    "adc r26, r25 \n\t"            \
17309    "mul r11, r16 \n\t"            \
17310    "add r23, r0 \n\t"             \
17311    "adc r27, r1 \n\t"             \
17312    "adc r26, r25 \n\t"            \
17313    "mul r12, r15 \n\t"            \
17314    "add r23, r0 \n\t"             \
17315    "adc r27, r1 \n\t"             \
17316    "adc r26, r25 \n\t"            \
17317    "mul r13, r14 \n\t"            \
17318    "add r23, r0 \n\t"             \
17319    "adc r27, r1 \n\t"             \
17320    "adc r26, r25 \n\t"            \
17321    "lsl r23 \n\t"                 \
17322    "rol r27 \n\t"                 \
17323    "rol r26 \n\t"                 \
17324    "add r23, r24 \n\t"            \
17325    "adc r27, r22 \n\t"            \
17326    "adc r26, r25 \n\t"            \
17327    "st z+, r23 \n\t"              \
17328                                   \
17329    "ldi r22, 0 \n\t"              \
17330    "mul r7, r21 \n\t"             \
17331    "mov r23, r0 \n\t"             \
17332    "mov r24, r1 \n\t"             \
17333    "mul r8, r20 \n\t"             \
17334    "add r23, r0 \n\t"             \
17335    "adc r24, r1 \n\t"             \
17336    "adc r22, r25 \n\t"            \
17337    "mul r9, r19 \n\t"             \
17338    "add r23, r0 \n\t"             \
17339    "adc r24, r1 \n\t"             \
17340    "adc r22, r25 \n\t"            \
17341    "mul r10, r18 \n\t"            \
17342    "add r23, r0 \n\t"             \
17343    "adc r24, r1 \n\t"             \
17344    "adc r22, r25 \n\t"            \
17345    "mul r11, r17 \n\t"            \
17346    "add r23, r0 \n\t"             \
17347    "adc r24, r1 \n\t"             \
17348    "adc r22, r25 \n\t"            \
17349    "mul r12, r16 \n\t"            \
17350    "add r23, r0 \n\t"             \
17351    "adc r24, r1 \n\t"             \
17352    "adc r22, r25 \n\t"            \
17353    "mul r13, r15 \n\t"            \
17354    "add r23, r0 \n\t"             \
17355    "adc r24, r1 \n\t"             \
17356    "adc r22, r25 \n\t"            \
17357    "lsl r23 \n\t"                 \
17358    "rol r24 \n\t"                 \
17359    "rol r22 \n\t"                 \
17360    "mul r14, r14 \n\t"            \
17361    "add r23, r0 \n\t"             \
17362    "adc r24, r1 \n\t"             \
17363    "adc r22, r25 \n\t"            \
17364    "add r23, r27 \n\t"            \
17365    "adc r24, r26 \n\t"            \
17366    "adc r22, r25 \n\t"            \
17367    "st z+, r23 \n\t"              \
17368                                   \
17369    "ldi r26, 0 \n\t"              \
17370    "mul r8, r21 \n\t"             \
17371    "mov r23, r0 \n\t"             \
17372    "mov r27, r1 \n\t"             \
17373    "mul r9, r20 \n\t"             \
17374    "add r23, r0 \n\t"             \
17375    "adc r27, r1 \n\t"             \
17376    "adc r26, r25 \n\t"            \
17377    "mul r10, r19 \n\t"            \
17378    "add r23, r0 \n\t"             \
17379    "adc r27, r1 \n\t"             \
17380    "adc r26, r25 \n\t"            \
17381    "mul r11, r18 \n\t"            \
17382    "add r23, r0 \n\t"             \
17383    "adc r27, r1 \n\t"             \
17384    "adc r26, r25 \n\t"            \
17385    "mul r12, r17 \n\t"            \
17386    "add r23, r0 \n\t"             \
17387    "adc r27, r1 \n\t"             \
17388    "adc r26, r25 \n\t"            \
17389    "mul r13, r16 \n\t"            \
17390    "add r23, r0 \n\t"             \
17391    "adc r27, r1 \n\t"             \
17392    "adc r26, r25 \n\t"            \
17393    "mul r14, r15 \n\t"            \
17394    "add r23, r0 \n\t"             \
17395    "adc r27, r1 \n\t"             \
17396    "adc r26, r25 \n\t"            \
17397    "lsl r23 \n\t"                 \
17398    "rol r27 \n\t"                 \
17399    "rol r26 \n\t"                 \
17400    "add r23, r24 \n\t"            \
17401    "adc r27, r22 \n\t"            \
17402    "adc r26, r25 \n\t"            \
17403    "st z+, r23 \n\t"              \
17404                                   \
17405    "ldi r22, 0 \n\t"              \
17406    "mul r9, r21 \n\t"             \
17407    "mov r23, r0 \n\t"             \
17408    "mov r24, r1 \n\t"             \
17409    "mul r10, r20 \n\t"            \
17410    "add r23, r0 \n\t"             \
17411    "adc r24, r1 \n\t"             \
17412    "adc r22, r25 \n\t"            \
17413    "mul r11, r19 \n\t"            \
17414    "add r23, r0 \n\t"             \
17415    "adc r24, r1 \n\t"             \
17416    "adc r22, r25 \n\t"            \
17417    "mul r12, r18 \n\t"            \
17418    "add r23, r0 \n\t"             \
17419    "adc r24, r1 \n\t"             \
17420    "adc r22, r25 \n\t"            \
17421    "mul r13, r17 \n\t"            \
17422    "add r23, r0 \n\t"             \
17423    "adc r24, r1 \n\t"             \
17424    "adc r22, r25 \n\t"            \
17425    "mul r14, r16 \n\t"            \
17426    "add r23, r0 \n\t"             \
17427    "adc r24, r1 \n\t"             \
17428    "adc r22, r25 \n\t"            \
17429    "lsl r23 \n\t"                 \
17430    "rol r24 \n\t"                 \
17431    "rol r22 \n\t"                 \
17432    "mul r15, r15 \n\t"            \
17433    "add r23, r0 \n\t"             \
17434    "adc r24, r1 \n\t"             \
17435    "adc r22, r25 \n\t"            \
17436    "add r23, r27 \n\t"            \
17437    "adc r24, r26 \n\t"            \
17438    "adc r22, r25 \n\t"            \
17439    "st z+, r23 \n\t"              \
17440                                   \
17441    "ldi r26, 0 \n\t"              \
17442    "mul r10, r21 \n\t"            \
17443    "mov r23, r0 \n\t"             \
17444    "mov r27, r1 \n\t"             \
17445    "mul r11, r20 \n\t"            \
17446    "add r23, r0 \n\t"             \
17447    "adc r27, r1 \n\t"             \
17448    "adc r26, r25 \n\t"            \
17449    "mul r12, r19 \n\t"            \
17450    "add r23, r0 \n\t"             \
17451    "adc r27, r1 \n\t"             \
17452    "adc r26, r25 \n\t"            \
17453    "mul r13, r18 \n\t"            \
17454    "add r23, r0 \n\t"             \
17455    "adc r27, r1 \n\t"             \
17456    "adc r26, r25 \n\t"            \
17457    "mul r14, r17 \n\t"            \
17458    "add r23, r0 \n\t"             \
17459    "adc r27, r1 \n\t"             \
17460    "adc r26, r25 \n\t"            \
17461    "mul r15, r16 \n\t"            \
17462    "add r23, r0 \n\t"             \
17463    "adc r27, r1 \n\t"             \
17464    "adc r26, r25 \n\t"            \
17465    "lsl r23 \n\t"                 \
17466    "rol r27 \n\t"                 \
17467    "rol r26 \n\t"                 \
17468    "add r23, r24 \n\t"            \
17469    "adc r27, r22 \n\t"            \
17470    "adc r26, r25 \n\t"            \
17471    "st z+, r23 \n\t"              \
17472                                   \
17473    "ldi r22, 0 \n\t"              \
17474    "mul r11, r21 \n\t"            \
17475    "mov r23, r0 \n\t"             \
17476    "mov r24, r1 \n\t"             \
17477    "mul r12, r20 \n\t"            \
17478    "add r23, r0 \n\t"             \
17479    "adc r24, r1 \n\t"             \
17480    "adc r22, r25 \n\t"            \
17481    "mul r13, r19 \n\t"            \
17482    "add r23, r0 \n\t"             \
17483    "adc r24, r1 \n\t"             \
17484    "adc r22, r25 \n\t"            \
17485    "mul r14, r18 \n\t"            \
17486    "add r23, r0 \n\t"             \
17487    "adc r24, r1 \n\t"             \
17488    "adc r22, r25 \n\t"            \
17489    "mul r15, r17 \n\t"            \
17490    "add r23, r0 \n\t"             \
17491    "adc r24, r1 \n\t"             \
17492    "adc r22, r25 \n\t"            \
17493    "lsl r23 \n\t"                 \
17494    "rol r24 \n\t"                 \
17495    "rol r22 \n\t"                 \
17496    "mul r16, r16 \n\t"            \
17497    "add r23, r0 \n\t"             \
17498    "adc r24, r1 \n\t"             \
17499    "adc r22, r25 \n\t"            \
17500    "add r23, r27 \n\t"            \
17501    "adc r24, r26 \n\t"            \
17502    "adc r22, r25 \n\t"            \
17503    "st z+, r23 \n\t"              \
17504                                   \
17505    "ldi r26, 0 \n\t"              \
17506    "mul r12, r21 \n\t"            \
17507    "mov r23, r0 \n\t"             \
17508    "mov r27, r1 \n\t"             \
17509    "mul r13, r20 \n\t"            \
17510    "add r23, r0 \n\t"             \
17511    "adc r27, r1 \n\t"             \
17512    "adc r26, r25 \n\t"            \
17513    "mul r14, r19 \n\t"            \
17514    "add r23, r0 \n\t"             \
17515    "adc r27, r1 \n\t"             \
17516    "adc r26, r25 \n\t"            \
17517    "mul r15, r18 \n\t"            \
17518    "add r23, r0 \n\t"             \
17519    "adc r27, r1 \n\t"             \
17520    "adc r26, r25 \n\t"            \
17521    "mul r16, r17 \n\t"            \
17522    "add r23, r0 \n\t"             \
17523    "adc r27, r1 \n\t"             \
17524    "adc r26, r25 \n\t"            \
17525    "lsl r23 \n\t"                 \
17526    "rol r27 \n\t"                 \
17527    "rol r26 \n\t"                 \
17528    "add r23, r24 \n\t"            \
17529    "adc r27, r22 \n\t"            \
17530    "adc r26, r25 \n\t"            \
17531    "st z+, r23 \n\t"              \
17532                                   \
17533    "ldi r22, 0 \n\t"              \
17534    "mul r13, r21 \n\t"            \
17535    "mov r23, r0 \n\t"             \
17536    "mov r24, r1 \n\t"             \
17537    "mul r14, r20 \n\t"            \
17538    "add r23, r0 \n\t"             \
17539    "adc r24, r1 \n\t"             \
17540    "adc r22, r25 \n\t"            \
17541    "mul r15, r19 \n\t"            \
17542    "add r23, r0 \n\t"             \
17543    "adc r24, r1 \n\t"             \
17544    "adc r22, r25 \n\t"            \
17545    "mul r16, r18 \n\t"            \
17546    "add r23, r0 \n\t"             \
17547    "adc r24, r1 \n\t"             \
17548    "adc r22, r25 \n\t"            \
17549    "lsl r23 \n\t"                 \
17550    "rol r24 \n\t"                 \
17551    "rol r22 \n\t"                 \
17552    "mul r17, r17 \n\t"            \
17553    "add r23, r0 \n\t"             \
17554    "adc r24, r1 \n\t"             \
17555    "adc r22, r25 \n\t"            \
17556    "add r23, r27 \n\t"            \
17557    "adc r24, r26 \n\t"            \
17558    "adc r22, r25 \n\t"            \
17559    "st z+, r23 \n\t"              \
17560                                   \
17561    "ldi r26, 0 \n\t"              \
17562    "mul r14, r21 \n\t"            \
17563    "mov r23, r0 \n\t"             \
17564    "mov r27, r1 \n\t"             \
17565    "mul r15, r20 \n\t"            \
17566    "add r23, r0 \n\t"             \
17567    "adc r27, r1 \n\t"             \
17568    "adc r26, r25 \n\t"            \
17569    "mul r16, r19 \n\t"            \
17570    "add r23, r0 \n\t"             \
17571    "adc r27, r1 \n\t"             \
17572    "adc r26, r25 \n\t"            \
17573    "mul r17, r18 \n\t"            \
17574    "add r23, r0 \n\t"             \
17575    "adc r27, r1 \n\t"             \
17576    "adc r26, r25 \n\t"            \
17577    "lsl r23 \n\t"                 \
17578    "rol r27 \n\t"                 \
17579    "rol r26 \n\t"                 \
17580    "add r23, r24 \n\t"            \
17581    "adc r27, r22 \n\t"            \
17582    "adc r26, r25 \n\t"            \
17583    "st z+, r23 \n\t"              \
17584                                   \
17585    "ldi r22, 0 \n\t"              \
17586    "mul r15, r21 \n\t"            \
17587    "mov r23, r0 \n\t"             \
17588    "mov r24, r1 \n\t"             \
17589    "mul r16, r20 \n\t"            \
17590    "add r23, r0 \n\t"             \
17591    "adc r24, r1 \n\t"             \
17592    "adc r22, r25 \n\t"            \
17593    "mul r17, r19 \n\t"            \
17594    "add r23, r0 \n\t"             \
17595    "adc r24, r1 \n\t"             \
17596    "adc r22, r25 \n\t"            \
17597    "lsl r23 \n\t"                 \
17598    "rol r24 \n\t"                 \
17599    "rol r22 \n\t"                 \
17600    "mul r18, r18 \n\t"            \
17601    "add r23, r0 \n\t"             \
17602    "adc r24, r1 \n\t"             \
17603    "adc r22, r25 \n\t"            \
17604    "add r23, r27 \n\t"            \
17605    "adc r24, r26 \n\t"            \
17606    "adc r22, r25 \n\t"            \
17607    "st z+, r23 \n\t"              \
17608                                   \
17609    "ldi r26, 0 \n\t"              \
17610    "mul r16, r21 \n\t"            \
17611    "mov r23, r0 \n\t"             \
17612    "mov r27, r1 \n\t"             \
17613    "mul r17, r20 \n\t"            \
17614    "add r23, r0 \n\t"             \
17615    "adc r27, r1 \n\t"             \
17616    "adc r26, r25 \n\t"            \
17617    "mul r18, r19 \n\t"            \
17618    "add r23, r0 \n\t"             \
17619    "adc r27, r1 \n\t"             \
17620    "adc r26, r25 \n\t"            \
17621    "lsl r23 \n\t"                 \
17622    "rol r27 \n\t"                 \
17623    "rol r26 \n\t"                 \
17624    "add r23, r24 \n\t"            \
17625    "adc r27, r22 \n\t"            \
17626    "adc r26, r25 \n\t"            \
17627    "st z+, r23 \n\t"              \
17628                                   \
17629    "ldi r22, 0 \n\t"              \
17630    "mul r17, r21 \n\t"            \
17631    "mov r23, r0 \n\t"             \
17632    "mov r24, r1 \n\t"             \
17633    "mul r18, r20 \n\t"            \
17634    "add r23, r0 \n\t"             \
17635    "adc r24, r1 \n\t"             \
17636    "adc r22, r25 \n\t"            \
17637    "lsl r23 \n\t"                 \
17638    "rol r24 \n\t"                 \
17639    "rol r22 \n\t"                 \
17640    "mul r19, r19 \n\t"            \
17641    "add r23, r0 \n\t"             \
17642    "adc r24, r1 \n\t"             \
17643    "adc r22, r25 \n\t"            \
17644    "add r23, r27 \n\t"            \
17645    "adc r24, r26 \n\t"            \
17646    "adc r22, r25 \n\t"            \
17647    "st z+, r23 \n\t"              \
17648                                   \
17649    "ldi r26, 0 \n\t"              \
17650    "mul r18, r21 \n\t"            \
17651    "mov r23, r0 \n\t"             \
17652    "mov r27, r1 \n\t"             \
17653    "mul r19, r20 \n\t"            \
17654    "add r23, r0 \n\t"             \
17655    "adc r27, r1 \n\t"             \
17656    "adc r26, r25 \n\t"            \
17657    "lsl r23 \n\t"                 \
17658    "rol r27 \n\t"                 \
17659    "rol r26 \n\t"                 \
17660    "add r23, r24 \n\t"            \
17661    "adc r27, r22 \n\t"            \
17662    "adc r26, r25 \n\t"            \
17663    "st z+, r23 \n\t"              \
17664                                   \
17665    "ldi r23, 0 \n\t"              \
17666    "mul r19, r21 \n\t"            \
17667    "lsl r0 \n\t"                  \
17668    "rol r1 \n\t"                  \
17669    "adc r23, r25 \n\t"            \
17670    "add r27, r0 \n\t"             \
17671    "adc r26, r1 \n\t"             \
17672    "adc r23, r25 \n\t"            \
17673    "mul r20, r20 \n\t"            \
17674    "add r27, r0 \n\t"             \
17675    "adc r26, r1 \n\t"             \
17676    "adc r23, r25 \n\t"            \
17677    "st z+, r27 \n\t"              \
17678                                   \
17679    "ldi r27, 0 \n\t"              \
17680    "mul r20, r21 \n\t"            \
17681    "lsl r0 \n\t"                  \
17682    "rol r1 \n\t"                  \
17683    "adc r27, r25 \n\t"            \
17684    "add r26, r0 \n\t"             \
17685    "adc r23, r1 \n\t"             \
17686    "adc r27, r25 \n\t"            \
17687    "st z+, r26 \n\t"              \
17688                                   \
17689    "mul r21, r21 \n\t"            \
17690    "add r23, r0 \n\t"             \
17691    "adc r27, r1 \n\t"             \
17692    "st z+, r23 \n\t"              \
17693    "st z+, r27 \n\t"              \
17694    "pop r27 \n\t"                 \
17695    "pop r26 \n\t"
17696
17697#define FAST_SQUARE_ASM_20_TO_24           \
17698    "cpi r20, 20 \n\t"                     \
17699    "brne 1f \n\t"                         \
17700    "jmp 2f \n\t"                          \
17701    "1: \n\t"                              \
17702    "ld r2, x+ \n\t"                       \
17703    "ld r3, x+ \n\t"                       \
17704    "ld r4, x+ \n\t"                       \
17705    "ld r5, x+ \n\t"                       \
17706    "sbiw r26, 24 \n\t"                    \
17707    "sbiw r30, 20 \n\t"                    \
17708    "ld r6, x+ \n\t"                       \
17709    "ld r7, x+ \n\t"                       \
17710    "ld r8, x+ \n\t"                       \
17711    "ld r9, x+ \n\t"                       \
17712                                           \
17713    "mul r2, r6 \n\t"                      \
17714    "mov r10, r0 \n\t"                     \
17715    "mov r11, r1 \n\t"                     \
17716    "mov r12, r25 \n\t"                    \
17717    "mov r13, r25 \n\t"                    \
17718    "mul r2, r7 \n\t"                      \
17719    "add r11, r0 \n\t"                     \
17720    "adc r12, r1 \n\t"                     \
17721    "adc r13, r25 \n\t"                    \
17722    "mul r3, r6 \n\t"                      \
17723    "add r11, r0 \n\t"                     \
17724    "adc r12, r1 \n\t"                     \
17725    "adc r13, r25 \n\t"                    \
17726                                           \
17727    "mov r14, r25 \n\t"                    \
17728    "mul r2, r8 \n\t"                      \
17729    "add r12, r0 \n\t"                     \
17730    "adc r13, r1 \n\t"                     \
17731    "adc r14, r25 \n\t"                    \
17732    "mul r3, r7 \n\t"                      \
17733    "add r12, r0 \n\t"                     \
17734    "adc r13, r1 \n\t"                     \
17735    "adc r14, r25 \n\t"                    \
17736    "mul r4, r6 \n\t"                      \
17737    "add r12, r0 \n\t"                     \
17738    "adc r13, r1 \n\t"                     \
17739    "adc r14, r25 \n\t"                    \
17740                                           \
17741    "mov r15, r25 \n\t"                    \
17742    "mul r2, r9 \n\t"                      \
17743    "add r13, r0 \n\t"                     \
17744    "adc r14, r1 \n\t"                     \
17745    "adc r15, r25 \n\t"                    \
17746    "mul r3, r8 \n\t"                      \
17747    "add r13, r0 \n\t"                     \
17748    "adc r14, r1 \n\t"                     \
17749    "adc r15, r25 \n\t"                    \
17750    "mul r4, r7 \n\t"                      \
17751    "add r13, r0 \n\t"                     \
17752    "adc r14, r1 \n\t"                     \
17753    "adc r15, r25 \n\t"                    \
17754    "mul r5, r6 \n\t"                      \
17755    "add r13, r0 \n\t"                     \
17756    "adc r14, r1 \n\t"                     \
17757    "adc r15, r25 \n\t"                    \
17758                                           \
17759    "ld r6, x+ \n\t"                       \
17760    "mov r16, r25 \n\t"                    \
17761    "mul r2, r6 \n\t"                      \
17762    "add r14, r0 \n\t"                     \
17763    "adc r15, r1 \n\t"                     \
17764    "adc r16, r25 \n\t"                    \
17765    "mul r3, r9 \n\t"                      \
17766    "add r14, r0 \n\t"                     \
17767    "adc r15, r1 \n\t"                     \
17768    "adc r16, r25 \n\t"                    \
17769    "mul r4, r8 \n\t"                      \
17770    "add r14, r0 \n\t"                     \
17771    "adc r15, r1 \n\t"                     \
17772    "adc r16, r25 \n\t"                    \
17773    "mul r5, r7 \n\t"                      \
17774    "add r14, r0 \n\t"                     \
17775    "adc r15, r1 \n\t"                     \
17776    "adc r16, r25 \n\t"                    \
17777                                           \
17778    "ld r7, x+ \n\t"                       \
17779    "mov r17, r25 \n\t"                    \
17780    "mul r2, r7 \n\t"                      \
17781    "add r15, r0 \n\t"                     \
17782    "adc r16, r1 \n\t"                     \
17783    "adc r17, r25 \n\t"                    \
17784    "mul r3, r6 \n\t"                      \
17785    "add r15, r0 \n\t"                     \
17786    "adc r16, r1 \n\t"                     \
17787    "adc r17, r25 \n\t"                    \
17788    "mul r4, r9 \n\t"                      \
17789    "add r15, r0 \n\t"                     \
17790    "adc r16, r1 \n\t"                     \
17791    "adc r17, r25 \n\t"                    \
17792    "mul r5, r8 \n\t"                      \
17793    "add r15, r0 \n\t"                     \
17794    "adc r16, r1 \n\t"                     \
17795    "adc r17, r25 \n\t"                    \
17796                                           \
17797    "ld r8, x+ \n\t"                       \
17798    "mov r18, r25 \n\t"                    \
17799    "mul r2, r8 \n\t"                      \
17800    "add r16, r0 \n\t"                     \
17801    "adc r17, r1 \n\t"                     \
17802    "adc r18, r25 \n\t"                    \
17803    "mul r3, r7 \n\t"                      \
17804    "add r16, r0 \n\t"                     \
17805    "adc r17, r1 \n\t"                     \
17806    "adc r18, r25 \n\t"                    \
17807    "mul r4, r6 \n\t"                      \
17808    "add r16, r0 \n\t"                     \
17809    "adc r17, r1 \n\t"                     \
17810    "adc r18, r25 \n\t"                    \
17811    "mul r5, r9 \n\t"                      \
17812    "add r16, r0 \n\t"                     \
17813    "adc r17, r1 \n\t"                     \
17814    "adc r18, r25 \n\t"                    \
17815                                           \
17816    "ld r9, x+ \n\t"                       \
17817    "mov r19, r25 \n\t"                    \
17818    "mul r2, r9 \n\t"                      \
17819    "add r17, r0 \n\t"                     \
17820    "adc r18, r1 \n\t"                     \
17821    "adc r19, r25 \n\t"                    \
17822    "mul r3, r8 \n\t"                      \
17823    "add r17, r0 \n\t"                     \
17824    "adc r18, r1 \n\t"                     \
17825    "adc r19, r25 \n\t"                    \
17826    "mul r4, r7 \n\t"                      \
17827    "add r17, r0 \n\t"                     \
17828    "adc r18, r1 \n\t"                     \
17829    "adc r19, r25 \n\t"                    \
17830    "mul r5, r6 \n\t"                      \
17831    "add r17, r0 \n\t"                     \
17832    "adc r18, r1 \n\t"                     \
17833    "adc r19, r25 \n\t"                    \
17834                                           \
17835    "ld r6, x+ \n\t"                       \
17836    "mov r21, r25 \n\t"                    \
17837    "mul r2, r6 \n\t"                      \
17838    "add r18, r0 \n\t"                     \
17839    "adc r19, r1 \n\t"                     \
17840    "adc r21, r25 \n\t"                    \
17841    "mul r3, r9 \n\t"                      \
17842    "add r18, r0 \n\t"                     \
17843    "adc r19, r1 \n\t"                     \
17844    "adc r21, r25 \n\t"                    \
17845    "mul r4, r8 \n\t"                      \
17846    "add r18, r0 \n\t"                     \
17847    "adc r19, r1 \n\t"                     \
17848    "adc r21, r25 \n\t"                    \
17849    "mul r5, r7 \n\t"                      \
17850    "add r18, r0 \n\t"                     \
17851    "adc r19, r1 \n\t"                     \
17852    "adc r21, r25 \n\t"                    \
17853                                           \
17854    "ld r7, x+ \n\t"                       \
17855    "mov r22, r25 \n\t"                    \
17856    "mul r2, r7 \n\t"                      \
17857    "add r19, r0 \n\t"                     \
17858    "adc r21, r1 \n\t"                     \
17859    "adc r22, r25 \n\t"                    \
17860    "mul r3, r6 \n\t"                      \
17861    "add r19, r0 \n\t"                     \
17862    "adc r21, r1 \n\t"                     \
17863    "adc r22, r25 \n\t"                    \
17864    "mul r4, r9 \n\t"                      \
17865    "add r19, r0 \n\t"                     \
17866    "adc r21, r1 \n\t"                     \
17867    "adc r22, r25 \n\t"                    \
17868    "mul r5, r8 \n\t"                      \
17869    "add r19, r0 \n\t"                     \
17870    "adc r21, r1 \n\t"                     \
17871    "adc r22, r25 \n\t"                    \
17872                                           \
17873    "ld r8, x+ \n\t"                       \
17874    "mov r23, r25 \n\t"                    \
17875    "mul r2, r8 \n\t"                      \
17876    "add r21, r0 \n\t"                     \
17877    "adc r22, r1 \n\t"                     \
17878    "adc r23, r25 \n\t"                    \
17879    "mul r3, r7 \n\t"                      \
17880    "add r21, r0 \n\t"                     \
17881    "adc r22, r1 \n\t"                     \
17882    "adc r23, r25 \n\t"                    \
17883    "mul r4, r6 \n\t"                      \
17884    "add r21, r0 \n\t"                     \
17885    "adc r22, r1 \n\t"                     \
17886    "adc r23, r25 \n\t"                    \
17887    "mul r5, r9 \n\t"                      \
17888    "add r21, r0 \n\t"                     \
17889    "adc r22, r1 \n\t"                     \
17890    "adc r23, r25 \n\t"                    \
17891                                           \
17892    "ld r9, x+ \n\t"                       \
17893    "mov r24, r25 \n\t"                    \
17894    "mul r2, r9 \n\t"                      \
17895    "add r22, r0 \n\t"                     \
17896    "adc r23, r1 \n\t"                     \
17897    "adc r24, r25 \n\t"                    \
17898    "mul r3, r8 \n\t"                      \
17899    "add r22, r0 \n\t"                     \
17900    "adc r23, r1 \n\t"                     \
17901    "adc r24, r25 \n\t"                    \
17902    "mul r4, r7 \n\t"                      \
17903    "add r22, r0 \n\t"                     \
17904    "adc r23, r1 \n\t"                     \
17905    "adc r24, r25 \n\t"                    \
17906    "mul r5, r6 \n\t"                      \
17907    "add r22, r0 \n\t"                     \
17908    "adc r23, r1 \n\t"                     \
17909    "adc r24, r25 \n\t"                    \
17910                                           \
17911    "ld r6, x+ \n\t"                       \
17912    "mov r28, r25 \n\t"                    \
17913    "mul r2, r6 \n\t"                      \
17914    "add r23, r0 \n\t"                     \
17915    "adc r24, r1 \n\t"                     \
17916    "adc r28, r25 \n\t"                    \
17917    "mul r3, r9 \n\t"                      \
17918    "add r23, r0 \n\t"                     \
17919    "adc r24, r1 \n\t"                     \
17920    "adc r28, r25 \n\t"                    \
17921    "mul r4, r8 \n\t"                      \
17922    "add r23, r0 \n\t"                     \
17923    "adc r24, r1 \n\t"                     \
17924    "adc r28, r25 \n\t"                    \
17925    "mul r5, r7 \n\t"                      \
17926    "add r23, r0 \n\t"                     \
17927    "adc r24, r1 \n\t"                     \
17928    "adc r28, r25 \n\t"                    \
17929                                           \
17930    "ld r7, x+ \n\t"                       \
17931    "mov r29, r25 \n\t"                    \
17932    "mul r2, r7 \n\t"                      \
17933    "add r24, r0 \n\t"                     \
17934    "adc r28, r1 \n\t"                     \
17935    "adc r29, r25 \n\t"                    \
17936    "mul r3, r6 \n\t"                      \
17937    "add r24, r0 \n\t"                     \
17938    "adc r28, r1 \n\t"                     \
17939    "adc r29, r25 \n\t"                    \
17940    "mul r4, r9 \n\t"                      \
17941    "add r24, r0 \n\t"                     \
17942    "adc r28, r1 \n\t"                     \
17943    "adc r29, r25 \n\t"                    \
17944    "mul r5, r8 \n\t"                      \
17945    "add r24, r0 \n\t"                     \
17946    "adc r28, r1 \n\t"                     \
17947    "adc r29, r25 \n\t"                    \
17948                                           \
17949    "lsl r10 \n\t"                         \
17950    "rol r11 \n\t"                         \
17951    "rol r12 \n\t"                         \
17952    "rol r13 \n\t"                         \
17953    "rol r14 \n\t"                         \
17954    "rol r15 \n\t"                         \
17955    "rol r16 \n\t"                         \
17956    "rol r17 \n\t"                         \
17957    "rol r18 \n\t"                         \
17958    "rol r19 \n\t"                         \
17959    "rol r21 \n\t"                         \
17960    "rol r22 \n\t"                         \
17961    "rol r23 \n\t"                         \
17962    "rol r24 \n\t"                         \
17963    "rol r28 \n\t"                         \
17964    "rol r29 \n\t"                         \
17965    "ld r0, z \n\t"                        \
17966    "add r10, r0 \n\t"                     \
17967    "st z+, r10 \n\t"                      \
17968    "ld r0, z \n\t"                        \
17969    "adc r11, r0 \n\t"                     \
17970    "st z+, r11 \n\t"                      \
17971    "ld r0, z \n\t"                        \
17972    "adc r12, r0 \n\t"                     \
17973    "st z+, r12 \n\t"                      \
17974    "ld r0, z \n\t"                        \
17975    "adc r13, r0 \n\t"                     \
17976    "st z+, r13 \n\t"                      \
17977    "ld r0, z \n\t"                        \
17978    "adc r14, r0 \n\t"                     \
17979    "st z+, r14 \n\t"                      \
17980    "ld r0, z \n\t"                        \
17981    "adc r15, r0 \n\t"                     \
17982    "st z+, r15 \n\t"                      \
17983    "ld r0, z \n\t"                        \
17984    "adc r16, r0 \n\t"                     \
17985    "st z+, r16 \n\t"                      \
17986    "ld r0, z \n\t"                        \
17987    "adc r17, r0 \n\t"                     \
17988    "st z+, r17 \n\t"                      \
17989    "ld r0, z \n\t"                        \
17990    "adc r18, r0 \n\t"                     \
17991    "st z+, r18 \n\t"                      \
17992    "ld r0, z \n\t"                        \
17993    "adc r19, r0 \n\t"                     \
17994    "st z+, r19 \n\t"                      \
17995    "ld r0, z \n\t"                        \
17996    "adc r21, r0 \n\t"                     \
17997    "st z+, r21 \n\t"                      \
17998    "ld r0, z \n\t"                        \
17999    "adc r22, r0 \n\t"                     \
18000    "st z+, r22 \n\t"                      \
18001    "ld r0, z \n\t"                        \
18002    "adc r23, r0 \n\t"                     \
18003    "st z+, r23 \n\t"                      \
18004    "ld r0, z \n\t"                        \
18005    "adc r24, r0 \n\t"                     \
18006    "st z+, r24 \n\t"                      \
18007    "adc r28, r25 \n\t"                    \
18008    "adc r29, r25 \n\t"                    \
18009    "bst r28, 0 \n\t"                      \
18010    "lsr r29 \n\t"                         \
18011    "ror r28 \n\t"                         \
18012                                           \
18013    "ld r8, x+ \n\t"                       \
18014    "mov r10, r25 \n\t"                    \
18015    "mul r2, r8 \n\t"                      \
18016    "add r28, r0 \n\t"                     \
18017    "adc r29, r1 \n\t"                     \
18018    "adc r10, r25 \n\t"                    \
18019    "mul r3, r7 \n\t"                      \
18020    "add r28, r0 \n\t"                     \
18021    "adc r29, r1 \n\t"                     \
18022    "adc r10, r25 \n\t"                    \
18023    "mul r4, r6 \n\t"                      \
18024    "add r28, r0 \n\t"                     \
18025    "adc r29, r1 \n\t"                     \
18026    "adc r10, r25 \n\t"                    \
18027    "mul r5, r9 \n\t"                      \
18028    "add r28, r0 \n\t"                     \
18029    "adc r29, r1 \n\t"                     \
18030    "adc r10, r25 \n\t"                    \
18031                                           \
18032    "ld r9, x+ \n\t"                       \
18033    "mov r11, r25 \n\t"                    \
18034    "mul r2, r9 \n\t"                      \
18035    "add r29, r0 \n\t"                     \
18036    "adc r10, r1 \n\t"                     \
18037    "adc r11, r25 \n\t"                    \
18038    "mul r3, r8 \n\t"                      \
18039    "add r29, r0 \n\t"                     \
18040    "adc r10, r1 \n\t"                     \
18041    "adc r11, r25 \n\t"                    \
18042    "mul r4, r7 \n\t"                      \
18043    "add r29, r0 \n\t"                     \
18044    "adc r10, r1 \n\t"                     \
18045    "adc r11, r25 \n\t"                    \
18046    "mul r5, r6 \n\t"                      \
18047    "add r29, r0 \n\t"                     \
18048    "adc r10, r1 \n\t"                     \
18049    "adc r11, r25 \n\t"                    \
18050                                           \
18051    "ld r6, x+ \n\t"                       \
18052    "mov r12, r25 \n\t"                    \
18053    "mul r2, r6 \n\t"                      \
18054    "add r10, r0 \n\t"                     \
18055    "adc r11, r1 \n\t"                     \
18056    "adc r12, r25 \n\t"                    \
18057    "mul r3, r9 \n\t"                      \
18058    "add r10, r0 \n\t"                     \
18059    "adc r11, r1 \n\t"                     \
18060    "adc r12, r25 \n\t"                    \
18061    "mul r4, r8 \n\t"                      \
18062    "add r10, r0 \n\t"                     \
18063    "adc r11, r1 \n\t"                     \
18064    "adc r12, r25 \n\t"                    \
18065    "mul r5, r7 \n\t"                      \
18066    "add r10, r0 \n\t"                     \
18067    "adc r11, r1 \n\t"                     \
18068    "adc r12, r25 \n\t"                    \
18069                                           \
18070    "ld r7, x+ \n\t"                       \
18071    "mov r13, r25 \n\t"                    \
18072    "mul r2, r7 \n\t"                      \
18073    "add r11, r0 \n\t"                     \
18074    "adc r12, r1 \n\t"                     \
18075    "adc r13, r25 \n\t"                    \
18076    "mul r3, r6 \n\t"                      \
18077    "add r11, r0 \n\t"                     \
18078    "adc r12, r1 \n\t"                     \
18079    "adc r13, r25 \n\t"                    \
18080    "mul r4, r9 \n\t"                      \
18081    "add r11, r0 \n\t"                     \
18082    "adc r12, r1 \n\t"                     \
18083    "adc r13, r25 \n\t"                    \
18084    "mul r5, r8 \n\t"                      \
18085    "add r11, r0 \n\t"                     \
18086    "adc r12, r1 \n\t"                     \
18087    "adc r13, r25 \n\t"                    \
18088                                           \
18089    "ld r8, x+ \n\t"                       \
18090    "mov r14, r25 \n\t"                    \
18091    "mul r2, r8 \n\t"                      \
18092    "add r12, r0 \n\t"                     \
18093    "adc r13, r1 \n\t"                     \
18094    "adc r14, r25 \n\t"                    \
18095    "mul r3, r7 \n\t"                      \
18096    "add r12, r0 \n\t"                     \
18097    "adc r13, r1 \n\t"                     \
18098    "adc r14, r25 \n\t"                    \
18099    "mul r4, r6 \n\t"                      \
18100    "add r12, r0 \n\t"                     \
18101    "adc r13, r1 \n\t"                     \
18102    "adc r14, r25 \n\t"                    \
18103    "mul r5, r9 \n\t"                      \
18104    "add r12, r0 \n\t"                     \
18105    "adc r13, r1 \n\t"                     \
18106    "adc r14, r25 \n\t"                    \
18107                                           \
18108    "ld r9, x+ \n\t"                       \
18109    "mov r15, r25 \n\t"                    \
18110    "mul r2, r9 \n\t"                      \
18111    "add r13, r0 \n\t"                     \
18112    "adc r14, r1 \n\t"                     \
18113    "adc r15, r25 \n\t"                    \
18114    "mul r3, r8 \n\t"                      \
18115    "add r13, r0 \n\t"                     \
18116    "adc r14, r1 \n\t"                     \
18117    "adc r15, r25 \n\t"                    \
18118    "mul r4, r7 \n\t"                      \
18119    "add r13, r0 \n\t"                     \
18120    "adc r14, r1 \n\t"                     \
18121    "adc r15, r25 \n\t"                    \
18122    "mul r5, r6 \n\t"                      \
18123    "add r13, r0 \n\t"                     \
18124    "adc r14, r1 \n\t"                     \
18125    "adc r15, r25 \n\t"                    \
18126                                           \
18127    "lsl r28 \n\t"                         \
18128    "bld r28, 0 \n\t"                      \
18129    "rol r29 \n\t"                         \
18130    "rol r10 \n\t"                         \
18131    "rol r11 \n\t"                         \
18132    "rol r12 \n\t"                         \
18133    "rol r13 \n\t"                         \
18134    "rol r14 \n\t"                         \
18135    "rol r15 \n\t"                         \
18136    "ld r0, z \n\t"                        \
18137    "add r28, r0 \n\t"                     \
18138    "st z+, r28 \n\t"                      \
18139    "ld r0, z \n\t"                        \
18140    "adc r29, r0 \n\t"                     \
18141    "st z+, r29 \n\t"                      \
18142    "ld r0, z \n\t"                        \
18143    "adc r10, r0 \n\t"                     \
18144    "st z+, r10 \n\t"                      \
18145    "ld r0, z \n\t"                        \
18146    "adc r11, r0 \n\t"                     \
18147    "st z+, r11 \n\t"                      \
18148    "ld r0, z \n\t"                        \
18149    "adc r12, r0 \n\t"                     \
18150    "st z+, r12 \n\t"                      \
18151    "ld r0, z \n\t"                        \
18152    "adc r13, r0 \n\t"                     \
18153    "st z+, r13 \n\t"                      \
18154    "adc r14, r25 \n\t"                    \
18155    "adc r15, r25 \n\t"                    \
18156                                           \
18157    "mul r2, r2 \n\t"                      \
18158    "mov r16, r0 \n\t"                     \
18159    "mov r17, r1 \n\t"                     \
18160    "mul r3, r3 \n\t"                      \
18161    "mov r18, r0 \n\t"                     \
18162    "mov r19, r1 \n\t"                     \
18163    "mul r4, r4 \n\t"                      \
18164    "mov r21, r0 \n\t"                     \
18165    "mov r22, r1 \n\t"                     \
18166    "mul r5, r5 \n\t"                      \
18167    "mov r23, r0 \n\t"                     \
18168    "mov r24, r1 \n\t"                     \
18169    "add r16, r14 \n\t"                    \
18170    "adc r17, r15 \n\t"                    \
18171    "adc r18, r25 \n\t"                    \
18172    "adc r19, r25 \n\t"                    \
18173                                           \
18174    "mul r7, r5 \n\t"                      \
18175    "mov r14, r0 \n\t"                     \
18176    "mov r15, r1 \n\t"                     \
18177    "mov r28, r25 \n\t"                    \
18178    "mul r8, r4 \n\t"                      \
18179    "add r14, r0 \n\t"                     \
18180    "adc r15, r1 \n\t"                     \
18181    "adc r28, r25 \n\t"                    \
18182    "mul r9, r3 \n\t"                      \
18183    "add r14, r0 \n\t"                     \
18184    "adc r15, r1 \n\t"                     \
18185    "adc r28, r25 \n\t"                    \
18186    "mov r29, r25 \n\t"                    \
18187    "mul r8, r5 \n\t"                      \
18188    "add r15, r0 \n\t"                     \
18189    "adc r28, r1 \n\t"                     \
18190    "adc r29, r25 \n\t"                    \
18191    "mul r9, r4 \n\t"                      \
18192    "add r15, r0 \n\t"                     \
18193    "adc r28, r1 \n\t"                     \
18194    "adc r29, r25 \n\t"                    \
18195    "mul r2, r3 \n\t"                      \
18196    "add r15, r0 \n\t"                     \
18197    "adc r28, r1 \n\t"                     \
18198    "adc r29, r25 \n\t"                    \
18199    "mov r10, r25 \n\t"                    \
18200    "mul r9, r5 \n\t"                      \
18201    "add r28, r0 \n\t"                     \
18202    "adc r29, r1 \n\t"                     \
18203    "adc r10, r25 \n\t"                    \
18204    "mul r2, r4 \n\t"                      \
18205    "add r28, r0 \n\t"                     \
18206    "adc r29, r1 \n\t"                     \
18207    "adc r10, r25 \n\t"                    \
18208    "mov r11, r25 \n\t"                    \
18209    "mul r2, r5 \n\t"                      \
18210    "add r29, r0 \n\t"                     \
18211    "adc r10, r1 \n\t"                     \
18212    "adc r11, r25 \n\t"                    \
18213    "mul r3, r4 \n\t"                      \
18214    "add r29, r0 \n\t"                     \
18215    "adc r10, r1 \n\t"                     \
18216    "adc r11, r25 \n\t"                    \
18217    "mov r12, r25 \n\t"                    \
18218    "mul r3, r5 \n\t"                      \
18219    "add r10, r0 \n\t"                     \
18220    "adc r11, r1 \n\t"                     \
18221    "adc r12, r25 \n\t"                    \
18222    "mul r4, r5 \n\t"                      \
18223    "add r11, r0 \n\t"                     \
18224    "adc r12, r1 \n\t"                     \
18225                                           \
18226    "lsl r14 \n\t"                         \
18227    "rol r15 \n\t"                         \
18228    "rol r28 \n\t"                         \
18229    "rol r29 \n\t"                         \
18230    "rol r10 \n\t"                         \
18231    "rol r11 \n\t"                         \
18232    "rol r12 \n\t"                         \
18233    "adc r24, r25 \n\t"                    \
18234    "add r16, r14 \n\t"                    \
18235    "adc r17, r15 \n\t"                    \
18236    "adc r18, r28 \n\t"                    \
18237    "adc r19, r29 \n\t"                    \
18238    "adc r21, r10 \n\t"                    \
18239    "adc r22, r11 \n\t"                    \
18240    "adc r23, r12 \n\t"                    \
18241    "adc r24, r25 \n\t"                    \
18242                                           \
18243    "st z+, r16 \n\t"                      \
18244    "st z+, r17 \n\t"                      \
18245    "st z+, r18 \n\t"                      \
18246    "st z+, r19 \n\t"                      \
18247    "st z+, r21 \n\t"                      \
18248    "st z+, r22 \n\t"                      \
18249    "st z+, r23 \n\t"                      \
18250    "st z+, r24 \n\t"                      \
18251    "adiw r26, 4 \n\t"
18252
18253#define FAST_SQUARE_ASM_24             \
18254    "ldi r25, 0 \n\t"                  \
18255    "movw r28, r26 \n\t"               \
18256    "ld r2, x+ \n\t"                   \
18257    "ld r3, x+ \n\t"                   \
18258    "adiw r28, 20 \n\t"                \
18259    "ld r12, y+ \n\t"                  \
18260    "ld r13, y+ \n\t"                  \
18261    "adiw r30, 20 \n\t"                \
18262                                       \
18263    "ldi r23, 0 \n\t"                  \
18264    "mul 2, 12 \n\t"                   \
18265    "st z+, r0 \n\t"                   \
18266    "mov r22, r1 \n\t"                 \
18267                                       \
18268    "ldi r24, 0 \n\t"                  \
18269    "mul r2, r13 \n\t"                 \
18270    "add r22, r0 \n\t"                 \
18271    "adc r23, r1 \n\t"                 \
18272    "adc r24, r25 \n\t"                \
18273    "st z+, r22 \n\t"                  \
18274                                       \
18275    "ld r12, y+ \n\t"                  \
18276    "ldi r22, 0 \n\t"                  \
18277    "mul r2, r12 \n\t"                 \
18278    "add r23, r0 \n\t"                 \
18279    "adc r24, r1 \n\t"                 \
18280    "adc r22, r25 \n\t"                \
18281    "mul r3, r13 \n\t"                 \
18282    "add r23, r0 \n\t"                 \
18283    "adc r24, r1 \n\t"                 \
18284    "adc r22, r25 \n\t"                \
18285    "st z+, r23 \n\t"                  \
18286                                       \
18287    "ld r13, y+ \n\t"                  \
18288    "ldi r23, 0 \n\t"                  \
18289    "mul r2, r13 \n\t"                 \
18290    "add r24, r0 \n\t"                 \
18291    "adc r22, r1 \n\t"                 \
18292    "adc r23, r25 \n\t"                \
18293    "mul r3, r12 \n\t"                 \
18294    "add r24, r0 \n\t"                 \
18295    "adc r22, r1 \n\t"                 \
18296    "adc r23, r25 \n\t"                \
18297    "st z+, r24 \n\t"                  \
18298                                       \
18299    "ld r2, x+ \n\t"                   \
18300    "ldi r24, 0 \n\t"                  \
18301    "mul r3, r13 \n\t"                 \
18302    "add r22, r0 \n\t"                 \
18303    "adc r23, r1 \n\t"                 \
18304    "adc r24, r25 \n\t"                \
18305    "mul r2, r12 \n\t"                 \
18306    "add r22, r0 \n\t"                 \
18307    "adc r23, r1 \n\t"                 \
18308    "adc r24, r25 \n\t"                \
18309    "st z+, r22 \n\t"                  \
18310                                       \
18311    "ld r3, x+ \n\t"                   \
18312    "ldi r22, 0 \n\t"                  \
18313    "mul r2, r13 \n\t"                 \
18314    "add r23, r0 \n\t"                 \
18315    "adc r24, r1 \n\t"                 \
18316    "adc r22, r25 \n\t"                \
18317    "st z+, r23 \n\t"                  \
18318                                       \
18319    "mul r3, r13 \n\t"                 \
18320    "add r24, r0 \n\t"                 \
18321    "adc r22, r1 \n\t"                 \
18322    "st z+, r24 \n\t"                  \
18323    "st z+, r22 \n\t"                  \
18324                                       \
18325    "sbiw r26, 4 \n\t"                 \
18326    "sbiw r30, 28 \n\t"                \
18327    "ld r2, x+ \n\t"                   \
18328    "ld r3, x+ \n\t"                   \
18329    "ld r4, x+ \n\t"                   \
18330    "ld r5, x+ \n\t"                   \
18331    "ld r6, x+ \n\t"                   \
18332    "ld r7, x+ \n\t"                   \
18333    "ld r8, x+ \n\t"                   \
18334    "ld r9, x+ \n\t"                   \
18335    "ld r10, x+ \n\t"                  \
18336    "ld r11, x+ \n\t"                  \
18337    "ld r12, x+ \n\t"                  \
18338    "ld r13, x+ \n\t"                  \
18339    "ld r14, x+ \n\t"                  \
18340    "ld r15, x+ \n\t"                  \
18341    "ld r16, x+ \n\t"                  \
18342    "ld r17, x+ \n\t"                  \
18343    "ld r18, x+ \n\t"                  \
18344    "ld r19, x+ \n\t"                  \
18345    "ld r20, x+ \n\t"                  \
18346    "ld r21, x+ \n\t"                  \
18347                                       \
18348    "ldi r23, 0 \n\t"                  \
18349    "mul r2, r2 \n\t"                  \
18350    "st z+, r0 \n\t"                   \
18351    "mov r22, r1 \n\t"                 \
18352                                       \
18353    "ldi r24, 0 \n\t"                  \
18354    "mul r2, r3 \n\t"                  \
18355    "add r22, r0 \n\t"                 \
18356    "adc r23, r1 \n\t"                 \
18357    "adc r24, r25 \n\t"                \
18358    "add r22, r0 \n\t"                 \
18359    "adc r23, r1 \n\t"                 \
18360    "adc r24, r25 \n\t"                \
18361    "st z+, r22 \n\t"                  \
18362                                       \
18363    "ldi r22, 0 \n\t"                  \
18364    "mul r2, r4 \n\t"                  \
18365    "add r23, r0 \n\t"                 \
18366    "adc r24, r1 \n\t"                 \
18367    "adc r22, r25 \n\t"                \
18368    "add r23, r0 \n\t"                 \
18369    "adc r24, r1 \n\t"                 \
18370    "adc r22, r25 \n\t"                \
18371    "mul r3, r3 \n\t"                  \
18372    "add r23, r0 \n\t"                 \
18373    "adc r24, r1 \n\t"                 \
18374    "adc r22, r25 \n\t"                \
18375    "st z+, r23 \n\t"                  \
18376                                       \
18377    "ldi r29, 0 \n\t"                  \
18378    "mul r2, r5 \n\t"                  \
18379    "mov r23, r0 \n\t"                 \
18380    "mov r28, r1 \n\t"                 \
18381    "mul r3, r4 \n\t"                  \
18382    "add r23, r0 \n\t"                 \
18383    "adc r28, r1 \n\t"                 \
18384    "adc r29, r25 \n\t"                \
18385    "lsl r23 \n\t"                     \
18386    "rol r28 \n\t"                     \
18387    "rol r29 \n\t"                     \
18388    "add r23, r24 \n\t"                \
18389    "adc r28, r22 \n\t"                \
18390    "adc r29, r25 \n\t"                \
18391    "st z+, r23 \n\t"                  \
18392                                       \
18393    "ldi r22, 0 \n\t"                  \
18394    "mul r2, r6 \n\t"                  \
18395    "mov r23, r0 \n\t"                 \
18396    "mov r24, r1 \n\t"                 \
18397    "mul r3, r5 \n\t"                  \
18398    "add r23, r0 \n\t"                 \
18399    "adc r24, r1 \n\t"                 \
18400    "adc r22, r25 \n\t"                \
18401    "lsl r23 \n\t"                     \
18402    "rol r24 \n\t"                     \
18403    "rol r22 \n\t"                     \
18404    "mul r4, r4 \n\t"                  \
18405    "add r23, r0 \n\t"                 \
18406    "adc r24, r1 \n\t"                 \
18407    "adc r22, r25 \n\t"                \
18408    "add r23, r28 \n\t"                \
18409    "adc r24, r29 \n\t"                \
18410    "adc r22, r25 \n\t"                \
18411    "st z+, r23 \n\t"                  \
18412                                       \
18413    "ldi r29, 0 \n\t"                  \
18414    "mul r2, r7 \n\t"                  \
18415    "mov r23, r0 \n\t"                 \
18416    "mov r28, r1 \n\t"                 \
18417    "mul r3, r6 \n\t"                  \
18418    "add r23, r0 \n\t"                 \
18419    "adc r28, r1 \n\t"                 \
18420    "adc r29, r25 \n\t"                \
18421    "mul r4, r5 \n\t"                  \
18422    "add r23, r0 \n\t"                 \
18423    "adc r28, r1 \n\t"                 \
18424    "adc r29, r25 \n\t"                \
18425    "lsl r23 \n\t"                     \
18426    "rol r28 \n\t"                     \
18427    "rol r29 \n\t"                     \
18428    "add r23, r24 \n\t"                \
18429    "adc r28, r22 \n\t"                \
18430    "adc r29, r25 \n\t"                \
18431    "st z+, r23 \n\t"                  \
18432                                       \
18433    "ldi r22, 0 \n\t"                  \
18434    "mul r2, r8 \n\t"                  \
18435    "mov r23, r0 \n\t"                 \
18436    "mov r24, r1 \n\t"                 \
18437    "mul r3, r7 \n\t"                  \
18438    "add r23, r0 \n\t"                 \
18439    "adc r24, r1 \n\t"                 \
18440    "adc r22, r25 \n\t"                \
18441    "mul r4, r6 \n\t"                  \
18442    "add r23, r0 \n\t"                 \
18443    "adc r24, r1 \n\t"                 \
18444    "adc r22, r25 \n\t"                \
18445    "lsl r23 \n\t"                     \
18446    "rol r24 \n\t"                     \
18447    "rol r22 \n\t"                     \
18448    "mul r5, r5 \n\t"                  \
18449    "add r23, r0 \n\t"                 \
18450    "adc r24, r1 \n\t"                 \
18451    "adc r22, r25 \n\t"                \
18452    "add r23, r28 \n\t"                \
18453    "adc r24, r29 \n\t"                \
18454    "adc r22, r25 \n\t"                \
18455    "st z+, r23 \n\t"                  \
18456                                       \
18457    "ldi r29, 0 \n\t"                  \
18458    "mul r2, r9 \n\t"                  \
18459    "mov r23, r0 \n\t"                 \
18460    "mov r28, r1 \n\t"                 \
18461    "mul r3, r8 \n\t"                  \
18462    "add r23, r0 \n\t"                 \
18463    "adc r28, r1 \n\t"                 \
18464    "adc r29, r25 \n\t"                \
18465    "mul r4, r7 \n\t"                  \
18466    "add r23, r0 \n\t"                 \
18467    "adc r28, r1 \n\t"                 \
18468    "adc r29, r25 \n\t"                \
18469    "mul r5, r6 \n\t"                  \
18470    "add r23, r0 \n\t"                 \
18471    "adc r28, r1 \n\t"                 \
18472    "adc r29, r25 \n\t"                \
18473    "lsl r23 \n\t"                     \
18474    "rol r28 \n\t"                     \
18475    "rol r29 \n\t"                     \
18476    "add r23, r24 \n\t"                \
18477    "adc r28, r22 \n\t"                \
18478    "adc r29, r25 \n\t"                \
18479    "st z+, r23 \n\t"                  \
18480                                       \
18481    "ldi r22, 0 \n\t"                  \
18482    "mul r2, r10 \n\t"                 \
18483    "mov r23, r0 \n\t"                 \
18484    "mov r24, r1 \n\t"                 \
18485    "mul r3, r9 \n\t"                  \
18486    "add r23, r0 \n\t"                 \
18487    "adc r24, r1 \n\t"                 \
18488    "adc r22, r25 \n\t"                \
18489    "mul r4, r8 \n\t"                  \
18490    "add r23, r0 \n\t"                 \
18491    "adc r24, r1 \n\t"                 \
18492    "adc r22, r25 \n\t"                \
18493    "mul r5, r7 \n\t"                  \
18494    "add r23, r0 \n\t"                 \
18495    "adc r24, r1 \n\t"                 \
18496    "adc r22, r25 \n\t"                \
18497    "lsl r23 \n\t"                     \
18498    "rol r24 \n\t"                     \
18499    "rol r22 \n\t"                     \
18500    "mul r6, r6 \n\t"                  \
18501    "add r23, r0 \n\t"                 \
18502    "adc r24, r1 \n\t"                 \
18503    "adc r22, r25 \n\t"                \
18504    "add r23, r28 \n\t"                \
18505    "adc r24, r29 \n\t"                \
18506    "adc r22, r25 \n\t"                \
18507    "st z+, r23 \n\t"                  \
18508                                       \
18509    "ldi r29, 0 \n\t"                  \
18510    "mul r2, r11 \n\t"                 \
18511    "mov r23, r0 \n\t"                 \
18512    "mov r28, r1 \n\t"                 \
18513    "mul r3, r10 \n\t"                 \
18514    "add r23, r0 \n\t"                 \
18515    "adc r28, r1 \n\t"                 \
18516    "adc r29, r25 \n\t"                \
18517    "mul r4, r9 \n\t"                  \
18518    "add r23, r0 \n\t"                 \
18519    "adc r28, r1 \n\t"                 \
18520    "adc r29, r25 \n\t"                \
18521    "mul r5, r8 \n\t"                  \
18522    "add r23, r0 \n\t"                 \
18523    "adc r28, r1 \n\t"                 \
18524    "adc r29, r25 \n\t"                \
18525    "mul r6, r7 \n\t"                  \
18526    "add r23, r0 \n\t"                 \
18527    "adc r28, r1 \n\t"                 \
18528    "adc r29, r25 \n\t"                \
18529    "lsl r23 \n\t"                     \
18530    "rol r28 \n\t"                     \
18531    "rol r29 \n\t"                     \
18532    "add r23, r24 \n\t"                \
18533    "adc r28, r22 \n\t"                \
18534    "adc r29, r25 \n\t"                \
18535    "st z+, r23 \n\t"                  \
18536                                       \
18537    "ldi r22, 0 \n\t"                  \
18538    "mul r2, r12 \n\t"                 \
18539    "mov r23, r0 \n\t"                 \
18540    "mov r24, r1 \n\t"                 \
18541    "mul r3, r11 \n\t"                 \
18542    "add r23, r0 \n\t"                 \
18543    "adc r24, r1 \n\t"                 \
18544    "adc r22, r25 \n\t"                \
18545    "mul r4, r10 \n\t"                 \
18546    "add r23, r0 \n\t"                 \
18547    "adc r24, r1 \n\t"                 \
18548    "adc r22, r25 \n\t"                \
18549    "mul r5, r9 \n\t"                  \
18550    "add r23, r0 \n\t"                 \
18551    "adc r24, r1 \n\t"                 \
18552    "adc r22, r25 \n\t"                \
18553    "mul r6, r8 \n\t"                  \
18554    "add r23, r0 \n\t"                 \
18555    "adc r24, r1 \n\t"                 \
18556    "adc r22, r25 \n\t"                \
18557    "lsl r23 \n\t"                     \
18558    "rol r24 \n\t"                     \
18559    "rol r22 \n\t"                     \
18560    "mul r7, r7 \n\t"                  \
18561    "add r23, r0 \n\t"                 \
18562    "adc r24, r1 \n\t"                 \
18563    "adc r22, r25 \n\t"                \
18564    "add r23, r28 \n\t"                \
18565    "adc r24, r29 \n\t"                \
18566    "adc r22, r25 \n\t"                \
18567    "st z+, r23 \n\t"                  \
18568                                       \
18569    "ldi r29, 0 \n\t"                  \
18570    "mul r2, r13 \n\t"                 \
18571    "mov r23, r0 \n\t"                 \
18572    "mov r28, r1 \n\t"                 \
18573    "mul r3, r12 \n\t"                 \
18574    "add r23, r0 \n\t"                 \
18575    "adc r28, r1 \n\t"                 \
18576    "adc r29, r25 \n\t"                \
18577    "mul r4, r11 \n\t"                 \
18578    "add r23, r0 \n\t"                 \
18579    "adc r28, r1 \n\t"                 \
18580    "adc r29, r25 \n\t"                \
18581    "mul r5, r10 \n\t"                 \
18582    "add r23, r0 \n\t"                 \
18583    "adc r28, r1 \n\t"                 \
18584    "adc r29, r25 \n\t"                \
18585    "mul r6, r9 \n\t"                  \
18586    "add r23, r0 \n\t"                 \
18587    "adc r28, r1 \n\t"                 \
18588    "adc r29, r25 \n\t"                \
18589    "mul r7, r8 \n\t"                  \
18590    "add r23, r0 \n\t"                 \
18591    "adc r28, r1 \n\t"                 \
18592    "adc r29, r25 \n\t"                \
18593    "lsl r23 \n\t"                     \
18594    "rol r28 \n\t"                     \
18595    "rol r29 \n\t"                     \
18596    "add r23, r24 \n\t"                \
18597    "adc r28, r22 \n\t"                \
18598    "adc r29, r25 \n\t"                \
18599    "st z+, r23 \n\t"                  \
18600                                       \
18601    "ldi r22, 0 \n\t"                  \
18602    "mul r2, r14 \n\t"                 \
18603    "mov r23, r0 \n\t"                 \
18604    "mov r24, r1 \n\t"                 \
18605    "mul r3, r13 \n\t"                 \
18606    "add r23, r0 \n\t"                 \
18607    "adc r24, r1 \n\t"                 \
18608    "adc r22, r25 \n\t"                \
18609    "mul r4, r12 \n\t"                 \
18610    "add r23, r0 \n\t"                 \
18611    "adc r24, r1 \n\t"                 \
18612    "adc r22, r25 \n\t"                \
18613    "mul r5, r11 \n\t"                 \
18614    "add r23, r0 \n\t"                 \
18615    "adc r24, r1 \n\t"                 \
18616    "adc r22, r25 \n\t"                \
18617    "mul r6, r10 \n\t"                 \
18618    "add r23, r0 \n\t"                 \
18619    "adc r24, r1 \n\t"                 \
18620    "adc r22, r25 \n\t"                \
18621    "mul r7, r9 \n\t"                  \
18622    "add r23, r0 \n\t"                 \
18623    "adc r24, r1 \n\t"                 \
18624    "adc r22, r25 \n\t"                \
18625    "lsl r23 \n\t"                     \
18626    "rol r24 \n\t"                     \
18627    "rol r22 \n\t"                     \
18628    "mul r8, r8 \n\t"                  \
18629    "add r23, r0 \n\t"                 \
18630    "adc r24, r1 \n\t"                 \
18631    "adc r22, r25 \n\t"                \
18632    "add r23, r28 \n\t"                \
18633    "adc r24, r29 \n\t"                \
18634    "adc r22, r25 \n\t"                \
18635    "st z+, r23 \n\t"                  \
18636                                       \
18637    "ldi r29, 0 \n\t"                  \
18638    "mul r2, r15 \n\t"                 \
18639    "mov r23, r0 \n\t"                 \
18640    "mov r28, r1 \n\t"                 \
18641    "mul r3, r14 \n\t"                 \
18642    "add r23, r0 \n\t"                 \
18643    "adc r28, r1 \n\t"                 \
18644    "adc r29, r25 \n\t"                \
18645    "mul r4, r13 \n\t"                 \
18646    "add r23, r0 \n\t"                 \
18647    "adc r28, r1 \n\t"                 \
18648    "adc r29, r25 \n\t"                \
18649    "mul r5, r12 \n\t"                 \
18650    "add r23, r0 \n\t"                 \
18651    "adc r28, r1 \n\t"                 \
18652    "adc r29, r25 \n\t"                \
18653    "mul r6, r11 \n\t"                 \
18654    "add r23, r0 \n\t"                 \
18655    "adc r28, r1 \n\t"                 \
18656    "adc r29, r25 \n\t"                \
18657    "mul r7, r10 \n\t"                 \
18658    "add r23, r0 \n\t"                 \
18659    "adc r28, r1 \n\t"                 \
18660    "adc r29, r25 \n\t"                \
18661    "mul r8, r9 \n\t"                  \
18662    "add r23, r0 \n\t"                 \
18663    "adc r28, r1 \n\t"                 \
18664    "adc r29, r25 \n\t"                \
18665    "lsl r23 \n\t"                     \
18666    "rol r28 \n\t"                     \
18667    "rol r29 \n\t"                     \
18668    "add r23, r24 \n\t"                \
18669    "adc r28, r22 \n\t"                \
18670    "adc r29, r25 \n\t"                \
18671    "st z+, r23 \n\t"                  \
18672                                       \
18673    "ldi r22, 0 \n\t"                  \
18674    "mul r2, r16 \n\t"                 \
18675    "mov r23, r0 \n\t"                 \
18676    "mov r24, r1 \n\t"                 \
18677    "mul r3, r15 \n\t"                 \
18678    "add r23, r0 \n\t"                 \
18679    "adc r24, r1 \n\t"                 \
18680    "adc r22, r25 \n\t"                \
18681    "mul r4, r14 \n\t"                 \
18682    "add r23, r0 \n\t"                 \
18683    "adc r24, r1 \n\t"                 \
18684    "adc r22, r25 \n\t"                \
18685    "mul r5, r13 \n\t"                 \
18686    "add r23, r0 \n\t"                 \
18687    "adc r24, r1 \n\t"                 \
18688    "adc r22, r25 \n\t"                \
18689    "mul r6, r12 \n\t"                 \
18690    "add r23, r0 \n\t"                 \
18691    "adc r24, r1 \n\t"                 \
18692    "adc r22, r25 \n\t"                \
18693    "mul r7, r11 \n\t"                 \
18694    "add r23, r0 \n\t"                 \
18695    "adc r24, r1 \n\t"                 \
18696    "adc r22, r25 \n\t"                \
18697    "mul r8, r10 \n\t"                 \
18698    "add r23, r0 \n\t"                 \
18699    "adc r24, r1 \n\t"                 \
18700    "adc r22, r25 \n\t"                \
18701    "lsl r23 \n\t"                     \
18702    "rol r24 \n\t"                     \
18703    "rol r22 \n\t"                     \
18704    "mul r9, r9 \n\t"                  \
18705    "add r23, r0 \n\t"                 \
18706    "adc r24, r1 \n\t"                 \
18707    "adc r22, r25 \n\t"                \
18708    "add r23, r28 \n\t"                \
18709    "adc r24, r29 \n\t"                \
18710    "adc r22, r25 \n\t"                \
18711    "st z+, r23 \n\t"                  \
18712                                       \
18713    "ldi r29, 0 \n\t"                  \
18714    "mul r2, r17 \n\t"                 \
18715    "mov r23, r0 \n\t"                 \
18716    "mov r28, r1 \n\t"                 \
18717    "mul r3, r16 \n\t"                 \
18718    "add r23, r0 \n\t"                 \
18719    "adc r28, r1 \n\t"                 \
18720    "adc r29, r25 \n\t"                \
18721    "mul r4, r15 \n\t"                 \
18722    "add r23, r0 \n\t"                 \
18723    "adc r28, r1 \n\t"                 \
18724    "adc r29, r25 \n\t"                \
18725    "mul r5, r14 \n\t"                 \
18726    "add r23, r0 \n\t"                 \
18727    "adc r28, r1 \n\t"                 \
18728    "adc r29, r25 \n\t"                \
18729    "mul r6, r13 \n\t"                 \
18730    "add r23, r0 \n\t"                 \
18731    "adc r28, r1 \n\t"                 \
18732    "adc r29, r25 \n\t"                \
18733    "mul r7, r12 \n\t"                 \
18734    "add r23, r0 \n\t"                 \
18735    "adc r28, r1 \n\t"                 \
18736    "adc r29, r25 \n\t"                \
18737    "mul r8, r11 \n\t"                 \
18738    "add r23, r0 \n\t"                 \
18739    "adc r28, r1 \n\t"                 \
18740    "adc r29, r25 \n\t"                \
18741    "mul r9, r10 \n\t"                 \
18742    "add r23, r0 \n\t"                 \
18743    "adc r28, r1 \n\t"                 \
18744    "adc r29, r25 \n\t"                \
18745    "lsl r23 \n\t"                     \
18746    "rol r28 \n\t"                     \
18747    "rol r29 \n\t"                     \
18748    "add r23, r24 \n\t"                \
18749    "adc r28, r22 \n\t"                \
18750    "adc r29, r25 \n\t"                \
18751    "st z+, r23 \n\t"                  \
18752                                       \
18753    "ldi r22, 0 \n\t"                  \
18754    "mul r2, r18 \n\t"                 \
18755    "mov r23, r0 \n\t"                 \
18756    "mov r24, r1 \n\t"                 \
18757    "mul r3, r17 \n\t"                 \
18758    "add r23, r0 \n\t"                 \
18759    "adc r24, r1 \n\t"                 \
18760    "adc r22, r25 \n\t"                \
18761    "mul r4, r16 \n\t"                 \
18762    "add r23, r0 \n\t"                 \
18763    "adc r24, r1 \n\t"                 \
18764    "adc r22, r25 \n\t"                \
18765    "mul r5, r15 \n\t"                 \
18766    "add r23, r0 \n\t"                 \
18767    "adc r24, r1 \n\t"                 \
18768    "adc r22, r25 \n\t"                \
18769    "mul r6, r14 \n\t"                 \
18770    "add r23, r0 \n\t"                 \
18771    "adc r24, r1 \n\t"                 \
18772    "adc r22, r25 \n\t"                \
18773    "mul r7, r13 \n\t"                 \
18774    "add r23, r0 \n\t"                 \
18775    "adc r24, r1 \n\t"                 \
18776    "adc r22, r25 \n\t"                \
18777    "mul r8, r12 \n\t"                 \
18778    "add r23, r0 \n\t"                 \
18779    "adc r24, r1 \n\t"                 \
18780    "adc r22, r25 \n\t"                \
18781    "mul r9, r11 \n\t"                 \
18782    "add r23, r0 \n\t"                 \
18783    "adc r24, r1 \n\t"                 \
18784    "adc r22, r25 \n\t"                \
18785    "lsl r23 \n\t"                     \
18786    "rol r24 \n\t"                     \
18787    "rol r22 \n\t"                     \
18788    "mul r10, r10 \n\t"                \
18789    "add r23, r0 \n\t"                 \
18790    "adc r24, r1 \n\t"                 \
18791    "adc r22, r25 \n\t"                \
18792    "add r23, r28 \n\t"                \
18793    "adc r24, r29 \n\t"                \
18794    "adc r22, r25 \n\t"                \
18795    "st z+, r23 \n\t"                  \
18796                                       \
18797    "ldi r29, 0 \n\t"                  \
18798    "mul r2, r19 \n\t"                 \
18799    "mov r23, r0 \n\t"                 \
18800    "mov r28, r1 \n\t"                 \
18801    "mul r3, r18 \n\t"                 \
18802    "add r23, r0 \n\t"                 \
18803    "adc r28, r1 \n\t"                 \
18804    "adc r29, r25 \n\t"                \
18805    "mul r4, r17 \n\t"                 \
18806    "add r23, r0 \n\t"                 \
18807    "adc r28, r1 \n\t"                 \
18808    "adc r29, r25 \n\t"                \
18809    "mul r5, r16 \n\t"                 \
18810    "add r23, r0 \n\t"                 \
18811    "adc r28, r1 \n\t"                 \
18812    "adc r29, r25 \n\t"                \
18813    "mul r6, r15 \n\t"                 \
18814    "add r23, r0 \n\t"                 \
18815    "adc r28, r1 \n\t"                 \
18816    "adc r29, r25 \n\t"                \
18817    "mul r7, r14 \n\t"                 \
18818    "add r23, r0 \n\t"                 \
18819    "adc r28, r1 \n\t"                 \
18820    "adc r29, r25 \n\t"                \
18821    "mul r8, r13 \n\t"                 \
18822    "add r23, r0 \n\t"                 \
18823    "adc r28, r1 \n\t"                 \
18824    "adc r29, r25 \n\t"                \
18825    "mul r9, r12 \n\t"                 \
18826    "add r23, r0 \n\t"                 \
18827    "adc r28, r1 \n\t"                 \
18828    "adc r29, r25 \n\t"                \
18829    "mul r10, r11 \n\t"                \
18830    "add r23, r0 \n\t"                 \
18831    "adc r28, r1 \n\t"                 \
18832    "adc r29, r25 \n\t"                \
18833    "lsl r23 \n\t"                     \
18834    "rol r28 \n\t"                     \
18835    "rol r29 \n\t"                     \
18836    "add r23, r24 \n\t"                \
18837    "adc r28, r22 \n\t"                \
18838    "adc r29, r25 \n\t"                \
18839    "st z+, r23 \n\t"                  \
18840                                       \
18841    "ldi r22, 0 \n\t"                  \
18842    "mul r2, r20 \n\t"                 \
18843    "mov r23, r0 \n\t"                 \
18844    "mov r24, r1 \n\t"                 \
18845    "mul r3, r19 \n\t"                 \
18846    "add r23, r0 \n\t"                 \
18847    "adc r24, r1 \n\t"                 \
18848    "adc r22, r25 \n\t"                \
18849    "mul r4, r18 \n\t"                 \
18850    "add r23, r0 \n\t"                 \
18851    "adc r24, r1 \n\t"                 \
18852    "adc r22, r25 \n\t"                \
18853    "mul r5, r17 \n\t"                 \
18854    "add r23, r0 \n\t"                 \
18855    "adc r24, r1 \n\t"                 \
18856    "adc r22, r25 \n\t"                \
18857    "mul r6, r16 \n\t"                 \
18858    "add r23, r0 \n\t"                 \
18859    "adc r24, r1 \n\t"                 \
18860    "adc r22, r25 \n\t"                \
18861    "mul r7, r15 \n\t"                 \
18862    "add r23, r0 \n\t"                 \
18863    "adc r24, r1 \n\t"                 \
18864    "adc r22, r25 \n\t"                \
18865    "mul r8, r14 \n\t"                 \
18866    "add r23, r0 \n\t"                 \
18867    "adc r24, r1 \n\t"                 \
18868    "adc r22, r25 \n\t"                \
18869    "mul r9, r13 \n\t"                 \
18870    "add r23, r0 \n\t"                 \
18871    "adc r24, r1 \n\t"                 \
18872    "adc r22, r25 \n\t"                \
18873    "mul r10, r12 \n\t"                \
18874    "add r23, r0 \n\t"                 \
18875    "adc r24, r1 \n\t"                 \
18876    "adc r22, r25 \n\t"                \
18877    "lsl r23 \n\t"                     \
18878    "rol r24 \n\t"                     \
18879    "rol r22 \n\t"                     \
18880    "mul r11, r11 \n\t"                \
18881    "add r23, r0 \n\t"                 \
18882    "adc r24, r1 \n\t"                 \
18883    "adc r22, r25 \n\t"                \
18884    "add r23, r28 \n\t"                \
18885    "adc r24, r29 \n\t"                \
18886    "adc r22, r25 \n\t"                \
18887    "st z+, r23 \n\t"                  \
18888                                       \
18889    "ldi r29, 0 \n\t"                  \
18890    "mul r2, r21 \n\t"                 \
18891    "mov r23, r0 \n\t"                 \
18892    "mov r28, r1 \n\t"                 \
18893    "mul r3, r20 \n\t"                 \
18894    "add r23, r0 \n\t"                 \
18895    "adc r28, r1 \n\t"                 \
18896    "adc r29, r25 \n\t"                \
18897    "mul r4, r19 \n\t"                 \
18898    "add r23, r0 \n\t"                 \
18899    "adc r28, r1 \n\t"                 \
18900    "adc r29, r25 \n\t"                \
18901    "mul r5, r18 \n\t"                 \
18902    "add r23, r0 \n\t"                 \
18903    "adc r28, r1 \n\t"                 \
18904    "adc r29, r25 \n\t"                \
18905    "mul r6, r17 \n\t"                 \
18906    "add r23, r0 \n\t"                 \
18907    "adc r28, r1 \n\t"                 \
18908    "adc r29, r25 \n\t"                \
18909    "mul r7, r16 \n\t"                 \
18910    "add r23, r0 \n\t"                 \
18911    "adc r28, r1 \n\t"                 \
18912    "adc r29, r25 \n\t"                \
18913    "mul r8, r15 \n\t"                 \
18914    "add r23, r0 \n\t"                 \
18915    "adc r28, r1 \n\t"                 \
18916    "adc r29, r25 \n\t"                \
18917    "mul r9, r14 \n\t"                 \
18918    "add r23, r0 \n\t"                 \
18919    "adc r28, r1 \n\t"                 \
18920    "adc r29, r25 \n\t"                \
18921    "mul r10, r13 \n\t"                \
18922    "add r23, r0 \n\t"                 \
18923    "adc r28, r1 \n\t"                 \
18924    "adc r29, r25 \n\t"                \
18925    "mul r11, r12 \n\t"                \
18926    "add r23, r0 \n\t"                 \
18927    "adc r28, r1 \n\t"                 \
18928    "adc r29, r25 \n\t"                \
18929    "lsl r23 \n\t"                     \
18930    "rol r28 \n\t"                     \
18931    "rol r29 \n\t"                     \
18932    "add r23, r24 \n\t"                \
18933    "adc r28, r22 \n\t"                \
18934    "adc r29, r25 \n\t"                \
18935    "st z+, r23 \n\t"                  \
18936                                       \
18937    "ld r2, x+ \n\t"                   \
18938    "ldi r22, 0 \n\t"                  \
18939    "mul r3, r21 \n\t"                 \
18940    "mov r23, r0 \n\t"                 \
18941    "mov r24, r1 \n\t"                 \
18942    "mul r4, r20 \n\t"                 \
18943    "add r23, r0 \n\t"                 \
18944    "adc r24, r1 \n\t"                 \
18945    "adc r22, r25 \n\t"                \
18946    "mul r5, r19 \n\t"                 \
18947    "add r23, r0 \n\t"                 \
18948    "adc r24, r1 \n\t"                 \
18949    "adc r22, r25 \n\t"                \
18950    "mul r6, r18 \n\t"                 \
18951    "add r23, r0 \n\t"                 \
18952    "adc r24, r1 \n\t"                 \
18953    "adc r22, r25 \n\t"                \
18954    "mul r7, r17 \n\t"                 \
18955    "add r23, r0 \n\t"                 \
18956    "adc r24, r1 \n\t"                 \
18957    "adc r22, r25 \n\t"                \
18958    "mul r8, r16 \n\t"                 \
18959    "add r23, r0 \n\t"                 \
18960    "adc r24, r1 \n\t"                 \
18961    "adc r22, r25 \n\t"                \
18962    "mul r9, r15 \n\t"                 \
18963    "add r23, r0 \n\t"                 \
18964    "adc r24, r1 \n\t"                 \
18965    "adc r22, r25 \n\t"                \
18966    "mul r10, r14 \n\t"                \
18967    "add r23, r0 \n\t"                 \
18968    "adc r24, r1 \n\t"                 \
18969    "adc r22, r25 \n\t"                \
18970    "mul r11, r13 \n\t"                \
18971    "add r23, r0 \n\t"                 \
18972    "adc r24, r1 \n\t"                 \
18973    "adc r22, r25 \n\t"                \
18974    "ld r0, z \n\t"                    \
18975    "add r23, r0 \n\t"                 \
18976    "adc r24, r25 \n\t"                \
18977    "adc r22, r25 \n\t"                \
18978    "lsl r23 \n\t"                     \
18979    "rol r24 \n\t"                     \
18980    "rol r22 \n\t"                     \
18981    "mul r12, r12 \n\t"                \
18982    "add r23, r0 \n\t"                 \
18983    "adc r24, r1 \n\t"                 \
18984    "adc r22, r25 \n\t"                \
18985    "add r23, r28 \n\t"                \
18986    "adc r24, r29 \n\t"                \
18987    "adc r22, r25 \n\t"                \
18988    "st z+, r23 \n\t"                  \
18989                                       \
18990    "ldi r29, 0 \n\t"                  \
18991    "mul r3, r2 \n\t"                  \
18992    "mov r23, r0 \n\t"                 \
18993    "mov r28, r1 \n\t"                 \
18994    "mul r4, r21 \n\t"                 \
18995    "add r23, r0 \n\t"                 \
18996    "adc r28, r1 \n\t"                 \
18997    "adc r29, r25 \n\t"                \
18998    "mul r5, r20 \n\t"                 \
18999    "add r23, r0 \n\t"                 \
19000    "adc r28, r1 \n\t"                 \
19001    "adc r29, r25 \n\t"                \
19002    "mul r6, r19 \n\t"                 \
19003    "add r23, r0 \n\t"                 \
19004    "adc r28, r1 \n\t"                 \
19005    "adc r29, r25 \n\t"                \
19006    "mul r7, r18 \n\t"                 \
19007    "add r23, r0 \n\t"                 \
19008    "adc r28, r1 \n\t"                 \
19009    "adc r29, r25 \n\t"                \
19010    "mul r8, r17 \n\t"                 \
19011    "add r23, r0 \n\t"                 \
19012    "adc r28, r1 \n\t"                 \
19013    "adc r29, r25 \n\t"                \
19014    "mul r9, r16 \n\t"                 \
19015    "add r23, r0 \n\t"                 \
19016    "adc r28, r1 \n\t"                 \
19017    "adc r29, r25 \n\t"                \
19018    "mul r10, r15 \n\t"                \
19019    "add r23, r0 \n\t"                 \
19020    "adc r28, r1 \n\t"                 \
19021    "adc r29, r25 \n\t"                \
19022    "mul r11, r14 \n\t"                \
19023    "add r23, r0 \n\t"                 \
19024    "adc r28, r1 \n\t"                 \
19025    "adc r29, r25 \n\t"                \
19026    "mul r12, r13 \n\t"                \
19027    "add r23, r0 \n\t"                 \
19028    "adc r28, r1 \n\t"                 \
19029    "adc r29, r25 \n\t"                \
19030    "ld r0, z \n\t"                    \
19031    "add r23, r0 \n\t"                 \
19032    "adc r28, r25 \n\t"                \
19033    "adc r29, r25 \n\t"                \
19034    "lsl r23 \n\t"                     \
19035    "rol r28 \n\t"                     \
19036    "rol r29 \n\t"                     \
19037    "add r23, r24 \n\t"                \
19038    "adc r28, r22 \n\t"                \
19039    "adc r29, r25 \n\t"                \
19040    "st z+, r23 \n\t"                  \
19041                                       \
19042    "ld r3, x+ \n\t"                   \
19043    "ldi r22, 0 \n\t"                  \
19044    "mul r4, r2 \n\t"                  \
19045    "mov r23, r0 \n\t"                 \
19046    "mov r24, r1 \n\t"                 \
19047    "mul r5, r21 \n\t"                 \
19048    "add r23, r0 \n\t"                 \
19049    "adc r24, r1 \n\t"                 \
19050    "adc r22, r25 \n\t"                \
19051    "mul r6, r20 \n\t"                 \
19052    "add r23, r0 \n\t"                 \
19053    "adc r24, r1 \n\t"                 \
19054    "adc r22, r25 \n\t"                \
19055    "mul r7, r19 \n\t"                 \
19056    "add r23, r0 \n\t"                 \
19057    "adc r24, r1 \n\t"                 \
19058    "adc r22, r25 \n\t"                \
19059    "mul r8, r18 \n\t"                 \
19060    "add r23, r0 \n\t"                 \
19061    "adc r24, r1 \n\t"                 \
19062    "adc r22, r25 \n\t"                \
19063    "mul r9, r17 \n\t"                 \
19064    "add r23, r0 \n\t"                 \
19065    "adc r24, r1 \n\t"                 \
19066    "adc r22, r25 \n\t"                \
19067    "mul r10, r16 \n\t"                \
19068    "add r23, r0 \n\t"                 \
19069    "adc r24, r1 \n\t"                 \
19070    "adc r22, r25 \n\t"                \
19071    "mul r11, r15 \n\t"                \
19072    "add r23, r0 \n\t"                 \
19073    "adc r24, r1 \n\t"                 \
19074    "adc r22, r25 \n\t"                \
19075    "mul r12, r14 \n\t"                \
19076    "add r23, r0 \n\t"                 \
19077    "adc r24, r1 \n\t"                 \
19078    "adc r22, r25 \n\t"                \
19079    "ld r0, z \n\t"                    \
19080    "add r23, r0 \n\t"                 \
19081    "adc r24, r25 \n\t"                \
19082    "adc r22, r25 \n\t"                \
19083    "lsl r23 \n\t"                     \
19084    "rol r24 \n\t"                     \
19085    "rol r22 \n\t"                     \
19086    "mul r13, r13 \n\t"                \
19087    "add r23, r0 \n\t"                 \
19088    "adc r24, r1 \n\t"                 \
19089    "adc r22, r25 \n\t"                \
19090    "add r23, r28 \n\t"                \
19091    "adc r24, r29 \n\t"                \
19092    "adc r22, r25 \n\t"                \
19093    "st z+, r23 \n\t"                  \
19094                                       \
19095    "ldi r29, 0 \n\t"                  \
19096    "mul r4, r3 \n\t"                  \
19097    "mov r23, r0 \n\t"                 \
19098    "mov r28, r1 \n\t"                 \
19099    "mul r5, r2 \n\t"                  \
19100    "add r23, r0 \n\t"                 \
19101    "adc r28, r1 \n\t"                 \
19102    "adc r29, r25 \n\t"                \
19103    "mul r6, r21 \n\t"                 \
19104    "add r23, r0 \n\t"                 \
19105    "adc r28, r1 \n\t"                 \
19106    "adc r29, r25 \n\t"                \
19107    "mul r7, r20 \n\t"                 \
19108    "add r23, r0 \n\t"                 \
19109    "adc r28, r1 \n\t"                 \
19110    "adc r29, r25 \n\t"                \
19111    "mul r8, r19 \n\t"                 \
19112    "add r23, r0 \n\t"                 \
19113    "adc r28, r1 \n\t"                 \
19114    "adc r29, r25 \n\t"                \
19115    "mul r9, r18 \n\t"                 \
19116    "add r23, r0 \n\t"                 \
19117    "adc r28, r1 \n\t"                 \
19118    "adc r29, r25 \n\t"                \
19119    "mul r10, r17 \n\t"                \
19120    "add r23, r0 \n\t"                 \
19121    "adc r28, r1 \n\t"                 \
19122    "adc r29, r25 \n\t"                \
19123    "mul r11, r16 \n\t"                \
19124    "add r23, r0 \n\t"                 \
19125    "adc r28, r1 \n\t"                 \
19126    "adc r29, r25 \n\t"                \
19127    "mul r12, r15 \n\t"                \
19128    "add r23, r0 \n\t"                 \
19129    "adc r28, r1 \n\t"                 \
19130    "adc r29, r25 \n\t"                \
19131    "mul r13, r14 \n\t"                \
19132    "add r23, r0 \n\t"                 \
19133    "adc r28, r1 \n\t"                 \
19134    "adc r29, r25 \n\t"                \
19135    "ld r0, z \n\t"                    \
19136    "add r23, r0 \n\t"                 \
19137    "adc r28, r25 \n\t"                \
19138    "adc r29, r25 \n\t"                \
19139    "lsl r23 \n\t"                     \
19140    "rol r28 \n\t"                     \
19141    "rol r29 \n\t"                     \
19142    "add r23, r24 \n\t"                \
19143    "adc r28, r22 \n\t"                \
19144    "adc r29, r25 \n\t"                \
19145    "st z+, r23 \n\t"                  \
19146                                       \
19147    "ld r4, x+ \n\t"                   \
19148    "ldi r22, 0 \n\t"                  \
19149    "mul r5, r3 \n\t"                  \
19150    "mov r23, r0 \n\t"                 \
19151    "mov r24, r1 \n\t"                 \
19152    "mul r6, r2 \n\t"                  \
19153    "add r23, r0 \n\t"                 \
19154    "adc r24, r1 \n\t"                 \
19155    "adc r22, r25 \n\t"                \
19156    "mul r7, r21 \n\t"                 \
19157    "add r23, r0 \n\t"                 \
19158    "adc r24, r1 \n\t"                 \
19159    "adc r22, r25 \n\t"                \
19160    "mul r8, r20 \n\t"                 \
19161    "add r23, r0 \n\t"                 \
19162    "adc r24, r1 \n\t"                 \
19163    "adc r22, r25 \n\t"                \
19164    "mul r9, r19 \n\t"                 \
19165    "add r23, r0 \n\t"                 \
19166    "adc r24, r1 \n\t"                 \
19167    "adc r22, r25 \n\t"                \
19168    "mul r10, r18 \n\t"                \
19169    "add r23, r0 \n\t"                 \
19170    "adc r24, r1 \n\t"                 \
19171    "adc r22, r25 \n\t"                \
19172    "mul r11, r17 \n\t"                \
19173    "add r23, r0 \n\t"                 \
19174    "adc r24, r1 \n\t"                 \
19175    "adc r22, r25 \n\t"                \
19176    "mul r12, r16 \n\t"                \
19177    "add r23, r0 \n\t"                 \
19178    "adc r24, r1 \n\t"                 \
19179    "adc r22, r25 \n\t"                \
19180    "mul r13, r15 \n\t"                \
19181    "add r23, r0 \n\t"                 \
19182    "adc r24, r1 \n\t"                 \
19183    "adc r22, r25 \n\t"                \
19184    "ld r0, z \n\t"                    \
19185    "add r23, r0 \n\t"                 \
19186    "adc r24, r25 \n\t"                \
19187    "adc r22, r25 \n\t"                \
19188    "lsl r23 \n\t"                     \
19189    "rol r24 \n\t"                     \
19190    "rol r22 \n\t"                     \
19191    "mul r14, r14 \n\t"                \
19192    "add r23, r0 \n\t"                 \
19193    "adc r24, r1 \n\t"                 \
19194    "adc r22, r25 \n\t"                \
19195    "add r23, r28 \n\t"                \
19196    "adc r24, r29 \n\t"                \
19197    "adc r22, r25 \n\t"                \
19198    "st z+, r23 \n\t"                  \
19199                                       \
19200    "ldi r29, 0 \n\t"                  \
19201    "mul r5, r4 \n\t"                  \
19202    "mov r23, r0 \n\t"                 \
19203    "mov r28, r1 \n\t"                 \
19204    "mul r6, r3 \n\t"                  \
19205    "add r23, r0 \n\t"                 \
19206    "adc r28, r1 \n\t"                 \
19207    "adc r29, r25 \n\t"                \
19208    "mul r7, r2 \n\t"                  \
19209    "add r23, r0 \n\t"                 \
19210    "adc r28, r1 \n\t"                 \
19211    "adc r29, r25 \n\t"                \
19212    "mul r8, r21 \n\t"                 \
19213    "add r23, r0 \n\t"                 \
19214    "adc r28, r1 \n\t"                 \
19215    "adc r29, r25 \n\t"                \
19216    "mul r9, r20 \n\t"                 \
19217    "add r23, r0 \n\t"                 \
19218    "adc r28, r1 \n\t"                 \
19219    "adc r29, r25 \n\t"                \
19220    "mul r10, r19 \n\t"                \
19221    "add r23, r0 \n\t"                 \
19222    "adc r28, r1 \n\t"                 \
19223    "adc r29, r25 \n\t"                \
19224    "mul r11, r18 \n\t"                \
19225    "add r23, r0 \n\t"                 \
19226    "adc r28, r1 \n\t"                 \
19227    "adc r29, r25 \n\t"                \
19228    "mul r12, r17 \n\t"                \
19229    "add r23, r0 \n\t"                 \
19230    "adc r28, r1 \n\t"                 \
19231    "adc r29, r25 \n\t"                \
19232    "mul r13, r16 \n\t"                \
19233    "add r23, r0 \n\t"                 \
19234    "adc r28, r1 \n\t"                 \
19235    "adc r29, r25 \n\t"                \
19236    "mul r14, r15 \n\t"                \
19237    "add r23, r0 \n\t"                 \
19238    "adc r28, r1 \n\t"                 \
19239    "adc r29, r25 \n\t"                \
19240    "ld r0, z \n\t"                    \
19241    "add r23, r0 \n\t"                 \
19242    "adc r28, r25 \n\t"                \
19243    "adc r29, r25 \n\t"                \
19244    "lsl r23 \n\t"                     \
19245    "rol r28 \n\t"                     \
19246    "rol r29 \n\t"                     \
19247    "add r23, r24 \n\t"                \
19248    "adc r28, r22 \n\t"                \
19249    "adc r29, r25 \n\t"                \
19250    "st z+, r23 \n\t"                  \
19251                                       \
19252    "ld r5, x+ \n\t"                   \
19253    "ldi r22, 0 \n\t"                  \
19254    "mul r6, r4 \n\t"                  \
19255    "mov r23, r0 \n\t"                 \
19256    "mov r24, r1 \n\t"                 \
19257    "mul r7, r3 \n\t"                  \
19258    "add r23, r0 \n\t"                 \
19259    "adc r24, r1 \n\t"                 \
19260    "adc r22, r25 \n\t"                \
19261    "mul r8, r2 \n\t"                  \
19262    "add r23, r0 \n\t"                 \
19263    "adc r24, r1 \n\t"                 \
19264    "adc r22, r25 \n\t"                \
19265    "mul r9, r21 \n\t"                 \
19266    "add r23, r0 \n\t"                 \
19267    "adc r24, r1 \n\t"                 \
19268    "adc r22, r25 \n\t"                \
19269    "mul r10, r20 \n\t"                \
19270    "add r23, r0 \n\t"                 \
19271    "adc r24, r1 \n\t"                 \
19272    "adc r22, r25 \n\t"                \
19273    "mul r11, r19 \n\t"                \
19274    "add r23, r0 \n\t"                 \
19275    "adc r24, r1 \n\t"                 \
19276    "adc r22, r25 \n\t"                \
19277    "mul r12, r18 \n\t"                \
19278    "add r23, r0 \n\t"                 \
19279    "adc r24, r1 \n\t"                 \
19280    "adc r22, r25 \n\t"                \
19281    "mul r13, r17 \n\t"                \
19282    "add r23, r0 \n\t"                 \
19283    "adc r24, r1 \n\t"                 \
19284    "adc r22, r25 \n\t"                \
19285    "mul r14, r16 \n\t"                \
19286    "add r23, r0 \n\t"                 \
19287    "adc r24, r1 \n\t"                 \
19288    "adc r22, r25 \n\t"                \
19289    "ld r0, z \n\t"                    \
19290    "add r23, r0 \n\t"                 \
19291    "adc r24, r25 \n\t"                \
19292    "adc r22, r25 \n\t"                \
19293    "lsl r23 \n\t"                     \
19294    "rol r24 \n\t"                     \
19295    "rol r22 \n\t"                     \
19296    "mul r15, r15 \n\t"                \
19297    "add r23, r0 \n\t"                 \
19298    "adc r24, r1 \n\t"                 \
19299    "adc r22, r25 \n\t"                \
19300    "add r23, r28 \n\t"                \
19301    "adc r24, r29 \n\t"                \
19302    "adc r22, r25 \n\t"                \
19303    "st z+, r23 \n\t"                  \
19304                                       \
19305    "ldi r29, 0 \n\t"                  \
19306    "mul r6, r5 \n\t"                  \
19307    "mov r23, r0 \n\t"                 \
19308    "mov r28, r1 \n\t"                 \
19309    "mul r7, r4 \n\t"                  \
19310    "add r23, r0 \n\t"                 \
19311    "adc r28, r1 \n\t"                 \
19312    "adc r29, r25 \n\t"                \
19313    "mul r8, r3 \n\t"                  \
19314    "add r23, r0 \n\t"                 \
19315    "adc r28, r1 \n\t"                 \
19316    "adc r29, r25 \n\t"                \
19317    "mul r9, r2 \n\t"                  \
19318    "add r23, r0 \n\t"                 \
19319    "adc r28, r1 \n\t"                 \
19320    "adc r29, r25 \n\t"                \
19321    "mul r10, r21 \n\t"                \
19322    "add r23, r0 \n\t"                 \
19323    "adc r28, r1 \n\t"                 \
19324    "adc r29, r25 \n\t"                \
19325    "mul r11, r20 \n\t"                \
19326    "add r23, r0 \n\t"                 \
19327    "adc r28, r1 \n\t"                 \
19328    "adc r29, r25 \n\t"                \
19329    "mul r12, r19 \n\t"                \
19330    "add r23, r0 \n\t"                 \
19331    "adc r28, r1 \n\t"                 \
19332    "adc r29, r25 \n\t"                \
19333    "mul r13, r18 \n\t"                \
19334    "add r23, r0 \n\t"                 \
19335    "adc r28, r1 \n\t"                 \
19336    "adc r29, r25 \n\t"                \
19337    "mul r14, r17 \n\t"                \
19338    "add r23, r0 \n\t"                 \
19339    "adc r28, r1 \n\t"                 \
19340    "adc r29, r25 \n\t"                \
19341    "mul r15, r16 \n\t"                \
19342    "add r23, r0 \n\t"                 \
19343    "adc r28, r1 \n\t"                 \
19344    "adc r29, r25 \n\t"                \
19345    "ld r0, z \n\t"                    \
19346    "add r23, r0 \n\t"                 \
19347    "adc r28, r25 \n\t"                \
19348    "adc r29, r25 \n\t"                \
19349    "lsl r23 \n\t"                     \
19350    "rol r28 \n\t"                     \
19351    "rol r29 \n\t"                     \
19352    "add r23, r24 \n\t"                \
19353    "adc r28, r22 \n\t"                \
19354    "adc r29, r25 \n\t"                \
19355    "st z+, r23 \n\t"                  \
19356                                       \
19357    "ldi r22, 0 \n\t"                  \
19358    "mul r7, r5 \n\t"                  \
19359    "mov r23, r0 \n\t"                 \
19360    "mov r24, r1 \n\t"                 \
19361    "mul r8, r4 \n\t"                  \
19362    "add r23, r0 \n\t"                 \
19363    "adc r24, r1 \n\t"                 \
19364    "adc r22, r25 \n\t"                \
19365    "mul r9, r3 \n\t"                  \
19366    "add r23, r0 \n\t"                 \
19367    "adc r24, r1 \n\t"                 \
19368    "adc r22, r25 \n\t"                \
19369    "mul r10, r2 \n\t"                 \
19370    "add r23, r0 \n\t"                 \
19371    "adc r24, r1 \n\t"                 \
19372    "adc r22, r25 \n\t"                \
19373    "mul r11, r21 \n\t"                \
19374    "add r23, r0 \n\t"                 \
19375    "adc r24, r1 \n\t"                 \
19376    "adc r22, r25 \n\t"                \
19377    "mul r12, r20 \n\t"                \
19378    "add r23, r0 \n\t"                 \
19379    "adc r24, r1 \n\t"                 \
19380    "adc r22, r25 \n\t"                \
19381    "mul r13, r19 \n\t"                \
19382    "add r23, r0 \n\t"                 \
19383    "adc r24, r1 \n\t"                 \
19384    "adc r22, r25 \n\t"                \
19385    "mul r14, r18 \n\t"                \
19386    "add r23, r0 \n\t"                 \
19387    "adc r24, r1 \n\t"                 \
19388    "adc r22, r25 \n\t"                \
19389    "mul r15, r17 \n\t"                \
19390    "add r23, r0 \n\t"                 \
19391    "adc r24, r1 \n\t"                 \
19392    "adc r22, r25 \n\t"                \
19393    "lsl r23 \n\t"                     \
19394    "rol r24 \n\t"                     \
19395    "rol r22 \n\t"                     \
19396    "mul r16, r16 \n\t"                \
19397    "add r23, r0 \n\t"                 \
19398    "adc r24, r1 \n\t"                 \
19399    "adc r22, r25 \n\t"                \
19400    "add r23, r28 \n\t"                \
19401    "adc r24, r29 \n\t"                \
19402    "adc r22, r25 \n\t"                \
19403    "st z+, r23 \n\t"                  \
19404                                       \
19405    "ldi r29, 0 \n\t"                  \
19406    "mul r8, r5 \n\t"                  \
19407    "mov r23, r0 \n\t"                 \
19408    "mov r28, r1 \n\t"                 \
19409    "mul r9, r4 \n\t"                  \
19410    "add r23, r0 \n\t"                 \
19411    "adc r28, r1 \n\t"                 \
19412    "adc r29, r25 \n\t"                \
19413    "mul r10, r3 \n\t"                 \
19414    "add r23, r0 \n\t"                 \
19415    "adc r28, r1 \n\t"                 \
19416    "adc r29, r25 \n\t"                \
19417    "mul r11, r2 \n\t"                 \
19418    "add r23, r0 \n\t"                 \
19419    "adc r28, r1 \n\t"                 \
19420    "adc r29, r25 \n\t"                \
19421    "mul r12, r21 \n\t"                \
19422    "add r23, r0 \n\t"                 \
19423    "adc r28, r1 \n\t"                 \
19424    "adc r29, r25 \n\t"                \
19425    "mul r13, r20 \n\t"                \
19426    "add r23, r0 \n\t"                 \
19427    "adc r28, r1 \n\t"                 \
19428    "adc r29, r25 \n\t"                \
19429    "mul r14, r19 \n\t"                \
19430    "add r23, r0 \n\t"                 \
19431    "adc r28, r1 \n\t"                 \
19432    "adc r29, r25 \n\t"                \
19433    "mul r15, r18 \n\t"                \
19434    "add r23, r0 \n\t"                 \
19435    "adc r28, r1 \n\t"                 \
19436    "adc r29, r25 \n\t"                \
19437    "mul r16, r17 \n\t"                \
19438    "add r23, r0 \n\t"                 \
19439    "adc r28, r1 \n\t"                 \
19440    "adc r29, r25 \n\t"                \
19441    "lsl r23 \n\t"                     \
19442    "rol r28 \n\t"                     \
19443    "rol r29 \n\t"                     \
19444    "add r23, r24 \n\t"                \
19445    "adc r28, r22 \n\t"                \
19446    "adc r29, r25 \n\t"                \
19447    "st z+, r23 \n\t"                  \
19448                                       \
19449    "ldi r22, 0 \n\t"                  \
19450    "mul r9, r5 \n\t"                  \
19451    "mov r23, r0 \n\t"                 \
19452    "mov r24, r1 \n\t"                 \
19453    "mul r10, r4 \n\t"                 \
19454    "add r23, r0 \n\t"                 \
19455    "adc r24, r1 \n\t"                 \
19456    "adc r22, r25 \n\t"                \
19457    "mul r11, r3 \n\t"                 \
19458    "add r23, r0 \n\t"                 \
19459    "adc r24, r1 \n\t"                 \
19460    "adc r22, r25 \n\t"                \
19461    "mul r12, r2 \n\t"                 \
19462    "add r23, r0 \n\t"                 \
19463    "adc r24, r1 \n\t"                 \
19464    "adc r22, r25 \n\t"                \
19465    "mul r13, r21 \n\t"                \
19466    "add r23, r0 \n\t"                 \
19467    "adc r24, r1 \n\t"                 \
19468    "adc r22, r25 \n\t"                \
19469    "mul r14, r20 \n\t"                \
19470    "add r23, r0 \n\t"                 \
19471    "adc r24, r1 \n\t"                 \
19472    "adc r22, r25 \n\t"                \
19473    "mul r15, r19 \n\t"                \
19474    "add r23, r0 \n\t"                 \
19475    "adc r24, r1 \n\t"                 \
19476    "adc r22, r25 \n\t"                \
19477    "mul r16, r18 \n\t"                \
19478    "add r23, r0 \n\t"                 \
19479    "adc r24, r1 \n\t"                 \
19480    "adc r22, r25 \n\t"                \
19481    "lsl r23 \n\t"                     \
19482    "rol r24 \n\t"                     \
19483    "rol r22 \n\t"                     \
19484    "mul r17, r17 \n\t"                \
19485    "add r23, r0 \n\t"                 \
19486    "adc r24, r1 \n\t"                 \
19487    "adc r22, r25 \n\t"                \
19488    "add r23, r28 \n\t"                \
19489    "adc r24, r29 \n\t"                \
19490    "adc r22, r25 \n\t"                \
19491    "st z+, r23 \n\t"                  \
19492                                       \
19493    "ldi r29, 0 \n\t"                  \
19494    "mul r10, r5 \n\t"                 \
19495    "mov r23, r0 \n\t"                 \
19496    "mov r28, r1 \n\t"                 \
19497    "mul r11, r4 \n\t"                 \
19498    "add r23, r0 \n\t"                 \
19499    "adc r28, r1 \n\t"                 \
19500    "adc r29, r25 \n\t"                \
19501    "mul r12, r3 \n\t"                 \
19502    "add r23, r0 \n\t"                 \
19503    "adc r28, r1 \n\t"                 \
19504    "adc r29, r25 \n\t"                \
19505    "mul r13, r2 \n\t"                 \
19506    "add r23, r0 \n\t"                 \
19507    "adc r28, r1 \n\t"                 \
19508    "adc r29, r25 \n\t"                \
19509    "mul r14, r21 \n\t"                \
19510    "add r23, r0 \n\t"                 \
19511    "adc r28, r1 \n\t"                 \
19512    "adc r29, r25 \n\t"                \
19513    "mul r15, r20 \n\t"                \
19514    "add r23, r0 \n\t"                 \
19515    "adc r28, r1 \n\t"                 \
19516    "adc r29, r25 \n\t"                \
19517    "mul r16, r19 \n\t"                \
19518    "add r23, r0 \n\t"                 \
19519    "adc r28, r1 \n\t"                 \
19520    "adc r29, r25 \n\t"                \
19521    "mul r17, r18 \n\t"                \
19522    "add r23, r0 \n\t"                 \
19523    "adc r28, r1 \n\t"                 \
19524    "adc r29, r25 \n\t"                \
19525    "lsl r23 \n\t"                     \
19526    "rol r28 \n\t"                     \
19527    "rol r29 \n\t"                     \
19528    "add r23, r24 \n\t"                \
19529    "adc r28, r22 \n\t"                \
19530    "adc r29, r25 \n\t"                \
19531    "st z+, r23 \n\t"                  \
19532                                       \
19533    "ldi r22, 0 \n\t"                  \
19534    "mul r11, r5 \n\t"                 \
19535    "mov r23, r0 \n\t"                 \
19536    "mov r24, r1 \n\t"                 \
19537    "mul r12, r4 \n\t"                 \
19538    "add r23, r0 \n\t"                 \
19539    "adc r24, r1 \n\t"                 \
19540    "adc r22, r25 \n\t"                \
19541    "mul r13, r3 \n\t"                 \
19542    "add r23, r0 \n\t"                 \
19543    "adc r24, r1 \n\t"                 \
19544    "adc r22, r25 \n\t"                \
19545    "mul r14, r2 \n\t"                 \
19546    "add r23, r0 \n\t"                 \
19547    "adc r24, r1 \n\t"                 \
19548    "adc r22, r25 \n\t"                \
19549    "mul r15, r21 \n\t"                \
19550    "add r23, r0 \n\t"                 \
19551    "adc r24, r1 \n\t"                 \
19552    "adc r22, r25 \n\t"                \
19553    "mul r16, r20 \n\t"                \
19554    "add r23, r0 \n\t"                 \
19555    "adc r24, r1 \n\t"                 \
19556    "adc r22, r25 \n\t"                \
19557    "mul r17, r19 \n\t"                \
19558    "add r23, r0 \n\t"                 \
19559    "adc r24, r1 \n\t"                 \
19560    "adc r22, r25 \n\t"                \
19561    "lsl r23 \n\t"                     \
19562    "rol r24 \n\t"                     \
19563    "rol r22 \n\t"                     \
19564    "mul r18, r18 \n\t"                \
19565    "add r23, r0 \n\t"                 \
19566    "adc r24, r1 \n\t"                 \
19567    "adc r22, r25 \n\t"                \
19568    "add r23, r28 \n\t"                \
19569    "adc r24, r29 \n\t"                \
19570    "adc r22, r25 \n\t"                \
19571    "st z+, r23 \n\t"                  \
19572                                       \
19573    "ldi r29, 0 \n\t"                  \
19574    "mul r12, r5 \n\t"                 \
19575    "mov r23, r0 \n\t"                 \
19576    "mov r28, r1 \n\t"                 \
19577    "mul r13, r4 \n\t"                 \
19578    "add r23, r0 \n\t"                 \
19579    "adc r28, r1 \n\t"                 \
19580    "adc r29, r25 \n\t"                \
19581    "mul r14, r3 \n\t"                 \
19582    "add r23, r0 \n\t"                 \
19583    "adc r28, r1 \n\t"                 \
19584    "adc r29, r25 \n\t"                \
19585    "mul r15, r2 \n\t"                 \
19586    "add r23, r0 \n\t"                 \
19587    "adc r28, r1 \n\t"                 \
19588    "adc r29, r25 \n\t"                \
19589    "mul r16, r21 \n\t"                \
19590    "add r23, r0 \n\t"                 \
19591    "adc r28, r1 \n\t"                 \
19592    "adc r29, r25 \n\t"                \
19593    "mul r17, r20 \n\t"                \
19594    "add r23, r0 \n\t"                 \
19595    "adc r28, r1 \n\t"                 \
19596    "adc r29, r25 \n\t"                \
19597    "mul r18, r19 \n\t"                \
19598    "add r23, r0 \n\t"                 \
19599    "adc r28, r1 \n\t"                 \
19600    "adc r29, r25 \n\t"                \
19601    "lsl r23 \n\t"                     \
19602    "rol r28 \n\t"                     \
19603    "rol r29 \n\t"                     \
19604    "add r23, r24 \n\t"                \
19605    "adc r28, r22 \n\t"                \
19606    "adc r29, r25 \n\t"                \
19607    "st z+, r23 \n\t"                  \
19608                                       \
19609    "ldi r22, 0 \n\t"                  \
19610    "mul r13, r5 \n\t"                 \
19611    "mov r23, r0 \n\t"                 \
19612    "mov r24, r1 \n\t"                 \
19613    "mul r14, r4 \n\t"                 \
19614    "add r23, r0 \n\t"                 \
19615    "adc r24, r1 \n\t"                 \
19616    "adc r22, r25 \n\t"                \
19617    "mul r15, r3 \n\t"                 \
19618    "add r23, r0 \n\t"                 \
19619    "adc r24, r1 \n\t"                 \
19620    "adc r22, r25 \n\t"                \
19621    "mul r16, r2 \n\t"                 \
19622    "add r23, r0 \n\t"                 \
19623    "adc r24, r1 \n\t"                 \
19624    "adc r22, r25 \n\t"                \
19625    "mul r17, r21 \n\t"                \
19626    "add r23, r0 \n\t"                 \
19627    "adc r24, r1 \n\t"                 \
19628    "adc r22, r25 \n\t"                \
19629    "mul r18, r20 \n\t"                \
19630    "add r23, r0 \n\t"                 \
19631    "adc r24, r1 \n\t"                 \
19632    "adc r22, r25 \n\t"                \
19633    "lsl r23 \n\t"                     \
19634    "rol r24 \n\t"                     \
19635    "rol r22 \n\t"                     \
19636    "mul r19, r19 \n\t"                \
19637    "add r23, r0 \n\t"                 \
19638    "adc r24, r1 \n\t"                 \
19639    "adc r22, r25 \n\t"                \
19640    "add r23, r28 \n\t"                \
19641    "adc r24, r29 \n\t"                \
19642    "adc r22, r25 \n\t"                \
19643    "st z+, r23 \n\t"                  \
19644                                       \
19645    "ldi r29, 0 \n\t"                  \
19646    "mul r14, r5 \n\t"                 \
19647    "mov r23, r0 \n\t"                 \
19648    "mov r28, r1 \n\t"                 \
19649    "mul r15, r4 \n\t"                 \
19650    "add r23, r0 \n\t"                 \
19651    "adc r28, r1 \n\t"                 \
19652    "adc r29, r25 \n\t"                \
19653    "mul r16, r3 \n\t"                 \
19654    "add r23, r0 \n\t"                 \
19655    "adc r28, r1 \n\t"                 \
19656    "adc r29, r25 \n\t"                \
19657    "mul r17, r2 \n\t"                 \
19658    "add r23, r0 \n\t"                 \
19659    "adc r28, r1 \n\t"                 \
19660    "adc r29, r25 \n\t"                \
19661    "mul r18, r21 \n\t"                \
19662    "add r23, r0 \n\t"                 \
19663    "adc r28, r1 \n\t"                 \
19664    "adc r29, r25 \n\t"                \
19665    "mul r19, r20 \n\t"                \
19666    "add r23, r0 \n\t"                 \
19667    "adc r28, r1 \n\t"                 \
19668    "adc r29, r25 \n\t"                \
19669    "lsl r23 \n\t"                     \
19670    "rol r28 \n\t"                     \
19671    "rol r29 \n\t"                     \
19672    "add r23, r24 \n\t"                \
19673    "adc r28, r22 \n\t"                \
19674    "adc r29, r25 \n\t"                \
19675    "st z+, r23 \n\t"                  \
19676                                       \
19677    "ldi r22, 0 \n\t"                  \
19678    "mul r15, r5 \n\t"                 \
19679    "mov r23, r0 \n\t"                 \
19680    "mov r24, r1 \n\t"                 \
19681    "mul r16, r4 \n\t"                 \
19682    "add r23, r0 \n\t"                 \
19683    "adc r24, r1 \n\t"                 \
19684    "adc r22, r25 \n\t"                \
19685    "mul r17, r3 \n\t"                 \
19686    "add r23, r0 \n\t"                 \
19687    "adc r24, r1 \n\t"                 \
19688    "adc r22, r25 \n\t"                \
19689    "mul r18, r2 \n\t"                 \
19690    "add r23, r0 \n\t"                 \
19691    "adc r24, r1 \n\t"                 \
19692    "adc r22, r25 \n\t"                \
19693    "mul r19, r21 \n\t"                \
19694    "add r23, r0 \n\t"                 \
19695    "adc r24, r1 \n\t"                 \
19696    "adc r22, r25 \n\t"                \
19697    "lsl r23 \n\t"                     \
19698    "rol r24 \n\t"                     \
19699    "rol r22 \n\t"                     \
19700    "mul r20, r20 \n\t"                \
19701    "add r23, r0 \n\t"                 \
19702    "adc r24, r1 \n\t"                 \
19703    "adc r22, r25 \n\t"                \
19704    "add r23, r28 \n\t"                \
19705    "adc r24, r29 \n\t"                \
19706    "adc r22, r25 \n\t"                \
19707    "st z+, r23 \n\t"                  \
19708                                       \
19709    "ldi r29, 0 \n\t"                  \
19710    "mul r16, r5 \n\t"                 \
19711    "mov r23, r0 \n\t"                 \
19712    "mov r28, r1 \n\t"                 \
19713    "mul r17, r4 \n\t"                 \
19714    "add r23, r0 \n\t"                 \
19715    "adc r28, r1 \n\t"                 \
19716    "adc r29, r25 \n\t"                \
19717    "mul r18, r3 \n\t"                 \
19718    "add r23, r0 \n\t"                 \
19719    "adc r28, r1 \n\t"                 \
19720    "adc r29, r25 \n\t"                \
19721    "mul r19, r2 \n\t"                 \
19722    "add r23, r0 \n\t"                 \
19723    "adc r28, r1 \n\t"                 \
19724    "adc r29, r25 \n\t"                \
19725    "mul r20, r21 \n\t"                \
19726    "add r23, r0 \n\t"                 \
19727    "adc r28, r1 \n\t"                 \
19728    "adc r29, r25 \n\t"                \
19729    "lsl r23 \n\t"                     \
19730    "rol r28 \n\t"                     \
19731    "rol r29 \n\t"                     \
19732    "add r23, r24 \n\t"                \
19733    "adc r28, r22 \n\t"                \
19734    "adc r29, r25 \n\t"                \
19735    "st z+, r23 \n\t"                  \
19736                                       \
19737    "ldi r22, 0 \n\t"                  \
19738    "mul r17, r5 \n\t"                 \
19739    "mov r23, r0 \n\t"                 \
19740    "mov r24, r1 \n\t"                 \
19741    "mul r18, r4 \n\t"                 \
19742    "add r23, r0 \n\t"                 \
19743    "adc r24, r1 \n\t"                 \
19744    "adc r22, r25 \n\t"                \
19745    "mul r19, r3 \n\t"                 \
19746    "add r23, r0 \n\t"                 \
19747    "adc r24, r1 \n\t"                 \
19748    "adc r22, r25 \n\t"                \
19749    "mul r20, r2 \n\t"                 \
19750    "add r23, r0 \n\t"                 \
19751    "adc r24, r1 \n\t"                 \
19752    "adc r22, r25 \n\t"                \
19753    "lsl r23 \n\t"                     \
19754    "rol r24 \n\t"                     \
19755    "rol r22 \n\t"                     \
19756    "mul r21, r21 \n\t"                \
19757    "add r23, r0 \n\t"                 \
19758    "adc r24, r1 \n\t"                 \
19759    "adc r22, r25 \n\t"                \
19760    "add r23, r28 \n\t"                \
19761    "adc r24, r29 \n\t"                \
19762    "adc r22, r25 \n\t"                \
19763    "st z+, r23 \n\t"                  \
19764                                       \
19765    "ldi r29, 0 \n\t"                  \
19766    "mul r18, r5 \n\t"                 \
19767    "mov r23, r0 \n\t"                 \
19768    "mov r28, r1 \n\t"                 \
19769    "mul r19, r4 \n\t"                 \
19770    "add r23, r0 \n\t"                 \
19771    "adc r28, r1 \n\t"                 \
19772    "adc r29, r25 \n\t"                \
19773    "mul r20, r3 \n\t"                 \
19774    "add r23, r0 \n\t"                 \
19775    "adc r28, r1 \n\t"                 \
19776    "adc r29, r25 \n\t"                \
19777    "mul r21, r2 \n\t"                 \
19778    "add r23, r0 \n\t"                 \
19779    "adc r28, r1 \n\t"                 \
19780    "adc r29, r25 \n\t"                \
19781    "lsl r23 \n\t"                     \
19782    "rol r28 \n\t"                     \
19783    "rol r29 \n\t"                     \
19784    "add r23, r24 \n\t"                \
19785    "adc r28, r22 \n\t"                \
19786    "adc r29, r25 \n\t"                \
19787    "st z+, r23 \n\t"                  \
19788                                       \
19789    "ldi r22, 0 \n\t"                  \
19790    "mul r19, r5 \n\t"                 \
19791    "mov r23, r0 \n\t"                 \
19792    "mov r24, r1 \n\t"                 \
19793    "mul r20, r4 \n\t"                 \
19794    "add r23, r0 \n\t"                 \
19795    "adc r24, r1 \n\t"                 \
19796    "adc r22, r25 \n\t"                \
19797    "mul r21, r3 \n\t"                 \
19798    "add r23, r0 \n\t"                 \
19799    "adc r24, r1 \n\t"                 \
19800    "adc r22, r25 \n\t"                \
19801    "lsl r23 \n\t"                     \
19802    "rol r24 \n\t"                     \
19803    "rol r22 \n\t"                     \
19804    "mul r2, r2 \n\t"                  \
19805    "add r23, r0 \n\t"                 \
19806    "adc r24, r1 \n\t"                 \
19807    "adc r22, r25 \n\t"                \
19808    "add r23, r28 \n\t"                \
19809    "adc r24, r29 \n\t"                \
19810    "adc r22, r25 \n\t"                \
19811    "st z+, r23 \n\t"                  \
19812                                       \
19813    "ldi r29, 0 \n\t"                  \
19814    "mul r20, r5 \n\t"                 \
19815    "mov r23, r0 \n\t"                 \
19816    "mov r28, r1 \n\t"                 \
19817    "mul r21, r4 \n\t"                 \
19818    "add r23, r0 \n\t"                 \
19819    "adc r28, r1 \n\t"                 \
19820    "adc r29, r25 \n\t"                \
19821    "mul r2, r3 \n\t"                  \
19822    "add r23, r0 \n\t"                 \
19823    "adc r28, r1 \n\t"                 \
19824    "adc r29, r25 \n\t"                \
19825    "lsl r23 \n\t"                     \
19826    "rol r28 \n\t"                     \
19827    "rol r29 \n\t"                     \
19828    "add r23, r24 \n\t"                \
19829    "adc r28, r22 \n\t"                \
19830    "adc r29, r25 \n\t"                \
19831    "st z+, r23 \n\t"                  \
19832                                       \
19833    "ldi r22, 0 \n\t"                  \
19834    "mul r21, r5 \n\t"                 \
19835    "mov r23, r0 \n\t"                 \
19836    "mov r24, r1 \n\t"                 \
19837    "mul r2, r4 \n\t"                  \
19838    "add r23, r0 \n\t"                 \
19839    "adc r24, r1 \n\t"                 \
19840    "adc r22, r25 \n\t"                \
19841    "lsl r23 \n\t"                     \
19842    "rol r24 \n\t"                     \
19843    "rol r22 \n\t"                     \
19844    "mul r3, r3 \n\t"                  \
19845    "add r23, r0 \n\t"                 \
19846    "adc r24, r1 \n\t"                 \
19847    "adc r22, r25 \n\t"                \
19848    "add r23, r28 \n\t"                \
19849    "adc r24, r29 \n\t"                \
19850    "adc r22, r25 \n\t"                \
19851    "st z+, r23 \n\t"                  \
19852                                       \
19853    "ldi r29, 0 \n\t"                  \
19854    "mul r2, r5 \n\t"                  \
19855    "mov r23, r0 \n\t"                 \
19856    "mov r28, r1 \n\t"                 \
19857    "mul r3, r4 \n\t"                  \
19858    "add r23, r0 \n\t"                 \
19859    "adc r28, r1 \n\t"                 \
19860    "adc r29, r25 \n\t"                \
19861    "lsl r23 \n\t"                     \
19862    "rol r28 \n\t"                     \
19863    "rol r29 \n\t"                     \
19864    "add r23, r24 \n\t"                \
19865    "adc r28, r22 \n\t"                \
19866    "adc r29, r25 \n\t"                \
19867    "st z+, r23 \n\t"                  \
19868                                       \
19869    "ldi r23, 0 \n\t"                  \
19870    "mul r3, r5 \n\t"                  \
19871    "add r28, r0 \n\t"                 \
19872    "adc r29, r1 \n\t"                 \
19873    "adc r23, r25 \n\t"                \
19874    "add r28, r0 \n\t"                 \
19875    "adc r29, r1 \n\t"                 \
19876    "adc r23, r25 \n\t"                \
19877    "mul r4, r4 \n\t"                  \
19878    "add r28, r0 \n\t"                 \
19879    "adc r29, r1 \n\t"                 \
19880    "adc r23, r25 \n\t"                \
19881    "st z+, r28 \n\t"                  \
19882                                       \
19883    "ldi r28, 0 \n\t"                  \
19884    "mul r4, r5 \n\t"                  \
19885    "add r29, r0 \n\t"                 \
19886    "adc r23, r1 \n\t"                 \
19887    "adc r28, r25 \n\t"                \
19888    "add r29, r0 \n\t"                 \
19889    "adc r23, r1 \n\t"                 \
19890    "adc r28, r25 \n\t"                \
19891    "st z+, r29 \n\t"                  \
19892                                       \
19893    "mul r5, r5 \n\t"                  \
19894    "add r23, r0 \n\t"                 \
19895    "adc r28, r1 \n\t"                 \
19896    "st z+, r23 \n\t"                  \
19897    "st z+, r28 \n\t"
19898
19899#define FAST_SQUARE_ASM_24_TO_28           \
19900    "cpi r20, 24 \n\t"                     \
19901    "brne 1f \n\t"                         \
19902    "jmp 2f \n\t"                          \
19903    "1: \n\t"                              \
19904    "ld r2, x+ \n\t"                       \
19905    "ld r3, x+ \n\t"                       \
19906    "ld r4, x+ \n\t"                       \
19907    "ld r5, x+ \n\t"                       \
19908    "sbiw r26, 28 \n\t"                    \
19909    "sbiw r30, 24 \n\t"                    \
19910    "ld r6, x+ \n\t"                       \
19911    "ld r7, x+ \n\t"                       \
19912    "ld r8, x+ \n\t"                       \
19913    "ld r9, x+ \n\t"                       \
19914                                           \
19915    "mul r2, r6 \n\t"                      \
19916    "mov r10, r0 \n\t"                     \
19917    "mov r11, r1 \n\t"                     \
19918    "mov r12, r25 \n\t"                    \
19919    "mov r13, r25 \n\t"                    \
19920    "mul r2, r7 \n\t"                      \
19921    "add r11, r0 \n\t"                     \
19922    "adc r12, r1 \n\t"                     \
19923    "adc r13, r25 \n\t"                    \
19924    "mul r3, r6 \n\t"                      \
19925    "add r11, r0 \n\t"                     \
19926    "adc r12, r1 \n\t"                     \
19927    "adc r13, r25 \n\t"                    \
19928                                           \
19929    "mov r14, r25 \n\t"                    \
19930    "mul r2, r8 \n\t"                      \
19931    "add r12, r0 \n\t"                     \
19932    "adc r13, r1 \n\t"                     \
19933    "adc r14, r25 \n\t"                    \
19934    "mul r3, r7 \n\t"                      \
19935    "add r12, r0 \n\t"                     \
19936    "adc r13, r1 \n\t"                     \
19937    "adc r14, r25 \n\t"                    \
19938    "mul r4, r6 \n\t"                      \
19939    "add r12, r0 \n\t"                     \
19940    "adc r13, r1 \n\t"                     \
19941    "adc r14, r25 \n\t"                    \
19942                                           \
19943    "mov r15, r25 \n\t"                    \
19944    "mul r2, r9 \n\t"                      \
19945    "add r13, r0 \n\t"                     \
19946    "adc r14, r1 \n\t"                     \
19947    "adc r15, r25 \n\t"                    \
19948    "mul r3, r8 \n\t"                      \
19949    "add r13, r0 \n\t"                     \
19950    "adc r14, r1 \n\t"                     \
19951    "adc r15, r25 \n\t"                    \
19952    "mul r4, r7 \n\t"                      \
19953    "add r13, r0 \n\t"                     \
19954    "adc r14, r1 \n\t"                     \
19955    "adc r15, r25 \n\t"                    \
19956    "mul r5, r6 \n\t"                      \
19957    "add r13, r0 \n\t"                     \
19958    "adc r14, r1 \n\t"                     \
19959    "adc r15, r25 \n\t"                    \
19960                                           \
19961    "ld r6, x+ \n\t"                       \
19962    "mov r16, r25 \n\t"                    \
19963    "mul r2, r6 \n\t"                      \
19964    "add r14, r0 \n\t"                     \
19965    "adc r15, r1 \n\t"                     \
19966    "adc r16, r25 \n\t"                    \
19967    "mul r3, r9 \n\t"                      \
19968    "add r14, r0 \n\t"                     \
19969    "adc r15, r1 \n\t"                     \
19970    "adc r16, r25 \n\t"                    \
19971    "mul r4, r8 \n\t"                      \
19972    "add r14, r0 \n\t"                     \
19973    "adc r15, r1 \n\t"                     \
19974    "adc r16, r25 \n\t"                    \
19975    "mul r5, r7 \n\t"                      \
19976    "add r14, r0 \n\t"                     \
19977    "adc r15, r1 \n\t"                     \
19978    "adc r16, r25 \n\t"                    \
19979                                           \
19980    "ld r7, x+ \n\t"                       \
19981    "mov r17, r25 \n\t"                    \
19982    "mul r2, r7 \n\t"                      \
19983    "add r15, r0 \n\t"                     \
19984    "adc r16, r1 \n\t"                     \
19985    "adc r17, r25 \n\t"                    \
19986    "mul r3, r6 \n\t"                      \
19987    "add r15, r0 \n\t"                     \
19988    "adc r16, r1 \n\t"                     \
19989    "adc r17, r25 \n\t"                    \
19990    "mul r4, r9 \n\t"                      \
19991    "add r15, r0 \n\t"                     \
19992    "adc r16, r1 \n\t"                     \
19993    "adc r17, r25 \n\t"                    \
19994    "mul r5, r8 \n\t"                      \
19995    "add r15, r0 \n\t"                     \
19996    "adc r16, r1 \n\t"                     \
19997    "adc r17, r25 \n\t"                    \
19998                                           \
19999    "ld r8, x+ \n\t"                       \
20000    "mov r18, r25 \n\t"                    \
20001    "mul r2, r8 \n\t"                      \
20002    "add r16, r0 \n\t"                     \
20003    "adc r17, r1 \n\t"                     \
20004    "adc r18, r25 \n\t"                    \
20005    "mul r3, r7 \n\t"                      \
20006    "add r16, r0 \n\t"                     \
20007    "adc r17, r1 \n\t"                     \
20008    "adc r18, r25 \n\t"                    \
20009    "mul r4, r6 \n\t"                      \
20010    "add r16, r0 \n\t"                     \
20011    "adc r17, r1 \n\t"                     \
20012    "adc r18, r25 \n\t"                    \
20013    "mul r5, r9 \n\t"                      \
20014    "add r16, r0 \n\t"                     \
20015    "adc r17, r1 \n\t"                     \
20016    "adc r18, r25 \n\t"                    \
20017                                           \
20018    "ld r9, x+ \n\t"                       \
20019    "mov r19, r25 \n\t"                    \
20020    "mul r2, r9 \n\t"                      \
20021    "add r17, r0 \n\t"                     \
20022    "adc r18, r1 \n\t"                     \
20023    "adc r19, r25 \n\t"                    \
20024    "mul r3, r8 \n\t"                      \
20025    "add r17, r0 \n\t"                     \
20026    "adc r18, r1 \n\t"                     \
20027    "adc r19, r25 \n\t"                    \
20028    "mul r4, r7 \n\t"                      \
20029    "add r17, r0 \n\t"                     \
20030    "adc r18, r1 \n\t"                     \
20031    "adc r19, r25 \n\t"                    \
20032    "mul r5, r6 \n\t"                      \
20033    "add r17, r0 \n\t"                     \
20034    "adc r18, r1 \n\t"                     \
20035    "adc r19, r25 \n\t"                    \
20036                                           \
20037    "ld r6, x+ \n\t"                       \
20038    "mov r21, r25 \n\t"                    \
20039    "mul r2, r6 \n\t"                      \
20040    "add r18, r0 \n\t"                     \
20041    "adc r19, r1 \n\t"                     \
20042    "adc r21, r25 \n\t"                    \
20043    "mul r3, r9 \n\t"                      \
20044    "add r18, r0 \n\t"                     \
20045    "adc r19, r1 \n\t"                     \
20046    "adc r21, r25 \n\t"                    \
20047    "mul r4, r8 \n\t"                      \
20048    "add r18, r0 \n\t"                     \
20049    "adc r19, r1 \n\t"                     \
20050    "adc r21, r25 \n\t"                    \
20051    "mul r5, r7 \n\t"                      \
20052    "add r18, r0 \n\t"                     \
20053    "adc r19, r1 \n\t"                     \
20054    "adc r21, r25 \n\t"                    \
20055                                           \
20056    "ld r7, x+ \n\t"                       \
20057    "mov r22, r25 \n\t"                    \
20058    "mul r2, r7 \n\t"                      \
20059    "add r19, r0 \n\t"                     \
20060    "adc r21, r1 \n\t"                     \
20061    "adc r22, r25 \n\t"                    \
20062    "mul r3, r6 \n\t"                      \
20063    "add r19, r0 \n\t"                     \
20064    "adc r21, r1 \n\t"                     \
20065    "adc r22, r25 \n\t"                    \
20066    "mul r4, r9 \n\t"                      \
20067    "add r19, r0 \n\t"                     \
20068    "adc r21, r1 \n\t"                     \
20069    "adc r22, r25 \n\t"                    \
20070    "mul r5, r8 \n\t"                      \
20071    "add r19, r0 \n\t"                     \
20072    "adc r21, r1 \n\t"                     \
20073    "adc r22, r25 \n\t"                    \
20074                                           \
20075    "ld r8, x+ \n\t"                       \
20076    "mov r23, r25 \n\t"                    \
20077    "mul r2, r8 \n\t"                      \
20078    "add r21, r0 \n\t"                     \
20079    "adc r22, r1 \n\t"                     \
20080    "adc r23, r25 \n\t"                    \
20081    "mul r3, r7 \n\t"                      \
20082    "add r21, r0 \n\t"                     \
20083    "adc r22, r1 \n\t"                     \
20084    "adc r23, r25 \n\t"                    \
20085    "mul r4, r6 \n\t"                      \
20086    "add r21, r0 \n\t"                     \
20087    "adc r22, r1 \n\t"                     \
20088    "adc r23, r25 \n\t"                    \
20089    "mul r5, r9 \n\t"                      \
20090    "add r21, r0 \n\t"                     \
20091    "adc r22, r1 \n\t"                     \
20092    "adc r23, r25 \n\t"                    \
20093                                           \
20094    "ld r9, x+ \n\t"                       \
20095    "mov r24, r25 \n\t"                    \
20096    "mul r2, r9 \n\t"                      \
20097    "add r22, r0 \n\t"                     \
20098    "adc r23, r1 \n\t"                     \
20099    "adc r24, r25 \n\t"                    \
20100    "mul r3, r8 \n\t"                      \
20101    "add r22, r0 \n\t"                     \
20102    "adc r23, r1 \n\t"                     \
20103    "adc r24, r25 \n\t"                    \
20104    "mul r4, r7 \n\t"                      \
20105    "add r22, r0 \n\t"                     \
20106    "adc r23, r1 \n\t"                     \
20107    "adc r24, r25 \n\t"                    \
20108    "mul r5, r6 \n\t"                      \
20109    "add r22, r0 \n\t"                     \
20110    "adc r23, r1 \n\t"                     \
20111    "adc r24, r25 \n\t"                    \
20112                                           \
20113    "ld r6, x+ \n\t"                       \
20114    "mov r28, r25 \n\t"                    \
20115    "mul r2, r6 \n\t"                      \
20116    "add r23, r0 \n\t"                     \
20117    "adc r24, r1 \n\t"                     \
20118    "adc r28, r25 \n\t"                    \
20119    "mul r3, r9 \n\t"                      \
20120    "add r23, r0 \n\t"                     \
20121    "adc r24, r1 \n\t"                     \
20122    "adc r28, r25 \n\t"                    \
20123    "mul r4, r8 \n\t"                      \
20124    "add r23, r0 \n\t"                     \
20125    "adc r24, r1 \n\t"                     \
20126    "adc r28, r25 \n\t"                    \
20127    "mul r5, r7 \n\t"                      \
20128    "add r23, r0 \n\t"                     \
20129    "adc r24, r1 \n\t"                     \
20130    "adc r28, r25 \n\t"                    \
20131                                           \
20132    "ld r7, x+ \n\t"                       \
20133    "mov r29, r25 \n\t"                    \
20134    "mul r2, r7 \n\t"                      \
20135    "add r24, r0 \n\t"                     \
20136    "adc r28, r1 \n\t"                     \
20137    "adc r29, r25 \n\t"                    \
20138    "mul r3, r6 \n\t"                      \
20139    "add r24, r0 \n\t"                     \
20140    "adc r28, r1 \n\t"                     \
20141    "adc r29, r25 \n\t"                    \
20142    "mul r4, r9 \n\t"                      \
20143    "add r24, r0 \n\t"                     \
20144    "adc r28, r1 \n\t"                     \
20145    "adc r29, r25 \n\t"                    \
20146    "mul r5, r8 \n\t"                      \
20147    "add r24, r0 \n\t"                     \
20148    "adc r28, r1 \n\t"                     \
20149    "adc r29, r25 \n\t"                    \
20150                                           \
20151    "lsl r10 \n\t"                         \
20152    "rol r11 \n\t"                         \
20153    "rol r12 \n\t"                         \
20154    "rol r13 \n\t"                         \
20155    "rol r14 \n\t"                         \
20156    "rol r15 \n\t"                         \
20157    "rol r16 \n\t"                         \
20158    "rol r17 \n\t"                         \
20159    "rol r18 \n\t"                         \
20160    "rol r19 \n\t"                         \
20161    "rol r21 \n\t"                         \
20162    "rol r22 \n\t"                         \
20163    "rol r23 \n\t"                         \
20164    "rol r24 \n\t"                         \
20165    "rol r28 \n\t"                         \
20166    "rol r29 \n\t"                         \
20167    "ld r0, z \n\t"                        \
20168    "add r10, r0 \n\t"                     \
20169    "st z+, r10 \n\t"                      \
20170    "ld r0, z \n\t"                        \
20171    "adc r11, r0 \n\t"                     \
20172    "st z+, r11 \n\t"                      \
20173    "ld r0, z \n\t"                        \
20174    "adc r12, r0 \n\t"                     \
20175    "st z+, r12 \n\t"                      \
20176    "ld r0, z \n\t"                        \
20177    "adc r13, r0 \n\t"                     \
20178    "st z+, r13 \n\t"                      \
20179    "ld r0, z \n\t"                        \
20180    "adc r14, r0 \n\t"                     \
20181    "st z+, r14 \n\t"                      \
20182    "ld r0, z \n\t"                        \
20183    "adc r15, r0 \n\t"                     \
20184    "st z+, r15 \n\t"                      \
20185    "ld r0, z \n\t"                        \
20186    "adc r16, r0 \n\t"                     \
20187    "st z+, r16 \n\t"                      \
20188    "ld r0, z \n\t"                        \
20189    "adc r17, r0 \n\t"                     \
20190    "st z+, r17 \n\t"                      \
20191    "ld r0, z \n\t"                        \
20192    "adc r18, r0 \n\t"                     \
20193    "st z+, r18 \n\t"                      \
20194    "ld r0, z \n\t"                        \
20195    "adc r19, r0 \n\t"                     \
20196    "st z+, r19 \n\t"                      \
20197    "ld r0, z \n\t"                        \
20198    "adc r21, r0 \n\t"                     \
20199    "st z+, r21 \n\t"                      \
20200    "ld r0, z \n\t"                        \
20201    "adc r22, r0 \n\t"                     \
20202    "st z+, r22 \n\t"                      \
20203    "ld r0, z \n\t"                        \
20204    "adc r23, r0 \n\t"                     \
20205    "st z+, r23 \n\t"                      \
20206    "ld r0, z \n\t"                        \
20207    "adc r24, r0 \n\t"                     \
20208    "st z+, r24 \n\t"                      \
20209    "adc r28, r25 \n\t"                    \
20210    "adc r29, r25 \n\t"                    \
20211    "bst r28, 0 \n\t"                      \
20212    "lsr r29 \n\t"                         \
20213    "ror r28 \n\t"                         \
20214                                           \
20215    "ld r8, x+ \n\t"                       \
20216    "mov r10, r25 \n\t"                    \
20217    "mul r2, r8 \n\t"                      \
20218    "add r28, r0 \n\t"                     \
20219    "adc r29, r1 \n\t"                     \
20220    "adc r10, r25 \n\t"                    \
20221    "mul r3, r7 \n\t"                      \
20222    "add r28, r0 \n\t"                     \
20223    "adc r29, r1 \n\t"                     \
20224    "adc r10, r25 \n\t"                    \
20225    "mul r4, r6 \n\t"                      \
20226    "add r28, r0 \n\t"                     \
20227    "adc r29, r1 \n\t"                     \
20228    "adc r10, r25 \n\t"                    \
20229    "mul r5, r9 \n\t"                      \
20230    "add r28, r0 \n\t"                     \
20231    "adc r29, r1 \n\t"                     \
20232    "adc r10, r25 \n\t"                    \
20233                                           \
20234    "ld r9, x+ \n\t"                       \
20235    "mov r11, r25 \n\t"                    \
20236    "mul r2, r9 \n\t"                      \
20237    "add r29, r0 \n\t"                     \
20238    "adc r10, r1 \n\t"                     \
20239    "adc r11, r25 \n\t"                    \
20240    "mul r3, r8 \n\t"                      \
20241    "add r29, r0 \n\t"                     \
20242    "adc r10, r1 \n\t"                     \
20243    "adc r11, r25 \n\t"                    \
20244    "mul r4, r7 \n\t"                      \
20245    "add r29, r0 \n\t"                     \
20246    "adc r10, r1 \n\t"                     \
20247    "adc r11, r25 \n\t"                    \
20248    "mul r5, r6 \n\t"                      \
20249    "add r29, r0 \n\t"                     \
20250    "adc r10, r1 \n\t"                     \
20251    "adc r11, r25 \n\t"                    \
20252                                           \
20253    "ld r6, x+ \n\t"                       \
20254    "mov r12, r25 \n\t"                    \
20255    "mul r2, r6 \n\t"                      \
20256    "add r10, r0 \n\t"                     \
20257    "adc r11, r1 \n\t"                     \
20258    "adc r12, r25 \n\t"                    \
20259    "mul r3, r9 \n\t"                      \
20260    "add r10, r0 \n\t"                     \
20261    "adc r11, r1 \n\t"                     \
20262    "adc r12, r25 \n\t"                    \
20263    "mul r4, r8 \n\t"                      \
20264    "add r10, r0 \n\t"                     \
20265    "adc r11, r1 \n\t"                     \
20266    "adc r12, r25 \n\t"                    \
20267    "mul r5, r7 \n\t"                      \
20268    "add r10, r0 \n\t"                     \
20269    "adc r11, r1 \n\t"                     \
20270    "adc r12, r25 \n\t"                    \
20271                                           \
20272    "ld r7, x+ \n\t"                       \
20273    "mov r13, r25 \n\t"                    \
20274    "mul r2, r7 \n\t"                      \
20275    "add r11, r0 \n\t"                     \
20276    "adc r12, r1 \n\t"                     \
20277    "adc r13, r25 \n\t"                    \
20278    "mul r3, r6 \n\t"                      \
20279    "add r11, r0 \n\t"                     \
20280    "adc r12, r1 \n\t"                     \
20281    "adc r13, r25 \n\t"                    \
20282    "mul r4, r9 \n\t"                      \
20283    "add r11, r0 \n\t"                     \
20284    "adc r12, r1 \n\t"                     \
20285    "adc r13, r25 \n\t"                    \
20286    "mul r5, r8 \n\t"                      \
20287    "add r11, r0 \n\t"                     \
20288    "adc r12, r1 \n\t"                     \
20289    "adc r13, r25 \n\t"                    \
20290                                           \
20291    "ld r8, x+ \n\t"                       \
20292    "mov r14, r25 \n\t"                    \
20293    "mul r2, r8 \n\t"                      \
20294    "add r12, r0 \n\t"                     \
20295    "adc r13, r1 \n\t"                     \
20296    "adc r14, r25 \n\t"                    \
20297    "mul r3, r7 \n\t"                      \
20298    "add r12, r0 \n\t"                     \
20299    "adc r13, r1 \n\t"                     \
20300    "adc r14, r25 \n\t"                    \
20301    "mul r4, r6 \n\t"                      \
20302    "add r12, r0 \n\t"                     \
20303    "adc r13, r1 \n\t"                     \
20304    "adc r14, r25 \n\t"                    \
20305    "mul r5, r9 \n\t"                      \
20306    "add r12, r0 \n\t"                     \
20307    "adc r13, r1 \n\t"                     \
20308    "adc r14, r25 \n\t"                    \
20309                                           \
20310    "ld r9, x+ \n\t"                       \
20311    "mov r15, r25 \n\t"                    \
20312    "mul r2, r9 \n\t"                      \
20313    "add r13, r0 \n\t"                     \
20314    "adc r14, r1 \n\t"                     \
20315    "adc r15, r25 \n\t"                    \
20316    "mul r3, r8 \n\t"                      \
20317    "add r13, r0 \n\t"                     \
20318    "adc r14, r1 \n\t"                     \
20319    "adc r15, r25 \n\t"                    \
20320    "mul r4, r7 \n\t"                      \
20321    "add r13, r0 \n\t"                     \
20322    "adc r14, r1 \n\t"                     \
20323    "adc r15, r25 \n\t"                    \
20324    "mul r5, r6 \n\t"                      \
20325    "add r13, r0 \n\t"                     \
20326    "adc r14, r1 \n\t"                     \
20327    "adc r15, r25 \n\t"                    \
20328                                           \
20329    "ld r6, x+ \n\t"                       \
20330    "mov r16, r25 \n\t"                    \
20331    "mul r2, r6 \n\t"                      \
20332    "add r14, r0 \n\t"                     \
20333    "adc r15, r1 \n\t"                     \
20334    "adc r16, r25 \n\t"                    \
20335    "mul r3, r9 \n\t"                      \
20336    "add r14, r0 \n\t"                     \
20337    "adc r15, r1 \n\t"                     \
20338    "adc r16, r25 \n\t"                    \
20339    "mul r4, r8 \n\t"                      \
20340    "add r14, r0 \n\t"                     \
20341    "adc r15, r1 \n\t"                     \
20342    "adc r16, r25 \n\t"                    \
20343    "mul r5, r7 \n\t"                      \
20344    "add r14, r0 \n\t"                     \
20345    "adc r15, r1 \n\t"                     \
20346    "adc r16, r25 \n\t"                    \
20347                                           \
20348    "ld r7, x+ \n\t"                       \
20349    "mov r17, r25 \n\t"                    \
20350    "mul r2, r7 \n\t"                      \
20351    "add r15, r0 \n\t"                     \
20352    "adc r16, r1 \n\t"                     \
20353    "adc r17, r25 \n\t"                    \
20354    "mul r3, r6 \n\t"                      \
20355    "add r15, r0 \n\t"                     \
20356    "adc r16, r1 \n\t"                     \
20357    "adc r17, r25 \n\t"                    \
20358    "mul r4, r9 \n\t"                      \
20359    "add r15, r0 \n\t"                     \
20360    "adc r16, r1 \n\t"                     \
20361    "adc r17, r25 \n\t"                    \
20362    "mul r5, r8 \n\t"                      \
20363    "add r15, r0 \n\t"                     \
20364    "adc r16, r1 \n\t"                     \
20365    "adc r17, r25 \n\t"                    \
20366                                           \
20367    "ld r8, x+ \n\t"                       \
20368    "mov r18, r25 \n\t"                    \
20369    "mul r2, r8 \n\t"                      \
20370    "add r16, r0 \n\t"                     \
20371    "adc r17, r1 \n\t"                     \
20372    "adc r18, r25 \n\t"                    \
20373    "mul r3, r7 \n\t"                      \
20374    "add r16, r0 \n\t"                     \
20375    "adc r17, r1 \n\t"                     \
20376    "adc r18, r25 \n\t"                    \
20377    "mul r4, r6 \n\t"                      \
20378    "add r16, r0 \n\t"                     \
20379    "adc r17, r1 \n\t"                     \
20380    "adc r18, r25 \n\t"                    \
20381    "mul r5, r9 \n\t"                      \
20382    "add r16, r0 \n\t"                     \
20383    "adc r17, r1 \n\t"                     \
20384    "adc r18, r25 \n\t"                    \
20385                                           \
20386    "ld r9, x+ \n\t"                       \
20387    "mov r19, r25 \n\t"                    \
20388    "mul r2, r9 \n\t"                      \
20389    "add r17, r0 \n\t"                     \
20390    "adc r18, r1 \n\t"                     \
20391    "adc r19, r25 \n\t"                    \
20392    "mul r3, r8 \n\t"                      \
20393    "add r17, r0 \n\t"                     \
20394    "adc r18, r1 \n\t"                     \
20395    "adc r19, r25 \n\t"                    \
20396    "mul r4, r7 \n\t"                      \
20397    "add r17, r0 \n\t"                     \
20398    "adc r18, r1 \n\t"                     \
20399    "adc r19, r25 \n\t"                    \
20400    "mul r5, r6 \n\t"                      \
20401    "add r17, r0 \n\t"                     \
20402    "adc r18, r1 \n\t"                     \
20403    "adc r19, r25 \n\t"                    \
20404                                           \
20405    "lsl r28 \n\t"                         \
20406    "bld r28, 0 \n\t"                      \
20407    "rol r29 \n\t"                         \
20408    "rol r10 \n\t"                         \
20409    "rol r11 \n\t"                         \
20410    "rol r12 \n\t"                         \
20411    "rol r13 \n\t"                         \
20412    "rol r14 \n\t"                         \
20413    "rol r15 \n\t"                         \
20414    "rol r16 \n\t"                         \
20415    "rol r17 \n\t"                         \
20416    "rol r18 \n\t"                         \
20417    "rol r19 \n\t"                         \
20418    "ld r0, z \n\t"                        \
20419    "add r28, r0 \n\t"                     \
20420    "st z+, r28 \n\t"                      \
20421    "ld r0, z \n\t"                        \
20422    "adc r29, r0 \n\t"                     \
20423    "st z+, r29 \n\t"                      \
20424    "ld r0, z \n\t"                        \
20425    "adc r10, r0 \n\t"                     \
20426    "st z+, r10 \n\t"                      \
20427    "ld r0, z \n\t"                        \
20428    "adc r11, r0 \n\t"                     \
20429    "st z+, r11 \n\t"                      \
20430    "ld r0, z \n\t"                        \
20431    "adc r12, r0 \n\t"                     \
20432    "st z+, r12 \n\t"                      \
20433    "ld r0, z \n\t"                        \
20434    "adc r13, r0 \n\t"                     \
20435    "st z+, r13 \n\t"                      \
20436    "ld r0, z \n\t"                        \
20437    "adc r14, r0 \n\t"                     \
20438    "st z+, r14 \n\t"                      \
20439    "ld r0, z \n\t"                        \
20440    "adc r15, r0 \n\t"                     \
20441    "st z+, r15 \n\t"                      \
20442    "ld r0, z \n\t"                        \
20443    "adc r16, r0 \n\t"                     \
20444    "st z+, r16 \n\t"                      \
20445    "ld r0, z \n\t"                        \
20446    "adc r17, r0 \n\t"                     \
20447    "st z+, r17 \n\t"                      \
20448    "adc r18, r25 \n\t"                    \
20449    "adc r19, r25 \n\t"                    \
20450                                           \
20451    "mul r2, r2 \n\t"                      \
20452    "mov r21, r0 \n\t"                     \
20453    "mov r22, r1 \n\t"                     \
20454    "mul r3, r3 \n\t"                      \
20455    "mov r23, r0 \n\t"                     \
20456    "mov r24, r1 \n\t"                     \
20457    "mul r4, r4 \n\t"                      \
20458    "mov r28, r0 \n\t"                     \
20459    "mov r29, r1 \n\t"                     \
20460    "mul r5, r5 \n\t"                      \
20461    "mov r10, r0 \n\t"                     \
20462    "mov r11, r1 \n\t"                     \
20463    "add r21, r18 \n\t"                    \
20464    "adc r22, r19 \n\t"                    \
20465    "adc r23, r25 \n\t"                    \
20466    "adc r24, r25 \n\t"                    \
20467                                           \
20468    "mul r7, r5 \n\t"                      \
20469    "mov r18, r0 \n\t"                     \
20470    "mov r19, r1 \n\t"                     \
20471    "mov r12, r25 \n\t"                    \
20472    "mul r8, r4 \n\t"                      \
20473    "add r18, r0 \n\t"                     \
20474    "adc r19, r1 \n\t"                     \
20475    "adc r12, r25 \n\t"                    \
20476    "mul r9, r3 \n\t"                      \
20477    "add r18, r0 \n\t"                     \
20478    "adc r19, r1 \n\t"                     \
20479    "adc r12, r25 \n\t"                    \
20480    "mov r13, r25 \n\t"                    \
20481    "mul r8, r5 \n\t"                      \
20482    "add r19, r0 \n\t"                     \
20483    "adc r12, r1 \n\t"                     \
20484    "adc r13, r25 \n\t"                    \
20485    "mul r9, r4 \n\t"                      \
20486    "add r19, r0 \n\t"                     \
20487    "adc r12, r1 \n\t"                     \
20488    "adc r13, r25 \n\t"                    \
20489    "mul r2, r3 \n\t"                      \
20490    "add r19, r0 \n\t"                     \
20491    "adc r12, r1 \n\t"                     \
20492    "adc r13, r25 \n\t"                    \
20493    "mov r14, r25 \n\t"                    \
20494    "mul r9, r5 \n\t"                      \
20495    "add r12, r0 \n\t"                     \
20496    "adc r13, r1 \n\t"                     \
20497    "adc r14, r25 \n\t"                    \
20498    "mul r2, r4 \n\t"                      \
20499    "add r12, r0 \n\t"                     \
20500    "adc r13, r1 \n\t"                     \
20501    "adc r14, r25 \n\t"                    \
20502    "mov r15, r25 \n\t"                    \
20503    "mul r2, r5 \n\t"                      \
20504    "add r13, r0 \n\t"                     \
20505    "adc r14, r1 \n\t"                     \
20506    "adc r15, r25 \n\t"                    \
20507    "mul r3, r4 \n\t"                      \
20508    "add r13, r0 \n\t"                     \
20509    "adc r14, r1 \n\t"                     \
20510    "adc r15, r25 \n\t"                    \
20511    "mov r16, r25 \n\t"                    \
20512    "mul r3, r5 \n\t"                      \
20513    "add r14, r0 \n\t"                     \
20514    "adc r15, r1 \n\t"                     \
20515    "adc r16, r25 \n\t"                    \
20516    "mul r4, r5 \n\t"                      \
20517    "add r15, r0 \n\t"                     \
20518    "adc r16, r1 \n\t"                     \
20519                                           \
20520    "lsl r18 \n\t"                         \
20521    "rol r19 \n\t"                         \
20522    "rol r12 \n\t"                         \
20523    "rol r13 \n\t"                         \
20524    "rol r14 \n\t"                         \
20525    "rol r15 \n\t"                         \
20526    "rol r16 \n\t"                         \
20527    "adc r11, r25 \n\t"                    \
20528    "add r21, r18 \n\t"                    \
20529    "adc r22, r19 \n\t"                    \
20530    "adc r23, r12 \n\t"                    \
20531    "adc r24, r13 \n\t"                    \
20532    "adc r28, r14 \n\t"                    \
20533    "adc r29, r15 \n\t"                    \
20534    "adc r10, r16 \n\t"                    \
20535    "adc r11, r25 \n\t"                    \
20536                                           \
20537    "st z+, r21 \n\t"                      \
20538    "st z+, r22 \n\t"                      \
20539    "st z+, r23 \n\t"                      \
20540    "st z+, r24 \n\t"                      \
20541    "st z+, r28 \n\t"                      \
20542    "st z+, r29 \n\t"                      \
20543    "st z+, r10 \n\t"                      \
20544    "st z+, r11 \n\t"                      \
20545    "adiw r26, 4 \n\t"
20546
20547#define FAST_SQUARE_ASM_28         \
20548    "ldi r25, 0 \n\t"              \
20549    "movw r28, r26 \n\t"           \
20550    "ld r2, x+ \n\t"               \
20551    "ld r3, x+ \n\t"               \
20552    "ld r4, x+ \n\t"               \
20553    "ld r5, x+ \n\t"               \
20554    "adiw r28, 20 \n\t"            \
20555    "ld r12, y+ \n\t"              \
20556    "ld r13, y+ \n\t"              \
20557    "ld r14, y+ \n\t"              \
20558    "ld r15, y+ \n\t"              \
20559    "adiw r30, 20 \n\t"            \
20560                                   \
20561    "ldi r23, 0 \n\t"              \
20562    "mul 2, 12 \n\t"               \
20563    "st z+, r0 \n\t"               \
20564    "mov r22, r1 \n\t"             \
20565                                   \
20566    "ldi r24, 0 \n\t"              \
20567    "mul r2, r13 \n\t"             \
20568    "add r22, r0 \n\t"             \
20569    "adc r23, r1 \n\t"             \
20570    "adc r24, r25 \n\t"            \
20571    "st z+, r22 \n\t"              \
20572                                   \
20573    "ldi r22, 0 \n\t"              \
20574    "mul r2, r14 \n\t"             \
20575    "add r23, r0 \n\t"             \
20576    "adc r24, r1 \n\t"             \
20577    "adc r22, r25 \n\t"            \
20578    "mul r3, r13 \n\t"             \
20579    "add r23, r0 \n\t"             \
20580    "adc r24, r1 \n\t"             \
20581    "adc r22, r25 \n\t"            \
20582    "st z+, r23 \n\t"              \
20583                                   \
20584    "ldi r23, 0 \n\t"              \
20585    "mul r2, r15 \n\t"             \
20586    "add r24, r0 \n\t"             \
20587    "adc r22, r1 \n\t"             \
20588    "adc r23, r25 \n\t"            \
20589    "mul r3, r14 \n\t"             \
20590    "add r24, r0 \n\t"             \
20591    "adc r22, r1 \n\t"             \
20592    "adc r23, r25 \n\t"            \
20593    "st z+, r24 \n\t"              \
20594                                   \
20595    "ld r12, y+ \n\t"              \
20596    "ldi r24, 0 \n\t"              \
20597    "mul r2, r12 \n\t"             \
20598    "add r22, r0 \n\t"             \
20599    "adc r23, r1 \n\t"             \
20600    "adc r24, r25 \n\t"            \
20601    "mul r3, r15 \n\t"             \
20602    "add r22, r0 \n\t"             \
20603    "adc r23, r1 \n\t"             \
20604    "adc r24, r25 \n\t"            \
20605    "mul r4, r14 \n\t"             \
20606    "add r22, r0 \n\t"             \
20607    "adc r23, r1 \n\t"             \
20608    "adc r24, r25 \n\t"            \
20609    "st z+, r22 \n\t"              \
20610                                   \
20611    "ld r13, y+ \n\t"              \
20612    "ldi r22, 0 \n\t"              \
20613    "mul r2, r13 \n\t"             \
20614    "add r23, r0 \n\t"             \
20615    "adc r24, r1 \n\t"             \
20616    "adc r22, r25 \n\t"            \
20617    "mul r3, r12 \n\t"             \
20618    "add r23, r0 \n\t"             \
20619    "adc r24, r1 \n\t"             \
20620    "adc r22, r25 \n\t"            \
20621    "mul r4, r15 \n\t"             \
20622    "add r23, r0 \n\t"             \
20623    "adc r24, r1 \n\t"             \
20624    "adc r22, r25 \n\t"            \
20625    "st z+, r23 \n\t"              \
20626                                   \
20627    "ld r14, y+ \n\t"              \
20628    "ldi r23, 0 \n\t"              \
20629    "mul r2, r14 \n\t"             \
20630    "add r24, r0 \n\t"             \
20631    "adc r22, r1 \n\t"             \
20632    "adc r23, r25 \n\t"            \
20633    "mul r3, r13 \n\t"             \
20634    "add r24, r0 \n\t"             \
20635    "adc r22, r1 \n\t"             \
20636    "adc r23, r25 \n\t"            \
20637    "mul r4, r12 \n\t"             \
20638    "add r24, r0 \n\t"             \
20639    "adc r22, r1 \n\t"             \
20640    "adc r23, r25 \n\t"            \
20641    "mul r5, r15 \n\t"             \
20642    "add r24, r0 \n\t"             \
20643    "adc r22, r1 \n\t"             \
20644    "adc r23, r25 \n\t"            \
20645    "st z+, r24 \n\t"              \
20646                                   \
20647    "ld r15, y+ \n\t"              \
20648    "ldi r24, 0 \n\t"              \
20649    "mul r2, r15 \n\t"             \
20650    "add r22, r0 \n\t"             \
20651    "adc r23, r1 \n\t"             \
20652    "adc r24, r25 \n\t"            \
20653    "mul r3, r14 \n\t"             \
20654    "add r22, r0 \n\t"             \
20655    "adc r23, r1 \n\t"             \
20656    "adc r24, r25 \n\t"            \
20657    "mul r4, r13 \n\t"             \
20658    "add r22, r0 \n\t"             \
20659    "adc r23, r1 \n\t"             \
20660    "adc r24, r25 \n\t"            \
20661    "mul r5, r12 \n\t"             \
20662    "add r22, r0 \n\t"             \
20663    "adc r23, r1 \n\t"             \
20664    "adc r24, r25 \n\t"            \
20665    "st z+, r22 \n\t"              \
20666                                   \
20667    "ld r2, x+ \n\t"               \
20668    "ldi r22, 0 \n\t"              \
20669    "mul r3, r15 \n\t"             \
20670    "add r23, r0 \n\t"             \
20671    "adc r24, r1 \n\t"             \
20672    "adc r22, r25 \n\t"            \
20673    "mul r4, r14 \n\t"             \
20674    "add r23, r0 \n\t"             \
20675    "adc r24, r1 \n\t"             \
20676    "adc r22, r25 \n\t"            \
20677    "mul r5, r13 \n\t"             \
20678    "add r23, r0 \n\t"             \
20679    "adc r24, r1 \n\t"             \
20680    "adc r22, r25 \n\t"            \
20681    "mul r2, r12 \n\t"             \
20682    "add r23, r0 \n\t"             \
20683    "adc r24, r1 \n\t"             \
20684    "adc r22, r25 \n\t"            \
20685    "st z+, r23 \n\t"              \
20686                                   \
20687    "ld r3, x+ \n\t"               \
20688    "ldi r23, 0 \n\t"              \
20689    "mul r4, r15 \n\t"             \
20690    "add r24, r0 \n\t"             \
20691    "adc r22, r1 \n\t"             \
20692    "adc r23, r25 \n\t"            \
20693    "mul r5, r14 \n\t"             \
20694    "add r24, r0 \n\t"             \
20695    "adc r22, r1 \n\t"             \
20696    "adc r23, r25 \n\t"            \
20697    "mul r2, r13 \n\t"             \
20698    "add r24, r0 \n\t"             \
20699    "adc r22, r1 \n\t"             \
20700    "adc r23, r25 \n\t"            \
20701    "st z+, r24 \n\t"              \
20702                                   \
20703    "ld r4, x+ \n\t"               \
20704    "ldi r24, 0 \n\t"              \
20705    "mul r5, r15 \n\t"             \
20706    "add r22, r0 \n\t"             \
20707    "adc r23, r1 \n\t"             \
20708    "adc r24, r25 \n\t"            \
20709    "mul r2, r14 \n\t"             \
20710    "add r22, r0 \n\t"             \
20711    "adc r23, r1 \n\t"             \
20712    "adc r24, r25 \n\t"            \
20713    "mul r3, r13 \n\t"             \
20714    "add r22, r0 \n\t"             \
20715    "adc r23, r1 \n\t"             \
20716    "adc r24, r25 \n\t"            \
20717    "st z+, r22 \n\t"              \
20718                                   \
20719    "ld r5, x+ \n\t"               \
20720    "ldi r22, 0 \n\t"              \
20721    "mul r2, r15 \n\t"             \
20722    "add r23, r0 \n\t"             \
20723    "adc r24, r1 \n\t"             \
20724    "adc r22, r25 \n\t"            \
20725    "mul r3, r14 \n\t"             \
20726    "add r23, r0 \n\t"             \
20727    "adc r24, r1 \n\t"             \
20728    "adc r22, r25 \n\t"            \
20729    "st z+, r23 \n\t"              \
20730                                   \
20731    "ldi r23, 0 \n\t"              \
20732    "mul r3, r15 \n\t"             \
20733    "add r24, r0 \n\t"             \
20734    "adc r22, r1 \n\t"             \
20735    "adc r23, r25 \n\t"            \
20736    "mul r4, r14 \n\t"             \
20737    "add r24, r0 \n\t"             \
20738    "adc r22, r1 \n\t"             \
20739    "adc r23, r25 \n\t"            \
20740    "st z+, r24 \n\t"              \
20741                                   \
20742    "ldi r24, 0 \n\t"              \
20743    "mul r4, r15 \n\t"             \
20744    "add r22, r0 \n\t"             \
20745    "adc r23, r1 \n\t"             \
20746    "adc r24, r25 \n\t"            \
20747    "st z+, r22 \n\t"              \
20748                                   \
20749    "mul r5, r15 \n\t"             \
20750    "add r23, r0 \n\t"             \
20751    "adc r24, r1 \n\t"             \
20752    "st z+, r23 \n\t"              \
20753    "st z+, r24 \n\t"              \
20754                                   \
20755    "sbiw r26, 8 \n\t"             \
20756    "sbiw r30, 36 \n\t"            \
20757    "ld r2, x+ \n\t"               \
20758    "ld r3, x+ \n\t"               \
20759    "ld r4, x+ \n\t"               \
20760    "ld r5, x+ \n\t"               \
20761    "ld r6, x+ \n\t"               \
20762    "ld r7, x+ \n\t"               \
20763    "ld r8, x+ \n\t"               \
20764    "ld r9, x+ \n\t"               \
20765    "ld r10, x+ \n\t"              \
20766    "ld r11, x+ \n\t"              \
20767    "ld r12, x+ \n\t"              \
20768    "ld r13, x+ \n\t"              \
20769    "ld r14, x+ \n\t"              \
20770    "ld r15, x+ \n\t"              \
20771    "ld r16, x+ \n\t"              \
20772    "ld r17, x+ \n\t"              \
20773    "ld r18, x+ \n\t"              \
20774    "ld r19, x+ \n\t"              \
20775    "ld r20, x+ \n\t"              \
20776    "ld r21, x+ \n\t"              \
20777                                   \
20778    "ldi r23, 0 \n\t"              \
20779    "mul r2, r2 \n\t"              \
20780    "st z+, r0 \n\t"               \
20781    "mov r22, r1 \n\t"             \
20782                                   \
20783    "ldi r24, 0 \n\t"              \
20784    "mul r2, r3 \n\t"              \
20785    "add r22, r0 \n\t"             \
20786    "adc r23, r1 \n\t"             \
20787    "adc r24, r25 \n\t"            \
20788    "add r22, r0 \n\t"             \
20789    "adc r23, r1 \n\t"             \
20790    "adc r24, r25 \n\t"            \
20791    "st z+, r22 \n\t"              \
20792                                   \
20793    "ldi r22, 0 \n\t"              \
20794    "mul r2, r4 \n\t"              \
20795    "add r23, r0 \n\t"             \
20796    "adc r24, r1 \n\t"             \
20797    "adc r22, r25 \n\t"            \
20798    "add r23, r0 \n\t"             \
20799    "adc r24, r1 \n\t"             \
20800    "adc r22, r25 \n\t"            \
20801    "mul r3, r3 \n\t"              \
20802    "add r23, r0 \n\t"             \
20803    "adc r24, r1 \n\t"             \
20804    "adc r22, r25 \n\t"            \
20805    "st z+, r23 \n\t"              \
20806                                   \
20807    "ldi r29, 0 \n\t"              \
20808    "mul r2, r5 \n\t"              \
20809    "mov r23, r0 \n\t"             \
20810    "mov r28, r1 \n\t"             \
20811    "mul r3, r4 \n\t"              \
20812    "add r23, r0 \n\t"             \
20813    "adc r28, r1 \n\t"             \
20814    "adc r29, r25 \n\t"            \
20815    "lsl r23 \n\t"                 \
20816    "rol r28 \n\t"                 \
20817    "rol r29 \n\t"                 \
20818    "add r23, r24 \n\t"            \
20819    "adc r28, r22 \n\t"            \
20820    "adc r29, r25 \n\t"            \
20821    "st z+, r23 \n\t"              \
20822                                   \
20823    "ldi r22, 0 \n\t"              \
20824    "mul r2, r6 \n\t"              \
20825    "mov r23, r0 \n\t"             \
20826    "mov r24, r1 \n\t"             \
20827    "mul r3, r5 \n\t"              \
20828    "add r23, r0 \n\t"             \
20829    "adc r24, r1 \n\t"             \
20830    "adc r22, r25 \n\t"            \
20831    "lsl r23 \n\t"                 \
20832    "rol r24 \n\t"                 \
20833    "rol r22 \n\t"                 \
20834    "mul r4, r4 \n\t"              \
20835    "add r23, r0 \n\t"             \
20836    "adc r24, r1 \n\t"             \
20837    "adc r22, r25 \n\t"            \
20838    "add r23, r28 \n\t"            \
20839    "adc r24, r29 \n\t"            \
20840    "adc r22, r25 \n\t"            \
20841    "st z+, r23 \n\t"              \
20842                                   \
20843    "ldi r29, 0 \n\t"              \
20844    "mul r2, r7 \n\t"              \
20845    "mov r23, r0 \n\t"             \
20846    "mov r28, r1 \n\t"             \
20847    "mul r3, r6 \n\t"              \
20848    "add r23, r0 \n\t"             \
20849    "adc r28, r1 \n\t"             \
20850    "adc r29, r25 \n\t"            \
20851    "mul r4, r5 \n\t"              \
20852    "add r23, r0 \n\t"             \
20853    "adc r28, r1 \n\t"             \
20854    "adc r29, r25 \n\t"            \
20855    "lsl r23 \n\t"                 \
20856    "rol r28 \n\t"                 \
20857    "rol r29 \n\t"                 \
20858    "add r23, r24 \n\t"            \
20859    "adc r28, r22 \n\t"            \
20860    "adc r29, r25 \n\t"            \
20861    "st z+, r23 \n\t"              \
20862                                   \
20863    "ldi r22, 0 \n\t"              \
20864    "mul r2, r8 \n\t"              \
20865    "mov r23, r0 \n\t"             \
20866    "mov r24, r1 \n\t"             \
20867    "mul r3, r7 \n\t"              \
20868    "add r23, r0 \n\t"             \
20869    "adc r24, r1 \n\t"             \
20870    "adc r22, r25 \n\t"            \
20871    "mul r4, r6 \n\t"              \
20872    "add r23, r0 \n\t"             \
20873    "adc r24, r1 \n\t"             \
20874    "adc r22, r25 \n\t"            \
20875    "lsl r23 \n\t"                 \
20876    "rol r24 \n\t"                 \
20877    "rol r22 \n\t"                 \
20878    "mul r5, r5 \n\t"              \
20879    "add r23, r0 \n\t"             \
20880    "adc r24, r1 \n\t"             \
20881    "adc r22, r25 \n\t"            \
20882    "add r23, r28 \n\t"            \
20883    "adc r24, r29 \n\t"            \
20884    "adc r22, r25 \n\t"            \
20885    "st z+, r23 \n\t"              \
20886                                   \
20887    "ldi r29, 0 \n\t"              \
20888    "mul r2, r9 \n\t"              \
20889    "mov r23, r0 \n\t"             \
20890    "mov r28, r1 \n\t"             \
20891    "mul r3, r8 \n\t"              \
20892    "add r23, r0 \n\t"             \
20893    "adc r28, r1 \n\t"             \
20894    "adc r29, r25 \n\t"            \
20895    "mul r4, r7 \n\t"              \
20896    "add r23, r0 \n\t"             \
20897    "adc r28, r1 \n\t"             \
20898    "adc r29, r25 \n\t"            \
20899    "mul r5, r6 \n\t"              \
20900    "add r23, r0 \n\t"             \
20901    "adc r28, r1 \n\t"             \
20902    "adc r29, r25 \n\t"            \
20903    "lsl r23 \n\t"                 \
20904    "rol r28 \n\t"                 \
20905    "rol r29 \n\t"                 \
20906    "add r23, r24 \n\t"            \
20907    "adc r28, r22 \n\t"            \
20908    "adc r29, r25 \n\t"            \
20909    "st z+, r23 \n\t"              \
20910                                   \
20911    "ldi r22, 0 \n\t"              \
20912    "mul r2, r10 \n\t"             \
20913    "mov r23, r0 \n\t"             \
20914    "mov r24, r1 \n\t"             \
20915    "mul r3, r9 \n\t"              \
20916    "add r23, r0 \n\t"             \
20917    "adc r24, r1 \n\t"             \
20918    "adc r22, r25 \n\t"            \
20919    "mul r4, r8 \n\t"              \
20920    "add r23, r0 \n\t"             \
20921    "adc r24, r1 \n\t"             \
20922    "adc r22, r25 \n\t"            \
20923    "mul r5, r7 \n\t"              \
20924    "add r23, r0 \n\t"             \
20925    "adc r24, r1 \n\t"             \
20926    "adc r22, r25 \n\t"            \
20927    "lsl r23 \n\t"                 \
20928    "rol r24 \n\t"                 \
20929    "rol r22 \n\t"                 \
20930    "mul r6, r6 \n\t"              \
20931    "add r23, r0 \n\t"             \
20932    "adc r24, r1 \n\t"             \
20933    "adc r22, r25 \n\t"            \
20934    "add r23, r28 \n\t"            \
20935    "adc r24, r29 \n\t"            \
20936    "adc r22, r25 \n\t"            \
20937    "st z+, r23 \n\t"              \
20938                                   \
20939    "ldi r29, 0 \n\t"              \
20940    "mul r2, r11 \n\t"             \
20941    "mov r23, r0 \n\t"             \
20942    "mov r28, r1 \n\t"             \
20943    "mul r3, r10 \n\t"             \
20944    "add r23, r0 \n\t"             \
20945    "adc r28, r1 \n\t"             \
20946    "adc r29, r25 \n\t"            \
20947    "mul r4, r9 \n\t"              \
20948    "add r23, r0 \n\t"             \
20949    "adc r28, r1 \n\t"             \
20950    "adc r29, r25 \n\t"            \
20951    "mul r5, r8 \n\t"              \
20952    "add r23, r0 \n\t"             \
20953    "adc r28, r1 \n\t"             \
20954    "adc r29, r25 \n\t"            \
20955    "mul r6, r7 \n\t"              \
20956    "add r23, r0 \n\t"             \
20957    "adc r28, r1 \n\t"             \
20958    "adc r29, r25 \n\t"            \
20959    "lsl r23 \n\t"                 \
20960    "rol r28 \n\t"                 \
20961    "rol r29 \n\t"                 \
20962    "add r23, r24 \n\t"            \
20963    "adc r28, r22 \n\t"            \
20964    "adc r29, r25 \n\t"            \
20965    "st z+, r23 \n\t"              \
20966                                   \
20967    "ldi r22, 0 \n\t"              \
20968    "mul r2, r12 \n\t"             \
20969    "mov r23, r0 \n\t"             \
20970    "mov r24, r1 \n\t"             \
20971    "mul r3, r11 \n\t"             \
20972    "add r23, r0 \n\t"             \
20973    "adc r24, r1 \n\t"             \
20974    "adc r22, r25 \n\t"            \
20975    "mul r4, r10 \n\t"             \
20976    "add r23, r0 \n\t"             \
20977    "adc r24, r1 \n\t"             \
20978    "adc r22, r25 \n\t"            \
20979    "mul r5, r9 \n\t"              \
20980    "add r23, r0 \n\t"             \
20981    "adc r24, r1 \n\t"             \
20982    "adc r22, r25 \n\t"            \
20983    "mul r6, r8 \n\t"              \
20984    "add r23, r0 \n\t"             \
20985    "adc r24, r1 \n\t"             \
20986    "adc r22, r25 \n\t"            \
20987    "lsl r23 \n\t"                 \
20988    "rol r24 \n\t"                 \
20989    "rol r22 \n\t"                 \
20990    "mul r7, r7 \n\t"              \
20991    "add r23, r0 \n\t"             \
20992    "adc r24, r1 \n\t"             \
20993    "adc r22, r25 \n\t"            \
20994    "add r23, r28 \n\t"            \
20995    "adc r24, r29 \n\t"            \
20996    "adc r22, r25 \n\t"            \
20997    "st z+, r23 \n\t"              \
20998                                   \
20999    "ldi r29, 0 \n\t"              \
21000    "mul r2, r13 \n\t"             \
21001    "mov r23, r0 \n\t"             \
21002    "mov r28, r1 \n\t"             \
21003    "mul r3, r12 \n\t"             \
21004    "add r23, r0 \n\t"             \
21005    "adc r28, r1 \n\t"             \
21006    "adc r29, r25 \n\t"            \
21007    "mul r4, r11 \n\t"             \
21008    "add r23, r0 \n\t"             \
21009    "adc r28, r1 \n\t"             \
21010    "adc r29, r25 \n\t"            \
21011    "mul r5, r10 \n\t"             \
21012    "add r23, r0 \n\t"             \
21013    "adc r28, r1 \n\t"             \
21014    "adc r29, r25 \n\t"            \
21015    "mul r6, r9 \n\t"              \
21016    "add r23, r0 \n\t"             \
21017    "adc r28, r1 \n\t"             \
21018    "adc r29, r25 \n\t"            \
21019    "mul r7, r8 \n\t"              \
21020    "add r23, r0 \n\t"             \
21021    "adc r28, r1 \n\t"             \
21022    "adc r29, r25 \n\t"            \
21023    "lsl r23 \n\t"                 \
21024    "rol r28 \n\t"                 \
21025    "rol r29 \n\t"                 \
21026    "add r23, r24 \n\t"            \
21027    "adc r28, r22 \n\t"            \
21028    "adc r29, r25 \n\t"            \
21029    "st z+, r23 \n\t"              \
21030                                   \
21031    "ldi r22, 0 \n\t"              \
21032    "mul r2, r14 \n\t"             \
21033    "mov r23, r0 \n\t"             \
21034    "mov r24, r1 \n\t"             \
21035    "mul r3, r13 \n\t"             \
21036    "add r23, r0 \n\t"             \
21037    "adc r24, r1 \n\t"             \
21038    "adc r22, r25 \n\t"            \
21039    "mul r4, r12 \n\t"             \
21040    "add r23, r0 \n\t"             \
21041    "adc r24, r1 \n\t"             \
21042    "adc r22, r25 \n\t"            \
21043    "mul r5, r11 \n\t"             \
21044    "add r23, r0 \n\t"             \
21045    "adc r24, r1 \n\t"             \
21046    "adc r22, r25 \n\t"            \
21047    "mul r6, r10 \n\t"             \
21048    "add r23, r0 \n\t"             \
21049    "adc r24, r1 \n\t"             \
21050    "adc r22, r25 \n\t"            \
21051    "mul r7, r9 \n\t"              \
21052    "add r23, r0 \n\t"             \
21053    "adc r24, r1 \n\t"             \
21054    "adc r22, r25 \n\t"            \
21055    "lsl r23 \n\t"                 \
21056    "rol r24 \n\t"                 \
21057    "rol r22 \n\t"                 \
21058    "mul r8, r8 \n\t"              \
21059    "add r23, r0 \n\t"             \
21060    "adc r24, r1 \n\t"             \
21061    "adc r22, r25 \n\t"            \
21062    "add r23, r28 \n\t"            \
21063    "adc r24, r29 \n\t"            \
21064    "adc r22, r25 \n\t"            \
21065    "st z+, r23 \n\t"              \
21066                                   \
21067    "ldi r29, 0 \n\t"              \
21068    "mul r2, r15 \n\t"             \
21069    "mov r23, r0 \n\t"             \
21070    "mov r28, r1 \n\t"             \
21071    "mul r3, r14 \n\t"             \
21072    "add r23, r0 \n\t"             \
21073    "adc r28, r1 \n\t"             \
21074    "adc r29, r25 \n\t"            \
21075    "mul r4, r13 \n\t"             \
21076    "add r23, r0 \n\t"             \
21077    "adc r28, r1 \n\t"             \
21078    "adc r29, r25 \n\t"            \
21079    "mul r5, r12 \n\t"             \
21080    "add r23, r0 \n\t"             \
21081    "adc r28, r1 \n\t"             \
21082    "adc r29, r25 \n\t"            \
21083    "mul r6, r11 \n\t"             \
21084    "add r23, r0 \n\t"             \
21085    "adc r28, r1 \n\t"             \
21086    "adc r29, r25 \n\t"            \
21087    "mul r7, r10 \n\t"             \
21088    "add r23, r0 \n\t"             \
21089    "adc r28, r1 \n\t"             \
21090    "adc r29, r25 \n\t"            \
21091    "mul r8, r9 \n\t"              \
21092    "add r23, r0 \n\t"             \
21093    "adc r28, r1 \n\t"             \
21094    "adc r29, r25 \n\t"            \
21095    "lsl r23 \n\t"                 \
21096    "rol r28 \n\t"                 \
21097    "rol r29 \n\t"                 \
21098    "add r23, r24 \n\t"            \
21099    "adc r28, r22 \n\t"            \
21100    "adc r29, r25 \n\t"            \
21101    "st z+, r23 \n\t"              \
21102                                   \
21103    "ldi r22, 0 \n\t"              \
21104    "mul r2, r16 \n\t"             \
21105    "mov r23, r0 \n\t"             \
21106    "mov r24, r1 \n\t"             \
21107    "mul r3, r15 \n\t"             \
21108    "add r23, r0 \n\t"             \
21109    "adc r24, r1 \n\t"             \
21110    "adc r22, r25 \n\t"            \
21111    "mul r4, r14 \n\t"             \
21112    "add r23, r0 \n\t"             \
21113    "adc r24, r1 \n\t"             \
21114    "adc r22, r25 \n\t"            \
21115    "mul r5, r13 \n\t"             \
21116    "add r23, r0 \n\t"             \
21117    "adc r24, r1 \n\t"             \
21118    "adc r22, r25 \n\t"            \
21119    "mul r6, r12 \n\t"             \
21120    "add r23, r0 \n\t"             \
21121    "adc r24, r1 \n\t"             \
21122    "adc r22, r25 \n\t"            \
21123    "mul r7, r11 \n\t"             \
21124    "add r23, r0 \n\t"             \
21125    "adc r24, r1 \n\t"             \
21126    "adc r22, r25 \n\t"            \
21127    "mul r8, r10 \n\t"             \
21128    "add r23, r0 \n\t"             \
21129    "adc r24, r1 \n\t"             \
21130    "adc r22, r25 \n\t"            \
21131    "lsl r23 \n\t"                 \
21132    "rol r24 \n\t"                 \
21133    "rol r22 \n\t"                 \
21134    "mul r9, r9 \n\t"              \
21135    "add r23, r0 \n\t"             \
21136    "adc r24, r1 \n\t"             \
21137    "adc r22, r25 \n\t"            \
21138    "add r23, r28 \n\t"            \
21139    "adc r24, r29 \n\t"            \
21140    "adc r22, r25 \n\t"            \
21141    "st z+, r23 \n\t"              \
21142                                   \
21143    "ldi r29, 0 \n\t"              \
21144    "mul r2, r17 \n\t"             \
21145    "mov r23, r0 \n\t"             \
21146    "mov r28, r1 \n\t"             \
21147    "mul r3, r16 \n\t"             \
21148    "add r23, r0 \n\t"             \
21149    "adc r28, r1 \n\t"             \
21150    "adc r29, r25 \n\t"            \
21151    "mul r4, r15 \n\t"             \
21152    "add r23, r0 \n\t"             \
21153    "adc r28, r1 \n\t"             \
21154    "adc r29, r25 \n\t"            \
21155    "mul r5, r14 \n\t"             \
21156    "add r23, r0 \n\t"             \
21157    "adc r28, r1 \n\t"             \
21158    "adc r29, r25 \n\t"            \
21159    "mul r6, r13 \n\t"             \
21160    "add r23, r0 \n\t"             \
21161    "adc r28, r1 \n\t"             \
21162    "adc r29, r25 \n\t"            \
21163    "mul r7, r12 \n\t"             \
21164    "add r23, r0 \n\t"             \
21165    "adc r28, r1 \n\t"             \
21166    "adc r29, r25 \n\t"            \
21167    "mul r8, r11 \n\t"             \
21168    "add r23, r0 \n\t"             \
21169    "adc r28, r1 \n\t"             \
21170    "adc r29, r25 \n\t"            \
21171    "mul r9, r10 \n\t"             \
21172    "add r23, r0 \n\t"             \
21173    "adc r28, r1 \n\t"             \
21174    "adc r29, r25 \n\t"            \
21175    "lsl r23 \n\t"                 \
21176    "rol r28 \n\t"                 \
21177    "rol r29 \n\t"                 \
21178    "add r23, r24 \n\t"            \
21179    "adc r28, r22 \n\t"            \
21180    "adc r29, r25 \n\t"            \
21181    "st z+, r23 \n\t"              \
21182                                   \
21183    "ldi r22, 0 \n\t"              \
21184    "mul r2, r18 \n\t"             \
21185    "mov r23, r0 \n\t"             \
21186    "mov r24, r1 \n\t"             \
21187    "mul r3, r17 \n\t"             \
21188    "add r23, r0 \n\t"             \
21189    "adc r24, r1 \n\t"             \
21190    "adc r22, r25 \n\t"            \
21191    "mul r4, r16 \n\t"             \
21192    "add r23, r0 \n\t"             \
21193    "adc r24, r1 \n\t"             \
21194    "adc r22, r25 \n\t"            \
21195    "mul r5, r15 \n\t"             \
21196    "add r23, r0 \n\t"             \
21197    "adc r24, r1 \n\t"             \
21198    "adc r22, r25 \n\t"            \
21199    "mul r6, r14 \n\t"             \
21200    "add r23, r0 \n\t"             \
21201    "adc r24, r1 \n\t"             \
21202    "adc r22, r25 \n\t"            \
21203    "mul r7, r13 \n\t"             \
21204    "add r23, r0 \n\t"             \
21205    "adc r24, r1 \n\t"             \
21206    "adc r22, r25 \n\t"            \
21207    "mul r8, r12 \n\t"             \
21208    "add r23, r0 \n\t"             \
21209    "adc r24, r1 \n\t"             \
21210    "adc r22, r25 \n\t"            \
21211    "mul r9, r11 \n\t"             \
21212    "add r23, r0 \n\t"             \
21213    "adc r24, r1 \n\t"             \
21214    "adc r22, r25 \n\t"            \
21215    "lsl r23 \n\t"                 \
21216    "rol r24 \n\t"                 \
21217    "rol r22 \n\t"                 \
21218    "mul r10, r10 \n\t"            \
21219    "add r23, r0 \n\t"             \
21220    "adc r24, r1 \n\t"             \
21221    "adc r22, r25 \n\t"            \
21222    "add r23, r28 \n\t"            \
21223    "adc r24, r29 \n\t"            \
21224    "adc r22, r25 \n\t"            \
21225    "st z+, r23 \n\t"              \
21226                                   \
21227    "ldi r29, 0 \n\t"              \
21228    "mul r2, r19 \n\t"             \
21229    "mov r23, r0 \n\t"             \
21230    "mov r28, r1 \n\t"             \
21231    "mul r3, r18 \n\t"             \
21232    "add r23, r0 \n\t"             \
21233    "adc r28, r1 \n\t"             \
21234    "adc r29, r25 \n\t"            \
21235    "mul r4, r17 \n\t"             \
21236    "add r23, r0 \n\t"             \
21237    "adc r28, r1 \n\t"             \
21238    "adc r29, r25 \n\t"            \
21239    "mul r5, r16 \n\t"             \
21240    "add r23, r0 \n\t"             \
21241    "adc r28, r1 \n\t"             \
21242    "adc r29, r25 \n\t"            \
21243    "mul r6, r15 \n\t"             \
21244    "add r23, r0 \n\t"             \
21245    "adc r28, r1 \n\t"             \
21246    "adc r29, r25 \n\t"            \
21247    "mul r7, r14 \n\t"             \
21248    "add r23, r0 \n\t"             \
21249    "adc r28, r1 \n\t"             \
21250    "adc r29, r25 \n\t"            \
21251    "mul r8, r13 \n\t"             \
21252    "add r23, r0 \n\t"             \
21253    "adc r28, r1 \n\t"             \
21254    "adc r29, r25 \n\t"            \
21255    "mul r9, r12 \n\t"             \
21256    "add r23, r0 \n\t"             \
21257    "adc r28, r1 \n\t"             \
21258    "adc r29, r25 \n\t"            \
21259    "mul r10, r11 \n\t"            \
21260    "add r23, r0 \n\t"             \
21261    "adc r28, r1 \n\t"             \
21262    "adc r29, r25 \n\t"            \
21263    "lsl r23 \n\t"                 \
21264    "rol r28 \n\t"                 \
21265    "rol r29 \n\t"                 \
21266    "add r23, r24 \n\t"            \
21267    "adc r28, r22 \n\t"            \
21268    "adc r29, r25 \n\t"            \
21269    "st z+, r23 \n\t"              \
21270                                   \
21271    "ldi r22, 0 \n\t"              \
21272    "mul r2, r20 \n\t"             \
21273    "mov r23, r0 \n\t"             \
21274    "mov r24, r1 \n\t"             \
21275    "mul r3, r19 \n\t"             \
21276    "add r23, r0 \n\t"             \
21277    "adc r24, r1 \n\t"             \
21278    "adc r22, r25 \n\t"            \
21279    "mul r4, r18 \n\t"             \
21280    "add r23, r0 \n\t"             \
21281    "adc r24, r1 \n\t"             \
21282    "adc r22, r25 \n\t"            \
21283    "mul r5, r17 \n\t"             \
21284    "add r23, r0 \n\t"             \
21285    "adc r24, r1 \n\t"             \
21286    "adc r22, r25 \n\t"            \
21287    "mul r6, r16 \n\t"             \
21288    "add r23, r0 \n\t"             \
21289    "adc r24, r1 \n\t"             \
21290    "adc r22, r25 \n\t"            \
21291    "mul r7, r15 \n\t"             \
21292    "add r23, r0 \n\t"             \
21293    "adc r24, r1 \n\t"             \
21294    "adc r22, r25 \n\t"            \
21295    "mul r8, r14 \n\t"             \
21296    "add r23, r0 \n\t"             \
21297    "adc r24, r1 \n\t"             \
21298    "adc r22, r25 \n\t"            \
21299    "mul r9, r13 \n\t"             \
21300    "add r23, r0 \n\t"             \
21301    "adc r24, r1 \n\t"             \
21302    "adc r22, r25 \n\t"            \
21303    "mul r10, r12 \n\t"            \
21304    "add r23, r0 \n\t"             \
21305    "adc r24, r1 \n\t"             \
21306    "adc r22, r25 \n\t"            \
21307    "lsl r23 \n\t"                 \
21308    "rol r24 \n\t"                 \
21309    "rol r22 \n\t"                 \
21310    "mul r11, r11 \n\t"            \
21311    "add r23, r0 \n\t"             \
21312    "adc r24, r1 \n\t"             \
21313    "adc r22, r25 \n\t"            \
21314    "add r23, r28 \n\t"            \
21315    "adc r24, r29 \n\t"            \
21316    "adc r22, r25 \n\t"            \
21317    "st z+, r23 \n\t"              \
21318                                   \
21319    "ldi r29, 0 \n\t"              \
21320    "mul r2, r21 \n\t"             \
21321    "mov r23, r0 \n\t"             \
21322    "mov r28, r1 \n\t"             \
21323    "mul r3, r20 \n\t"             \
21324    "add r23, r0 \n\t"             \
21325    "adc r28, r1 \n\t"             \
21326    "adc r29, r25 \n\t"            \
21327    "mul r4, r19 \n\t"             \
21328    "add r23, r0 \n\t"             \
21329    "adc r28, r1 \n\t"             \
21330    "adc r29, r25 \n\t"            \
21331    "mul r5, r18 \n\t"             \
21332    "add r23, r0 \n\t"             \
21333    "adc r28, r1 \n\t"             \
21334    "adc r29, r25 \n\t"            \
21335    "mul r6, r17 \n\t"             \
21336    "add r23, r0 \n\t"             \
21337    "adc r28, r1 \n\t"             \
21338    "adc r29, r25 \n\t"            \
21339    "mul r7, r16 \n\t"             \
21340    "add r23, r0 \n\t"             \
21341    "adc r28, r1 \n\t"             \
21342    "adc r29, r25 \n\t"            \
21343    "mul r8, r15 \n\t"             \
21344    "add r23, r0 \n\t"             \
21345    "adc r28, r1 \n\t"             \
21346    "adc r29, r25 \n\t"            \
21347    "mul r9, r14 \n\t"             \
21348    "add r23, r0 \n\t"             \
21349    "adc r28, r1 \n\t"             \
21350    "adc r29, r25 \n\t"            \
21351    "mul r10, r13 \n\t"            \
21352    "add r23, r0 \n\t"             \
21353    "adc r28, r1 \n\t"             \
21354    "adc r29, r25 \n\t"            \
21355    "mul r11, r12 \n\t"            \
21356    "add r23, r0 \n\t"             \
21357    "adc r28, r1 \n\t"             \
21358    "adc r29, r25 \n\t"            \
21359    "lsl r23 \n\t"                 \
21360    "rol r28 \n\t"                 \
21361    "rol r29 \n\t"                 \
21362    "add r23, r24 \n\t"            \
21363    "adc r28, r22 \n\t"            \
21364    "adc r29, r25 \n\t"            \
21365    "st z+, r23 \n\t"              \
21366                                   \
21367    "ld r2, x+ \n\t"               \
21368    "ldi r22, 0 \n\t"              \
21369    "mul r3, r21 \n\t"             \
21370    "mov r23, r0 \n\t"             \
21371    "mov r24, r1 \n\t"             \
21372    "mul r4, r20 \n\t"             \
21373    "add r23, r0 \n\t"             \
21374    "adc r24, r1 \n\t"             \
21375    "adc r22, r25 \n\t"            \
21376    "mul r5, r19 \n\t"             \
21377    "add r23, r0 \n\t"             \
21378    "adc r24, r1 \n\t"             \
21379    "adc r22, r25 \n\t"            \
21380    "mul r6, r18 \n\t"             \
21381    "add r23, r0 \n\t"             \
21382    "adc r24, r1 \n\t"             \
21383    "adc r22, r25 \n\t"            \
21384    "mul r7, r17 \n\t"             \
21385    "add r23, r0 \n\t"             \
21386    "adc r24, r1 \n\t"             \
21387    "adc r22, r25 \n\t"            \
21388    "mul r8, r16 \n\t"             \
21389    "add r23, r0 \n\t"             \
21390    "adc r24, r1 \n\t"             \
21391    "adc r22, r25 \n\t"            \
21392    "mul r9, r15 \n\t"             \
21393    "add r23, r0 \n\t"             \
21394    "adc r24, r1 \n\t"             \
21395    "adc r22, r25 \n\t"            \
21396    "mul r10, r14 \n\t"            \
21397    "add r23, r0 \n\t"             \
21398    "adc r24, r1 \n\t"             \
21399    "adc r22, r25 \n\t"            \
21400    "mul r11, r13 \n\t"            \
21401    "add r23, r0 \n\t"             \
21402    "adc r24, r1 \n\t"             \
21403    "adc r22, r25 \n\t"            \
21404    "ld r0, z \n\t"                \
21405    "add r23, r0 \n\t"             \
21406    "adc r24, r25 \n\t"            \
21407    "adc r22, r25 \n\t"            \
21408    "lsl r23 \n\t"                 \
21409    "rol r24 \n\t"                 \
21410    "rol r22 \n\t"                 \
21411    "mul r12, r12 \n\t"            \
21412    "add r23, r0 \n\t"             \
21413    "adc r24, r1 \n\t"             \
21414    "adc r22, r25 \n\t"            \
21415    "add r23, r28 \n\t"            \
21416    "adc r24, r29 \n\t"            \
21417    "adc r22, r25 \n\t"            \
21418    "st z+, r23 \n\t"              \
21419                                   \
21420    "ldi r29, 0 \n\t"              \
21421    "mul r3, r2 \n\t"              \
21422    "mov r23, r0 \n\t"             \
21423    "mov r28, r1 \n\t"             \
21424    "mul r4, r21 \n\t"             \
21425    "add r23, r0 \n\t"             \
21426    "adc r28, r1 \n\t"             \
21427    "adc r29, r25 \n\t"            \
21428    "mul r5, r20 \n\t"             \
21429    "add r23, r0 \n\t"             \
21430    "adc r28, r1 \n\t"             \
21431    "adc r29, r25 \n\t"            \
21432    "mul r6, r19 \n\t"             \
21433    "add r23, r0 \n\t"             \
21434    "adc r28, r1 \n\t"             \
21435    "adc r29, r25 \n\t"            \
21436    "mul r7, r18 \n\t"             \
21437    "add r23, r0 \n\t"             \
21438    "adc r28, r1 \n\t"             \
21439    "adc r29, r25 \n\t"            \
21440    "mul r8, r17 \n\t"             \
21441    "add r23, r0 \n\t"             \
21442    "adc r28, r1 \n\t"             \
21443    "adc r29, r25 \n\t"            \
21444    "mul r9, r16 \n\t"             \
21445    "add r23, r0 \n\t"             \
21446    "adc r28, r1 \n\t"             \
21447    "adc r29, r25 \n\t"            \
21448    "mul r10, r15 \n\t"            \
21449    "add r23, r0 \n\t"             \
21450    "adc r28, r1 \n\t"             \
21451    "adc r29, r25 \n\t"            \
21452    "mul r11, r14 \n\t"            \
21453    "add r23, r0 \n\t"             \
21454    "adc r28, r1 \n\t"             \
21455    "adc r29, r25 \n\t"            \
21456    "mul r12, r13 \n\t"            \
21457    "add r23, r0 \n\t"             \
21458    "adc r28, r1 \n\t"             \
21459    "adc r29, r25 \n\t"            \
21460    "ld r0, z \n\t"                \
21461    "add r23, r0 \n\t"             \
21462    "adc r28, r25 \n\t"            \
21463    "adc r29, r25 \n\t"            \
21464    "lsl r23 \n\t"                 \
21465    "rol r28 \n\t"                 \
21466    "rol r29 \n\t"                 \
21467    "add r23, r24 \n\t"            \
21468    "adc r28, r22 \n\t"            \
21469    "adc r29, r25 \n\t"            \
21470    "st z+, r23 \n\t"              \
21471                                   \
21472    "ld r3, x+ \n\t"               \
21473    "ldi r22, 0 \n\t"              \
21474    "mul r4, r2 \n\t"              \
21475    "mov r23, r0 \n\t"             \
21476    "mov r24, r1 \n\t"             \
21477    "mul r5, r21 \n\t"             \
21478    "add r23, r0 \n\t"             \
21479    "adc r24, r1 \n\t"             \
21480    "adc r22, r25 \n\t"            \
21481    "mul r6, r20 \n\t"             \
21482    "add r23, r0 \n\t"             \
21483    "adc r24, r1 \n\t"             \
21484    "adc r22, r25 \n\t"            \
21485    "mul r7, r19 \n\t"             \
21486    "add r23, r0 \n\t"             \
21487    "adc r24, r1 \n\t"             \
21488    "adc r22, r25 \n\t"            \
21489    "mul r8, r18 \n\t"             \
21490    "add r23, r0 \n\t"             \
21491    "adc r24, r1 \n\t"             \
21492    "adc r22, r25 \n\t"            \
21493    "mul r9, r17 \n\t"             \
21494    "add r23, r0 \n\t"             \
21495    "adc r24, r1 \n\t"             \
21496    "adc r22, r25 \n\t"            \
21497    "mul r10, r16 \n\t"            \
21498    "add r23, r0 \n\t"             \
21499    "adc r24, r1 \n\t"             \
21500    "adc r22, r25 \n\t"            \
21501    "mul r11, r15 \n\t"            \
21502    "add r23, r0 \n\t"             \
21503    "adc r24, r1 \n\t"             \
21504    "adc r22, r25 \n\t"            \
21505    "mul r12, r14 \n\t"            \
21506    "add r23, r0 \n\t"             \
21507    "adc r24, r1 \n\t"             \
21508    "adc r22, r25 \n\t"            \
21509    "ld r0, z \n\t"                \
21510    "add r23, r0 \n\t"             \
21511    "adc r24, r25 \n\t"            \
21512    "adc r22, r25 \n\t"            \
21513    "lsl r23 \n\t"                 \
21514    "rol r24 \n\t"                 \
21515    "rol r22 \n\t"                 \
21516    "mul r13, r13 \n\t"            \
21517    "add r23, r0 \n\t"             \
21518    "adc r24, r1 \n\t"             \
21519    "adc r22, r25 \n\t"            \
21520    "add r23, r28 \n\t"            \
21521    "adc r24, r29 \n\t"            \
21522    "adc r22, r25 \n\t"            \
21523    "st z+, r23 \n\t"              \
21524                                   \
21525    "ldi r29, 0 \n\t"              \
21526    "mul r4, r3 \n\t"              \
21527    "mov r23, r0 \n\t"             \
21528    "mov r28, r1 \n\t"             \
21529    "mul r5, r2 \n\t"              \
21530    "add r23, r0 \n\t"             \
21531    "adc r28, r1 \n\t"             \
21532    "adc r29, r25 \n\t"            \
21533    "mul r6, r21 \n\t"             \
21534    "add r23, r0 \n\t"             \
21535    "adc r28, r1 \n\t"             \
21536    "adc r29, r25 \n\t"            \
21537    "mul r7, r20 \n\t"             \
21538    "add r23, r0 \n\t"             \
21539    "adc r28, r1 \n\t"             \
21540    "adc r29, r25 \n\t"            \
21541    "mul r8, r19 \n\t"             \
21542    "add r23, r0 \n\t"             \
21543    "adc r28, r1 \n\t"             \
21544    "adc r29, r25 \n\t"            \
21545    "mul r9, r18 \n\t"             \
21546    "add r23, r0 \n\t"             \
21547    "adc r28, r1 \n\t"             \
21548    "adc r29, r25 \n\t"            \
21549    "mul r10, r17 \n\t"            \
21550    "add r23, r0 \n\t"             \
21551    "adc r28, r1 \n\t"             \
21552    "adc r29, r25 \n\t"            \
21553    "mul r11, r16 \n\t"            \
21554    "add r23, r0 \n\t"             \
21555    "adc r28, r1 \n\t"             \
21556    "adc r29, r25 \n\t"            \
21557    "mul r12, r15 \n\t"            \
21558    "add r23, r0 \n\t"             \
21559    "adc r28, r1 \n\t"             \
21560    "adc r29, r25 \n\t"            \
21561    "mul r13, r14 \n\t"            \
21562    "add r23, r0 \n\t"             \
21563    "adc r28, r1 \n\t"             \
21564    "adc r29, r25 \n\t"            \
21565    "ld r0, z \n\t"                \
21566    "add r23, r0 \n\t"             \
21567    "adc r28, r25 \n\t"            \
21568    "adc r29, r25 \n\t"            \
21569    "lsl r23 \n\t"                 \
21570    "rol r28 \n\t"                 \
21571    "rol r29 \n\t"                 \
21572    "add r23, r24 \n\t"            \
21573    "adc r28, r22 \n\t"            \
21574    "adc r29, r25 \n\t"            \
21575    "st z+, r23 \n\t"              \
21576                                   \
21577    "ld r4, x+ \n\t"               \
21578    "ldi r22, 0 \n\t"              \
21579    "mul r5, r3 \n\t"              \
21580    "mov r23, r0 \n\t"             \
21581    "mov r24, r1 \n\t"             \
21582    "mul r6, r2 \n\t"              \
21583    "add r23, r0 \n\t"             \
21584    "adc r24, r1 \n\t"             \
21585    "adc r22, r25 \n\t"            \
21586    "mul r7, r21 \n\t"             \
21587    "add r23, r0 \n\t"             \
21588    "adc r24, r1 \n\t"             \
21589    "adc r22, r25 \n\t"            \
21590    "mul r8, r20 \n\t"             \
21591    "add r23, r0 \n\t"             \
21592    "adc r24, r1 \n\t"             \
21593    "adc r22, r25 \n\t"            \
21594    "mul r9, r19 \n\t"             \
21595    "add r23, r0 \n\t"             \
21596    "adc r24, r1 \n\t"             \
21597    "adc r22, r25 \n\t"            \
21598    "mul r10, r18 \n\t"            \
21599    "add r23, r0 \n\t"             \
21600    "adc r24, r1 \n\t"             \
21601    "adc r22, r25 \n\t"            \
21602    "mul r11, r17 \n\t"            \
21603    "add r23, r0 \n\t"             \
21604    "adc r24, r1 \n\t"             \
21605    "adc r22, r25 \n\t"            \
21606    "mul r12, r16 \n\t"            \
21607    "add r23, r0 \n\t"             \
21608    "adc r24, r1 \n\t"             \
21609    "adc r22, r25 \n\t"            \
21610    "mul r13, r15 \n\t"            \
21611    "add r23, r0 \n\t"             \
21612    "adc r24, r1 \n\t"             \
21613    "adc r22, r25 \n\t"            \
21614    "ld r0, z \n\t"                \
21615    "add r23, r0 \n\t"             \
21616    "adc r24, r25 \n\t"            \
21617    "adc r22, r25 \n\t"            \
21618    "lsl r23 \n\t"                 \
21619    "rol r24 \n\t"                 \
21620    "rol r22 \n\t"                 \
21621    "mul r14, r14 \n\t"            \
21622    "add r23, r0 \n\t"             \
21623    "adc r24, r1 \n\t"             \
21624    "adc r22, r25 \n\t"            \
21625    "add r23, r28 \n\t"            \
21626    "adc r24, r29 \n\t"            \
21627    "adc r22, r25 \n\t"            \
21628    "st z+, r23 \n\t"              \
21629                                   \
21630    "ldi r29, 0 \n\t"              \
21631    "mul r5, r4 \n\t"              \
21632    "mov r23, r0 \n\t"             \
21633    "mov r28, r1 \n\t"             \
21634    "mul r6, r3 \n\t"              \
21635    "add r23, r0 \n\t"             \
21636    "adc r28, r1 \n\t"             \
21637    "adc r29, r25 \n\t"            \
21638    "mul r7, r2 \n\t"              \
21639    "add r23, r0 \n\t"             \
21640    "adc r28, r1 \n\t"             \
21641    "adc r29, r25 \n\t"            \
21642    "mul r8, r21 \n\t"             \
21643    "add r23, r0 \n\t"             \
21644    "adc r28, r1 \n\t"             \
21645    "adc r29, r25 \n\t"            \
21646    "mul r9, r20 \n\t"             \
21647    "add r23, r0 \n\t"             \
21648    "adc r28, r1 \n\t"             \
21649    "adc r29, r25 \n\t"            \
21650    "mul r10, r19 \n\t"            \
21651    "add r23, r0 \n\t"             \
21652    "adc r28, r1 \n\t"             \
21653    "adc r29, r25 \n\t"            \
21654    "mul r11, r18 \n\t"            \
21655    "add r23, r0 \n\t"             \
21656    "adc r28, r1 \n\t"             \
21657    "adc r29, r25 \n\t"            \
21658    "mul r12, r17 \n\t"            \
21659    "add r23, r0 \n\t"             \
21660    "adc r28, r1 \n\t"             \
21661    "adc r29, r25 \n\t"            \
21662    "mul r13, r16 \n\t"            \
21663    "add r23, r0 \n\t"             \
21664    "adc r28, r1 \n\t"             \
21665    "adc r29, r25 \n\t"            \
21666    "mul r14, r15 \n\t"            \
21667    "add r23, r0 \n\t"             \
21668    "adc r28, r1 \n\t"             \
21669    "adc r29, r25 \n\t"            \
21670    "ld r0, z \n\t"                \
21671    "add r23, r0 \n\t"             \
21672    "adc r28, r25 \n\t"            \
21673    "adc r29, r25 \n\t"            \
21674    "lsl r23 \n\t"                 \
21675    "rol r28 \n\t"                 \
21676    "rol r29 \n\t"                 \
21677    "add r23, r24 \n\t"            \
21678    "adc r28, r22 \n\t"            \
21679    "adc r29, r25 \n\t"            \
21680    "st z+, r23 \n\t"              \
21681                                   \
21682    "ld r5, x+ \n\t"               \
21683    "ldi r22, 0 \n\t"              \
21684    "mul r6, r4 \n\t"              \
21685    "mov r23, r0 \n\t"             \
21686    "mov r24, r1 \n\t"             \
21687    "mul r7, r3 \n\t"              \
21688    "add r23, r0 \n\t"             \
21689    "adc r24, r1 \n\t"             \
21690    "adc r22, r25 \n\t"            \
21691    "mul r8, r2 \n\t"              \
21692    "add r23, r0 \n\t"             \
21693    "adc r24, r1 \n\t"             \
21694    "adc r22, r25 \n\t"            \
21695    "mul r9, r21 \n\t"             \
21696    "add r23, r0 \n\t"             \
21697    "adc r24, r1 \n\t"             \
21698    "adc r22, r25 \n\t"            \
21699    "mul r10, r20 \n\t"            \
21700    "add r23, r0 \n\t"             \
21701    "adc r24, r1 \n\t"             \
21702    "adc r22, r25 \n\t"            \
21703    "mul r11, r19 \n\t"            \
21704    "add r23, r0 \n\t"             \
21705    "adc r24, r1 \n\t"             \
21706    "adc r22, r25 \n\t"            \
21707    "mul r12, r18 \n\t"            \
21708    "add r23, r0 \n\t"             \
21709    "adc r24, r1 \n\t"             \
21710    "adc r22, r25 \n\t"            \
21711    "mul r13, r17 \n\t"            \
21712    "add r23, r0 \n\t"             \
21713    "adc r24, r1 \n\t"             \
21714    "adc r22, r25 \n\t"            \
21715    "mul r14, r16 \n\t"            \
21716    "add r23, r0 \n\t"             \
21717    "adc r24, r1 \n\t"             \
21718    "adc r22, r25 \n\t"            \
21719    "ld r0, z \n\t"                \
21720    "add r23, r0 \n\t"             \
21721    "adc r24, r25 \n\t"            \
21722    "adc r22, r25 \n\t"            \
21723    "lsl r23 \n\t"                 \
21724    "rol r24 \n\t"                 \
21725    "rol r22 \n\t"                 \
21726    "mul r15, r15 \n\t"            \
21727    "add r23, r0 \n\t"             \
21728    "adc r24, r1 \n\t"             \
21729    "adc r22, r25 \n\t"            \
21730    "add r23, r28 \n\t"            \
21731    "adc r24, r29 \n\t"            \
21732    "adc r22, r25 \n\t"            \
21733    "st z+, r23 \n\t"              \
21734                                   \
21735    "ldi r29, 0 \n\t"              \
21736    "mul r6, r5 \n\t"              \
21737    "mov r23, r0 \n\t"             \
21738    "mov r28, r1 \n\t"             \
21739    "mul r7, r4 \n\t"              \
21740    "add r23, r0 \n\t"             \
21741    "adc r28, r1 \n\t"             \
21742    "adc r29, r25 \n\t"            \
21743    "mul r8, r3 \n\t"              \
21744    "add r23, r0 \n\t"             \
21745    "adc r28, r1 \n\t"             \
21746    "adc r29, r25 \n\t"            \
21747    "mul r9, r2 \n\t"              \
21748    "add r23, r0 \n\t"             \
21749    "adc r28, r1 \n\t"             \
21750    "adc r29, r25 \n\t"            \
21751    "mul r10, r21 \n\t"            \
21752    "add r23, r0 \n\t"             \
21753    "adc r28, r1 \n\t"             \
21754    "adc r29, r25 \n\t"            \
21755    "mul r11, r20 \n\t"            \
21756    "add r23, r0 \n\t"             \
21757    "adc r28, r1 \n\t"             \
21758    "adc r29, r25 \n\t"            \
21759    "mul r12, r19 \n\t"            \
21760    "add r23, r0 \n\t"             \
21761    "adc r28, r1 \n\t"             \
21762    "adc r29, r25 \n\t"            \
21763    "mul r13, r18 \n\t"            \
21764    "add r23, r0 \n\t"             \
21765    "adc r28, r1 \n\t"             \
21766    "adc r29, r25 \n\t"            \
21767    "mul r14, r17 \n\t"            \
21768    "add r23, r0 \n\t"             \
21769    "adc r28, r1 \n\t"             \
21770    "adc r29, r25 \n\t"            \
21771    "mul r15, r16 \n\t"            \
21772    "add r23, r0 \n\t"             \
21773    "adc r28, r1 \n\t"             \
21774    "adc r29, r25 \n\t"            \
21775    "ld r0, z \n\t"                \
21776    "add r23, r0 \n\t"             \
21777    "adc r28, r25 \n\t"            \
21778    "adc r29, r25 \n\t"            \
21779    "lsl r23 \n\t"                 \
21780    "rol r28 \n\t"                 \
21781    "rol r29 \n\t"                 \
21782    "add r23, r24 \n\t"            \
21783    "adc r28, r22 \n\t"            \
21784    "adc r29, r25 \n\t"            \
21785    "st z+, r23 \n\t"              \
21786                                   \
21787    "ld r6, x+ \n\t"               \
21788    "ldi r22, 0 \n\t"              \
21789    "mul r7, r5 \n\t"              \
21790    "mov r23, r0 \n\t"             \
21791    "mov r24, r1 \n\t"             \
21792    "mul r8, r4 \n\t"              \
21793    "add r23, r0 \n\t"             \
21794    "adc r24, r1 \n\t"             \
21795    "adc r22, r25 \n\t"            \
21796    "mul r9, r3 \n\t"              \
21797    "add r23, r0 \n\t"             \
21798    "adc r24, r1 \n\t"             \
21799    "adc r22, r25 \n\t"            \
21800    "mul r10, r2 \n\t"             \
21801    "add r23, r0 \n\t"             \
21802    "adc r24, r1 \n\t"             \
21803    "adc r22, r25 \n\t"            \
21804    "mul r11, r21 \n\t"            \
21805    "add r23, r0 \n\t"             \
21806    "adc r24, r1 \n\t"             \
21807    "adc r22, r25 \n\t"            \
21808    "mul r12, r20 \n\t"            \
21809    "add r23, r0 \n\t"             \
21810    "adc r24, r1 \n\t"             \
21811    "adc r22, r25 \n\t"            \
21812    "mul r13, r19 \n\t"            \
21813    "add r23, r0 \n\t"             \
21814    "adc r24, r1 \n\t"             \
21815    "adc r22, r25 \n\t"            \
21816    "mul r14, r18 \n\t"            \
21817    "add r23, r0 \n\t"             \
21818    "adc r24, r1 \n\t"             \
21819    "adc r22, r25 \n\t"            \
21820    "mul r15, r17 \n\t"            \
21821    "add r23, r0 \n\t"             \
21822    "adc r24, r1 \n\t"             \
21823    "adc r22, r25 \n\t"            \
21824    "ld r0, z \n\t"                \
21825    "add r23, r0 \n\t"             \
21826    "adc r24, r25 \n\t"            \
21827    "adc r22, r25 \n\t"            \
21828    "lsl r23 \n\t"                 \
21829    "rol r24 \n\t"                 \
21830    "rol r22 \n\t"                 \
21831    "mul r16, r16 \n\t"            \
21832    "add r23, r0 \n\t"             \
21833    "adc r24, r1 \n\t"             \
21834    "adc r22, r25 \n\t"            \
21835    "add r23, r28 \n\t"            \
21836    "adc r24, r29 \n\t"            \
21837    "adc r22, r25 \n\t"            \
21838    "st z+, r23 \n\t"              \
21839                                   \
21840    "ldi r29, 0 \n\t"              \
21841    "mul r7, r6 \n\t"              \
21842    "mov r23, r0 \n\t"             \
21843    "mov r28, r1 \n\t"             \
21844    "mul r8, r5 \n\t"              \
21845    "add r23, r0 \n\t"             \
21846    "adc r28, r1 \n\t"             \
21847    "adc r29, r25 \n\t"            \
21848    "mul r9, r4 \n\t"              \
21849    "add r23, r0 \n\t"             \
21850    "adc r28, r1 \n\t"             \
21851    "adc r29, r25 \n\t"            \
21852    "mul r10, r3 \n\t"             \
21853    "add r23, r0 \n\t"             \
21854    "adc r28, r1 \n\t"             \
21855    "adc r29, r25 \n\t"            \
21856    "mul r11, r2 \n\t"             \
21857    "add r23, r0 \n\t"             \
21858    "adc r28, r1 \n\t"             \
21859    "adc r29, r25 \n\t"            \
21860    "mul r12, r21 \n\t"            \
21861    "add r23, r0 \n\t"             \
21862    "adc r28, r1 \n\t"             \
21863    "adc r29, r25 \n\t"            \
21864    "mul r13, r20 \n\t"            \
21865    "add r23, r0 \n\t"             \
21866    "adc r28, r1 \n\t"             \
21867    "adc r29, r25 \n\t"            \
21868    "mul r14, r19 \n\t"            \
21869    "add r23, r0 \n\t"             \
21870    "adc r28, r1 \n\t"             \
21871    "adc r29, r25 \n\t"            \
21872    "mul r15, r18 \n\t"            \
21873    "add r23, r0 \n\t"             \
21874    "adc r28, r1 \n\t"             \
21875    "adc r29, r25 \n\t"            \
21876    "mul r16, r17 \n\t"            \
21877    "add r23, r0 \n\t"             \
21878    "adc r28, r1 \n\t"             \
21879    "adc r29, r25 \n\t"            \
21880    "ld r0, z \n\t"                \
21881    "add r23, r0 \n\t"             \
21882    "adc r28, r25 \n\t"            \
21883    "adc r29, r25 \n\t"            \
21884    "lsl r23 \n\t"                 \
21885    "rol r28 \n\t"                 \
21886    "rol r29 \n\t"                 \
21887    "add r23, r24 \n\t"            \
21888    "adc r28, r22 \n\t"            \
21889    "adc r29, r25 \n\t"            \
21890    "st z+, r23 \n\t"              \
21891                                   \
21892    "ld r7, x+ \n\t"               \
21893    "ldi r22, 0 \n\t"              \
21894    "mul r8, r6 \n\t"              \
21895    "mov r23, r0 \n\t"             \
21896    "mov r24, r1 \n\t"             \
21897    "mul r9, r5 \n\t"              \
21898    "add r23, r0 \n\t"             \
21899    "adc r24, r1 \n\t"             \
21900    "adc r22, r25 \n\t"            \
21901    "mul r10, r4 \n\t"             \
21902    "add r23, r0 \n\t"             \
21903    "adc r24, r1 \n\t"             \
21904    "adc r22, r25 \n\t"            \
21905    "mul r11, r3 \n\t"             \
21906    "add r23, r0 \n\t"             \
21907    "adc r24, r1 \n\t"             \
21908    "adc r22, r25 \n\t"            \
21909    "mul r12, r2 \n\t"             \
21910    "add r23, r0 \n\t"             \
21911    "adc r24, r1 \n\t"             \
21912    "adc r22, r25 \n\t"            \
21913    "mul r13, r21 \n\t"            \
21914    "add r23, r0 \n\t"             \
21915    "adc r24, r1 \n\t"             \
21916    "adc r22, r25 \n\t"            \
21917    "mul r14, r20 \n\t"            \
21918    "add r23, r0 \n\t"             \
21919    "adc r24, r1 \n\t"             \
21920    "adc r22, r25 \n\t"            \
21921    "mul r15, r19 \n\t"            \
21922    "add r23, r0 \n\t"             \
21923    "adc r24, r1 \n\t"             \
21924    "adc r22, r25 \n\t"            \
21925    "mul r16, r18 \n\t"            \
21926    "add r23, r0 \n\t"             \
21927    "adc r24, r1 \n\t"             \
21928    "adc r22, r25 \n\t"            \
21929    "ld r0, z \n\t"                \
21930    "add r23, r0 \n\t"             \
21931    "adc r24, r25 \n\t"            \
21932    "adc r22, r25 \n\t"            \
21933    "lsl r23 \n\t"                 \
21934    "rol r24 \n\t"                 \
21935    "rol r22 \n\t"                 \
21936    "mul r17, r17 \n\t"            \
21937    "add r23, r0 \n\t"             \
21938    "adc r24, r1 \n\t"             \
21939    "adc r22, r25 \n\t"            \
21940    "add r23, r28 \n\t"            \
21941    "adc r24, r29 \n\t"            \
21942    "adc r22, r25 \n\t"            \
21943    "st z+, r23 \n\t"              \
21944                                   \
21945    "ldi r29, 0 \n\t"              \
21946    "mul r8, r7 \n\t"              \
21947    "mov r23, r0 \n\t"             \
21948    "mov r28, r1 \n\t"             \
21949    "mul r9, r6 \n\t"              \
21950    "add r23, r0 \n\t"             \
21951    "adc r28, r1 \n\t"             \
21952    "adc r29, r25 \n\t"            \
21953    "mul r10, r5 \n\t"             \
21954    "add r23, r0 \n\t"             \
21955    "adc r28, r1 \n\t"             \
21956    "adc r29, r25 \n\t"            \
21957    "mul r11, r4 \n\t"             \
21958    "add r23, r0 \n\t"             \
21959    "adc r28, r1 \n\t"             \
21960    "adc r29, r25 \n\t"            \
21961    "mul r12, r3 \n\t"             \
21962    "add r23, r0 \n\t"             \
21963    "adc r28, r1 \n\t"             \
21964    "adc r29, r25 \n\t"            \
21965    "mul r13, r2 \n\t"             \
21966    "add r23, r0 \n\t"             \
21967    "adc r28, r1 \n\t"             \
21968    "adc r29, r25 \n\t"            \
21969    "mul r14, r21 \n\t"            \
21970    "add r23, r0 \n\t"             \
21971    "adc r28, r1 \n\t"             \
21972    "adc r29, r25 \n\t"            \
21973    "mul r15, r20 \n\t"            \
21974    "add r23, r0 \n\t"             \
21975    "adc r28, r1 \n\t"             \
21976    "adc r29, r25 \n\t"            \
21977    "mul r16, r19 \n\t"            \
21978    "add r23, r0 \n\t"             \
21979    "adc r28, r1 \n\t"             \
21980    "adc r29, r25 \n\t"            \
21981    "mul r17, r18 \n\t"            \
21982    "add r23, r0 \n\t"             \
21983    "adc r28, r1 \n\t"             \
21984    "adc r29, r25 \n\t"            \
21985    "ld r0, z \n\t"                \
21986    "add r23, r0 \n\t"             \
21987    "adc r28, r25 \n\t"            \
21988    "adc r29, r25 \n\t"            \
21989    "lsl r23 \n\t"                 \
21990    "rol r28 \n\t"                 \
21991    "rol r29 \n\t"                 \
21992    "add r23, r24 \n\t"            \
21993    "adc r28, r22 \n\t"            \
21994    "adc r29, r25 \n\t"            \
21995    "st z+, r23 \n\t"              \
21996                                   \
21997    "ld r8, x+ \n\t"               \
21998    "ldi r22, 0 \n\t"              \
21999    "mul r9, r7 \n\t"              \
22000    "mov r23, r0 \n\t"             \
22001    "mov r24, r1 \n\t"             \
22002    "mul r10, r6 \n\t"             \
22003    "add r23, r0 \n\t"             \
22004    "adc r24, r1 \n\t"             \
22005    "adc r22, r25 \n\t"            \
22006    "mul r11, r5 \n\t"             \
22007    "add r23, r0 \n\t"             \
22008    "adc r24, r1 \n\t"             \
22009    "adc r22, r25 \n\t"            \
22010    "mul r12, r4 \n\t"             \
22011    "add r23, r0 \n\t"             \
22012    "adc r24, r1 \n\t"             \
22013    "adc r22, r25 \n\t"            \
22014    "mul r13, r3 \n\t"             \
22015    "add r23, r0 \n\t"             \
22016    "adc r24, r1 \n\t"             \
22017    "adc r22, r25 \n\t"            \
22018    "mul r14, r2 \n\t"             \
22019    "add r23, r0 \n\t"             \
22020    "adc r24, r1 \n\t"             \
22021    "adc r22, r25 \n\t"            \
22022    "mul r15, r21 \n\t"            \
22023    "add r23, r0 \n\t"             \
22024    "adc r24, r1 \n\t"             \
22025    "adc r22, r25 \n\t"            \
22026    "mul r16, r20 \n\t"            \
22027    "add r23, r0 \n\t"             \
22028    "adc r24, r1 \n\t"             \
22029    "adc r22, r25 \n\t"            \
22030    "mul r17, r19 \n\t"            \
22031    "add r23, r0 \n\t"             \
22032    "adc r24, r1 \n\t"             \
22033    "adc r22, r25 \n\t"            \
22034    "ld r0, z \n\t"                \
22035    "add r23, r0 \n\t"             \
22036    "adc r24, r25 \n\t"            \
22037    "adc r22, r25 \n\t"            \
22038    "lsl r23 \n\t"                 \
22039    "rol r24 \n\t"                 \
22040    "rol r22 \n\t"                 \
22041    "mul r18, r18 \n\t"            \
22042    "add r23, r0 \n\t"             \
22043    "adc r24, r1 \n\t"             \
22044    "adc r22, r25 \n\t"            \
22045    "add r23, r28 \n\t"            \
22046    "adc r24, r29 \n\t"            \
22047    "adc r22, r25 \n\t"            \
22048    "st z+, r23 \n\t"              \
22049                                   \
22050    "ldi r29, 0 \n\t"              \
22051    "mul r9, r8 \n\t"              \
22052    "mov r23, r0 \n\t"             \
22053    "mov r28, r1 \n\t"             \
22054    "mul r10, r7 \n\t"             \
22055    "add r23, r0 \n\t"             \
22056    "adc r28, r1 \n\t"             \
22057    "adc r29, r25 \n\t"            \
22058    "mul r11, r6 \n\t"             \
22059    "add r23, r0 \n\t"             \
22060    "adc r28, r1 \n\t"             \
22061    "adc r29, r25 \n\t"            \
22062    "mul r12, r5 \n\t"             \
22063    "add r23, r0 \n\t"             \
22064    "adc r28, r1 \n\t"             \
22065    "adc r29, r25 \n\t"            \
22066    "mul r13, r4 \n\t"             \
22067    "add r23, r0 \n\t"             \
22068    "adc r28, r1 \n\t"             \
22069    "adc r29, r25 \n\t"            \
22070    "mul r14, r3 \n\t"             \
22071    "add r23, r0 \n\t"             \
22072    "adc r28, r1 \n\t"             \
22073    "adc r29, r25 \n\t"            \
22074    "mul r15, r2 \n\t"             \
22075    "add r23, r0 \n\t"             \
22076    "adc r28, r1 \n\t"             \
22077    "adc r29, r25 \n\t"            \
22078    "mul r16, r21 \n\t"            \
22079    "add r23, r0 \n\t"             \
22080    "adc r28, r1 \n\t"             \
22081    "adc r29, r25 \n\t"            \
22082    "mul r17, r20 \n\t"            \
22083    "add r23, r0 \n\t"             \
22084    "adc r28, r1 \n\t"             \
22085    "adc r29, r25 \n\t"            \
22086    "mul r18, r19 \n\t"            \
22087    "add r23, r0 \n\t"             \
22088    "adc r28, r1 \n\t"             \
22089    "adc r29, r25 \n\t"            \
22090    "ld r0, z \n\t"                \
22091    "add r23, r0 \n\t"             \
22092    "adc r28, r25 \n\t"            \
22093    "adc r29, r25 \n\t"            \
22094    "lsl r23 \n\t"                 \
22095    "rol r28 \n\t"                 \
22096    "rol r29 \n\t"                 \
22097    "add r23, r24 \n\t"            \
22098    "adc r28, r22 \n\t"            \
22099    "adc r29, r25 \n\t"            \
22100    "st z+, r23 \n\t"              \
22101                                   \
22102    "ld r9, x+ \n\t"               \
22103    "ldi r22, 0 \n\t"              \
22104    "mul r10, r8 \n\t"             \
22105    "mov r23, r0 \n\t"             \
22106    "mov r24, r1 \n\t"             \
22107    "mul r11, r7 \n\t"             \
22108    "add r23, r0 \n\t"             \
22109    "adc r24, r1 \n\t"             \
22110    "adc r22, r25 \n\t"            \
22111    "mul r12, r6 \n\t"             \
22112    "add r23, r0 \n\t"             \
22113    "adc r24, r1 \n\t"             \
22114    "adc r22, r25 \n\t"            \
22115    "mul r13, r5 \n\t"             \
22116    "add r23, r0 \n\t"             \
22117    "adc r24, r1 \n\t"             \
22118    "adc r22, r25 \n\t"            \
22119    "mul r14, r4 \n\t"             \
22120    "add r23, r0 \n\t"             \
22121    "adc r24, r1 \n\t"             \
22122    "adc r22, r25 \n\t"            \
22123    "mul r15, r3 \n\t"             \
22124    "add r23, r0 \n\t"             \
22125    "adc r24, r1 \n\t"             \
22126    "adc r22, r25 \n\t"            \
22127    "mul r16, r2 \n\t"             \
22128    "add r23, r0 \n\t"             \
22129    "adc r24, r1 \n\t"             \
22130    "adc r22, r25 \n\t"            \
22131    "mul r17, r21 \n\t"            \
22132    "add r23, r0 \n\t"             \
22133    "adc r24, r1 \n\t"             \
22134    "adc r22, r25 \n\t"            \
22135    "mul r18, r20 \n\t"            \
22136    "add r23, r0 \n\t"             \
22137    "adc r24, r1 \n\t"             \
22138    "adc r22, r25 \n\t"            \
22139    "ld r0, z \n\t"                \
22140    "add r23, r0 \n\t"             \
22141    "adc r24, r25 \n\t"            \
22142    "adc r22, r25 \n\t"            \
22143    "lsl r23 \n\t"                 \
22144    "rol r24 \n\t"                 \
22145    "rol r22 \n\t"                 \
22146    "mul r19, r19 \n\t"            \
22147    "add r23, r0 \n\t"             \
22148    "adc r24, r1 \n\t"             \
22149    "adc r22, r25 \n\t"            \
22150    "add r23, r28 \n\t"            \
22151    "adc r24, r29 \n\t"            \
22152    "adc r22, r25 \n\t"            \
22153    "st z+, r23 \n\t"              \
22154                                   \
22155    "ldi r29, 0 \n\t"              \
22156    "mul r10, r9 \n\t"             \
22157    "mov r23, r0 \n\t"             \
22158    "mov r28, r1 \n\t"             \
22159    "mul r11, r8 \n\t"             \
22160    "add r23, r0 \n\t"             \
22161    "adc r28, r1 \n\t"             \
22162    "adc r29, r25 \n\t"            \
22163    "mul r12, r7 \n\t"             \
22164    "add r23, r0 \n\t"             \
22165    "adc r28, r1 \n\t"             \
22166    "adc r29, r25 \n\t"            \
22167    "mul r13, r6 \n\t"             \
22168    "add r23, r0 \n\t"             \
22169    "adc r28, r1 \n\t"             \
22170    "adc r29, r25 \n\t"            \
22171    "mul r14, r5 \n\t"             \
22172    "add r23, r0 \n\t"             \
22173    "adc r28, r1 \n\t"             \
22174    "adc r29, r25 \n\t"            \
22175    "mul r15, r4 \n\t"             \
22176    "add r23, r0 \n\t"             \
22177    "adc r28, r1 \n\t"             \
22178    "adc r29, r25 \n\t"            \
22179    "mul r16, r3 \n\t"             \
22180    "add r23, r0 \n\t"             \
22181    "adc r28, r1 \n\t"             \
22182    "adc r29, r25 \n\t"            \
22183    "mul r17, r2 \n\t"             \
22184    "add r23, r0 \n\t"             \
22185    "adc r28, r1 \n\t"             \
22186    "adc r29, r25 \n\t"            \
22187    "mul r18, r21 \n\t"            \
22188    "add r23, r0 \n\t"             \
22189    "adc r28, r1 \n\t"             \
22190    "adc r29, r25 \n\t"            \
22191    "mul r19, r20 \n\t"            \
22192    "add r23, r0 \n\t"             \
22193    "adc r28, r1 \n\t"             \
22194    "adc r29, r25 \n\t"            \
22195    "ld r0, z \n\t"                \
22196    "add r23, r0 \n\t"             \
22197    "adc r28, r25 \n\t"            \
22198    "adc r29, r25 \n\t"            \
22199    "lsl r23 \n\t"                 \
22200    "rol r28 \n\t"                 \
22201    "rol r29 \n\t"                 \
22202    "add r23, r24 \n\t"            \
22203    "adc r28, r22 \n\t"            \
22204    "adc r29, r25 \n\t"            \
22205    "st z+, r23 \n\t"              \
22206                                   \
22207    "ldi r22, 0 \n\t"              \
22208    "mul r11, r9 \n\t"             \
22209    "mov r23, r0 \n\t"             \
22210    "mov r24, r1 \n\t"             \
22211    "mul r12, r8 \n\t"             \
22212    "add r23, r0 \n\t"             \
22213    "adc r24, r1 \n\t"             \
22214    "adc r22, r25 \n\t"            \
22215    "mul r13, r7 \n\t"             \
22216    "add r23, r0 \n\t"             \
22217    "adc r24, r1 \n\t"             \
22218    "adc r22, r25 \n\t"            \
22219    "mul r14, r6 \n\t"             \
22220    "add r23, r0 \n\t"             \
22221    "adc r24, r1 \n\t"             \
22222    "adc r22, r25 \n\t"            \
22223    "mul r15, r5 \n\t"             \
22224    "add r23, r0 \n\t"             \
22225    "adc r24, r1 \n\t"             \
22226    "adc r22, r25 \n\t"            \
22227    "mul r16, r4 \n\t"             \
22228    "add r23, r0 \n\t"             \
22229    "adc r24, r1 \n\t"             \
22230    "adc r22, r25 \n\t"            \
22231    "mul r17, r3 \n\t"             \
22232    "add r23, r0 \n\t"             \
22233    "adc r24, r1 \n\t"             \
22234    "adc r22, r25 \n\t"            \
22235    "mul r18, r2 \n\t"             \
22236    "add r23, r0 \n\t"             \
22237    "adc r24, r1 \n\t"             \
22238    "adc r22, r25 \n\t"            \
22239    "mul r19, r21 \n\t"            \
22240    "add r23, r0 \n\t"             \
22241    "adc r24, r1 \n\t"             \
22242    "adc r22, r25 \n\t"            \
22243    "lsl r23 \n\t"                 \
22244    "rol r24 \n\t"                 \
22245    "rol r22 \n\t"                 \
22246    "mul r20, r20 \n\t"            \
22247    "add r23, r0 \n\t"             \
22248    "adc r24, r1 \n\t"             \
22249    "adc r22, r25 \n\t"            \
22250    "add r23, r28 \n\t"            \
22251    "adc r24, r29 \n\t"            \
22252    "adc r22, r25 \n\t"            \
22253    "st z+, r23 \n\t"              \
22254                                   \
22255    "ldi r29, 0 \n\t"              \
22256    "mul r12, r9 \n\t"             \
22257    "mov r23, r0 \n\t"             \
22258    "mov r28, r1 \n\t"             \
22259    "mul r13, r8 \n\t"             \
22260    "add r23, r0 \n\t"             \
22261    "adc r28, r1 \n\t"             \
22262    "adc r29, r25 \n\t"            \
22263    "mul r14, r7 \n\t"             \
22264    "add r23, r0 \n\t"             \
22265    "adc r28, r1 \n\t"             \
22266    "adc r29, r25 \n\t"            \
22267    "mul r15, r6 \n\t"             \
22268    "add r23, r0 \n\t"             \
22269    "adc r28, r1 \n\t"             \
22270    "adc r29, r25 \n\t"            \
22271    "mul r16, r5 \n\t"             \
22272    "add r23, r0 \n\t"             \
22273    "adc r28, r1 \n\t"             \
22274    "adc r29, r25 \n\t"            \
22275    "mul r17, r4 \n\t"             \
22276    "add r23, r0 \n\t"             \
22277    "adc r28, r1 \n\t"             \
22278    "adc r29, r25 \n\t"            \
22279    "mul r18, r3 \n\t"             \
22280    "add r23, r0 \n\t"             \
22281    "adc r28, r1 \n\t"             \
22282    "adc r29, r25 \n\t"            \
22283    "mul r19, r2 \n\t"             \
22284    "add r23, r0 \n\t"             \
22285    "adc r28, r1 \n\t"             \
22286    "adc r29, r25 \n\t"            \
22287    "mul r20, r21 \n\t"            \
22288    "add r23, r0 \n\t"             \
22289    "adc r28, r1 \n\t"             \
22290    "adc r29, r25 \n\t"            \
22291    "lsl r23 \n\t"                 \
22292    "rol r28 \n\t"                 \
22293    "rol r29 \n\t"                 \
22294    "add r23, r24 \n\t"            \
22295    "adc r28, r22 \n\t"            \
22296    "adc r29, r25 \n\t"            \
22297    "st z+, r23 \n\t"              \
22298                                   \
22299    "ldi r22, 0 \n\t"              \
22300    "mul r13, r9 \n\t"             \
22301    "mov r23, r0 \n\t"             \
22302    "mov r24, r1 \n\t"             \
22303    "mul r14, r8 \n\t"             \
22304    "add r23, r0 \n\t"             \
22305    "adc r24, r1 \n\t"             \
22306    "adc r22, r25 \n\t"            \
22307    "mul r15, r7 \n\t"             \
22308    "add r23, r0 \n\t"             \
22309    "adc r24, r1 \n\t"             \
22310    "adc r22, r25 \n\t"            \
22311    "mul r16, r6 \n\t"             \
22312    "add r23, r0 \n\t"             \
22313    "adc r24, r1 \n\t"             \
22314    "adc r22, r25 \n\t"            \
22315    "mul r17, r5 \n\t"             \
22316    "add r23, r0 \n\t"             \
22317    "adc r24, r1 \n\t"             \
22318    "adc r22, r25 \n\t"            \
22319    "mul r18, r4 \n\t"             \
22320    "add r23, r0 \n\t"             \
22321    "adc r24, r1 \n\t"             \
22322    "adc r22, r25 \n\t"            \
22323    "mul r19, r3 \n\t"             \
22324    "add r23, r0 \n\t"             \
22325    "adc r24, r1 \n\t"             \
22326    "adc r22, r25 \n\t"            \
22327    "mul r20, r2 \n\t"             \
22328    "add r23, r0 \n\t"             \
22329    "adc r24, r1 \n\t"             \
22330    "adc r22, r25 \n\t"            \
22331    "lsl r23 \n\t"                 \
22332    "rol r24 \n\t"                 \
22333    "rol r22 \n\t"                 \
22334    "mul r21, r21 \n\t"            \
22335    "add r23, r0 \n\t"             \
22336    "adc r24, r1 \n\t"             \
22337    "adc r22, r25 \n\t"            \
22338    "add r23, r28 \n\t"            \
22339    "adc r24, r29 \n\t"            \
22340    "adc r22, r25 \n\t"            \
22341    "st z+, r23 \n\t"              \
22342                                   \
22343    "ldi r29, 0 \n\t"              \
22344    "mul r14, r9 \n\t"             \
22345    "mov r23, r0 \n\t"             \
22346    "mov r28, r1 \n\t"             \
22347    "mul r15, r8 \n\t"             \
22348    "add r23, r0 \n\t"             \
22349    "adc r28, r1 \n\t"             \
22350    "adc r29, r25 \n\t"            \
22351    "mul r16, r7 \n\t"             \
22352    "add r23, r0 \n\t"             \
22353    "adc r28, r1 \n\t"             \
22354    "adc r29, r25 \n\t"            \
22355    "mul r17, r6 \n\t"             \
22356    "add r23, r0 \n\t"             \
22357    "adc r28, r1 \n\t"             \
22358    "adc r29, r25 \n\t"            \
22359    "mul r18, r5 \n\t"             \
22360    "add r23, r0 \n\t"             \
22361    "adc r28, r1 \n\t"             \
22362    "adc r29, r25 \n\t"            \
22363    "mul r19, r4 \n\t"             \
22364    "add r23, r0 \n\t"             \
22365    "adc r28, r1 \n\t"             \
22366    "adc r29, r25 \n\t"            \
22367    "mul r20, r3 \n\t"             \
22368    "add r23, r0 \n\t"             \
22369    "adc r28, r1 \n\t"             \
22370    "adc r29, r25 \n\t"            \
22371    "mul r21, r2 \n\t"             \
22372    "add r23, r0 \n\t"             \
22373    "adc r28, r1 \n\t"             \
22374    "adc r29, r25 \n\t"            \
22375    "lsl r23 \n\t"                 \
22376    "rol r28 \n\t"                 \
22377    "rol r29 \n\t"                 \
22378    "add r23, r24 \n\t"            \
22379    "adc r28, r22 \n\t"            \
22380    "adc r29, r25 \n\t"            \
22381    "st z+, r23 \n\t"              \
22382                                   \
22383    "ldi r22, 0 \n\t"              \
22384    "mul r15, r9 \n\t"             \
22385    "mov r23, r0 \n\t"             \
22386    "mov r24, r1 \n\t"             \
22387    "mul r16, r8 \n\t"             \
22388    "add r23, r0 \n\t"             \
22389    "adc r24, r1 \n\t"             \
22390    "adc r22, r25 \n\t"            \
22391    "mul r17, r7 \n\t"             \
22392    "add r23, r0 \n\t"             \
22393    "adc r24, r1 \n\t"             \
22394    "adc r22, r25 \n\t"            \
22395    "mul r18, r6 \n\t"             \
22396    "add r23, r0 \n\t"             \
22397    "adc r24, r1 \n\t"             \
22398    "adc r22, r25 \n\t"            \
22399    "mul r19, r5 \n\t"             \
22400    "add r23, r0 \n\t"             \
22401    "adc r24, r1 \n\t"             \
22402    "adc r22, r25 \n\t"            \
22403    "mul r20, r4 \n\t"             \
22404    "add r23, r0 \n\t"             \
22405    "adc r24, r1 \n\t"             \
22406    "adc r22, r25 \n\t"            \
22407    "mul r21, r3 \n\t"             \
22408    "add r23, r0 \n\t"             \
22409    "adc r24, r1 \n\t"             \
22410    "adc r22, r25 \n\t"            \
22411    "lsl r23 \n\t"                 \
22412    "rol r24 \n\t"                 \
22413    "rol r22 \n\t"                 \
22414    "mul r2, r2 \n\t"              \
22415    "add r23, r0 \n\t"             \
22416    "adc r24, r1 \n\t"             \
22417    "adc r22, r25 \n\t"            \
22418    "add r23, r28 \n\t"            \
22419    "adc r24, r29 \n\t"            \
22420    "adc r22, r25 \n\t"            \
22421    "st z+, r23 \n\t"              \
22422                                   \
22423    "ldi r29, 0 \n\t"              \
22424    "mul r16, r9 \n\t"             \
22425    "mov r23, r0 \n\t"             \
22426    "mov r28, r1 \n\t"             \
22427    "mul r17, r8 \n\t"             \
22428    "add r23, r0 \n\t"             \
22429    "adc r28, r1 \n\t"             \
22430    "adc r29, r25 \n\t"            \
22431    "mul r18, r7 \n\t"             \
22432    "add r23, r0 \n\t"             \
22433    "adc r28, r1 \n\t"             \
22434    "adc r29, r25 \n\t"            \
22435    "mul r19, r6 \n\t"             \
22436    "add r23, r0 \n\t"             \
22437    "adc r28, r1 \n\t"             \
22438    "adc r29, r25 \n\t"            \
22439    "mul r20, r5 \n\t"             \
22440    "add r23, r0 \n\t"             \
22441    "adc r28, r1 \n\t"             \
22442    "adc r29, r25 \n\t"            \
22443    "mul r21, r4 \n\t"             \
22444    "add r23, r0 \n\t"             \
22445    "adc r28, r1 \n\t"             \
22446    "adc r29, r25 \n\t"            \
22447    "mul r2, r3 \n\t"              \
22448    "add r23, r0 \n\t"             \
22449    "adc r28, r1 \n\t"             \
22450    "adc r29, r25 \n\t"            \
22451    "lsl r23 \n\t"                 \
22452    "rol r28 \n\t"                 \
22453    "rol r29 \n\t"                 \
22454    "add r23, r24 \n\t"            \
22455    "adc r28, r22 \n\t"            \
22456    "adc r29, r25 \n\t"            \
22457    "st z+, r23 \n\t"              \
22458                                   \
22459    "ldi r22, 0 \n\t"              \
22460    "mul r17, r9 \n\t"             \
22461    "mov r23, r0 \n\t"             \
22462    "mov r24, r1 \n\t"             \
22463    "mul r18, r8 \n\t"             \
22464    "add r23, r0 \n\t"             \
22465    "adc r24, r1 \n\t"             \
22466    "adc r22, r25 \n\t"            \
22467    "mul r19, r7 \n\t"             \
22468    "add r23, r0 \n\t"             \
22469    "adc r24, r1 \n\t"             \
22470    "adc r22, r25 \n\t"            \
22471    "mul r20, r6 \n\t"             \
22472    "add r23, r0 \n\t"             \
22473    "adc r24, r1 \n\t"             \
22474    "adc r22, r25 \n\t"            \
22475    "mul r21, r5 \n\t"             \
22476    "add r23, r0 \n\t"             \
22477    "adc r24, r1 \n\t"             \
22478    "adc r22, r25 \n\t"            \
22479    "mul r2, r4 \n\t"              \
22480    "add r23, r0 \n\t"             \
22481    "adc r24, r1 \n\t"             \
22482    "adc r22, r25 \n\t"            \
22483    "lsl r23 \n\t"                 \
22484    "rol r24 \n\t"                 \
22485    "rol r22 \n\t"                 \
22486    "mul r3, r3 \n\t"              \
22487    "add r23, r0 \n\t"             \
22488    "adc r24, r1 \n\t"             \
22489    "adc r22, r25 \n\t"            \
22490    "add r23, r28 \n\t"            \
22491    "adc r24, r29 \n\t"            \
22492    "adc r22, r25 \n\t"            \
22493    "st z+, r23 \n\t"              \
22494                                   \
22495    "ldi r29, 0 \n\t"              \
22496    "mul r18, r9 \n\t"             \
22497    "mov r23, r0 \n\t"             \
22498    "mov r28, r1 \n\t"             \
22499    "mul r19, r8 \n\t"             \
22500    "add r23, r0 \n\t"             \
22501    "adc r28, r1 \n\t"             \
22502    "adc r29, r25 \n\t"            \
22503    "mul r20, r7 \n\t"             \
22504    "add r23, r0 \n\t"             \
22505    "adc r28, r1 \n\t"             \
22506    "adc r29, r25 \n\t"            \
22507    "mul r21, r6 \n\t"             \
22508    "add r23, r0 \n\t"             \
22509    "adc r28, r1 \n\t"             \
22510    "adc r29, r25 \n\t"            \
22511    "mul r2, r5 \n\t"              \
22512    "add r23, r0 \n\t"             \
22513    "adc r28, r1 \n\t"             \
22514    "adc r29, r25 \n\t"            \
22515    "mul r3, r4 \n\t"              \
22516    "add r23, r0 \n\t"             \
22517    "adc r28, r1 \n\t"             \
22518    "adc r29, r25 \n\t"            \
22519    "lsl r23 \n\t"                 \
22520    "rol r28 \n\t"                 \
22521    "rol r29 \n\t"                 \
22522    "add r23, r24 \n\t"            \
22523    "adc r28, r22 \n\t"            \
22524    "adc r29, r25 \n\t"            \
22525    "st z+, r23 \n\t"              \
22526                                   \
22527    "ldi r22, 0 \n\t"              \
22528    "mul r19, r9 \n\t"             \
22529    "mov r23, r0 \n\t"             \
22530    "mov r24, r1 \n\t"             \
22531    "mul r20, r8 \n\t"             \
22532    "add r23, r0 \n\t"             \
22533    "adc r24, r1 \n\t"             \
22534    "adc r22, r25 \n\t"            \
22535    "mul r21, r7 \n\t"             \
22536    "add r23, r0 \n\t"             \
22537    "adc r24, r1 \n\t"             \
22538    "adc r22, r25 \n\t"            \
22539    "mul r2, r6 \n\t"              \
22540    "add r23, r0 \n\t"             \
22541    "adc r24, r1 \n\t"             \
22542    "adc r22, r25 \n\t"            \
22543    "mul r3, r5 \n\t"              \
22544    "add r23, r0 \n\t"             \
22545    "adc r24, r1 \n\t"             \
22546    "adc r22, r25 \n\t"            \
22547    "lsl r23 \n\t"                 \
22548    "rol r24 \n\t"                 \
22549    "rol r22 \n\t"                 \
22550    "mul r4, r4 \n\t"              \
22551    "add r23, r0 \n\t"             \
22552    "adc r24, r1 \n\t"             \
22553    "adc r22, r25 \n\t"            \
22554    "add r23, r28 \n\t"            \
22555    "adc r24, r29 \n\t"            \
22556    "adc r22, r25 \n\t"            \
22557    "st z+, r23 \n\t"              \
22558                                   \
22559    "ldi r29, 0 \n\t"              \
22560    "mul r20, r9 \n\t"             \
22561    "mov r23, r0 \n\t"             \
22562    "mov r28, r1 \n\t"             \
22563    "mul r21, r8 \n\t"             \
22564    "add r23, r0 \n\t"             \
22565    "adc r28, r1 \n\t"             \
22566    "adc r29, r25 \n\t"            \
22567    "mul r2, r7 \n\t"              \
22568    "add r23, r0 \n\t"             \
22569    "adc r28, r1 \n\t"             \
22570    "adc r29, r25 \n\t"            \
22571    "mul r3, r6 \n\t"              \
22572    "add r23, r0 \n\t"             \
22573    "adc r28, r1 \n\t"             \
22574    "adc r29, r25 \n\t"            \
22575    "mul r4, r5 \n\t"              \
22576    "add r23, r0 \n\t"             \
22577    "adc r28, r1 \n\t"             \
22578    "adc r29, r25 \n\t"            \
22579    "lsl r23 \n\t"                 \
22580    "rol r28 \n\t"                 \
22581    "rol r29 \n\t"                 \
22582    "add r23, r24 \n\t"            \
22583    "adc r28, r22 \n\t"            \
22584    "adc r29, r25 \n\t"            \
22585    "st z+, r23 \n\t"              \
22586                                   \
22587    "ldi r22, 0 \n\t"              \
22588    "mul r21, r9 \n\t"             \
22589    "mov r23, r0 \n\t"             \
22590    "mov r24, r1 \n\t"             \
22591    "mul r2, r8 \n\t"              \
22592    "add r23, r0 \n\t"             \
22593    "adc r24, r1 \n\t"             \
22594    "adc r22, r25 \n\t"            \
22595    "mul r3, r7 \n\t"              \
22596    "add r23, r0 \n\t"             \
22597    "adc r24, r1 \n\t"             \
22598    "adc r22, r25 \n\t"            \
22599    "mul r4, r6 \n\t"              \
22600    "add r23, r0 \n\t"             \
22601    "adc r24, r1 \n\t"             \
22602    "adc r22, r25 \n\t"            \
22603    "lsl r23 \n\t"                 \
22604    "rol r24 \n\t"                 \
22605    "rol r22 \n\t"                 \
22606    "mul r5, r5 \n\t"              \
22607    "add r23, r0 \n\t"             \
22608    "adc r24, r1 \n\t"             \
22609    "adc r22, r25 \n\t"            \
22610    "add r23, r28 \n\t"            \
22611    "adc r24, r29 \n\t"            \
22612    "adc r22, r25 \n\t"            \
22613    "st z+, r23 \n\t"              \
22614                                   \
22615    "ldi r29, 0 \n\t"              \
22616    "mul r2, r9 \n\t"              \
22617    "mov r23, r0 \n\t"             \
22618    "mov r28, r1 \n\t"             \
22619    "mul r3, r8 \n\t"              \
22620    "add r23, r0 \n\t"             \
22621    "adc r28, r1 \n\t"             \
22622    "adc r29, r25 \n\t"            \
22623    "mul r4, r7 \n\t"              \
22624    "add r23, r0 \n\t"             \
22625    "adc r28, r1 \n\t"             \
22626    "adc r29, r25 \n\t"            \
22627    "mul r5, r6 \n\t"              \
22628    "add r23, r0 \n\t"             \
22629    "adc r28, r1 \n\t"             \
22630    "adc r29, r25 \n\t"            \
22631    "lsl r23 \n\t"                 \
22632    "rol r28 \n\t"                 \
22633    "rol r29 \n\t"                 \
22634    "add r23, r24 \n\t"            \
22635    "adc r28, r22 \n\t"            \
22636    "adc r29, r25 \n\t"            \
22637    "st z+, r23 \n\t"              \
22638                                   \
22639    "ldi r22, 0 \n\t"              \
22640    "mul r3, r9 \n\t"              \
22641    "mov r23, r0 \n\t"             \
22642    "mov r24, r1 \n\t"             \
22643    "mul r4, r8 \n\t"              \
22644    "add r23, r0 \n\t"             \
22645    "adc r24, r1 \n\t"             \
22646    "adc r22, r25 \n\t"            \
22647    "mul r5, r7 \n\t"              \
22648    "add r23, r0 \n\t"             \
22649    "adc r24, r1 \n\t"             \
22650    "adc r22, r25 \n\t"            \
22651    "lsl r23 \n\t"                 \
22652    "rol r24 \n\t"                 \
22653    "rol r22 \n\t"                 \
22654    "mul r6, r6 \n\t"              \
22655    "add r23, r0 \n\t"             \
22656    "adc r24, r1 \n\t"             \
22657    "adc r22, r25 \n\t"            \
22658    "add r23, r28 \n\t"            \
22659    "adc r24, r29 \n\t"            \
22660    "adc r22, r25 \n\t"            \
22661    "st z+, r23 \n\t"              \
22662                                   \
22663    "ldi r29, 0 \n\t"              \
22664    "mul r4, r9 \n\t"              \
22665    "mov r23, r0 \n\t"             \
22666    "mov r28, r1 \n\t"             \
22667    "mul r5, r8 \n\t"              \
22668    "add r23, r0 \n\t"             \
22669    "adc r28, r1 \n\t"             \
22670    "adc r29, r25 \n\t"            \
22671    "mul r6, r7 \n\t"              \
22672    "add r23, r0 \n\t"             \
22673    "adc r28, r1 \n\t"             \
22674    "adc r29, r25 \n\t"            \
22675    "lsl r23 \n\t"                 \
22676    "rol r28 \n\t"                 \
22677    "rol r29 \n\t"                 \
22678    "add r23, r24 \n\t"            \
22679    "adc r28, r22 \n\t"            \
22680    "adc r29, r25 \n\t"            \
22681    "st z+, r23 \n\t"              \
22682                                   \
22683    "ldi r22, 0 \n\t"              \
22684    "mul r5, r9 \n\t"              \
22685    "mov r23, r0 \n\t"             \
22686    "mov r24, r1 \n\t"             \
22687    "mul r6, r8 \n\t"              \
22688    "add r23, r0 \n\t"             \
22689    "adc r24, r1 \n\t"             \
22690    "adc r22, r25 \n\t"            \
22691    "lsl r23 \n\t"                 \
22692    "rol r24 \n\t"                 \
22693    "rol r22 \n\t"                 \
22694    "mul r7, r7 \n\t"              \
22695    "add r23, r0 \n\t"             \
22696    "adc r24, r1 \n\t"             \
22697    "adc r22, r25 \n\t"            \
22698    "add r23, r28 \n\t"            \
22699    "adc r24, r29 \n\t"            \
22700    "adc r22, r25 \n\t"            \
22701    "st z+, r23 \n\t"              \
22702                                   \
22703    "ldi r29, 0 \n\t"              \
22704    "mul r6, r9 \n\t"              \
22705    "mov r23, r0 \n\t"             \
22706    "mov r28, r1 \n\t"             \
22707    "mul r7, r8 \n\t"              \
22708    "add r23, r0 \n\t"             \
22709    "adc r28, r1 \n\t"             \
22710    "adc r29, r25 \n\t"            \
22711    "lsl r23 \n\t"                 \
22712    "rol r28 \n\t"                 \
22713    "rol r29 \n\t"                 \
22714    "add r23, r24 \n\t"            \
22715    "adc r28, r22 \n\t"            \
22716    "adc r29, r25 \n\t"            \
22717    "st z+, r23 \n\t"              \
22718                                   \
22719    "ldi r23, 0 \n\t"              \
22720    "mul r7, r9 \n\t"              \
22721    "add r28, r0 \n\t"             \
22722    "adc r29, r1 \n\t"             \
22723    "adc r23, r25 \n\t"            \
22724    "add r28, r0 \n\t"             \
22725    "adc r29, r1 \n\t"             \
22726    "adc r23, r25 \n\t"            \
22727    "mul r8, r8 \n\t"              \
22728    "add r28, r0 \n\t"             \
22729    "adc r29, r1 \n\t"             \
22730    "adc r23, r25 \n\t"            \
22731    "st z+, r28 \n\t"              \
22732                                   \
22733    "ldi r28, 0 \n\t"              \
22734    "mul r8, r9 \n\t"              \
22735    "add r29, r0 \n\t"             \
22736    "adc r23, r1 \n\t"             \
22737    "adc r28, r25 \n\t"            \
22738    "add r29, r0 \n\t"             \
22739    "adc r23, r1 \n\t"             \
22740    "adc r28, r25 \n\t"            \
22741    "st z+, r29 \n\t"              \
22742                                   \
22743    "mul r9, r9 \n\t"              \
22744    "add r23, r0 \n\t"             \
22745    "adc r28, r1 \n\t"             \
22746    "st z+, r23 \n\t"              \
22747    "st z+, r28 \n\t"
22748
22749#define FAST_SQUARE_ASM_28_TO_32           \
22750    "cpi r20, 28 \n\t"                     \
22751    "brne 1f \n\t"                         \
22752    "jmp 2f \n\t"                          \
22753    "1: \n\t"                              \
22754    "ld r2, x+ \n\t"                       \
22755    "ld r3, x+ \n\t"                       \
22756    "ld r4, x+ \n\t"                       \
22757    "ld r5, x+ \n\t"                       \
22758    "sbiw r26, 32 \n\t"                    \
22759    "sbiw r30, 28 \n\t"                    \
22760    "ld r6, x+ \n\t"                       \
22761    "ld r7, x+ \n\t"                       \
22762    "ld r8, x+ \n\t"                       \
22763    "ld r9, x+ \n\t"                       \
22764                                           \
22765    "mul r2, r6 \n\t"                      \
22766    "mov r10, r0 \n\t"                     \
22767    "mov r11, r1 \n\t"                     \
22768    "mov r12, r25 \n\t"                    \
22769    "mov r13, r25 \n\t"                    \
22770    "mul r2, r7 \n\t"                      \
22771    "add r11, r0 \n\t"                     \
22772    "adc r12, r1 \n\t"                     \
22773    "adc r13, r25 \n\t"                    \
22774    "mul r3, r6 \n\t"                      \
22775    "add r11, r0 \n\t"                     \
22776    "adc r12, r1 \n\t"                     \
22777    "adc r13, r25 \n\t"                    \
22778                                           \
22779    "mov r14, r25 \n\t"                    \
22780    "mul r2, r8 \n\t"                      \
22781    "add r12, r0 \n\t"                     \
22782    "adc r13, r1 \n\t"                     \
22783    "adc r14, r25 \n\t"                    \
22784    "mul r3, r7 \n\t"                      \
22785    "add r12, r0 \n\t"                     \
22786    "adc r13, r1 \n\t"                     \
22787    "adc r14, r25 \n\t"                    \
22788    "mul r4, r6 \n\t"                      \
22789    "add r12, r0 \n\t"                     \
22790    "adc r13, r1 \n\t"                     \
22791    "adc r14, r25 \n\t"                    \
22792                                           \
22793    "mov r15, r25 \n\t"                    \
22794    "mul r2, r9 \n\t"                      \
22795    "add r13, r0 \n\t"                     \
22796    "adc r14, r1 \n\t"                     \
22797    "adc r15, r25 \n\t"                    \
22798    "mul r3, r8 \n\t"                      \
22799    "add r13, r0 \n\t"                     \
22800    "adc r14, r1 \n\t"                     \
22801    "adc r15, r25 \n\t"                    \
22802    "mul r4, r7 \n\t"                      \
22803    "add r13, r0 \n\t"                     \
22804    "adc r14, r1 \n\t"                     \
22805    "adc r15, r25 \n\t"                    \
22806    "mul r5, r6 \n\t"                      \
22807    "add r13, r0 \n\t"                     \
22808    "adc r14, r1 \n\t"                     \
22809    "adc r15, r25 \n\t"                    \
22810                                           \
22811    "ld r6, x+ \n\t"                       \
22812    "mov r16, r25 \n\t"                    \
22813    "mul r2, r6 \n\t"                      \
22814    "add r14, r0 \n\t"                     \
22815    "adc r15, r1 \n\t"                     \
22816    "adc r16, r25 \n\t"                    \
22817    "mul r3, r9 \n\t"                      \
22818    "add r14, r0 \n\t"                     \
22819    "adc r15, r1 \n\t"                     \
22820    "adc r16, r25 \n\t"                    \
22821    "mul r4, r8 \n\t"                      \
22822    "add r14, r0 \n\t"                     \
22823    "adc r15, r1 \n\t"                     \
22824    "adc r16, r25 \n\t"                    \
22825    "mul r5, r7 \n\t"                      \
22826    "add r14, r0 \n\t"                     \
22827    "adc r15, r1 \n\t"                     \
22828    "adc r16, r25 \n\t"                    \
22829                                           \
22830    "ld r7, x+ \n\t"                       \
22831    "mov r17, r25 \n\t"                    \
22832    "mul r2, r7 \n\t"                      \
22833    "add r15, r0 \n\t"                     \
22834    "adc r16, r1 \n\t"                     \
22835    "adc r17, r25 \n\t"                    \
22836    "mul r3, r6 \n\t"                      \
22837    "add r15, r0 \n\t"                     \
22838    "adc r16, r1 \n\t"                     \
22839    "adc r17, r25 \n\t"                    \
22840    "mul r4, r9 \n\t"                      \
22841    "add r15, r0 \n\t"                     \
22842    "adc r16, r1 \n\t"                     \
22843    "adc r17, r25 \n\t"                    \
22844    "mul r5, r8 \n\t"                      \
22845    "add r15, r0 \n\t"                     \
22846    "adc r16, r1 \n\t"                     \
22847    "adc r17, r25 \n\t"                    \
22848                                           \
22849    "ld r8, x+ \n\t"                       \
22850    "mov r18, r25 \n\t"                    \
22851    "mul r2, r8 \n\t"                      \
22852    "add r16, r0 \n\t"                     \
22853    "adc r17, r1 \n\t"                     \
22854    "adc r18, r25 \n\t"                    \
22855    "mul r3, r7 \n\t"                      \
22856    "add r16, r0 \n\t"                     \
22857    "adc r17, r1 \n\t"                     \
22858    "adc r18, r25 \n\t"                    \
22859    "mul r4, r6 \n\t"                      \
22860    "add r16, r0 \n\t"                     \
22861    "adc r17, r1 \n\t"                     \
22862    "adc r18, r25 \n\t"                    \
22863    "mul r5, r9 \n\t"                      \
22864    "add r16, r0 \n\t"                     \
22865    "adc r17, r1 \n\t"                     \
22866    "adc r18, r25 \n\t"                    \
22867                                           \
22868    "ld r9, x+ \n\t"                       \
22869    "mov r19, r25 \n\t"                    \
22870    "mul r2, r9 \n\t"                      \
22871    "add r17, r0 \n\t"                     \
22872    "adc r18, r1 \n\t"                     \
22873    "adc r19, r25 \n\t"                    \
22874    "mul r3, r8 \n\t"                      \
22875    "add r17, r0 \n\t"                     \
22876    "adc r18, r1 \n\t"                     \
22877    "adc r19, r25 \n\t"                    \
22878    "mul r4, r7 \n\t"                      \
22879    "add r17, r0 \n\t"                     \
22880    "adc r18, r1 \n\t"                     \
22881    "adc r19, r25 \n\t"                    \
22882    "mul r5, r6 \n\t"                      \
22883    "add r17, r0 \n\t"                     \
22884    "adc r18, r1 \n\t"                     \
22885    "adc r19, r25 \n\t"                    \
22886                                           \
22887    "ld r6, x+ \n\t"                       \
22888    "mov r21, r25 \n\t"                    \
22889    "mul r2, r6 \n\t"                      \
22890    "add r18, r0 \n\t"                     \
22891    "adc r19, r1 \n\t"                     \
22892    "adc r21, r25 \n\t"                    \
22893    "mul r3, r9 \n\t"                      \
22894    "add r18, r0 \n\t"                     \
22895    "adc r19, r1 \n\t"                     \
22896    "adc r21, r25 \n\t"                    \
22897    "mul r4, r8 \n\t"                      \
22898    "add r18, r0 \n\t"                     \
22899    "adc r19, r1 \n\t"                     \
22900    "adc r21, r25 \n\t"                    \
22901    "mul r5, r7 \n\t"                      \
22902    "add r18, r0 \n\t"                     \
22903    "adc r19, r1 \n\t"                     \
22904    "adc r21, r25 \n\t"                    \
22905                                           \
22906    "ld r7, x+ \n\t"                       \
22907    "mov r22, r25 \n\t"                    \
22908    "mul r2, r7 \n\t"                      \
22909    "add r19, r0 \n\t"                     \
22910    "adc r21, r1 \n\t"                     \
22911    "adc r22, r25 \n\t"                    \
22912    "mul r3, r6 \n\t"                      \
22913    "add r19, r0 \n\t"                     \
22914    "adc r21, r1 \n\t"                     \
22915    "adc r22, r25 \n\t"                    \
22916    "mul r4, r9 \n\t"                      \
22917    "add r19, r0 \n\t"                     \
22918    "adc r21, r1 \n\t"                     \
22919    "adc r22, r25 \n\t"                    \
22920    "mul r5, r8 \n\t"                      \
22921    "add r19, r0 \n\t"                     \
22922    "adc r21, r1 \n\t"                     \
22923    "adc r22, r25 \n\t"                    \
22924                                           \
22925    "ld r8, x+ \n\t"                       \
22926    "mov r23, r25 \n\t"                    \
22927    "mul r2, r8 \n\t"                      \
22928    "add r21, r0 \n\t"                     \
22929    "adc r22, r1 \n\t"                     \
22930    "adc r23, r25 \n\t"                    \
22931    "mul r3, r7 \n\t"                      \
22932    "add r21, r0 \n\t"                     \
22933    "adc r22, r1 \n\t"                     \
22934    "adc r23, r25 \n\t"                    \
22935    "mul r4, r6 \n\t"                      \
22936    "add r21, r0 \n\t"                     \
22937    "adc r22, r1 \n\t"                     \
22938    "adc r23, r25 \n\t"                    \
22939    "mul r5, r9 \n\t"                      \
22940    "add r21, r0 \n\t"                     \
22941    "adc r22, r1 \n\t"                     \
22942    "adc r23, r25 \n\t"                    \
22943                                           \
22944    "ld r9, x+ \n\t"                       \
22945    "mov r24, r25 \n\t"                    \
22946    "mul r2, r9 \n\t"                      \
22947    "add r22, r0 \n\t"                     \
22948    "adc r23, r1 \n\t"                     \
22949    "adc r24, r25 \n\t"                    \
22950    "mul r3, r8 \n\t"                      \
22951    "add r22, r0 \n\t"                     \
22952    "adc r23, r1 \n\t"                     \
22953    "adc r24, r25 \n\t"                    \
22954    "mul r4, r7 \n\t"                      \
22955    "add r22, r0 \n\t"                     \
22956    "adc r23, r1 \n\t"                     \
22957    "adc r24, r25 \n\t"                    \
22958    "mul r5, r6 \n\t"                      \
22959    "add r22, r0 \n\t"                     \
22960    "adc r23, r1 \n\t"                     \
22961    "adc r24, r25 \n\t"                    \
22962                                           \
22963    "ld r6, x+ \n\t"                       \
22964    "mov r28, r25 \n\t"                    \
22965    "mul r2, r6 \n\t"                      \
22966    "add r23, r0 \n\t"                     \
22967    "adc r24, r1 \n\t"                     \
22968    "adc r28, r25 \n\t"                    \
22969    "mul r3, r9 \n\t"                      \
22970    "add r23, r0 \n\t"                     \
22971    "adc r24, r1 \n\t"                     \
22972    "adc r28, r25 \n\t"                    \
22973    "mul r4, r8 \n\t"                      \
22974    "add r23, r0 \n\t"                     \
22975    "adc r24, r1 \n\t"                     \
22976    "adc r28, r25 \n\t"                    \
22977    "mul r5, r7 \n\t"                      \
22978    "add r23, r0 \n\t"                     \
22979    "adc r24, r1 \n\t"                     \
22980    "adc r28, r25 \n\t"                    \
22981                                           \
22982    "ld r7, x+ \n\t"                       \
22983    "mov r29, r25 \n\t"                    \
22984    "mul r2, r7 \n\t"                      \
22985    "add r24, r0 \n\t"                     \
22986    "adc r28, r1 \n\t"                     \
22987    "adc r29, r25 \n\t"                    \
22988    "mul r3, r6 \n\t"                      \
22989    "add r24, r0 \n\t"                     \
22990    "adc r28, r1 \n\t"                     \
22991    "adc r29, r25 \n\t"                    \
22992    "mul r4, r9 \n\t"                      \
22993    "add r24, r0 \n\t"                     \
22994    "adc r28, r1 \n\t"                     \
22995    "adc r29, r25 \n\t"                    \
22996    "mul r5, r8 \n\t"                      \
22997    "add r24, r0 \n\t"                     \
22998    "adc r28, r1 \n\t"                     \
22999    "adc r29, r25 \n\t"                    \
23000                                           \
23001    "lsl r10 \n\t"                         \
23002    "rol r11 \n\t"                         \
23003    "rol r12 \n\t"                         \
23004    "rol r13 \n\t"                         \
23005    "rol r14 \n\t"                         \
23006    "rol r15 \n\t"                         \
23007    "rol r16 \n\t"                         \
23008    "rol r17 \n\t"                         \
23009    "rol r18 \n\t"                         \
23010    "rol r19 \n\t"                         \
23011    "rol r21 \n\t"                         \
23012    "rol r22 \n\t"                         \
23013    "rol r23 \n\t"                         \
23014    "rol r24 \n\t"                         \
23015    "rol r28 \n\t"                         \
23016    "rol r29 \n\t"                         \
23017    "ld r0, z \n\t"                        \
23018    "add r10, r0 \n\t"                     \
23019    "st z+, r10 \n\t"                      \
23020    "ld r0, z \n\t"                        \
23021    "adc r11, r0 \n\t"                     \
23022    "st z+, r11 \n\t"                      \
23023    "ld r0, z \n\t"                        \
23024    "adc r12, r0 \n\t"                     \
23025    "st z+, r12 \n\t"                      \
23026    "ld r0, z \n\t"                        \
23027    "adc r13, r0 \n\t"                     \
23028    "st z+, r13 \n\t"                      \
23029    "ld r0, z \n\t"                        \
23030    "adc r14, r0 \n\t"                     \
23031    "st z+, r14 \n\t"                      \
23032    "ld r0, z \n\t"                        \
23033    "adc r15, r0 \n\t"                     \
23034    "st z+, r15 \n\t"                      \
23035    "ld r0, z \n\t"                        \
23036    "adc r16, r0 \n\t"                     \
23037    "st z+, r16 \n\t"                      \
23038    "ld r0, z \n\t"                        \
23039    "adc r17, r0 \n\t"                     \
23040    "st z+, r17 \n\t"                      \
23041    "ld r0, z \n\t"                        \
23042    "adc r18, r0 \n\t"                     \
23043    "st z+, r18 \n\t"                      \
23044    "ld r0, z \n\t"                        \
23045    "adc r19, r0 \n\t"                     \
23046    "st z+, r19 \n\t"                      \
23047    "ld r0, z \n\t"                        \
23048    "adc r21, r0 \n\t"                     \
23049    "st z+, r21 \n\t"                      \
23050    "ld r0, z \n\t"                        \
23051    "adc r22, r0 \n\t"                     \
23052    "st z+, r22 \n\t"                      \
23053    "ld r0, z \n\t"                        \
23054    "adc r23, r0 \n\t"                     \
23055    "st z+, r23 \n\t"                      \
23056    "ld r0, z \n\t"                        \
23057    "adc r24, r0 \n\t"                     \
23058    "st z+, r24 \n\t"                      \
23059    "adc r28, r25 \n\t"                    \
23060    "adc r29, r25 \n\t"                    \
23061    "bst r28, 0 \n\t"                      \
23062    "lsr r29 \n\t"                         \
23063    "ror r28 \n\t"                         \
23064                                           \
23065    "ld r8, x+ \n\t"                       \
23066    "mov r10, r25 \n\t"                    \
23067    "mul r2, r8 \n\t"                      \
23068    "add r28, r0 \n\t"                     \
23069    "adc r29, r1 \n\t"                     \
23070    "adc r10, r25 \n\t"                    \
23071    "mul r3, r7 \n\t"                      \
23072    "add r28, r0 \n\t"                     \
23073    "adc r29, r1 \n\t"                     \
23074    "adc r10, r25 \n\t"                    \
23075    "mul r4, r6 \n\t"                      \
23076    "add r28, r0 \n\t"                     \
23077    "adc r29, r1 \n\t"                     \
23078    "adc r10, r25 \n\t"                    \
23079    "mul r5, r9 \n\t"                      \
23080    "add r28, r0 \n\t"                     \
23081    "adc r29, r1 \n\t"                     \
23082    "adc r10, r25 \n\t"                    \
23083                                           \
23084    "ld r9, x+ \n\t"                       \
23085    "mov r11, r25 \n\t"                    \
23086    "mul r2, r9 \n\t"                      \
23087    "add r29, r0 \n\t"                     \
23088    "adc r10, r1 \n\t"                     \
23089    "adc r11, r25 \n\t"                    \
23090    "mul r3, r8 \n\t"                      \
23091    "add r29, r0 \n\t"                     \
23092    "adc r10, r1 \n\t"                     \
23093    "adc r11, r25 \n\t"                    \
23094    "mul r4, r7 \n\t"                      \
23095    "add r29, r0 \n\t"                     \
23096    "adc r10, r1 \n\t"                     \
23097    "adc r11, r25 \n\t"                    \
23098    "mul r5, r6 \n\t"                      \
23099    "add r29, r0 \n\t"                     \
23100    "adc r10, r1 \n\t"                     \
23101    "adc r11, r25 \n\t"                    \
23102                                           \
23103    "ld r6, x+ \n\t"                       \
23104    "mov r12, r25 \n\t"                    \
23105    "mul r2, r6 \n\t"                      \
23106    "add r10, r0 \n\t"                     \
23107    "adc r11, r1 \n\t"                     \
23108    "adc r12, r25 \n\t"                    \
23109    "mul r3, r9 \n\t"                      \
23110    "add r10, r0 \n\t"                     \
23111    "adc r11, r1 \n\t"                     \
23112    "adc r12, r25 \n\t"                    \
23113    "mul r4, r8 \n\t"                      \
23114    "add r10, r0 \n\t"                     \
23115    "adc r11, r1 \n\t"                     \
23116    "adc r12, r25 \n\t"                    \
23117    "mul r5, r7 \n\t"                      \
23118    "add r10, r0 \n\t"                     \
23119    "adc r11, r1 \n\t"                     \
23120    "adc r12, r25 \n\t"                    \
23121                                           \
23122    "ld r7, x+ \n\t"                       \
23123    "mov r13, r25 \n\t"                    \
23124    "mul r2, r7 \n\t"                      \
23125    "add r11, r0 \n\t"                     \
23126    "adc r12, r1 \n\t"                     \
23127    "adc r13, r25 \n\t"                    \
23128    "mul r3, r6 \n\t"                      \
23129    "add r11, r0 \n\t"                     \
23130    "adc r12, r1 \n\t"                     \
23131    "adc r13, r25 \n\t"                    \
23132    "mul r4, r9 \n\t"                      \
23133    "add r11, r0 \n\t"                     \
23134    "adc r12, r1 \n\t"                     \
23135    "adc r13, r25 \n\t"                    \
23136    "mul r5, r8 \n\t"                      \
23137    "add r11, r0 \n\t"                     \
23138    "adc r12, r1 \n\t"                     \
23139    "adc r13, r25 \n\t"                    \
23140                                           \
23141    "ld r8, x+ \n\t"                       \
23142    "mov r14, r25 \n\t"                    \
23143    "mul r2, r8 \n\t"                      \
23144    "add r12, r0 \n\t"                     \
23145    "adc r13, r1 \n\t"                     \
23146    "adc r14, r25 \n\t"                    \
23147    "mul r3, r7 \n\t"                      \
23148    "add r12, r0 \n\t"                     \
23149    "adc r13, r1 \n\t"                     \
23150    "adc r14, r25 \n\t"                    \
23151    "mul r4, r6 \n\t"                      \
23152    "add r12, r0 \n\t"                     \
23153    "adc r13, r1 \n\t"                     \
23154    "adc r14, r25 \n\t"                    \
23155    "mul r5, r9 \n\t"                      \
23156    "add r12, r0 \n\t"                     \
23157    "adc r13, r1 \n\t"                     \
23158    "adc r14, r25 \n\t"                    \
23159                                           \
23160    "ld r9, x+ \n\t"                       \
23161    "mov r15, r25 \n\t"                    \
23162    "mul r2, r9 \n\t"                      \
23163    "add r13, r0 \n\t"                     \
23164    "adc r14, r1 \n\t"                     \
23165    "adc r15, r25 \n\t"                    \
23166    "mul r3, r8 \n\t"                      \
23167    "add r13, r0 \n\t"                     \
23168    "adc r14, r1 \n\t"                     \
23169    "adc r15, r25 \n\t"                    \
23170    "mul r4, r7 \n\t"                      \
23171    "add r13, r0 \n\t"                     \
23172    "adc r14, r1 \n\t"                     \
23173    "adc r15, r25 \n\t"                    \
23174    "mul r5, r6 \n\t"                      \
23175    "add r13, r0 \n\t"                     \
23176    "adc r14, r1 \n\t"                     \
23177    "adc r15, r25 \n\t"                    \
23178                                           \
23179    "ld r6, x+ \n\t"                       \
23180    "mov r16, r25 \n\t"                    \
23181    "mul r2, r6 \n\t"                      \
23182    "add r14, r0 \n\t"                     \
23183    "adc r15, r1 \n\t"                     \
23184    "adc r16, r25 \n\t"                    \
23185    "mul r3, r9 \n\t"                      \
23186    "add r14, r0 \n\t"                     \
23187    "adc r15, r1 \n\t"                     \
23188    "adc r16, r25 \n\t"                    \
23189    "mul r4, r8 \n\t"                      \
23190    "add r14, r0 \n\t"                     \
23191    "adc r15, r1 \n\t"                     \
23192    "adc r16, r25 \n\t"                    \
23193    "mul r5, r7 \n\t"                      \
23194    "add r14, r0 \n\t"                     \
23195    "adc r15, r1 \n\t"                     \
23196    "adc r16, r25 \n\t"                    \
23197                                           \
23198    "ld r7, x+ \n\t"                       \
23199    "mov r17, r25 \n\t"                    \
23200    "mul r2, r7 \n\t"                      \
23201    "add r15, r0 \n\t"                     \
23202    "adc r16, r1 \n\t"                     \
23203    "adc r17, r25 \n\t"                    \
23204    "mul r3, r6 \n\t"                      \
23205    "add r15, r0 \n\t"                     \
23206    "adc r16, r1 \n\t"                     \
23207    "adc r17, r25 \n\t"                    \
23208    "mul r4, r9 \n\t"                      \
23209    "add r15, r0 \n\t"                     \
23210    "adc r16, r1 \n\t"                     \
23211    "adc r17, r25 \n\t"                    \
23212    "mul r5, r8 \n\t"                      \
23213    "add r15, r0 \n\t"                     \
23214    "adc r16, r1 \n\t"                     \
23215    "adc r17, r25 \n\t"                    \
23216                                           \
23217    "ld r8, x+ \n\t"                       \
23218    "mov r18, r25 \n\t"                    \
23219    "mul r2, r8 \n\t"                      \
23220    "add r16, r0 \n\t"                     \
23221    "adc r17, r1 \n\t"                     \
23222    "adc r18, r25 \n\t"                    \
23223    "mul r3, r7 \n\t"                      \
23224    "add r16, r0 \n\t"                     \
23225    "adc r17, r1 \n\t"                     \
23226    "adc r18, r25 \n\t"                    \
23227    "mul r4, r6 \n\t"                      \
23228    "add r16, r0 \n\t"                     \
23229    "adc r17, r1 \n\t"                     \
23230    "adc r18, r25 \n\t"                    \
23231    "mul r5, r9 \n\t"                      \
23232    "add r16, r0 \n\t"                     \
23233    "adc r17, r1 \n\t"                     \
23234    "adc r18, r25 \n\t"                    \
23235                                           \
23236    "ld r9, x+ \n\t"                       \
23237    "mov r19, r25 \n\t"                    \
23238    "mul r2, r9 \n\t"                      \
23239    "add r17, r0 \n\t"                     \
23240    "adc r18, r1 \n\t"                     \
23241    "adc r19, r25 \n\t"                    \
23242    "mul r3, r8 \n\t"                      \
23243    "add r17, r0 \n\t"                     \
23244    "adc r18, r1 \n\t"                     \
23245    "adc r19, r25 \n\t"                    \
23246    "mul r4, r7 \n\t"                      \
23247    "add r17, r0 \n\t"                     \
23248    "adc r18, r1 \n\t"                     \
23249    "adc r19, r25 \n\t"                    \
23250    "mul r5, r6 \n\t"                      \
23251    "add r17, r0 \n\t"                     \
23252    "adc r18, r1 \n\t"                     \
23253    "adc r19, r25 \n\t"                    \
23254                                           \
23255    "ld r6, x+ \n\t"                       \
23256    "mov r21, r25 \n\t"                    \
23257    "mul r2, r6 \n\t"                      \
23258    "add r18, r0 \n\t"                     \
23259    "adc r19, r1 \n\t"                     \
23260    "adc r21, r25 \n\t"                    \
23261    "mul r3, r9 \n\t"                      \
23262    "add r18, r0 \n\t"                     \
23263    "adc r19, r1 \n\t"                     \
23264    "adc r21, r25 \n\t"                    \
23265    "mul r4, r8 \n\t"                      \
23266    "add r18, r0 \n\t"                     \
23267    "adc r19, r1 \n\t"                     \
23268    "adc r21, r25 \n\t"                    \
23269    "mul r5, r7 \n\t"                      \
23270    "add r18, r0 \n\t"                     \
23271    "adc r19, r1 \n\t"                     \
23272    "adc r21, r25 \n\t"                    \
23273                                           \
23274    "ld r7, x+ \n\t"                       \
23275    "mov r22, r25 \n\t"                    \
23276    "mul r2, r7 \n\t"                      \
23277    "add r19, r0 \n\t"                     \
23278    "adc r21, r1 \n\t"                     \
23279    "adc r22, r25 \n\t"                    \
23280    "mul r3, r6 \n\t"                      \
23281    "add r19, r0 \n\t"                     \
23282    "adc r21, r1 \n\t"                     \
23283    "adc r22, r25 \n\t"                    \
23284    "mul r4, r9 \n\t"                      \
23285    "add r19, r0 \n\t"                     \
23286    "adc r21, r1 \n\t"                     \
23287    "adc r22, r25 \n\t"                    \
23288    "mul r5, r8 \n\t"                      \
23289    "add r19, r0 \n\t"                     \
23290    "adc r21, r1 \n\t"                     \
23291    "adc r22, r25 \n\t"                    \
23292                                           \
23293    "ld r8, x+ \n\t"                       \
23294    "mov r23, r25 \n\t"                    \
23295    "mul r2, r8 \n\t"                      \
23296    "add r21, r0 \n\t"                     \
23297    "adc r22, r1 \n\t"                     \
23298    "adc r23, r25 \n\t"                    \
23299    "mul r3, r7 \n\t"                      \
23300    "add r21, r0 \n\t"                     \
23301    "adc r22, r1 \n\t"                     \
23302    "adc r23, r25 \n\t"                    \
23303    "mul r4, r6 \n\t"                      \
23304    "add r21, r0 \n\t"                     \
23305    "adc r22, r1 \n\t"                     \
23306    "adc r23, r25 \n\t"                    \
23307    "mul r5, r9 \n\t"                      \
23308    "add r21, r0 \n\t"                     \
23309    "adc r22, r1 \n\t"                     \
23310    "adc r23, r25 \n\t"                    \
23311                                           \
23312    "ld r9, x+ \n\t"                       \
23313    "mov r24, r25 \n\t"                    \
23314    "mul r2, r9 \n\t"                      \
23315    "add r22, r0 \n\t"                     \
23316    "adc r23, r1 \n\t"                     \
23317    "adc r24, r25 \n\t"                    \
23318    "mul r3, r8 \n\t"                      \
23319    "add r22, r0 \n\t"                     \
23320    "adc r23, r1 \n\t"                     \
23321    "adc r24, r25 \n\t"                    \
23322    "mul r4, r7 \n\t"                      \
23323    "add r22, r0 \n\t"                     \
23324    "adc r23, r1 \n\t"                     \
23325    "adc r24, r25 \n\t"                    \
23326    "mul r5, r6 \n\t"                      \
23327    "add r22, r0 \n\t"                     \
23328    "adc r23, r1 \n\t"                     \
23329    "adc r24, r25 \n\t"                    \
23330                                           \
23331    "lsl r28 \n\t"                         \
23332    "bld r28, 0 \n\t"                      \
23333    "rol r29 \n\t"                         \
23334    "rol r10 \n\t"                         \
23335    "rol r11 \n\t"                         \
23336    "rol r12 \n\t"                         \
23337    "rol r13 \n\t"                         \
23338    "rol r14 \n\t"                         \
23339    "rol r15 \n\t"                         \
23340    "rol r16 \n\t"                         \
23341    "rol r17 \n\t"                         \
23342    "rol r18 \n\t"                         \
23343    "rol r19 \n\t"                         \
23344    "rol r21 \n\t"                         \
23345    "rol r22 \n\t"                         \
23346    "rol r23 \n\t"                         \
23347    "rol r24 \n\t"                         \
23348    "ld r0, z \n\t"                        \
23349    "add r28, r0 \n\t"                     \
23350    "st z+, r28 \n\t"                      \
23351    "ld r0, z \n\t"                        \
23352    "adc r29, r0 \n\t"                     \
23353    "st z+, r29 \n\t"                      \
23354    "ld r0, z \n\t"                        \
23355    "adc r10, r0 \n\t"                     \
23356    "st z+, r10 \n\t"                      \
23357    "ld r0, z \n\t"                        \
23358    "adc r11, r0 \n\t"                     \
23359    "st z+, r11 \n\t"                      \
23360    "ld r0, z \n\t"                        \
23361    "adc r12, r0 \n\t"                     \
23362    "st z+, r12 \n\t"                      \
23363    "ld r0, z \n\t"                        \
23364    "adc r13, r0 \n\t"                     \
23365    "st z+, r13 \n\t"                      \
23366    "ld r0, z \n\t"                        \
23367    "adc r14, r0 \n\t"                     \
23368    "st z+, r14 \n\t"                      \
23369    "ld r0, z \n\t"                        \
23370    "adc r15, r0 \n\t"                     \
23371    "st z+, r15 \n\t"                      \
23372    "ld r0, z \n\t"                        \
23373    "adc r16, r0 \n\t"                     \
23374    "st z+, r16 \n\t"                      \
23375    "ld r0, z \n\t"                        \
23376    "adc r17, r0 \n\t"                     \
23377    "st z+, r17 \n\t"                      \
23378    "ld r0, z \n\t"                        \
23379    "adc r18, r0 \n\t"                     \
23380    "st z+, r18 \n\t"                      \
23381    "ld r0, z \n\t"                        \
23382    "adc r19, r0 \n\t"                     \
23383    "st z+, r19 \n\t"                      \
23384    "ld r0, z \n\t"                        \
23385    "adc r21, r0 \n\t"                     \
23386    "st z+, r21 \n\t"                      \
23387    "ld r0, z \n\t"                        \
23388    "adc r22, r0 \n\t"                     \
23389    "st z+, r22 \n\t"                      \
23390    "adc r23, r25 \n\t"                    \
23391    "adc r24, r25 \n\t"                    \
23392                                           \
23393    "mul r2, r2 \n\t"                      \
23394    "mov r28, r0 \n\t"                     \
23395    "mov r29, r1 \n\t"                     \
23396    "mul r3, r3 \n\t"                      \
23397    "mov r10, r0 \n\t"                     \
23398    "mov r11, r1 \n\t"                     \
23399    "mul r4, r4 \n\t"                      \
23400    "mov r12, r0 \n\t"                     \
23401    "mov r13, r1 \n\t"                     \
23402    "mul r5, r5 \n\t"                      \
23403    "mov r14, r0 \n\t"                     \
23404    "mov r15, r1 \n\t"                     \
23405    "add r28, r23 \n\t"                    \
23406    "adc r29, r24 \n\t"                    \
23407    "adc r10, r25 \n\t"                    \
23408    "adc r11, r25 \n\t"                    \
23409                                           \
23410    "mul r7, r5 \n\t"                      \
23411    "mov r23, r0 \n\t"                     \
23412    "mov r24, r1 \n\t"                     \
23413    "mov r16, r25 \n\t"                    \
23414    "mul r8, r4 \n\t"                      \
23415    "add r23, r0 \n\t"                     \
23416    "adc r24, r1 \n\t"                     \
23417    "adc r16, r25 \n\t"                    \
23418    "mul r9, r3 \n\t"                      \
23419    "add r23, r0 \n\t"                     \
23420    "adc r24, r1 \n\t"                     \
23421    "adc r16, r25 \n\t"                    \
23422    "mov r17, r25 \n\t"                    \
23423    "mul r8, r5 \n\t"                      \
23424    "add r24, r0 \n\t"                     \
23425    "adc r16, r1 \n\t"                     \
23426    "adc r17, r25 \n\t"                    \
23427    "mul r9, r4 \n\t"                      \
23428    "add r24, r0 \n\t"                     \
23429    "adc r16, r1 \n\t"                     \
23430    "adc r17, r25 \n\t"                    \
23431    "mul r2, r3 \n\t"                      \
23432    "add r24, r0 \n\t"                     \
23433    "adc r16, r1 \n\t"                     \
23434    "adc r17, r25 \n\t"                    \
23435    "mov r18, r25 \n\t"                    \
23436    "mul r9, r5 \n\t"                      \
23437    "add r16, r0 \n\t"                     \
23438    "adc r17, r1 \n\t"                     \
23439    "adc r18, r25 \n\t"                    \
23440    "mul r2, r4 \n\t"                      \
23441    "add r16, r0 \n\t"                     \
23442    "adc r17, r1 \n\t"                     \
23443    "adc r18, r25 \n\t"                    \
23444    "mov r19, r25 \n\t"                    \
23445    "mul r2, r5 \n\t"                      \
23446    "add r17, r0 \n\t"                     \
23447    "adc r18, r1 \n\t"                     \
23448    "adc r19, r25 \n\t"                    \
23449    "mul r3, r4 \n\t"                      \
23450    "add r17, r0 \n\t"                     \
23451    "adc r18, r1 \n\t"                     \
23452    "adc r19, r25 \n\t"                    \
23453    "mov r21, r25 \n\t"                    \
23454    "mul r3, r5 \n\t"                      \
23455    "add r18, r0 \n\t"                     \
23456    "adc r19, r1 \n\t"                     \
23457    "adc r21, r25 \n\t"                    \
23458    "mul r4, r5 \n\t"                      \
23459    "add r19, r0 \n\t"                     \
23460    "adc r21, r1 \n\t"                     \
23461                                           \
23462    "lsl r23 \n\t"                         \
23463    "rol r24 \n\t"                         \
23464    "rol r16 \n\t"                         \
23465    "rol r17 \n\t"                         \
23466    "rol r18 \n\t"                         \
23467    "rol r19 \n\t"                         \
23468    "rol r21 \n\t"                         \
23469    "adc r15, r25 \n\t"                    \
23470    "add r28, r23 \n\t"                    \
23471    "adc r29, r24 \n\t"                    \
23472    "adc r10, r16 \n\t"                    \
23473    "adc r11, r17 \n\t"                    \
23474    "adc r12, r18 \n\t"                    \
23475    "adc r13, r19 \n\t"                    \
23476    "adc r14, r21 \n\t"                    \
23477    "adc r15, r25 \n\t"                    \
23478                                           \
23479    "st z+, r28 \n\t"                      \
23480    "st z+, r29 \n\t"                      \
23481    "st z+, r10 \n\t"                      \
23482    "st z+, r11 \n\t"                      \
23483    "st z+, r12 \n\t"                      \
23484    "st z+, r13 \n\t"                      \
23485    "st z+, r14 \n\t"                      \
23486    "st z+, r15 \n\t"                      \
23487    "adiw r26, 4 \n\t"
23488
23489#define FAST_SQUARE_ASM_32             \
23490    "ldi r25, 0 \n\t"                  \
23491    "movw r28, r26 \n\t"               \
23492    "ld r2, x+ \n\t"                   \
23493    "ld r3, x+ \n\t"                   \
23494    "ld r4, x+ \n\t"                   \
23495    "ld r5, x+ \n\t"                   \
23496    "ld r6, x+ \n\t"                   \
23497    "ld r7, x+ \n\t"                   \
23498    "adiw r28, 20 \n\t"                \
23499    "ld r12, y+ \n\t"                  \
23500    "ld r13, y+ \n\t"                  \
23501    "ld r14, y+ \n\t"                  \
23502    "ld r15, y+ \n\t"                  \
23503    "ld r16, y+ \n\t"                  \
23504    "ld r17, y+ \n\t"                  \
23505    "adiw r30, 20 \n\t"                \
23506                                       \
23507    "ldi r23, 0 \n\t"                  \
23508    "mul 2, 12 \n\t"                   \
23509    "st z+, r0 \n\t"                   \
23510    "mov r22, r1 \n\t"                 \
23511                                       \
23512    "ldi r24, 0 \n\t"                  \
23513    "mul r2, r13 \n\t"                 \
23514    "add r22, r0 \n\t"                 \
23515    "adc r23, r1 \n\t"                 \
23516    "adc r24, r25 \n\t"                \
23517    "st z+, r22 \n\t"                  \
23518                                       \
23519    "ldi r22, 0 \n\t"                  \
23520    "mul r2, r14 \n\t"                 \
23521    "add r23, r0 \n\t"                 \
23522    "adc r24, r1 \n\t"                 \
23523    "adc r22, r25 \n\t"                \
23524    "mul r3, r13 \n\t"                 \
23525    "add r23, r0 \n\t"                 \
23526    "adc r24, r1 \n\t"                 \
23527    "adc r22, r25 \n\t"                \
23528    "st z+, r23 \n\t"                  \
23529                                       \
23530    "ldi r23, 0 \n\t"                  \
23531    "mul r2, r15 \n\t"                 \
23532    "add r24, r0 \n\t"                 \
23533    "adc r22, r1 \n\t"                 \
23534    "adc r23, r25 \n\t"                \
23535    "mul r3, r14 \n\t"                 \
23536    "add r24, r0 \n\t"                 \
23537    "adc r22, r1 \n\t"                 \
23538    "adc r23, r25 \n\t"                \
23539    "st z+, r24 \n\t"                  \
23540                                       \
23541    "ldi r24, 0 \n\t"                  \
23542    "mul r2, r16 \n\t"                 \
23543    "add r22, r0 \n\t"                 \
23544    "adc r23, r1 \n\t"                 \
23545    "adc r24, r25 \n\t"                \
23546    "mul r3, r15 \n\t"                 \
23547    "add r22, r0 \n\t"                 \
23548    "adc r23, r1 \n\t"                 \
23549    "adc r24, r25 \n\t"                \
23550    "mul r4, r14 \n\t"                 \
23551    "add r22, r0 \n\t"                 \
23552    "adc r23, r1 \n\t"                 \
23553    "adc r24, r25 \n\t"                \
23554    "st z+, r22 \n\t"                  \
23555                                       \
23556    "ldi r22, 0 \n\t"                  \
23557    "mul r2, r17 \n\t"                 \
23558    "add r23, r0 \n\t"                 \
23559    "adc r24, r1 \n\t"                 \
23560    "adc r22, r25 \n\t"                \
23561    "mul r3, r16 \n\t"                 \
23562    "add r23, r0 \n\t"                 \
23563    "adc r24, r1 \n\t"                 \
23564    "adc r22, r25 \n\t"                \
23565    "mul r4, r15 \n\t"                 \
23566    "add r23, r0 \n\t"                 \
23567    "adc r24, r1 \n\t"                 \
23568    "adc r22, r25 \n\t"                \
23569    "st z+, r23 \n\t"                  \
23570                                       \
23571    "ld r12, y+ \n\t"                  \
23572    "ldi r23, 0 \n\t"                  \
23573    "mul r2, r12 \n\t"                 \
23574    "add r24, r0 \n\t"                 \
23575    "adc r22, r1 \n\t"                 \
23576    "adc r23, r25 \n\t"                \
23577    "mul r3, r17 \n\t"                 \
23578    "add r24, r0 \n\t"                 \
23579    "adc r22, r1 \n\t"                 \
23580    "adc r23, r25 \n\t"                \
23581    "mul r4, r16 \n\t"                 \
23582    "add r24, r0 \n\t"                 \
23583    "adc r22, r1 \n\t"                 \
23584    "adc r23, r25 \n\t"                \
23585    "mul r5, r15 \n\t"                 \
23586    "add r24, r0 \n\t"                 \
23587    "adc r22, r1 \n\t"                 \
23588    "adc r23, r25 \n\t"                \
23589    "st z+, r24 \n\t"                  \
23590                                       \
23591    "ld r13, y+ \n\t"                  \
23592    "ldi r24, 0 \n\t"                  \
23593    "mul r2, r13 \n\t"                 \
23594    "add r22, r0 \n\t"                 \
23595    "adc r23, r1 \n\t"                 \
23596    "adc r24, r25 \n\t"                \
23597    "mul r3, r12 \n\t"                 \
23598    "add r22, r0 \n\t"                 \
23599    "adc r23, r1 \n\t"                 \
23600    "adc r24, r25 \n\t"                \
23601    "mul r4, r17 \n\t"                 \
23602    "add r22, r0 \n\t"                 \
23603    "adc r23, r1 \n\t"                 \
23604    "adc r24, r25 \n\t"                \
23605    "mul r5, r16 \n\t"                 \
23606    "add r22, r0 \n\t"                 \
23607    "adc r23, r1 \n\t"                 \
23608    "adc r24, r25 \n\t"                \
23609    "st z+, r22 \n\t"                  \
23610                                       \
23611    "ld r14, y+ \n\t"                  \
23612    "ldi r22, 0 \n\t"                  \
23613    "mul r2, r14 \n\t"                 \
23614    "add r23, r0 \n\t"                 \
23615    "adc r24, r1 \n\t"                 \
23616    "adc r22, r25 \n\t"                \
23617    "mul r3, r13 \n\t"                 \
23618    "add r23, r0 \n\t"                 \
23619    "adc r24, r1 \n\t"                 \
23620    "adc r22, r25 \n\t"                \
23621    "mul r4, r12 \n\t"                 \
23622    "add r23, r0 \n\t"                 \
23623    "adc r24, r1 \n\t"                 \
23624    "adc r22, r25 \n\t"                \
23625    "mul r5, r17 \n\t"                 \
23626    "add r23, r0 \n\t"                 \
23627    "adc r24, r1 \n\t"                 \
23628    "adc r22, r25 \n\t"                \
23629    "mul r6, r16 \n\t"                 \
23630    "add r23, r0 \n\t"                 \
23631    "adc r24, r1 \n\t"                 \
23632    "adc r22, r25 \n\t"                \
23633    "st z+, r23 \n\t"                  \
23634                                       \
23635    "ld r15, y+ \n\t"                  \
23636    "ldi r23, 0 \n\t"                  \
23637    "mul r2, r15 \n\t"                 \
23638    "add r24, r0 \n\t"                 \
23639    "adc r22, r1 \n\t"                 \
23640    "adc r23, r25 \n\t"                \
23641    "mul r3, r14 \n\t"                 \
23642    "add r24, r0 \n\t"                 \
23643    "adc r22, r1 \n\t"                 \
23644    "adc r23, r25 \n\t"                \
23645    "mul r4, r13 \n\t"                 \
23646    "add r24, r0 \n\t"                 \
23647    "adc r22, r1 \n\t"                 \
23648    "adc r23, r25 \n\t"                \
23649    "mul r5, r12 \n\t"                 \
23650    "add r24, r0 \n\t"                 \
23651    "adc r22, r1 \n\t"                 \
23652    "adc r23, r25 \n\t"                \
23653    "mul r6, r17 \n\t"                 \
23654    "add r24, r0 \n\t"                 \
23655    "adc r22, r1 \n\t"                 \
23656    "adc r23, r25 \n\t"                \
23657    "st z+, r24 \n\t"                  \
23658                                       \
23659    "ld r16, y+ \n\t"                  \
23660    "ldi r24, 0 \n\t"                  \
23661    "mul r2, r16 \n\t"                 \
23662    "add r22, r0 \n\t"                 \
23663    "adc r23, r1 \n\t"                 \
23664    "adc r24, r25 \n\t"                \
23665    "mul r3, r15 \n\t"                 \
23666    "add r22, r0 \n\t"                 \
23667    "adc r23, r1 \n\t"                 \
23668    "adc r24, r25 \n\t"                \
23669    "mul r4, r14 \n\t"                 \
23670    "add r22, r0 \n\t"                 \
23671    "adc r23, r1 \n\t"                 \
23672    "adc r24, r25 \n\t"                \
23673    "mul r5, r13 \n\t"                 \
23674    "add r22, r0 \n\t"                 \
23675    "adc r23, r1 \n\t"                 \
23676    "adc r24, r25 \n\t"                \
23677    "mul r6, r12 \n\t"                 \
23678    "add r22, r0 \n\t"                 \
23679    "adc r23, r1 \n\t"                 \
23680    "adc r24, r25 \n\t"                \
23681    "mul r7, r17 \n\t"                 \
23682    "add r22, r0 \n\t"                 \
23683    "adc r23, r1 \n\t"                 \
23684    "adc r24, r25 \n\t"                \
23685    "st z+, r22 \n\t"                  \
23686                                       \
23687    "ld r17, y+ \n\t"                  \
23688    "ldi r22, 0 \n\t"                  \
23689    "mul r2, r17 \n\t"                 \
23690    "add r23, r0 \n\t"                 \
23691    "adc r24, r1 \n\t"                 \
23692    "adc r22, r25 \n\t"                \
23693    "mul r3, r16 \n\t"                 \
23694    "add r23, r0 \n\t"                 \
23695    "adc r24, r1 \n\t"                 \
23696    "adc r22, r25 \n\t"                \
23697    "mul r4, r15 \n\t"                 \
23698    "add r23, r0 \n\t"                 \
23699    "adc r24, r1 \n\t"                 \
23700    "adc r22, r25 \n\t"                \
23701    "mul r5, r14 \n\t"                 \
23702    "add r23, r0 \n\t"                 \
23703    "adc r24, r1 \n\t"                 \
23704    "adc r22, r25 \n\t"                \
23705    "mul r6, r13 \n\t"                 \
23706    "add r23, r0 \n\t"                 \
23707    "adc r24, r1 \n\t"                 \
23708    "adc r22, r25 \n\t"                \
23709    "mul r7, r12 \n\t"                 \
23710    "add r23, r0 \n\t"                 \
23711    "adc r24, r1 \n\t"                 \
23712    "adc r22, r25 \n\t"                \
23713    "st z+, r23 \n\t"                  \
23714                                       \
23715    "ld r2, x+ \n\t"                   \
23716    "ldi r23, 0 \n\t"                  \
23717    "mul r3, r17 \n\t"                 \
23718    "add r24, r0 \n\t"                 \
23719    "adc r22, r1 \n\t"                 \
23720    "adc r23, r25 \n\t"                \
23721    "mul r4, r16 \n\t"                 \
23722    "add r24, r0 \n\t"                 \
23723    "adc r22, r1 \n\t"                 \
23724    "adc r23, r25 \n\t"                \
23725    "mul r5, r15 \n\t"                 \
23726    "add r24, r0 \n\t"                 \
23727    "adc r22, r1 \n\t"                 \
23728    "adc r23, r25 \n\t"                \
23729    "mul r6, r14 \n\t"                 \
23730    "add r24, r0 \n\t"                 \
23731    "adc r22, r1 \n\t"                 \
23732    "adc r23, r25 \n\t"                \
23733    "mul r7, r13 \n\t"                 \
23734    "add r24, r0 \n\t"                 \
23735    "adc r22, r1 \n\t"                 \
23736    "adc r23, r25 \n\t"                \
23737    "mul r2, r12 \n\t"                 \
23738    "add r24, r0 \n\t"                 \
23739    "adc r22, r1 \n\t"                 \
23740    "adc r23, r25 \n\t"                \
23741    "st z+, r24 \n\t"                  \
23742                                       \
23743    "ld r3, x+ \n\t"                   \
23744    "ldi r24, 0 \n\t"                  \
23745    "mul r4, r17 \n\t"                 \
23746    "add r22, r0 \n\t"                 \
23747    "adc r23, r1 \n\t"                 \
23748    "adc r24, r25 \n\t"                \
23749    "mul r5, r16 \n\t"                 \
23750    "add r22, r0 \n\t"                 \
23751    "adc r23, r1 \n\t"                 \
23752    "adc r24, r25 \n\t"                \
23753    "mul r6, r15 \n\t"                 \
23754    "add r22, r0 \n\t"                 \
23755    "adc r23, r1 \n\t"                 \
23756    "adc r24, r25 \n\t"                \
23757    "mul r7, r14 \n\t"                 \
23758    "add r22, r0 \n\t"                 \
23759    "adc r23, r1 \n\t"                 \
23760    "adc r24, r25 \n\t"                \
23761    "mul r2, r13 \n\t"                 \
23762    "add r22, r0 \n\t"                 \
23763    "adc r23, r1 \n\t"                 \
23764    "adc r24, r25 \n\t"                \
23765    "st z+, r22 \n\t"                  \
23766                                       \
23767    "ld r4, x+ \n\t"                   \
23768    "ldi r22, 0 \n\t"                  \
23769    "mul r5, r17 \n\t"                 \
23770    "add r23, r0 \n\t"                 \
23771    "adc r24, r1 \n\t"                 \
23772    "adc r22, r25 \n\t"                \
23773    "mul r6, r16 \n\t"                 \
23774    "add r23, r0 \n\t"                 \
23775    "adc r24, r1 \n\t"                 \
23776    "adc r22, r25 \n\t"                \
23777    "mul r7, r15 \n\t"                 \
23778    "add r23, r0 \n\t"                 \
23779    "adc r24, r1 \n\t"                 \
23780    "adc r22, r25 \n\t"                \
23781    "mul r2, r14 \n\t"                 \
23782    "add r23, r0 \n\t"                 \
23783    "adc r24, r1 \n\t"                 \
23784    "adc r22, r25 \n\t"                \
23785    "mul r3, r13 \n\t"                 \
23786    "add r23, r0 \n\t"                 \
23787    "adc r24, r1 \n\t"                 \
23788    "adc r22, r25 \n\t"                \
23789    "st z+, r23 \n\t"                  \
23790                                       \
23791    "ld r5, x+ \n\t"                   \
23792    "ldi r23, 0 \n\t"                  \
23793    "mul r6, r17 \n\t"                 \
23794    "add r24, r0 \n\t"                 \
23795    "adc r22, r1 \n\t"                 \
23796    "adc r23, r25 \n\t"                \
23797    "mul r7, r16 \n\t"                 \
23798    "add r24, r0 \n\t"                 \
23799    "adc r22, r1 \n\t"                 \
23800    "adc r23, r25 \n\t"                \
23801    "mul r2, r15 \n\t"                 \
23802    "add r24, r0 \n\t"                 \
23803    "adc r22, r1 \n\t"                 \
23804    "adc r23, r25 \n\t"                \
23805    "mul r3, r14 \n\t"                 \
23806    "add r24, r0 \n\t"                 \
23807    "adc r22, r1 \n\t"                 \
23808    "adc r23, r25 \n\t"                \
23809    "st z+, r24 \n\t"                  \
23810                                       \
23811    "ld r6, x+ \n\t"                   \
23812    "ldi r24, 0 \n\t"                  \
23813    "mul r7, r17 \n\t"                 \
23814    "add r22, r0 \n\t"                 \
23815    "adc r23, r1 \n\t"                 \
23816    "adc r24, r25 \n\t"                \
23817    "mul r2, r16 \n\t"                 \
23818    "add r22, r0 \n\t"                 \
23819    "adc r23, r1 \n\t"                 \
23820    "adc r24, r25 \n\t"                \
23821    "mul r3, r15 \n\t"                 \
23822    "add r22, r0 \n\t"                 \
23823    "adc r23, r1 \n\t"                 \
23824    "adc r24, r25 \n\t"                \
23825    "mul r4, r14 \n\t"                 \
23826    "add r22, r0 \n\t"                 \
23827    "adc r23, r1 \n\t"                 \
23828    "adc r24, r25 \n\t"                \
23829    "st z+, r22 \n\t"                  \
23830                                       \
23831    "ld r7, x+ \n\t"                   \
23832    "ldi r22, 0 \n\t"                  \
23833    "mul r2, r17 \n\t"                 \
23834    "add r23, r0 \n\t"                 \
23835    "adc r24, r1 \n\t"                 \
23836    "adc r22, r25 \n\t"                \
23837    "mul r3, r16 \n\t"                 \
23838    "add r23, r0 \n\t"                 \
23839    "adc r24, r1 \n\t"                 \
23840    "adc r22, r25 \n\t"                \
23841    "mul r4, r15 \n\t"                 \
23842    "add r23, r0 \n\t"                 \
23843    "adc r24, r1 \n\t"                 \
23844    "adc r22, r25 \n\t"                \
23845    "st z+, r23 \n\t"                  \
23846                                       \
23847    "ldi r23, 0 \n\t"                  \
23848    "mul r3, r17 \n\t"                 \
23849    "add r24, r0 \n\t"                 \
23850    "adc r22, r1 \n\t"                 \
23851    "adc r23, r25 \n\t"                \
23852    "mul r4, r16 \n\t"                 \
23853    "add r24, r0 \n\t"                 \
23854    "adc r22, r1 \n\t"                 \
23855    "adc r23, r25 \n\t"                \
23856    "mul r5, r15 \n\t"                 \
23857    "add r24, r0 \n\t"                 \
23858    "adc r22, r1 \n\t"                 \
23859    "adc r23, r25 \n\t"                \
23860    "st z+, r24 \n\t"                  \
23861                                       \
23862    "ldi r24, 0 \n\t"                  \
23863    "mul r4, r17 \n\t"                 \
23864    "add r22, r0 \n\t"                 \
23865    "adc r23, r1 \n\t"                 \
23866    "adc r24, r25 \n\t"                \
23867    "mul r5, r16 \n\t"                 \
23868    "add r22, r0 \n\t"                 \
23869    "adc r23, r1 \n\t"                 \
23870    "adc r24, r25 \n\t"                \
23871    "st z+, r22 \n\t"                  \
23872                                       \
23873    "ldi r22, 0 \n\t"                  \
23874    "mul r5, r17 \n\t"                 \
23875    "add r23, r0 \n\t"                 \
23876    "adc r24, r1 \n\t"                 \
23877    "adc r22, r25 \n\t"                \
23878    "mul r6, r16 \n\t"                 \
23879    "add r23, r0 \n\t"                 \
23880    "adc r24, r1 \n\t"                 \
23881    "adc r22, r25 \n\t"                \
23882    "st z+, r23 \n\t"                  \
23883                                       \
23884    "ldi r23, 0 \n\t"                  \
23885    "mul r6, r17 \n\t"                 \
23886    "add r24, r0 \n\t"                 \
23887    "adc r22, r1 \n\t"                 \
23888    "adc r23, r25 \n\t"                \
23889    "st z+, r24 \n\t"                  \
23890                                       \
23891    "mul r7, r17 \n\t"                 \
23892    "add r22, r0 \n\t"                 \
23893    "adc r23, r1 \n\t"                 \
23894    "st z+, r22 \n\t"                  \
23895    "st z+, r23 \n\t"                  \
23896                                       \
23897    "sbiw r26, 12 \n\t"                \
23898    "sbiw r30, 44 \n\t"                \
23899    "ld r2, x+ \n\t"                   \
23900    "ld r3, x+ \n\t"                   \
23901    "ld r4, x+ \n\t"                   \
23902    "ld r5, x+ \n\t"                   \
23903    "ld r6, x+ \n\t"                   \
23904    "ld r7, x+ \n\t"                   \
23905    "ld r8, x+ \n\t"                   \
23906    "ld r9, x+ \n\t"                   \
23907    "ld r10, x+ \n\t"                  \
23908    "ld r11, x+ \n\t"                  \
23909    "ld r12, x+ \n\t"                  \
23910    "ld r13, x+ \n\t"                  \
23911    "ld r14, x+ \n\t"                  \
23912    "ld r15, x+ \n\t"                  \
23913    "ld r16, x+ \n\t"                  \
23914    "ld r17, x+ \n\t"                  \
23915    "ld r18, x+ \n\t"                  \
23916    "ld r19, x+ \n\t"                  \
23917    "ld r20, x+ \n\t"                  \
23918    "ld r21, x+ \n\t"                  \
23919                                       \
23920    "ldi r23, 0 \n\t"                  \
23921    "mul r2, r2 \n\t"                  \
23922    "st z+, r0 \n\t"                   \
23923    "mov r22, r1 \n\t"                 \
23924                                       \
23925    "ldi r24, 0 \n\t"                  \
23926    "mul r2, r3 \n\t"                  \
23927    "add r22, r0 \n\t"                 \
23928    "adc r23, r1 \n\t"                 \
23929    "adc r24, r25 \n\t"                \
23930    "add r22, r0 \n\t"                 \
23931    "adc r23, r1 \n\t"                 \
23932    "adc r24, r25 \n\t"                \
23933    "st z+, r22 \n\t"                  \
23934                                       \
23935    "ldi r22, 0 \n\t"                  \
23936    "mul r2, r4 \n\t"                  \
23937    "add r23, r0 \n\t"                 \
23938    "adc r24, r1 \n\t"                 \
23939    "adc r22, r25 \n\t"                \
23940    "add r23, r0 \n\t"                 \
23941    "adc r24, r1 \n\t"                 \
23942    "adc r22, r25 \n\t"                \
23943    "mul r3, r3 \n\t"                  \
23944    "add r23, r0 \n\t"                 \
23945    "adc r24, r1 \n\t"                 \
23946    "adc r22, r25 \n\t"                \
23947    "st z+, r23 \n\t"                  \
23948                                       \
23949    "ldi r29, 0 \n\t"                  \
23950    "mul r2, r5 \n\t"                  \
23951    "mov r23, r0 \n\t"                 \
23952    "mov r28, r1 \n\t"                 \
23953    "mul r3, r4 \n\t"                  \
23954    "add r23, r0 \n\t"                 \
23955    "adc r28, r1 \n\t"                 \
23956    "adc r29, r25 \n\t"                \
23957    "lsl r23 \n\t"                     \
23958    "rol r28 \n\t"                     \
23959    "rol r29 \n\t"                     \
23960    "add r23, r24 \n\t"                \
23961    "adc r28, r22 \n\t"                \
23962    "adc r29, r25 \n\t"                \
23963    "st z+, r23 \n\t"                  \
23964                                       \
23965    "ldi r22, 0 \n\t"                  \
23966    "mul r2, r6 \n\t"                  \
23967    "mov r23, r0 \n\t"                 \
23968    "mov r24, r1 \n\t"                 \
23969    "mul r3, r5 \n\t"                  \
23970    "add r23, r0 \n\t"                 \
23971    "adc r24, r1 \n\t"                 \
23972    "adc r22, r25 \n\t"                \
23973    "lsl r23 \n\t"                     \
23974    "rol r24 \n\t"                     \
23975    "rol r22 \n\t"                     \
23976    "mul r4, r4 \n\t"                  \
23977    "add r23, r0 \n\t"                 \
23978    "adc r24, r1 \n\t"                 \
23979    "adc r22, r25 \n\t"                \
23980    "add r23, r28 \n\t"                \
23981    "adc r24, r29 \n\t"                \
23982    "adc r22, r25 \n\t"                \
23983    "st z+, r23 \n\t"                  \
23984                                       \
23985    "ldi r29, 0 \n\t"                  \
23986    "mul r2, r7 \n\t"                  \
23987    "mov r23, r0 \n\t"                 \
23988    "mov r28, r1 \n\t"                 \
23989    "mul r3, r6 \n\t"                  \
23990    "add r23, r0 \n\t"                 \
23991    "adc r28, r1 \n\t"                 \
23992    "adc r29, r25 \n\t"                \
23993    "mul r4, r5 \n\t"                  \
23994    "add r23, r0 \n\t"                 \
23995    "adc r28, r1 \n\t"                 \
23996    "adc r29, r25 \n\t"                \
23997    "lsl r23 \n\t"                     \
23998    "rol r28 \n\t"                     \
23999    "rol r29 \n\t"                     \
24000    "add r23, r24 \n\t"                \
24001    "adc r28, r22 \n\t"                \
24002    "adc r29, r25 \n\t"                \
24003    "st z+, r23 \n\t"                  \
24004                                       \
24005    "ldi r22, 0 \n\t"                  \
24006    "mul r2, r8 \n\t"                  \
24007    "mov r23, r0 \n\t"                 \
24008    "mov r24, r1 \n\t"                 \
24009    "mul r3, r7 \n\t"                  \
24010    "add r23, r0 \n\t"                 \
24011    "adc r24, r1 \n\t"                 \
24012    "adc r22, r25 \n\t"                \
24013    "mul r4, r6 \n\t"                  \
24014    "add r23, r0 \n\t"                 \
24015    "adc r24, r1 \n\t"                 \
24016    "adc r22, r25 \n\t"                \
24017    "lsl r23 \n\t"                     \
24018    "rol r24 \n\t"                     \
24019    "rol r22 \n\t"                     \
24020    "mul r5, r5 \n\t"                  \
24021    "add r23, r0 \n\t"                 \
24022    "adc r24, r1 \n\t"                 \
24023    "adc r22, r25 \n\t"                \
24024    "add r23, r28 \n\t"                \
24025    "adc r24, r29 \n\t"                \
24026    "adc r22, r25 \n\t"                \
24027    "st z+, r23 \n\t"                  \
24028                                       \
24029    "ldi r29, 0 \n\t"                  \
24030    "mul r2, r9 \n\t"                  \
24031    "mov r23, r0 \n\t"                 \
24032    "mov r28, r1 \n\t"                 \
24033    "mul r3, r8 \n\t"                  \
24034    "add r23, r0 \n\t"                 \
24035    "adc r28, r1 \n\t"                 \
24036    "adc r29, r25 \n\t"                \
24037    "mul r4, r7 \n\t"                  \
24038    "add r23, r0 \n\t"                 \
24039    "adc r28, r1 \n\t"                 \
24040    "adc r29, r25 \n\t"                \
24041    "mul r5, r6 \n\t"                  \
24042    "add r23, r0 \n\t"                 \
24043    "adc r28, r1 \n\t"                 \
24044    "adc r29, r25 \n\t"                \
24045    "lsl r23 \n\t"                     \
24046    "rol r28 \n\t"                     \
24047    "rol r29 \n\t"                     \
24048    "add r23, r24 \n\t"                \
24049    "adc r28, r22 \n\t"                \
24050    "adc r29, r25 \n\t"                \
24051    "st z+, r23 \n\t"                  \
24052                                       \
24053    "ldi r22, 0 \n\t"                  \
24054    "mul r2, r10 \n\t"                 \
24055    "mov r23, r0 \n\t"                 \
24056    "mov r24, r1 \n\t"                 \
24057    "mul r3, r9 \n\t"                  \
24058    "add r23, r0 \n\t"                 \
24059    "adc r24, r1 \n\t"                 \
24060    "adc r22, r25 \n\t"                \
24061    "mul r4, r8 \n\t"                  \
24062    "add r23, r0 \n\t"                 \
24063    "adc r24, r1 \n\t"                 \
24064    "adc r22, r25 \n\t"                \
24065    "mul r5, r7 \n\t"                  \
24066    "add r23, r0 \n\t"                 \
24067    "adc r24, r1 \n\t"                 \
24068    "adc r22, r25 \n\t"                \
24069    "lsl r23 \n\t"                     \
24070    "rol r24 \n\t"                     \
24071    "rol r22 \n\t"                     \
24072    "mul r6, r6 \n\t"                  \
24073    "add r23, r0 \n\t"                 \
24074    "adc r24, r1 \n\t"                 \
24075    "adc r22, r25 \n\t"                \
24076    "add r23, r28 \n\t"                \
24077    "adc r24, r29 \n\t"                \
24078    "adc r22, r25 \n\t"                \
24079    "st z+, r23 \n\t"                  \
24080                                       \
24081    "ldi r29, 0 \n\t"                  \
24082    "mul r2, r11 \n\t"                 \
24083    "mov r23, r0 \n\t"                 \
24084    "mov r28, r1 \n\t"                 \
24085    "mul r3, r10 \n\t"                 \
24086    "add r23, r0 \n\t"                 \
24087    "adc r28, r1 \n\t"                 \
24088    "adc r29, r25 \n\t"                \
24089    "mul r4, r9 \n\t"                  \
24090    "add r23, r0 \n\t"                 \
24091    "adc r28, r1 \n\t"                 \
24092    "adc r29, r25 \n\t"                \
24093    "mul r5, r8 \n\t"                  \
24094    "add r23, r0 \n\t"                 \
24095    "adc r28, r1 \n\t"                 \
24096    "adc r29, r25 \n\t"                \
24097    "mul r6, r7 \n\t"                  \
24098    "add r23, r0 \n\t"                 \
24099    "adc r28, r1 \n\t"                 \
24100    "adc r29, r25 \n\t"                \
24101    "lsl r23 \n\t"                     \
24102    "rol r28 \n\t"                     \
24103    "rol r29 \n\t"                     \
24104    "add r23, r24 \n\t"                \
24105    "adc r28, r22 \n\t"                \
24106    "adc r29, r25 \n\t"                \
24107    "st z+, r23 \n\t"                  \
24108                                       \
24109    "ldi r22, 0 \n\t"                  \
24110    "mul r2, r12 \n\t"                 \
24111    "mov r23, r0 \n\t"                 \
24112    "mov r24, r1 \n\t"                 \
24113    "mul r3, r11 \n\t"                 \
24114    "add r23, r0 \n\t"                 \
24115    "adc r24, r1 \n\t"                 \
24116    "adc r22, r25 \n\t"                \
24117    "mul r4, r10 \n\t"                 \
24118    "add r23, r0 \n\t"                 \
24119    "adc r24, r1 \n\t"                 \
24120    "adc r22, r25 \n\t"                \
24121    "mul r5, r9 \n\t"                  \
24122    "add r23, r0 \n\t"                 \
24123    "adc r24, r1 \n\t"                 \
24124    "adc r22, r25 \n\t"                \
24125    "mul r6, r8 \n\t"                  \
24126    "add r23, r0 \n\t"                 \
24127    "adc r24, r1 \n\t"                 \
24128    "adc r22, r25 \n\t"                \
24129    "lsl r23 \n\t"                     \
24130    "rol r24 \n\t"                     \
24131    "rol r22 \n\t"                     \
24132    "mul r7, r7 \n\t"                  \
24133    "add r23, r0 \n\t"                 \
24134    "adc r24, r1 \n\t"                 \
24135    "adc r22, r25 \n\t"                \
24136    "add r23, r28 \n\t"                \
24137    "adc r24, r29 \n\t"                \
24138    "adc r22, r25 \n\t"                \
24139    "st z+, r23 \n\t"                  \
24140                                       \
24141    "ldi r29, 0 \n\t"                  \
24142    "mul r2, r13 \n\t"                 \
24143    "mov r23, r0 \n\t"                 \
24144    "mov r28, r1 \n\t"                 \
24145    "mul r3, r12 \n\t"                 \
24146    "add r23, r0 \n\t"                 \
24147    "adc r28, r1 \n\t"                 \
24148    "adc r29, r25 \n\t"                \
24149    "mul r4, r11 \n\t"                 \
24150    "add r23, r0 \n\t"                 \
24151    "adc r28, r1 \n\t"                 \
24152    "adc r29, r25 \n\t"                \
24153    "mul r5, r10 \n\t"                 \
24154    "add r23, r0 \n\t"                 \
24155    "adc r28, r1 \n\t"                 \
24156    "adc r29, r25 \n\t"                \
24157    "mul r6, r9 \n\t"                  \
24158    "add r23, r0 \n\t"                 \
24159    "adc r28, r1 \n\t"                 \
24160    "adc r29, r25 \n\t"                \
24161    "mul r7, r8 \n\t"                  \
24162    "add r23, r0 \n\t"                 \
24163    "adc r28, r1 \n\t"                 \
24164    "adc r29, r25 \n\t"                \
24165    "lsl r23 \n\t"                     \
24166    "rol r28 \n\t"                     \
24167    "rol r29 \n\t"                     \
24168    "add r23, r24 \n\t"                \
24169    "adc r28, r22 \n\t"                \
24170    "adc r29, r25 \n\t"                \
24171    "st z+, r23 \n\t"                  \
24172                                       \
24173    "ldi r22, 0 \n\t"                  \
24174    "mul r2, r14 \n\t"                 \
24175    "mov r23, r0 \n\t"                 \
24176    "mov r24, r1 \n\t"                 \
24177    "mul r3, r13 \n\t"                 \
24178    "add r23, r0 \n\t"                 \
24179    "adc r24, r1 \n\t"                 \
24180    "adc r22, r25 \n\t"                \
24181    "mul r4, r12 \n\t"                 \
24182    "add r23, r0 \n\t"                 \
24183    "adc r24, r1 \n\t"                 \
24184    "adc r22, r25 \n\t"                \
24185    "mul r5, r11 \n\t"                 \
24186    "add r23, r0 \n\t"                 \
24187    "adc r24, r1 \n\t"                 \
24188    "adc r22, r25 \n\t"                \
24189    "mul r6, r10 \n\t"                 \
24190    "add r23, r0 \n\t"                 \
24191    "adc r24, r1 \n\t"                 \
24192    "adc r22, r25 \n\t"                \
24193    "mul r7, r9 \n\t"                  \
24194    "add r23, r0 \n\t"                 \
24195    "adc r24, r1 \n\t"                 \
24196    "adc r22, r25 \n\t"                \
24197    "lsl r23 \n\t"                     \
24198    "rol r24 \n\t"                     \
24199    "rol r22 \n\t"                     \
24200    "mul r8, r8 \n\t"                  \
24201    "add r23, r0 \n\t"                 \
24202    "adc r24, r1 \n\t"                 \
24203    "adc r22, r25 \n\t"                \
24204    "add r23, r28 \n\t"                \
24205    "adc r24, r29 \n\t"                \
24206    "adc r22, r25 \n\t"                \
24207    "st z+, r23 \n\t"                  \
24208                                       \
24209    "ldi r29, 0 \n\t"                  \
24210    "mul r2, r15 \n\t"                 \
24211    "mov r23, r0 \n\t"                 \
24212    "mov r28, r1 \n\t"                 \
24213    "mul r3, r14 \n\t"                 \
24214    "add r23, r0 \n\t"                 \
24215    "adc r28, r1 \n\t"                 \
24216    "adc r29, r25 \n\t"                \
24217    "mul r4, r13 \n\t"                 \
24218    "add r23, r0 \n\t"                 \
24219    "adc r28, r1 \n\t"                 \
24220    "adc r29, r25 \n\t"                \
24221    "mul r5, r12 \n\t"                 \
24222    "add r23, r0 \n\t"                 \
24223    "adc r28, r1 \n\t"                 \
24224    "adc r29, r25 \n\t"                \
24225    "mul r6, r11 \n\t"                 \
24226    "add r23, r0 \n\t"                 \
24227    "adc r28, r1 \n\t"                 \
24228    "adc r29, r25 \n\t"                \
24229    "mul r7, r10 \n\t"                 \
24230    "add r23, r0 \n\t"                 \
24231    "adc r28, r1 \n\t"                 \
24232    "adc r29, r25 \n\t"                \
24233    "mul r8, r9 \n\t"                  \
24234    "add r23, r0 \n\t"                 \
24235    "adc r28, r1 \n\t"                 \
24236    "adc r29, r25 \n\t"                \
24237    "lsl r23 \n\t"                     \
24238    "rol r28 \n\t"                     \
24239    "rol r29 \n\t"                     \
24240    "add r23, r24 \n\t"                \
24241    "adc r28, r22 \n\t"                \
24242    "adc r29, r25 \n\t"                \
24243    "st z+, r23 \n\t"                  \
24244                                       \
24245    "ldi r22, 0 \n\t"                  \
24246    "mul r2, r16 \n\t"                 \
24247    "mov r23, r0 \n\t"                 \
24248    "mov r24, r1 \n\t"                 \
24249    "mul r3, r15 \n\t"                 \
24250    "add r23, r0 \n\t"                 \
24251    "adc r24, r1 \n\t"                 \
24252    "adc r22, r25 \n\t"                \
24253    "mul r4, r14 \n\t"                 \
24254    "add r23, r0 \n\t"                 \
24255    "adc r24, r1 \n\t"                 \
24256    "adc r22, r25 \n\t"                \
24257    "mul r5, r13 \n\t"                 \
24258    "add r23, r0 \n\t"                 \
24259    "adc r24, r1 \n\t"                 \
24260    "adc r22, r25 \n\t"                \
24261    "mul r6, r12 \n\t"                 \
24262    "add r23, r0 \n\t"                 \
24263    "adc r24, r1 \n\t"                 \
24264    "adc r22, r25 \n\t"                \
24265    "mul r7, r11 \n\t"                 \
24266    "add r23, r0 \n\t"                 \
24267    "adc r24, r1 \n\t"                 \
24268    "adc r22, r25 \n\t"                \
24269    "mul r8, r10 \n\t"                 \
24270    "add r23, r0 \n\t"                 \
24271    "adc r24, r1 \n\t"                 \
24272    "adc r22, r25 \n\t"                \
24273    "lsl r23 \n\t"                     \
24274    "rol r24 \n\t"                     \
24275    "rol r22 \n\t"                     \
24276    "mul r9, r9 \n\t"                  \
24277    "add r23, r0 \n\t"                 \
24278    "adc r24, r1 \n\t"                 \
24279    "adc r22, r25 \n\t"                \
24280    "add r23, r28 \n\t"                \
24281    "adc r24, r29 \n\t"                \
24282    "adc r22, r25 \n\t"                \
24283    "st z+, r23 \n\t"                  \
24284                                       \
24285    "ldi r29, 0 \n\t"                  \
24286    "mul r2, r17 \n\t"                 \
24287    "mov r23, r0 \n\t"                 \
24288    "mov r28, r1 \n\t"                 \
24289    "mul r3, r16 \n\t"                 \
24290    "add r23, r0 \n\t"                 \
24291    "adc r28, r1 \n\t"                 \
24292    "adc r29, r25 \n\t"                \
24293    "mul r4, r15 \n\t"                 \
24294    "add r23, r0 \n\t"                 \
24295    "adc r28, r1 \n\t"                 \
24296    "adc r29, r25 \n\t"                \
24297    "mul r5, r14 \n\t"                 \
24298    "add r23, r0 \n\t"                 \
24299    "adc r28, r1 \n\t"                 \
24300    "adc r29, r25 \n\t"                \
24301    "mul r6, r13 \n\t"                 \
24302    "add r23, r0 \n\t"                 \
24303    "adc r28, r1 \n\t"                 \
24304    "adc r29, r25 \n\t"                \
24305    "mul r7, r12 \n\t"                 \
24306    "add r23, r0 \n\t"                 \
24307    "adc r28, r1 \n\t"                 \
24308    "adc r29, r25 \n\t"                \
24309    "mul r8, r11 \n\t"                 \
24310    "add r23, r0 \n\t"                 \
24311    "adc r28, r1 \n\t"                 \
24312    "adc r29, r25 \n\t"                \
24313    "mul r9, r10 \n\t"                 \
24314    "add r23, r0 \n\t"                 \
24315    "adc r28, r1 \n\t"                 \
24316    "adc r29, r25 \n\t"                \
24317    "lsl r23 \n\t"                     \
24318    "rol r28 \n\t"                     \
24319    "rol r29 \n\t"                     \
24320    "add r23, r24 \n\t"                \
24321    "adc r28, r22 \n\t"                \
24322    "adc r29, r25 \n\t"                \
24323    "st z+, r23 \n\t"                  \
24324                                       \
24325    "ldi r22, 0 \n\t"                  \
24326    "mul r2, r18 \n\t"                 \
24327    "mov r23, r0 \n\t"                 \
24328    "mov r24, r1 \n\t"                 \
24329    "mul r3, r17 \n\t"                 \
24330    "add r23, r0 \n\t"                 \
24331    "adc r24, r1 \n\t"                 \
24332    "adc r22, r25 \n\t"                \
24333    "mul r4, r16 \n\t"                 \
24334    "add r23, r0 \n\t"                 \
24335    "adc r24, r1 \n\t"                 \
24336    "adc r22, r25 \n\t"                \
24337    "mul r5, r15 \n\t"                 \
24338    "add r23, r0 \n\t"                 \
24339    "adc r24, r1 \n\t"                 \
24340    "adc r22, r25 \n\t"                \
24341    "mul r6, r14 \n\t"                 \
24342    "add r23, r0 \n\t"                 \
24343    "adc r24, r1 \n\t"                 \
24344    "adc r22, r25 \n\t"                \
24345    "mul r7, r13 \n\t"                 \
24346    "add r23, r0 \n\t"                 \
24347    "adc r24, r1 \n\t"                 \
24348    "adc r22, r25 \n\t"                \
24349    "mul r8, r12 \n\t"                 \
24350    "add r23, r0 \n\t"                 \
24351    "adc r24, r1 \n\t"                 \
24352    "adc r22, r25 \n\t"                \
24353    "mul r9, r11 \n\t"                 \
24354    "add r23, r0 \n\t"                 \
24355    "adc r24, r1 \n\t"                 \
24356    "adc r22, r25 \n\t"                \
24357    "lsl r23 \n\t"                     \
24358    "rol r24 \n\t"                     \
24359    "rol r22 \n\t"                     \
24360    "mul r10, r10 \n\t"                \
24361    "add r23, r0 \n\t"                 \
24362    "adc r24, r1 \n\t"                 \
24363    "adc r22, r25 \n\t"                \
24364    "add r23, r28 \n\t"                \
24365    "adc r24, r29 \n\t"                \
24366    "adc r22, r25 \n\t"                \
24367    "st z+, r23 \n\t"                  \
24368                                       \
24369    "ldi r29, 0 \n\t"                  \
24370    "mul r2, r19 \n\t"                 \
24371    "mov r23, r0 \n\t"                 \
24372    "mov r28, r1 \n\t"                 \
24373    "mul r3, r18 \n\t"                 \
24374    "add r23, r0 \n\t"                 \
24375    "adc r28, r1 \n\t"                 \
24376    "adc r29, r25 \n\t"                \
24377    "mul r4, r17 \n\t"                 \
24378    "add r23, r0 \n\t"                 \
24379    "adc r28, r1 \n\t"                 \
24380    "adc r29, r25 \n\t"                \
24381    "mul r5, r16 \n\t"                 \
24382    "add r23, r0 \n\t"                 \
24383    "adc r28, r1 \n\t"                 \
24384    "adc r29, r25 \n\t"                \
24385    "mul r6, r15 \n\t"                 \
24386    "add r23, r0 \n\t"                 \
24387    "adc r28, r1 \n\t"                 \
24388    "adc r29, r25 \n\t"                \
24389    "mul r7, r14 \n\t"                 \
24390    "add r23, r0 \n\t"                 \
24391    "adc r28, r1 \n\t"                 \
24392    "adc r29, r25 \n\t"                \
24393    "mul r8, r13 \n\t"                 \
24394    "add r23, r0 \n\t"                 \
24395    "adc r28, r1 \n\t"                 \
24396    "adc r29, r25 \n\t"                \
24397    "mul r9, r12 \n\t"                 \
24398    "add r23, r0 \n\t"                 \
24399    "adc r28, r1 \n\t"                 \
24400    "adc r29, r25 \n\t"                \
24401    "mul r10, r11 \n\t"                \
24402    "add r23, r0 \n\t"                 \
24403    "adc r28, r1 \n\t"                 \
24404    "adc r29, r25 \n\t"                \
24405    "lsl r23 \n\t"                     \
24406    "rol r28 \n\t"                     \
24407    "rol r29 \n\t"                     \
24408    "add r23, r24 \n\t"                \
24409    "adc r28, r22 \n\t"                \
24410    "adc r29, r25 \n\t"                \
24411    "st z+, r23 \n\t"                  \
24412                                       \
24413    "ldi r22, 0 \n\t"                  \
24414    "mul r2, r20 \n\t"                 \
24415    "mov r23, r0 \n\t"                 \
24416    "mov r24, r1 \n\t"                 \
24417    "mul r3, r19 \n\t"                 \
24418    "add r23, r0 \n\t"                 \
24419    "adc r24, r1 \n\t"                 \
24420    "adc r22, r25 \n\t"                \
24421    "mul r4, r18 \n\t"                 \
24422    "add r23, r0 \n\t"                 \
24423    "adc r24, r1 \n\t"                 \
24424    "adc r22, r25 \n\t"                \
24425    "mul r5, r17 \n\t"                 \
24426    "add r23, r0 \n\t"                 \
24427    "adc r24, r1 \n\t"                 \
24428    "adc r22, r25 \n\t"                \
24429    "mul r6, r16 \n\t"                 \
24430    "add r23, r0 \n\t"                 \
24431    "adc r24, r1 \n\t"                 \
24432    "adc r22, r25 \n\t"                \
24433    "mul r7, r15 \n\t"                 \
24434    "add r23, r0 \n\t"                 \
24435    "adc r24, r1 \n\t"                 \
24436    "adc r22, r25 \n\t"                \
24437    "mul r8, r14 \n\t"                 \
24438    "add r23, r0 \n\t"                 \
24439    "adc r24, r1 \n\t"                 \
24440    "adc r22, r25 \n\t"                \
24441    "mul r9, r13 \n\t"                 \
24442    "add r23, r0 \n\t"                 \
24443    "adc r24, r1 \n\t"                 \
24444    "adc r22, r25 \n\t"                \
24445    "mul r10, r12 \n\t"                \
24446    "add r23, r0 \n\t"                 \
24447    "adc r24, r1 \n\t"                 \
24448    "adc r22, r25 \n\t"                \
24449    "lsl r23 \n\t"                     \
24450    "rol r24 \n\t"                     \
24451    "rol r22 \n\t"                     \
24452    "mul r11, r11 \n\t"                \
24453    "add r23, r0 \n\t"                 \
24454    "adc r24, r1 \n\t"                 \
24455    "adc r22, r25 \n\t"                \
24456    "add r23, r28 \n\t"                \
24457    "adc r24, r29 \n\t"                \
24458    "adc r22, r25 \n\t"                \
24459    "st z+, r23 \n\t"                  \
24460                                       \
24461    "ldi r29, 0 \n\t"                  \
24462    "mul r2, r21 \n\t"                 \
24463    "mov r23, r0 \n\t"                 \
24464    "mov r28, r1 \n\t"                 \
24465    "mul r3, r20 \n\t"                 \
24466    "add r23, r0 \n\t"                 \
24467    "adc r28, r1 \n\t"                 \
24468    "adc r29, r25 \n\t"                \
24469    "mul r4, r19 \n\t"                 \
24470    "add r23, r0 \n\t"                 \
24471    "adc r28, r1 \n\t"                 \
24472    "adc r29, r25 \n\t"                \
24473    "mul r5, r18 \n\t"                 \
24474    "add r23, r0 \n\t"                 \
24475    "adc r28, r1 \n\t"                 \
24476    "adc r29, r25 \n\t"                \
24477    "mul r6, r17 \n\t"                 \
24478    "add r23, r0 \n\t"                 \
24479    "adc r28, r1 \n\t"                 \
24480    "adc r29, r25 \n\t"                \
24481    "mul r7, r16 \n\t"                 \
24482    "add r23, r0 \n\t"                 \
24483    "adc r28, r1 \n\t"                 \
24484    "adc r29, r25 \n\t"                \
24485    "mul r8, r15 \n\t"                 \
24486    "add r23, r0 \n\t"                 \
24487    "adc r28, r1 \n\t"                 \
24488    "adc r29, r25 \n\t"                \
24489    "mul r9, r14 \n\t"                 \
24490    "add r23, r0 \n\t"                 \
24491    "adc r28, r1 \n\t"                 \
24492    "adc r29, r25 \n\t"                \
24493    "mul r10, r13 \n\t"                \
24494    "add r23, r0 \n\t"                 \
24495    "adc r28, r1 \n\t"                 \
24496    "adc r29, r25 \n\t"                \
24497    "mul r11, r12 \n\t"                \
24498    "add r23, r0 \n\t"                 \
24499    "adc r28, r1 \n\t"                 \
24500    "adc r29, r25 \n\t"                \
24501    "lsl r23 \n\t"                     \
24502    "rol r28 \n\t"                     \
24503    "rol r29 \n\t"                     \
24504    "add r23, r24 \n\t"                \
24505    "adc r28, r22 \n\t"                \
24506    "adc r29, r25 \n\t"                \
24507    "st z+, r23 \n\t"                  \
24508                                       \
24509    "ld r2, x+ \n\t"                   \
24510    "ldi r22, 0 \n\t"                  \
24511    "mul r3, r21 \n\t"                 \
24512    "mov r23, r0 \n\t"                 \
24513    "mov r24, r1 \n\t"                 \
24514    "mul r4, r20 \n\t"                 \
24515    "add r23, r0 \n\t"                 \
24516    "adc r24, r1 \n\t"                 \
24517    "adc r22, r25 \n\t"                \
24518    "mul r5, r19 \n\t"                 \
24519    "add r23, r0 \n\t"                 \
24520    "adc r24, r1 \n\t"                 \
24521    "adc r22, r25 \n\t"                \
24522    "mul r6, r18 \n\t"                 \
24523    "add r23, r0 \n\t"                 \
24524    "adc r24, r1 \n\t"                 \
24525    "adc r22, r25 \n\t"                \
24526    "mul r7, r17 \n\t"                 \
24527    "add r23, r0 \n\t"                 \
24528    "adc r24, r1 \n\t"                 \
24529    "adc r22, r25 \n\t"                \
24530    "mul r8, r16 \n\t"                 \
24531    "add r23, r0 \n\t"                 \
24532    "adc r24, r1 \n\t"                 \
24533    "adc r22, r25 \n\t"                \
24534    "mul r9, r15 \n\t"                 \
24535    "add r23, r0 \n\t"                 \
24536    "adc r24, r1 \n\t"                 \
24537    "adc r22, r25 \n\t"                \
24538    "mul r10, r14 \n\t"                \
24539    "add r23, r0 \n\t"                 \
24540    "adc r24, r1 \n\t"                 \
24541    "adc r22, r25 \n\t"                \
24542    "mul r11, r13 \n\t"                \
24543    "add r23, r0 \n\t"                 \
24544    "adc r24, r1 \n\t"                 \
24545    "adc r22, r25 \n\t"                \
24546    "ld r0, z \n\t"                    \
24547    "add r23, r0 \n\t"                 \
24548    "adc r24, r25 \n\t"                \
24549    "adc r22, r25 \n\t"                \
24550    "lsl r23 \n\t"                     \
24551    "rol r24 \n\t"                     \
24552    "rol r22 \n\t"                     \
24553    "mul r12, r12 \n\t"                \
24554    "add r23, r0 \n\t"                 \
24555    "adc r24, r1 \n\t"                 \
24556    "adc r22, r25 \n\t"                \
24557    "add r23, r28 \n\t"                \
24558    "adc r24, r29 \n\t"                \
24559    "adc r22, r25 \n\t"                \
24560    "st z+, r23 \n\t"                  \
24561                                       \
24562    "ldi r29, 0 \n\t"                  \
24563    "mul r3, r2 \n\t"                  \
24564    "mov r23, r0 \n\t"                 \
24565    "mov r28, r1 \n\t"                 \
24566    "mul r4, r21 \n\t"                 \
24567    "add r23, r0 \n\t"                 \
24568    "adc r28, r1 \n\t"                 \
24569    "adc r29, r25 \n\t"                \
24570    "mul r5, r20 \n\t"                 \
24571    "add r23, r0 \n\t"                 \
24572    "adc r28, r1 \n\t"                 \
24573    "adc r29, r25 \n\t"                \
24574    "mul r6, r19 \n\t"                 \
24575    "add r23, r0 \n\t"                 \
24576    "adc r28, r1 \n\t"                 \
24577    "adc r29, r25 \n\t"                \
24578    "mul r7, r18 \n\t"                 \
24579    "add r23, r0 \n\t"                 \
24580    "adc r28, r1 \n\t"                 \
24581    "adc r29, r25 \n\t"                \
24582    "mul r8, r17 \n\t"                 \
24583    "add r23, r0 \n\t"                 \
24584    "adc r28, r1 \n\t"                 \
24585    "adc r29, r25 \n\t"                \
24586    "mul r9, r16 \n\t"                 \
24587    "add r23, r0 \n\t"                 \
24588    "adc r28, r1 \n\t"                 \
24589    "adc r29, r25 \n\t"                \
24590    "mul r10, r15 \n\t"                \
24591    "add r23, r0 \n\t"                 \
24592    "adc r28, r1 \n\t"                 \
24593    "adc r29, r25 \n\t"                \
24594    "mul r11, r14 \n\t"                \
24595    "add r23, r0 \n\t"                 \
24596    "adc r28, r1 \n\t"                 \
24597    "adc r29, r25 \n\t"                \
24598    "mul r12, r13 \n\t"                \
24599    "add r23, r0 \n\t"                 \
24600    "adc r28, r1 \n\t"                 \
24601    "adc r29, r25 \n\t"                \
24602    "ld r0, z \n\t"                    \
24603    "add r23, r0 \n\t"                 \
24604    "adc r28, r25 \n\t"                \
24605    "adc r29, r25 \n\t"                \
24606    "lsl r23 \n\t"                     \
24607    "rol r28 \n\t"                     \
24608    "rol r29 \n\t"                     \
24609    "add r23, r24 \n\t"                \
24610    "adc r28, r22 \n\t"                \
24611    "adc r29, r25 \n\t"                \
24612    "st z+, r23 \n\t"                  \
24613                                       \
24614    "ld r3, x+ \n\t"                   \
24615    "ldi r22, 0 \n\t"                  \
24616    "mul r4, r2 \n\t"                  \
24617    "mov r23, r0 \n\t"                 \
24618    "mov r24, r1 \n\t"                 \
24619    "mul r5, r21 \n\t"                 \
24620    "add r23, r0 \n\t"                 \
24621    "adc r24, r1 \n\t"                 \
24622    "adc r22, r25 \n\t"                \
24623    "mul r6, r20 \n\t"                 \
24624    "add r23, r0 \n\t"                 \
24625    "adc r24, r1 \n\t"                 \
24626    "adc r22, r25 \n\t"                \
24627    "mul r7, r19 \n\t"                 \
24628    "add r23, r0 \n\t"                 \
24629    "adc r24, r1 \n\t"                 \
24630    "adc r22, r25 \n\t"                \
24631    "mul r8, r18 \n\t"                 \
24632    "add r23, r0 \n\t"                 \
24633    "adc r24, r1 \n\t"                 \
24634    "adc r22, r25 \n\t"                \
24635    "mul r9, r17 \n\t"                 \
24636    "add r23, r0 \n\t"                 \
24637    "adc r24, r1 \n\t"                 \
24638    "adc r22, r25 \n\t"                \
24639    "mul r10, r16 \n\t"                \
24640    "add r23, r0 \n\t"                 \
24641    "adc r24, r1 \n\t"                 \
24642    "adc r22, r25 \n\t"                \
24643    "mul r11, r15 \n\t"                \
24644    "add r23, r0 \n\t"                 \
24645    "adc r24, r1 \n\t"                 \
24646    "adc r22, r25 \n\t"                \
24647    "mul r12, r14 \n\t"                \
24648    "add r23, r0 \n\t"                 \
24649    "adc r24, r1 \n\t"                 \
24650    "adc r22, r25 \n\t"                \
24651    "ld r0, z \n\t"                    \
24652    "add r23, r0 \n\t"                 \
24653    "adc r24, r25 \n\t"                \
24654    "adc r22, r25 \n\t"                \
24655    "lsl r23 \n\t"                     \
24656    "rol r24 \n\t"                     \
24657    "rol r22 \n\t"                     \
24658    "mul r13, r13 \n\t"                \
24659    "add r23, r0 \n\t"                 \
24660    "adc r24, r1 \n\t"                 \
24661    "adc r22, r25 \n\t"                \
24662    "add r23, r28 \n\t"                \
24663    "adc r24, r29 \n\t"                \
24664    "adc r22, r25 \n\t"                \
24665    "st z+, r23 \n\t"                  \
24666                                       \
24667    "ldi r29, 0 \n\t"                  \
24668    "mul r4, r3 \n\t"                  \
24669    "mov r23, r0 \n\t"                 \
24670    "mov r28, r1 \n\t"                 \
24671    "mul r5, r2 \n\t"                  \
24672    "add r23, r0 \n\t"                 \
24673    "adc r28, r1 \n\t"                 \
24674    "adc r29, r25 \n\t"                \
24675    "mul r6, r21 \n\t"                 \
24676    "add r23, r0 \n\t"                 \
24677    "adc r28, r1 \n\t"                 \
24678    "adc r29, r25 \n\t"                \
24679    "mul r7, r20 \n\t"                 \
24680    "add r23, r0 \n\t"                 \
24681    "adc r28, r1 \n\t"                 \
24682    "adc r29, r25 \n\t"                \
24683    "mul r8, r19 \n\t"                 \
24684    "add r23, r0 \n\t"                 \
24685    "adc r28, r1 \n\t"                 \
24686    "adc r29, r25 \n\t"                \
24687    "mul r9, r18 \n\t"                 \
24688    "add r23, r0 \n\t"                 \
24689    "adc r28, r1 \n\t"                 \
24690    "adc r29, r25 \n\t"                \
24691    "mul r10, r17 \n\t"                \
24692    "add r23, r0 \n\t"                 \
24693    "adc r28, r1 \n\t"                 \
24694    "adc r29, r25 \n\t"                \
24695    "mul r11, r16 \n\t"                \
24696    "add r23, r0 \n\t"                 \
24697    "adc r28, r1 \n\t"                 \
24698    "adc r29, r25 \n\t"                \
24699    "mul r12, r15 \n\t"                \
24700    "add r23, r0 \n\t"                 \
24701    "adc r28, r1 \n\t"                 \
24702    "adc r29, r25 \n\t"                \
24703    "mul r13, r14 \n\t"                \
24704    "add r23, r0 \n\t"                 \
24705    "adc r28, r1 \n\t"                 \
24706    "adc r29, r25 \n\t"                \
24707    "ld r0, z \n\t"                    \
24708    "add r23, r0 \n\t"                 \
24709    "adc r28, r25 \n\t"                \
24710    "adc r29, r25 \n\t"                \
24711    "lsl r23 \n\t"                     \
24712    "rol r28 \n\t"                     \
24713    "rol r29 \n\t"                     \
24714    "add r23, r24 \n\t"                \
24715    "adc r28, r22 \n\t"                \
24716    "adc r29, r25 \n\t"                \
24717    "st z+, r23 \n\t"                  \
24718                                       \
24719    "ld r4, x+ \n\t"                   \
24720    "ldi r22, 0 \n\t"                  \
24721    "mul r5, r3 \n\t"                  \
24722    "mov r23, r0 \n\t"                 \
24723    "mov r24, r1 \n\t"                 \
24724    "mul r6, r2 \n\t"                  \
24725    "add r23, r0 \n\t"                 \
24726    "adc r24, r1 \n\t"                 \
24727    "adc r22, r25 \n\t"                \
24728    "mul r7, r21 \n\t"                 \
24729    "add r23, r0 \n\t"                 \
24730    "adc r24, r1 \n\t"                 \
24731    "adc r22, r25 \n\t"                \
24732    "mul r8, r20 \n\t"                 \
24733    "add r23, r0 \n\t"                 \
24734    "adc r24, r1 \n\t"                 \
24735    "adc r22, r25 \n\t"                \
24736    "mul r9, r19 \n\t"                 \
24737    "add r23, r0 \n\t"                 \
24738    "adc r24, r1 \n\t"                 \
24739    "adc r22, r25 \n\t"                \
24740    "mul r10, r18 \n\t"                \
24741    "add r23, r0 \n\t"                 \
24742    "adc r24, r1 \n\t"                 \
24743    "adc r22, r25 \n\t"                \
24744    "mul r11, r17 \n\t"                \
24745    "add r23, r0 \n\t"                 \
24746    "adc r24, r1 \n\t"                 \
24747    "adc r22, r25 \n\t"                \
24748    "mul r12, r16 \n\t"                \
24749    "add r23, r0 \n\t"                 \
24750    "adc r24, r1 \n\t"                 \
24751    "adc r22, r25 \n\t"                \
24752    "mul r13, r15 \n\t"                \
24753    "add r23, r0 \n\t"                 \
24754    "adc r24, r1 \n\t"                 \
24755    "adc r22, r25 \n\t"                \
24756    "ld r0, z \n\t"                    \
24757    "add r23, r0 \n\t"                 \
24758    "adc r24, r25 \n\t"                \
24759    "adc r22, r25 \n\t"                \
24760    "lsl r23 \n\t"                     \
24761    "rol r24 \n\t"                     \
24762    "rol r22 \n\t"                     \
24763    "mul r14, r14 \n\t"                \
24764    "add r23, r0 \n\t"                 \
24765    "adc r24, r1 \n\t"                 \
24766    "adc r22, r25 \n\t"                \
24767    "add r23, r28 \n\t"                \
24768    "adc r24, r29 \n\t"                \
24769    "adc r22, r25 \n\t"                \
24770    "st z+, r23 \n\t"                  \
24771                                       \
24772    "ldi r29, 0 \n\t"                  \
24773    "mul r5, r4 \n\t"                  \
24774    "mov r23, r0 \n\t"                 \
24775    "mov r28, r1 \n\t"                 \
24776    "mul r6, r3 \n\t"                  \
24777    "add r23, r0 \n\t"                 \
24778    "adc r28, r1 \n\t"                 \
24779    "adc r29, r25 \n\t"                \
24780    "mul r7, r2 \n\t"                  \
24781    "add r23, r0 \n\t"                 \
24782    "adc r28, r1 \n\t"                 \
24783    "adc r29, r25 \n\t"                \
24784    "mul r8, r21 \n\t"                 \
24785    "add r23, r0 \n\t"                 \
24786    "adc r28, r1 \n\t"                 \
24787    "adc r29, r25 \n\t"                \
24788    "mul r9, r20 \n\t"                 \
24789    "add r23, r0 \n\t"                 \
24790    "adc r28, r1 \n\t"                 \
24791    "adc r29, r25 \n\t"                \
24792    "mul r10, r19 \n\t"                \
24793    "add r23, r0 \n\t"                 \
24794    "adc r28, r1 \n\t"                 \
24795    "adc r29, r25 \n\t"                \
24796    "mul r11, r18 \n\t"                \
24797    "add r23, r0 \n\t"                 \
24798    "adc r28, r1 \n\t"                 \
24799    "adc r29, r25 \n\t"                \
24800    "mul r12, r17 \n\t"                \
24801    "add r23, r0 \n\t"                 \
24802    "adc r28, r1 \n\t"                 \
24803    "adc r29, r25 \n\t"                \
24804    "mul r13, r16 \n\t"                \
24805    "add r23, r0 \n\t"                 \
24806    "adc r28, r1 \n\t"                 \
24807    "adc r29, r25 \n\t"                \
24808    "mul r14, r15 \n\t"                \
24809    "add r23, r0 \n\t"                 \
24810    "adc r28, r1 \n\t"                 \
24811    "adc r29, r25 \n\t"                \
24812    "ld r0, z \n\t"                    \
24813    "add r23, r0 \n\t"                 \
24814    "adc r28, r25 \n\t"                \
24815    "adc r29, r25 \n\t"                \
24816    "lsl r23 \n\t"                     \
24817    "rol r28 \n\t"                     \
24818    "rol r29 \n\t"                     \
24819    "add r23, r24 \n\t"                \
24820    "adc r28, r22 \n\t"                \
24821    "adc r29, r25 \n\t"                \
24822    "st z+, r23 \n\t"                  \
24823                                       \
24824    "ld r5, x+ \n\t"                   \
24825    "ldi r22, 0 \n\t"                  \
24826    "mul r6, r4 \n\t"                  \
24827    "mov r23, r0 \n\t"                 \
24828    "mov r24, r1 \n\t"                 \
24829    "mul r7, r3 \n\t"                  \
24830    "add r23, r0 \n\t"                 \
24831    "adc r24, r1 \n\t"                 \
24832    "adc r22, r25 \n\t"                \
24833    "mul r8, r2 \n\t"                  \
24834    "add r23, r0 \n\t"                 \
24835    "adc r24, r1 \n\t"                 \
24836    "adc r22, r25 \n\t"                \
24837    "mul r9, r21 \n\t"                 \
24838    "add r23, r0 \n\t"                 \
24839    "adc r24, r1 \n\t"                 \
24840    "adc r22, r25 \n\t"                \
24841    "mul r10, r20 \n\t"                \
24842    "add r23, r0 \n\t"                 \
24843    "adc r24, r1 \n\t"                 \
24844    "adc r22, r25 \n\t"                \
24845    "mul r11, r19 \n\t"                \
24846    "add r23, r0 \n\t"                 \
24847    "adc r24, r1 \n\t"                 \
24848    "adc r22, r25 \n\t"                \
24849    "mul r12, r18 \n\t"                \
24850    "add r23, r0 \n\t"                 \
24851    "adc r24, r1 \n\t"                 \
24852    "adc r22, r25 \n\t"                \
24853    "mul r13, r17 \n\t"                \
24854    "add r23, r0 \n\t"                 \
24855    "adc r24, r1 \n\t"                 \
24856    "adc r22, r25 \n\t"                \
24857    "mul r14, r16 \n\t"                \
24858    "add r23, r0 \n\t"                 \
24859    "adc r24, r1 \n\t"                 \
24860    "adc r22, r25 \n\t"                \
24861    "ld r0, z \n\t"                    \
24862    "add r23, r0 \n\t"                 \
24863    "adc r24, r25 \n\t"                \
24864    "adc r22, r25 \n\t"                \
24865    "lsl r23 \n\t"                     \
24866    "rol r24 \n\t"                     \
24867    "rol r22 \n\t"                     \
24868    "mul r15, r15 \n\t"                \
24869    "add r23, r0 \n\t"                 \
24870    "adc r24, r1 \n\t"                 \
24871    "adc r22, r25 \n\t"                \
24872    "add r23, r28 \n\t"                \
24873    "adc r24, r29 \n\t"                \
24874    "adc r22, r25 \n\t"                \
24875    "st z+, r23 \n\t"                  \
24876                                       \
24877    "ldi r29, 0 \n\t"                  \
24878    "mul r6, r5 \n\t"                  \
24879    "mov r23, r0 \n\t"                 \
24880    "mov r28, r1 \n\t"                 \
24881    "mul r7, r4 \n\t"                  \
24882    "add r23, r0 \n\t"                 \
24883    "adc r28, r1 \n\t"                 \
24884    "adc r29, r25 \n\t"                \
24885    "mul r8, r3 \n\t"                  \
24886    "add r23, r0 \n\t"                 \
24887    "adc r28, r1 \n\t"                 \
24888    "adc r29, r25 \n\t"                \
24889    "mul r9, r2 \n\t"                  \
24890    "add r23, r0 \n\t"                 \
24891    "adc r28, r1 \n\t"                 \
24892    "adc r29, r25 \n\t"                \
24893    "mul r10, r21 \n\t"                \
24894    "add r23, r0 \n\t"                 \
24895    "adc r28, r1 \n\t"                 \
24896    "adc r29, r25 \n\t"                \
24897    "mul r11, r20 \n\t"                \
24898    "add r23, r0 \n\t"                 \
24899    "adc r28, r1 \n\t"                 \
24900    "adc r29, r25 \n\t"                \
24901    "mul r12, r19 \n\t"                \
24902    "add r23, r0 \n\t"                 \
24903    "adc r28, r1 \n\t"                 \
24904    "adc r29, r25 \n\t"                \
24905    "mul r13, r18 \n\t"                \
24906    "add r23, r0 \n\t"                 \
24907    "adc r28, r1 \n\t"                 \
24908    "adc r29, r25 \n\t"                \
24909    "mul r14, r17 \n\t"                \
24910    "add r23, r0 \n\t"                 \
24911    "adc r28, r1 \n\t"                 \
24912    "adc r29, r25 \n\t"                \
24913    "mul r15, r16 \n\t"                \
24914    "add r23, r0 \n\t"                 \
24915    "adc r28, r1 \n\t"                 \
24916    "adc r29, r25 \n\t"                \
24917    "ld r0, z \n\t"                    \
24918    "add r23, r0 \n\t"                 \
24919    "adc r28, r25 \n\t"                \
24920    "adc r29, r25 \n\t"                \
24921    "lsl r23 \n\t"                     \
24922    "rol r28 \n\t"                     \
24923    "rol r29 \n\t"                     \
24924    "add r23, r24 \n\t"                \
24925    "adc r28, r22 \n\t"                \
24926    "adc r29, r25 \n\t"                \
24927    "st z+, r23 \n\t"                  \
24928                                       \
24929    "ld r6, x+ \n\t"                   \
24930    "ldi r22, 0 \n\t"                  \
24931    "mul r7, r5 \n\t"                  \
24932    "mov r23, r0 \n\t"                 \
24933    "mov r24, r1 \n\t"                 \
24934    "mul r8, r4 \n\t"                  \
24935    "add r23, r0 \n\t"                 \
24936    "adc r24, r1 \n\t"                 \
24937    "adc r22, r25 \n\t"                \
24938    "mul r9, r3 \n\t"                  \
24939    "add r23, r0 \n\t"                 \
24940    "adc r24, r1 \n\t"                 \
24941    "adc r22, r25 \n\t"                \
24942    "mul r10, r2 \n\t"                 \
24943    "add r23, r0 \n\t"                 \
24944    "adc r24, r1 \n\t"                 \
24945    "adc r22, r25 \n\t"                \
24946    "mul r11, r21 \n\t"                \
24947    "add r23, r0 \n\t"                 \
24948    "adc r24, r1 \n\t"                 \
24949    "adc r22, r25 \n\t"                \
24950    "mul r12, r20 \n\t"                \
24951    "add r23, r0 \n\t"                 \
24952    "adc r24, r1 \n\t"                 \
24953    "adc r22, r25 \n\t"                \
24954    "mul r13, r19 \n\t"                \
24955    "add r23, r0 \n\t"                 \
24956    "adc r24, r1 \n\t"                 \
24957    "adc r22, r25 \n\t"                \
24958    "mul r14, r18 \n\t"                \
24959    "add r23, r0 \n\t"                 \
24960    "adc r24, r1 \n\t"                 \
24961    "adc r22, r25 \n\t"                \
24962    "mul r15, r17 \n\t"                \
24963    "add r23, r0 \n\t"                 \
24964    "adc r24, r1 \n\t"                 \
24965    "adc r22, r25 \n\t"                \
24966    "ld r0, z \n\t"                    \
24967    "add r23, r0 \n\t"                 \
24968    "adc r24, r25 \n\t"                \
24969    "adc r22, r25 \n\t"                \
24970    "lsl r23 \n\t"                     \
24971    "rol r24 \n\t"                     \
24972    "rol r22 \n\t"                     \
24973    "mul r16, r16 \n\t"                \
24974    "add r23, r0 \n\t"                 \
24975    "adc r24, r1 \n\t"                 \
24976    "adc r22, r25 \n\t"                \
24977    "add r23, r28 \n\t"                \
24978    "adc r24, r29 \n\t"                \
24979    "adc r22, r25 \n\t"                \
24980    "st z+, r23 \n\t"                  \
24981                                       \
24982    "ldi r29, 0 \n\t"                  \
24983    "mul r7, r6 \n\t"                  \
24984    "mov r23, r0 \n\t"                 \
24985    "mov r28, r1 \n\t"                 \
24986    "mul r8, r5 \n\t"                  \
24987    "add r23, r0 \n\t"                 \
24988    "adc r28, r1 \n\t"                 \
24989    "adc r29, r25 \n\t"                \
24990    "mul r9, r4 \n\t"                  \
24991    "add r23, r0 \n\t"                 \
24992    "adc r28, r1 \n\t"                 \
24993    "adc r29, r25 \n\t"                \
24994    "mul r10, r3 \n\t"                 \
24995    "add r23, r0 \n\t"                 \
24996    "adc r28, r1 \n\t"                 \
24997    "adc r29, r25 \n\t"                \
24998    "mul r11, r2 \n\t"                 \
24999    "add r23, r0 \n\t"                 \
25000    "adc r28, r1 \n\t"                 \
25001    "adc r29, r25 \n\t"                \
25002    "mul r12, r21 \n\t"                \
25003    "add r23, r0 \n\t"                 \
25004    "adc r28, r1 \n\t"                 \
25005    "adc r29, r25 \n\t"                \
25006    "mul r13, r20 \n\t"                \
25007    "add r23, r0 \n\t"                 \
25008    "adc r28, r1 \n\t"                 \
25009    "adc r29, r25 \n\t"                \
25010    "mul r14, r19 \n\t"                \
25011    "add r23, r0 \n\t"                 \
25012    "adc r28, r1 \n\t"                 \
25013    "adc r29, r25 \n\t"                \
25014    "mul r15, r18 \n\t"                \
25015    "add r23, r0 \n\t"                 \
25016    "adc r28, r1 \n\t"                 \
25017    "adc r29, r25 \n\t"                \
25018    "mul r16, r17 \n\t"                \
25019    "add r23, r0 \n\t"                 \
25020    "adc r28, r1 \n\t"                 \
25021    "adc r29, r25 \n\t"                \
25022    "ld r0, z \n\t"                    \
25023    "add r23, r0 \n\t"                 \
25024    "adc r28, r25 \n\t"                \
25025    "adc r29, r25 \n\t"                \
25026    "lsl r23 \n\t"                     \
25027    "rol r28 \n\t"                     \
25028    "rol r29 \n\t"                     \
25029    "add r23, r24 \n\t"                \
25030    "adc r28, r22 \n\t"                \
25031    "adc r29, r25 \n\t"                \
25032    "st z+, r23 \n\t"                  \
25033                                       \
25034    "ld r7, x+ \n\t"                   \
25035    "ldi r22, 0 \n\t"                  \
25036    "mul r8, r6 \n\t"                  \
25037    "mov r23, r0 \n\t"                 \
25038    "mov r24, r1 \n\t"                 \
25039    "mul r9, r5 \n\t"                  \
25040    "add r23, r0 \n\t"                 \
25041    "adc r24, r1 \n\t"                 \
25042    "adc r22, r25 \n\t"                \
25043    "mul r10, r4 \n\t"                 \
25044    "add r23, r0 \n\t"                 \
25045    "adc r24, r1 \n\t"                 \
25046    "adc r22, r25 \n\t"                \
25047    "mul r11, r3 \n\t"                 \
25048    "add r23, r0 \n\t"                 \
25049    "adc r24, r1 \n\t"                 \
25050    "adc r22, r25 \n\t"                \
25051    "mul r12, r2 \n\t"                 \
25052    "add r23, r0 \n\t"                 \
25053    "adc r24, r1 \n\t"                 \
25054    "adc r22, r25 \n\t"                \
25055    "mul r13, r21 \n\t"                \
25056    "add r23, r0 \n\t"                 \
25057    "adc r24, r1 \n\t"                 \
25058    "adc r22, r25 \n\t"                \
25059    "mul r14, r20 \n\t"                \
25060    "add r23, r0 \n\t"                 \
25061    "adc r24, r1 \n\t"                 \
25062    "adc r22, r25 \n\t"                \
25063    "mul r15, r19 \n\t"                \
25064    "add r23, r0 \n\t"                 \
25065    "adc r24, r1 \n\t"                 \
25066    "adc r22, r25 \n\t"                \
25067    "mul r16, r18 \n\t"                \
25068    "add r23, r0 \n\t"                 \
25069    "adc r24, r1 \n\t"                 \
25070    "adc r22, r25 \n\t"                \
25071    "ld r0, z \n\t"                    \
25072    "add r23, r0 \n\t"                 \
25073    "adc r24, r25 \n\t"                \
25074    "adc r22, r25 \n\t"                \
25075    "lsl r23 \n\t"                     \
25076    "rol r24 \n\t"                     \
25077    "rol r22 \n\t"                     \
25078    "mul r17, r17 \n\t"                \
25079    "add r23, r0 \n\t"                 \
25080    "adc r24, r1 \n\t"                 \
25081    "adc r22, r25 \n\t"                \
25082    "add r23, r28 \n\t"                \
25083    "adc r24, r29 \n\t"                \
25084    "adc r22, r25 \n\t"                \
25085    "st z+, r23 \n\t"                  \
25086                                       \
25087    "ldi r29, 0 \n\t"                  \
25088    "mul r8, r7 \n\t"                  \
25089    "mov r23, r0 \n\t"                 \
25090    "mov r28, r1 \n\t"                 \
25091    "mul r9, r6 \n\t"                  \
25092    "add r23, r0 \n\t"                 \
25093    "adc r28, r1 \n\t"                 \
25094    "adc r29, r25 \n\t"                \
25095    "mul r10, r5 \n\t"                 \
25096    "add r23, r0 \n\t"                 \
25097    "adc r28, r1 \n\t"                 \
25098    "adc r29, r25 \n\t"                \
25099    "mul r11, r4 \n\t"                 \
25100    "add r23, r0 \n\t"                 \
25101    "adc r28, r1 \n\t"                 \
25102    "adc r29, r25 \n\t"                \
25103    "mul r12, r3 \n\t"                 \
25104    "add r23, r0 \n\t"                 \
25105    "adc r28, r1 \n\t"                 \
25106    "adc r29, r25 \n\t"                \
25107    "mul r13, r2 \n\t"                 \
25108    "add r23, r0 \n\t"                 \
25109    "adc r28, r1 \n\t"                 \
25110    "adc r29, r25 \n\t"                \
25111    "mul r14, r21 \n\t"                \
25112    "add r23, r0 \n\t"                 \
25113    "adc r28, r1 \n\t"                 \
25114    "adc r29, r25 \n\t"                \
25115    "mul r15, r20 \n\t"                \
25116    "add r23, r0 \n\t"                 \
25117    "adc r28, r1 \n\t"                 \
25118    "adc r29, r25 \n\t"                \
25119    "mul r16, r19 \n\t"                \
25120    "add r23, r0 \n\t"                 \
25121    "adc r28, r1 \n\t"                 \
25122    "adc r29, r25 \n\t"                \
25123    "mul r17, r18 \n\t"                \
25124    "add r23, r0 \n\t"                 \
25125    "adc r28, r1 \n\t"                 \
25126    "adc r29, r25 \n\t"                \
25127    "ld r0, z \n\t"                    \
25128    "add r23, r0 \n\t"                 \
25129    "adc r28, r25 \n\t"                \
25130    "adc r29, r25 \n\t"                \
25131    "lsl r23 \n\t"                     \
25132    "rol r28 \n\t"                     \
25133    "rol r29 \n\t"                     \
25134    "add r23, r24 \n\t"                \
25135    "adc r28, r22 \n\t"                \
25136    "adc r29, r25 \n\t"                \
25137    "st z+, r23 \n\t"                  \
25138                                       \
25139    "ld r8, x+ \n\t"                   \
25140    "ldi r22, 0 \n\t"                  \
25141    "mul r9, r7 \n\t"                  \
25142    "mov r23, r0 \n\t"                 \
25143    "mov r24, r1 \n\t"                 \
25144    "mul r10, r6 \n\t"                 \
25145    "add r23, r0 \n\t"                 \
25146    "adc r24, r1 \n\t"                 \
25147    "adc r22, r25 \n\t"                \
25148    "mul r11, r5 \n\t"                 \
25149    "add r23, r0 \n\t"                 \
25150    "adc r24, r1 \n\t"                 \
25151    "adc r22, r25 \n\t"                \
25152    "mul r12, r4 \n\t"                 \
25153    "add r23, r0 \n\t"                 \
25154    "adc r24, r1 \n\t"                 \
25155    "adc r22, r25 \n\t"                \
25156    "mul r13, r3 \n\t"                 \
25157    "add r23, r0 \n\t"                 \
25158    "adc r24, r1 \n\t"                 \
25159    "adc r22, r25 \n\t"                \
25160    "mul r14, r2 \n\t"                 \
25161    "add r23, r0 \n\t"                 \
25162    "adc r24, r1 \n\t"                 \
25163    "adc r22, r25 \n\t"                \
25164    "mul r15, r21 \n\t"                \
25165    "add r23, r0 \n\t"                 \
25166    "adc r24, r1 \n\t"                 \
25167    "adc r22, r25 \n\t"                \
25168    "mul r16, r20 \n\t"                \
25169    "add r23, r0 \n\t"                 \
25170    "adc r24, r1 \n\t"                 \
25171    "adc r22, r25 \n\t"                \
25172    "mul r17, r19 \n\t"                \
25173    "add r23, r0 \n\t"                 \
25174    "adc r24, r1 \n\t"                 \
25175    "adc r22, r25 \n\t"                \
25176    "ld r0, z \n\t"                    \
25177    "add r23, r0 \n\t"                 \
25178    "adc r24, r25 \n\t"                \
25179    "adc r22, r25 \n\t"                \
25180    "lsl r23 \n\t"                     \
25181    "rol r24 \n\t"                     \
25182    "rol r22 \n\t"                     \
25183    "mul r18, r18 \n\t"                \
25184    "add r23, r0 \n\t"                 \
25185    "adc r24, r1 \n\t"                 \
25186    "adc r22, r25 \n\t"                \
25187    "add r23, r28 \n\t"                \
25188    "adc r24, r29 \n\t"                \
25189    "adc r22, r25 \n\t"                \
25190    "st z+, r23 \n\t"                  \
25191                                       \
25192    "ldi r29, 0 \n\t"                  \
25193    "mul r9, r8 \n\t"                  \
25194    "mov r23, r0 \n\t"                 \
25195    "mov r28, r1 \n\t"                 \
25196    "mul r10, r7 \n\t"                 \
25197    "add r23, r0 \n\t"                 \
25198    "adc r28, r1 \n\t"                 \
25199    "adc r29, r25 \n\t"                \
25200    "mul r11, r6 \n\t"                 \
25201    "add r23, r0 \n\t"                 \
25202    "adc r28, r1 \n\t"                 \
25203    "adc r29, r25 \n\t"                \
25204    "mul r12, r5 \n\t"                 \
25205    "add r23, r0 \n\t"                 \
25206    "adc r28, r1 \n\t"                 \
25207    "adc r29, r25 \n\t"                \
25208    "mul r13, r4 \n\t"                 \
25209    "add r23, r0 \n\t"                 \
25210    "adc r28, r1 \n\t"                 \
25211    "adc r29, r25 \n\t"                \
25212    "mul r14, r3 \n\t"                 \
25213    "add r23, r0 \n\t"                 \
25214    "adc r28, r1 \n\t"                 \
25215    "adc r29, r25 \n\t"                \
25216    "mul r15, r2 \n\t"                 \
25217    "add r23, r0 \n\t"                 \
25218    "adc r28, r1 \n\t"                 \
25219    "adc r29, r25 \n\t"                \
25220    "mul r16, r21 \n\t"                \
25221    "add r23, r0 \n\t"                 \
25222    "adc r28, r1 \n\t"                 \
25223    "adc r29, r25 \n\t"                \
25224    "mul r17, r20 \n\t"                \
25225    "add r23, r0 \n\t"                 \
25226    "adc r28, r1 \n\t"                 \
25227    "adc r29, r25 \n\t"                \
25228    "mul r18, r19 \n\t"                \
25229    "add r23, r0 \n\t"                 \
25230    "adc r28, r1 \n\t"                 \
25231    "adc r29, r25 \n\t"                \
25232    "ld r0, z \n\t"                    \
25233    "add r23, r0 \n\t"                 \
25234    "adc r28, r25 \n\t"                \
25235    "adc r29, r25 \n\t"                \
25236    "lsl r23 \n\t"                     \
25237    "rol r28 \n\t"                     \
25238    "rol r29 \n\t"                     \
25239    "add r23, r24 \n\t"                \
25240    "adc r28, r22 \n\t"                \
25241    "adc r29, r25 \n\t"                \
25242    "st z+, r23 \n\t"                  \
25243                                       \
25244    "ld r9, x+ \n\t"                   \
25245    "ldi r22, 0 \n\t"                  \
25246    "mul r10, r8 \n\t"                 \
25247    "mov r23, r0 \n\t"                 \
25248    "mov r24, r1 \n\t"                 \
25249    "mul r11, r7 \n\t"                 \
25250    "add r23, r0 \n\t"                 \
25251    "adc r24, r1 \n\t"                 \
25252    "adc r22, r25 \n\t"                \
25253    "mul r12, r6 \n\t"                 \
25254    "add r23, r0 \n\t"                 \
25255    "adc r24, r1 \n\t"                 \
25256    "adc r22, r25 \n\t"                \
25257    "mul r13, r5 \n\t"                 \
25258    "add r23, r0 \n\t"                 \
25259    "adc r24, r1 \n\t"                 \
25260    "adc r22, r25 \n\t"                \
25261    "mul r14, r4 \n\t"                 \
25262    "add r23, r0 \n\t"                 \
25263    "adc r24, r1 \n\t"                 \
25264    "adc r22, r25 \n\t"                \
25265    "mul r15, r3 \n\t"                 \
25266    "add r23, r0 \n\t"                 \
25267    "adc r24, r1 \n\t"                 \
25268    "adc r22, r25 \n\t"                \
25269    "mul r16, r2 \n\t"                 \
25270    "add r23, r0 \n\t"                 \
25271    "adc r24, r1 \n\t"                 \
25272    "adc r22, r25 \n\t"                \
25273    "mul r17, r21 \n\t"                \
25274    "add r23, r0 \n\t"                 \
25275    "adc r24, r1 \n\t"                 \
25276    "adc r22, r25 \n\t"                \
25277    "mul r18, r20 \n\t"                \
25278    "add r23, r0 \n\t"                 \
25279    "adc r24, r1 \n\t"                 \
25280    "adc r22, r25 \n\t"                \
25281    "ld r0, z \n\t"                    \
25282    "add r23, r0 \n\t"                 \
25283    "adc r24, r25 \n\t"                \
25284    "adc r22, r25 \n\t"                \
25285    "lsl r23 \n\t"                     \
25286    "rol r24 \n\t"                     \
25287    "rol r22 \n\t"                     \
25288    "mul r19, r19 \n\t"                \
25289    "add r23, r0 \n\t"                 \
25290    "adc r24, r1 \n\t"                 \
25291    "adc r22, r25 \n\t"                \
25292    "add r23, r28 \n\t"                \
25293    "adc r24, r29 \n\t"                \
25294    "adc r22, r25 \n\t"                \
25295    "st z+, r23 \n\t"                  \
25296                                       \
25297    "ldi r29, 0 \n\t"                  \
25298    "mul r10, r9 \n\t"                 \
25299    "mov r23, r0 \n\t"                 \
25300    "mov r28, r1 \n\t"                 \
25301    "mul r11, r8 \n\t"                 \
25302    "add r23, r0 \n\t"                 \
25303    "adc r28, r1 \n\t"                 \
25304    "adc r29, r25 \n\t"                \
25305    "mul r12, r7 \n\t"                 \
25306    "add r23, r0 \n\t"                 \
25307    "adc r28, r1 \n\t"                 \
25308    "adc r29, r25 \n\t"                \
25309    "mul r13, r6 \n\t"                 \
25310    "add r23, r0 \n\t"                 \
25311    "adc r28, r1 \n\t"                 \
25312    "adc r29, r25 \n\t"                \
25313    "mul r14, r5 \n\t"                 \
25314    "add r23, r0 \n\t"                 \
25315    "adc r28, r1 \n\t"                 \
25316    "adc r29, r25 \n\t"                \
25317    "mul r15, r4 \n\t"                 \
25318    "add r23, r0 \n\t"                 \
25319    "adc r28, r1 \n\t"                 \
25320    "adc r29, r25 \n\t"                \
25321    "mul r16, r3 \n\t"                 \
25322    "add r23, r0 \n\t"                 \
25323    "adc r28, r1 \n\t"                 \
25324    "adc r29, r25 \n\t"                \
25325    "mul r17, r2 \n\t"                 \
25326    "add r23, r0 \n\t"                 \
25327    "adc r28, r1 \n\t"                 \
25328    "adc r29, r25 \n\t"                \
25329    "mul r18, r21 \n\t"                \
25330    "add r23, r0 \n\t"                 \
25331    "adc r28, r1 \n\t"                 \
25332    "adc r29, r25 \n\t"                \
25333    "mul r19, r20 \n\t"                \
25334    "add r23, r0 \n\t"                 \
25335    "adc r28, r1 \n\t"                 \
25336    "adc r29, r25 \n\t"                \
25337    "ld r0, z \n\t"                    \
25338    "add r23, r0 \n\t"                 \
25339    "adc r28, r25 \n\t"                \
25340    "adc r29, r25 \n\t"                \
25341    "lsl r23 \n\t"                     \
25342    "rol r28 \n\t"                     \
25343    "rol r29 \n\t"                     \
25344    "add r23, r24 \n\t"                \
25345    "adc r28, r22 \n\t"                \
25346    "adc r29, r25 \n\t"                \
25347    "st z+, r23 \n\t"                  \
25348                                       \
25349    "ld r10, x+ \n\t"                  \
25350    "ldi r22, 0 \n\t"                  \
25351    "mul r11, r9 \n\t"                 \
25352    "mov r23, r0 \n\t"                 \
25353    "mov r24, r1 \n\t"                 \
25354    "mul r12, r8 \n\t"                 \
25355    "add r23, r0 \n\t"                 \
25356    "adc r24, r1 \n\t"                 \
25357    "adc r22, r25 \n\t"                \
25358    "mul r13, r7 \n\t"                 \
25359    "add r23, r0 \n\t"                 \
25360    "adc r24, r1 \n\t"                 \
25361    "adc r22, r25 \n\t"                \
25362    "mul r14, r6 \n\t"                 \
25363    "add r23, r0 \n\t"                 \
25364    "adc r24, r1 \n\t"                 \
25365    "adc r22, r25 \n\t"                \
25366    "mul r15, r5 \n\t"                 \
25367    "add r23, r0 \n\t"                 \
25368    "adc r24, r1 \n\t"                 \
25369    "adc r22, r25 \n\t"                \
25370    "mul r16, r4 \n\t"                 \
25371    "add r23, r0 \n\t"                 \
25372    "adc r24, r1 \n\t"                 \
25373    "adc r22, r25 \n\t"                \
25374    "mul r17, r3 \n\t"                 \
25375    "add r23, r0 \n\t"                 \
25376    "adc r24, r1 \n\t"                 \
25377    "adc r22, r25 \n\t"                \
25378    "mul r18, r2 \n\t"                 \
25379    "add r23, r0 \n\t"                 \
25380    "adc r24, r1 \n\t"                 \
25381    "adc r22, r25 \n\t"                \
25382    "mul r19, r21 \n\t"                \
25383    "add r23, r0 \n\t"                 \
25384    "adc r24, r1 \n\t"                 \
25385    "adc r22, r25 \n\t"                \
25386    "ld r0, z \n\t"                    \
25387    "add r23, r0 \n\t"                 \
25388    "adc r24, r25 \n\t"                \
25389    "adc r22, r25 \n\t"                \
25390    "lsl r23 \n\t"                     \
25391    "rol r24 \n\t"                     \
25392    "rol r22 \n\t"                     \
25393    "mul r20, r20 \n\t"                \
25394    "add r23, r0 \n\t"                 \
25395    "adc r24, r1 \n\t"                 \
25396    "adc r22, r25 \n\t"                \
25397    "add r23, r28 \n\t"                \
25398    "adc r24, r29 \n\t"                \
25399    "adc r22, r25 \n\t"                \
25400    "st z+, r23 \n\t"                  \
25401                                       \
25402    "ldi r29, 0 \n\t"                  \
25403    "mul r11, r10 \n\t"                \
25404    "mov r23, r0 \n\t"                 \
25405    "mov r28, r1 \n\t"                 \
25406    "mul r12, r9 \n\t"                 \
25407    "add r23, r0 \n\t"                 \
25408    "adc r28, r1 \n\t"                 \
25409    "adc r29, r25 \n\t"                \
25410    "mul r13, r8 \n\t"                 \
25411    "add r23, r0 \n\t"                 \
25412    "adc r28, r1 \n\t"                 \
25413    "adc r29, r25 \n\t"                \
25414    "mul r14, r7 \n\t"                 \
25415    "add r23, r0 \n\t"                 \
25416    "adc r28, r1 \n\t"                 \
25417    "adc r29, r25 \n\t"                \
25418    "mul r15, r6 \n\t"                 \
25419    "add r23, r0 \n\t"                 \
25420    "adc r28, r1 \n\t"                 \
25421    "adc r29, r25 \n\t"                \
25422    "mul r16, r5 \n\t"                 \
25423    "add r23, r0 \n\t"                 \
25424    "adc r28, r1 \n\t"                 \
25425    "adc r29, r25 \n\t"                \
25426    "mul r17, r4 \n\t"                 \
25427    "add r23, r0 \n\t"                 \
25428    "adc r28, r1 \n\t"                 \
25429    "adc r29, r25 \n\t"                \
25430    "mul r18, r3 \n\t"                 \
25431    "add r23, r0 \n\t"                 \
25432    "adc r28, r1 \n\t"                 \
25433    "adc r29, r25 \n\t"                \
25434    "mul r19, r2 \n\t"                 \
25435    "add r23, r0 \n\t"                 \
25436    "adc r28, r1 \n\t"                 \
25437    "adc r29, r25 \n\t"                \
25438    "mul r20, r21 \n\t"                \
25439    "add r23, r0 \n\t"                 \
25440    "adc r28, r1 \n\t"                 \
25441    "adc r29, r25 \n\t"                \
25442    "ld r0, z \n\t"                    \
25443    "add r23, r0 \n\t"                 \
25444    "adc r28, r25 \n\t"                \
25445    "adc r29, r25 \n\t"                \
25446    "lsl r23 \n\t"                     \
25447    "rol r28 \n\t"                     \
25448    "rol r29 \n\t"                     \
25449    "add r23, r24 \n\t"                \
25450    "adc r28, r22 \n\t"                \
25451    "adc r29, r25 \n\t"                \
25452    "st z+, r23 \n\t"                  \
25453                                       \
25454    "ld r11, x+ \n\t"                  \
25455    "ldi r22, 0 \n\t"                  \
25456    "mul r12, r10 \n\t"                \
25457    "mov r23, r0 \n\t"                 \
25458    "mov r24, r1 \n\t"                 \
25459    "mul r13, r9 \n\t"                 \
25460    "add r23, r0 \n\t"                 \
25461    "adc r24, r1 \n\t"                 \
25462    "adc r22, r25 \n\t"                \
25463    "mul r14, r8 \n\t"                 \
25464    "add r23, r0 \n\t"                 \
25465    "adc r24, r1 \n\t"                 \
25466    "adc r22, r25 \n\t"                \
25467    "mul r15, r7 \n\t"                 \
25468    "add r23, r0 \n\t"                 \
25469    "adc r24, r1 \n\t"                 \
25470    "adc r22, r25 \n\t"                \
25471    "mul r16, r6 \n\t"                 \
25472    "add r23, r0 \n\t"                 \
25473    "adc r24, r1 \n\t"                 \
25474    "adc r22, r25 \n\t"                \
25475    "mul r17, r5 \n\t"                 \
25476    "add r23, r0 \n\t"                 \
25477    "adc r24, r1 \n\t"                 \
25478    "adc r22, r25 \n\t"                \
25479    "mul r18, r4 \n\t"                 \
25480    "add r23, r0 \n\t"                 \
25481    "adc r24, r1 \n\t"                 \
25482    "adc r22, r25 \n\t"                \
25483    "mul r19, r3 \n\t"                 \
25484    "add r23, r0 \n\t"                 \
25485    "adc r24, r1 \n\t"                 \
25486    "adc r22, r25 \n\t"                \
25487    "mul r20, r2 \n\t"                 \
25488    "add r23, r0 \n\t"                 \
25489    "adc r24, r1 \n\t"                 \
25490    "adc r22, r25 \n\t"                \
25491    "ld r0, z \n\t"                    \
25492    "add r23, r0 \n\t"                 \
25493    "adc r24, r25 \n\t"                \
25494    "adc r22, r25 \n\t"                \
25495    "lsl r23 \n\t"                     \
25496    "rol r24 \n\t"                     \
25497    "rol r22 \n\t"                     \
25498    "mul r21, r21 \n\t"                \
25499    "add r23, r0 \n\t"                 \
25500    "adc r24, r1 \n\t"                 \
25501    "adc r22, r25 \n\t"                \
25502    "add r23, r28 \n\t"                \
25503    "adc r24, r29 \n\t"                \
25504    "adc r22, r25 \n\t"                \
25505    "st z+, r23 \n\t"                  \
25506                                       \
25507    "ldi r29, 0 \n\t"                  \
25508    "mul r12, r11 \n\t"                \
25509    "mov r23, r0 \n\t"                 \
25510    "mov r28, r1 \n\t"                 \
25511    "mul r13, r10 \n\t"                \
25512    "add r23, r0 \n\t"                 \
25513    "adc r28, r1 \n\t"                 \
25514    "adc r29, r25 \n\t"                \
25515    "mul r14, r9 \n\t"                 \
25516    "add r23, r0 \n\t"                 \
25517    "adc r28, r1 \n\t"                 \
25518    "adc r29, r25 \n\t"                \
25519    "mul r15, r8 \n\t"                 \
25520    "add r23, r0 \n\t"                 \
25521    "adc r28, r1 \n\t"                 \
25522    "adc r29, r25 \n\t"                \
25523    "mul r16, r7 \n\t"                 \
25524    "add r23, r0 \n\t"                 \
25525    "adc r28, r1 \n\t"                 \
25526    "adc r29, r25 \n\t"                \
25527    "mul r17, r6 \n\t"                 \
25528    "add r23, r0 \n\t"                 \
25529    "adc r28, r1 \n\t"                 \
25530    "adc r29, r25 \n\t"                \
25531    "mul r18, r5 \n\t"                 \
25532    "add r23, r0 \n\t"                 \
25533    "adc r28, r1 \n\t"                 \
25534    "adc r29, r25 \n\t"                \
25535    "mul r19, r4 \n\t"                 \
25536    "add r23, r0 \n\t"                 \
25537    "adc r28, r1 \n\t"                 \
25538    "adc r29, r25 \n\t"                \
25539    "mul r20, r3 \n\t"                 \
25540    "add r23, r0 \n\t"                 \
25541    "adc r28, r1 \n\t"                 \
25542    "adc r29, r25 \n\t"                \
25543    "mul r21, r2 \n\t"                 \
25544    "add r23, r0 \n\t"                 \
25545    "adc r28, r1 \n\t"                 \
25546    "adc r29, r25 \n\t"                \
25547    "ld r0, z \n\t"                    \
25548    "add r23, r0 \n\t"                 \
25549    "adc r28, r25 \n\t"                \
25550    "adc r29, r25 \n\t"                \
25551    "lsl r23 \n\t"                     \
25552    "rol r28 \n\t"                     \
25553    "rol r29 \n\t"                     \
25554    "add r23, r24 \n\t"                \
25555    "adc r28, r22 \n\t"                \
25556    "adc r29, r25 \n\t"                \
25557    "st z+, r23 \n\t"                  \
25558                                       \
25559    "ld r12, x+ \n\t"                  \
25560    "ldi r22, 0 \n\t"                  \
25561    "mul r13, r11 \n\t"                \
25562    "mov r23, r0 \n\t"                 \
25563    "mov r24, r1 \n\t"                 \
25564    "mul r14, r10 \n\t"                \
25565    "add r23, r0 \n\t"                 \
25566    "adc r24, r1 \n\t"                 \
25567    "adc r22, r25 \n\t"                \
25568    "mul r15, r9 \n\t"                 \
25569    "add r23, r0 \n\t"                 \
25570    "adc r24, r1 \n\t"                 \
25571    "adc r22, r25 \n\t"                \
25572    "mul r16, r8 \n\t"                 \
25573    "add r23, r0 \n\t"                 \
25574    "adc r24, r1 \n\t"                 \
25575    "adc r22, r25 \n\t"                \
25576    "mul r17, r7 \n\t"                 \
25577    "add r23, r0 \n\t"                 \
25578    "adc r24, r1 \n\t"                 \
25579    "adc r22, r25 \n\t"                \
25580    "mul r18, r6 \n\t"                 \
25581    "add r23, r0 \n\t"                 \
25582    "adc r24, r1 \n\t"                 \
25583    "adc r22, r25 \n\t"                \
25584    "mul r19, r5 \n\t"                 \
25585    "add r23, r0 \n\t"                 \
25586    "adc r24, r1 \n\t"                 \
25587    "adc r22, r25 \n\t"                \
25588    "mul r20, r4 \n\t"                 \
25589    "add r23, r0 \n\t"                 \
25590    "adc r24, r1 \n\t"                 \
25591    "adc r22, r25 \n\t"                \
25592    "mul r21, r3 \n\t"                 \
25593    "add r23, r0 \n\t"                 \
25594    "adc r24, r1 \n\t"                 \
25595    "adc r22, r25 \n\t"                \
25596    "ld r0, z \n\t"                    \
25597    "add r23, r0 \n\t"                 \
25598    "adc r24, r25 \n\t"                \
25599    "adc r22, r25 \n\t"                \
25600    "lsl r23 \n\t"                     \
25601    "rol r24 \n\t"                     \
25602    "rol r22 \n\t"                     \
25603    "mul r2, r2 \n\t"                  \
25604    "add r23, r0 \n\t"                 \
25605    "adc r24, r1 \n\t"                 \
25606    "adc r22, r25 \n\t"                \
25607    "add r23, r28 \n\t"                \
25608    "adc r24, r29 \n\t"                \
25609    "adc r22, r25 \n\t"                \
25610    "st z+, r23 \n\t"                  \
25611                                       \
25612    "ldi r29, 0 \n\t"                  \
25613    "mul r13, r12 \n\t"                \
25614    "mov r23, r0 \n\t"                 \
25615    "mov r28, r1 \n\t"                 \
25616    "mul r14, r11 \n\t"                \
25617    "add r23, r0 \n\t"                 \
25618    "adc r28, r1 \n\t"                 \
25619    "adc r29, r25 \n\t"                \
25620    "mul r15, r10 \n\t"                \
25621    "add r23, r0 \n\t"                 \
25622    "adc r28, r1 \n\t"                 \
25623    "adc r29, r25 \n\t"                \
25624    "mul r16, r9 \n\t"                 \
25625    "add r23, r0 \n\t"                 \
25626    "adc r28, r1 \n\t"                 \
25627    "adc r29, r25 \n\t"                \
25628    "mul r17, r8 \n\t"                 \
25629    "add r23, r0 \n\t"                 \
25630    "adc r28, r1 \n\t"                 \
25631    "adc r29, r25 \n\t"                \
25632    "mul r18, r7 \n\t"                 \
25633    "add r23, r0 \n\t"                 \
25634    "adc r28, r1 \n\t"                 \
25635    "adc r29, r25 \n\t"                \
25636    "mul r19, r6 \n\t"                 \
25637    "add r23, r0 \n\t"                 \
25638    "adc r28, r1 \n\t"                 \
25639    "adc r29, r25 \n\t"                \
25640    "mul r20, r5 \n\t"                 \
25641    "add r23, r0 \n\t"                 \
25642    "adc r28, r1 \n\t"                 \
25643    "adc r29, r25 \n\t"                \
25644    "mul r21, r4 \n\t"                 \
25645    "add r23, r0 \n\t"                 \
25646    "adc r28, r1 \n\t"                 \
25647    "adc r29, r25 \n\t"                \
25648    "mul r2, r3 \n\t"                  \
25649    "add r23, r0 \n\t"                 \
25650    "adc r28, r1 \n\t"                 \
25651    "adc r29, r25 \n\t"                \
25652    "ld r0, z \n\t"                    \
25653    "add r23, r0 \n\t"                 \
25654    "adc r28, r25 \n\t"                \
25655    "adc r29, r25 \n\t"                \
25656    "lsl r23 \n\t"                     \
25657    "rol r28 \n\t"                     \
25658    "rol r29 \n\t"                     \
25659    "add r23, r24 \n\t"                \
25660    "adc r28, r22 \n\t"                \
25661    "adc r29, r25 \n\t"                \
25662    "st z+, r23 \n\t"                  \
25663                                       \
25664    "ld r13, x+ \n\t"                  \
25665    "ldi r22, 0 \n\t"                  \
25666    "mul r14, r12 \n\t"                \
25667    "mov r23, r0 \n\t"                 \
25668    "mov r24, r1 \n\t"                 \
25669    "mul r15, r11 \n\t"                \
25670    "add r23, r0 \n\t"                 \
25671    "adc r24, r1 \n\t"                 \
25672    "adc r22, r25 \n\t"                \
25673    "mul r16, r10 \n\t"                \
25674    "add r23, r0 \n\t"                 \
25675    "adc r24, r1 \n\t"                 \
25676    "adc r22, r25 \n\t"                \
25677    "mul r17, r9 \n\t"                 \
25678    "add r23, r0 \n\t"                 \
25679    "adc r24, r1 \n\t"                 \
25680    "adc r22, r25 \n\t"                \
25681    "mul r18, r8 \n\t"                 \
25682    "add r23, r0 \n\t"                 \
25683    "adc r24, r1 \n\t"                 \
25684    "adc r22, r25 \n\t"                \
25685    "mul r19, r7 \n\t"                 \
25686    "add r23, r0 \n\t"                 \
25687    "adc r24, r1 \n\t"                 \
25688    "adc r22, r25 \n\t"                \
25689    "mul r20, r6 \n\t"                 \
25690    "add r23, r0 \n\t"                 \
25691    "adc r24, r1 \n\t"                 \
25692    "adc r22, r25 \n\t"                \
25693    "mul r21, r5 \n\t"                 \
25694    "add r23, r0 \n\t"                 \
25695    "adc r24, r1 \n\t"                 \
25696    "adc r22, r25 \n\t"                \
25697    "mul r2, r4 \n\t"                  \
25698    "add r23, r0 \n\t"                 \
25699    "adc r24, r1 \n\t"                 \
25700    "adc r22, r25 \n\t"                \
25701    "ld r0, z \n\t"                    \
25702    "add r23, r0 \n\t"                 \
25703    "adc r24, r25 \n\t"                \
25704    "adc r22, r25 \n\t"                \
25705    "lsl r23 \n\t"                     \
25706    "rol r24 \n\t"                     \
25707    "rol r22 \n\t"                     \
25708    "mul r3, r3 \n\t"                  \
25709    "add r23, r0 \n\t"                 \
25710    "adc r24, r1 \n\t"                 \
25711    "adc r22, r25 \n\t"                \
25712    "add r23, r28 \n\t"                \
25713    "adc r24, r29 \n\t"                \
25714    "adc r22, r25 \n\t"                \
25715    "st z+, r23 \n\t"                  \
25716                                       \
25717    "ldi r29, 0 \n\t"                  \
25718    "mul r14, r13 \n\t"                \
25719    "mov r23, r0 \n\t"                 \
25720    "mov r28, r1 \n\t"                 \
25721    "mul r15, r12 \n\t"                \
25722    "add r23, r0 \n\t"                 \
25723    "adc r28, r1 \n\t"                 \
25724    "adc r29, r25 \n\t"                \
25725    "mul r16, r11 \n\t"                \
25726    "add r23, r0 \n\t"                 \
25727    "adc r28, r1 \n\t"                 \
25728    "adc r29, r25 \n\t"                \
25729    "mul r17, r10 \n\t"                \
25730    "add r23, r0 \n\t"                 \
25731    "adc r28, r1 \n\t"                 \
25732    "adc r29, r25 \n\t"                \
25733    "mul r18, r9 \n\t"                 \
25734    "add r23, r0 \n\t"                 \
25735    "adc r28, r1 \n\t"                 \
25736    "adc r29, r25 \n\t"                \
25737    "mul r19, r8 \n\t"                 \
25738    "add r23, r0 \n\t"                 \
25739    "adc r28, r1 \n\t"                 \
25740    "adc r29, r25 \n\t"                \
25741    "mul r20, r7 \n\t"                 \
25742    "add r23, r0 \n\t"                 \
25743    "adc r28, r1 \n\t"                 \
25744    "adc r29, r25 \n\t"                \
25745    "mul r21, r6 \n\t"                 \
25746    "add r23, r0 \n\t"                 \
25747    "adc r28, r1 \n\t"                 \
25748    "adc r29, r25 \n\t"                \
25749    "mul r2, r5 \n\t"                  \
25750    "add r23, r0 \n\t"                 \
25751    "adc r28, r1 \n\t"                 \
25752    "adc r29, r25 \n\t"                \
25753    "mul r3, r4 \n\t"                  \
25754    "add r23, r0 \n\t"                 \
25755    "adc r28, r1 \n\t"                 \
25756    "adc r29, r25 \n\t"                \
25757    "ld r0, z \n\t"                    \
25758    "add r23, r0 \n\t"                 \
25759    "adc r28, r25 \n\t"                \
25760    "adc r29, r25 \n\t"                \
25761    "lsl r23 \n\t"                     \
25762    "rol r28 \n\t"                     \
25763    "rol r29 \n\t"                     \
25764    "add r23, r24 \n\t"                \
25765    "adc r28, r22 \n\t"                \
25766    "adc r29, r25 \n\t"                \
25767    "st z+, r23 \n\t"                  \
25768                                       \
25769    "ldi r22, 0 \n\t"                  \
25770    "mul r15, r13 \n\t"                \
25771    "mov r23, r0 \n\t"                 \
25772    "mov r24, r1 \n\t"                 \
25773    "mul r16, r12 \n\t"                \
25774    "add r23, r0 \n\t"                 \
25775    "adc r24, r1 \n\t"                 \
25776    "adc r22, r25 \n\t"                \
25777    "mul r17, r11 \n\t"                \
25778    "add r23, r0 \n\t"                 \
25779    "adc r24, r1 \n\t"                 \
25780    "adc r22, r25 \n\t"                \
25781    "mul r18, r10 \n\t"                \
25782    "add r23, r0 \n\t"                 \
25783    "adc r24, r1 \n\t"                 \
25784    "adc r22, r25 \n\t"                \
25785    "mul r19, r9 \n\t"                 \
25786    "add r23, r0 \n\t"                 \
25787    "adc r24, r1 \n\t"                 \
25788    "adc r22, r25 \n\t"                \
25789    "mul r20, r8 \n\t"                 \
25790    "add r23, r0 \n\t"                 \
25791    "adc r24, r1 \n\t"                 \
25792    "adc r22, r25 \n\t"                \
25793    "mul r21, r7 \n\t"                 \
25794    "add r23, r0 \n\t"                 \
25795    "adc r24, r1 \n\t"                 \
25796    "adc r22, r25 \n\t"                \
25797    "mul r2, r6 \n\t"                  \
25798    "add r23, r0 \n\t"                 \
25799    "adc r24, r1 \n\t"                 \
25800    "adc r22, r25 \n\t"                \
25801    "mul r3, r5 \n\t"                  \
25802    "add r23, r0 \n\t"                 \
25803    "adc r24, r1 \n\t"                 \
25804    "adc r22, r25 \n\t"                \
25805    "lsl r23 \n\t"                     \
25806    "rol r24 \n\t"                     \
25807    "rol r22 \n\t"                     \
25808    "mul r4, r4 \n\t"                  \
25809    "add r23, r0 \n\t"                 \
25810    "adc r24, r1 \n\t"                 \
25811    "adc r22, r25 \n\t"                \
25812    "add r23, r28 \n\t"                \
25813    "adc r24, r29 \n\t"                \
25814    "adc r22, r25 \n\t"                \
25815    "st z+, r23 \n\t"                  \
25816                                       \
25817    "ldi r29, 0 \n\t"                  \
25818    "mul r16, r13 \n\t"                \
25819    "mov r23, r0 \n\t"                 \
25820    "mov r28, r1 \n\t"                 \
25821    "mul r17, r12 \n\t"                \
25822    "add r23, r0 \n\t"                 \
25823    "adc r28, r1 \n\t"                 \
25824    "adc r29, r25 \n\t"                \
25825    "mul r18, r11 \n\t"                \
25826    "add r23, r0 \n\t"                 \
25827    "adc r28, r1 \n\t"                 \
25828    "adc r29, r25 \n\t"                \
25829    "mul r19, r10 \n\t"                \
25830    "add r23, r0 \n\t"                 \
25831    "adc r28, r1 \n\t"                 \
25832    "adc r29, r25 \n\t"                \
25833    "mul r20, r9 \n\t"                 \
25834    "add r23, r0 \n\t"                 \
25835    "adc r28, r1 \n\t"                 \
25836    "adc r29, r25 \n\t"                \
25837    "mul r21, r8 \n\t"                 \
25838    "add r23, r0 \n\t"                 \
25839    "adc r28, r1 \n\t"                 \
25840    "adc r29, r25 \n\t"                \
25841    "mul r2, r7 \n\t"                  \
25842    "add r23, r0 \n\t"                 \
25843    "adc r28, r1 \n\t"                 \
25844    "adc r29, r25 \n\t"                \
25845    "mul r3, r6 \n\t"                  \
25846    "add r23, r0 \n\t"                 \
25847    "adc r28, r1 \n\t"                 \
25848    "adc r29, r25 \n\t"                \
25849    "mul r4, r5 \n\t"                  \
25850    "add r23, r0 \n\t"                 \
25851    "adc r28, r1 \n\t"                 \
25852    "adc r29, r25 \n\t"                \
25853    "lsl r23 \n\t"                     \
25854    "rol r28 \n\t"                     \
25855    "rol r29 \n\t"                     \
25856    "add r23, r24 \n\t"                \
25857    "adc r28, r22 \n\t"                \
25858    "adc r29, r25 \n\t"                \
25859    "st z+, r23 \n\t"                  \
25860                                       \
25861    "ldi r22, 0 \n\t"                  \
25862    "mul r17, r13 \n\t"                \
25863    "mov r23, r0 \n\t"                 \
25864    "mov r24, r1 \n\t"                 \
25865    "mul r18, r12 \n\t"                \
25866    "add r23, r0 \n\t"                 \
25867    "adc r24, r1 \n\t"                 \
25868    "adc r22, r25 \n\t"                \
25869    "mul r19, r11 \n\t"                \
25870    "add r23, r0 \n\t"                 \
25871    "adc r24, r1 \n\t"                 \
25872    "adc r22, r25 \n\t"                \
25873    "mul r20, r10 \n\t"                \
25874    "add r23, r0 \n\t"                 \
25875    "adc r24, r1 \n\t"                 \
25876    "adc r22, r25 \n\t"                \
25877    "mul r21, r9 \n\t"                 \
25878    "add r23, r0 \n\t"                 \
25879    "adc r24, r1 \n\t"                 \
25880    "adc r22, r25 \n\t"                \
25881    "mul r2, r8 \n\t"                  \
25882    "add r23, r0 \n\t"                 \
25883    "adc r24, r1 \n\t"                 \
25884    "adc r22, r25 \n\t"                \
25885    "mul r3, r7 \n\t"                  \
25886    "add r23, r0 \n\t"                 \
25887    "adc r24, r1 \n\t"                 \
25888    "adc r22, r25 \n\t"                \
25889    "mul r4, r6 \n\t"                  \
25890    "add r23, r0 \n\t"                 \
25891    "adc r24, r1 \n\t"                 \
25892    "adc r22, r25 \n\t"                \
25893    "lsl r23 \n\t"                     \
25894    "rol r24 \n\t"                     \
25895    "rol r22 \n\t"                     \
25896    "mul r5, r5 \n\t"                  \
25897    "add r23, r0 \n\t"                 \
25898    "adc r24, r1 \n\t"                 \
25899    "adc r22, r25 \n\t"                \
25900    "add r23, r28 \n\t"                \
25901    "adc r24, r29 \n\t"                \
25902    "adc r22, r25 \n\t"                \
25903    "st z+, r23 \n\t"                  \
25904                                       \
25905    "ldi r29, 0 \n\t"                  \
25906    "mul r18, r13 \n\t"                \
25907    "mov r23, r0 \n\t"                 \
25908    "mov r28, r1 \n\t"                 \
25909    "mul r19, r12 \n\t"                \
25910    "add r23, r0 \n\t"                 \
25911    "adc r28, r1 \n\t"                 \
25912    "adc r29, r25 \n\t"                \
25913    "mul r20, r11 \n\t"                \
25914    "add r23, r0 \n\t"                 \
25915    "adc r28, r1 \n\t"                 \
25916    "adc r29, r25 \n\t"                \
25917    "mul r21, r10 \n\t"                \
25918    "add r23, r0 \n\t"                 \
25919    "adc r28, r1 \n\t"                 \
25920    "adc r29, r25 \n\t"                \
25921    "mul r2, r9 \n\t"                  \
25922    "add r23, r0 \n\t"                 \
25923    "adc r28, r1 \n\t"                 \
25924    "adc r29, r25 \n\t"                \
25925    "mul r3, r8 \n\t"                  \
25926    "add r23, r0 \n\t"                 \
25927    "adc r28, r1 \n\t"                 \
25928    "adc r29, r25 \n\t"                \
25929    "mul r4, r7 \n\t"                  \
25930    "add r23, r0 \n\t"                 \
25931    "adc r28, r1 \n\t"                 \
25932    "adc r29, r25 \n\t"                \
25933    "mul r5, r6 \n\t"                  \
25934    "add r23, r0 \n\t"                 \
25935    "adc r28, r1 \n\t"                 \
25936    "adc r29, r25 \n\t"                \
25937    "lsl r23 \n\t"                     \
25938    "rol r28 \n\t"                     \
25939    "rol r29 \n\t"                     \
25940    "add r23, r24 \n\t"                \
25941    "adc r28, r22 \n\t"                \
25942    "adc r29, r25 \n\t"                \
25943    "st z+, r23 \n\t"                  \
25944                                       \
25945    "ldi r22, 0 \n\t"                  \
25946    "mul r19, r13 \n\t"                \
25947    "mov r23, r0 \n\t"                 \
25948    "mov r24, r1 \n\t"                 \
25949    "mul r20, r12 \n\t"                \
25950    "add r23, r0 \n\t"                 \
25951    "adc r24, r1 \n\t"                 \
25952    "adc r22, r25 \n\t"                \
25953    "mul r21, r11 \n\t"                \
25954    "add r23, r0 \n\t"                 \
25955    "adc r24, r1 \n\t"                 \
25956    "adc r22, r25 \n\t"                \
25957    "mul r2, r10 \n\t"                 \
25958    "add r23, r0 \n\t"                 \
25959    "adc r24, r1 \n\t"                 \
25960    "adc r22, r25 \n\t"                \
25961    "mul r3, r9 \n\t"                  \
25962    "add r23, r0 \n\t"                 \
25963    "adc r24, r1 \n\t"                 \
25964    "adc r22, r25 \n\t"                \
25965    "mul r4, r8 \n\t"                  \
25966    "add r23, r0 \n\t"                 \
25967    "adc r24, r1 \n\t"                 \
25968    "adc r22, r25 \n\t"                \
25969    "mul r5, r7 \n\t"                  \
25970    "add r23, r0 \n\t"                 \
25971    "adc r24, r1 \n\t"                 \
25972    "adc r22, r25 \n\t"                \
25973    "lsl r23 \n\t"                     \
25974    "rol r24 \n\t"                     \
25975    "rol r22 \n\t"                     \
25976    "mul r6, r6 \n\t"                  \
25977    "add r23, r0 \n\t"                 \
25978    "adc r24, r1 \n\t"                 \
25979    "adc r22, r25 \n\t"                \
25980    "add r23, r28 \n\t"                \
25981    "adc r24, r29 \n\t"                \
25982    "adc r22, r25 \n\t"                \
25983    "st z+, r23 \n\t"                  \
25984                                       \
25985    "ldi r29, 0 \n\t"                  \
25986    "mul r20, r13 \n\t"                \
25987    "mov r23, r0 \n\t"                 \
25988    "mov r28, r1 \n\t"                 \
25989    "mul r21, r12 \n\t"                \
25990    "add r23, r0 \n\t"                 \
25991    "adc r28, r1 \n\t"                 \
25992    "adc r29, r25 \n\t"                \
25993    "mul r2, r11 \n\t"                 \
25994    "add r23, r0 \n\t"                 \
25995    "adc r28, r1 \n\t"                 \
25996    "adc r29, r25 \n\t"                \
25997    "mul r3, r10 \n\t"                 \
25998    "add r23, r0 \n\t"                 \
25999    "adc r28, r1 \n\t"                 \
26000    "adc r29, r25 \n\t"                \
26001    "mul r4, r9 \n\t"                  \
26002    "add r23, r0 \n\t"                 \
26003    "adc r28, r1 \n\t"                 \
26004    "adc r29, r25 \n\t"                \
26005    "mul r5, r8 \n\t"                  \
26006    "add r23, r0 \n\t"                 \
26007    "adc r28, r1 \n\t"                 \
26008    "adc r29, r25 \n\t"                \
26009    "mul r6, r7 \n\t"                  \
26010    "add r23, r0 \n\t"                 \
26011    "adc r28, r1 \n\t"                 \
26012    "adc r29, r25 \n\t"                \
26013    "lsl r23 \n\t"                     \
26014    "rol r28 \n\t"                     \
26015    "rol r29 \n\t"                     \
26016    "add r23, r24 \n\t"                \
26017    "adc r28, r22 \n\t"                \
26018    "adc r29, r25 \n\t"                \
26019    "st z+, r23 \n\t"                  \
26020                                       \
26021    "ldi r22, 0 \n\t"                  \
26022    "mul r21, r13 \n\t"                \
26023    "mov r23, r0 \n\t"                 \
26024    "mov r24, r1 \n\t"                 \
26025    "mul r2, r12 \n\t"                 \
26026    "add r23, r0 \n\t"                 \
26027    "adc r24, r1 \n\t"                 \
26028    "adc r22, r25 \n\t"                \
26029    "mul r3, r11 \n\t"                 \
26030    "add r23, r0 \n\t"                 \
26031    "adc r24, r1 \n\t"                 \
26032    "adc r22, r25 \n\t"                \
26033    "mul r4, r10 \n\t"                 \
26034    "add r23, r0 \n\t"                 \
26035    "adc r24, r1 \n\t"                 \
26036    "adc r22, r25 \n\t"                \
26037    "mul r5, r9 \n\t"                  \
26038    "add r23, r0 \n\t"                 \
26039    "adc r24, r1 \n\t"                 \
26040    "adc r22, r25 \n\t"                \
26041    "mul r6, r8 \n\t"                  \
26042    "add r23, r0 \n\t"                 \
26043    "adc r24, r1 \n\t"                 \
26044    "adc r22, r25 \n\t"                \
26045    "lsl r23 \n\t"                     \
26046    "rol r24 \n\t"                     \
26047    "rol r22 \n\t"                     \
26048    "mul r7, r7 \n\t"                  \
26049    "add r23, r0 \n\t"                 \
26050    "adc r24, r1 \n\t"                 \
26051    "adc r22, r25 \n\t"                \
26052    "add r23, r28 \n\t"                \
26053    "adc r24, r29 \n\t"                \
26054    "adc r22, r25 \n\t"                \
26055    "st z+, r23 \n\t"                  \
26056                                       \
26057    "ldi r29, 0 \n\t"                  \
26058    "mul r2, r13 \n\t"                 \
26059    "mov r23, r0 \n\t"                 \
26060    "mov r28, r1 \n\t"                 \
26061    "mul r3, r12 \n\t"                 \
26062    "add r23, r0 \n\t"                 \
26063    "adc r28, r1 \n\t"                 \
26064    "adc r29, r25 \n\t"                \
26065    "mul r4, r11 \n\t"                 \
26066    "add r23, r0 \n\t"                 \
26067    "adc r28, r1 \n\t"                 \
26068    "adc r29, r25 \n\t"                \
26069    "mul r5, r10 \n\t"                 \
26070    "add r23, r0 \n\t"                 \
26071    "adc r28, r1 \n\t"                 \
26072    "adc r29, r25 \n\t"                \
26073    "mul r6, r9 \n\t"                  \
26074    "add r23, r0 \n\t"                 \
26075    "adc r28, r1 \n\t"                 \
26076    "adc r29, r25 \n\t"                \
26077    "mul r7, r8 \n\t"                  \
26078    "add r23, r0 \n\t"                 \
26079    "adc r28, r1 \n\t"                 \
26080    "adc r29, r25 \n\t"                \
26081    "lsl r23 \n\t"                     \
26082    "rol r28 \n\t"                     \
26083    "rol r29 \n\t"                     \
26084    "add r23, r24 \n\t"                \
26085    "adc r28, r22 \n\t"                \
26086    "adc r29, r25 \n\t"                \
26087    "st z+, r23 \n\t"                  \
26088                                       \
26089    "ldi r22, 0 \n\t"                  \
26090    "mul r3, r13 \n\t"                 \
26091    "mov r23, r0 \n\t"                 \
26092    "mov r24, r1 \n\t"                 \
26093    "mul r4, r12 \n\t"                 \
26094    "add r23, r0 \n\t"                 \
26095    "adc r24, r1 \n\t"                 \
26096    "adc r22, r25 \n\t"                \
26097    "mul r5, r11 \n\t"                 \
26098    "add r23, r0 \n\t"                 \
26099    "adc r24, r1 \n\t"                 \
26100    "adc r22, r25 \n\t"                \
26101    "mul r6, r10 \n\t"                 \
26102    "add r23, r0 \n\t"                 \
26103    "adc r24, r1 \n\t"                 \
26104    "adc r22, r25 \n\t"                \
26105    "mul r7, r9 \n\t"                  \
26106    "add r23, r0 \n\t"                 \
26107    "adc r24, r1 \n\t"                 \
26108    "adc r22, r25 \n\t"                \
26109    "lsl r23 \n\t"                     \
26110    "rol r24 \n\t"                     \
26111    "rol r22 \n\t"                     \
26112    "mul r8, r8 \n\t"                  \
26113    "add r23, r0 \n\t"                 \
26114    "adc r24, r1 \n\t"                 \
26115    "adc r22, r25 \n\t"                \
26116    "add r23, r28 \n\t"                \
26117    "adc r24, r29 \n\t"                \
26118    "adc r22, r25 \n\t"                \
26119    "st z+, r23 \n\t"                  \
26120                                       \
26121    "ldi r29, 0 \n\t"                  \
26122    "mul r4, r13 \n\t"                 \
26123    "mov r23, r0 \n\t"                 \
26124    "mov r28, r1 \n\t"                 \
26125    "mul r5, r12 \n\t"                 \
26126    "add r23, r0 \n\t"                 \
26127    "adc r28, r1 \n\t"                 \
26128    "adc r29, r25 \n\t"                \
26129    "mul r6, r11 \n\t"                 \
26130    "add r23, r0 \n\t"                 \
26131    "adc r28, r1 \n\t"                 \
26132    "adc r29, r25 \n\t"                \
26133    "mul r7, r10 \n\t"                 \
26134    "add r23, r0 \n\t"                 \
26135    "adc r28, r1 \n\t"                 \
26136    "adc r29, r25 \n\t"                \
26137    "mul r8, r9 \n\t"                  \
26138    "add r23, r0 \n\t"                 \
26139    "adc r28, r1 \n\t"                 \
26140    "adc r29, r25 \n\t"                \
26141    "lsl r23 \n\t"                     \
26142    "rol r28 \n\t"                     \
26143    "rol r29 \n\t"                     \
26144    "add r23, r24 \n\t"                \
26145    "adc r28, r22 \n\t"                \
26146    "adc r29, r25 \n\t"                \
26147    "st z+, r23 \n\t"                  \
26148                                       \
26149    "ldi r22, 0 \n\t"                  \
26150    "mul r5, r13 \n\t"                 \
26151    "mov r23, r0 \n\t"                 \
26152    "mov r24, r1 \n\t"                 \
26153    "mul r6, r12 \n\t"                 \
26154    "add r23, r0 \n\t"                 \
26155    "adc r24, r1 \n\t"                 \
26156    "adc r22, r25 \n\t"                \
26157    "mul r7, r11 \n\t"                 \
26158    "add r23, r0 \n\t"                 \
26159    "adc r24, r1 \n\t"                 \
26160    "adc r22, r25 \n\t"                \
26161    "mul r8, r10 \n\t"                 \
26162    "add r23, r0 \n\t"                 \
26163    "adc r24, r1 \n\t"                 \
26164    "adc r22, r25 \n\t"                \
26165    "lsl r23 \n\t"                     \
26166    "rol r24 \n\t"                     \
26167    "rol r22 \n\t"                     \
26168    "mul r9, r9 \n\t"                  \
26169    "add r23, r0 \n\t"                 \
26170    "adc r24, r1 \n\t"                 \
26171    "adc r22, r25 \n\t"                \
26172    "add r23, r28 \n\t"                \
26173    "adc r24, r29 \n\t"                \
26174    "adc r22, r25 \n\t"                \
26175    "st z+, r23 \n\t"                  \
26176                                       \
26177    "ldi r29, 0 \n\t"                  \
26178    "mul r6, r13 \n\t"                 \
26179    "mov r23, r0 \n\t"                 \
26180    "mov r28, r1 \n\t"                 \
26181    "mul r7, r12 \n\t"                 \
26182    "add r23, r0 \n\t"                 \
26183    "adc r28, r1 \n\t"                 \
26184    "adc r29, r25 \n\t"                \
26185    "mul r8, r11 \n\t"                 \
26186    "add r23, r0 \n\t"                 \
26187    "adc r28, r1 \n\t"                 \
26188    "adc r29, r25 \n\t"                \
26189    "mul r9, r10 \n\t"                 \
26190    "add r23, r0 \n\t"                 \
26191    "adc r28, r1 \n\t"                 \
26192    "adc r29, r25 \n\t"                \
26193    "lsl r23 \n\t"                     \
26194    "rol r28 \n\t"                     \
26195    "rol r29 \n\t"                     \
26196    "add r23, r24 \n\t"                \
26197    "adc r28, r22 \n\t"                \
26198    "adc r29, r25 \n\t"                \
26199    "st z+, r23 \n\t"                  \
26200                                       \
26201    "ldi r22, 0 \n\t"                  \
26202    "mul r7, r13 \n\t"                 \
26203    "mov r23, r0 \n\t"                 \
26204    "mov r24, r1 \n\t"                 \
26205    "mul r8, r12 \n\t"                 \
26206    "add r23, r0 \n\t"                 \
26207    "adc r24, r1 \n\t"                 \
26208    "adc r22, r25 \n\t"                \
26209    "mul r9, r11 \n\t"                 \
26210    "add r23, r0 \n\t"                 \
26211    "adc r24, r1 \n\t"                 \
26212    "adc r22, r25 \n\t"                \
26213    "lsl r23 \n\t"                     \
26214    "rol r24 \n\t"                     \
26215    "rol r22 \n\t"                     \
26216    "mul r10, r10 \n\t"                \
26217    "add r23, r0 \n\t"                 \
26218    "adc r24, r1 \n\t"                 \
26219    "adc r22, r25 \n\t"                \
26220    "add r23, r28 \n\t"                \
26221    "adc r24, r29 \n\t"                \
26222    "adc r22, r25 \n\t"                \
26223    "st z+, r23 \n\t"                  \
26224                                       \
26225    "ldi r29, 0 \n\t"                  \
26226    "mul r8, r13 \n\t"                 \
26227    "mov r23, r0 \n\t"                 \
26228    "mov r28, r1 \n\t"                 \
26229    "mul r9, r12 \n\t"                 \
26230    "add r23, r0 \n\t"                 \
26231    "adc r28, r1 \n\t"                 \
26232    "adc r29, r25 \n\t"                \
26233    "mul r10, r11 \n\t"                \
26234    "add r23, r0 \n\t"                 \
26235    "adc r28, r1 \n\t"                 \
26236    "adc r29, r25 \n\t"                \
26237    "lsl r23 \n\t"                     \
26238    "rol r28 \n\t"                     \
26239    "rol r29 \n\t"                     \
26240    "add r23, r24 \n\t"                \
26241    "adc r28, r22 \n\t"                \
26242    "adc r29, r25 \n\t"                \
26243    "st z+, r23 \n\t"                  \
26244                                       \
26245    "ldi r22, 0 \n\t"                  \
26246    "mul r9, r13 \n\t"                 \
26247    "mov r23, r0 \n\t"                 \
26248    "mov r24, r1 \n\t"                 \
26249    "mul r10, r12 \n\t"                \
26250    "add r23, r0 \n\t"                 \
26251    "adc r24, r1 \n\t"                 \
26252    "adc r22, r25 \n\t"                \
26253    "lsl r23 \n\t"                     \
26254    "rol r24 \n\t"                     \
26255    "rol r22 \n\t"                     \
26256    "mul r11, r11 \n\t"                \
26257    "add r23, r0 \n\t"                 \
26258    "adc r24, r1 \n\t"                 \
26259    "adc r22, r25 \n\t"                \
26260    "add r23, r28 \n\t"                \
26261    "adc r24, r29 \n\t"                \
26262    "adc r22, r25 \n\t"                \
26263    "st z+, r23 \n\t"                  \
26264                                       \
26265    "ldi r29, 0 \n\t"                  \
26266    "mul r10, r13 \n\t"                \
26267    "mov r23, r0 \n\t"                 \
26268    "mov r28, r1 \n\t"                 \
26269    "mul r11, r12 \n\t"                \
26270    "add r23, r0 \n\t"                 \
26271    "adc r28, r1 \n\t"                 \
26272    "adc r29, r25 \n\t"                \
26273    "lsl r23 \n\t"                     \
26274    "rol r28 \n\t"                     \
26275    "rol r29 \n\t"                     \
26276    "add r23, r24 \n\t"                \
26277    "adc r28, r22 \n\t"                \
26278    "adc r29, r25 \n\t"                \
26279    "st z+, r23 \n\t"                  \
26280                                       \
26281    "ldi r23, 0 \n\t"                  \
26282    "mul r11, r13 \n\t"                \
26283    "add r28, r0 \n\t"                 \
26284    "adc r29, r1 \n\t"                 \
26285    "adc r23, r25 \n\t"                \
26286    "add r28, r0 \n\t"                 \
26287    "adc r29, r1 \n\t"                 \
26288    "adc r23, r25 \n\t"                \
26289    "mul r12, r12 \n\t"                \
26290    "add r28, r0 \n\t"                 \
26291    "adc r29, r1 \n\t"                 \
26292    "adc r23, r25 \n\t"                \
26293    "st z+, r28 \n\t"                  \
26294                                       \
26295    "ldi r28, 0 \n\t"                  \
26296    "mul r12, r13 \n\t"                \
26297    "add r29, r0 \n\t"                 \
26298    "adc r23, r1 \n\t"                 \
26299    "adc r28, r25 \n\t"                \
26300    "add r29, r0 \n\t"                 \
26301    "adc r23, r1 \n\t"                 \
26302    "adc r28, r25 \n\t"                \
26303    "st z+, r29 \n\t"                  \
26304                                       \
26305    "mul r13, r13 \n\t"                \
26306    "add r23, r0 \n\t"                 \
26307    "adc r28, r1 \n\t"                 \
26308    "st z+, r23 \n\t"                  \
26309    "st z+, r28 \n\t"
26310
26311#endif /* _UECC_ASM_AVR_MULT_SQUARE_H_ */
26312