xref: /freebsd/sys/crypto/openssl/amd64/wp-x86_64.S (revision 031beb4e239bfce798af17f5fe8dba8bcaf13d99)
1/* Do not modify. This file is auto-generated from wp-x86_64.pl. */
2.text
3
4.globl	whirlpool_block
5.type	whirlpool_block,@function
6.align	16
7whirlpool_block:
8.cfi_startproc
9	movq	%rsp,%rax
10.cfi_def_cfa_register	%rax
11	pushq	%rbx
12.cfi_offset	%rbx,-16
13	pushq	%rbp
14.cfi_offset	%rbp,-24
15	pushq	%r12
16.cfi_offset	%r12,-32
17	pushq	%r13
18.cfi_offset	%r13,-40
19	pushq	%r14
20.cfi_offset	%r14,-48
21	pushq	%r15
22.cfi_offset	%r15,-56
23
24	subq	$128+40,%rsp
25	andq	$-64,%rsp
26
27	leaq	128(%rsp),%r10
28	movq	%rdi,0(%r10)
29	movq	%rsi,8(%r10)
30	movq	%rdx,16(%r10)
31	movq	%rax,32(%r10)
32.cfi_escape	0x0f,0x06,0x77,0xa0,0x01,0x06,0x23,0x08
33.Lprologue:
34
35	movq	%r10,%rbx
36	leaq	.Ltable(%rip),%rbp
37
38	xorq	%rcx,%rcx
39	xorq	%rdx,%rdx
40	movq	0(%rdi),%r8
41	movq	8(%rdi),%r9
42	movq	16(%rdi),%r10
43	movq	24(%rdi),%r11
44	movq	32(%rdi),%r12
45	movq	40(%rdi),%r13
46	movq	48(%rdi),%r14
47	movq	56(%rdi),%r15
48.Louterloop:
49	movq	%r8,0(%rsp)
50	movq	%r9,8(%rsp)
51	movq	%r10,16(%rsp)
52	movq	%r11,24(%rsp)
53	movq	%r12,32(%rsp)
54	movq	%r13,40(%rsp)
55	movq	%r14,48(%rsp)
56	movq	%r15,56(%rsp)
57	xorq	0(%rsi),%r8
58	xorq	8(%rsi),%r9
59	xorq	16(%rsi),%r10
60	xorq	24(%rsi),%r11
61	xorq	32(%rsi),%r12
62	xorq	40(%rsi),%r13
63	xorq	48(%rsi),%r14
64	xorq	56(%rsi),%r15
65	movq	%r8,64+0(%rsp)
66	movq	%r9,64+8(%rsp)
67	movq	%r10,64+16(%rsp)
68	movq	%r11,64+24(%rsp)
69	movq	%r12,64+32(%rsp)
70	movq	%r13,64+40(%rsp)
71	movq	%r14,64+48(%rsp)
72	movq	%r15,64+56(%rsp)
73	xorq	%rsi,%rsi
74	movq	%rsi,24(%rbx)
75	jmp	.Lround
76.align	16
77.Lround:
78	movq	4096(%rbp,%rsi,8),%r8
79	movl	0(%rsp),%eax
80	movl	4(%rsp),%ebx
81	movzbl	%al,%ecx
82	movzbl	%ah,%edx
83	shrl	$16,%eax
84	leaq	(%rcx,%rcx,1),%rsi
85	movzbl	%al,%ecx
86	leaq	(%rdx,%rdx,1),%rdi
87	movzbl	%ah,%edx
88	xorq	0(%rbp,%rsi,8),%r8
89	movq	7(%rbp,%rdi,8),%r9
90	movl	0+8(%rsp),%eax
91	leaq	(%rcx,%rcx,1),%rsi
92	movzbl	%bl,%ecx
93	leaq	(%rdx,%rdx,1),%rdi
94	movzbl	%bh,%edx
95	movq	6(%rbp,%rsi,8),%r10
96	movq	5(%rbp,%rdi,8),%r11
97	shrl	$16,%ebx
98	leaq	(%rcx,%rcx,1),%rsi
99	movzbl	%bl,%ecx
100	leaq	(%rdx,%rdx,1),%rdi
101	movzbl	%bh,%edx
102	movq	4(%rbp,%rsi,8),%r12
103	movq	3(%rbp,%rdi,8),%r13
104	movl	0+8+4(%rsp),%ebx
105	leaq	(%rcx,%rcx,1),%rsi
106	movzbl	%al,%ecx
107	leaq	(%rdx,%rdx,1),%rdi
108	movzbl	%ah,%edx
109	movq	2(%rbp,%rsi,8),%r14
110	movq	1(%rbp,%rdi,8),%r15
111	shrl	$16,%eax
112	leaq	(%rcx,%rcx,1),%rsi
113	movzbl	%al,%ecx
114	leaq	(%rdx,%rdx,1),%rdi
115	movzbl	%ah,%edx
116	xorq	0(%rbp,%rsi,8),%r9
117	xorq	7(%rbp,%rdi,8),%r10
118	movl	8+8(%rsp),%eax
119	leaq	(%rcx,%rcx,1),%rsi
120	movzbl	%bl,%ecx
121	leaq	(%rdx,%rdx,1),%rdi
122	movzbl	%bh,%edx
123	xorq	6(%rbp,%rsi,8),%r11
124	xorq	5(%rbp,%rdi,8),%r12
125	shrl	$16,%ebx
126	leaq	(%rcx,%rcx,1),%rsi
127	movzbl	%bl,%ecx
128	leaq	(%rdx,%rdx,1),%rdi
129	movzbl	%bh,%edx
130	xorq	4(%rbp,%rsi,8),%r13
131	xorq	3(%rbp,%rdi,8),%r14
132	movl	8+8+4(%rsp),%ebx
133	leaq	(%rcx,%rcx,1),%rsi
134	movzbl	%al,%ecx
135	leaq	(%rdx,%rdx,1),%rdi
136	movzbl	%ah,%edx
137	xorq	2(%rbp,%rsi,8),%r15
138	xorq	1(%rbp,%rdi,8),%r8
139	shrl	$16,%eax
140	leaq	(%rcx,%rcx,1),%rsi
141	movzbl	%al,%ecx
142	leaq	(%rdx,%rdx,1),%rdi
143	movzbl	%ah,%edx
144	xorq	0(%rbp,%rsi,8),%r10
145	xorq	7(%rbp,%rdi,8),%r11
146	movl	16+8(%rsp),%eax
147	leaq	(%rcx,%rcx,1),%rsi
148	movzbl	%bl,%ecx
149	leaq	(%rdx,%rdx,1),%rdi
150	movzbl	%bh,%edx
151	xorq	6(%rbp,%rsi,8),%r12
152	xorq	5(%rbp,%rdi,8),%r13
153	shrl	$16,%ebx
154	leaq	(%rcx,%rcx,1),%rsi
155	movzbl	%bl,%ecx
156	leaq	(%rdx,%rdx,1),%rdi
157	movzbl	%bh,%edx
158	xorq	4(%rbp,%rsi,8),%r14
159	xorq	3(%rbp,%rdi,8),%r15
160	movl	16+8+4(%rsp),%ebx
161	leaq	(%rcx,%rcx,1),%rsi
162	movzbl	%al,%ecx
163	leaq	(%rdx,%rdx,1),%rdi
164	movzbl	%ah,%edx
165	xorq	2(%rbp,%rsi,8),%r8
166	xorq	1(%rbp,%rdi,8),%r9
167	shrl	$16,%eax
168	leaq	(%rcx,%rcx,1),%rsi
169	movzbl	%al,%ecx
170	leaq	(%rdx,%rdx,1),%rdi
171	movzbl	%ah,%edx
172	xorq	0(%rbp,%rsi,8),%r11
173	xorq	7(%rbp,%rdi,8),%r12
174	movl	24+8(%rsp),%eax
175	leaq	(%rcx,%rcx,1),%rsi
176	movzbl	%bl,%ecx
177	leaq	(%rdx,%rdx,1),%rdi
178	movzbl	%bh,%edx
179	xorq	6(%rbp,%rsi,8),%r13
180	xorq	5(%rbp,%rdi,8),%r14
181	shrl	$16,%ebx
182	leaq	(%rcx,%rcx,1),%rsi
183	movzbl	%bl,%ecx
184	leaq	(%rdx,%rdx,1),%rdi
185	movzbl	%bh,%edx
186	xorq	4(%rbp,%rsi,8),%r15
187	xorq	3(%rbp,%rdi,8),%r8
188	movl	24+8+4(%rsp),%ebx
189	leaq	(%rcx,%rcx,1),%rsi
190	movzbl	%al,%ecx
191	leaq	(%rdx,%rdx,1),%rdi
192	movzbl	%ah,%edx
193	xorq	2(%rbp,%rsi,8),%r9
194	xorq	1(%rbp,%rdi,8),%r10
195	shrl	$16,%eax
196	leaq	(%rcx,%rcx,1),%rsi
197	movzbl	%al,%ecx
198	leaq	(%rdx,%rdx,1),%rdi
199	movzbl	%ah,%edx
200	xorq	0(%rbp,%rsi,8),%r12
201	xorq	7(%rbp,%rdi,8),%r13
202	movl	32+8(%rsp),%eax
203	leaq	(%rcx,%rcx,1),%rsi
204	movzbl	%bl,%ecx
205	leaq	(%rdx,%rdx,1),%rdi
206	movzbl	%bh,%edx
207	xorq	6(%rbp,%rsi,8),%r14
208	xorq	5(%rbp,%rdi,8),%r15
209	shrl	$16,%ebx
210	leaq	(%rcx,%rcx,1),%rsi
211	movzbl	%bl,%ecx
212	leaq	(%rdx,%rdx,1),%rdi
213	movzbl	%bh,%edx
214	xorq	4(%rbp,%rsi,8),%r8
215	xorq	3(%rbp,%rdi,8),%r9
216	movl	32+8+4(%rsp),%ebx
217	leaq	(%rcx,%rcx,1),%rsi
218	movzbl	%al,%ecx
219	leaq	(%rdx,%rdx,1),%rdi
220	movzbl	%ah,%edx
221	xorq	2(%rbp,%rsi,8),%r10
222	xorq	1(%rbp,%rdi,8),%r11
223	shrl	$16,%eax
224	leaq	(%rcx,%rcx,1),%rsi
225	movzbl	%al,%ecx
226	leaq	(%rdx,%rdx,1),%rdi
227	movzbl	%ah,%edx
228	xorq	0(%rbp,%rsi,8),%r13
229	xorq	7(%rbp,%rdi,8),%r14
230	movl	40+8(%rsp),%eax
231	leaq	(%rcx,%rcx,1),%rsi
232	movzbl	%bl,%ecx
233	leaq	(%rdx,%rdx,1),%rdi
234	movzbl	%bh,%edx
235	xorq	6(%rbp,%rsi,8),%r15
236	xorq	5(%rbp,%rdi,8),%r8
237	shrl	$16,%ebx
238	leaq	(%rcx,%rcx,1),%rsi
239	movzbl	%bl,%ecx
240	leaq	(%rdx,%rdx,1),%rdi
241	movzbl	%bh,%edx
242	xorq	4(%rbp,%rsi,8),%r9
243	xorq	3(%rbp,%rdi,8),%r10
244	movl	40+8+4(%rsp),%ebx
245	leaq	(%rcx,%rcx,1),%rsi
246	movzbl	%al,%ecx
247	leaq	(%rdx,%rdx,1),%rdi
248	movzbl	%ah,%edx
249	xorq	2(%rbp,%rsi,8),%r11
250	xorq	1(%rbp,%rdi,8),%r12
251	shrl	$16,%eax
252	leaq	(%rcx,%rcx,1),%rsi
253	movzbl	%al,%ecx
254	leaq	(%rdx,%rdx,1),%rdi
255	movzbl	%ah,%edx
256	xorq	0(%rbp,%rsi,8),%r14
257	xorq	7(%rbp,%rdi,8),%r15
258	movl	48+8(%rsp),%eax
259	leaq	(%rcx,%rcx,1),%rsi
260	movzbl	%bl,%ecx
261	leaq	(%rdx,%rdx,1),%rdi
262	movzbl	%bh,%edx
263	xorq	6(%rbp,%rsi,8),%r8
264	xorq	5(%rbp,%rdi,8),%r9
265	shrl	$16,%ebx
266	leaq	(%rcx,%rcx,1),%rsi
267	movzbl	%bl,%ecx
268	leaq	(%rdx,%rdx,1),%rdi
269	movzbl	%bh,%edx
270	xorq	4(%rbp,%rsi,8),%r10
271	xorq	3(%rbp,%rdi,8),%r11
272	movl	48+8+4(%rsp),%ebx
273	leaq	(%rcx,%rcx,1),%rsi
274	movzbl	%al,%ecx
275	leaq	(%rdx,%rdx,1),%rdi
276	movzbl	%ah,%edx
277	xorq	2(%rbp,%rsi,8),%r12
278	xorq	1(%rbp,%rdi,8),%r13
279	shrl	$16,%eax
280	leaq	(%rcx,%rcx,1),%rsi
281	movzbl	%al,%ecx
282	leaq	(%rdx,%rdx,1),%rdi
283	movzbl	%ah,%edx
284	xorq	0(%rbp,%rsi,8),%r15
285	xorq	7(%rbp,%rdi,8),%r8
286	movl	56+8(%rsp),%eax
287	leaq	(%rcx,%rcx,1),%rsi
288	movzbl	%bl,%ecx
289	leaq	(%rdx,%rdx,1),%rdi
290	movzbl	%bh,%edx
291	xorq	6(%rbp,%rsi,8),%r9
292	xorq	5(%rbp,%rdi,8),%r10
293	shrl	$16,%ebx
294	leaq	(%rcx,%rcx,1),%rsi
295	movzbl	%bl,%ecx
296	leaq	(%rdx,%rdx,1),%rdi
297	movzbl	%bh,%edx
298	xorq	4(%rbp,%rsi,8),%r11
299	xorq	3(%rbp,%rdi,8),%r12
300	movl	56+8+4(%rsp),%ebx
301	leaq	(%rcx,%rcx,1),%rsi
302	movzbl	%al,%ecx
303	leaq	(%rdx,%rdx,1),%rdi
304	movzbl	%ah,%edx
305	xorq	2(%rbp,%rsi,8),%r13
306	xorq	1(%rbp,%rdi,8),%r14
307	movq	%r8,0(%rsp)
308	movq	%r9,8(%rsp)
309	movq	%r10,16(%rsp)
310	movq	%r11,24(%rsp)
311	movq	%r12,32(%rsp)
312	movq	%r13,40(%rsp)
313	movq	%r14,48(%rsp)
314	movq	%r15,56(%rsp)
315	shrl	$16,%eax
316	leaq	(%rcx,%rcx,1),%rsi
317	movzbl	%al,%ecx
318	leaq	(%rdx,%rdx,1),%rdi
319	movzbl	%ah,%edx
320	xorq	0(%rbp,%rsi,8),%r8
321	xorq	7(%rbp,%rdi,8),%r9
322	movl	64+0+8(%rsp),%eax
323	leaq	(%rcx,%rcx,1),%rsi
324	movzbl	%bl,%ecx
325	leaq	(%rdx,%rdx,1),%rdi
326	movzbl	%bh,%edx
327	xorq	6(%rbp,%rsi,8),%r10
328	xorq	5(%rbp,%rdi,8),%r11
329	shrl	$16,%ebx
330	leaq	(%rcx,%rcx,1),%rsi
331	movzbl	%bl,%ecx
332	leaq	(%rdx,%rdx,1),%rdi
333	movzbl	%bh,%edx
334	xorq	4(%rbp,%rsi,8),%r12
335	xorq	3(%rbp,%rdi,8),%r13
336	movl	64+0+8+4(%rsp),%ebx
337	leaq	(%rcx,%rcx,1),%rsi
338	movzbl	%al,%ecx
339	leaq	(%rdx,%rdx,1),%rdi
340	movzbl	%ah,%edx
341	xorq	2(%rbp,%rsi,8),%r14
342	xorq	1(%rbp,%rdi,8),%r15
343	shrl	$16,%eax
344	leaq	(%rcx,%rcx,1),%rsi
345	movzbl	%al,%ecx
346	leaq	(%rdx,%rdx,1),%rdi
347	movzbl	%ah,%edx
348	xorq	0(%rbp,%rsi,8),%r9
349	xorq	7(%rbp,%rdi,8),%r10
350	movl	64+8+8(%rsp),%eax
351	leaq	(%rcx,%rcx,1),%rsi
352	movzbl	%bl,%ecx
353	leaq	(%rdx,%rdx,1),%rdi
354	movzbl	%bh,%edx
355	xorq	6(%rbp,%rsi,8),%r11
356	xorq	5(%rbp,%rdi,8),%r12
357	shrl	$16,%ebx
358	leaq	(%rcx,%rcx,1),%rsi
359	movzbl	%bl,%ecx
360	leaq	(%rdx,%rdx,1),%rdi
361	movzbl	%bh,%edx
362	xorq	4(%rbp,%rsi,8),%r13
363	xorq	3(%rbp,%rdi,8),%r14
364	movl	64+8+8+4(%rsp),%ebx
365	leaq	(%rcx,%rcx,1),%rsi
366	movzbl	%al,%ecx
367	leaq	(%rdx,%rdx,1),%rdi
368	movzbl	%ah,%edx
369	xorq	2(%rbp,%rsi,8),%r15
370	xorq	1(%rbp,%rdi,8),%r8
371	shrl	$16,%eax
372	leaq	(%rcx,%rcx,1),%rsi
373	movzbl	%al,%ecx
374	leaq	(%rdx,%rdx,1),%rdi
375	movzbl	%ah,%edx
376	xorq	0(%rbp,%rsi,8),%r10
377	xorq	7(%rbp,%rdi,8),%r11
378	movl	64+16+8(%rsp),%eax
379	leaq	(%rcx,%rcx,1),%rsi
380	movzbl	%bl,%ecx
381	leaq	(%rdx,%rdx,1),%rdi
382	movzbl	%bh,%edx
383	xorq	6(%rbp,%rsi,8),%r12
384	xorq	5(%rbp,%rdi,8),%r13
385	shrl	$16,%ebx
386	leaq	(%rcx,%rcx,1),%rsi
387	movzbl	%bl,%ecx
388	leaq	(%rdx,%rdx,1),%rdi
389	movzbl	%bh,%edx
390	xorq	4(%rbp,%rsi,8),%r14
391	xorq	3(%rbp,%rdi,8),%r15
392	movl	64+16+8+4(%rsp),%ebx
393	leaq	(%rcx,%rcx,1),%rsi
394	movzbl	%al,%ecx
395	leaq	(%rdx,%rdx,1),%rdi
396	movzbl	%ah,%edx
397	xorq	2(%rbp,%rsi,8),%r8
398	xorq	1(%rbp,%rdi,8),%r9
399	shrl	$16,%eax
400	leaq	(%rcx,%rcx,1),%rsi
401	movzbl	%al,%ecx
402	leaq	(%rdx,%rdx,1),%rdi
403	movzbl	%ah,%edx
404	xorq	0(%rbp,%rsi,8),%r11
405	xorq	7(%rbp,%rdi,8),%r12
406	movl	64+24+8(%rsp),%eax
407	leaq	(%rcx,%rcx,1),%rsi
408	movzbl	%bl,%ecx
409	leaq	(%rdx,%rdx,1),%rdi
410	movzbl	%bh,%edx
411	xorq	6(%rbp,%rsi,8),%r13
412	xorq	5(%rbp,%rdi,8),%r14
413	shrl	$16,%ebx
414	leaq	(%rcx,%rcx,1),%rsi
415	movzbl	%bl,%ecx
416	leaq	(%rdx,%rdx,1),%rdi
417	movzbl	%bh,%edx
418	xorq	4(%rbp,%rsi,8),%r15
419	xorq	3(%rbp,%rdi,8),%r8
420	movl	64+24+8+4(%rsp),%ebx
421	leaq	(%rcx,%rcx,1),%rsi
422	movzbl	%al,%ecx
423	leaq	(%rdx,%rdx,1),%rdi
424	movzbl	%ah,%edx
425	xorq	2(%rbp,%rsi,8),%r9
426	xorq	1(%rbp,%rdi,8),%r10
427	shrl	$16,%eax
428	leaq	(%rcx,%rcx,1),%rsi
429	movzbl	%al,%ecx
430	leaq	(%rdx,%rdx,1),%rdi
431	movzbl	%ah,%edx
432	xorq	0(%rbp,%rsi,8),%r12
433	xorq	7(%rbp,%rdi,8),%r13
434	movl	64+32+8(%rsp),%eax
435	leaq	(%rcx,%rcx,1),%rsi
436	movzbl	%bl,%ecx
437	leaq	(%rdx,%rdx,1),%rdi
438	movzbl	%bh,%edx
439	xorq	6(%rbp,%rsi,8),%r14
440	xorq	5(%rbp,%rdi,8),%r15
441	shrl	$16,%ebx
442	leaq	(%rcx,%rcx,1),%rsi
443	movzbl	%bl,%ecx
444	leaq	(%rdx,%rdx,1),%rdi
445	movzbl	%bh,%edx
446	xorq	4(%rbp,%rsi,8),%r8
447	xorq	3(%rbp,%rdi,8),%r9
448	movl	64+32+8+4(%rsp),%ebx
449	leaq	(%rcx,%rcx,1),%rsi
450	movzbl	%al,%ecx
451	leaq	(%rdx,%rdx,1),%rdi
452	movzbl	%ah,%edx
453	xorq	2(%rbp,%rsi,8),%r10
454	xorq	1(%rbp,%rdi,8),%r11
455	shrl	$16,%eax
456	leaq	(%rcx,%rcx,1),%rsi
457	movzbl	%al,%ecx
458	leaq	(%rdx,%rdx,1),%rdi
459	movzbl	%ah,%edx
460	xorq	0(%rbp,%rsi,8),%r13
461	xorq	7(%rbp,%rdi,8),%r14
462	movl	64+40+8(%rsp),%eax
463	leaq	(%rcx,%rcx,1),%rsi
464	movzbl	%bl,%ecx
465	leaq	(%rdx,%rdx,1),%rdi
466	movzbl	%bh,%edx
467	xorq	6(%rbp,%rsi,8),%r15
468	xorq	5(%rbp,%rdi,8),%r8
469	shrl	$16,%ebx
470	leaq	(%rcx,%rcx,1),%rsi
471	movzbl	%bl,%ecx
472	leaq	(%rdx,%rdx,1),%rdi
473	movzbl	%bh,%edx
474	xorq	4(%rbp,%rsi,8),%r9
475	xorq	3(%rbp,%rdi,8),%r10
476	movl	64+40+8+4(%rsp),%ebx
477	leaq	(%rcx,%rcx,1),%rsi
478	movzbl	%al,%ecx
479	leaq	(%rdx,%rdx,1),%rdi
480	movzbl	%ah,%edx
481	xorq	2(%rbp,%rsi,8),%r11
482	xorq	1(%rbp,%rdi,8),%r12
483	shrl	$16,%eax
484	leaq	(%rcx,%rcx,1),%rsi
485	movzbl	%al,%ecx
486	leaq	(%rdx,%rdx,1),%rdi
487	movzbl	%ah,%edx
488	xorq	0(%rbp,%rsi,8),%r14
489	xorq	7(%rbp,%rdi,8),%r15
490	movl	64+48+8(%rsp),%eax
491	leaq	(%rcx,%rcx,1),%rsi
492	movzbl	%bl,%ecx
493	leaq	(%rdx,%rdx,1),%rdi
494	movzbl	%bh,%edx
495	xorq	6(%rbp,%rsi,8),%r8
496	xorq	5(%rbp,%rdi,8),%r9
497	shrl	$16,%ebx
498	leaq	(%rcx,%rcx,1),%rsi
499	movzbl	%bl,%ecx
500	leaq	(%rdx,%rdx,1),%rdi
501	movzbl	%bh,%edx
502	xorq	4(%rbp,%rsi,8),%r10
503	xorq	3(%rbp,%rdi,8),%r11
504	movl	64+48+8+4(%rsp),%ebx
505	leaq	(%rcx,%rcx,1),%rsi
506	movzbl	%al,%ecx
507	leaq	(%rdx,%rdx,1),%rdi
508	movzbl	%ah,%edx
509	xorq	2(%rbp,%rsi,8),%r12
510	xorq	1(%rbp,%rdi,8),%r13
511	shrl	$16,%eax
512	leaq	(%rcx,%rcx,1),%rsi
513	movzbl	%al,%ecx
514	leaq	(%rdx,%rdx,1),%rdi
515	movzbl	%ah,%edx
516	xorq	0(%rbp,%rsi,8),%r15
517	xorq	7(%rbp,%rdi,8),%r8
518
519	leaq	(%rcx,%rcx,1),%rsi
520	movzbl	%bl,%ecx
521	leaq	(%rdx,%rdx,1),%rdi
522	movzbl	%bh,%edx
523	xorq	6(%rbp,%rsi,8),%r9
524	xorq	5(%rbp,%rdi,8),%r10
525	shrl	$16,%ebx
526	leaq	(%rcx,%rcx,1),%rsi
527	movzbl	%bl,%ecx
528	leaq	(%rdx,%rdx,1),%rdi
529	movzbl	%bh,%edx
530	xorq	4(%rbp,%rsi,8),%r11
531	xorq	3(%rbp,%rdi,8),%r12
532
533	leaq	(%rcx,%rcx,1),%rsi
534	movzbl	%al,%ecx
535	leaq	(%rdx,%rdx,1),%rdi
536	movzbl	%ah,%edx
537	xorq	2(%rbp,%rsi,8),%r13
538	xorq	1(%rbp,%rdi,8),%r14
539	leaq	128(%rsp),%rbx
540	movq	24(%rbx),%rsi
541	addq	$1,%rsi
542	cmpq	$10,%rsi
543	je	.Lroundsdone
544
545	movq	%rsi,24(%rbx)
546	movq	%r8,64+0(%rsp)
547	movq	%r9,64+8(%rsp)
548	movq	%r10,64+16(%rsp)
549	movq	%r11,64+24(%rsp)
550	movq	%r12,64+32(%rsp)
551	movq	%r13,64+40(%rsp)
552	movq	%r14,64+48(%rsp)
553	movq	%r15,64+56(%rsp)
554	jmp	.Lround
555.align	16
556.Lroundsdone:
557	movq	0(%rbx),%rdi
558	movq	8(%rbx),%rsi
559	movq	16(%rbx),%rax
560	xorq	0(%rsi),%r8
561	xorq	8(%rsi),%r9
562	xorq	16(%rsi),%r10
563	xorq	24(%rsi),%r11
564	xorq	32(%rsi),%r12
565	xorq	40(%rsi),%r13
566	xorq	48(%rsi),%r14
567	xorq	56(%rsi),%r15
568	xorq	0(%rdi),%r8
569	xorq	8(%rdi),%r9
570	xorq	16(%rdi),%r10
571	xorq	24(%rdi),%r11
572	xorq	32(%rdi),%r12
573	xorq	40(%rdi),%r13
574	xorq	48(%rdi),%r14
575	xorq	56(%rdi),%r15
576	movq	%r8,0(%rdi)
577	movq	%r9,8(%rdi)
578	movq	%r10,16(%rdi)
579	movq	%r11,24(%rdi)
580	movq	%r12,32(%rdi)
581	movq	%r13,40(%rdi)
582	movq	%r14,48(%rdi)
583	movq	%r15,56(%rdi)
584	leaq	64(%rsi),%rsi
585	subq	$1,%rax
586	jz	.Lalldone
587	movq	%rsi,8(%rbx)
588	movq	%rax,16(%rbx)
589	jmp	.Louterloop
590.Lalldone:
591	movq	32(%rbx),%rsi
592.cfi_def_cfa	%rsi,8
593	movq	-48(%rsi),%r15
594.cfi_restore	%r15
595	movq	-40(%rsi),%r14
596.cfi_restore	%r14
597	movq	-32(%rsi),%r13
598.cfi_restore	%r13
599	movq	-24(%rsi),%r12
600.cfi_restore	%r12
601	movq	-16(%rsi),%rbp
602.cfi_restore	%rbp
603	movq	-8(%rsi),%rbx
604.cfi_restore	%rbx
605	leaq	(%rsi),%rsp
606.cfi_def_cfa_register	%rsp
607.Lepilogue:
608	.byte	0xf3,0xc3
609.cfi_endproc
610.size	whirlpool_block,.-whirlpool_block
611
612.align	64
613.type	.Ltable,@object
614.Ltable:
615.byte	24,24,96,24,192,120,48,216,24,24,96,24,192,120,48,216
616.byte	35,35,140,35,5,175,70,38,35,35,140,35,5,175,70,38
617.byte	198,198,63,198,126,249,145,184,198,198,63,198,126,249,145,184
618.byte	232,232,135,232,19,111,205,251,232,232,135,232,19,111,205,251
619.byte	135,135,38,135,76,161,19,203,135,135,38,135,76,161,19,203
620.byte	184,184,218,184,169,98,109,17,184,184,218,184,169,98,109,17
621.byte	1,1,4,1,8,5,2,9,1,1,4,1,8,5,2,9
622.byte	79,79,33,79,66,110,158,13,79,79,33,79,66,110,158,13
623.byte	54,54,216,54,173,238,108,155,54,54,216,54,173,238,108,155
624.byte	166,166,162,166,89,4,81,255,166,166,162,166,89,4,81,255
625.byte	210,210,111,210,222,189,185,12,210,210,111,210,222,189,185,12
626.byte	245,245,243,245,251,6,247,14,245,245,243,245,251,6,247,14
627.byte	121,121,249,121,239,128,242,150,121,121,249,121,239,128,242,150
628.byte	111,111,161,111,95,206,222,48,111,111,161,111,95,206,222,48
629.byte	145,145,126,145,252,239,63,109,145,145,126,145,252,239,63,109
630.byte	82,82,85,82,170,7,164,248,82,82,85,82,170,7,164,248
631.byte	96,96,157,96,39,253,192,71,96,96,157,96,39,253,192,71
632.byte	188,188,202,188,137,118,101,53,188,188,202,188,137,118,101,53
633.byte	155,155,86,155,172,205,43,55,155,155,86,155,172,205,43,55
634.byte	142,142,2,142,4,140,1,138,142,142,2,142,4,140,1,138
635.byte	163,163,182,163,113,21,91,210,163,163,182,163,113,21,91,210
636.byte	12,12,48,12,96,60,24,108,12,12,48,12,96,60,24,108
637.byte	123,123,241,123,255,138,246,132,123,123,241,123,255,138,246,132
638.byte	53,53,212,53,181,225,106,128,53,53,212,53,181,225,106,128
639.byte	29,29,116,29,232,105,58,245,29,29,116,29,232,105,58,245
640.byte	224,224,167,224,83,71,221,179,224,224,167,224,83,71,221,179
641.byte	215,215,123,215,246,172,179,33,215,215,123,215,246,172,179,33
642.byte	194,194,47,194,94,237,153,156,194,194,47,194,94,237,153,156
643.byte	46,46,184,46,109,150,92,67,46,46,184,46,109,150,92,67
644.byte	75,75,49,75,98,122,150,41,75,75,49,75,98,122,150,41
645.byte	254,254,223,254,163,33,225,93,254,254,223,254,163,33,225,93
646.byte	87,87,65,87,130,22,174,213,87,87,65,87,130,22,174,213
647.byte	21,21,84,21,168,65,42,189,21,21,84,21,168,65,42,189
648.byte	119,119,193,119,159,182,238,232,119,119,193,119,159,182,238,232
649.byte	55,55,220,55,165,235,110,146,55,55,220,55,165,235,110,146
650.byte	229,229,179,229,123,86,215,158,229,229,179,229,123,86,215,158
651.byte	159,159,70,159,140,217,35,19,159,159,70,159,140,217,35,19
652.byte	240,240,231,240,211,23,253,35,240,240,231,240,211,23,253,35
653.byte	74,74,53,74,106,127,148,32,74,74,53,74,106,127,148,32
654.byte	218,218,79,218,158,149,169,68,218,218,79,218,158,149,169,68
655.byte	88,88,125,88,250,37,176,162,88,88,125,88,250,37,176,162
656.byte	201,201,3,201,6,202,143,207,201,201,3,201,6,202,143,207
657.byte	41,41,164,41,85,141,82,124,41,41,164,41,85,141,82,124
658.byte	10,10,40,10,80,34,20,90,10,10,40,10,80,34,20,90
659.byte	177,177,254,177,225,79,127,80,177,177,254,177,225,79,127,80
660.byte	160,160,186,160,105,26,93,201,160,160,186,160,105,26,93,201
661.byte	107,107,177,107,127,218,214,20,107,107,177,107,127,218,214,20
662.byte	133,133,46,133,92,171,23,217,133,133,46,133,92,171,23,217
663.byte	189,189,206,189,129,115,103,60,189,189,206,189,129,115,103,60
664.byte	93,93,105,93,210,52,186,143,93,93,105,93,210,52,186,143
665.byte	16,16,64,16,128,80,32,144,16,16,64,16,128,80,32,144
666.byte	244,244,247,244,243,3,245,7,244,244,247,244,243,3,245,7
667.byte	203,203,11,203,22,192,139,221,203,203,11,203,22,192,139,221
668.byte	62,62,248,62,237,198,124,211,62,62,248,62,237,198,124,211
669.byte	5,5,20,5,40,17,10,45,5,5,20,5,40,17,10,45
670.byte	103,103,129,103,31,230,206,120,103,103,129,103,31,230,206,120
671.byte	228,228,183,228,115,83,213,151,228,228,183,228,115,83,213,151
672.byte	39,39,156,39,37,187,78,2,39,39,156,39,37,187,78,2
673.byte	65,65,25,65,50,88,130,115,65,65,25,65,50,88,130,115
674.byte	139,139,22,139,44,157,11,167,139,139,22,139,44,157,11,167
675.byte	167,167,166,167,81,1,83,246,167,167,166,167,81,1,83,246
676.byte	125,125,233,125,207,148,250,178,125,125,233,125,207,148,250,178
677.byte	149,149,110,149,220,251,55,73,149,149,110,149,220,251,55,73
678.byte	216,216,71,216,142,159,173,86,216,216,71,216,142,159,173,86
679.byte	251,251,203,251,139,48,235,112,251,251,203,251,139,48,235,112
680.byte	238,238,159,238,35,113,193,205,238,238,159,238,35,113,193,205
681.byte	124,124,237,124,199,145,248,187,124,124,237,124,199,145,248,187
682.byte	102,102,133,102,23,227,204,113,102,102,133,102,23,227,204,113
683.byte	221,221,83,221,166,142,167,123,221,221,83,221,166,142,167,123
684.byte	23,23,92,23,184,75,46,175,23,23,92,23,184,75,46,175
685.byte	71,71,1,71,2,70,142,69,71,71,1,71,2,70,142,69
686.byte	158,158,66,158,132,220,33,26,158,158,66,158,132,220,33,26
687.byte	202,202,15,202,30,197,137,212,202,202,15,202,30,197,137,212
688.byte	45,45,180,45,117,153,90,88,45,45,180,45,117,153,90,88
689.byte	191,191,198,191,145,121,99,46,191,191,198,191,145,121,99,46
690.byte	7,7,28,7,56,27,14,63,7,7,28,7,56,27,14,63
691.byte	173,173,142,173,1,35,71,172,173,173,142,173,1,35,71,172
692.byte	90,90,117,90,234,47,180,176,90,90,117,90,234,47,180,176
693.byte	131,131,54,131,108,181,27,239,131,131,54,131,108,181,27,239
694.byte	51,51,204,51,133,255,102,182,51,51,204,51,133,255,102,182
695.byte	99,99,145,99,63,242,198,92,99,99,145,99,63,242,198,92
696.byte	2,2,8,2,16,10,4,18,2,2,8,2,16,10,4,18
697.byte	170,170,146,170,57,56,73,147,170,170,146,170,57,56,73,147
698.byte	113,113,217,113,175,168,226,222,113,113,217,113,175,168,226,222
699.byte	200,200,7,200,14,207,141,198,200,200,7,200,14,207,141,198
700.byte	25,25,100,25,200,125,50,209,25,25,100,25,200,125,50,209
701.byte	73,73,57,73,114,112,146,59,73,73,57,73,114,112,146,59
702.byte	217,217,67,217,134,154,175,95,217,217,67,217,134,154,175,95
703.byte	242,242,239,242,195,29,249,49,242,242,239,242,195,29,249,49
704.byte	227,227,171,227,75,72,219,168,227,227,171,227,75,72,219,168
705.byte	91,91,113,91,226,42,182,185,91,91,113,91,226,42,182,185
706.byte	136,136,26,136,52,146,13,188,136,136,26,136,52,146,13,188
707.byte	154,154,82,154,164,200,41,62,154,154,82,154,164,200,41,62
708.byte	38,38,152,38,45,190,76,11,38,38,152,38,45,190,76,11
709.byte	50,50,200,50,141,250,100,191,50,50,200,50,141,250,100,191
710.byte	176,176,250,176,233,74,125,89,176,176,250,176,233,74,125,89
711.byte	233,233,131,233,27,106,207,242,233,233,131,233,27,106,207,242
712.byte	15,15,60,15,120,51,30,119,15,15,60,15,120,51,30,119
713.byte	213,213,115,213,230,166,183,51,213,213,115,213,230,166,183,51
714.byte	128,128,58,128,116,186,29,244,128,128,58,128,116,186,29,244
715.byte	190,190,194,190,153,124,97,39,190,190,194,190,153,124,97,39
716.byte	205,205,19,205,38,222,135,235,205,205,19,205,38,222,135,235
717.byte	52,52,208,52,189,228,104,137,52,52,208,52,189,228,104,137
718.byte	72,72,61,72,122,117,144,50,72,72,61,72,122,117,144,50
719.byte	255,255,219,255,171,36,227,84,255,255,219,255,171,36,227,84
720.byte	122,122,245,122,247,143,244,141,122,122,245,122,247,143,244,141
721.byte	144,144,122,144,244,234,61,100,144,144,122,144,244,234,61,100
722.byte	95,95,97,95,194,62,190,157,95,95,97,95,194,62,190,157
723.byte	32,32,128,32,29,160,64,61,32,32,128,32,29,160,64,61
724.byte	104,104,189,104,103,213,208,15,104,104,189,104,103,213,208,15
725.byte	26,26,104,26,208,114,52,202,26,26,104,26,208,114,52,202
726.byte	174,174,130,174,25,44,65,183,174,174,130,174,25,44,65,183
727.byte	180,180,234,180,201,94,117,125,180,180,234,180,201,94,117,125
728.byte	84,84,77,84,154,25,168,206,84,84,77,84,154,25,168,206
729.byte	147,147,118,147,236,229,59,127,147,147,118,147,236,229,59,127
730.byte	34,34,136,34,13,170,68,47,34,34,136,34,13,170,68,47
731.byte	100,100,141,100,7,233,200,99,100,100,141,100,7,233,200,99
732.byte	241,241,227,241,219,18,255,42,241,241,227,241,219,18,255,42
733.byte	115,115,209,115,191,162,230,204,115,115,209,115,191,162,230,204
734.byte	18,18,72,18,144,90,36,130,18,18,72,18,144,90,36,130
735.byte	64,64,29,64,58,93,128,122,64,64,29,64,58,93,128,122
736.byte	8,8,32,8,64,40,16,72,8,8,32,8,64,40,16,72
737.byte	195,195,43,195,86,232,155,149,195,195,43,195,86,232,155,149
738.byte	236,236,151,236,51,123,197,223,236,236,151,236,51,123,197,223
739.byte	219,219,75,219,150,144,171,77,219,219,75,219,150,144,171,77
740.byte	161,161,190,161,97,31,95,192,161,161,190,161,97,31,95,192
741.byte	141,141,14,141,28,131,7,145,141,141,14,141,28,131,7,145
742.byte	61,61,244,61,245,201,122,200,61,61,244,61,245,201,122,200
743.byte	151,151,102,151,204,241,51,91,151,151,102,151,204,241,51,91
744.byte	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
745.byte	207,207,27,207,54,212,131,249,207,207,27,207,54,212,131,249
746.byte	43,43,172,43,69,135,86,110,43,43,172,43,69,135,86,110
747.byte	118,118,197,118,151,179,236,225,118,118,197,118,151,179,236,225
748.byte	130,130,50,130,100,176,25,230,130,130,50,130,100,176,25,230
749.byte	214,214,127,214,254,169,177,40,214,214,127,214,254,169,177,40
750.byte	27,27,108,27,216,119,54,195,27,27,108,27,216,119,54,195
751.byte	181,181,238,181,193,91,119,116,181,181,238,181,193,91,119,116
752.byte	175,175,134,175,17,41,67,190,175,175,134,175,17,41,67,190
753.byte	106,106,181,106,119,223,212,29,106,106,181,106,119,223,212,29
754.byte	80,80,93,80,186,13,160,234,80,80,93,80,186,13,160,234
755.byte	69,69,9,69,18,76,138,87,69,69,9,69,18,76,138,87
756.byte	243,243,235,243,203,24,251,56,243,243,235,243,203,24,251,56
757.byte	48,48,192,48,157,240,96,173,48,48,192,48,157,240,96,173
758.byte	239,239,155,239,43,116,195,196,239,239,155,239,43,116,195,196
759.byte	63,63,252,63,229,195,126,218,63,63,252,63,229,195,126,218
760.byte	85,85,73,85,146,28,170,199,85,85,73,85,146,28,170,199
761.byte	162,162,178,162,121,16,89,219,162,162,178,162,121,16,89,219
762.byte	234,234,143,234,3,101,201,233,234,234,143,234,3,101,201,233
763.byte	101,101,137,101,15,236,202,106,101,101,137,101,15,236,202,106
764.byte	186,186,210,186,185,104,105,3,186,186,210,186,185,104,105,3
765.byte	47,47,188,47,101,147,94,74,47,47,188,47,101,147,94,74
766.byte	192,192,39,192,78,231,157,142,192,192,39,192,78,231,157,142
767.byte	222,222,95,222,190,129,161,96,222,222,95,222,190,129,161,96
768.byte	28,28,112,28,224,108,56,252,28,28,112,28,224,108,56,252
769.byte	253,253,211,253,187,46,231,70,253,253,211,253,187,46,231,70
770.byte	77,77,41,77,82,100,154,31,77,77,41,77,82,100,154,31
771.byte	146,146,114,146,228,224,57,118,146,146,114,146,228,224,57,118
772.byte	117,117,201,117,143,188,234,250,117,117,201,117,143,188,234,250
773.byte	6,6,24,6,48,30,12,54,6,6,24,6,48,30,12,54
774.byte	138,138,18,138,36,152,9,174,138,138,18,138,36,152,9,174
775.byte	178,178,242,178,249,64,121,75,178,178,242,178,249,64,121,75
776.byte	230,230,191,230,99,89,209,133,230,230,191,230,99,89,209,133
777.byte	14,14,56,14,112,54,28,126,14,14,56,14,112,54,28,126
778.byte	31,31,124,31,248,99,62,231,31,31,124,31,248,99,62,231
779.byte	98,98,149,98,55,247,196,85,98,98,149,98,55,247,196,85
780.byte	212,212,119,212,238,163,181,58,212,212,119,212,238,163,181,58
781.byte	168,168,154,168,41,50,77,129,168,168,154,168,41,50,77,129
782.byte	150,150,98,150,196,244,49,82,150,150,98,150,196,244,49,82
783.byte	249,249,195,249,155,58,239,98,249,249,195,249,155,58,239,98
784.byte	197,197,51,197,102,246,151,163,197,197,51,197,102,246,151,163
785.byte	37,37,148,37,53,177,74,16,37,37,148,37,53,177,74,16
786.byte	89,89,121,89,242,32,178,171,89,89,121,89,242,32,178,171
787.byte	132,132,42,132,84,174,21,208,132,132,42,132,84,174,21,208
788.byte	114,114,213,114,183,167,228,197,114,114,213,114,183,167,228,197
789.byte	57,57,228,57,213,221,114,236,57,57,228,57,213,221,114,236
790.byte	76,76,45,76,90,97,152,22,76,76,45,76,90,97,152,22
791.byte	94,94,101,94,202,59,188,148,94,94,101,94,202,59,188,148
792.byte	120,120,253,120,231,133,240,159,120,120,253,120,231,133,240,159
793.byte	56,56,224,56,221,216,112,229,56,56,224,56,221,216,112,229
794.byte	140,140,10,140,20,134,5,152,140,140,10,140,20,134,5,152
795.byte	209,209,99,209,198,178,191,23,209,209,99,209,198,178,191,23
796.byte	165,165,174,165,65,11,87,228,165,165,174,165,65,11,87,228
797.byte	226,226,175,226,67,77,217,161,226,226,175,226,67,77,217,161
798.byte	97,97,153,97,47,248,194,78,97,97,153,97,47,248,194,78
799.byte	179,179,246,179,241,69,123,66,179,179,246,179,241,69,123,66
800.byte	33,33,132,33,21,165,66,52,33,33,132,33,21,165,66,52
801.byte	156,156,74,156,148,214,37,8,156,156,74,156,148,214,37,8
802.byte	30,30,120,30,240,102,60,238,30,30,120,30,240,102,60,238
803.byte	67,67,17,67,34,82,134,97,67,67,17,67,34,82,134,97
804.byte	199,199,59,199,118,252,147,177,199,199,59,199,118,252,147,177
805.byte	252,252,215,252,179,43,229,79,252,252,215,252,179,43,229,79
806.byte	4,4,16,4,32,20,8,36,4,4,16,4,32,20,8,36
807.byte	81,81,89,81,178,8,162,227,81,81,89,81,178,8,162,227
808.byte	153,153,94,153,188,199,47,37,153,153,94,153,188,199,47,37
809.byte	109,109,169,109,79,196,218,34,109,109,169,109,79,196,218,34
810.byte	13,13,52,13,104,57,26,101,13,13,52,13,104,57,26,101
811.byte	250,250,207,250,131,53,233,121,250,250,207,250,131,53,233,121
812.byte	223,223,91,223,182,132,163,105,223,223,91,223,182,132,163,105
813.byte	126,126,229,126,215,155,252,169,126,126,229,126,215,155,252,169
814.byte	36,36,144,36,61,180,72,25,36,36,144,36,61,180,72,25
815.byte	59,59,236,59,197,215,118,254,59,59,236,59,197,215,118,254
816.byte	171,171,150,171,49,61,75,154,171,171,150,171,49,61,75,154
817.byte	206,206,31,206,62,209,129,240,206,206,31,206,62,209,129,240
818.byte	17,17,68,17,136,85,34,153,17,17,68,17,136,85,34,153
819.byte	143,143,6,143,12,137,3,131,143,143,6,143,12,137,3,131
820.byte	78,78,37,78,74,107,156,4,78,78,37,78,74,107,156,4
821.byte	183,183,230,183,209,81,115,102,183,183,230,183,209,81,115,102
822.byte	235,235,139,235,11,96,203,224,235,235,139,235,11,96,203,224
823.byte	60,60,240,60,253,204,120,193,60,60,240,60,253,204,120,193
824.byte	129,129,62,129,124,191,31,253,129,129,62,129,124,191,31,253
825.byte	148,148,106,148,212,254,53,64,148,148,106,148,212,254,53,64
826.byte	247,247,251,247,235,12,243,28,247,247,251,247,235,12,243,28
827.byte	185,185,222,185,161,103,111,24,185,185,222,185,161,103,111,24
828.byte	19,19,76,19,152,95,38,139,19,19,76,19,152,95,38,139
829.byte	44,44,176,44,125,156,88,81,44,44,176,44,125,156,88,81
830.byte	211,211,107,211,214,184,187,5,211,211,107,211,214,184,187,5
831.byte	231,231,187,231,107,92,211,140,231,231,187,231,107,92,211,140
832.byte	110,110,165,110,87,203,220,57,110,110,165,110,87,203,220,57
833.byte	196,196,55,196,110,243,149,170,196,196,55,196,110,243,149,170
834.byte	3,3,12,3,24,15,6,27,3,3,12,3,24,15,6,27
835.byte	86,86,69,86,138,19,172,220,86,86,69,86,138,19,172,220
836.byte	68,68,13,68,26,73,136,94,68,68,13,68,26,73,136,94
837.byte	127,127,225,127,223,158,254,160,127,127,225,127,223,158,254,160
838.byte	169,169,158,169,33,55,79,136,169,169,158,169,33,55,79,136
839.byte	42,42,168,42,77,130,84,103,42,42,168,42,77,130,84,103
840.byte	187,187,214,187,177,109,107,10,187,187,214,187,177,109,107,10
841.byte	193,193,35,193,70,226,159,135,193,193,35,193,70,226,159,135
842.byte	83,83,81,83,162,2,166,241,83,83,81,83,162,2,166,241
843.byte	220,220,87,220,174,139,165,114,220,220,87,220,174,139,165,114
844.byte	11,11,44,11,88,39,22,83,11,11,44,11,88,39,22,83
845.byte	157,157,78,157,156,211,39,1,157,157,78,157,156,211,39,1
846.byte	108,108,173,108,71,193,216,43,108,108,173,108,71,193,216,43
847.byte	49,49,196,49,149,245,98,164,49,49,196,49,149,245,98,164
848.byte	116,116,205,116,135,185,232,243,116,116,205,116,135,185,232,243
849.byte	246,246,255,246,227,9,241,21,246,246,255,246,227,9,241,21
850.byte	70,70,5,70,10,67,140,76,70,70,5,70,10,67,140,76
851.byte	172,172,138,172,9,38,69,165,172,172,138,172,9,38,69,165
852.byte	137,137,30,137,60,151,15,181,137,137,30,137,60,151,15,181
853.byte	20,20,80,20,160,68,40,180,20,20,80,20,160,68,40,180
854.byte	225,225,163,225,91,66,223,186,225,225,163,225,91,66,223,186
855.byte	22,22,88,22,176,78,44,166,22,22,88,22,176,78,44,166
856.byte	58,58,232,58,205,210,116,247,58,58,232,58,205,210,116,247
857.byte	105,105,185,105,111,208,210,6,105,105,185,105,111,208,210,6
858.byte	9,9,36,9,72,45,18,65,9,9,36,9,72,45,18,65
859.byte	112,112,221,112,167,173,224,215,112,112,221,112,167,173,224,215
860.byte	182,182,226,182,217,84,113,111,182,182,226,182,217,84,113,111
861.byte	208,208,103,208,206,183,189,30,208,208,103,208,206,183,189,30
862.byte	237,237,147,237,59,126,199,214,237,237,147,237,59,126,199,214
863.byte	204,204,23,204,46,219,133,226,204,204,23,204,46,219,133,226
864.byte	66,66,21,66,42,87,132,104,66,66,21,66,42,87,132,104
865.byte	152,152,90,152,180,194,45,44,152,152,90,152,180,194,45,44
866.byte	164,164,170,164,73,14,85,237,164,164,170,164,73,14,85,237
867.byte	40,40,160,40,93,136,80,117,40,40,160,40,93,136,80,117
868.byte	92,92,109,92,218,49,184,134,92,92,109,92,218,49,184,134
869.byte	248,248,199,248,147,63,237,107,248,248,199,248,147,63,237,107
870.byte	134,134,34,134,68,164,17,194,134,134,34,134,68,164,17,194
871.byte	24,35,198,232,135,184,1,79
872.byte	54,166,210,245,121,111,145,82
873.byte	96,188,155,142,163,12,123,53
874.byte	29,224,215,194,46,75,254,87
875.byte	21,119,55,229,159,240,74,218
876.byte	88,201,41,10,177,160,107,133
877.byte	189,93,16,244,203,62,5,103
878.byte	228,39,65,139,167,125,149,216
879.byte	251,238,124,102,221,23,71,158
880.byte	202,45,191,7,173,90,131,51
881