1299966Sjkim# $FreeBSD$
2299966Sjkim# Do not modify. This file is auto-generated from aes-x86_64.pl.
3238405Sjkim.text
4238405Sjkim.type	_x86_64_AES_encrypt,@function
5238405Sjkim.align	16
6238405Sjkim_x86_64_AES_encrypt:
7238405Sjkim	xorl	0(%r15),%eax
8238405Sjkim	xorl	4(%r15),%ebx
9238405Sjkim	xorl	8(%r15),%ecx
10238405Sjkim	xorl	12(%r15),%edx
11238405Sjkim
12238405Sjkim	movl	240(%r15),%r13d
13238405Sjkim	subl	$1,%r13d
14238405Sjkim	jmp	.Lenc_loop
15238405Sjkim.align	16
16238405Sjkim.Lenc_loop:
17238405Sjkim
18238405Sjkim	movzbl	%al,%esi
19238405Sjkim	movzbl	%bl,%edi
20238405Sjkim	movzbl	%cl,%ebp
21238405Sjkim	movl	0(%r14,%rsi,8),%r10d
22238405Sjkim	movl	0(%r14,%rdi,8),%r11d
23238405Sjkim	movl	0(%r14,%rbp,8),%r12d
24238405Sjkim
25238405Sjkim	movzbl	%bh,%esi
26238405Sjkim	movzbl	%ch,%edi
27238405Sjkim	movzbl	%dl,%ebp
28238405Sjkim	xorl	3(%r14,%rsi,8),%r10d
29238405Sjkim	xorl	3(%r14,%rdi,8),%r11d
30238405Sjkim	movl	0(%r14,%rbp,8),%r8d
31238405Sjkim
32238405Sjkim	movzbl	%dh,%esi
33238405Sjkim	shrl	$16,%ecx
34238405Sjkim	movzbl	%ah,%ebp
35238405Sjkim	xorl	3(%r14,%rsi,8),%r12d
36238405Sjkim	shrl	$16,%edx
37238405Sjkim	xorl	3(%r14,%rbp,8),%r8d
38238405Sjkim
39238405Sjkim	shrl	$16,%ebx
40238405Sjkim	leaq	16(%r15),%r15
41238405Sjkim	shrl	$16,%eax
42238405Sjkim
43238405Sjkim	movzbl	%cl,%esi
44238405Sjkim	movzbl	%dl,%edi
45238405Sjkim	movzbl	%al,%ebp
46238405Sjkim	xorl	2(%r14,%rsi,8),%r10d
47238405Sjkim	xorl	2(%r14,%rdi,8),%r11d
48238405Sjkim	xorl	2(%r14,%rbp,8),%r12d
49238405Sjkim
50238405Sjkim	movzbl	%dh,%esi
51238405Sjkim	movzbl	%ah,%edi
52238405Sjkim	movzbl	%bl,%ebp
53238405Sjkim	xorl	1(%r14,%rsi,8),%r10d
54238405Sjkim	xorl	1(%r14,%rdi,8),%r11d
55238405Sjkim	xorl	2(%r14,%rbp,8),%r8d
56238405Sjkim
57238405Sjkim	movl	12(%r15),%edx
58238405Sjkim	movzbl	%bh,%edi
59238405Sjkim	movzbl	%ch,%ebp
60238405Sjkim	movl	0(%r15),%eax
61238405Sjkim	xorl	1(%r14,%rdi,8),%r12d
62238405Sjkim	xorl	1(%r14,%rbp,8),%r8d
63238405Sjkim
64238405Sjkim	movl	4(%r15),%ebx
65238405Sjkim	movl	8(%r15),%ecx
66238405Sjkim	xorl	%r10d,%eax
67238405Sjkim	xorl	%r11d,%ebx
68238405Sjkim	xorl	%r12d,%ecx
69238405Sjkim	xorl	%r8d,%edx
70238405Sjkim	subl	$1,%r13d
71238405Sjkim	jnz	.Lenc_loop
72238405Sjkim	movzbl	%al,%esi
73238405Sjkim	movzbl	%bl,%edi
74238405Sjkim	movzbl	%cl,%ebp
75238405Sjkim	movzbl	2(%r14,%rsi,8),%r10d
76238405Sjkim	movzbl	2(%r14,%rdi,8),%r11d
77238405Sjkim	movzbl	2(%r14,%rbp,8),%r12d
78238405Sjkim
79238405Sjkim	movzbl	%dl,%esi
80238405Sjkim	movzbl	%bh,%edi
81238405Sjkim	movzbl	%ch,%ebp
82238405Sjkim	movzbl	2(%r14,%rsi,8),%r8d
83238405Sjkim	movl	0(%r14,%rdi,8),%edi
84238405Sjkim	movl	0(%r14,%rbp,8),%ebp
85238405Sjkim
86238405Sjkim	andl	$65280,%edi
87238405Sjkim	andl	$65280,%ebp
88238405Sjkim
89238405Sjkim	xorl	%edi,%r10d
90238405Sjkim	xorl	%ebp,%r11d
91238405Sjkim	shrl	$16,%ecx
92238405Sjkim
93238405Sjkim	movzbl	%dh,%esi
94238405Sjkim	movzbl	%ah,%edi
95238405Sjkim	shrl	$16,%edx
96238405Sjkim	movl	0(%r14,%rsi,8),%esi
97238405Sjkim	movl	0(%r14,%rdi,8),%edi
98238405Sjkim
99238405Sjkim	andl	$65280,%esi
100238405Sjkim	andl	$65280,%edi
101238405Sjkim	shrl	$16,%ebx
102238405Sjkim	xorl	%esi,%r12d
103238405Sjkim	xorl	%edi,%r8d
104238405Sjkim	shrl	$16,%eax
105238405Sjkim
106238405Sjkim	movzbl	%cl,%esi
107238405Sjkim	movzbl	%dl,%edi
108238405Sjkim	movzbl	%al,%ebp
109238405Sjkim	movl	0(%r14,%rsi,8),%esi
110238405Sjkim	movl	0(%r14,%rdi,8),%edi
111238405Sjkim	movl	0(%r14,%rbp,8),%ebp
112238405Sjkim
113238405Sjkim	andl	$16711680,%esi
114238405Sjkim	andl	$16711680,%edi
115238405Sjkim	andl	$16711680,%ebp
116238405Sjkim
117238405Sjkim	xorl	%esi,%r10d
118238405Sjkim	xorl	%edi,%r11d
119238405Sjkim	xorl	%ebp,%r12d
120238405Sjkim
121238405Sjkim	movzbl	%bl,%esi
122238405Sjkim	movzbl	%dh,%edi
123238405Sjkim	movzbl	%ah,%ebp
124238405Sjkim	movl	0(%r14,%rsi,8),%esi
125238405Sjkim	movl	2(%r14,%rdi,8),%edi
126238405Sjkim	movl	2(%r14,%rbp,8),%ebp
127238405Sjkim
128238405Sjkim	andl	$16711680,%esi
129238405Sjkim	andl	$4278190080,%edi
130238405Sjkim	andl	$4278190080,%ebp
131238405Sjkim
132238405Sjkim	xorl	%esi,%r8d
133238405Sjkim	xorl	%edi,%r10d
134238405Sjkim	xorl	%ebp,%r11d
135238405Sjkim
136238405Sjkim	movzbl	%bh,%esi
137238405Sjkim	movzbl	%ch,%edi
138238405Sjkim	movl	16+12(%r15),%edx
139238405Sjkim	movl	2(%r14,%rsi,8),%esi
140238405Sjkim	movl	2(%r14,%rdi,8),%edi
141238405Sjkim	movl	16+0(%r15),%eax
142238405Sjkim
143238405Sjkim	andl	$4278190080,%esi
144238405Sjkim	andl	$4278190080,%edi
145238405Sjkim
146238405Sjkim	xorl	%esi,%r12d
147238405Sjkim	xorl	%edi,%r8d
148238405Sjkim
149238405Sjkim	movl	16+4(%r15),%ebx
150238405Sjkim	movl	16+8(%r15),%ecx
151238405Sjkim	xorl	%r10d,%eax
152238405Sjkim	xorl	%r11d,%ebx
153238405Sjkim	xorl	%r12d,%ecx
154238405Sjkim	xorl	%r8d,%edx
155238405Sjkim.byte	0xf3,0xc3
156238405Sjkim.size	_x86_64_AES_encrypt,.-_x86_64_AES_encrypt
157238405Sjkim.type	_x86_64_AES_encrypt_compact,@function
158238405Sjkim.align	16
159238405Sjkim_x86_64_AES_encrypt_compact:
160238405Sjkim	leaq	128(%r14),%r8
161238405Sjkim	movl	0-128(%r8),%edi
162238405Sjkim	movl	32-128(%r8),%ebp
163238405Sjkim	movl	64-128(%r8),%r10d
164238405Sjkim	movl	96-128(%r8),%r11d
165238405Sjkim	movl	128-128(%r8),%edi
166238405Sjkim	movl	160-128(%r8),%ebp
167238405Sjkim	movl	192-128(%r8),%r10d
168238405Sjkim	movl	224-128(%r8),%r11d
169238405Sjkim	jmp	.Lenc_loop_compact
170238405Sjkim.align	16
171238405Sjkim.Lenc_loop_compact:
172238405Sjkim	xorl	0(%r15),%eax
173238405Sjkim	xorl	4(%r15),%ebx
174238405Sjkim	xorl	8(%r15),%ecx
175238405Sjkim	xorl	12(%r15),%edx
176238405Sjkim	leaq	16(%r15),%r15
177238405Sjkim	movzbl	%al,%r10d
178238405Sjkim	movzbl	%bl,%r11d
179238405Sjkim	movzbl	%cl,%r12d
180238405Sjkim	movzbl	(%r14,%r10,1),%r10d
181238405Sjkim	movzbl	(%r14,%r11,1),%r11d
182238405Sjkim	movzbl	(%r14,%r12,1),%r12d
183238405Sjkim
184238405Sjkim	movzbl	%dl,%r8d
185238405Sjkim	movzbl	%bh,%esi
186238405Sjkim	movzbl	%ch,%edi
187238405Sjkim	movzbl	(%r14,%r8,1),%r8d
188238405Sjkim	movzbl	(%r14,%rsi,1),%r9d
189238405Sjkim	movzbl	(%r14,%rdi,1),%r13d
190238405Sjkim
191238405Sjkim	movzbl	%dh,%ebp
192238405Sjkim	movzbl	%ah,%esi
193238405Sjkim	shrl	$16,%ecx
194238405Sjkim	movzbl	(%r14,%rbp,1),%ebp
195238405Sjkim	movzbl	(%r14,%rsi,1),%esi
196238405Sjkim	shrl	$16,%edx
197238405Sjkim
198238405Sjkim	movzbl	%cl,%edi
199238405Sjkim	shll	$8,%r9d
200238405Sjkim	shll	$8,%r13d
201238405Sjkim	movzbl	(%r14,%rdi,1),%edi
202238405Sjkim	xorl	%r9d,%r10d
203238405Sjkim	xorl	%r13d,%r11d
204238405Sjkim
205238405Sjkim	movzbl	%dl,%r9d
206238405Sjkim	shrl	$16,%eax
207238405Sjkim	shrl	$16,%ebx
208238405Sjkim	movzbl	%al,%r13d
209238405Sjkim	shll	$8,%ebp
210238405Sjkim	shll	$8,%esi
211238405Sjkim	movzbl	(%r14,%r9,1),%r9d
212238405Sjkim	movzbl	(%r14,%r13,1),%r13d
213238405Sjkim	xorl	%ebp,%r12d
214238405Sjkim	xorl	%esi,%r8d
215238405Sjkim
216238405Sjkim	movzbl	%bl,%ebp
217238405Sjkim	movzbl	%dh,%esi
218238405Sjkim	shll	$16,%edi
219238405Sjkim	movzbl	(%r14,%rbp,1),%ebp
220238405Sjkim	movzbl	(%r14,%rsi,1),%esi
221238405Sjkim	xorl	%edi,%r10d
222238405Sjkim
223238405Sjkim	movzbl	%ah,%edi
224238405Sjkim	shrl	$8,%ecx
225238405Sjkim	shrl	$8,%ebx
226238405Sjkim	movzbl	(%r14,%rdi,1),%edi
227238405Sjkim	movzbl	(%r14,%rcx,1),%edx
228238405Sjkim	movzbl	(%r14,%rbx,1),%ecx
229238405Sjkim	shll	$16,%r9d
230238405Sjkim	shll	$16,%r13d
231238405Sjkim	shll	$16,%ebp
232238405Sjkim	xorl	%r9d,%r11d
233238405Sjkim	xorl	%r13d,%r12d
234238405Sjkim	xorl	%ebp,%r8d
235238405Sjkim
236238405Sjkim	shll	$24,%esi
237238405Sjkim	shll	$24,%edi
238238405Sjkim	shll	$24,%edx
239238405Sjkim	xorl	%esi,%r10d
240238405Sjkim	shll	$24,%ecx
241238405Sjkim	xorl	%edi,%r11d
242238405Sjkim	movl	%r10d,%eax
243238405Sjkim	movl	%r11d,%ebx
244238405Sjkim	xorl	%r12d,%ecx
245238405Sjkim	xorl	%r8d,%edx
246238405Sjkim	cmpq	16(%rsp),%r15
247238405Sjkim	je	.Lenc_compact_done
248238405Sjkim	movl	%eax,%esi
249238405Sjkim	movl	%ebx,%edi
250238405Sjkim	andl	$2155905152,%esi
251238405Sjkim	andl	$2155905152,%edi
252238405Sjkim	movl	%esi,%r10d
253238405Sjkim	movl	%edi,%r11d
254238405Sjkim	shrl	$7,%r10d
255238405Sjkim	leal	(%rax,%rax,1),%r8d
256238405Sjkim	shrl	$7,%r11d
257238405Sjkim	leal	(%rbx,%rbx,1),%r9d
258238405Sjkim	subl	%r10d,%esi
259238405Sjkim	subl	%r11d,%edi
260238405Sjkim	andl	$4278124286,%r8d
261238405Sjkim	andl	$4278124286,%r9d
262238405Sjkim	andl	$454761243,%esi
263238405Sjkim	andl	$454761243,%edi
264238405Sjkim	movl	%eax,%r10d
265238405Sjkim	movl	%ebx,%r11d
266238405Sjkim	xorl	%esi,%r8d
267238405Sjkim	xorl	%edi,%r9d
268238405Sjkim
269238405Sjkim	xorl	%r8d,%eax
270238405Sjkim	xorl	%r9d,%ebx
271238405Sjkim	movl	%ecx,%esi
272238405Sjkim	movl	%edx,%edi
273238405Sjkim	roll	$24,%eax
274238405Sjkim	roll	$24,%ebx
275238405Sjkim	andl	$2155905152,%esi
276238405Sjkim	andl	$2155905152,%edi
277238405Sjkim	xorl	%r8d,%eax
278238405Sjkim	xorl	%r9d,%ebx
279238405Sjkim	movl	%esi,%r12d
280238405Sjkim	movl	%edi,%ebp
281238405Sjkim	rorl	$16,%r10d
282238405Sjkim	rorl	$16,%r11d
283238405Sjkim	shrl	$7,%r12d
284238405Sjkim	leal	(%rcx,%rcx,1),%r8d
285238405Sjkim	xorl	%r10d,%eax
286238405Sjkim	xorl	%r11d,%ebx
287238405Sjkim	shrl	$7,%ebp
288238405Sjkim	leal	(%rdx,%rdx,1),%r9d
289238405Sjkim	rorl	$8,%r10d
290238405Sjkim	rorl	$8,%r11d
291238405Sjkim	subl	%r12d,%esi
292238405Sjkim	subl	%ebp,%edi
293238405Sjkim	xorl	%r10d,%eax
294238405Sjkim	xorl	%r11d,%ebx
295238405Sjkim
296238405Sjkim	andl	$4278124286,%r8d
297238405Sjkim	andl	$4278124286,%r9d
298238405Sjkim	andl	$454761243,%esi
299238405Sjkim	andl	$454761243,%edi
300238405Sjkim	movl	%ecx,%r12d
301238405Sjkim	movl	%edx,%ebp
302238405Sjkim	xorl	%esi,%r8d
303238405Sjkim	xorl	%edi,%r9d
304238405Sjkim
305238405Sjkim	xorl	%r8d,%ecx
306238405Sjkim	xorl	%r9d,%edx
307238405Sjkim	roll	$24,%ecx
308238405Sjkim	roll	$24,%edx
309238405Sjkim	xorl	%r8d,%ecx
310238405Sjkim	xorl	%r9d,%edx
311238405Sjkim	movl	0(%r14),%esi
312238405Sjkim	rorl	$16,%r12d
313238405Sjkim	rorl	$16,%ebp
314238405Sjkim	movl	64(%r14),%edi
315238405Sjkim	xorl	%r12d,%ecx
316238405Sjkim	xorl	%ebp,%edx
317238405Sjkim	movl	128(%r14),%r8d
318238405Sjkim	rorl	$8,%r12d
319238405Sjkim	rorl	$8,%ebp
320238405Sjkim	movl	192(%r14),%r9d
321238405Sjkim	xorl	%r12d,%ecx
322238405Sjkim	xorl	%ebp,%edx
323238405Sjkim	jmp	.Lenc_loop_compact
324238405Sjkim.align	16
325238405Sjkim.Lenc_compact_done:
326238405Sjkim	xorl	0(%r15),%eax
327238405Sjkim	xorl	4(%r15),%ebx
328238405Sjkim	xorl	8(%r15),%ecx
329238405Sjkim	xorl	12(%r15),%edx
330238405Sjkim.byte	0xf3,0xc3
331238405Sjkim.size	_x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact
332238405Sjkim.globl	AES_encrypt
333238405Sjkim.type	AES_encrypt,@function
334238405Sjkim.align	16
335238405Sjkim.globl	asm_AES_encrypt
336238405Sjkim.hidden	asm_AES_encrypt
337238405Sjkimasm_AES_encrypt:
338238405SjkimAES_encrypt:
339238405Sjkim	pushq	%rbx
340238405Sjkim	pushq	%rbp
341238405Sjkim	pushq	%r12
342238405Sjkim	pushq	%r13
343238405Sjkim	pushq	%r14
344238405Sjkim	pushq	%r15
345238405Sjkim
346238405Sjkim
347238405Sjkim	movq	%rsp,%r10
348238405Sjkim	leaq	-63(%rdx),%rcx
349238405Sjkim	andq	$-64,%rsp
350238405Sjkim	subq	%rsp,%rcx
351238405Sjkim	negq	%rcx
352238405Sjkim	andq	$960,%rcx
353238405Sjkim	subq	%rcx,%rsp
354238405Sjkim	subq	$32,%rsp
355238405Sjkim
356238405Sjkim	movq	%rsi,16(%rsp)
357238405Sjkim	movq	%r10,24(%rsp)
358238405Sjkim.Lenc_prologue:
359238405Sjkim
360238405Sjkim	movq	%rdx,%r15
361238405Sjkim	movl	240(%r15),%r13d
362238405Sjkim
363238405Sjkim	movl	0(%rdi),%eax
364238405Sjkim	movl	4(%rdi),%ebx
365238405Sjkim	movl	8(%rdi),%ecx
366238405Sjkim	movl	12(%rdi),%edx
367238405Sjkim
368238405Sjkim	shll	$4,%r13d
369238405Sjkim	leaq	(%r15,%r13,1),%rbp
370238405Sjkim	movq	%r15,(%rsp)
371238405Sjkim	movq	%rbp,8(%rsp)
372238405Sjkim
373238405Sjkim
374238405Sjkim	leaq	.LAES_Te+2048(%rip),%r14
375238405Sjkim	leaq	768(%rsp),%rbp
376238405Sjkim	subq	%r14,%rbp
377238405Sjkim	andq	$768,%rbp
378238405Sjkim	leaq	(%r14,%rbp,1),%r14
379238405Sjkim
380238405Sjkim	call	_x86_64_AES_encrypt_compact
381238405Sjkim
382238405Sjkim	movq	16(%rsp),%r9
383238405Sjkim	movq	24(%rsp),%rsi
384238405Sjkim	movl	%eax,0(%r9)
385238405Sjkim	movl	%ebx,4(%r9)
386238405Sjkim	movl	%ecx,8(%r9)
387238405Sjkim	movl	%edx,12(%r9)
388238405Sjkim
389238405Sjkim	movq	(%rsi),%r15
390238405Sjkim	movq	8(%rsi),%r14
391238405Sjkim	movq	16(%rsi),%r13
392238405Sjkim	movq	24(%rsi),%r12
393238405Sjkim	movq	32(%rsi),%rbp
394238405Sjkim	movq	40(%rsi),%rbx
395238405Sjkim	leaq	48(%rsi),%rsp
396238405Sjkim.Lenc_epilogue:
397238405Sjkim	.byte	0xf3,0xc3
398238405Sjkim.size	AES_encrypt,.-AES_encrypt
399238405Sjkim.type	_x86_64_AES_decrypt,@function
400238405Sjkim.align	16
401238405Sjkim_x86_64_AES_decrypt:
402238405Sjkim	xorl	0(%r15),%eax
403238405Sjkim	xorl	4(%r15),%ebx
404238405Sjkim	xorl	8(%r15),%ecx
405238405Sjkim	xorl	12(%r15),%edx
406238405Sjkim
407238405Sjkim	movl	240(%r15),%r13d
408238405Sjkim	subl	$1,%r13d
409238405Sjkim	jmp	.Ldec_loop
410238405Sjkim.align	16
411238405Sjkim.Ldec_loop:
412238405Sjkim
413238405Sjkim	movzbl	%al,%esi
414238405Sjkim	movzbl	%bl,%edi
415238405Sjkim	movzbl	%cl,%ebp
416238405Sjkim	movl	0(%r14,%rsi,8),%r10d
417238405Sjkim	movl	0(%r14,%rdi,8),%r11d
418238405Sjkim	movl	0(%r14,%rbp,8),%r12d
419238405Sjkim
420238405Sjkim	movzbl	%dh,%esi
421238405Sjkim	movzbl	%ah,%edi
422238405Sjkim	movzbl	%dl,%ebp
423238405Sjkim	xorl	3(%r14,%rsi,8),%r10d
424238405Sjkim	xorl	3(%r14,%rdi,8),%r11d
425238405Sjkim	movl	0(%r14,%rbp,8),%r8d
426238405Sjkim
427238405Sjkim	movzbl	%bh,%esi
428238405Sjkim	shrl	$16,%eax
429238405Sjkim	movzbl	%ch,%ebp
430238405Sjkim	xorl	3(%r14,%rsi,8),%r12d
431238405Sjkim	shrl	$16,%edx
432238405Sjkim	xorl	3(%r14,%rbp,8),%r8d
433238405Sjkim
434238405Sjkim	shrl	$16,%ebx
435238405Sjkim	leaq	16(%r15),%r15
436238405Sjkim	shrl	$16,%ecx
437238405Sjkim
438238405Sjkim	movzbl	%cl,%esi
439238405Sjkim	movzbl	%dl,%edi
440238405Sjkim	movzbl	%al,%ebp
441238405Sjkim	xorl	2(%r14,%rsi,8),%r10d
442238405Sjkim	xorl	2(%r14,%rdi,8),%r11d
443238405Sjkim	xorl	2(%r14,%rbp,8),%r12d
444238405Sjkim
445238405Sjkim	movzbl	%bh,%esi
446238405Sjkim	movzbl	%ch,%edi
447238405Sjkim	movzbl	%bl,%ebp
448238405Sjkim	xorl	1(%r14,%rsi,8),%r10d
449238405Sjkim	xorl	1(%r14,%rdi,8),%r11d
450238405Sjkim	xorl	2(%r14,%rbp,8),%r8d
451238405Sjkim
452238405Sjkim	movzbl	%dh,%esi
453238405Sjkim	movl	12(%r15),%edx
454238405Sjkim	movzbl	%ah,%ebp
455238405Sjkim	xorl	1(%r14,%rsi,8),%r12d
456238405Sjkim	movl	0(%r15),%eax
457238405Sjkim	xorl	1(%r14,%rbp,8),%r8d
458238405Sjkim
459238405Sjkim	xorl	%r10d,%eax
460238405Sjkim	movl	4(%r15),%ebx
461238405Sjkim	movl	8(%r15),%ecx
462238405Sjkim	xorl	%r12d,%ecx
463238405Sjkim	xorl	%r11d,%ebx
464238405Sjkim	xorl	%r8d,%edx
465238405Sjkim	subl	$1,%r13d
466238405Sjkim	jnz	.Ldec_loop
467238405Sjkim	leaq	2048(%r14),%r14
468238405Sjkim	movzbl	%al,%esi
469238405Sjkim	movzbl	%bl,%edi
470238405Sjkim	movzbl	%cl,%ebp
471238405Sjkim	movzbl	(%r14,%rsi,1),%r10d
472238405Sjkim	movzbl	(%r14,%rdi,1),%r11d
473238405Sjkim	movzbl	(%r14,%rbp,1),%r12d
474238405Sjkim
475238405Sjkim	movzbl	%dl,%esi
476238405Sjkim	movzbl	%dh,%edi
477238405Sjkim	movzbl	%ah,%ebp
478238405Sjkim	movzbl	(%r14,%rsi,1),%r8d
479238405Sjkim	movzbl	(%r14,%rdi,1),%edi
480238405Sjkim	movzbl	(%r14,%rbp,1),%ebp
481238405Sjkim
482238405Sjkim	shll	$8,%edi
483238405Sjkim	shll	$8,%ebp
484238405Sjkim
485238405Sjkim	xorl	%edi,%r10d
486238405Sjkim	xorl	%ebp,%r11d
487238405Sjkim	shrl	$16,%edx
488238405Sjkim
489238405Sjkim	movzbl	%bh,%esi
490238405Sjkim	movzbl	%ch,%edi
491238405Sjkim	shrl	$16,%eax
492238405Sjkim	movzbl	(%r14,%rsi,1),%esi
493238405Sjkim	movzbl	(%r14,%rdi,1),%edi
494238405Sjkim
495238405Sjkim	shll	$8,%esi
496238405Sjkim	shll	$8,%edi
497238405Sjkim	shrl	$16,%ebx
498238405Sjkim	xorl	%esi,%r12d
499238405Sjkim	xorl	%edi,%r8d
500238405Sjkim	shrl	$16,%ecx
501238405Sjkim
502238405Sjkim	movzbl	%cl,%esi
503238405Sjkim	movzbl	%dl,%edi
504238405Sjkim	movzbl	%al,%ebp
505238405Sjkim	movzbl	(%r14,%rsi,1),%esi
506238405Sjkim	movzbl	(%r14,%rdi,1),%edi
507238405Sjkim	movzbl	(%r14,%rbp,1),%ebp
508238405Sjkim
509238405Sjkim	shll	$16,%esi
510238405Sjkim	shll	$16,%edi
511238405Sjkim	shll	$16,%ebp
512238405Sjkim
513238405Sjkim	xorl	%esi,%r10d
514238405Sjkim	xorl	%edi,%r11d
515238405Sjkim	xorl	%ebp,%r12d
516238405Sjkim
517238405Sjkim	movzbl	%bl,%esi
518238405Sjkim	movzbl	%bh,%edi
519238405Sjkim	movzbl	%ch,%ebp
520238405Sjkim	movzbl	(%r14,%rsi,1),%esi
521238405Sjkim	movzbl	(%r14,%rdi,1),%edi
522238405Sjkim	movzbl	(%r14,%rbp,1),%ebp
523238405Sjkim
524238405Sjkim	shll	$16,%esi
525238405Sjkim	shll	$24,%edi
526238405Sjkim	shll	$24,%ebp
527238405Sjkim
528238405Sjkim	xorl	%esi,%r8d
529238405Sjkim	xorl	%edi,%r10d
530238405Sjkim	xorl	%ebp,%r11d
531238405Sjkim
532238405Sjkim	movzbl	%dh,%esi
533238405Sjkim	movzbl	%ah,%edi
534238405Sjkim	movl	16+12(%r15),%edx
535238405Sjkim	movzbl	(%r14,%rsi,1),%esi
536238405Sjkim	movzbl	(%r14,%rdi,1),%edi
537238405Sjkim	movl	16+0(%r15),%eax
538238405Sjkim
539238405Sjkim	shll	$24,%esi
540238405Sjkim	shll	$24,%edi
541238405Sjkim
542238405Sjkim	xorl	%esi,%r12d
543238405Sjkim	xorl	%edi,%r8d
544238405Sjkim
545238405Sjkim	movl	16+4(%r15),%ebx
546238405Sjkim	movl	16+8(%r15),%ecx
547238405Sjkim	leaq	-2048(%r14),%r14
548238405Sjkim	xorl	%r10d,%eax
549238405Sjkim	xorl	%r11d,%ebx
550238405Sjkim	xorl	%r12d,%ecx
551238405Sjkim	xorl	%r8d,%edx
552238405Sjkim.byte	0xf3,0xc3
553238405Sjkim.size	_x86_64_AES_decrypt,.-_x86_64_AES_decrypt
554238405Sjkim.type	_x86_64_AES_decrypt_compact,@function
555238405Sjkim.align	16
556238405Sjkim_x86_64_AES_decrypt_compact:
557238405Sjkim	leaq	128(%r14),%r8
558238405Sjkim	movl	0-128(%r8),%edi
559238405Sjkim	movl	32-128(%r8),%ebp
560238405Sjkim	movl	64-128(%r8),%r10d
561238405Sjkim	movl	96-128(%r8),%r11d
562238405Sjkim	movl	128-128(%r8),%edi
563238405Sjkim	movl	160-128(%r8),%ebp
564238405Sjkim	movl	192-128(%r8),%r10d
565238405Sjkim	movl	224-128(%r8),%r11d
566238405Sjkim	jmp	.Ldec_loop_compact
567238405Sjkim
568238405Sjkim.align	16
569238405Sjkim.Ldec_loop_compact:
570238405Sjkim	xorl	0(%r15),%eax
571238405Sjkim	xorl	4(%r15),%ebx
572238405Sjkim	xorl	8(%r15),%ecx
573238405Sjkim	xorl	12(%r15),%edx
574238405Sjkim	leaq	16(%r15),%r15
575238405Sjkim	movzbl	%al,%r10d
576238405Sjkim	movzbl	%bl,%r11d
577238405Sjkim	movzbl	%cl,%r12d
578238405Sjkim	movzbl	(%r14,%r10,1),%r10d
579238405Sjkim	movzbl	(%r14,%r11,1),%r11d
580238405Sjkim	movzbl	(%r14,%r12,1),%r12d
581238405Sjkim
582238405Sjkim	movzbl	%dl,%r8d
583238405Sjkim	movzbl	%dh,%esi
584238405Sjkim	movzbl	%ah,%edi
585238405Sjkim	movzbl	(%r14,%r8,1),%r8d
586238405Sjkim	movzbl	(%r14,%rsi,1),%r9d
587238405Sjkim	movzbl	(%r14,%rdi,1),%r13d
588238405Sjkim
589238405Sjkim	movzbl	%bh,%ebp
590238405Sjkim	movzbl	%ch,%esi
591238405Sjkim	shrl	$16,%ecx
592238405Sjkim	movzbl	(%r14,%rbp,1),%ebp
593238405Sjkim	movzbl	(%r14,%rsi,1),%esi
594238405Sjkim	shrl	$16,%edx
595238405Sjkim
596238405Sjkim	movzbl	%cl,%edi
597238405Sjkim	shll	$8,%r9d
598238405Sjkim	shll	$8,%r13d
599238405Sjkim	movzbl	(%r14,%rdi,1),%edi
600238405Sjkim	xorl	%r9d,%r10d
601238405Sjkim	xorl	%r13d,%r11d
602238405Sjkim
603238405Sjkim	movzbl	%dl,%r9d
604238405Sjkim	shrl	$16,%eax
605238405Sjkim	shrl	$16,%ebx
606238405Sjkim	movzbl	%al,%r13d
607238405Sjkim	shll	$8,%ebp
608238405Sjkim	shll	$8,%esi
609238405Sjkim	movzbl	(%r14,%r9,1),%r9d
610238405Sjkim	movzbl	(%r14,%r13,1),%r13d
611238405Sjkim	xorl	%ebp,%r12d
612238405Sjkim	xorl	%esi,%r8d
613238405Sjkim
614238405Sjkim	movzbl	%bl,%ebp
615238405Sjkim	movzbl	%bh,%esi
616238405Sjkim	shll	$16,%edi
617238405Sjkim	movzbl	(%r14,%rbp,1),%ebp
618238405Sjkim	movzbl	(%r14,%rsi,1),%esi
619238405Sjkim	xorl	%edi,%r10d
620238405Sjkim
621238405Sjkim	movzbl	%ch,%edi
622238405Sjkim	shll	$16,%r9d
623238405Sjkim	shll	$16,%r13d
624238405Sjkim	movzbl	(%r14,%rdi,1),%ebx
625238405Sjkim	xorl	%r9d,%r11d
626238405Sjkim	xorl	%r13d,%r12d
627238405Sjkim
628238405Sjkim	movzbl	%dh,%edi
629238405Sjkim	shrl	$8,%eax
630238405Sjkim	shll	$16,%ebp
631238405Sjkim	movzbl	(%r14,%rdi,1),%ecx
632238405Sjkim	movzbl	(%r14,%rax,1),%edx
633238405Sjkim	xorl	%ebp,%r8d
634238405Sjkim
635238405Sjkim	shll	$24,%esi
636238405Sjkim	shll	$24,%ebx
637238405Sjkim	shll	$24,%ecx
638238405Sjkim	xorl	%esi,%r10d
639238405Sjkim	shll	$24,%edx
640238405Sjkim	xorl	%r11d,%ebx
641238405Sjkim	movl	%r10d,%eax
642238405Sjkim	xorl	%r12d,%ecx
643238405Sjkim	xorl	%r8d,%edx
644238405Sjkim	cmpq	16(%rsp),%r15
645238405Sjkim	je	.Ldec_compact_done
646238405Sjkim
647238405Sjkim	movq	256+0(%r14),%rsi
648238405Sjkim	shlq	$32,%rbx
649238405Sjkim	shlq	$32,%rdx
650238405Sjkim	movq	256+8(%r14),%rdi
651238405Sjkim	orq	%rbx,%rax
652238405Sjkim	orq	%rdx,%rcx
653238405Sjkim	movq	256+16(%r14),%rbp
654238405Sjkim	movq	%rax,%rbx
655238405Sjkim	movq	%rcx,%rdx
656238405Sjkim	andq	%rsi,%rbx
657238405Sjkim	andq	%rsi,%rdx
658238405Sjkim	movq	%rbx,%r9
659238405Sjkim	movq	%rdx,%r12
660238405Sjkim	shrq	$7,%r9
661238405Sjkim	leaq	(%rax,%rax,1),%r8
662238405Sjkim	shrq	$7,%r12
663238405Sjkim	leaq	(%rcx,%rcx,1),%r11
664238405Sjkim	subq	%r9,%rbx
665238405Sjkim	subq	%r12,%rdx
666238405Sjkim	andq	%rdi,%r8
667238405Sjkim	andq	%rdi,%r11
668238405Sjkim	andq	%rbp,%rbx
669238405Sjkim	andq	%rbp,%rdx
670238405Sjkim	xorq	%r8,%rbx
671238405Sjkim	xorq	%r11,%rdx
672238405Sjkim	movq	%rbx,%r8
673238405Sjkim	movq	%rdx,%r11
674238405Sjkim
675238405Sjkim	andq	%rsi,%rbx
676238405Sjkim	andq	%rsi,%rdx
677238405Sjkim	movq	%rbx,%r10
678238405Sjkim	movq	%rdx,%r13
679238405Sjkim	shrq	$7,%r10
680238405Sjkim	leaq	(%r8,%r8,1),%r9
681238405Sjkim	shrq	$7,%r13
682238405Sjkim	leaq	(%r11,%r11,1),%r12
683238405Sjkim	subq	%r10,%rbx
684238405Sjkim	subq	%r13,%rdx
685238405Sjkim	andq	%rdi,%r9
686238405Sjkim	andq	%rdi,%r12
687238405Sjkim	andq	%rbp,%rbx
688238405Sjkim	andq	%rbp,%rdx
689238405Sjkim	xorq	%r9,%rbx
690238405Sjkim	xorq	%r12,%rdx
691238405Sjkim	movq	%rbx,%r9
692238405Sjkim	movq	%rdx,%r12
693238405Sjkim
694238405Sjkim	andq	%rsi,%rbx
695238405Sjkim	andq	%rsi,%rdx
696238405Sjkim	movq	%rbx,%r10
697238405Sjkim	movq	%rdx,%r13
698238405Sjkim	shrq	$7,%r10
699238405Sjkim	xorq	%rax,%r8
700238405Sjkim	shrq	$7,%r13
701238405Sjkim	xorq	%rcx,%r11
702238405Sjkim	subq	%r10,%rbx
703238405Sjkim	subq	%r13,%rdx
704238405Sjkim	leaq	(%r9,%r9,1),%r10
705238405Sjkim	leaq	(%r12,%r12,1),%r13
706238405Sjkim	xorq	%rax,%r9
707238405Sjkim	xorq	%rcx,%r12
708238405Sjkim	andq	%rdi,%r10
709238405Sjkim	andq	%rdi,%r13
710238405Sjkim	andq	%rbp,%rbx
711238405Sjkim	andq	%rbp,%rdx
712238405Sjkim	xorq	%rbx,%r10
713238405Sjkim	xorq	%rdx,%r13
714238405Sjkim
715238405Sjkim	xorq	%r10,%rax
716238405Sjkim	xorq	%r13,%rcx
717238405Sjkim	xorq	%r10,%r8
718238405Sjkim	xorq	%r13,%r11
719238405Sjkim	movq	%rax,%rbx
720238405Sjkim	movq	%rcx,%rdx
721238405Sjkim	xorq	%r10,%r9
722238405Sjkim	xorq	%r13,%r12
723238405Sjkim	shrq	$32,%rbx
724238405Sjkim	shrq	$32,%rdx
725238405Sjkim	xorq	%r8,%r10
726238405Sjkim	xorq	%r11,%r13
727238405Sjkim	roll	$8,%eax
728238405Sjkim	roll	$8,%ecx
729238405Sjkim	xorq	%r9,%r10
730238405Sjkim	xorq	%r12,%r13
731238405Sjkim
732238405Sjkim	roll	$8,%ebx
733238405Sjkim	roll	$8,%edx
734238405Sjkim	xorl	%r10d,%eax
735238405Sjkim	xorl	%r13d,%ecx
736238405Sjkim	shrq	$32,%r10
737238405Sjkim	shrq	$32,%r13
738238405Sjkim	xorl	%r10d,%ebx
739238405Sjkim	xorl	%r13d,%edx
740238405Sjkim
741238405Sjkim	movq	%r8,%r10
742238405Sjkim	movq	%r11,%r13
743238405Sjkim	shrq	$32,%r10
744238405Sjkim	shrq	$32,%r13
745238405Sjkim	roll	$24,%r8d
746238405Sjkim	roll	$24,%r11d
747238405Sjkim	roll	$24,%r10d
748238405Sjkim	roll	$24,%r13d
749238405Sjkim	xorl	%r8d,%eax
750238405Sjkim	xorl	%r11d,%ecx
751238405Sjkim	movq	%r9,%r8
752238405Sjkim	movq	%r12,%r11
753238405Sjkim	xorl	%r10d,%ebx
754238405Sjkim	xorl	%r13d,%edx
755238405Sjkim
756238405Sjkim	movq	0(%r14),%rsi
757238405Sjkim	shrq	$32,%r8
758238405Sjkim	shrq	$32,%r11
759238405Sjkim	movq	64(%r14),%rdi
760238405Sjkim	roll	$16,%r9d
761238405Sjkim	roll	$16,%r12d
762238405Sjkim	movq	128(%r14),%rbp
763238405Sjkim	roll	$16,%r8d
764238405Sjkim	roll	$16,%r11d
765238405Sjkim	movq	192(%r14),%r10
766238405Sjkim	xorl	%r9d,%eax
767238405Sjkim	xorl	%r12d,%ecx
768238405Sjkim	movq	256(%r14),%r13
769238405Sjkim	xorl	%r8d,%ebx
770238405Sjkim	xorl	%r11d,%edx
771238405Sjkim	jmp	.Ldec_loop_compact
772238405Sjkim.align	16
773238405Sjkim.Ldec_compact_done:
774238405Sjkim	xorl	0(%r15),%eax
775238405Sjkim	xorl	4(%r15),%ebx
776238405Sjkim	xorl	8(%r15),%ecx
777238405Sjkim	xorl	12(%r15),%edx
778238405Sjkim.byte	0xf3,0xc3
779238405Sjkim.size	_x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact
780238405Sjkim.globl	AES_decrypt
781238405Sjkim.type	AES_decrypt,@function
782238405Sjkim.align	16
783238405Sjkim.globl	asm_AES_decrypt
784238405Sjkim.hidden	asm_AES_decrypt
785238405Sjkimasm_AES_decrypt:
786238405SjkimAES_decrypt:
787238405Sjkim	pushq	%rbx
788238405Sjkim	pushq	%rbp
789238405Sjkim	pushq	%r12
790238405Sjkim	pushq	%r13
791238405Sjkim	pushq	%r14
792238405Sjkim	pushq	%r15
793238405Sjkim
794238405Sjkim
795238405Sjkim	movq	%rsp,%r10
796238405Sjkim	leaq	-63(%rdx),%rcx
797238405Sjkim	andq	$-64,%rsp
798238405Sjkim	subq	%rsp,%rcx
799238405Sjkim	negq	%rcx
800238405Sjkim	andq	$960,%rcx
801238405Sjkim	subq	%rcx,%rsp
802238405Sjkim	subq	$32,%rsp
803238405Sjkim
804238405Sjkim	movq	%rsi,16(%rsp)
805238405Sjkim	movq	%r10,24(%rsp)
806238405Sjkim.Ldec_prologue:
807238405Sjkim
808238405Sjkim	movq	%rdx,%r15
809238405Sjkim	movl	240(%r15),%r13d
810238405Sjkim
811238405Sjkim	movl	0(%rdi),%eax
812238405Sjkim	movl	4(%rdi),%ebx
813238405Sjkim	movl	8(%rdi),%ecx
814238405Sjkim	movl	12(%rdi),%edx
815238405Sjkim
816238405Sjkim	shll	$4,%r13d
817238405Sjkim	leaq	(%r15,%r13,1),%rbp
818238405Sjkim	movq	%r15,(%rsp)
819238405Sjkim	movq	%rbp,8(%rsp)
820238405Sjkim
821238405Sjkim
822238405Sjkim	leaq	.LAES_Td+2048(%rip),%r14
823238405Sjkim	leaq	768(%rsp),%rbp
824238405Sjkim	subq	%r14,%rbp
825238405Sjkim	andq	$768,%rbp
826238405Sjkim	leaq	(%r14,%rbp,1),%r14
827238405Sjkim	shrq	$3,%rbp
828238405Sjkim	addq	%rbp,%r14
829238405Sjkim
830238405Sjkim	call	_x86_64_AES_decrypt_compact
831238405Sjkim
832238405Sjkim	movq	16(%rsp),%r9
833238405Sjkim	movq	24(%rsp),%rsi
834238405Sjkim	movl	%eax,0(%r9)
835238405Sjkim	movl	%ebx,4(%r9)
836238405Sjkim	movl	%ecx,8(%r9)
837238405Sjkim	movl	%edx,12(%r9)
838238405Sjkim
839238405Sjkim	movq	(%rsi),%r15
840238405Sjkim	movq	8(%rsi),%r14
841238405Sjkim	movq	16(%rsi),%r13
842238405Sjkim	movq	24(%rsi),%r12
843238405Sjkim	movq	32(%rsi),%rbp
844238405Sjkim	movq	40(%rsi),%rbx
845238405Sjkim	leaq	48(%rsi),%rsp
846238405Sjkim.Ldec_epilogue:
847238405Sjkim	.byte	0xf3,0xc3
848238405Sjkim.size	AES_decrypt,.-AES_decrypt
849238405Sjkim.globl	private_AES_set_encrypt_key
850238405Sjkim.type	private_AES_set_encrypt_key,@function
851238405Sjkim.align	16
852238405Sjkimprivate_AES_set_encrypt_key:
853238405Sjkim	pushq	%rbx
854238405Sjkim	pushq	%rbp
855238405Sjkim	pushq	%r12
856238405Sjkim	pushq	%r13
857238405Sjkim	pushq	%r14
858238405Sjkim	pushq	%r15
859238405Sjkim	subq	$8,%rsp
860238405Sjkim.Lenc_key_prologue:
861238405Sjkim
862238405Sjkim	call	_x86_64_AES_set_encrypt_key
863238405Sjkim
864238405Sjkim	movq	8(%rsp),%r15
865238405Sjkim	movq	16(%rsp),%r14
866238405Sjkim	movq	24(%rsp),%r13
867238405Sjkim	movq	32(%rsp),%r12
868238405Sjkim	movq	40(%rsp),%rbp
869238405Sjkim	movq	48(%rsp),%rbx
870238405Sjkim	addq	$56,%rsp
871238405Sjkim.Lenc_key_epilogue:
872238405Sjkim	.byte	0xf3,0xc3
873238405Sjkim.size	private_AES_set_encrypt_key,.-private_AES_set_encrypt_key
874238405Sjkim
875238405Sjkim.type	_x86_64_AES_set_encrypt_key,@function
876238405Sjkim.align	16
877238405Sjkim_x86_64_AES_set_encrypt_key:
878238405Sjkim	movl	%esi,%ecx
879238405Sjkim	movq	%rdi,%rsi
880238405Sjkim	movq	%rdx,%rdi
881238405Sjkim
882238405Sjkim	testq	$-1,%rsi
883238405Sjkim	jz	.Lbadpointer
884238405Sjkim	testq	$-1,%rdi
885238405Sjkim	jz	.Lbadpointer
886238405Sjkim
887238405Sjkim	leaq	.LAES_Te(%rip),%rbp
888238405Sjkim	leaq	2048+128(%rbp),%rbp
889238405Sjkim
890238405Sjkim
891238405Sjkim	movl	0-128(%rbp),%eax
892238405Sjkim	movl	32-128(%rbp),%ebx
893238405Sjkim	movl	64-128(%rbp),%r8d
894238405Sjkim	movl	96-128(%rbp),%edx
895238405Sjkim	movl	128-128(%rbp),%eax
896238405Sjkim	movl	160-128(%rbp),%ebx
897238405Sjkim	movl	192-128(%rbp),%r8d
898238405Sjkim	movl	224-128(%rbp),%edx
899238405Sjkim
900238405Sjkim	cmpl	$128,%ecx
901238405Sjkim	je	.L10rounds
902238405Sjkim	cmpl	$192,%ecx
903238405Sjkim	je	.L12rounds
904238405Sjkim	cmpl	$256,%ecx
905238405Sjkim	je	.L14rounds
906238405Sjkim	movq	$-2,%rax
907238405Sjkim	jmp	.Lexit
908238405Sjkim
909238405Sjkim.L10rounds:
910238405Sjkim	movq	0(%rsi),%rax
911238405Sjkim	movq	8(%rsi),%rdx
912238405Sjkim	movq	%rax,0(%rdi)
913238405Sjkim	movq	%rdx,8(%rdi)
914238405Sjkim
915238405Sjkim	shrq	$32,%rdx
916238405Sjkim	xorl	%ecx,%ecx
917238405Sjkim	jmp	.L10shortcut
918238405Sjkim.align	4
919238405Sjkim.L10loop:
920238405Sjkim	movl	0(%rdi),%eax
921238405Sjkim	movl	12(%rdi),%edx
922238405Sjkim.L10shortcut:
923238405Sjkim	movzbl	%dl,%esi
924238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
925238405Sjkim	movzbl	%dh,%esi
926238405Sjkim	shll	$24,%ebx
927238405Sjkim	xorl	%ebx,%eax
928238405Sjkim
929238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
930238405Sjkim	shrl	$16,%edx
931238405Sjkim	movzbl	%dl,%esi
932238405Sjkim	xorl	%ebx,%eax
933238405Sjkim
934238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
935238405Sjkim	movzbl	%dh,%esi
936238405Sjkim	shll	$8,%ebx
937238405Sjkim	xorl	%ebx,%eax
938238405Sjkim
939238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
940238405Sjkim	shll	$16,%ebx
941238405Sjkim	xorl	%ebx,%eax
942238405Sjkim
943238405Sjkim	xorl	1024-128(%rbp,%rcx,4),%eax
944238405Sjkim	movl	%eax,16(%rdi)
945238405Sjkim	xorl	4(%rdi),%eax
946238405Sjkim	movl	%eax,20(%rdi)
947238405Sjkim	xorl	8(%rdi),%eax
948238405Sjkim	movl	%eax,24(%rdi)
949238405Sjkim	xorl	12(%rdi),%eax
950238405Sjkim	movl	%eax,28(%rdi)
951238405Sjkim	addl	$1,%ecx
952238405Sjkim	leaq	16(%rdi),%rdi
953238405Sjkim	cmpl	$10,%ecx
954238405Sjkim	jl	.L10loop
955238405Sjkim
956238405Sjkim	movl	$10,80(%rdi)
957238405Sjkim	xorq	%rax,%rax
958238405Sjkim	jmp	.Lexit
959238405Sjkim
960238405Sjkim.L12rounds:
961238405Sjkim	movq	0(%rsi),%rax
962238405Sjkim	movq	8(%rsi),%rbx
963238405Sjkim	movq	16(%rsi),%rdx
964238405Sjkim	movq	%rax,0(%rdi)
965238405Sjkim	movq	%rbx,8(%rdi)
966238405Sjkim	movq	%rdx,16(%rdi)
967238405Sjkim
968238405Sjkim	shrq	$32,%rdx
969238405Sjkim	xorl	%ecx,%ecx
970238405Sjkim	jmp	.L12shortcut
971238405Sjkim.align	4
972238405Sjkim.L12loop:
973238405Sjkim	movl	0(%rdi),%eax
974238405Sjkim	movl	20(%rdi),%edx
975238405Sjkim.L12shortcut:
976238405Sjkim	movzbl	%dl,%esi
977238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
978238405Sjkim	movzbl	%dh,%esi
979238405Sjkim	shll	$24,%ebx
980238405Sjkim	xorl	%ebx,%eax
981238405Sjkim
982238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
983238405Sjkim	shrl	$16,%edx
984238405Sjkim	movzbl	%dl,%esi
985238405Sjkim	xorl	%ebx,%eax
986238405Sjkim
987238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
988238405Sjkim	movzbl	%dh,%esi
989238405Sjkim	shll	$8,%ebx
990238405Sjkim	xorl	%ebx,%eax
991238405Sjkim
992238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
993238405Sjkim	shll	$16,%ebx
994238405Sjkim	xorl	%ebx,%eax
995238405Sjkim
996238405Sjkim	xorl	1024-128(%rbp,%rcx,4),%eax
997238405Sjkim	movl	%eax,24(%rdi)
998238405Sjkim	xorl	4(%rdi),%eax
999238405Sjkim	movl	%eax,28(%rdi)
1000238405Sjkim	xorl	8(%rdi),%eax
1001238405Sjkim	movl	%eax,32(%rdi)
1002238405Sjkim	xorl	12(%rdi),%eax
1003238405Sjkim	movl	%eax,36(%rdi)
1004238405Sjkim
1005238405Sjkim	cmpl	$7,%ecx
1006238405Sjkim	je	.L12break
1007238405Sjkim	addl	$1,%ecx
1008238405Sjkim
1009238405Sjkim	xorl	16(%rdi),%eax
1010238405Sjkim	movl	%eax,40(%rdi)
1011238405Sjkim	xorl	20(%rdi),%eax
1012238405Sjkim	movl	%eax,44(%rdi)
1013238405Sjkim
1014238405Sjkim	leaq	24(%rdi),%rdi
1015238405Sjkim	jmp	.L12loop
1016238405Sjkim.L12break:
1017238405Sjkim	movl	$12,72(%rdi)
1018238405Sjkim	xorq	%rax,%rax
1019238405Sjkim	jmp	.Lexit
1020238405Sjkim
1021238405Sjkim.L14rounds:
1022238405Sjkim	movq	0(%rsi),%rax
1023238405Sjkim	movq	8(%rsi),%rbx
1024238405Sjkim	movq	16(%rsi),%rcx
1025238405Sjkim	movq	24(%rsi),%rdx
1026238405Sjkim	movq	%rax,0(%rdi)
1027238405Sjkim	movq	%rbx,8(%rdi)
1028238405Sjkim	movq	%rcx,16(%rdi)
1029238405Sjkim	movq	%rdx,24(%rdi)
1030238405Sjkim
1031238405Sjkim	shrq	$32,%rdx
1032238405Sjkim	xorl	%ecx,%ecx
1033238405Sjkim	jmp	.L14shortcut
1034238405Sjkim.align	4
1035238405Sjkim.L14loop:
1036238405Sjkim	movl	0(%rdi),%eax
1037238405Sjkim	movl	28(%rdi),%edx
1038238405Sjkim.L14shortcut:
1039238405Sjkim	movzbl	%dl,%esi
1040238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
1041238405Sjkim	movzbl	%dh,%esi
1042238405Sjkim	shll	$24,%ebx
1043238405Sjkim	xorl	%ebx,%eax
1044238405Sjkim
1045238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
1046238405Sjkim	shrl	$16,%edx
1047238405Sjkim	movzbl	%dl,%esi
1048238405Sjkim	xorl	%ebx,%eax
1049238405Sjkim
1050238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
1051238405Sjkim	movzbl	%dh,%esi
1052238405Sjkim	shll	$8,%ebx
1053238405Sjkim	xorl	%ebx,%eax
1054238405Sjkim
1055238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
1056238405Sjkim	shll	$16,%ebx
1057238405Sjkim	xorl	%ebx,%eax
1058238405Sjkim
1059238405Sjkim	xorl	1024-128(%rbp,%rcx,4),%eax
1060238405Sjkim	movl	%eax,32(%rdi)
1061238405Sjkim	xorl	4(%rdi),%eax
1062238405Sjkim	movl	%eax,36(%rdi)
1063238405Sjkim	xorl	8(%rdi),%eax
1064238405Sjkim	movl	%eax,40(%rdi)
1065238405Sjkim	xorl	12(%rdi),%eax
1066238405Sjkim	movl	%eax,44(%rdi)
1067238405Sjkim
1068238405Sjkim	cmpl	$6,%ecx
1069238405Sjkim	je	.L14break
1070238405Sjkim	addl	$1,%ecx
1071238405Sjkim
1072238405Sjkim	movl	%eax,%edx
1073238405Sjkim	movl	16(%rdi),%eax
1074238405Sjkim	movzbl	%dl,%esi
1075238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
1076238405Sjkim	movzbl	%dh,%esi
1077238405Sjkim	xorl	%ebx,%eax
1078238405Sjkim
1079238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
1080238405Sjkim	shrl	$16,%edx
1081238405Sjkim	shll	$8,%ebx
1082238405Sjkim	movzbl	%dl,%esi
1083238405Sjkim	xorl	%ebx,%eax
1084238405Sjkim
1085238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
1086238405Sjkim	movzbl	%dh,%esi
1087238405Sjkim	shll	$16,%ebx
1088238405Sjkim	xorl	%ebx,%eax
1089238405Sjkim
1090238405Sjkim	movzbl	-128(%rbp,%rsi,1),%ebx
1091238405Sjkim	shll	$24,%ebx
1092238405Sjkim	xorl	%ebx,%eax
1093238405Sjkim
1094238405Sjkim	movl	%eax,48(%rdi)
1095238405Sjkim	xorl	20(%rdi),%eax
1096238405Sjkim	movl	%eax,52(%rdi)
1097238405Sjkim	xorl	24(%rdi),%eax
1098238405Sjkim	movl	%eax,56(%rdi)
1099238405Sjkim	xorl	28(%rdi),%eax
1100238405Sjkim	movl	%eax,60(%rdi)
1101238405Sjkim
1102238405Sjkim	leaq	32(%rdi),%rdi
1103238405Sjkim	jmp	.L14loop
1104238405Sjkim.L14break:
1105238405Sjkim	movl	$14,48(%rdi)
1106238405Sjkim	xorq	%rax,%rax
1107238405Sjkim	jmp	.Lexit
1108238405Sjkim
1109238405Sjkim.Lbadpointer:
1110238405Sjkim	movq	$-1,%rax
1111238405Sjkim.Lexit:
1112238405Sjkim.byte	0xf3,0xc3
1113238405Sjkim.size	_x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key
1114238405Sjkim.globl	private_AES_set_decrypt_key
1115238405Sjkim.type	private_AES_set_decrypt_key,@function
1116238405Sjkim.align	16
1117238405Sjkimprivate_AES_set_decrypt_key:
1118238405Sjkim	pushq	%rbx
1119238405Sjkim	pushq	%rbp
1120238405Sjkim	pushq	%r12
1121238405Sjkim	pushq	%r13
1122238405Sjkim	pushq	%r14
1123238405Sjkim	pushq	%r15
1124238405Sjkim	pushq	%rdx
1125238405Sjkim.Ldec_key_prologue:
1126238405Sjkim
1127238405Sjkim	call	_x86_64_AES_set_encrypt_key
1128238405Sjkim	movq	(%rsp),%r8
1129238405Sjkim	cmpl	$0,%eax
1130238405Sjkim	jne	.Labort
1131238405Sjkim
1132238405Sjkim	movl	240(%r8),%r14d
1133238405Sjkim	xorq	%rdi,%rdi
1134238405Sjkim	leaq	(%rdi,%r14,4),%rcx
1135238405Sjkim	movq	%r8,%rsi
1136238405Sjkim	leaq	(%r8,%rcx,4),%rdi
1137238405Sjkim.align	4
1138238405Sjkim.Linvert:
1139238405Sjkim	movq	0(%rsi),%rax
1140238405Sjkim	movq	8(%rsi),%rbx
1141238405Sjkim	movq	0(%rdi),%rcx
1142238405Sjkim	movq	8(%rdi),%rdx
1143238405Sjkim	movq	%rax,0(%rdi)
1144238405Sjkim	movq	%rbx,8(%rdi)
1145238405Sjkim	movq	%rcx,0(%rsi)
1146238405Sjkim	movq	%rdx,8(%rsi)
1147238405Sjkim	leaq	16(%rsi),%rsi
1148238405Sjkim	leaq	-16(%rdi),%rdi
1149238405Sjkim	cmpq	%rsi,%rdi
1150238405Sjkim	jne	.Linvert
1151238405Sjkim
1152238405Sjkim	leaq	.LAES_Te+2048+1024(%rip),%rax
1153238405Sjkim
1154238405Sjkim	movq	40(%rax),%rsi
1155238405Sjkim	movq	48(%rax),%rdi
1156238405Sjkim	movq	56(%rax),%rbp
1157238405Sjkim
1158238405Sjkim	movq	%r8,%r15
1159238405Sjkim	subl	$1,%r14d
1160238405Sjkim.align	4
1161238405Sjkim.Lpermute:
1162238405Sjkim	leaq	16(%r15),%r15
1163238405Sjkim	movq	0(%r15),%rax
1164238405Sjkim	movq	8(%r15),%rcx
1165238405Sjkim	movq	%rax,%rbx
1166238405Sjkim	movq	%rcx,%rdx
1167238405Sjkim	andq	%rsi,%rbx
1168238405Sjkim	andq	%rsi,%rdx
1169238405Sjkim	movq	%rbx,%r9
1170238405Sjkim	movq	%rdx,%r12
1171238405Sjkim	shrq	$7,%r9
1172238405Sjkim	leaq	(%rax,%rax,1),%r8
1173238405Sjkim	shrq	$7,%r12
1174238405Sjkim	leaq	(%rcx,%rcx,1),%r11
1175238405Sjkim	subq	%r9,%rbx
1176238405Sjkim	subq	%r12,%rdx
1177238405Sjkim	andq	%rdi,%r8
1178238405Sjkim	andq	%rdi,%r11
1179238405Sjkim	andq	%rbp,%rbx
1180238405Sjkim	andq	%rbp,%rdx
1181238405Sjkim	xorq	%r8,%rbx
1182238405Sjkim	xorq	%r11,%rdx
1183238405Sjkim	movq	%rbx,%r8
1184238405Sjkim	movq	%rdx,%r11
1185238405Sjkim
1186238405Sjkim	andq	%rsi,%rbx
1187238405Sjkim	andq	%rsi,%rdx
1188238405Sjkim	movq	%rbx,%r10
1189238405Sjkim	movq	%rdx,%r13
1190238405Sjkim	shrq	$7,%r10
1191238405Sjkim	leaq	(%r8,%r8,1),%r9
1192238405Sjkim	shrq	$7,%r13
1193238405Sjkim	leaq	(%r11,%r11,1),%r12
1194238405Sjkim	subq	%r10,%rbx
1195238405Sjkim	subq	%r13,%rdx
1196238405Sjkim	andq	%rdi,%r9
1197238405Sjkim	andq	%rdi,%r12
1198238405Sjkim	andq	%rbp,%rbx
1199238405Sjkim	andq	%rbp,%rdx
1200238405Sjkim	xorq	%r9,%rbx
1201238405Sjkim	xorq	%r12,%rdx
1202238405Sjkim	movq	%rbx,%r9
1203238405Sjkim	movq	%rdx,%r12
1204238405Sjkim
1205238405Sjkim	andq	%rsi,%rbx
1206238405Sjkim	andq	%rsi,%rdx
1207238405Sjkim	movq	%rbx,%r10
1208238405Sjkim	movq	%rdx,%r13
1209238405Sjkim	shrq	$7,%r10
1210238405Sjkim	xorq	%rax,%r8
1211238405Sjkim	shrq	$7,%r13
1212238405Sjkim	xorq	%rcx,%r11
1213238405Sjkim	subq	%r10,%rbx
1214238405Sjkim	subq	%r13,%rdx
1215238405Sjkim	leaq	(%r9,%r9,1),%r10
1216238405Sjkim	leaq	(%r12,%r12,1),%r13
1217238405Sjkim	xorq	%rax,%r9
1218238405Sjkim	xorq	%rcx,%r12
1219238405Sjkim	andq	%rdi,%r10
1220238405Sjkim	andq	%rdi,%r13
1221238405Sjkim	andq	%rbp,%rbx
1222238405Sjkim	andq	%rbp,%rdx
1223238405Sjkim	xorq	%rbx,%r10
1224238405Sjkim	xorq	%rdx,%r13
1225238405Sjkim
1226238405Sjkim	xorq	%r10,%rax
1227238405Sjkim	xorq	%r13,%rcx
1228238405Sjkim	xorq	%r10,%r8
1229238405Sjkim	xorq	%r13,%r11
1230238405Sjkim	movq	%rax,%rbx
1231238405Sjkim	movq	%rcx,%rdx
1232238405Sjkim	xorq	%r10,%r9
1233238405Sjkim	xorq	%r13,%r12
1234238405Sjkim	shrq	$32,%rbx
1235238405Sjkim	shrq	$32,%rdx
1236238405Sjkim	xorq	%r8,%r10
1237238405Sjkim	xorq	%r11,%r13
1238238405Sjkim	roll	$8,%eax
1239238405Sjkim	roll	$8,%ecx
1240238405Sjkim	xorq	%r9,%r10
1241238405Sjkim	xorq	%r12,%r13
1242238405Sjkim
1243238405Sjkim	roll	$8,%ebx
1244238405Sjkim	roll	$8,%edx
1245238405Sjkim	xorl	%r10d,%eax
1246238405Sjkim	xorl	%r13d,%ecx
1247238405Sjkim	shrq	$32,%r10
1248238405Sjkim	shrq	$32,%r13
1249238405Sjkim	xorl	%r10d,%ebx
1250238405Sjkim	xorl	%r13d,%edx
1251238405Sjkim
1252238405Sjkim	movq	%r8,%r10
1253238405Sjkim	movq	%r11,%r13
1254238405Sjkim	shrq	$32,%r10
1255238405Sjkim	shrq	$32,%r13
1256238405Sjkim	roll	$24,%r8d
1257238405Sjkim	roll	$24,%r11d
1258238405Sjkim	roll	$24,%r10d
1259238405Sjkim	roll	$24,%r13d
1260238405Sjkim	xorl	%r8d,%eax
1261238405Sjkim	xorl	%r11d,%ecx
1262238405Sjkim	movq	%r9,%r8
1263238405Sjkim	movq	%r12,%r11
1264238405Sjkim	xorl	%r10d,%ebx
1265238405Sjkim	xorl	%r13d,%edx
1266238405Sjkim
1267238405Sjkim
1268238405Sjkim	shrq	$32,%r8
1269238405Sjkim	shrq	$32,%r11
1270238405Sjkim
1271238405Sjkim	roll	$16,%r9d
1272238405Sjkim	roll	$16,%r12d
1273238405Sjkim
1274238405Sjkim	roll	$16,%r8d
1275238405Sjkim	roll	$16,%r11d
1276238405Sjkim
1277238405Sjkim	xorl	%r9d,%eax
1278238405Sjkim	xorl	%r12d,%ecx
1279238405Sjkim
1280238405Sjkim	xorl	%r8d,%ebx
1281238405Sjkim	xorl	%r11d,%edx
1282238405Sjkim	movl	%eax,0(%r15)
1283238405Sjkim	movl	%ebx,4(%r15)
1284238405Sjkim	movl	%ecx,8(%r15)
1285238405Sjkim	movl	%edx,12(%r15)
1286238405Sjkim	subl	$1,%r14d
1287238405Sjkim	jnz	.Lpermute
1288238405Sjkim
1289238405Sjkim	xorq	%rax,%rax
1290238405Sjkim.Labort:
1291238405Sjkim	movq	8(%rsp),%r15
1292238405Sjkim	movq	16(%rsp),%r14
1293238405Sjkim	movq	24(%rsp),%r13
1294238405Sjkim	movq	32(%rsp),%r12
1295238405Sjkim	movq	40(%rsp),%rbp
1296238405Sjkim	movq	48(%rsp),%rbx
1297238405Sjkim	addq	$56,%rsp
1298238405Sjkim.Ldec_key_epilogue:
1299238405Sjkim	.byte	0xf3,0xc3
1300238405Sjkim.size	private_AES_set_decrypt_key,.-private_AES_set_decrypt_key
1301238405Sjkim.globl	AES_cbc_encrypt
1302238405Sjkim.type	AES_cbc_encrypt,@function
1303238405Sjkim.align	16
1304238405Sjkim
1305238405Sjkim.globl	asm_AES_cbc_encrypt
1306238405Sjkim.hidden	asm_AES_cbc_encrypt
1307238405Sjkimasm_AES_cbc_encrypt:
1308238405SjkimAES_cbc_encrypt:
1309238405Sjkim	cmpq	$0,%rdx
1310238405Sjkim	je	.Lcbc_epilogue
1311238405Sjkim	pushfq
1312238405Sjkim	pushq	%rbx
1313238405Sjkim	pushq	%rbp
1314238405Sjkim	pushq	%r12
1315238405Sjkim	pushq	%r13
1316238405Sjkim	pushq	%r14
1317238405Sjkim	pushq	%r15
1318238405Sjkim.Lcbc_prologue:
1319238405Sjkim
1320238405Sjkim	cld
1321238405Sjkim	movl	%r9d,%r9d
1322238405Sjkim
1323238405Sjkim	leaq	.LAES_Te(%rip),%r14
1324238405Sjkim	cmpq	$0,%r9
1325238405Sjkim	jne	.Lcbc_picked_te
1326238405Sjkim	leaq	.LAES_Td(%rip),%r14
1327238405Sjkim.Lcbc_picked_te:
1328238405Sjkim
1329238405Sjkim	movl	OPENSSL_ia32cap_P(%rip),%r10d
1330238405Sjkim	cmpq	$512,%rdx
1331238405Sjkim	jb	.Lcbc_slow_prologue
1332238405Sjkim	testq	$15,%rdx
1333238405Sjkim	jnz	.Lcbc_slow_prologue
1334238405Sjkim	btl	$28,%r10d
1335238405Sjkim	jc	.Lcbc_slow_prologue
1336238405Sjkim
1337238405Sjkim
1338238405Sjkim	leaq	-88-248(%rsp),%r15
1339238405Sjkim	andq	$-64,%r15
1340238405Sjkim
1341238405Sjkim
1342238405Sjkim	movq	%r14,%r10
1343238405Sjkim	leaq	2304(%r14),%r11
1344238405Sjkim	movq	%r15,%r12
1345238405Sjkim	andq	$4095,%r10
1346238405Sjkim	andq	$4095,%r11
1347238405Sjkim	andq	$4095,%r12
1348238405Sjkim
1349238405Sjkim	cmpq	%r11,%r12
1350238405Sjkim	jb	.Lcbc_te_break_out
1351238405Sjkim	subq	%r11,%r12
1352238405Sjkim	subq	%r12,%r15
1353238405Sjkim	jmp	.Lcbc_te_ok
1354238405Sjkim.Lcbc_te_break_out:
1355238405Sjkim	subq	%r10,%r12
1356238405Sjkim	andq	$4095,%r12
1357238405Sjkim	addq	$320,%r12
1358238405Sjkim	subq	%r12,%r15
1359238405Sjkim.align	4
1360238405Sjkim.Lcbc_te_ok:
1361238405Sjkim
1362238405Sjkim	xchgq	%rsp,%r15
1363238405Sjkim
1364238405Sjkim	movq	%r15,16(%rsp)
1365238405Sjkim.Lcbc_fast_body:
1366238405Sjkim	movq	%rdi,24(%rsp)
1367238405Sjkim	movq	%rsi,32(%rsp)
1368238405Sjkim	movq	%rdx,40(%rsp)
1369238405Sjkim	movq	%rcx,48(%rsp)
1370238405Sjkim	movq	%r8,56(%rsp)
1371238405Sjkim	movl	$0,80+240(%rsp)
1372238405Sjkim	movq	%r8,%rbp
1373238405Sjkim	movq	%r9,%rbx
1374238405Sjkim	movq	%rsi,%r9
1375238405Sjkim	movq	%rdi,%r8
1376238405Sjkim	movq	%rcx,%r15
1377238405Sjkim
1378238405Sjkim	movl	240(%r15),%eax
1379238405Sjkim
1380238405Sjkim	movq	%r15,%r10
1381238405Sjkim	subq	%r14,%r10
1382238405Sjkim	andq	$4095,%r10
1383238405Sjkim	cmpq	$2304,%r10
1384238405Sjkim	jb	.Lcbc_do_ecopy
1385238405Sjkim	cmpq	$4096-248,%r10
1386238405Sjkim	jb	.Lcbc_skip_ecopy
1387238405Sjkim.align	4
1388238405Sjkim.Lcbc_do_ecopy:
1389238405Sjkim	movq	%r15,%rsi
1390238405Sjkim	leaq	80(%rsp),%rdi
1391238405Sjkim	leaq	80(%rsp),%r15
1392238405Sjkim	movl	$30,%ecx
1393238405Sjkim.long	0x90A548F3
1394238405Sjkim	movl	%eax,(%rdi)
1395238405Sjkim.Lcbc_skip_ecopy:
1396238405Sjkim	movq	%r15,0(%rsp)
1397238405Sjkim
1398238405Sjkim	movl	$18,%ecx
1399238405Sjkim.align	4
1400238405Sjkim.Lcbc_prefetch_te:
1401238405Sjkim	movq	0(%r14),%r10
1402238405Sjkim	movq	32(%r14),%r11
1403238405Sjkim	movq	64(%r14),%r12
1404238405Sjkim	movq	96(%r14),%r13
1405238405Sjkim	leaq	128(%r14),%r14
1406238405Sjkim	subl	$1,%ecx
1407238405Sjkim	jnz	.Lcbc_prefetch_te
1408238405Sjkim	leaq	-2304(%r14),%r14
1409238405Sjkim
1410238405Sjkim	cmpq	$0,%rbx
1411238405Sjkim	je	.LFAST_DECRYPT
1412238405Sjkim
1413238405Sjkim
1414238405Sjkim	movl	0(%rbp),%eax
1415238405Sjkim	movl	4(%rbp),%ebx
1416238405Sjkim	movl	8(%rbp),%ecx
1417238405Sjkim	movl	12(%rbp),%edx
1418238405Sjkim
1419238405Sjkim.align	4
1420238405Sjkim.Lcbc_fast_enc_loop:
1421238405Sjkim	xorl	0(%r8),%eax
1422238405Sjkim	xorl	4(%r8),%ebx
1423238405Sjkim	xorl	8(%r8),%ecx
1424238405Sjkim	xorl	12(%r8),%edx
1425238405Sjkim	movq	0(%rsp),%r15
1426238405Sjkim	movq	%r8,24(%rsp)
1427238405Sjkim
1428238405Sjkim	call	_x86_64_AES_encrypt
1429238405Sjkim
1430238405Sjkim	movq	24(%rsp),%r8
1431238405Sjkim	movq	40(%rsp),%r10
1432238405Sjkim	movl	%eax,0(%r9)
1433238405Sjkim	movl	%ebx,4(%r9)
1434238405Sjkim	movl	%ecx,8(%r9)
1435238405Sjkim	movl	%edx,12(%r9)
1436238405Sjkim
1437238405Sjkim	leaq	16(%r8),%r8
1438238405Sjkim	leaq	16(%r9),%r9
1439238405Sjkim	subq	$16,%r10
1440238405Sjkim	testq	$-16,%r10
1441238405Sjkim	movq	%r10,40(%rsp)
1442238405Sjkim	jnz	.Lcbc_fast_enc_loop
1443238405Sjkim	movq	56(%rsp),%rbp
1444238405Sjkim	movl	%eax,0(%rbp)
1445238405Sjkim	movl	%ebx,4(%rbp)
1446238405Sjkim	movl	%ecx,8(%rbp)
1447238405Sjkim	movl	%edx,12(%rbp)
1448238405Sjkim
1449238405Sjkim	jmp	.Lcbc_fast_cleanup
1450238405Sjkim
1451238405Sjkim
1452238405Sjkim.align	16
1453238405Sjkim.LFAST_DECRYPT:
1454238405Sjkim	cmpq	%r8,%r9
1455238405Sjkim	je	.Lcbc_fast_dec_in_place
1456238405Sjkim
1457238405Sjkim	movq	%rbp,64(%rsp)
1458238405Sjkim.align	4
1459238405Sjkim.Lcbc_fast_dec_loop:
1460238405Sjkim	movl	0(%r8),%eax
1461238405Sjkim	movl	4(%r8),%ebx
1462238405Sjkim	movl	8(%r8),%ecx
1463238405Sjkim	movl	12(%r8),%edx
1464238405Sjkim	movq	0(%rsp),%r15
1465238405Sjkim	movq	%r8,24(%rsp)
1466238405Sjkim
1467238405Sjkim	call	_x86_64_AES_decrypt
1468238405Sjkim
1469238405Sjkim	movq	64(%rsp),%rbp
1470238405Sjkim	movq	24(%rsp),%r8
1471238405Sjkim	movq	40(%rsp),%r10
1472238405Sjkim	xorl	0(%rbp),%eax
1473238405Sjkim	xorl	4(%rbp),%ebx
1474238405Sjkim	xorl	8(%rbp),%ecx
1475238405Sjkim	xorl	12(%rbp),%edx
1476238405Sjkim	movq	%r8,%rbp
1477238405Sjkim
1478238405Sjkim	subq	$16,%r10
1479238405Sjkim	movq	%r10,40(%rsp)
1480238405Sjkim	movq	%rbp,64(%rsp)
1481238405Sjkim
1482238405Sjkim	movl	%eax,0(%r9)
1483238405Sjkim	movl	%ebx,4(%r9)
1484238405Sjkim	movl	%ecx,8(%r9)
1485238405Sjkim	movl	%edx,12(%r9)
1486238405Sjkim
1487238405Sjkim	leaq	16(%r8),%r8
1488238405Sjkim	leaq	16(%r9),%r9
1489238405Sjkim	jnz	.Lcbc_fast_dec_loop
1490238405Sjkim	movq	56(%rsp),%r12
1491238405Sjkim	movq	0(%rbp),%r10
1492238405Sjkim	movq	8(%rbp),%r11
1493238405Sjkim	movq	%r10,0(%r12)
1494238405Sjkim	movq	%r11,8(%r12)
1495238405Sjkim	jmp	.Lcbc_fast_cleanup
1496238405Sjkim
1497238405Sjkim.align	16
1498238405Sjkim.Lcbc_fast_dec_in_place:
1499238405Sjkim	movq	0(%rbp),%r10
1500238405Sjkim	movq	8(%rbp),%r11
1501238405Sjkim	movq	%r10,0+64(%rsp)
1502238405Sjkim	movq	%r11,8+64(%rsp)
1503238405Sjkim.align	4
1504238405Sjkim.Lcbc_fast_dec_in_place_loop:
1505238405Sjkim	movl	0(%r8),%eax
1506238405Sjkim	movl	4(%r8),%ebx
1507238405Sjkim	movl	8(%r8),%ecx
1508238405Sjkim	movl	12(%r8),%edx
1509238405Sjkim	movq	0(%rsp),%r15
1510238405Sjkim	movq	%r8,24(%rsp)
1511238405Sjkim
1512238405Sjkim	call	_x86_64_AES_decrypt
1513238405Sjkim
1514238405Sjkim	movq	24(%rsp),%r8
1515238405Sjkim	movq	40(%rsp),%r10
1516238405Sjkim	xorl	0+64(%rsp),%eax
1517238405Sjkim	xorl	4+64(%rsp),%ebx
1518238405Sjkim	xorl	8+64(%rsp),%ecx
1519238405Sjkim	xorl	12+64(%rsp),%edx
1520238405Sjkim
1521238405Sjkim	movq	0(%r8),%r11
1522238405Sjkim	movq	8(%r8),%r12
1523238405Sjkim	subq	$16,%r10
1524238405Sjkim	jz	.Lcbc_fast_dec_in_place_done
1525238405Sjkim
1526238405Sjkim	movq	%r11,0+64(%rsp)
1527238405Sjkim	movq	%r12,8+64(%rsp)
1528238405Sjkim
1529238405Sjkim	movl	%eax,0(%r9)
1530238405Sjkim	movl	%ebx,4(%r9)
1531238405Sjkim	movl	%ecx,8(%r9)
1532238405Sjkim	movl	%edx,12(%r9)
1533238405Sjkim
1534238405Sjkim	leaq	16(%r8),%r8
1535238405Sjkim	leaq	16(%r9),%r9
1536238405Sjkim	movq	%r10,40(%rsp)
1537238405Sjkim	jmp	.Lcbc_fast_dec_in_place_loop
1538238405Sjkim.Lcbc_fast_dec_in_place_done:
1539238405Sjkim	movq	56(%rsp),%rdi
1540238405Sjkim	movq	%r11,0(%rdi)
1541238405Sjkim	movq	%r12,8(%rdi)
1542238405Sjkim
1543238405Sjkim	movl	%eax,0(%r9)
1544238405Sjkim	movl	%ebx,4(%r9)
1545238405Sjkim	movl	%ecx,8(%r9)
1546238405Sjkim	movl	%edx,12(%r9)
1547238405Sjkim
1548238405Sjkim.align	4
1549238405Sjkim.Lcbc_fast_cleanup:
1550238405Sjkim	cmpl	$0,80+240(%rsp)
1551238405Sjkim	leaq	80(%rsp),%rdi
1552238405Sjkim	je	.Lcbc_exit
1553238405Sjkim	movl	$30,%ecx
1554238405Sjkim	xorq	%rax,%rax
1555238405Sjkim.long	0x90AB48F3
1556238405Sjkim
1557238405Sjkim	jmp	.Lcbc_exit
1558238405Sjkim
1559238405Sjkim
1560238405Sjkim.align	16
1561238405Sjkim.Lcbc_slow_prologue:
1562238405Sjkim
1563238405Sjkim	leaq	-88(%rsp),%rbp
1564238405Sjkim	andq	$-64,%rbp
1565238405Sjkim
1566238405Sjkim	leaq	-88-63(%rcx),%r10
1567238405Sjkim	subq	%rbp,%r10
1568238405Sjkim	negq	%r10
1569238405Sjkim	andq	$960,%r10
1570238405Sjkim	subq	%r10,%rbp
1571238405Sjkim
1572238405Sjkim	xchgq	%rsp,%rbp
1573238405Sjkim
1574238405Sjkim	movq	%rbp,16(%rsp)
1575238405Sjkim.Lcbc_slow_body:
1576238405Sjkim
1577238405Sjkim
1578238405Sjkim
1579238405Sjkim
1580238405Sjkim	movq	%r8,56(%rsp)
1581238405Sjkim	movq	%r8,%rbp
1582238405Sjkim	movq	%r9,%rbx
1583238405Sjkim	movq	%rsi,%r9
1584238405Sjkim	movq	%rdi,%r8
1585238405Sjkim	movq	%rcx,%r15
1586238405Sjkim	movq	%rdx,%r10
1587238405Sjkim
1588238405Sjkim	movl	240(%r15),%eax
1589238405Sjkim	movq	%r15,0(%rsp)
1590238405Sjkim	shll	$4,%eax
1591238405Sjkim	leaq	(%r15,%rax,1),%rax
1592238405Sjkim	movq	%rax,8(%rsp)
1593238405Sjkim
1594238405Sjkim
1595238405Sjkim	leaq	2048(%r14),%r14
1596238405Sjkim	leaq	768-8(%rsp),%rax
1597238405Sjkim	subq	%r14,%rax
1598238405Sjkim	andq	$768,%rax
1599238405Sjkim	leaq	(%r14,%rax,1),%r14
1600238405Sjkim
1601238405Sjkim	cmpq	$0,%rbx
1602238405Sjkim	je	.LSLOW_DECRYPT
1603238405Sjkim
1604238405Sjkim
1605238405Sjkim	testq	$-16,%r10
1606238405Sjkim	movl	0(%rbp),%eax
1607238405Sjkim	movl	4(%rbp),%ebx
1608238405Sjkim	movl	8(%rbp),%ecx
1609238405Sjkim	movl	12(%rbp),%edx
1610238405Sjkim	jz	.Lcbc_slow_enc_tail
1611238405Sjkim
1612238405Sjkim.align	4
1613238405Sjkim.Lcbc_slow_enc_loop:
1614238405Sjkim	xorl	0(%r8),%eax
1615238405Sjkim	xorl	4(%r8),%ebx
1616238405Sjkim	xorl	8(%r8),%ecx
1617238405Sjkim	xorl	12(%r8),%edx
1618238405Sjkim	movq	0(%rsp),%r15
1619238405Sjkim	movq	%r8,24(%rsp)
1620238405Sjkim	movq	%r9,32(%rsp)
1621238405Sjkim	movq	%r10,40(%rsp)
1622238405Sjkim
1623238405Sjkim	call	_x86_64_AES_encrypt_compact
1624238405Sjkim
1625238405Sjkim	movq	24(%rsp),%r8
1626238405Sjkim	movq	32(%rsp),%r9
1627238405Sjkim	movq	40(%rsp),%r10
1628238405Sjkim	movl	%eax,0(%r9)
1629238405Sjkim	movl	%ebx,4(%r9)
1630238405Sjkim	movl	%ecx,8(%r9)
1631238405Sjkim	movl	%edx,12(%r9)
1632238405Sjkim
1633238405Sjkim	leaq	16(%r8),%r8
1634238405Sjkim	leaq	16(%r9),%r9
1635238405Sjkim	subq	$16,%r10
1636238405Sjkim	testq	$-16,%r10
1637238405Sjkim	jnz	.Lcbc_slow_enc_loop
1638238405Sjkim	testq	$15,%r10
1639238405Sjkim	jnz	.Lcbc_slow_enc_tail
1640238405Sjkim	movq	56(%rsp),%rbp
1641238405Sjkim	movl	%eax,0(%rbp)
1642238405Sjkim	movl	%ebx,4(%rbp)
1643238405Sjkim	movl	%ecx,8(%rbp)
1644238405Sjkim	movl	%edx,12(%rbp)
1645238405Sjkim
1646238405Sjkim	jmp	.Lcbc_exit
1647238405Sjkim
1648238405Sjkim.align	4
1649238405Sjkim.Lcbc_slow_enc_tail:
1650238405Sjkim	movq	%rax,%r11
1651238405Sjkim	movq	%rcx,%r12
1652238405Sjkim	movq	%r10,%rcx
1653238405Sjkim	movq	%r8,%rsi
1654238405Sjkim	movq	%r9,%rdi
1655238405Sjkim.long	0x9066A4F3
1656238405Sjkim	movq	$16,%rcx
1657238405Sjkim	subq	%r10,%rcx
1658238405Sjkim	xorq	%rax,%rax
1659238405Sjkim.long	0x9066AAF3
1660238405Sjkim	movq	%r9,%r8
1661238405Sjkim	movq	$16,%r10
1662238405Sjkim	movq	%r11,%rax
1663238405Sjkim	movq	%r12,%rcx
1664238405Sjkim	jmp	.Lcbc_slow_enc_loop
1665238405Sjkim
1666238405Sjkim.align	16
1667238405Sjkim.LSLOW_DECRYPT:
1668238405Sjkim	shrq	$3,%rax
1669238405Sjkim	addq	%rax,%r14
1670238405Sjkim
1671238405Sjkim	movq	0(%rbp),%r11
1672238405Sjkim	movq	8(%rbp),%r12
1673238405Sjkim	movq	%r11,0+64(%rsp)
1674238405Sjkim	movq	%r12,8+64(%rsp)
1675238405Sjkim
1676238405Sjkim.align	4
1677238405Sjkim.Lcbc_slow_dec_loop:
1678238405Sjkim	movl	0(%r8),%eax
1679238405Sjkim	movl	4(%r8),%ebx
1680238405Sjkim	movl	8(%r8),%ecx
1681238405Sjkim	movl	12(%r8),%edx
1682238405Sjkim	movq	0(%rsp),%r15
1683238405Sjkim	movq	%r8,24(%rsp)
1684238405Sjkim	movq	%r9,32(%rsp)
1685238405Sjkim	movq	%r10,40(%rsp)
1686238405Sjkim
1687238405Sjkim	call	_x86_64_AES_decrypt_compact
1688238405Sjkim
1689238405Sjkim	movq	24(%rsp),%r8
1690238405Sjkim	movq	32(%rsp),%r9
1691238405Sjkim	movq	40(%rsp),%r10
1692238405Sjkim	xorl	0+64(%rsp),%eax
1693238405Sjkim	xorl	4+64(%rsp),%ebx
1694238405Sjkim	xorl	8+64(%rsp),%ecx
1695238405Sjkim	xorl	12+64(%rsp),%edx
1696238405Sjkim
1697238405Sjkim	movq	0(%r8),%r11
1698238405Sjkim	movq	8(%r8),%r12
1699238405Sjkim	subq	$16,%r10
1700238405Sjkim	jc	.Lcbc_slow_dec_partial
1701238405Sjkim	jz	.Lcbc_slow_dec_done
1702238405Sjkim
1703238405Sjkim	movq	%r11,0+64(%rsp)
1704238405Sjkim	movq	%r12,8+64(%rsp)
1705238405Sjkim
1706238405Sjkim	movl	%eax,0(%r9)
1707238405Sjkim	movl	%ebx,4(%r9)
1708238405Sjkim	movl	%ecx,8(%r9)
1709238405Sjkim	movl	%edx,12(%r9)
1710238405Sjkim
1711238405Sjkim	leaq	16(%r8),%r8
1712238405Sjkim	leaq	16(%r9),%r9
1713238405Sjkim	jmp	.Lcbc_slow_dec_loop
1714238405Sjkim.Lcbc_slow_dec_done:
1715238405Sjkim	movq	56(%rsp),%rdi
1716238405Sjkim	movq	%r11,0(%rdi)
1717238405Sjkim	movq	%r12,8(%rdi)
1718238405Sjkim
1719238405Sjkim	movl	%eax,0(%r9)
1720238405Sjkim	movl	%ebx,4(%r9)
1721238405Sjkim	movl	%ecx,8(%r9)
1722238405Sjkim	movl	%edx,12(%r9)
1723238405Sjkim
1724238405Sjkim	jmp	.Lcbc_exit
1725238405Sjkim
1726238405Sjkim.align	4
1727238405Sjkim.Lcbc_slow_dec_partial:
1728238405Sjkim	movq	56(%rsp),%rdi
1729238405Sjkim	movq	%r11,0(%rdi)
1730238405Sjkim	movq	%r12,8(%rdi)
1731238405Sjkim
1732238405Sjkim	movl	%eax,0+64(%rsp)
1733238405Sjkim	movl	%ebx,4+64(%rsp)
1734238405Sjkim	movl	%ecx,8+64(%rsp)
1735238405Sjkim	movl	%edx,12+64(%rsp)
1736238405Sjkim
1737238405Sjkim	movq	%r9,%rdi
1738238405Sjkim	leaq	64(%rsp),%rsi
1739238405Sjkim	leaq	16(%r10),%rcx
1740238405Sjkim.long	0x9066A4F3
1741238405Sjkim	jmp	.Lcbc_exit
1742238405Sjkim
1743238405Sjkim.align	16
1744238405Sjkim.Lcbc_exit:
1745238405Sjkim	movq	16(%rsp),%rsi
1746238405Sjkim	movq	(%rsi),%r15
1747238405Sjkim	movq	8(%rsi),%r14
1748238405Sjkim	movq	16(%rsi),%r13
1749238405Sjkim	movq	24(%rsi),%r12
1750238405Sjkim	movq	32(%rsi),%rbp
1751238405Sjkim	movq	40(%rsi),%rbx
1752238405Sjkim	leaq	48(%rsi),%rsp
1753238405Sjkim.Lcbc_popfq:
1754238405Sjkim	popfq
1755238405Sjkim.Lcbc_epilogue:
1756238405Sjkim	.byte	0xf3,0xc3
1757238405Sjkim.size	AES_cbc_encrypt,.-AES_cbc_encrypt
1758238405Sjkim.align	64
1759238405Sjkim.LAES_Te:
1760238405Sjkim.long	0xa56363c6,0xa56363c6
1761238405Sjkim.long	0x847c7cf8,0x847c7cf8
1762238405Sjkim.long	0x997777ee,0x997777ee
1763238405Sjkim.long	0x8d7b7bf6,0x8d7b7bf6
1764238405Sjkim.long	0x0df2f2ff,0x0df2f2ff
1765238405Sjkim.long	0xbd6b6bd6,0xbd6b6bd6
1766238405Sjkim.long	0xb16f6fde,0xb16f6fde
1767238405Sjkim.long	0x54c5c591,0x54c5c591
1768238405Sjkim.long	0x50303060,0x50303060
1769238405Sjkim.long	0x03010102,0x03010102
1770238405Sjkim.long	0xa96767ce,0xa96767ce
1771238405Sjkim.long	0x7d2b2b56,0x7d2b2b56
1772238405Sjkim.long	0x19fefee7,0x19fefee7
1773238405Sjkim.long	0x62d7d7b5,0x62d7d7b5
1774238405Sjkim.long	0xe6abab4d,0xe6abab4d
1775238405Sjkim.long	0x9a7676ec,0x9a7676ec
1776238405Sjkim.long	0x45caca8f,0x45caca8f
1777238405Sjkim.long	0x9d82821f,0x9d82821f
1778238405Sjkim.long	0x40c9c989,0x40c9c989
1779238405Sjkim.long	0x877d7dfa,0x877d7dfa
1780238405Sjkim.long	0x15fafaef,0x15fafaef
1781238405Sjkim.long	0xeb5959b2,0xeb5959b2
1782238405Sjkim.long	0xc947478e,0xc947478e
1783238405Sjkim.long	0x0bf0f0fb,0x0bf0f0fb
1784238405Sjkim.long	0xecadad41,0xecadad41
1785238405Sjkim.long	0x67d4d4b3,0x67d4d4b3
1786238405Sjkim.long	0xfda2a25f,0xfda2a25f
1787238405Sjkim.long	0xeaafaf45,0xeaafaf45
1788238405Sjkim.long	0xbf9c9c23,0xbf9c9c23
1789238405Sjkim.long	0xf7a4a453,0xf7a4a453
1790238405Sjkim.long	0x967272e4,0x967272e4
1791238405Sjkim.long	0x5bc0c09b,0x5bc0c09b
1792238405Sjkim.long	0xc2b7b775,0xc2b7b775
1793238405Sjkim.long	0x1cfdfde1,0x1cfdfde1
1794238405Sjkim.long	0xae93933d,0xae93933d
1795238405Sjkim.long	0x6a26264c,0x6a26264c
1796238405Sjkim.long	0x5a36366c,0x5a36366c
1797238405Sjkim.long	0x413f3f7e,0x413f3f7e
1798238405Sjkim.long	0x02f7f7f5,0x02f7f7f5
1799238405Sjkim.long	0x4fcccc83,0x4fcccc83
1800238405Sjkim.long	0x5c343468,0x5c343468
1801238405Sjkim.long	0xf4a5a551,0xf4a5a551
1802238405Sjkim.long	0x34e5e5d1,0x34e5e5d1
1803238405Sjkim.long	0x08f1f1f9,0x08f1f1f9
1804238405Sjkim.long	0x937171e2,0x937171e2
1805238405Sjkim.long	0x73d8d8ab,0x73d8d8ab
1806238405Sjkim.long	0x53313162,0x53313162
1807238405Sjkim.long	0x3f15152a,0x3f15152a
1808238405Sjkim.long	0x0c040408,0x0c040408
1809238405Sjkim.long	0x52c7c795,0x52c7c795
1810238405Sjkim.long	0x65232346,0x65232346
1811238405Sjkim.long	0x5ec3c39d,0x5ec3c39d
1812238405Sjkim.long	0x28181830,0x28181830
1813238405Sjkim.long	0xa1969637,0xa1969637
1814238405Sjkim.long	0x0f05050a,0x0f05050a
1815238405Sjkim.long	0xb59a9a2f,0xb59a9a2f
1816238405Sjkim.long	0x0907070e,0x0907070e
1817238405Sjkim.long	0x36121224,0x36121224
1818238405Sjkim.long	0x9b80801b,0x9b80801b
1819238405Sjkim.long	0x3de2e2df,0x3de2e2df
1820238405Sjkim.long	0x26ebebcd,0x26ebebcd
1821238405Sjkim.long	0x6927274e,0x6927274e
1822238405Sjkim.long	0xcdb2b27f,0xcdb2b27f
1823238405Sjkim.long	0x9f7575ea,0x9f7575ea
1824238405Sjkim.long	0x1b090912,0x1b090912
1825238405Sjkim.long	0x9e83831d,0x9e83831d
1826238405Sjkim.long	0x742c2c58,0x742c2c58
1827238405Sjkim.long	0x2e1a1a34,0x2e1a1a34
1828238405Sjkim.long	0x2d1b1b36,0x2d1b1b36
1829238405Sjkim.long	0xb26e6edc,0xb26e6edc
1830238405Sjkim.long	0xee5a5ab4,0xee5a5ab4
1831238405Sjkim.long	0xfba0a05b,0xfba0a05b
1832238405Sjkim.long	0xf65252a4,0xf65252a4
1833238405Sjkim.long	0x4d3b3b76,0x4d3b3b76
1834238405Sjkim.long	0x61d6d6b7,0x61d6d6b7
1835238405Sjkim.long	0xceb3b37d,0xceb3b37d
1836238405Sjkim.long	0x7b292952,0x7b292952
1837238405Sjkim.long	0x3ee3e3dd,0x3ee3e3dd
1838238405Sjkim.long	0x712f2f5e,0x712f2f5e
1839238405Sjkim.long	0x97848413,0x97848413
1840238405Sjkim.long	0xf55353a6,0xf55353a6
1841238405Sjkim.long	0x68d1d1b9,0x68d1d1b9
1842238405Sjkim.long	0x00000000,0x00000000
1843238405Sjkim.long	0x2cededc1,0x2cededc1
1844238405Sjkim.long	0x60202040,0x60202040
1845238405Sjkim.long	0x1ffcfce3,0x1ffcfce3
1846238405Sjkim.long	0xc8b1b179,0xc8b1b179
1847238405Sjkim.long	0xed5b5bb6,0xed5b5bb6
1848238405Sjkim.long	0xbe6a6ad4,0xbe6a6ad4
1849238405Sjkim.long	0x46cbcb8d,0x46cbcb8d
1850238405Sjkim.long	0xd9bebe67,0xd9bebe67
1851238405Sjkim.long	0x4b393972,0x4b393972
1852238405Sjkim.long	0xde4a4a94,0xde4a4a94
1853238405Sjkim.long	0xd44c4c98,0xd44c4c98
1854238405Sjkim.long	0xe85858b0,0xe85858b0
1855238405Sjkim.long	0x4acfcf85,0x4acfcf85
1856238405Sjkim.long	0x6bd0d0bb,0x6bd0d0bb
1857238405Sjkim.long	0x2aefefc5,0x2aefefc5
1858238405Sjkim.long	0xe5aaaa4f,0xe5aaaa4f
1859238405Sjkim.long	0x16fbfbed,0x16fbfbed
1860238405Sjkim.long	0xc5434386,0xc5434386
1861238405Sjkim.long	0xd74d4d9a,0xd74d4d9a
1862238405Sjkim.long	0x55333366,0x55333366
1863238405Sjkim.long	0x94858511,0x94858511
1864238405Sjkim.long	0xcf45458a,0xcf45458a
1865238405Sjkim.long	0x10f9f9e9,0x10f9f9e9
1866238405Sjkim.long	0x06020204,0x06020204
1867238405Sjkim.long	0x817f7ffe,0x817f7ffe
1868238405Sjkim.long	0xf05050a0,0xf05050a0
1869238405Sjkim.long	0x443c3c78,0x443c3c78
1870238405Sjkim.long	0xba9f9f25,0xba9f9f25
1871238405Sjkim.long	0xe3a8a84b,0xe3a8a84b
1872238405Sjkim.long	0xf35151a2,0xf35151a2
1873238405Sjkim.long	0xfea3a35d,0xfea3a35d
1874238405Sjkim.long	0xc0404080,0xc0404080
1875238405Sjkim.long	0x8a8f8f05,0x8a8f8f05
1876238405Sjkim.long	0xad92923f,0xad92923f
1877238405Sjkim.long	0xbc9d9d21,0xbc9d9d21
1878238405Sjkim.long	0x48383870,0x48383870
1879238405Sjkim.long	0x04f5f5f1,0x04f5f5f1
1880238405Sjkim.long	0xdfbcbc63,0xdfbcbc63
1881238405Sjkim.long	0xc1b6b677,0xc1b6b677
1882238405Sjkim.long	0x75dadaaf,0x75dadaaf
1883238405Sjkim.long	0x63212142,0x63212142
1884238405Sjkim.long	0x30101020,0x30101020
1885238405Sjkim.long	0x1affffe5,0x1affffe5
1886238405Sjkim.long	0x0ef3f3fd,0x0ef3f3fd
1887238405Sjkim.long	0x6dd2d2bf,0x6dd2d2bf
1888238405Sjkim.long	0x4ccdcd81,0x4ccdcd81
1889238405Sjkim.long	0x140c0c18,0x140c0c18
1890238405Sjkim.long	0x35131326,0x35131326
1891238405Sjkim.long	0x2fececc3,0x2fececc3
1892238405Sjkim.long	0xe15f5fbe,0xe15f5fbe
1893238405Sjkim.long	0xa2979735,0xa2979735
1894238405Sjkim.long	0xcc444488,0xcc444488
1895238405Sjkim.long	0x3917172e,0x3917172e
1896238405Sjkim.long	0x57c4c493,0x57c4c493
1897238405Sjkim.long	0xf2a7a755,0xf2a7a755
1898238405Sjkim.long	0x827e7efc,0x827e7efc
1899238405Sjkim.long	0x473d3d7a,0x473d3d7a
1900238405Sjkim.long	0xac6464c8,0xac6464c8
1901238405Sjkim.long	0xe75d5dba,0xe75d5dba
1902238405Sjkim.long	0x2b191932,0x2b191932
1903238405Sjkim.long	0x957373e6,0x957373e6
1904238405Sjkim.long	0xa06060c0,0xa06060c0
1905238405Sjkim.long	0x98818119,0x98818119
1906238405Sjkim.long	0xd14f4f9e,0xd14f4f9e
1907238405Sjkim.long	0x7fdcdca3,0x7fdcdca3
1908238405Sjkim.long	0x66222244,0x66222244
1909238405Sjkim.long	0x7e2a2a54,0x7e2a2a54
1910238405Sjkim.long	0xab90903b,0xab90903b
1911238405Sjkim.long	0x8388880b,0x8388880b
1912238405Sjkim.long	0xca46468c,0xca46468c
1913238405Sjkim.long	0x29eeeec7,0x29eeeec7
1914238405Sjkim.long	0xd3b8b86b,0xd3b8b86b
1915238405Sjkim.long	0x3c141428,0x3c141428
1916238405Sjkim.long	0x79dedea7,0x79dedea7
1917238405Sjkim.long	0xe25e5ebc,0xe25e5ebc
1918238405Sjkim.long	0x1d0b0b16,0x1d0b0b16
1919238405Sjkim.long	0x76dbdbad,0x76dbdbad
1920238405Sjkim.long	0x3be0e0db,0x3be0e0db
1921238405Sjkim.long	0x56323264,0x56323264
1922238405Sjkim.long	0x4e3a3a74,0x4e3a3a74
1923238405Sjkim.long	0x1e0a0a14,0x1e0a0a14
1924238405Sjkim.long	0xdb494992,0xdb494992
1925238405Sjkim.long	0x0a06060c,0x0a06060c
1926238405Sjkim.long	0x6c242448,0x6c242448
1927238405Sjkim.long	0xe45c5cb8,0xe45c5cb8
1928238405Sjkim.long	0x5dc2c29f,0x5dc2c29f
1929238405Sjkim.long	0x6ed3d3bd,0x6ed3d3bd
1930238405Sjkim.long	0xefacac43,0xefacac43
1931238405Sjkim.long	0xa66262c4,0xa66262c4
1932238405Sjkim.long	0xa8919139,0xa8919139
1933238405Sjkim.long	0xa4959531,0xa4959531
1934238405Sjkim.long	0x37e4e4d3,0x37e4e4d3
1935238405Sjkim.long	0x8b7979f2,0x8b7979f2
1936238405Sjkim.long	0x32e7e7d5,0x32e7e7d5
1937238405Sjkim.long	0x43c8c88b,0x43c8c88b
1938238405Sjkim.long	0x5937376e,0x5937376e
1939238405Sjkim.long	0xb76d6dda,0xb76d6dda
1940238405Sjkim.long	0x8c8d8d01,0x8c8d8d01
1941238405Sjkim.long	0x64d5d5b1,0x64d5d5b1
1942238405Sjkim.long	0xd24e4e9c,0xd24e4e9c
1943238405Sjkim.long	0xe0a9a949,0xe0a9a949
1944238405Sjkim.long	0xb46c6cd8,0xb46c6cd8
1945238405Sjkim.long	0xfa5656ac,0xfa5656ac
1946238405Sjkim.long	0x07f4f4f3,0x07f4f4f3
1947238405Sjkim.long	0x25eaeacf,0x25eaeacf
1948238405Sjkim.long	0xaf6565ca,0xaf6565ca
1949238405Sjkim.long	0x8e7a7af4,0x8e7a7af4
1950238405Sjkim.long	0xe9aeae47,0xe9aeae47
1951238405Sjkim.long	0x18080810,0x18080810
1952238405Sjkim.long	0xd5baba6f,0xd5baba6f
1953238405Sjkim.long	0x887878f0,0x887878f0
1954238405Sjkim.long	0x6f25254a,0x6f25254a
1955238405Sjkim.long	0x722e2e5c,0x722e2e5c
1956238405Sjkim.long	0x241c1c38,0x241c1c38
1957238405Sjkim.long	0xf1a6a657,0xf1a6a657
1958238405Sjkim.long	0xc7b4b473,0xc7b4b473
1959238405Sjkim.long	0x51c6c697,0x51c6c697
1960238405Sjkim.long	0x23e8e8cb,0x23e8e8cb
1961238405Sjkim.long	0x7cdddda1,0x7cdddda1
1962238405Sjkim.long	0x9c7474e8,0x9c7474e8
1963238405Sjkim.long	0x211f1f3e,0x211f1f3e
1964238405Sjkim.long	0xdd4b4b96,0xdd4b4b96
1965238405Sjkim.long	0xdcbdbd61,0xdcbdbd61
1966238405Sjkim.long	0x868b8b0d,0x868b8b0d
1967238405Sjkim.long	0x858a8a0f,0x858a8a0f
1968238405Sjkim.long	0x907070e0,0x907070e0
1969238405Sjkim.long	0x423e3e7c,0x423e3e7c
1970238405Sjkim.long	0xc4b5b571,0xc4b5b571
1971238405Sjkim.long	0xaa6666cc,0xaa6666cc
1972238405Sjkim.long	0xd8484890,0xd8484890
1973238405Sjkim.long	0x05030306,0x05030306
1974238405Sjkim.long	0x01f6f6f7,0x01f6f6f7
1975238405Sjkim.long	0x120e0e1c,0x120e0e1c
1976238405Sjkim.long	0xa36161c2,0xa36161c2
1977238405Sjkim.long	0x5f35356a,0x5f35356a
1978238405Sjkim.long	0xf95757ae,0xf95757ae
1979238405Sjkim.long	0xd0b9b969,0xd0b9b969
1980238405Sjkim.long	0x91868617,0x91868617
1981238405Sjkim.long	0x58c1c199,0x58c1c199
1982238405Sjkim.long	0x271d1d3a,0x271d1d3a
1983238405Sjkim.long	0xb99e9e27,0xb99e9e27
1984238405Sjkim.long	0x38e1e1d9,0x38e1e1d9
1985238405Sjkim.long	0x13f8f8eb,0x13f8f8eb
1986238405Sjkim.long	0xb398982b,0xb398982b
1987238405Sjkim.long	0x33111122,0x33111122
1988238405Sjkim.long	0xbb6969d2,0xbb6969d2
1989238405Sjkim.long	0x70d9d9a9,0x70d9d9a9
1990238405Sjkim.long	0x898e8e07,0x898e8e07
1991238405Sjkim.long	0xa7949433,0xa7949433
1992238405Sjkim.long	0xb69b9b2d,0xb69b9b2d
1993238405Sjkim.long	0x221e1e3c,0x221e1e3c
1994238405Sjkim.long	0x92878715,0x92878715
1995238405Sjkim.long	0x20e9e9c9,0x20e9e9c9
1996238405Sjkim.long	0x49cece87,0x49cece87
1997238405Sjkim.long	0xff5555aa,0xff5555aa
1998238405Sjkim.long	0x78282850,0x78282850
1999238405Sjkim.long	0x7adfdfa5,0x7adfdfa5
2000238405Sjkim.long	0x8f8c8c03,0x8f8c8c03
2001238405Sjkim.long	0xf8a1a159,0xf8a1a159
2002238405Sjkim.long	0x80898909,0x80898909
2003238405Sjkim.long	0x170d0d1a,0x170d0d1a
2004238405Sjkim.long	0xdabfbf65,0xdabfbf65
2005238405Sjkim.long	0x31e6e6d7,0x31e6e6d7
2006238405Sjkim.long	0xc6424284,0xc6424284
2007238405Sjkim.long	0xb86868d0,0xb86868d0
2008238405Sjkim.long	0xc3414182,0xc3414182
2009238405Sjkim.long	0xb0999929,0xb0999929
2010238405Sjkim.long	0x772d2d5a,0x772d2d5a
2011238405Sjkim.long	0x110f0f1e,0x110f0f1e
2012238405Sjkim.long	0xcbb0b07b,0xcbb0b07b
2013238405Sjkim.long	0xfc5454a8,0xfc5454a8
2014238405Sjkim.long	0xd6bbbb6d,0xd6bbbb6d
2015238405Sjkim.long	0x3a16162c,0x3a16162c
2016238405Sjkim.byte	0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
2017238405Sjkim.byte	0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
2018238405Sjkim.byte	0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
2019238405Sjkim.byte	0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
2020238405Sjkim.byte	0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
2021238405Sjkim.byte	0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
2022238405Sjkim.byte	0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
2023238405Sjkim.byte	0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
2024238405Sjkim.byte	0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
2025238405Sjkim.byte	0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
2026238405Sjkim.byte	0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
2027238405Sjkim.byte	0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
2028238405Sjkim.byte	0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
2029238405Sjkim.byte	0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
2030238405Sjkim.byte	0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
2031238405Sjkim.byte	0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
2032238405Sjkim.byte	0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
2033238405Sjkim.byte	0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
2034238405Sjkim.byte	0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
2035238405Sjkim.byte	0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
2036238405Sjkim.byte	0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
2037238405Sjkim.byte	0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
2038238405Sjkim.byte	0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
2039238405Sjkim.byte	0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
2040238405Sjkim.byte	0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2041238405Sjkim.byte	0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2042238405Sjkim.byte	0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2043238405Sjkim.byte	0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2044238405Sjkim.byte	0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2045238405Sjkim.byte	0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2046238405Sjkim.byte	0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2047238405Sjkim.byte	0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2048238405Sjkim.byte	0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
2049238405Sjkim.byte	0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
2050238405Sjkim.byte	0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
2051238405Sjkim.byte	0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
2052238405Sjkim.byte	0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
2053238405Sjkim.byte	0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
2054238405Sjkim.byte	0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
2055238405Sjkim.byte	0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
2056238405Sjkim.byte	0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
2057238405Sjkim.byte	0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
2058238405Sjkim.byte	0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
2059238405Sjkim.byte	0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
2060238405Sjkim.byte	0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
2061238405Sjkim.byte	0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
2062238405Sjkim.byte	0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
2063238405Sjkim.byte	0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
2064238405Sjkim.byte	0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
2065238405Sjkim.byte	0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
2066238405Sjkim.byte	0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
2067238405Sjkim.byte	0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
2068238405Sjkim.byte	0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
2069238405Sjkim.byte	0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
2070238405Sjkim.byte	0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
2071238405Sjkim.byte	0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
2072238405Sjkim.byte	0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2073238405Sjkim.byte	0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2074238405Sjkim.byte	0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2075238405Sjkim.byte	0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2076238405Sjkim.byte	0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2077238405Sjkim.byte	0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2078238405Sjkim.byte	0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2079238405Sjkim.byte	0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2080238405Sjkim.byte	0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
2081238405Sjkim.byte	0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
2082238405Sjkim.byte	0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
2083238405Sjkim.byte	0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
2084238405Sjkim.byte	0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
2085238405Sjkim.byte	0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
2086238405Sjkim.byte	0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
2087238405Sjkim.byte	0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
2088238405Sjkim.byte	0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
2089238405Sjkim.byte	0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
2090238405Sjkim.byte	0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
2091238405Sjkim.byte	0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
2092238405Sjkim.byte	0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
2093238405Sjkim.byte	0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
2094238405Sjkim.byte	0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
2095238405Sjkim.byte	0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
2096238405Sjkim.byte	0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
2097238405Sjkim.byte	0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
2098238405Sjkim.byte	0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
2099238405Sjkim.byte	0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
2100238405Sjkim.byte	0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
2101238405Sjkim.byte	0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
2102238405Sjkim.byte	0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
2103238405Sjkim.byte	0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
2104238405Sjkim.byte	0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2105238405Sjkim.byte	0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2106238405Sjkim.byte	0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2107238405Sjkim.byte	0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2108238405Sjkim.byte	0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2109238405Sjkim.byte	0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2110238405Sjkim.byte	0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2111238405Sjkim.byte	0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2112238405Sjkim.byte	0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
2113238405Sjkim.byte	0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
2114238405Sjkim.byte	0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
2115238405Sjkim.byte	0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
2116238405Sjkim.byte	0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
2117238405Sjkim.byte	0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
2118238405Sjkim.byte	0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
2119238405Sjkim.byte	0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
2120238405Sjkim.byte	0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
2121238405Sjkim.byte	0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
2122238405Sjkim.byte	0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
2123238405Sjkim.byte	0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
2124238405Sjkim.byte	0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
2125238405Sjkim.byte	0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
2126238405Sjkim.byte	0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
2127238405Sjkim.byte	0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
2128238405Sjkim.byte	0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
2129238405Sjkim.byte	0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
2130238405Sjkim.byte	0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
2131238405Sjkim.byte	0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
2132238405Sjkim.byte	0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
2133238405Sjkim.byte	0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
2134238405Sjkim.byte	0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
2135238405Sjkim.byte	0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
2136238405Sjkim.byte	0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2137238405Sjkim.byte	0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2138238405Sjkim.byte	0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2139238405Sjkim.byte	0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2140238405Sjkim.byte	0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2141238405Sjkim.byte	0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2142238405Sjkim.byte	0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2143238405Sjkim.byte	0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2144238405Sjkim.long	0x00000001, 0x00000002, 0x00000004, 0x00000008
2145238405Sjkim.long	0x00000010, 0x00000020, 0x00000040, 0x00000080
2146238405Sjkim.long	0x0000001b, 0x00000036, 0x80808080, 0x80808080
2147238405Sjkim.long	0xfefefefe, 0xfefefefe, 0x1b1b1b1b, 0x1b1b1b1b
2148238405Sjkim.align	64
2149238405Sjkim.LAES_Td:
2150238405Sjkim.long	0x50a7f451,0x50a7f451
2151238405Sjkim.long	0x5365417e,0x5365417e
2152238405Sjkim.long	0xc3a4171a,0xc3a4171a
2153238405Sjkim.long	0x965e273a,0x965e273a
2154238405Sjkim.long	0xcb6bab3b,0xcb6bab3b
2155238405Sjkim.long	0xf1459d1f,0xf1459d1f
2156238405Sjkim.long	0xab58faac,0xab58faac
2157238405Sjkim.long	0x9303e34b,0x9303e34b
2158238405Sjkim.long	0x55fa3020,0x55fa3020
2159238405Sjkim.long	0xf66d76ad,0xf66d76ad
2160238405Sjkim.long	0x9176cc88,0x9176cc88
2161238405Sjkim.long	0x254c02f5,0x254c02f5
2162238405Sjkim.long	0xfcd7e54f,0xfcd7e54f
2163238405Sjkim.long	0xd7cb2ac5,0xd7cb2ac5
2164238405Sjkim.long	0x80443526,0x80443526
2165238405Sjkim.long	0x8fa362b5,0x8fa362b5
2166238405Sjkim.long	0x495ab1de,0x495ab1de
2167238405Sjkim.long	0x671bba25,0x671bba25
2168238405Sjkim.long	0x980eea45,0x980eea45
2169238405Sjkim.long	0xe1c0fe5d,0xe1c0fe5d
2170238405Sjkim.long	0x02752fc3,0x02752fc3
2171238405Sjkim.long	0x12f04c81,0x12f04c81
2172238405Sjkim.long	0xa397468d,0xa397468d
2173238405Sjkim.long	0xc6f9d36b,0xc6f9d36b
2174238405Sjkim.long	0xe75f8f03,0xe75f8f03
2175238405Sjkim.long	0x959c9215,0x959c9215
2176238405Sjkim.long	0xeb7a6dbf,0xeb7a6dbf
2177238405Sjkim.long	0xda595295,0xda595295
2178238405Sjkim.long	0x2d83bed4,0x2d83bed4
2179238405Sjkim.long	0xd3217458,0xd3217458
2180238405Sjkim.long	0x2969e049,0x2969e049
2181238405Sjkim.long	0x44c8c98e,0x44c8c98e
2182238405Sjkim.long	0x6a89c275,0x6a89c275
2183238405Sjkim.long	0x78798ef4,0x78798ef4
2184238405Sjkim.long	0x6b3e5899,0x6b3e5899
2185238405Sjkim.long	0xdd71b927,0xdd71b927
2186238405Sjkim.long	0xb64fe1be,0xb64fe1be
2187238405Sjkim.long	0x17ad88f0,0x17ad88f0
2188238405Sjkim.long	0x66ac20c9,0x66ac20c9
2189238405Sjkim.long	0xb43ace7d,0xb43ace7d
2190238405Sjkim.long	0x184adf63,0x184adf63
2191238405Sjkim.long	0x82311ae5,0x82311ae5
2192238405Sjkim.long	0x60335197,0x60335197
2193238405Sjkim.long	0x457f5362,0x457f5362
2194238405Sjkim.long	0xe07764b1,0xe07764b1
2195238405Sjkim.long	0x84ae6bbb,0x84ae6bbb
2196238405Sjkim.long	0x1ca081fe,0x1ca081fe
2197238405Sjkim.long	0x942b08f9,0x942b08f9
2198238405Sjkim.long	0x58684870,0x58684870
2199238405Sjkim.long	0x19fd458f,0x19fd458f
2200238405Sjkim.long	0x876cde94,0x876cde94
2201238405Sjkim.long	0xb7f87b52,0xb7f87b52
2202238405Sjkim.long	0x23d373ab,0x23d373ab
2203238405Sjkim.long	0xe2024b72,0xe2024b72
2204238405Sjkim.long	0x578f1fe3,0x578f1fe3
2205238405Sjkim.long	0x2aab5566,0x2aab5566
2206238405Sjkim.long	0x0728ebb2,0x0728ebb2
2207238405Sjkim.long	0x03c2b52f,0x03c2b52f
2208238405Sjkim.long	0x9a7bc586,0x9a7bc586
2209238405Sjkim.long	0xa50837d3,0xa50837d3
2210238405Sjkim.long	0xf2872830,0xf2872830
2211238405Sjkim.long	0xb2a5bf23,0xb2a5bf23
2212238405Sjkim.long	0xba6a0302,0xba6a0302
2213238405Sjkim.long	0x5c8216ed,0x5c8216ed
2214238405Sjkim.long	0x2b1ccf8a,0x2b1ccf8a
2215238405Sjkim.long	0x92b479a7,0x92b479a7
2216238405Sjkim.long	0xf0f207f3,0xf0f207f3
2217238405Sjkim.long	0xa1e2694e,0xa1e2694e
2218238405Sjkim.long	0xcdf4da65,0xcdf4da65
2219238405Sjkim.long	0xd5be0506,0xd5be0506
2220238405Sjkim.long	0x1f6234d1,0x1f6234d1
2221238405Sjkim.long	0x8afea6c4,0x8afea6c4
2222238405Sjkim.long	0x9d532e34,0x9d532e34
2223238405Sjkim.long	0xa055f3a2,0xa055f3a2
2224238405Sjkim.long	0x32e18a05,0x32e18a05
2225238405Sjkim.long	0x75ebf6a4,0x75ebf6a4
2226238405Sjkim.long	0x39ec830b,0x39ec830b
2227238405Sjkim.long	0xaaef6040,0xaaef6040
2228238405Sjkim.long	0x069f715e,0x069f715e
2229238405Sjkim.long	0x51106ebd,0x51106ebd
2230238405Sjkim.long	0xf98a213e,0xf98a213e
2231238405Sjkim.long	0x3d06dd96,0x3d06dd96
2232238405Sjkim.long	0xae053edd,0xae053edd
2233238405Sjkim.long	0x46bde64d,0x46bde64d
2234238405Sjkim.long	0xb58d5491,0xb58d5491
2235238405Sjkim.long	0x055dc471,0x055dc471
2236238405Sjkim.long	0x6fd40604,0x6fd40604
2237238405Sjkim.long	0xff155060,0xff155060
2238238405Sjkim.long	0x24fb9819,0x24fb9819
2239238405Sjkim.long	0x97e9bdd6,0x97e9bdd6
2240238405Sjkim.long	0xcc434089,0xcc434089
2241238405Sjkim.long	0x779ed967,0x779ed967
2242238405Sjkim.long	0xbd42e8b0,0xbd42e8b0
2243238405Sjkim.long	0x888b8907,0x888b8907
2244238405Sjkim.long	0x385b19e7,0x385b19e7
2245238405Sjkim.long	0xdbeec879,0xdbeec879
2246238405Sjkim.long	0x470a7ca1,0x470a7ca1
2247238405Sjkim.long	0xe90f427c,0xe90f427c
2248238405Sjkim.long	0xc91e84f8,0xc91e84f8
2249238405Sjkim.long	0x00000000,0x00000000
2250238405Sjkim.long	0x83868009,0x83868009
2251238405Sjkim.long	0x48ed2b32,0x48ed2b32
2252238405Sjkim.long	0xac70111e,0xac70111e
2253238405Sjkim.long	0x4e725a6c,0x4e725a6c
2254238405Sjkim.long	0xfbff0efd,0xfbff0efd
2255238405Sjkim.long	0x5638850f,0x5638850f
2256238405Sjkim.long	0x1ed5ae3d,0x1ed5ae3d
2257238405Sjkim.long	0x27392d36,0x27392d36
2258238405Sjkim.long	0x64d90f0a,0x64d90f0a
2259238405Sjkim.long	0x21a65c68,0x21a65c68
2260238405Sjkim.long	0xd1545b9b,0xd1545b9b
2261238405Sjkim.long	0x3a2e3624,0x3a2e3624
2262238405Sjkim.long	0xb1670a0c,0xb1670a0c
2263238405Sjkim.long	0x0fe75793,0x0fe75793
2264238405Sjkim.long	0xd296eeb4,0xd296eeb4
2265238405Sjkim.long	0x9e919b1b,0x9e919b1b
2266238405Sjkim.long	0x4fc5c080,0x4fc5c080
2267238405Sjkim.long	0xa220dc61,0xa220dc61
2268238405Sjkim.long	0x694b775a,0x694b775a
2269238405Sjkim.long	0x161a121c,0x161a121c
2270238405Sjkim.long	0x0aba93e2,0x0aba93e2
2271238405Sjkim.long	0xe52aa0c0,0xe52aa0c0
2272238405Sjkim.long	0x43e0223c,0x43e0223c
2273238405Sjkim.long	0x1d171b12,0x1d171b12
2274238405Sjkim.long	0x0b0d090e,0x0b0d090e
2275238405Sjkim.long	0xadc78bf2,0xadc78bf2
2276238405Sjkim.long	0xb9a8b62d,0xb9a8b62d
2277238405Sjkim.long	0xc8a91e14,0xc8a91e14
2278238405Sjkim.long	0x8519f157,0x8519f157
2279238405Sjkim.long	0x4c0775af,0x4c0775af
2280238405Sjkim.long	0xbbdd99ee,0xbbdd99ee
2281238405Sjkim.long	0xfd607fa3,0xfd607fa3
2282238405Sjkim.long	0x9f2601f7,0x9f2601f7
2283238405Sjkim.long	0xbcf5725c,0xbcf5725c
2284238405Sjkim.long	0xc53b6644,0xc53b6644
2285238405Sjkim.long	0x347efb5b,0x347efb5b
2286238405Sjkim.long	0x7629438b,0x7629438b
2287238405Sjkim.long	0xdcc623cb,0xdcc623cb
2288238405Sjkim.long	0x68fcedb6,0x68fcedb6
2289238405Sjkim.long	0x63f1e4b8,0x63f1e4b8
2290238405Sjkim.long	0xcadc31d7,0xcadc31d7
2291238405Sjkim.long	0x10856342,0x10856342
2292238405Sjkim.long	0x40229713,0x40229713
2293238405Sjkim.long	0x2011c684,0x2011c684
2294238405Sjkim.long	0x7d244a85,0x7d244a85
2295238405Sjkim.long	0xf83dbbd2,0xf83dbbd2
2296238405Sjkim.long	0x1132f9ae,0x1132f9ae
2297238405Sjkim.long	0x6da129c7,0x6da129c7
2298238405Sjkim.long	0x4b2f9e1d,0x4b2f9e1d
2299238405Sjkim.long	0xf330b2dc,0xf330b2dc
2300238405Sjkim.long	0xec52860d,0xec52860d
2301238405Sjkim.long	0xd0e3c177,0xd0e3c177
2302238405Sjkim.long	0x6c16b32b,0x6c16b32b
2303238405Sjkim.long	0x99b970a9,0x99b970a9
2304238405Sjkim.long	0xfa489411,0xfa489411
2305238405Sjkim.long	0x2264e947,0x2264e947
2306238405Sjkim.long	0xc48cfca8,0xc48cfca8
2307238405Sjkim.long	0x1a3ff0a0,0x1a3ff0a0
2308238405Sjkim.long	0xd82c7d56,0xd82c7d56
2309238405Sjkim.long	0xef903322,0xef903322
2310238405Sjkim.long	0xc74e4987,0xc74e4987
2311238405Sjkim.long	0xc1d138d9,0xc1d138d9
2312238405Sjkim.long	0xfea2ca8c,0xfea2ca8c
2313238405Sjkim.long	0x360bd498,0x360bd498
2314238405Sjkim.long	0xcf81f5a6,0xcf81f5a6
2315238405Sjkim.long	0x28de7aa5,0x28de7aa5
2316238405Sjkim.long	0x268eb7da,0x268eb7da
2317238405Sjkim.long	0xa4bfad3f,0xa4bfad3f
2318238405Sjkim.long	0xe49d3a2c,0xe49d3a2c
2319238405Sjkim.long	0x0d927850,0x0d927850
2320238405Sjkim.long	0x9bcc5f6a,0x9bcc5f6a
2321238405Sjkim.long	0x62467e54,0x62467e54
2322238405Sjkim.long	0xc2138df6,0xc2138df6
2323238405Sjkim.long	0xe8b8d890,0xe8b8d890
2324238405Sjkim.long	0x5ef7392e,0x5ef7392e
2325238405Sjkim.long	0xf5afc382,0xf5afc382
2326238405Sjkim.long	0xbe805d9f,0xbe805d9f
2327238405Sjkim.long	0x7c93d069,0x7c93d069
2328238405Sjkim.long	0xa92dd56f,0xa92dd56f
2329238405Sjkim.long	0xb31225cf,0xb31225cf
2330238405Sjkim.long	0x3b99acc8,0x3b99acc8
2331238405Sjkim.long	0xa77d1810,0xa77d1810
2332238405Sjkim.long	0x6e639ce8,0x6e639ce8
2333238405Sjkim.long	0x7bbb3bdb,0x7bbb3bdb
2334238405Sjkim.long	0x097826cd,0x097826cd
2335238405Sjkim.long	0xf418596e,0xf418596e
2336238405Sjkim.long	0x01b79aec,0x01b79aec
2337238405Sjkim.long	0xa89a4f83,0xa89a4f83
2338238405Sjkim.long	0x656e95e6,0x656e95e6
2339238405Sjkim.long	0x7ee6ffaa,0x7ee6ffaa
2340238405Sjkim.long	0x08cfbc21,0x08cfbc21
2341238405Sjkim.long	0xe6e815ef,0xe6e815ef
2342238405Sjkim.long	0xd99be7ba,0xd99be7ba
2343238405Sjkim.long	0xce366f4a,0xce366f4a
2344238405Sjkim.long	0xd4099fea,0xd4099fea
2345238405Sjkim.long	0xd67cb029,0xd67cb029
2346238405Sjkim.long	0xafb2a431,0xafb2a431
2347238405Sjkim.long	0x31233f2a,0x31233f2a
2348238405Sjkim.long	0x3094a5c6,0x3094a5c6
2349238405Sjkim.long	0xc066a235,0xc066a235
2350238405Sjkim.long	0x37bc4e74,0x37bc4e74
2351238405Sjkim.long	0xa6ca82fc,0xa6ca82fc
2352238405Sjkim.long	0xb0d090e0,0xb0d090e0
2353238405Sjkim.long	0x15d8a733,0x15d8a733
2354238405Sjkim.long	0x4a9804f1,0x4a9804f1
2355238405Sjkim.long	0xf7daec41,0xf7daec41
2356238405Sjkim.long	0x0e50cd7f,0x0e50cd7f
2357238405Sjkim.long	0x2ff69117,0x2ff69117
2358238405Sjkim.long	0x8dd64d76,0x8dd64d76
2359238405Sjkim.long	0x4db0ef43,0x4db0ef43
2360238405Sjkim.long	0x544daacc,0x544daacc
2361238405Sjkim.long	0xdf0496e4,0xdf0496e4
2362238405Sjkim.long	0xe3b5d19e,0xe3b5d19e
2363238405Sjkim.long	0x1b886a4c,0x1b886a4c
2364238405Sjkim.long	0xb81f2cc1,0xb81f2cc1
2365238405Sjkim.long	0x7f516546,0x7f516546
2366238405Sjkim.long	0x04ea5e9d,0x04ea5e9d
2367238405Sjkim.long	0x5d358c01,0x5d358c01
2368238405Sjkim.long	0x737487fa,0x737487fa
2369238405Sjkim.long	0x2e410bfb,0x2e410bfb
2370238405Sjkim.long	0x5a1d67b3,0x5a1d67b3
2371238405Sjkim.long	0x52d2db92,0x52d2db92
2372238405Sjkim.long	0x335610e9,0x335610e9
2373238405Sjkim.long	0x1347d66d,0x1347d66d
2374238405Sjkim.long	0x8c61d79a,0x8c61d79a
2375238405Sjkim.long	0x7a0ca137,0x7a0ca137
2376238405Sjkim.long	0x8e14f859,0x8e14f859
2377238405Sjkim.long	0x893c13eb,0x893c13eb
2378238405Sjkim.long	0xee27a9ce,0xee27a9ce
2379238405Sjkim.long	0x35c961b7,0x35c961b7
2380238405Sjkim.long	0xede51ce1,0xede51ce1
2381238405Sjkim.long	0x3cb1477a,0x3cb1477a
2382238405Sjkim.long	0x59dfd29c,0x59dfd29c
2383238405Sjkim.long	0x3f73f255,0x3f73f255
2384238405Sjkim.long	0x79ce1418,0x79ce1418
2385238405Sjkim.long	0xbf37c773,0xbf37c773
2386238405Sjkim.long	0xeacdf753,0xeacdf753
2387238405Sjkim.long	0x5baafd5f,0x5baafd5f
2388238405Sjkim.long	0x146f3ddf,0x146f3ddf
2389238405Sjkim.long	0x86db4478,0x86db4478
2390238405Sjkim.long	0x81f3afca,0x81f3afca
2391238405Sjkim.long	0x3ec468b9,0x3ec468b9
2392238405Sjkim.long	0x2c342438,0x2c342438
2393238405Sjkim.long	0x5f40a3c2,0x5f40a3c2
2394238405Sjkim.long	0x72c31d16,0x72c31d16
2395238405Sjkim.long	0x0c25e2bc,0x0c25e2bc
2396238405Sjkim.long	0x8b493c28,0x8b493c28
2397238405Sjkim.long	0x41950dff,0x41950dff
2398238405Sjkim.long	0x7101a839,0x7101a839
2399238405Sjkim.long	0xdeb30c08,0xdeb30c08
2400238405Sjkim.long	0x9ce4b4d8,0x9ce4b4d8
2401238405Sjkim.long	0x90c15664,0x90c15664
2402238405Sjkim.long	0x6184cb7b,0x6184cb7b
2403238405Sjkim.long	0x70b632d5,0x70b632d5
2404238405Sjkim.long	0x745c6c48,0x745c6c48
2405238405Sjkim.long	0x4257b8d0,0x4257b8d0
2406238405Sjkim.byte	0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2407238405Sjkim.byte	0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2408238405Sjkim.byte	0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2409238405Sjkim.byte	0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2410238405Sjkim.byte	0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2411238405Sjkim.byte	0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2412238405Sjkim.byte	0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2413238405Sjkim.byte	0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2414238405Sjkim.byte	0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2415238405Sjkim.byte	0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2416238405Sjkim.byte	0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2417238405Sjkim.byte	0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2418238405Sjkim.byte	0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2419238405Sjkim.byte	0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2420238405Sjkim.byte	0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2421238405Sjkim.byte	0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2422238405Sjkim.byte	0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2423238405Sjkim.byte	0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2424238405Sjkim.byte	0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2425238405Sjkim.byte	0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2426238405Sjkim.byte	0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2427238405Sjkim.byte	0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2428238405Sjkim.byte	0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2429238405Sjkim.byte	0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2430238405Sjkim.byte	0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2431238405Sjkim.byte	0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2432238405Sjkim.byte	0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2433238405Sjkim.byte	0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2434238405Sjkim.byte	0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2435238405Sjkim.byte	0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2436238405Sjkim.byte	0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2437238405Sjkim.byte	0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2438238405Sjkim.long	0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
2439238405Sjkim.long	0x1b1b1b1b, 0x1b1b1b1b, 0, 0
2440238405Sjkim.byte	0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2441238405Sjkim.byte	0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2442238405Sjkim.byte	0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2443238405Sjkim.byte	0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2444238405Sjkim.byte	0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2445238405Sjkim.byte	0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2446238405Sjkim.byte	0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2447238405Sjkim.byte	0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2448238405Sjkim.byte	0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2449238405Sjkim.byte	0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2450238405Sjkim.byte	0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2451238405Sjkim.byte	0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2452238405Sjkim.byte	0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2453238405Sjkim.byte	0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2454238405Sjkim.byte	0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2455238405Sjkim.byte	0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2456238405Sjkim.byte	0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2457238405Sjkim.byte	0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2458238405Sjkim.byte	0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2459238405Sjkim.byte	0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2460238405Sjkim.byte	0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2461238405Sjkim.byte	0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2462238405Sjkim.byte	0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2463238405Sjkim.byte	0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2464238405Sjkim.byte	0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2465238405Sjkim.byte	0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2466238405Sjkim.byte	0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2467238405Sjkim.byte	0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2468238405Sjkim.byte	0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2469238405Sjkim.byte	0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2470238405Sjkim.byte	0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2471238405Sjkim.byte	0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2472238405Sjkim.long	0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
2473238405Sjkim.long	0x1b1b1b1b, 0x1b1b1b1b, 0, 0
2474238405Sjkim.byte	0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2475238405Sjkim.byte	0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2476238405Sjkim.byte	0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2477238405Sjkim.byte	0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2478238405Sjkim.byte	0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2479238405Sjkim.byte	0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2480238405Sjkim.byte	0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2481238405Sjkim.byte	0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2482238405Sjkim.byte	0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2483238405Sjkim.byte	0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2484238405Sjkim.byte	0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2485238405Sjkim.byte	0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2486238405Sjkim.byte	0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2487238405Sjkim.byte	0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2488238405Sjkim.byte	0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2489238405Sjkim.byte	0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2490238405Sjkim.byte	0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2491238405Sjkim.byte	0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2492238405Sjkim.byte	0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2493238405Sjkim.byte	0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2494238405Sjkim.byte	0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2495238405Sjkim.byte	0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2496238405Sjkim.byte	0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2497238405Sjkim.byte	0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2498238405Sjkim.byte	0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2499238405Sjkim.byte	0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2500238405Sjkim.byte	0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2501238405Sjkim.byte	0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2502238405Sjkim.byte	0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2503238405Sjkim.byte	0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2504238405Sjkim.byte	0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2505238405Sjkim.byte	0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2506238405Sjkim.long	0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
2507238405Sjkim.long	0x1b1b1b1b, 0x1b1b1b1b, 0, 0
2508238405Sjkim.byte	0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2509238405Sjkim.byte	0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2510238405Sjkim.byte	0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2511238405Sjkim.byte	0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2512238405Sjkim.byte	0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2513238405Sjkim.byte	0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2514238405Sjkim.byte	0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2515238405Sjkim.byte	0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2516238405Sjkim.byte	0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2517238405Sjkim.byte	0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2518238405Sjkim.byte	0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2519238405Sjkim.byte	0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2520238405Sjkim.byte	0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2521238405Sjkim.byte	0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2522238405Sjkim.byte	0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2523238405Sjkim.byte	0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2524238405Sjkim.byte	0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2525238405Sjkim.byte	0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2526238405Sjkim.byte	0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2527238405Sjkim.byte	0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2528238405Sjkim.byte	0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2529238405Sjkim.byte	0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2530238405Sjkim.byte	0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2531238405Sjkim.byte	0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2532238405Sjkim.byte	0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2533238405Sjkim.byte	0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2534238405Sjkim.byte	0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2535238405Sjkim.byte	0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2536238405Sjkim.byte	0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2537238405Sjkim.byte	0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2538238405Sjkim.byte	0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2539238405Sjkim.byte	0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2540238405Sjkim.long	0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
2541238405Sjkim.long	0x1b1b1b1b, 0x1b1b1b1b, 0, 0
2542238405Sjkim.byte	65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
2543238405Sjkim.align	64
2544