xref: /aosp_15_r20/external/boringssl/src/gen/bcm/aesni-x86-win.asm (revision 8fb009dc861624b67b6cdb62ea21f0f22d0c584b)
1*8fb009dcSAndroid Build Coastguard Worker; This file is generated from a similarly-named Perl script in the BoringSSL
2*8fb009dcSAndroid Build Coastguard Worker; source tree. Do not edit by hand.
3*8fb009dcSAndroid Build Coastguard Worker
4*8fb009dcSAndroid Build Coastguard Worker%ifdef BORINGSSL_PREFIX
5*8fb009dcSAndroid Build Coastguard Worker%include "boringssl_prefix_symbols_nasm.inc"
6*8fb009dcSAndroid Build Coastguard Worker%endif
7*8fb009dcSAndroid Build Coastguard Worker%ifidn __OUTPUT_FORMAT__, win32
8*8fb009dcSAndroid Build Coastguard Worker%ifidn __OUTPUT_FORMAT__,obj
9*8fb009dcSAndroid Build Coastguard Workersection	code	use32 class=code align=64
10*8fb009dcSAndroid Build Coastguard Worker%elifidn __OUTPUT_FORMAT__,win32
11*8fb009dcSAndroid Build Coastguard Worker$@feat.00 equ 1
12*8fb009dcSAndroid Build Coastguard Workersection	.text	code align=64
13*8fb009dcSAndroid Build Coastguard Worker%else
14*8fb009dcSAndroid Build Coastguard Workersection	.text	code
15*8fb009dcSAndroid Build Coastguard Worker%endif
16*8fb009dcSAndroid Build Coastguard Worker%ifdef BORINGSSL_DISPATCH_TEST
17*8fb009dcSAndroid Build Coastguard Workerextern	_BORINGSSL_function_hit
18*8fb009dcSAndroid Build Coastguard Worker%endif
19*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_encrypt
20*8fb009dcSAndroid Build Coastguard Workeralign	16
21*8fb009dcSAndroid Build Coastguard Worker_aes_hw_encrypt:
22*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_encrypt_begin:
23*8fb009dcSAndroid Build Coastguard Worker%ifdef BORINGSSL_DISPATCH_TEST
24*8fb009dcSAndroid Build Coastguard Worker	push	ebx
25*8fb009dcSAndroid Build Coastguard Worker	push	edx
26*8fb009dcSAndroid Build Coastguard Worker	call	L$000pic_for_function_hit
27*8fb009dcSAndroid Build Coastguard WorkerL$000pic_for_function_hit:
28*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
29*8fb009dcSAndroid Build Coastguard Worker	lea	ebx,[(_BORINGSSL_function_hit+1-L$000pic_for_function_hit)+ebx]
30*8fb009dcSAndroid Build Coastguard Worker	mov	edx,1
31*8fb009dcSAndroid Build Coastguard Worker	mov	BYTE [ebx],dl
32*8fb009dcSAndroid Build Coastguard Worker	pop	edx
33*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
34*8fb009dcSAndroid Build Coastguard Worker%endif
35*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [4+esp]
36*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [12+esp]
37*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[eax]
38*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
39*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [8+esp]
40*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
41*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
42*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
43*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
44*8fb009dcSAndroid Build Coastguard WorkerL$001enc1_loop_1:
45*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
46*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
47*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
48*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
49*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$001enc1_loop_1
50*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,209
51*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
52*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
53*8fb009dcSAndroid Build Coastguard Worker	movups	[eax],xmm2
54*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
55*8fb009dcSAndroid Build Coastguard Worker	ret
56*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_decrypt
57*8fb009dcSAndroid Build Coastguard Workeralign	16
58*8fb009dcSAndroid Build Coastguard Worker_aes_hw_decrypt:
59*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_decrypt_begin:
60*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [4+esp]
61*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [12+esp]
62*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[eax]
63*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
64*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [8+esp]
65*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
66*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
67*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
68*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
69*8fb009dcSAndroid Build Coastguard WorkerL$002dec1_loop_2:
70*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
71*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
72*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
73*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
74*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$002dec1_loop_2
75*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,209
76*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
77*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
78*8fb009dcSAndroid Build Coastguard Worker	movups	[eax],xmm2
79*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
80*8fb009dcSAndroid Build Coastguard Worker	ret
81*8fb009dcSAndroid Build Coastguard Workeralign	16
82*8fb009dcSAndroid Build Coastguard Worker__aesni_encrypt2:
83*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
84*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
85*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
86*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
87*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
88*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+edx]
89*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
90*8fb009dcSAndroid Build Coastguard Worker	neg	ecx
91*8fb009dcSAndroid Build Coastguard Worker	add	ecx,16
92*8fb009dcSAndroid Build Coastguard WorkerL$003enc2_loop:
93*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
94*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
95*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[ecx*1+edx]
96*8fb009dcSAndroid Build Coastguard Worker	add	ecx,32
97*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,208
98*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,216
99*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx-16]
100*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$003enc2_loop
101*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
102*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
103*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,208
104*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,216
105*8fb009dcSAndroid Build Coastguard Worker	ret
106*8fb009dcSAndroid Build Coastguard Workeralign	16
107*8fb009dcSAndroid Build Coastguard Worker__aesni_decrypt2:
108*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
109*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
110*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
111*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
112*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
113*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+edx]
114*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
115*8fb009dcSAndroid Build Coastguard Worker	neg	ecx
116*8fb009dcSAndroid Build Coastguard Worker	add	ecx,16
117*8fb009dcSAndroid Build Coastguard WorkerL$004dec2_loop:
118*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
119*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,217
120*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[ecx*1+edx]
121*8fb009dcSAndroid Build Coastguard Worker	add	ecx,32
122*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,208
123*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,216
124*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx-16]
125*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$004dec2_loop
126*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
127*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,217
128*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,208
129*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,216
130*8fb009dcSAndroid Build Coastguard Worker	ret
131*8fb009dcSAndroid Build Coastguard Workeralign	16
132*8fb009dcSAndroid Build Coastguard Worker__aesni_encrypt3:
133*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
134*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
135*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
136*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
137*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
138*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
139*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+edx]
140*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
141*8fb009dcSAndroid Build Coastguard Worker	neg	ecx
142*8fb009dcSAndroid Build Coastguard Worker	add	ecx,16
143*8fb009dcSAndroid Build Coastguard WorkerL$005enc3_loop:
144*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
145*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
146*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,225
147*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[ecx*1+edx]
148*8fb009dcSAndroid Build Coastguard Worker	add	ecx,32
149*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,208
150*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,216
151*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,224
152*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx-16]
153*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$005enc3_loop
154*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
155*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
156*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,225
157*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,208
158*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,216
159*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,224
160*8fb009dcSAndroid Build Coastguard Worker	ret
161*8fb009dcSAndroid Build Coastguard Workeralign	16
162*8fb009dcSAndroid Build Coastguard Worker__aesni_decrypt3:
163*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
164*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
165*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
166*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
167*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
168*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
169*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+edx]
170*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
171*8fb009dcSAndroid Build Coastguard Worker	neg	ecx
172*8fb009dcSAndroid Build Coastguard Worker	add	ecx,16
173*8fb009dcSAndroid Build Coastguard WorkerL$006dec3_loop:
174*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
175*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,217
176*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,225
177*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[ecx*1+edx]
178*8fb009dcSAndroid Build Coastguard Worker	add	ecx,32
179*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,208
180*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,216
181*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,224
182*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx-16]
183*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$006dec3_loop
184*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
185*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,217
186*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,225
187*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,208
188*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,216
189*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,224
190*8fb009dcSAndroid Build Coastguard Worker	ret
191*8fb009dcSAndroid Build Coastguard Workeralign	16
192*8fb009dcSAndroid Build Coastguard Worker__aesni_encrypt4:
193*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
194*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
195*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
196*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
197*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
198*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
199*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm0
200*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+edx]
201*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
202*8fb009dcSAndroid Build Coastguard Worker	neg	ecx
203*8fb009dcSAndroid Build Coastguard Workerdb	15,31,64,0
204*8fb009dcSAndroid Build Coastguard Worker	add	ecx,16
205*8fb009dcSAndroid Build Coastguard WorkerL$007enc4_loop:
206*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
207*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
208*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,225
209*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,233
210*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[ecx*1+edx]
211*8fb009dcSAndroid Build Coastguard Worker	add	ecx,32
212*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,208
213*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,216
214*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,224
215*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,232
216*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx-16]
217*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$007enc4_loop
218*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
219*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
220*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,225
221*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,233
222*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,208
223*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,216
224*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,224
225*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,232
226*8fb009dcSAndroid Build Coastguard Worker	ret
227*8fb009dcSAndroid Build Coastguard Workeralign	16
228*8fb009dcSAndroid Build Coastguard Worker__aesni_decrypt4:
229*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
230*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
231*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
232*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
233*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
234*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
235*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm0
236*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+edx]
237*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
238*8fb009dcSAndroid Build Coastguard Worker	neg	ecx
239*8fb009dcSAndroid Build Coastguard Workerdb	15,31,64,0
240*8fb009dcSAndroid Build Coastguard Worker	add	ecx,16
241*8fb009dcSAndroid Build Coastguard WorkerL$008dec4_loop:
242*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
243*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,217
244*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,225
245*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,233
246*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[ecx*1+edx]
247*8fb009dcSAndroid Build Coastguard Worker	add	ecx,32
248*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,208
249*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,216
250*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,224
251*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,232
252*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx-16]
253*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$008dec4_loop
254*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
255*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,217
256*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,225
257*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,233
258*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,208
259*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,216
260*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,224
261*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,232
262*8fb009dcSAndroid Build Coastguard Worker	ret
263*8fb009dcSAndroid Build Coastguard Workeralign	16
264*8fb009dcSAndroid Build Coastguard Worker__aesni_encrypt6:
265*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
266*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
267*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
268*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
269*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
270*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
271*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
272*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm0
273*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
274*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
275*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
276*8fb009dcSAndroid Build Coastguard Worker	neg	ecx
277*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,225
278*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm0
279*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx]
280*8fb009dcSAndroid Build Coastguard Worker	add	ecx,16
281*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$009_aesni_encrypt6_inner
282*8fb009dcSAndroid Build Coastguard Workeralign	16
283*8fb009dcSAndroid Build Coastguard WorkerL$010enc6_loop:
284*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
285*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
286*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,225
287*8fb009dcSAndroid Build Coastguard WorkerL$009_aesni_encrypt6_inner:
288*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,233
289*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,241
290*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,249
291*8fb009dcSAndroid Build Coastguard WorkerL$_aesni_encrypt6_enter:
292*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[ecx*1+edx]
293*8fb009dcSAndroid Build Coastguard Worker	add	ecx,32
294*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,208
295*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,216
296*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,224
297*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,232
298*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,240
299*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,248
300*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx-16]
301*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$010enc6_loop
302*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
303*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
304*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,225
305*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,233
306*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,241
307*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,249
308*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,208
309*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,216
310*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,224
311*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,232
312*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,240
313*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,248
314*8fb009dcSAndroid Build Coastguard Worker	ret
315*8fb009dcSAndroid Build Coastguard Workeralign	16
316*8fb009dcSAndroid Build Coastguard Worker__aesni_decrypt6:
317*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
318*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
319*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
320*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
321*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
322*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
323*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
324*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm0
325*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
326*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,217
327*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
328*8fb009dcSAndroid Build Coastguard Worker	neg	ecx
329*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,225
330*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm0
331*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx]
332*8fb009dcSAndroid Build Coastguard Worker	add	ecx,16
333*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$011_aesni_decrypt6_inner
334*8fb009dcSAndroid Build Coastguard Workeralign	16
335*8fb009dcSAndroid Build Coastguard WorkerL$012dec6_loop:
336*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
337*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,217
338*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,225
339*8fb009dcSAndroid Build Coastguard WorkerL$011_aesni_decrypt6_inner:
340*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,233
341*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,241
342*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,249
343*8fb009dcSAndroid Build Coastguard WorkerL$_aesni_decrypt6_enter:
344*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[ecx*1+edx]
345*8fb009dcSAndroid Build Coastguard Worker	add	ecx,32
346*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,208
347*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,216
348*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,224
349*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,232
350*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,240
351*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,248
352*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx-16]
353*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$012dec6_loop
354*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
355*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,217
356*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,225
357*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,233
358*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,241
359*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,249
360*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,208
361*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,216
362*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,224
363*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,232
364*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,240
365*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,248
366*8fb009dcSAndroid Build Coastguard Worker	ret
367*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_ecb_encrypt
368*8fb009dcSAndroid Build Coastguard Workeralign	16
369*8fb009dcSAndroid Build Coastguard Worker_aes_hw_ecb_encrypt:
370*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_ecb_encrypt_begin:
371*8fb009dcSAndroid Build Coastguard Worker	push	ebp
372*8fb009dcSAndroid Build Coastguard Worker	push	ebx
373*8fb009dcSAndroid Build Coastguard Worker	push	esi
374*8fb009dcSAndroid Build Coastguard Worker	push	edi
375*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [20+esp]
376*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [24+esp]
377*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [28+esp]
378*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [32+esp]
379*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [36+esp]
380*8fb009dcSAndroid Build Coastguard Worker	and	eax,-16
381*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$013ecb_ret
382*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
383*8fb009dcSAndroid Build Coastguard Worker	test	ebx,ebx
384*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$014ecb_decrypt
385*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,edx
386*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,ecx
387*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,96
388*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$015ecb_enc_tail
389*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[esi]
390*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[16+esi]
391*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[32+esi]
392*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[48+esi]
393*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm6,[64+esi]
394*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[80+esi]
395*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[96+esi]
396*8fb009dcSAndroid Build Coastguard Worker	sub	eax,96
397*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$016ecb_enc_loop6_enter
398*8fb009dcSAndroid Build Coastguard Workeralign	16
399*8fb009dcSAndroid Build Coastguard WorkerL$017ecb_enc_loop6:
400*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
401*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[esi]
402*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
403*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[16+esi]
404*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
405*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[32+esi]
406*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
407*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[48+esi]
408*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
409*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm6,[64+esi]
410*8fb009dcSAndroid Build Coastguard Worker	movups	[80+edi],xmm7
411*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[96+edi]
412*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[80+esi]
413*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[96+esi]
414*8fb009dcSAndroid Build Coastguard WorkerL$016ecb_enc_loop6_enter:
415*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt6
416*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
417*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
418*8fb009dcSAndroid Build Coastguard Worker	sub	eax,96
419*8fb009dcSAndroid Build Coastguard Worker	jnc	NEAR L$017ecb_enc_loop6
420*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
421*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
422*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
423*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
424*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
425*8fb009dcSAndroid Build Coastguard Worker	movups	[80+edi],xmm7
426*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[96+edi]
427*8fb009dcSAndroid Build Coastguard Worker	add	eax,96
428*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$013ecb_ret
429*8fb009dcSAndroid Build Coastguard WorkerL$015ecb_enc_tail:
430*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
431*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,32
432*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$018ecb_enc_one
433*8fb009dcSAndroid Build Coastguard Worker	movups	xmm3,[16+esi]
434*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$019ecb_enc_two
435*8fb009dcSAndroid Build Coastguard Worker	movups	xmm4,[32+esi]
436*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,64
437*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$020ecb_enc_three
438*8fb009dcSAndroid Build Coastguard Worker	movups	xmm5,[48+esi]
439*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$021ecb_enc_four
440*8fb009dcSAndroid Build Coastguard Worker	movups	xmm6,[64+esi]
441*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm7,xmm7
442*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt6
443*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
444*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
445*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
446*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
447*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
448*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$013ecb_ret
449*8fb009dcSAndroid Build Coastguard Workeralign	16
450*8fb009dcSAndroid Build Coastguard WorkerL$018ecb_enc_one:
451*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
452*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
453*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
454*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
455*8fb009dcSAndroid Build Coastguard WorkerL$022enc1_loop_3:
456*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
457*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
458*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
459*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
460*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$022enc1_loop_3
461*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,209
462*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
463*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$013ecb_ret
464*8fb009dcSAndroid Build Coastguard Workeralign	16
465*8fb009dcSAndroid Build Coastguard WorkerL$019ecb_enc_two:
466*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt2
467*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
468*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
469*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$013ecb_ret
470*8fb009dcSAndroid Build Coastguard Workeralign	16
471*8fb009dcSAndroid Build Coastguard WorkerL$020ecb_enc_three:
472*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt3
473*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
474*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
475*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
476*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$013ecb_ret
477*8fb009dcSAndroid Build Coastguard Workeralign	16
478*8fb009dcSAndroid Build Coastguard WorkerL$021ecb_enc_four:
479*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt4
480*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
481*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
482*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
483*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
484*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$013ecb_ret
485*8fb009dcSAndroid Build Coastguard Workeralign	16
486*8fb009dcSAndroid Build Coastguard WorkerL$014ecb_decrypt:
487*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,edx
488*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,ecx
489*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,96
490*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$023ecb_dec_tail
491*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[esi]
492*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[16+esi]
493*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[32+esi]
494*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[48+esi]
495*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm6,[64+esi]
496*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[80+esi]
497*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[96+esi]
498*8fb009dcSAndroid Build Coastguard Worker	sub	eax,96
499*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$024ecb_dec_loop6_enter
500*8fb009dcSAndroid Build Coastguard Workeralign	16
501*8fb009dcSAndroid Build Coastguard WorkerL$025ecb_dec_loop6:
502*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
503*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[esi]
504*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
505*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[16+esi]
506*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
507*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[32+esi]
508*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
509*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[48+esi]
510*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
511*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm6,[64+esi]
512*8fb009dcSAndroid Build Coastguard Worker	movups	[80+edi],xmm7
513*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[96+edi]
514*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[80+esi]
515*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[96+esi]
516*8fb009dcSAndroid Build Coastguard WorkerL$024ecb_dec_loop6_enter:
517*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt6
518*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
519*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
520*8fb009dcSAndroid Build Coastguard Worker	sub	eax,96
521*8fb009dcSAndroid Build Coastguard Worker	jnc	NEAR L$025ecb_dec_loop6
522*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
523*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
524*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
525*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
526*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
527*8fb009dcSAndroid Build Coastguard Worker	movups	[80+edi],xmm7
528*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[96+edi]
529*8fb009dcSAndroid Build Coastguard Worker	add	eax,96
530*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$013ecb_ret
531*8fb009dcSAndroid Build Coastguard WorkerL$023ecb_dec_tail:
532*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
533*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,32
534*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$026ecb_dec_one
535*8fb009dcSAndroid Build Coastguard Worker	movups	xmm3,[16+esi]
536*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$027ecb_dec_two
537*8fb009dcSAndroid Build Coastguard Worker	movups	xmm4,[32+esi]
538*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,64
539*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$028ecb_dec_three
540*8fb009dcSAndroid Build Coastguard Worker	movups	xmm5,[48+esi]
541*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$029ecb_dec_four
542*8fb009dcSAndroid Build Coastguard Worker	movups	xmm6,[64+esi]
543*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm7,xmm7
544*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt6
545*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
546*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
547*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
548*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
549*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
550*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$013ecb_ret
551*8fb009dcSAndroid Build Coastguard Workeralign	16
552*8fb009dcSAndroid Build Coastguard WorkerL$026ecb_dec_one:
553*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
554*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
555*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
556*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
557*8fb009dcSAndroid Build Coastguard WorkerL$030dec1_loop_4:
558*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
559*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
560*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
561*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
562*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$030dec1_loop_4
563*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,209
564*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
565*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$013ecb_ret
566*8fb009dcSAndroid Build Coastguard Workeralign	16
567*8fb009dcSAndroid Build Coastguard WorkerL$027ecb_dec_two:
568*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt2
569*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
570*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
571*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$013ecb_ret
572*8fb009dcSAndroid Build Coastguard Workeralign	16
573*8fb009dcSAndroid Build Coastguard WorkerL$028ecb_dec_three:
574*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt3
575*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
576*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
577*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
578*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$013ecb_ret
579*8fb009dcSAndroid Build Coastguard Workeralign	16
580*8fb009dcSAndroid Build Coastguard WorkerL$029ecb_dec_four:
581*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt4
582*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
583*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
584*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
585*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
586*8fb009dcSAndroid Build Coastguard WorkerL$013ecb_ret:
587*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
588*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
589*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
590*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
591*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
592*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm5
593*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm6
594*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm7
595*8fb009dcSAndroid Build Coastguard Worker	pop	edi
596*8fb009dcSAndroid Build Coastguard Worker	pop	esi
597*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
598*8fb009dcSAndroid Build Coastguard Worker	pop	ebp
599*8fb009dcSAndroid Build Coastguard Worker	ret
600*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_ccm64_encrypt_blocks
601*8fb009dcSAndroid Build Coastguard Workeralign	16
602*8fb009dcSAndroid Build Coastguard Worker_aes_hw_ccm64_encrypt_blocks:
603*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_ccm64_encrypt_blocks_begin:
604*8fb009dcSAndroid Build Coastguard Worker	push	ebp
605*8fb009dcSAndroid Build Coastguard Worker	push	ebx
606*8fb009dcSAndroid Build Coastguard Worker	push	esi
607*8fb009dcSAndroid Build Coastguard Worker	push	edi
608*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [20+esp]
609*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [24+esp]
610*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [28+esp]
611*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [32+esp]
612*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [36+esp]
613*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [40+esp]
614*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,esp
615*8fb009dcSAndroid Build Coastguard Worker	sub	esp,60
616*8fb009dcSAndroid Build Coastguard Worker	and	esp,-16
617*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [48+esp],ebp
618*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[ebx]
619*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[ecx]
620*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
621*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [esp],202182159
622*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [4+esp],134810123
623*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [8+esp],67438087
624*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [12+esp],66051
625*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,1
626*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,ebp
627*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [16+esp],ebx
628*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [20+esp],ebp
629*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [24+esp],ebp
630*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [28+esp],ebp
631*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
632*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,16
633*8fb009dcSAndroid Build Coastguard Worker	lea	ebp,[edx]
634*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,[esp]
635*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,xmm7
636*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
637*8fb009dcSAndroid Build Coastguard Worker	sub	ebx,ecx
638*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,253
639*8fb009dcSAndroid Build Coastguard WorkerL$031ccm64_enc_outer:
640*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ebp]
641*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
642*8fb009dcSAndroid Build Coastguard Worker	movups	xmm6,[esi]
643*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
644*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+ebp]
645*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm0,xmm6
646*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm0
647*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+ebp]
648*8fb009dcSAndroid Build Coastguard WorkerL$032ccm64_enc2_loop:
649*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
650*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
651*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[ecx*1+edx]
652*8fb009dcSAndroid Build Coastguard Worker	add	ecx,32
653*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,208
654*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,216
655*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx-16]
656*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$032ccm64_enc2_loop
657*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
658*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
659*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm7,[16+esp]
660*8fb009dcSAndroid Build Coastguard Worker	dec	eax
661*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,208
662*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,216
663*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[16+esi]
664*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,xmm2
665*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,xmm7
666*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm6
667*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,213
668*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[16+edi]
669*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$031ccm64_enc_outer
670*8fb009dcSAndroid Build Coastguard Worker	mov	esp,DWORD [48+esp]
671*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [40+esp]
672*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm3
673*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
674*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
675*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
676*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
677*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
678*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm5
679*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm6
680*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm7
681*8fb009dcSAndroid Build Coastguard Worker	pop	edi
682*8fb009dcSAndroid Build Coastguard Worker	pop	esi
683*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
684*8fb009dcSAndroid Build Coastguard Worker	pop	ebp
685*8fb009dcSAndroid Build Coastguard Worker	ret
686*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_ccm64_decrypt_blocks
687*8fb009dcSAndroid Build Coastguard Workeralign	16
688*8fb009dcSAndroid Build Coastguard Worker_aes_hw_ccm64_decrypt_blocks:
689*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_ccm64_decrypt_blocks_begin:
690*8fb009dcSAndroid Build Coastguard Worker	push	ebp
691*8fb009dcSAndroid Build Coastguard Worker	push	ebx
692*8fb009dcSAndroid Build Coastguard Worker	push	esi
693*8fb009dcSAndroid Build Coastguard Worker	push	edi
694*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [20+esp]
695*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [24+esp]
696*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [28+esp]
697*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [32+esp]
698*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [36+esp]
699*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [40+esp]
700*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,esp
701*8fb009dcSAndroid Build Coastguard Worker	sub	esp,60
702*8fb009dcSAndroid Build Coastguard Worker	and	esp,-16
703*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [48+esp],ebp
704*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[ebx]
705*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[ecx]
706*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
707*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [esp],202182159
708*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [4+esp],134810123
709*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [8+esp],67438087
710*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [12+esp],66051
711*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,1
712*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,ebp
713*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [16+esp],ebx
714*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [20+esp],ebp
715*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [24+esp],ebp
716*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [28+esp],ebp
717*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,[esp]
718*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,xmm7
719*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,edx
720*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,ecx
721*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,253
722*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
723*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
724*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
725*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
726*8fb009dcSAndroid Build Coastguard WorkerL$033enc1_loop_5:
727*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
728*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
729*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
730*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
731*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$033enc1_loop_5
732*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,209
733*8fb009dcSAndroid Build Coastguard Worker	shl	ebx,4
734*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,16
735*8fb009dcSAndroid Build Coastguard Worker	movups	xmm6,[esi]
736*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm7,[16+esp]
737*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[16+esi]
738*8fb009dcSAndroid Build Coastguard Worker	sub	ecx,ebx
739*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ebx*1+ebp]
740*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,ecx
741*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$034ccm64_dec_outer
742*8fb009dcSAndroid Build Coastguard Workeralign	16
743*8fb009dcSAndroid Build Coastguard WorkerL$034ccm64_dec_outer:
744*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,xmm2
745*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,xmm7
746*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm6
747*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[16+edi]
748*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,213
749*8fb009dcSAndroid Build Coastguard Worker	sub	eax,1
750*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$035ccm64_dec_break
751*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ebp]
752*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
753*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+ebp]
754*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,xmm0
755*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
756*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
757*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+ebp]
758*8fb009dcSAndroid Build Coastguard WorkerL$036ccm64_dec2_loop:
759*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
760*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
761*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[ecx*1+edx]
762*8fb009dcSAndroid Build Coastguard Worker	add	ecx,32
763*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,208
764*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,216
765*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ecx*1+edx-16]
766*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$036ccm64_dec2_loop
767*8fb009dcSAndroid Build Coastguard Worker	movups	xmm6,[esi]
768*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm7,[16+esp]
769*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
770*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
771*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,208
772*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,216
773*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[16+esi]
774*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$034ccm64_dec_outer
775*8fb009dcSAndroid Build Coastguard Workeralign	16
776*8fb009dcSAndroid Build Coastguard WorkerL$035ccm64_dec_break:
777*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+ebp]
778*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
779*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
780*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
781*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,xmm0
782*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
783*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
784*8fb009dcSAndroid Build Coastguard WorkerL$037enc1_loop_6:
785*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
786*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
787*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
788*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
789*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$037enc1_loop_6
790*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,217
791*8fb009dcSAndroid Build Coastguard Worker	mov	esp,DWORD [48+esp]
792*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [40+esp]
793*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm3
794*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
795*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
796*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
797*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
798*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
799*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm5
800*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm6
801*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm7
802*8fb009dcSAndroid Build Coastguard Worker	pop	edi
803*8fb009dcSAndroid Build Coastguard Worker	pop	esi
804*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
805*8fb009dcSAndroid Build Coastguard Worker	pop	ebp
806*8fb009dcSAndroid Build Coastguard Worker	ret
807*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_ctr32_encrypt_blocks
808*8fb009dcSAndroid Build Coastguard Workeralign	16
809*8fb009dcSAndroid Build Coastguard Worker_aes_hw_ctr32_encrypt_blocks:
810*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_ctr32_encrypt_blocks_begin:
811*8fb009dcSAndroid Build Coastguard Worker	push	ebp
812*8fb009dcSAndroid Build Coastguard Worker	push	ebx
813*8fb009dcSAndroid Build Coastguard Worker	push	esi
814*8fb009dcSAndroid Build Coastguard Worker	push	edi
815*8fb009dcSAndroid Build Coastguard Worker%ifdef BORINGSSL_DISPATCH_TEST
816*8fb009dcSAndroid Build Coastguard Worker	push	ebx
817*8fb009dcSAndroid Build Coastguard Worker	push	edx
818*8fb009dcSAndroid Build Coastguard Worker	call	L$038pic_for_function_hit
819*8fb009dcSAndroid Build Coastguard WorkerL$038pic_for_function_hit:
820*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
821*8fb009dcSAndroid Build Coastguard Worker	lea	ebx,[(_BORINGSSL_function_hit+0-L$038pic_for_function_hit)+ebx]
822*8fb009dcSAndroid Build Coastguard Worker	mov	edx,1
823*8fb009dcSAndroid Build Coastguard Worker	mov	BYTE [ebx],dl
824*8fb009dcSAndroid Build Coastguard Worker	pop	edx
825*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
826*8fb009dcSAndroid Build Coastguard Worker%endif
827*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [20+esp]
828*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [24+esp]
829*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [28+esp]
830*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [32+esp]
831*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [36+esp]
832*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,esp
833*8fb009dcSAndroid Build Coastguard Worker	sub	esp,88
834*8fb009dcSAndroid Build Coastguard Worker	and	esp,-16
835*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [80+esp],ebp
836*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,1
837*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$039ctr32_one_shortcut
838*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[ebx]
839*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [esp],202182159
840*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [4+esp],134810123
841*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [8+esp],67438087
842*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [12+esp],66051
843*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,6
844*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,ebp
845*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [16+esp],ecx
846*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [20+esp],ecx
847*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [24+esp],ecx
848*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [28+esp],ebp
849*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,22,251,3
850*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,34,253,3
851*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
852*8fb009dcSAndroid Build Coastguard Worker	bswap	ebx
853*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
854*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
855*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[esp]
856*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,34,195,0
857*8fb009dcSAndroid Build Coastguard Worker	lea	ebp,[3+ebx]
858*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,34,205,0
859*8fb009dcSAndroid Build Coastguard Worker	inc	ebx
860*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,34,195,1
861*8fb009dcSAndroid Build Coastguard Worker	inc	ebp
862*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,34,205,1
863*8fb009dcSAndroid Build Coastguard Worker	inc	ebx
864*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,34,195,2
865*8fb009dcSAndroid Build Coastguard Worker	inc	ebp
866*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,34,205,2
867*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm0
868*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,194
869*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm6,[edx]
870*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+esp],xmm1
871*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,202
872*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,192
873*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm3,xmm0,128
874*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,6
875*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$040ctr32_tail
876*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm6
877*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
878*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,16
879*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+esp],xmm7
880*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,edx
881*8fb009dcSAndroid Build Coastguard Worker	sub	ebx,ecx
882*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
883*8fb009dcSAndroid Build Coastguard Worker	sub	eax,6
884*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$041ctr32_loop6
885*8fb009dcSAndroid Build Coastguard Workeralign	16
886*8fb009dcSAndroid Build Coastguard WorkerL$041ctr32_loop6:
887*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm4,xmm0,64
888*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[32+esp]
889*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm5,xmm1,192
890*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm0
891*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm6,xmm1,128
892*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
893*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm7,xmm1,64
894*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+ebp]
895*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
896*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm0
897*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
898*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
899*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm0
900*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
901*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+ebp]
902*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
903*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,225
904*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,233
905*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,241
906*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,249
907*8fb009dcSAndroid Build Coastguard Worker	call	L$_aesni_encrypt6_enter
908*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[esi]
909*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[16+esi]
910*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm1
911*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[32+esi]
912*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm0
913*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
914*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[16+esp]
915*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm1
916*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[64+esp]
917*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
918*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
919*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,xmm0
920*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,[48+esp]
921*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[esp]
922*8fb009dcSAndroid Build Coastguard Worker	movups	xmm3,[48+esi]
923*8fb009dcSAndroid Build Coastguard Worker	movups	xmm4,[64+esi]
924*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,xmm3
925*8fb009dcSAndroid Build Coastguard Worker	movups	xmm3,[80+esi]
926*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[96+esi]
927*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm0
928*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,194
929*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,xmm4
930*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
931*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm7,xmm3
932*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+esp],xmm1
933*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,202
934*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
935*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,192
936*8fb009dcSAndroid Build Coastguard Worker	movups	[80+edi],xmm7
937*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[96+edi]
938*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm3,xmm0,128
939*8fb009dcSAndroid Build Coastguard Worker	sub	eax,6
940*8fb009dcSAndroid Build Coastguard Worker	jnc	NEAR L$041ctr32_loop6
941*8fb009dcSAndroid Build Coastguard Worker	add	eax,6
942*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$042ctr32_ret
943*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[ebp]
944*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
945*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,[32+esp]
946*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+ebp]
947*8fb009dcSAndroid Build Coastguard WorkerL$040ctr32_tail:
948*8fb009dcSAndroid Build Coastguard Worker	por	xmm2,xmm7
949*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,2
950*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$043ctr32_one
951*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm4,xmm0,64
952*8fb009dcSAndroid Build Coastguard Worker	por	xmm3,xmm7
953*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$044ctr32_two
954*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm5,xmm1,192
955*8fb009dcSAndroid Build Coastguard Worker	por	xmm4,xmm7
956*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,4
957*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$045ctr32_three
958*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm6,xmm1,128
959*8fb009dcSAndroid Build Coastguard Worker	por	xmm5,xmm7
960*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$046ctr32_four
961*8fb009dcSAndroid Build Coastguard Worker	por	xmm6,xmm7
962*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt6
963*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[esi]
964*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[16+esi]
965*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm1
966*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[32+esi]
967*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm0
968*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[48+esi]
969*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm1
970*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[64+esi]
971*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,xmm0
972*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
973*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,xmm1
974*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
975*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
976*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
977*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
978*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$042ctr32_ret
979*8fb009dcSAndroid Build Coastguard Workeralign	16
980*8fb009dcSAndroid Build Coastguard WorkerL$039ctr32_one_shortcut:
981*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[ebx]
982*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
983*8fb009dcSAndroid Build Coastguard WorkerL$043ctr32_one:
984*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
985*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
986*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
987*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
988*8fb009dcSAndroid Build Coastguard WorkerL$047enc1_loop_7:
989*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
990*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
991*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
992*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
993*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$047enc1_loop_7
994*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,209
995*8fb009dcSAndroid Build Coastguard Worker	movups	xmm6,[esi]
996*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,xmm2
997*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm6
998*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$042ctr32_ret
999*8fb009dcSAndroid Build Coastguard Workeralign	16
1000*8fb009dcSAndroid Build Coastguard WorkerL$044ctr32_two:
1001*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt2
1002*8fb009dcSAndroid Build Coastguard Worker	movups	xmm5,[esi]
1003*8fb009dcSAndroid Build Coastguard Worker	movups	xmm6,[16+esi]
1004*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1005*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1006*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1007*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1008*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$042ctr32_ret
1009*8fb009dcSAndroid Build Coastguard Workeralign	16
1010*8fb009dcSAndroid Build Coastguard WorkerL$045ctr32_three:
1011*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt3
1012*8fb009dcSAndroid Build Coastguard Worker	movups	xmm5,[esi]
1013*8fb009dcSAndroid Build Coastguard Worker	movups	xmm6,[16+esi]
1014*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1015*8fb009dcSAndroid Build Coastguard Worker	movups	xmm7,[32+esi]
1016*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1017*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1018*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm7
1019*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1020*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1021*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$042ctr32_ret
1022*8fb009dcSAndroid Build Coastguard Workeralign	16
1023*8fb009dcSAndroid Build Coastguard WorkerL$046ctr32_four:
1024*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt4
1025*8fb009dcSAndroid Build Coastguard Worker	movups	xmm6,[esi]
1026*8fb009dcSAndroid Build Coastguard Worker	movups	xmm7,[16+esi]
1027*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[32+esi]
1028*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm6
1029*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[48+esi]
1030*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm7
1031*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1032*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm1
1033*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1034*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,xmm0
1035*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1036*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
1037*8fb009dcSAndroid Build Coastguard WorkerL$042ctr32_ret:
1038*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1039*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
1040*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
1041*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
1042*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
1043*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+esp],xmm0
1044*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm5
1045*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm0
1046*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm6
1047*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+esp],xmm0
1048*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm7
1049*8fb009dcSAndroid Build Coastguard Worker	mov	esp,DWORD [80+esp]
1050*8fb009dcSAndroid Build Coastguard Worker	pop	edi
1051*8fb009dcSAndroid Build Coastguard Worker	pop	esi
1052*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
1053*8fb009dcSAndroid Build Coastguard Worker	pop	ebp
1054*8fb009dcSAndroid Build Coastguard Worker	ret
1055*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_xts_encrypt
1056*8fb009dcSAndroid Build Coastguard Workeralign	16
1057*8fb009dcSAndroid Build Coastguard Worker_aes_hw_xts_encrypt:
1058*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_xts_encrypt_begin:
1059*8fb009dcSAndroid Build Coastguard Worker	push	ebp
1060*8fb009dcSAndroid Build Coastguard Worker	push	ebx
1061*8fb009dcSAndroid Build Coastguard Worker	push	esi
1062*8fb009dcSAndroid Build Coastguard Worker	push	edi
1063*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [36+esp]
1064*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [40+esp]
1065*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
1066*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1067*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
1068*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
1069*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
1070*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
1071*8fb009dcSAndroid Build Coastguard WorkerL$048enc1_loop_8:
1072*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
1073*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
1074*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
1075*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
1076*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$048enc1_loop_8
1077*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,209
1078*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [20+esp]
1079*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [24+esp]
1080*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [28+esp]
1081*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [32+esp]
1082*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,esp
1083*8fb009dcSAndroid Build Coastguard Worker	sub	esp,120
1084*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
1085*8fb009dcSAndroid Build Coastguard Worker	and	esp,-16
1086*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [96+esp],135
1087*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [100+esp],0
1088*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [104+esp],1
1089*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [108+esp],0
1090*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [112+esp],eax
1091*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [116+esp],ebp
1092*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm2
1093*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1094*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[96+esp]
1095*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1096*8fb009dcSAndroid Build Coastguard Worker	and	eax,-16
1097*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,edx
1098*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,ecx
1099*8fb009dcSAndroid Build Coastguard Worker	sub	eax,96
1100*8fb009dcSAndroid Build Coastguard Worker	jc	NEAR L$049xts_enc_short
1101*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
1102*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,16
1103*8fb009dcSAndroid Build Coastguard Worker	sub	ebx,ecx
1104*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
1105*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$050xts_enc_loop6
1106*8fb009dcSAndroid Build Coastguard Workeralign	16
1107*8fb009dcSAndroid Build Coastguard WorkerL$050xts_enc_loop6:
1108*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1109*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1110*8fb009dcSAndroid Build Coastguard Worker	movdqa	[esp],xmm1
1111*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1112*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1113*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1114*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1115*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1116*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1117*8fb009dcSAndroid Build Coastguard Worker	movdqa	[16+esp],xmm1
1118*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1119*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1120*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1121*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1122*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1123*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1124*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+esp],xmm1
1125*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1126*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1127*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1128*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1129*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1130*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1131*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm1
1132*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1133*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1134*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1135*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1136*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm7,xmm0,19
1137*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+esp],xmm1
1138*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1139*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ebp]
1140*8fb009dcSAndroid Build Coastguard Worker	pand	xmm7,xmm3
1141*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1142*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
1143*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
1144*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[16+esi]
1145*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
1146*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[32+esi]
1147*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
1148*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[48+esi]
1149*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
1150*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm6,[64+esi]
1151*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm0
1152*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm1,[80+esi]
1153*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
1154*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[96+esi]
1155*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,[esp]
1156*8fb009dcSAndroid Build Coastguard Worker	movdqa	[80+esp],xmm7
1157*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
1158*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+ebp]
1159*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,[16+esp]
1160*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,[32+esp]
1161*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
1162*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,[48+esp]
1163*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,[64+esp]
1164*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,217
1165*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm0
1166*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+ebp]
1167*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,225
1168*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,233
1169*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,241
1170*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,249
1171*8fb009dcSAndroid Build Coastguard Worker	call	L$_aesni_encrypt6_enter
1172*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[80+esp]
1173*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1174*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,[esp]
1175*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1176*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,[16+esp]
1177*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1178*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,[32+esp]
1179*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1180*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,[48+esp]
1181*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1182*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,[64+esp]
1183*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
1184*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm7,xmm1
1185*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
1186*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1187*8fb009dcSAndroid Build Coastguard Worker	movups	[80+edi],xmm7
1188*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[96+edi]
1189*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[96+esp]
1190*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1191*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1192*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1193*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1194*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1195*8fb009dcSAndroid Build Coastguard Worker	sub	eax,96
1196*8fb009dcSAndroid Build Coastguard Worker	jnc	NEAR L$050xts_enc_loop6
1197*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+ebp]
1198*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
1199*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,ecx
1200*8fb009dcSAndroid Build Coastguard WorkerL$049xts_enc_short:
1201*8fb009dcSAndroid Build Coastguard Worker	add	eax,96
1202*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$051xts_enc_done6x
1203*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,xmm1
1204*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,32
1205*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$052xts_enc_one
1206*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1207*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1208*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1209*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1210*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1211*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1212*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$053xts_enc_two
1213*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1214*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1215*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,xmm1
1216*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1217*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1218*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1219*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1220*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,64
1221*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$054xts_enc_three
1222*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1223*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1224*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,xmm1
1225*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1226*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1227*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1228*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1229*8fb009dcSAndroid Build Coastguard Worker	movdqa	[esp],xmm5
1230*8fb009dcSAndroid Build Coastguard Worker	movdqa	[16+esp],xmm6
1231*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$055xts_enc_four
1232*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+esp],xmm7
1233*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm7,xmm0,19
1234*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm1
1235*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1236*8fb009dcSAndroid Build Coastguard Worker	pand	xmm7,xmm3
1237*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
1238*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[esi]
1239*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[16+esi]
1240*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[32+esi]
1241*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,[esp]
1242*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[48+esi]
1243*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,[16+esp]
1244*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm6,[64+esi]
1245*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,[32+esp]
1246*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[80+esi]
1247*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,[48+esp]
1248*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+esp],xmm7
1249*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm7
1250*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt6
1251*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm1,[64+esp]
1252*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,[esp]
1253*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,[16+esp]
1254*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,[32+esp]
1255*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1256*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,[48+esp]
1257*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1258*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,xmm1
1259*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1260*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
1261*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
1262*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[80+edi]
1263*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$056xts_enc_done
1264*8fb009dcSAndroid Build Coastguard Workeralign	16
1265*8fb009dcSAndroid Build Coastguard WorkerL$052xts_enc_one:
1266*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1267*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[16+esi]
1268*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1269*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
1270*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
1271*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
1272*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
1273*8fb009dcSAndroid Build Coastguard WorkerL$057enc1_loop_9:
1274*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
1275*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
1276*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
1277*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
1278*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$057enc1_loop_9
1279*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,209
1280*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1281*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1282*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[16+edi]
1283*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm5
1284*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$056xts_enc_done
1285*8fb009dcSAndroid Build Coastguard Workeralign	16
1286*8fb009dcSAndroid Build Coastguard WorkerL$053xts_enc_two:
1287*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm6,xmm1
1288*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1289*8fb009dcSAndroid Build Coastguard Worker	movups	xmm3,[16+esi]
1290*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[32+esi]
1291*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1292*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1293*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt2
1294*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1295*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1296*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1297*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1298*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[32+edi]
1299*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm6
1300*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$056xts_enc_done
1301*8fb009dcSAndroid Build Coastguard Workeralign	16
1302*8fb009dcSAndroid Build Coastguard WorkerL$054xts_enc_three:
1303*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm7,xmm1
1304*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1305*8fb009dcSAndroid Build Coastguard Worker	movups	xmm3,[16+esi]
1306*8fb009dcSAndroid Build Coastguard Worker	movups	xmm4,[32+esi]
1307*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[48+esi]
1308*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1309*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1310*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm7
1311*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt3
1312*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1313*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1314*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm7
1315*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1316*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1317*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1318*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[48+edi]
1319*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm7
1320*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$056xts_enc_done
1321*8fb009dcSAndroid Build Coastguard Workeralign	16
1322*8fb009dcSAndroid Build Coastguard WorkerL$055xts_enc_four:
1323*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm6,xmm1
1324*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1325*8fb009dcSAndroid Build Coastguard Worker	movups	xmm3,[16+esi]
1326*8fb009dcSAndroid Build Coastguard Worker	movups	xmm4,[32+esi]
1327*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,[esp]
1328*8fb009dcSAndroid Build Coastguard Worker	movups	xmm5,[48+esi]
1329*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[64+esi]
1330*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,[16+esp]
1331*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm7
1332*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,xmm6
1333*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_encrypt4
1334*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,[esp]
1335*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,[16+esp]
1336*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm7
1337*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1338*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,xmm6
1339*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1340*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1341*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
1342*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[64+edi]
1343*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm6
1344*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$056xts_enc_done
1345*8fb009dcSAndroid Build Coastguard Workeralign	16
1346*8fb009dcSAndroid Build Coastguard WorkerL$051xts_enc_done6x:
1347*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [112+esp]
1348*8fb009dcSAndroid Build Coastguard Worker	and	eax,15
1349*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$058xts_enc_ret
1350*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,xmm1
1351*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [112+esp],eax
1352*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$059xts_enc_steal
1353*8fb009dcSAndroid Build Coastguard Workeralign	16
1354*8fb009dcSAndroid Build Coastguard WorkerL$056xts_enc_done:
1355*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [112+esp]
1356*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1357*8fb009dcSAndroid Build Coastguard Worker	and	eax,15
1358*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$058xts_enc_ret
1359*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1360*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [112+esp],eax
1361*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm5,xmm0,19
1362*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1363*8fb009dcSAndroid Build Coastguard Worker	pand	xmm5,[96+esp]
1364*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm1
1365*8fb009dcSAndroid Build Coastguard WorkerL$059xts_enc_steal:
1366*8fb009dcSAndroid Build Coastguard Worker	movzx	ecx,BYTE [esi]
1367*8fb009dcSAndroid Build Coastguard Worker	movzx	edx,BYTE [edi-16]
1368*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[1+esi]
1369*8fb009dcSAndroid Build Coastguard Worker	mov	BYTE [edi-16],cl
1370*8fb009dcSAndroid Build Coastguard Worker	mov	BYTE [edi],dl
1371*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[1+edi]
1372*8fb009dcSAndroid Build Coastguard Worker	sub	eax,1
1373*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$059xts_enc_steal
1374*8fb009dcSAndroid Build Coastguard Worker	sub	edi,DWORD [112+esp]
1375*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
1376*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
1377*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[edi-16]
1378*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1379*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
1380*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
1381*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
1382*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
1383*8fb009dcSAndroid Build Coastguard WorkerL$060enc1_loop_10:
1384*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
1385*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
1386*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
1387*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
1388*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$060enc1_loop_10
1389*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,209
1390*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1391*8fb009dcSAndroid Build Coastguard Worker	movups	[edi-16],xmm2
1392*8fb009dcSAndroid Build Coastguard WorkerL$058xts_enc_ret:
1393*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1394*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
1395*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
1396*8fb009dcSAndroid Build Coastguard Worker	movdqa	[esp],xmm0
1397*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
1398*8fb009dcSAndroid Build Coastguard Worker	movdqa	[16+esp],xmm0
1399*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
1400*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+esp],xmm0
1401*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm5
1402*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm0
1403*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm6
1404*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+esp],xmm0
1405*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm7
1406*8fb009dcSAndroid Build Coastguard Worker	movdqa	[80+esp],xmm0
1407*8fb009dcSAndroid Build Coastguard Worker	mov	esp,DWORD [116+esp]
1408*8fb009dcSAndroid Build Coastguard Worker	pop	edi
1409*8fb009dcSAndroid Build Coastguard Worker	pop	esi
1410*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
1411*8fb009dcSAndroid Build Coastguard Worker	pop	ebp
1412*8fb009dcSAndroid Build Coastguard Worker	ret
1413*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_xts_decrypt
1414*8fb009dcSAndroid Build Coastguard Workeralign	16
1415*8fb009dcSAndroid Build Coastguard Worker_aes_hw_xts_decrypt:
1416*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_xts_decrypt_begin:
1417*8fb009dcSAndroid Build Coastguard Worker	push	ebp
1418*8fb009dcSAndroid Build Coastguard Worker	push	ebx
1419*8fb009dcSAndroid Build Coastguard Worker	push	esi
1420*8fb009dcSAndroid Build Coastguard Worker	push	edi
1421*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [36+esp]
1422*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [40+esp]
1423*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
1424*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1425*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
1426*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
1427*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
1428*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
1429*8fb009dcSAndroid Build Coastguard WorkerL$061enc1_loop_11:
1430*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
1431*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
1432*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
1433*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
1434*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$061enc1_loop_11
1435*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,209
1436*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [20+esp]
1437*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [24+esp]
1438*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [28+esp]
1439*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [32+esp]
1440*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,esp
1441*8fb009dcSAndroid Build Coastguard Worker	sub	esp,120
1442*8fb009dcSAndroid Build Coastguard Worker	and	esp,-16
1443*8fb009dcSAndroid Build Coastguard Worker	xor	ebx,ebx
1444*8fb009dcSAndroid Build Coastguard Worker	test	eax,15
1445*8fb009dcSAndroid Build Coastguard Worker	setnz	bl
1446*8fb009dcSAndroid Build Coastguard Worker	shl	ebx,4
1447*8fb009dcSAndroid Build Coastguard Worker	sub	eax,ebx
1448*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [96+esp],135
1449*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [100+esp],0
1450*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [104+esp],1
1451*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [108+esp],0
1452*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [112+esp],eax
1453*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [116+esp],ebp
1454*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
1455*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,edx
1456*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,ecx
1457*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm2
1458*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1459*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[96+esp]
1460*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1461*8fb009dcSAndroid Build Coastguard Worker	and	eax,-16
1462*8fb009dcSAndroid Build Coastguard Worker	sub	eax,96
1463*8fb009dcSAndroid Build Coastguard Worker	jc	NEAR L$062xts_dec_short
1464*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
1465*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,16
1466*8fb009dcSAndroid Build Coastguard Worker	sub	ebx,ecx
1467*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+ecx*1+edx]
1468*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$063xts_dec_loop6
1469*8fb009dcSAndroid Build Coastguard Workeralign	16
1470*8fb009dcSAndroid Build Coastguard WorkerL$063xts_dec_loop6:
1471*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1472*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1473*8fb009dcSAndroid Build Coastguard Worker	movdqa	[esp],xmm1
1474*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1475*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1476*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1477*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1478*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1479*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1480*8fb009dcSAndroid Build Coastguard Worker	movdqa	[16+esp],xmm1
1481*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1482*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1483*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1484*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1485*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1486*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1487*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+esp],xmm1
1488*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1489*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1490*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1491*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1492*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1493*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1494*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm1
1495*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1496*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1497*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1498*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1499*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm7,xmm0,19
1500*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+esp],xmm1
1501*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1502*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[ebp]
1503*8fb009dcSAndroid Build Coastguard Worker	pand	xmm7,xmm3
1504*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1505*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
1506*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
1507*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[16+esi]
1508*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
1509*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[32+esi]
1510*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
1511*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[48+esi]
1512*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
1513*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm6,[64+esi]
1514*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm0
1515*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm1,[80+esi]
1516*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
1517*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[96+esi]
1518*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,[esp]
1519*8fb009dcSAndroid Build Coastguard Worker	movdqa	[80+esp],xmm7
1520*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
1521*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+ebp]
1522*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,[16+esp]
1523*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,[32+esp]
1524*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
1525*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,[48+esp]
1526*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,[64+esp]
1527*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,217
1528*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm0
1529*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+ebp]
1530*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,225
1531*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,233
1532*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,241
1533*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,249
1534*8fb009dcSAndroid Build Coastguard Worker	call	L$_aesni_decrypt6_enter
1535*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[80+esp]
1536*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1537*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,[esp]
1538*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1539*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,[16+esp]
1540*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1541*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,[32+esp]
1542*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1543*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,[48+esp]
1544*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1545*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,[64+esp]
1546*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
1547*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm7,xmm1
1548*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
1549*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1550*8fb009dcSAndroid Build Coastguard Worker	movups	[80+edi],xmm7
1551*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[96+edi]
1552*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[96+esp]
1553*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1554*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1555*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1556*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1557*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1558*8fb009dcSAndroid Build Coastguard Worker	sub	eax,96
1559*8fb009dcSAndroid Build Coastguard Worker	jnc	NEAR L$063xts_dec_loop6
1560*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+ebp]
1561*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
1562*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,ecx
1563*8fb009dcSAndroid Build Coastguard WorkerL$062xts_dec_short:
1564*8fb009dcSAndroid Build Coastguard Worker	add	eax,96
1565*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$064xts_dec_done6x
1566*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,xmm1
1567*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,32
1568*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$065xts_dec_one
1569*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1570*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1571*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1572*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1573*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1574*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1575*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$066xts_dec_two
1576*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1577*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1578*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,xmm1
1579*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1580*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1581*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1582*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1583*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,64
1584*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$067xts_dec_three
1585*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1586*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1587*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,xmm1
1588*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1589*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1590*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1591*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1592*8fb009dcSAndroid Build Coastguard Worker	movdqa	[esp],xmm5
1593*8fb009dcSAndroid Build Coastguard Worker	movdqa	[16+esp],xmm6
1594*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$068xts_dec_four
1595*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+esp],xmm7
1596*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm7,xmm0,19
1597*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm1
1598*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1599*8fb009dcSAndroid Build Coastguard Worker	pand	xmm7,xmm3
1600*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
1601*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[esi]
1602*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[16+esi]
1603*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[32+esi]
1604*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,[esp]
1605*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[48+esi]
1606*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,[16+esp]
1607*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm6,[64+esi]
1608*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,[32+esp]
1609*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[80+esi]
1610*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,[48+esp]
1611*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+esp],xmm7
1612*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm7
1613*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt6
1614*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm1,[64+esp]
1615*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,[esp]
1616*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,[16+esp]
1617*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,[32+esp]
1618*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1619*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,[48+esp]
1620*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1621*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,xmm1
1622*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1623*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
1624*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
1625*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[80+edi]
1626*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$069xts_dec_done
1627*8fb009dcSAndroid Build Coastguard Workeralign	16
1628*8fb009dcSAndroid Build Coastguard WorkerL$065xts_dec_one:
1629*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1630*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[16+esi]
1631*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1632*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
1633*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
1634*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
1635*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
1636*8fb009dcSAndroid Build Coastguard WorkerL$070dec1_loop_12:
1637*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
1638*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
1639*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
1640*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
1641*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$070dec1_loop_12
1642*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,209
1643*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1644*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1645*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[16+edi]
1646*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm5
1647*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$069xts_dec_done
1648*8fb009dcSAndroid Build Coastguard Workeralign	16
1649*8fb009dcSAndroid Build Coastguard WorkerL$066xts_dec_two:
1650*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm6,xmm1
1651*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1652*8fb009dcSAndroid Build Coastguard Worker	movups	xmm3,[16+esi]
1653*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[32+esi]
1654*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1655*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1656*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt2
1657*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1658*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1659*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1660*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1661*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[32+edi]
1662*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm6
1663*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$069xts_dec_done
1664*8fb009dcSAndroid Build Coastguard Workeralign	16
1665*8fb009dcSAndroid Build Coastguard WorkerL$067xts_dec_three:
1666*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm7,xmm1
1667*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1668*8fb009dcSAndroid Build Coastguard Worker	movups	xmm3,[16+esi]
1669*8fb009dcSAndroid Build Coastguard Worker	movups	xmm4,[32+esi]
1670*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[48+esi]
1671*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1672*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1673*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm7
1674*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt3
1675*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1676*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1677*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm7
1678*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1679*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1680*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1681*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[48+edi]
1682*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm7
1683*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$069xts_dec_done
1684*8fb009dcSAndroid Build Coastguard Workeralign	16
1685*8fb009dcSAndroid Build Coastguard WorkerL$068xts_dec_four:
1686*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm6,xmm1
1687*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1688*8fb009dcSAndroid Build Coastguard Worker	movups	xmm3,[16+esi]
1689*8fb009dcSAndroid Build Coastguard Worker	movups	xmm4,[32+esi]
1690*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,[esp]
1691*8fb009dcSAndroid Build Coastguard Worker	movups	xmm5,[48+esi]
1692*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[64+esi]
1693*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,[16+esp]
1694*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm7
1695*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,xmm6
1696*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt4
1697*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,[esp]
1698*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,[16+esp]
1699*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm7
1700*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1701*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,xmm6
1702*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1703*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1704*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
1705*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[64+edi]
1706*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm6
1707*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$069xts_dec_done
1708*8fb009dcSAndroid Build Coastguard Workeralign	16
1709*8fb009dcSAndroid Build Coastguard WorkerL$064xts_dec_done6x:
1710*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [112+esp]
1711*8fb009dcSAndroid Build Coastguard Worker	and	eax,15
1712*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$071xts_dec_ret
1713*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [112+esp],eax
1714*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$072xts_dec_only_one_more
1715*8fb009dcSAndroid Build Coastguard Workeralign	16
1716*8fb009dcSAndroid Build Coastguard WorkerL$069xts_dec_done:
1717*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [112+esp]
1718*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1719*8fb009dcSAndroid Build Coastguard Worker	and	eax,15
1720*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$071xts_dec_ret
1721*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1722*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [112+esp],eax
1723*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,19
1724*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1725*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[96+esp]
1726*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1727*8fb009dcSAndroid Build Coastguard Worker	pand	xmm2,xmm3
1728*8fb009dcSAndroid Build Coastguard Worker	pcmpgtd	xmm0,xmm1
1729*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
1730*8fb009dcSAndroid Build Coastguard WorkerL$072xts_dec_only_one_more:
1731*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm5,xmm0,19
1732*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,xmm1
1733*8fb009dcSAndroid Build Coastguard Worker	paddq	xmm1,xmm1
1734*8fb009dcSAndroid Build Coastguard Worker	pand	xmm5,xmm3
1735*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm1
1736*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
1737*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
1738*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1739*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1740*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
1741*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
1742*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
1743*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
1744*8fb009dcSAndroid Build Coastguard WorkerL$073dec1_loop_13:
1745*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
1746*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
1747*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
1748*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
1749*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$073dec1_loop_13
1750*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,209
1751*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm5
1752*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1753*8fb009dcSAndroid Build Coastguard WorkerL$074xts_dec_steal:
1754*8fb009dcSAndroid Build Coastguard Worker	movzx	ecx,BYTE [16+esi]
1755*8fb009dcSAndroid Build Coastguard Worker	movzx	edx,BYTE [edi]
1756*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[1+esi]
1757*8fb009dcSAndroid Build Coastguard Worker	mov	BYTE [edi],cl
1758*8fb009dcSAndroid Build Coastguard Worker	mov	BYTE [16+edi],dl
1759*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[1+edi]
1760*8fb009dcSAndroid Build Coastguard Worker	sub	eax,1
1761*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$074xts_dec_steal
1762*8fb009dcSAndroid Build Coastguard Worker	sub	edi,DWORD [112+esp]
1763*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
1764*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
1765*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[edi]
1766*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm6
1767*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
1768*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
1769*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
1770*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
1771*8fb009dcSAndroid Build Coastguard WorkerL$075dec1_loop_14:
1772*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
1773*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
1774*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
1775*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
1776*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$075dec1_loop_14
1777*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,209
1778*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm6
1779*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1780*8fb009dcSAndroid Build Coastguard WorkerL$071xts_dec_ret:
1781*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
1782*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
1783*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
1784*8fb009dcSAndroid Build Coastguard Worker	movdqa	[esp],xmm0
1785*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
1786*8fb009dcSAndroid Build Coastguard Worker	movdqa	[16+esp],xmm0
1787*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
1788*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+esp],xmm0
1789*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm5
1790*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm0
1791*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm6
1792*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+esp],xmm0
1793*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm7
1794*8fb009dcSAndroid Build Coastguard Worker	movdqa	[80+esp],xmm0
1795*8fb009dcSAndroid Build Coastguard Worker	mov	esp,DWORD [116+esp]
1796*8fb009dcSAndroid Build Coastguard Worker	pop	edi
1797*8fb009dcSAndroid Build Coastguard Worker	pop	esi
1798*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
1799*8fb009dcSAndroid Build Coastguard Worker	pop	ebp
1800*8fb009dcSAndroid Build Coastguard Worker	ret
1801*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_cbc_encrypt
1802*8fb009dcSAndroid Build Coastguard Workeralign	16
1803*8fb009dcSAndroid Build Coastguard Worker_aes_hw_cbc_encrypt:
1804*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_cbc_encrypt_begin:
1805*8fb009dcSAndroid Build Coastguard Worker	push	ebp
1806*8fb009dcSAndroid Build Coastguard Worker	push	ebx
1807*8fb009dcSAndroid Build Coastguard Worker	push	esi
1808*8fb009dcSAndroid Build Coastguard Worker	push	edi
1809*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [20+esp]
1810*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,esp
1811*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [24+esp]
1812*8fb009dcSAndroid Build Coastguard Worker	sub	ebx,24
1813*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [28+esp]
1814*8fb009dcSAndroid Build Coastguard Worker	and	ebx,-16
1815*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [32+esp]
1816*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [36+esp]
1817*8fb009dcSAndroid Build Coastguard Worker	test	eax,eax
1818*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$076cbc_abort
1819*8fb009dcSAndroid Build Coastguard Worker	cmp	DWORD [40+esp],0
1820*8fb009dcSAndroid Build Coastguard Worker	xchg	ebx,esp
1821*8fb009dcSAndroid Build Coastguard Worker	movups	xmm7,[ebp]
1822*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
1823*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,edx
1824*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [16+esp],ebx
1825*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,ecx
1826*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$077cbc_decrypt
1827*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm2,xmm7
1828*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,16
1829*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$078cbc_enc_tail
1830*8fb009dcSAndroid Build Coastguard Worker	sub	eax,16
1831*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$079cbc_enc_loop
1832*8fb009dcSAndroid Build Coastguard Workeralign	16
1833*8fb009dcSAndroid Build Coastguard WorkerL$079cbc_enc_loop:
1834*8fb009dcSAndroid Build Coastguard Worker	movups	xmm7,[esi]
1835*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[16+esi]
1836*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
1837*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
1838*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm7,xmm0
1839*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
1840*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm7
1841*8fb009dcSAndroid Build Coastguard WorkerL$080enc1_loop_15:
1842*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,220,209
1843*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
1844*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
1845*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
1846*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$080enc1_loop_15
1847*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,209
1848*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
1849*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
1850*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1851*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[16+edi]
1852*8fb009dcSAndroid Build Coastguard Worker	sub	eax,16
1853*8fb009dcSAndroid Build Coastguard Worker	jnc	NEAR L$079cbc_enc_loop
1854*8fb009dcSAndroid Build Coastguard Worker	add	eax,16
1855*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$078cbc_enc_tail
1856*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm7,xmm2
1857*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
1858*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$081cbc_ret
1859*8fb009dcSAndroid Build Coastguard WorkerL$078cbc_enc_tail:
1860*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,eax
1861*8fb009dcSAndroid Build Coastguard Workerdd	2767451785
1862*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,16
1863*8fb009dcSAndroid Build Coastguard Worker	sub	ecx,eax
1864*8fb009dcSAndroid Build Coastguard Worker	xor	eax,eax
1865*8fb009dcSAndroid Build Coastguard Workerdd	2868115081
1866*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[edi-16]
1867*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
1868*8fb009dcSAndroid Build Coastguard Worker	mov	esi,edi
1869*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
1870*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$079cbc_enc_loop
1871*8fb009dcSAndroid Build Coastguard Workeralign	16
1872*8fb009dcSAndroid Build Coastguard WorkerL$077cbc_decrypt:
1873*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,80
1874*8fb009dcSAndroid Build Coastguard Worker	jbe	NEAR L$082cbc_dec_tail
1875*8fb009dcSAndroid Build Coastguard Worker	movaps	[esp],xmm7
1876*8fb009dcSAndroid Build Coastguard Worker	sub	eax,80
1877*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$083cbc_dec_loop6_enter
1878*8fb009dcSAndroid Build Coastguard Workeralign	16
1879*8fb009dcSAndroid Build Coastguard WorkerL$084cbc_dec_loop6:
1880*8fb009dcSAndroid Build Coastguard Worker	movaps	[esp],xmm0
1881*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm7
1882*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[16+edi]
1883*8fb009dcSAndroid Build Coastguard WorkerL$083cbc_dec_loop6_enter:
1884*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[esi]
1885*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[16+esi]
1886*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[32+esi]
1887*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[48+esi]
1888*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm6,[64+esi]
1889*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[80+esi]
1890*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt6
1891*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[esi]
1892*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[16+esi]
1893*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,[esp]
1894*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm1
1895*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[32+esi]
1896*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm0
1897*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[48+esi]
1898*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,xmm1
1899*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[64+esi]
1900*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,xmm0
1901*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[80+esi]
1902*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm7,xmm1
1903*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1904*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1905*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[96+esi]
1906*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1907*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,ebx
1908*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
1909*8fb009dcSAndroid Build Coastguard Worker	mov	edx,ebp
1910*8fb009dcSAndroid Build Coastguard Worker	movups	[64+edi],xmm6
1911*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[80+edi]
1912*8fb009dcSAndroid Build Coastguard Worker	sub	eax,96
1913*8fb009dcSAndroid Build Coastguard Worker	ja	NEAR L$084cbc_dec_loop6
1914*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm2,xmm7
1915*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm7,xmm0
1916*8fb009dcSAndroid Build Coastguard Worker	add	eax,80
1917*8fb009dcSAndroid Build Coastguard Worker	jle	NEAR L$085cbc_dec_clear_tail_collected
1918*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1919*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[16+edi]
1920*8fb009dcSAndroid Build Coastguard WorkerL$082cbc_dec_tail:
1921*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1922*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm6,xmm2
1923*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,16
1924*8fb009dcSAndroid Build Coastguard Worker	jbe	NEAR L$086cbc_dec_one
1925*8fb009dcSAndroid Build Coastguard Worker	movups	xmm3,[16+esi]
1926*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm5,xmm3
1927*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,32
1928*8fb009dcSAndroid Build Coastguard Worker	jbe	NEAR L$087cbc_dec_two
1929*8fb009dcSAndroid Build Coastguard Worker	movups	xmm4,[32+esi]
1930*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,48
1931*8fb009dcSAndroid Build Coastguard Worker	jbe	NEAR L$088cbc_dec_three
1932*8fb009dcSAndroid Build Coastguard Worker	movups	xmm5,[48+esi]
1933*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,64
1934*8fb009dcSAndroid Build Coastguard Worker	jbe	NEAR L$089cbc_dec_four
1935*8fb009dcSAndroid Build Coastguard Worker	movups	xmm6,[64+esi]
1936*8fb009dcSAndroid Build Coastguard Worker	movaps	[esp],xmm7
1937*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[esi]
1938*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm7,xmm7
1939*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt6
1940*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[esi]
1941*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[16+esi]
1942*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,[esp]
1943*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm1
1944*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[32+esi]
1945*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm0
1946*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[48+esi]
1947*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,xmm1
1948*8fb009dcSAndroid Build Coastguard Worker	movups	xmm7,[64+esi]
1949*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm6,xmm0
1950*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1951*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
1952*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
1953*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
1954*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
1955*8fb009dcSAndroid Build Coastguard Worker	movups	[48+edi],xmm5
1956*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm5
1957*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[64+edi]
1958*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm2,xmm6
1959*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm6
1960*8fb009dcSAndroid Build Coastguard Worker	sub	eax,80
1961*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$090cbc_dec_tail_collected
1962*8fb009dcSAndroid Build Coastguard Workeralign	16
1963*8fb009dcSAndroid Build Coastguard WorkerL$086cbc_dec_one:
1964*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
1965*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+edx]
1966*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
1967*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm0
1968*8fb009dcSAndroid Build Coastguard WorkerL$091dec1_loop_16:
1969*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,222,209
1970*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
1971*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[edx]
1972*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
1973*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$091dec1_loop_16
1974*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,223,209
1975*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm7
1976*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm7,xmm6
1977*8fb009dcSAndroid Build Coastguard Worker	sub	eax,16
1978*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$090cbc_dec_tail_collected
1979*8fb009dcSAndroid Build Coastguard Workeralign	16
1980*8fb009dcSAndroid Build Coastguard WorkerL$087cbc_dec_two:
1981*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt2
1982*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm7
1983*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1984*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1985*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm2,xmm3
1986*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
1987*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[16+edi]
1988*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm7,xmm5
1989*8fb009dcSAndroid Build Coastguard Worker	sub	eax,32
1990*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$090cbc_dec_tail_collected
1991*8fb009dcSAndroid Build Coastguard Workeralign	16
1992*8fb009dcSAndroid Build Coastguard WorkerL$088cbc_dec_three:
1993*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt3
1994*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm7
1995*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
1996*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm5
1997*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
1998*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm2,xmm4
1999*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
2000*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
2001*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
2002*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[32+edi]
2003*8fb009dcSAndroid Build Coastguard Worker	movups	xmm7,[32+esi]
2004*8fb009dcSAndroid Build Coastguard Worker	sub	eax,48
2005*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$090cbc_dec_tail_collected
2006*8fb009dcSAndroid Build Coastguard Workeralign	16
2007*8fb009dcSAndroid Build Coastguard WorkerL$089cbc_dec_four:
2008*8fb009dcSAndroid Build Coastguard Worker	call	__aesni_decrypt4
2009*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[16+esi]
2010*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[32+esi]
2011*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm7
2012*8fb009dcSAndroid Build Coastguard Worker	movups	xmm7,[48+esi]
2013*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm3,xmm6
2014*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
2015*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm1
2016*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edi],xmm3
2017*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
2018*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm5,xmm0
2019*8fb009dcSAndroid Build Coastguard Worker	movups	[32+edi],xmm4
2020*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
2021*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[48+edi]
2022*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm2,xmm5
2023*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm5
2024*8fb009dcSAndroid Build Coastguard Worker	sub	eax,64
2025*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$090cbc_dec_tail_collected
2026*8fb009dcSAndroid Build Coastguard Workeralign	16
2027*8fb009dcSAndroid Build Coastguard WorkerL$085cbc_dec_clear_tail_collected:
2028*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
2029*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
2030*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm5
2031*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm6
2032*8fb009dcSAndroid Build Coastguard WorkerL$090cbc_dec_tail_collected:
2033*8fb009dcSAndroid Build Coastguard Worker	and	eax,15
2034*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$092cbc_dec_tail_partial
2035*8fb009dcSAndroid Build Coastguard Worker	movups	[edi],xmm2
2036*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
2037*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$081cbc_ret
2038*8fb009dcSAndroid Build Coastguard Workeralign	16
2039*8fb009dcSAndroid Build Coastguard WorkerL$092cbc_dec_tail_partial:
2040*8fb009dcSAndroid Build Coastguard Worker	movaps	[esp],xmm2
2041*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
2042*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,16
2043*8fb009dcSAndroid Build Coastguard Worker	mov	esi,esp
2044*8fb009dcSAndroid Build Coastguard Worker	sub	ecx,eax
2045*8fb009dcSAndroid Build Coastguard Workerdd	2767451785
2046*8fb009dcSAndroid Build Coastguard Worker	movdqa	[esp],xmm2
2047*8fb009dcSAndroid Build Coastguard WorkerL$081cbc_ret:
2048*8fb009dcSAndroid Build Coastguard Worker	mov	esp,DWORD [16+esp]
2049*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [36+esp]
2050*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
2051*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
2052*8fb009dcSAndroid Build Coastguard Worker	movups	[ebp],xmm7
2053*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm7
2054*8fb009dcSAndroid Build Coastguard WorkerL$076cbc_abort:
2055*8fb009dcSAndroid Build Coastguard Worker	pop	edi
2056*8fb009dcSAndroid Build Coastguard Worker	pop	esi
2057*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
2058*8fb009dcSAndroid Build Coastguard Worker	pop	ebp
2059*8fb009dcSAndroid Build Coastguard Worker	ret
2060*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_set_encrypt_key_base
2061*8fb009dcSAndroid Build Coastguard Workeralign	16
2062*8fb009dcSAndroid Build Coastguard Worker_aes_hw_set_encrypt_key_base:
2063*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_set_encrypt_key_base_begin:
2064*8fb009dcSAndroid Build Coastguard Worker%ifdef BORINGSSL_DISPATCH_TEST
2065*8fb009dcSAndroid Build Coastguard Worker	push	ebx
2066*8fb009dcSAndroid Build Coastguard Worker	push	edx
2067*8fb009dcSAndroid Build Coastguard Worker	call	L$093pic_for_function_hit
2068*8fb009dcSAndroid Build Coastguard WorkerL$093pic_for_function_hit:
2069*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
2070*8fb009dcSAndroid Build Coastguard Worker	lea	ebx,[(_BORINGSSL_function_hit+3-L$093pic_for_function_hit)+ebx]
2071*8fb009dcSAndroid Build Coastguard Worker	mov	edx,1
2072*8fb009dcSAndroid Build Coastguard Worker	mov	BYTE [ebx],dl
2073*8fb009dcSAndroid Build Coastguard Worker	pop	edx
2074*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
2075*8fb009dcSAndroid Build Coastguard Worker%endif
2076*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [4+esp]
2077*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [8+esp]
2078*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [12+esp]
2079*8fb009dcSAndroid Build Coastguard Worker	push	ebx
2080*8fb009dcSAndroid Build Coastguard Worker	call	L$094pic
2081*8fb009dcSAndroid Build Coastguard WorkerL$094pic:
2082*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
2083*8fb009dcSAndroid Build Coastguard Worker	lea	ebx,[(L$key_const-L$094pic)+ebx]
2084*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[eax]
2085*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm4
2086*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
2087*8fb009dcSAndroid Build Coastguard Worker	cmp	ecx,256
2088*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$09514rounds
2089*8fb009dcSAndroid Build Coastguard Worker	cmp	ecx,192
2090*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$09612rounds
2091*8fb009dcSAndroid Build Coastguard Worker	cmp	ecx,128
2092*8fb009dcSAndroid Build Coastguard Worker	jne	NEAR L$097bad_keybits
2093*8fb009dcSAndroid Build Coastguard Workeralign	16
2094*8fb009dcSAndroid Build Coastguard WorkerL$09810rounds:
2095*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,9
2096*8fb009dcSAndroid Build Coastguard Worker	movups	[edx-16],xmm0
2097*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,1
2098*8fb009dcSAndroid Build Coastguard Worker	call	L$099key_128_cold
2099*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,2
2100*8fb009dcSAndroid Build Coastguard Worker	call	L$100key_128
2101*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,4
2102*8fb009dcSAndroid Build Coastguard Worker	call	L$100key_128
2103*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,8
2104*8fb009dcSAndroid Build Coastguard Worker	call	L$100key_128
2105*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,16
2106*8fb009dcSAndroid Build Coastguard Worker	call	L$100key_128
2107*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,32
2108*8fb009dcSAndroid Build Coastguard Worker	call	L$100key_128
2109*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,64
2110*8fb009dcSAndroid Build Coastguard Worker	call	L$100key_128
2111*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,128
2112*8fb009dcSAndroid Build Coastguard Worker	call	L$100key_128
2113*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,27
2114*8fb009dcSAndroid Build Coastguard Worker	call	L$100key_128
2115*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,54
2116*8fb009dcSAndroid Build Coastguard Worker	call	L$100key_128
2117*8fb009dcSAndroid Build Coastguard Worker	movups	[edx],xmm0
2118*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [80+edx],ecx
2119*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$101good_key
2120*8fb009dcSAndroid Build Coastguard Workeralign	16
2121*8fb009dcSAndroid Build Coastguard WorkerL$100key_128:
2122*8fb009dcSAndroid Build Coastguard Worker	movups	[edx],xmm0
2123*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
2124*8fb009dcSAndroid Build Coastguard WorkerL$099key_128_cold:
2125*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm4,xmm0,16
2126*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm0,xmm4
2127*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm4,xmm0,140
2128*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm0,xmm4
2129*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm1,xmm1,255
2130*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm0,xmm1
2131*8fb009dcSAndroid Build Coastguard Worker	ret
2132*8fb009dcSAndroid Build Coastguard Workeralign	16
2133*8fb009dcSAndroid Build Coastguard WorkerL$09612rounds:
2134*8fb009dcSAndroid Build Coastguard Worker	movq	xmm2,[16+eax]
2135*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,11
2136*8fb009dcSAndroid Build Coastguard Worker	movups	[edx-16],xmm0
2137*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,1
2138*8fb009dcSAndroid Build Coastguard Worker	call	L$102key_192a_cold
2139*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,2
2140*8fb009dcSAndroid Build Coastguard Worker	call	L$103key_192b
2141*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,4
2142*8fb009dcSAndroid Build Coastguard Worker	call	L$104key_192a
2143*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,8
2144*8fb009dcSAndroid Build Coastguard Worker	call	L$103key_192b
2145*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,16
2146*8fb009dcSAndroid Build Coastguard Worker	call	L$104key_192a
2147*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,32
2148*8fb009dcSAndroid Build Coastguard Worker	call	L$103key_192b
2149*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,64
2150*8fb009dcSAndroid Build Coastguard Worker	call	L$104key_192a
2151*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,128
2152*8fb009dcSAndroid Build Coastguard Worker	call	L$103key_192b
2153*8fb009dcSAndroid Build Coastguard Worker	movups	[edx],xmm0
2154*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [48+edx],ecx
2155*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$101good_key
2156*8fb009dcSAndroid Build Coastguard Workeralign	16
2157*8fb009dcSAndroid Build Coastguard WorkerL$104key_192a:
2158*8fb009dcSAndroid Build Coastguard Worker	movups	[edx],xmm0
2159*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
2160*8fb009dcSAndroid Build Coastguard Workeralign	16
2161*8fb009dcSAndroid Build Coastguard WorkerL$102key_192a_cold:
2162*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm5,xmm2
2163*8fb009dcSAndroid Build Coastguard WorkerL$105key_192b_warm:
2164*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm4,xmm0,16
2165*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,xmm2
2166*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm0,xmm4
2167*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm4,xmm0,140
2168*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm3,4
2169*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm0,xmm4
2170*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm1,xmm1,85
2171*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm3
2172*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm1
2173*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm3,xmm0,255
2174*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm3
2175*8fb009dcSAndroid Build Coastguard Worker	ret
2176*8fb009dcSAndroid Build Coastguard Workeralign	16
2177*8fb009dcSAndroid Build Coastguard WorkerL$103key_192b:
2178*8fb009dcSAndroid Build Coastguard Worker	movaps	xmm3,xmm0
2179*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm5,xmm0,68
2180*8fb009dcSAndroid Build Coastguard Worker	movups	[edx],xmm5
2181*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm3,xmm2,78
2182*8fb009dcSAndroid Build Coastguard Worker	movups	[16+edx],xmm3
2183*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
2184*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$105key_192b_warm
2185*8fb009dcSAndroid Build Coastguard Workeralign	16
2186*8fb009dcSAndroid Build Coastguard WorkerL$09514rounds:
2187*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[16+eax]
2188*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
2189*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,13
2190*8fb009dcSAndroid Build Coastguard Worker	movups	[edx-32],xmm0
2191*8fb009dcSAndroid Build Coastguard Worker	movups	[edx-16],xmm2
2192*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,1
2193*8fb009dcSAndroid Build Coastguard Worker	call	L$106key_256a_cold
2194*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,1
2195*8fb009dcSAndroid Build Coastguard Worker	call	L$107key_256b
2196*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,2
2197*8fb009dcSAndroid Build Coastguard Worker	call	L$108key_256a
2198*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,2
2199*8fb009dcSAndroid Build Coastguard Worker	call	L$107key_256b
2200*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,4
2201*8fb009dcSAndroid Build Coastguard Worker	call	L$108key_256a
2202*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,4
2203*8fb009dcSAndroid Build Coastguard Worker	call	L$107key_256b
2204*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,8
2205*8fb009dcSAndroid Build Coastguard Worker	call	L$108key_256a
2206*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,8
2207*8fb009dcSAndroid Build Coastguard Worker	call	L$107key_256b
2208*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,16
2209*8fb009dcSAndroid Build Coastguard Worker	call	L$108key_256a
2210*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,16
2211*8fb009dcSAndroid Build Coastguard Worker	call	L$107key_256b
2212*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,32
2213*8fb009dcSAndroid Build Coastguard Worker	call	L$108key_256a
2214*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,200,32
2215*8fb009dcSAndroid Build Coastguard Worker	call	L$107key_256b
2216*8fb009dcSAndroid Build Coastguard Workerdb	102,15,58,223,202,64
2217*8fb009dcSAndroid Build Coastguard Worker	call	L$108key_256a
2218*8fb009dcSAndroid Build Coastguard Worker	movups	[edx],xmm0
2219*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [16+edx],ecx
2220*8fb009dcSAndroid Build Coastguard Worker	xor	eax,eax
2221*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$101good_key
2222*8fb009dcSAndroid Build Coastguard Workeralign	16
2223*8fb009dcSAndroid Build Coastguard WorkerL$108key_256a:
2224*8fb009dcSAndroid Build Coastguard Worker	movups	[edx],xmm2
2225*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
2226*8fb009dcSAndroid Build Coastguard WorkerL$106key_256a_cold:
2227*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm4,xmm0,16
2228*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm0,xmm4
2229*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm4,xmm0,140
2230*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm0,xmm4
2231*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm1,xmm1,255
2232*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm0,xmm1
2233*8fb009dcSAndroid Build Coastguard Worker	ret
2234*8fb009dcSAndroid Build Coastguard Workeralign	16
2235*8fb009dcSAndroid Build Coastguard WorkerL$107key_256b:
2236*8fb009dcSAndroid Build Coastguard Worker	movups	[edx],xmm0
2237*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
2238*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm4,xmm2,16
2239*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm4
2240*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm4,xmm2,140
2241*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm4
2242*8fb009dcSAndroid Build Coastguard Worker	shufps	xmm1,xmm1,170
2243*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm2,xmm1
2244*8fb009dcSAndroid Build Coastguard Worker	ret
2245*8fb009dcSAndroid Build Coastguard WorkerL$101good_key:
2246*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
2247*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
2248*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
2249*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
2250*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
2251*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm5
2252*8fb009dcSAndroid Build Coastguard Worker	xor	eax,eax
2253*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
2254*8fb009dcSAndroid Build Coastguard Worker	ret
2255*8fb009dcSAndroid Build Coastguard Workeralign	4
2256*8fb009dcSAndroid Build Coastguard WorkerL$097bad_keybits:
2257*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
2258*8fb009dcSAndroid Build Coastguard Worker	mov	eax,-2
2259*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
2260*8fb009dcSAndroid Build Coastguard Worker	ret
2261*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_set_encrypt_key_alt
2262*8fb009dcSAndroid Build Coastguard Workeralign	16
2263*8fb009dcSAndroid Build Coastguard Worker_aes_hw_set_encrypt_key_alt:
2264*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_set_encrypt_key_alt_begin:
2265*8fb009dcSAndroid Build Coastguard Worker%ifdef BORINGSSL_DISPATCH_TEST
2266*8fb009dcSAndroid Build Coastguard Worker	push	ebx
2267*8fb009dcSAndroid Build Coastguard Worker	push	edx
2268*8fb009dcSAndroid Build Coastguard Worker	call	L$109pic_for_function_hit
2269*8fb009dcSAndroid Build Coastguard WorkerL$109pic_for_function_hit:
2270*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
2271*8fb009dcSAndroid Build Coastguard Worker	lea	ebx,[(_BORINGSSL_function_hit+3-L$109pic_for_function_hit)+ebx]
2272*8fb009dcSAndroid Build Coastguard Worker	mov	edx,1
2273*8fb009dcSAndroid Build Coastguard Worker	mov	BYTE [ebx],dl
2274*8fb009dcSAndroid Build Coastguard Worker	pop	edx
2275*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
2276*8fb009dcSAndroid Build Coastguard Worker%endif
2277*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [4+esp]
2278*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [8+esp]
2279*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [12+esp]
2280*8fb009dcSAndroid Build Coastguard Worker	push	ebx
2281*8fb009dcSAndroid Build Coastguard Worker	call	L$110pic
2282*8fb009dcSAndroid Build Coastguard WorkerL$110pic:
2283*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
2284*8fb009dcSAndroid Build Coastguard Worker	lea	ebx,[(L$key_const-L$110pic)+ebx]
2285*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[eax]
2286*8fb009dcSAndroid Build Coastguard Worker	xorps	xmm4,xmm4
2287*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
2288*8fb009dcSAndroid Build Coastguard Worker	cmp	ecx,256
2289*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$11114rounds_alt
2290*8fb009dcSAndroid Build Coastguard Worker	cmp	ecx,192
2291*8fb009dcSAndroid Build Coastguard Worker	je	NEAR L$11212rounds_alt
2292*8fb009dcSAndroid Build Coastguard Worker	cmp	ecx,128
2293*8fb009dcSAndroid Build Coastguard Worker	jne	NEAR L$113bad_keybits
2294*8fb009dcSAndroid Build Coastguard Workeralign	16
2295*8fb009dcSAndroid Build Coastguard WorkerL$11410rounds_alt:
2296*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,[ebx]
2297*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,8
2298*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,[32+ebx]
2299*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,xmm0
2300*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edx-16],xmm0
2301*8fb009dcSAndroid Build Coastguard WorkerL$115loop_key128:
2302*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,197
2303*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,196
2304*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm4,1
2305*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
2306*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,xmm2
2307*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm2,4
2308*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm2
2309*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm2,4
2310*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm2
2311*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm2,4
2312*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm3
2313*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm2
2314*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edx-16],xmm0
2315*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,xmm0
2316*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
2317*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$115loop_key128
2318*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,[48+ebx]
2319*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,197
2320*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,196
2321*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm4,1
2322*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,xmm2
2323*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm2,4
2324*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm2
2325*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm2,4
2326*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm2
2327*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm2,4
2328*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm3
2329*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm2
2330*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edx],xmm0
2331*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,xmm0
2332*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,197
2333*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,196
2334*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,xmm2
2335*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm2,4
2336*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm2
2337*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm2,4
2338*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm2
2339*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm2,4
2340*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm3
2341*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm2
2342*8fb009dcSAndroid Build Coastguard Worker	movdqu	[16+edx],xmm0
2343*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,9
2344*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [96+edx],ecx
2345*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$116good_key
2346*8fb009dcSAndroid Build Coastguard Workeralign	16
2347*8fb009dcSAndroid Build Coastguard WorkerL$11212rounds_alt:
2348*8fb009dcSAndroid Build Coastguard Worker	movq	xmm2,[16+eax]
2349*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,[16+ebx]
2350*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,[32+ebx]
2351*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,8
2352*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edx-16],xmm0
2353*8fb009dcSAndroid Build Coastguard WorkerL$117loop_key192:
2354*8fb009dcSAndroid Build Coastguard Worker	movq	[edx],xmm2
2355*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm2
2356*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,213
2357*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,212
2358*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm4,1
2359*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[24+edx]
2360*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,xmm0
2361*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm0,4
2362*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
2363*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm0,4
2364*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
2365*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm0,4
2366*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm3
2367*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm3,xmm0,255
2368*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm1
2369*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm1,4
2370*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm1
2371*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm2
2372*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm3
2373*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edx-16],xmm0
2374*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
2375*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$117loop_key192
2376*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,11
2377*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [32+edx],ecx
2378*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$116good_key
2379*8fb009dcSAndroid Build Coastguard Workeralign	16
2380*8fb009dcSAndroid Build Coastguard WorkerL$11114rounds_alt:
2381*8fb009dcSAndroid Build Coastguard Worker	movups	xmm2,[16+eax]
2382*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
2383*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,[ebx]
2384*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,[32+ebx]
2385*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,7
2386*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edx-32],xmm0
2387*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm2
2388*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edx-16],xmm2
2389*8fb009dcSAndroid Build Coastguard WorkerL$118loop_key256:
2390*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,213
2391*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,212
2392*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,xmm0
2393*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm0,4
2394*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
2395*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm0,4
2396*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
2397*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm0,4
2398*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm3
2399*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm4,1
2400*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm2
2401*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edx],xmm0
2402*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
2403*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$119done_key256
2404*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm0,255
2405*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
2406*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,221,211
2407*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,xmm1
2408*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm1,4
2409*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm1
2410*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm1,4
2411*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm1
2412*8fb009dcSAndroid Build Coastguard Worker	pslldq	xmm1,4
2413*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm3
2414*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm1
2415*8fb009dcSAndroid Build Coastguard Worker	movdqu	[16+edx],xmm2
2416*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[32+edx]
2417*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm2
2418*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$118loop_key256
2419*8fb009dcSAndroid Build Coastguard WorkerL$119done_key256:
2420*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,13
2421*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [16+edx],ecx
2422*8fb009dcSAndroid Build Coastguard WorkerL$116good_key:
2423*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
2424*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
2425*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm2
2426*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm3
2427*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm4
2428*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm5
2429*8fb009dcSAndroid Build Coastguard Worker	xor	eax,eax
2430*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
2431*8fb009dcSAndroid Build Coastguard Worker	ret
2432*8fb009dcSAndroid Build Coastguard Workeralign	4
2433*8fb009dcSAndroid Build Coastguard WorkerL$113bad_keybits:
2434*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
2435*8fb009dcSAndroid Build Coastguard Worker	mov	eax,-2
2436*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
2437*8fb009dcSAndroid Build Coastguard Worker	ret
2438*8fb009dcSAndroid Build Coastguard Workerglobal	_aes_hw_encrypt_key_to_decrypt_key
2439*8fb009dcSAndroid Build Coastguard Workeralign	16
2440*8fb009dcSAndroid Build Coastguard Worker_aes_hw_encrypt_key_to_decrypt_key:
2441*8fb009dcSAndroid Build Coastguard WorkerL$_aes_hw_encrypt_key_to_decrypt_key_begin:
2442*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [4+esp]
2443*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [240+edx]
2444*8fb009dcSAndroid Build Coastguard Worker	shl	ecx,4
2445*8fb009dcSAndroid Build Coastguard Worker	lea	eax,[16+ecx*1+edx]
2446*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
2447*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[eax]
2448*8fb009dcSAndroid Build Coastguard Worker	movups	[eax],xmm0
2449*8fb009dcSAndroid Build Coastguard Worker	movups	[edx],xmm1
2450*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
2451*8fb009dcSAndroid Build Coastguard Worker	lea	eax,[eax-16]
2452*8fb009dcSAndroid Build Coastguard WorkerL$120dec_key_inverse:
2453*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
2454*8fb009dcSAndroid Build Coastguard Worker	movups	xmm1,[eax]
2455*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,219,192
2456*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,219,201
2457*8fb009dcSAndroid Build Coastguard Worker	lea	edx,[16+edx]
2458*8fb009dcSAndroid Build Coastguard Worker	lea	eax,[eax-16]
2459*8fb009dcSAndroid Build Coastguard Worker	movups	[16+eax],xmm0
2460*8fb009dcSAndroid Build Coastguard Worker	movups	[edx-16],xmm1
2461*8fb009dcSAndroid Build Coastguard Worker	cmp	eax,edx
2462*8fb009dcSAndroid Build Coastguard Worker	ja	NEAR L$120dec_key_inverse
2463*8fb009dcSAndroid Build Coastguard Worker	movups	xmm0,[edx]
2464*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,219,192
2465*8fb009dcSAndroid Build Coastguard Worker	movups	[edx],xmm0
2466*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm0
2467*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm1
2468*8fb009dcSAndroid Build Coastguard Worker	ret
2469*8fb009dcSAndroid Build Coastguard Workeralign	64
2470*8fb009dcSAndroid Build Coastguard WorkerL$key_const:
2471*8fb009dcSAndroid Build Coastguard Workerdd	202313229,202313229,202313229,202313229
2472*8fb009dcSAndroid Build Coastguard Workerdd	67569157,67569157,67569157,67569157
2473*8fb009dcSAndroid Build Coastguard Workerdd	1,1,1,1
2474*8fb009dcSAndroid Build Coastguard Workerdd	27,27,27,27
2475*8fb009dcSAndroid Build Coastguard Workerdb	65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
2476*8fb009dcSAndroid Build Coastguard Workerdb	83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
2477*8fb009dcSAndroid Build Coastguard Workerdb	32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2478*8fb009dcSAndroid Build Coastguard Workerdb	115,108,46,111,114,103,62,0
2479*8fb009dcSAndroid Build Coastguard Worker%else
2480*8fb009dcSAndroid Build Coastguard Worker; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738
2481*8fb009dcSAndroid Build Coastguard Workerret
2482*8fb009dcSAndroid Build Coastguard Worker%endif
2483