xref: /aosp_15_r20/external/boringssl/src/gen/crypto/chacha-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 Workerglobal	_ChaCha20_ctr32_nohw
17*8fb009dcSAndroid Build Coastguard Workeralign	16
18*8fb009dcSAndroid Build Coastguard Worker_ChaCha20_ctr32_nohw:
19*8fb009dcSAndroid Build Coastguard WorkerL$_ChaCha20_ctr32_nohw_begin:
20*8fb009dcSAndroid Build Coastguard Worker	push	ebp
21*8fb009dcSAndroid Build Coastguard Worker	push	ebx
22*8fb009dcSAndroid Build Coastguard Worker	push	esi
23*8fb009dcSAndroid Build Coastguard Worker	push	edi
24*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [32+esp]
25*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [36+esp]
26*8fb009dcSAndroid Build Coastguard Worker	sub	esp,132
27*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [esi]
28*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [4+esi]
29*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [8+esi]
30*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [12+esi]
31*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [80+esp],eax
32*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [84+esp],ebx
33*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [88+esp],ecx
34*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [92+esp],edx
35*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [16+esi]
36*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [20+esi]
37*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [24+esi]
38*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [28+esi]
39*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [96+esp],eax
40*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [100+esp],ebx
41*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [104+esp],ecx
42*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [108+esp],edx
43*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [edi]
44*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [4+edi]
45*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [8+edi]
46*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [12+edi]
47*8fb009dcSAndroid Build Coastguard Worker	sub	eax,1
48*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [112+esp],eax
49*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [116+esp],ebx
50*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [120+esp],ecx
51*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [124+esp],edx
52*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$000entry
53*8fb009dcSAndroid Build Coastguard Workeralign	16
54*8fb009dcSAndroid Build Coastguard WorkerL$001outer_loop:
55*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [156+esp],ebx
56*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [152+esp],eax
57*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [160+esp],ecx
58*8fb009dcSAndroid Build Coastguard WorkerL$000entry:
59*8fb009dcSAndroid Build Coastguard Worker	mov	eax,1634760805
60*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [4+esp],857760878
61*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [8+esp],2036477234
62*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [12+esp],1797285236
63*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [84+esp]
64*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [88+esp]
65*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [104+esp]
66*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [108+esp]
67*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [116+esp]
68*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [120+esp]
69*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [20+esp],ebx
70*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [24+esp],ebp
71*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [40+esp],ecx
72*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [44+esp],esi
73*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [52+esp],edx
74*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [56+esp],edi
75*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [92+esp]
76*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [124+esp]
77*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [112+esp]
78*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [80+esp]
79*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [96+esp]
80*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [100+esp]
81*8fb009dcSAndroid Build Coastguard Worker	add	edx,1
82*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [28+esp],ebx
83*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [60+esp],edi
84*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [112+esp],edx
85*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,10
86*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$002loop
87*8fb009dcSAndroid Build Coastguard Workeralign	16
88*8fb009dcSAndroid Build Coastguard WorkerL$002loop:
89*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebp
90*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [128+esp],ebx
91*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,ebp
92*8fb009dcSAndroid Build Coastguard Worker	xor	edx,eax
93*8fb009dcSAndroid Build Coastguard Worker	rol	edx,16
94*8fb009dcSAndroid Build Coastguard Worker	add	ecx,edx
95*8fb009dcSAndroid Build Coastguard Worker	xor	ebx,ecx
96*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [52+esp]
97*8fb009dcSAndroid Build Coastguard Worker	rol	ebx,12
98*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [20+esp]
99*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebx
100*8fb009dcSAndroid Build Coastguard Worker	xor	edx,eax
101*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [esp],eax
102*8fb009dcSAndroid Build Coastguard Worker	rol	edx,8
103*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [4+esp]
104*8fb009dcSAndroid Build Coastguard Worker	add	ecx,edx
105*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [48+esp],edx
106*8fb009dcSAndroid Build Coastguard Worker	xor	ebx,ecx
107*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebp
108*8fb009dcSAndroid Build Coastguard Worker	rol	ebx,7
109*8fb009dcSAndroid Build Coastguard Worker	xor	edi,eax
110*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [32+esp],ecx
111*8fb009dcSAndroid Build Coastguard Worker	rol	edi,16
112*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [16+esp],ebx
113*8fb009dcSAndroid Build Coastguard Worker	add	esi,edi
114*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [40+esp]
115*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,esi
116*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [56+esp]
117*8fb009dcSAndroid Build Coastguard Worker	rol	ebp,12
118*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [24+esp]
119*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebp
120*8fb009dcSAndroid Build Coastguard Worker	xor	edi,eax
121*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [4+esp],eax
122*8fb009dcSAndroid Build Coastguard Worker	rol	edi,8
123*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [8+esp]
124*8fb009dcSAndroid Build Coastguard Worker	add	esi,edi
125*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [52+esp],edi
126*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,esi
127*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebx
128*8fb009dcSAndroid Build Coastguard Worker	rol	ebp,7
129*8fb009dcSAndroid Build Coastguard Worker	xor	edx,eax
130*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [36+esp],esi
131*8fb009dcSAndroid Build Coastguard Worker	rol	edx,16
132*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [20+esp],ebp
133*8fb009dcSAndroid Build Coastguard Worker	add	ecx,edx
134*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [44+esp]
135*8fb009dcSAndroid Build Coastguard Worker	xor	ebx,ecx
136*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [60+esp]
137*8fb009dcSAndroid Build Coastguard Worker	rol	ebx,12
138*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [28+esp]
139*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebx
140*8fb009dcSAndroid Build Coastguard Worker	xor	edx,eax
141*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [8+esp],eax
142*8fb009dcSAndroid Build Coastguard Worker	rol	edx,8
143*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [12+esp]
144*8fb009dcSAndroid Build Coastguard Worker	add	ecx,edx
145*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [56+esp],edx
146*8fb009dcSAndroid Build Coastguard Worker	xor	ebx,ecx
147*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebp
148*8fb009dcSAndroid Build Coastguard Worker	rol	ebx,7
149*8fb009dcSAndroid Build Coastguard Worker	xor	edi,eax
150*8fb009dcSAndroid Build Coastguard Worker	rol	edi,16
151*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [24+esp],ebx
152*8fb009dcSAndroid Build Coastguard Worker	add	esi,edi
153*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,esi
154*8fb009dcSAndroid Build Coastguard Worker	rol	ebp,12
155*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [20+esp]
156*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebp
157*8fb009dcSAndroid Build Coastguard Worker	xor	edi,eax
158*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [12+esp],eax
159*8fb009dcSAndroid Build Coastguard Worker	rol	edi,8
160*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [esp]
161*8fb009dcSAndroid Build Coastguard Worker	add	esi,edi
162*8fb009dcSAndroid Build Coastguard Worker	mov	edx,edi
163*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,esi
164*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebx
165*8fb009dcSAndroid Build Coastguard Worker	rol	ebp,7
166*8fb009dcSAndroid Build Coastguard Worker	xor	edx,eax
167*8fb009dcSAndroid Build Coastguard Worker	rol	edx,16
168*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [28+esp],ebp
169*8fb009dcSAndroid Build Coastguard Worker	add	ecx,edx
170*8fb009dcSAndroid Build Coastguard Worker	xor	ebx,ecx
171*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [48+esp]
172*8fb009dcSAndroid Build Coastguard Worker	rol	ebx,12
173*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [24+esp]
174*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebx
175*8fb009dcSAndroid Build Coastguard Worker	xor	edx,eax
176*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [esp],eax
177*8fb009dcSAndroid Build Coastguard Worker	rol	edx,8
178*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [4+esp]
179*8fb009dcSAndroid Build Coastguard Worker	add	ecx,edx
180*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [60+esp],edx
181*8fb009dcSAndroid Build Coastguard Worker	xor	ebx,ecx
182*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebp
183*8fb009dcSAndroid Build Coastguard Worker	rol	ebx,7
184*8fb009dcSAndroid Build Coastguard Worker	xor	edi,eax
185*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [40+esp],ecx
186*8fb009dcSAndroid Build Coastguard Worker	rol	edi,16
187*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [20+esp],ebx
188*8fb009dcSAndroid Build Coastguard Worker	add	esi,edi
189*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [32+esp]
190*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,esi
191*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [52+esp]
192*8fb009dcSAndroid Build Coastguard Worker	rol	ebp,12
193*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [28+esp]
194*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebp
195*8fb009dcSAndroid Build Coastguard Worker	xor	edi,eax
196*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [4+esp],eax
197*8fb009dcSAndroid Build Coastguard Worker	rol	edi,8
198*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [8+esp]
199*8fb009dcSAndroid Build Coastguard Worker	add	esi,edi
200*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [48+esp],edi
201*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,esi
202*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebx
203*8fb009dcSAndroid Build Coastguard Worker	rol	ebp,7
204*8fb009dcSAndroid Build Coastguard Worker	xor	edx,eax
205*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [44+esp],esi
206*8fb009dcSAndroid Build Coastguard Worker	rol	edx,16
207*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [24+esp],ebp
208*8fb009dcSAndroid Build Coastguard Worker	add	ecx,edx
209*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [36+esp]
210*8fb009dcSAndroid Build Coastguard Worker	xor	ebx,ecx
211*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [56+esp]
212*8fb009dcSAndroid Build Coastguard Worker	rol	ebx,12
213*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [16+esp]
214*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebx
215*8fb009dcSAndroid Build Coastguard Worker	xor	edx,eax
216*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [8+esp],eax
217*8fb009dcSAndroid Build Coastguard Worker	rol	edx,8
218*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [12+esp]
219*8fb009dcSAndroid Build Coastguard Worker	add	ecx,edx
220*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [52+esp],edx
221*8fb009dcSAndroid Build Coastguard Worker	xor	ebx,ecx
222*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebp
223*8fb009dcSAndroid Build Coastguard Worker	rol	ebx,7
224*8fb009dcSAndroid Build Coastguard Worker	xor	edi,eax
225*8fb009dcSAndroid Build Coastguard Worker	rol	edi,16
226*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [28+esp],ebx
227*8fb009dcSAndroid Build Coastguard Worker	add	esi,edi
228*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,esi
229*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [48+esp]
230*8fb009dcSAndroid Build Coastguard Worker	rol	ebp,12
231*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [128+esp]
232*8fb009dcSAndroid Build Coastguard Worker	add	eax,ebp
233*8fb009dcSAndroid Build Coastguard Worker	xor	edi,eax
234*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [12+esp],eax
235*8fb009dcSAndroid Build Coastguard Worker	rol	edi,8
236*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [esp]
237*8fb009dcSAndroid Build Coastguard Worker	add	esi,edi
238*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [56+esp],edi
239*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,esi
240*8fb009dcSAndroid Build Coastguard Worker	rol	ebp,7
241*8fb009dcSAndroid Build Coastguard Worker	dec	ebx
242*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$002loop
243*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [160+esp]
244*8fb009dcSAndroid Build Coastguard Worker	add	eax,1634760805
245*8fb009dcSAndroid Build Coastguard Worker	add	ebp,DWORD [80+esp]
246*8fb009dcSAndroid Build Coastguard Worker	add	ecx,DWORD [96+esp]
247*8fb009dcSAndroid Build Coastguard Worker	add	esi,DWORD [100+esp]
248*8fb009dcSAndroid Build Coastguard Worker	cmp	ebx,64
249*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$003tail
250*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [156+esp]
251*8fb009dcSAndroid Build Coastguard Worker	add	edx,DWORD [112+esp]
252*8fb009dcSAndroid Build Coastguard Worker	add	edi,DWORD [120+esp]
253*8fb009dcSAndroid Build Coastguard Worker	xor	eax,DWORD [ebx]
254*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,DWORD [16+ebx]
255*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [esp],eax
256*8fb009dcSAndroid Build Coastguard Worker	mov	eax,DWORD [152+esp]
257*8fb009dcSAndroid Build Coastguard Worker	xor	ecx,DWORD [32+ebx]
258*8fb009dcSAndroid Build Coastguard Worker	xor	esi,DWORD [36+ebx]
259*8fb009dcSAndroid Build Coastguard Worker	xor	edx,DWORD [48+ebx]
260*8fb009dcSAndroid Build Coastguard Worker	xor	edi,DWORD [56+ebx]
261*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [16+eax],ebp
262*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [32+eax],ecx
263*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [36+eax],esi
264*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [48+eax],edx
265*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [56+eax],edi
266*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [4+esp]
267*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [8+esp]
268*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [12+esp]
269*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [20+esp]
270*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [24+esp]
271*8fb009dcSAndroid Build Coastguard Worker	add	ebp,857760878
272*8fb009dcSAndroid Build Coastguard Worker	add	ecx,2036477234
273*8fb009dcSAndroid Build Coastguard Worker	add	esi,1797285236
274*8fb009dcSAndroid Build Coastguard Worker	add	edx,DWORD [84+esp]
275*8fb009dcSAndroid Build Coastguard Worker	add	edi,DWORD [88+esp]
276*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,DWORD [4+ebx]
277*8fb009dcSAndroid Build Coastguard Worker	xor	ecx,DWORD [8+ebx]
278*8fb009dcSAndroid Build Coastguard Worker	xor	esi,DWORD [12+ebx]
279*8fb009dcSAndroid Build Coastguard Worker	xor	edx,DWORD [20+ebx]
280*8fb009dcSAndroid Build Coastguard Worker	xor	edi,DWORD [24+ebx]
281*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [4+eax],ebp
282*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [8+eax],ecx
283*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [12+eax],esi
284*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [20+eax],edx
285*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [24+eax],edi
286*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [28+esp]
287*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [40+esp]
288*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [44+esp]
289*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [52+esp]
290*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [60+esp]
291*8fb009dcSAndroid Build Coastguard Worker	add	ebp,DWORD [92+esp]
292*8fb009dcSAndroid Build Coastguard Worker	add	ecx,DWORD [104+esp]
293*8fb009dcSAndroid Build Coastguard Worker	add	esi,DWORD [108+esp]
294*8fb009dcSAndroid Build Coastguard Worker	add	edx,DWORD [116+esp]
295*8fb009dcSAndroid Build Coastguard Worker	add	edi,DWORD [124+esp]
296*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,DWORD [28+ebx]
297*8fb009dcSAndroid Build Coastguard Worker	xor	ecx,DWORD [40+ebx]
298*8fb009dcSAndroid Build Coastguard Worker	xor	esi,DWORD [44+ebx]
299*8fb009dcSAndroid Build Coastguard Worker	xor	edx,DWORD [52+ebx]
300*8fb009dcSAndroid Build Coastguard Worker	xor	edi,DWORD [60+ebx]
301*8fb009dcSAndroid Build Coastguard Worker	lea	ebx,[64+ebx]
302*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [28+eax],ebp
303*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [esp]
304*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [40+eax],ecx
305*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [160+esp]
306*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [44+eax],esi
307*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [52+eax],edx
308*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [60+eax],edi
309*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [eax],ebp
310*8fb009dcSAndroid Build Coastguard Worker	lea	eax,[64+eax]
311*8fb009dcSAndroid Build Coastguard Worker	sub	ecx,64
312*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$001outer_loop
313*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$004done
314*8fb009dcSAndroid Build Coastguard WorkerL$003tail:
315*8fb009dcSAndroid Build Coastguard Worker	add	edx,DWORD [112+esp]
316*8fb009dcSAndroid Build Coastguard Worker	add	edi,DWORD [120+esp]
317*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [esp],eax
318*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [16+esp],ebp
319*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [32+esp],ecx
320*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [36+esp],esi
321*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [48+esp],edx
322*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [56+esp],edi
323*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [4+esp]
324*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [8+esp]
325*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [12+esp]
326*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [20+esp]
327*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [24+esp]
328*8fb009dcSAndroid Build Coastguard Worker	add	ebp,857760878
329*8fb009dcSAndroid Build Coastguard Worker	add	ecx,2036477234
330*8fb009dcSAndroid Build Coastguard Worker	add	esi,1797285236
331*8fb009dcSAndroid Build Coastguard Worker	add	edx,DWORD [84+esp]
332*8fb009dcSAndroid Build Coastguard Worker	add	edi,DWORD [88+esp]
333*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [4+esp],ebp
334*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [8+esp],ecx
335*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [12+esp],esi
336*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [20+esp],edx
337*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [24+esp],edi
338*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [28+esp]
339*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [40+esp]
340*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [44+esp]
341*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [52+esp]
342*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [60+esp]
343*8fb009dcSAndroid Build Coastguard Worker	add	ebp,DWORD [92+esp]
344*8fb009dcSAndroid Build Coastguard Worker	add	ecx,DWORD [104+esp]
345*8fb009dcSAndroid Build Coastguard Worker	add	esi,DWORD [108+esp]
346*8fb009dcSAndroid Build Coastguard Worker	add	edx,DWORD [116+esp]
347*8fb009dcSAndroid Build Coastguard Worker	add	edi,DWORD [124+esp]
348*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [28+esp],ebp
349*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,DWORD [156+esp]
350*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [40+esp],ecx
351*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [152+esp]
352*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [44+esp],esi
353*8fb009dcSAndroid Build Coastguard Worker	xor	esi,esi
354*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [52+esp],edx
355*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [60+esp],edi
356*8fb009dcSAndroid Build Coastguard Worker	xor	eax,eax
357*8fb009dcSAndroid Build Coastguard Worker	xor	edx,edx
358*8fb009dcSAndroid Build Coastguard WorkerL$005tail_loop:
359*8fb009dcSAndroid Build Coastguard Worker	mov	al,BYTE [ebp*1+esi]
360*8fb009dcSAndroid Build Coastguard Worker	mov	dl,BYTE [esi*1+esp]
361*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[1+esi]
362*8fb009dcSAndroid Build Coastguard Worker	xor	al,dl
363*8fb009dcSAndroid Build Coastguard Worker	mov	BYTE [esi*1+ecx-1],al
364*8fb009dcSAndroid Build Coastguard Worker	dec	ebx
365*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$005tail_loop
366*8fb009dcSAndroid Build Coastguard WorkerL$004done:
367*8fb009dcSAndroid Build Coastguard Worker	add	esp,132
368*8fb009dcSAndroid Build Coastguard Worker	pop	edi
369*8fb009dcSAndroid Build Coastguard Worker	pop	esi
370*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
371*8fb009dcSAndroid Build Coastguard Worker	pop	ebp
372*8fb009dcSAndroid Build Coastguard Worker	ret
373*8fb009dcSAndroid Build Coastguard Workerglobal	_ChaCha20_ctr32_ssse3
374*8fb009dcSAndroid Build Coastguard Workeralign	16
375*8fb009dcSAndroid Build Coastguard Worker_ChaCha20_ctr32_ssse3:
376*8fb009dcSAndroid Build Coastguard WorkerL$_ChaCha20_ctr32_ssse3_begin:
377*8fb009dcSAndroid Build Coastguard Worker	push	ebp
378*8fb009dcSAndroid Build Coastguard Worker	push	ebx
379*8fb009dcSAndroid Build Coastguard Worker	push	esi
380*8fb009dcSAndroid Build Coastguard Worker	push	edi
381*8fb009dcSAndroid Build Coastguard Worker	call	L$pic_point
382*8fb009dcSAndroid Build Coastguard WorkerL$pic_point:
383*8fb009dcSAndroid Build Coastguard Worker	pop	eax
384*8fb009dcSAndroid Build Coastguard Worker	mov	edi,DWORD [20+esp]
385*8fb009dcSAndroid Build Coastguard Worker	mov	esi,DWORD [24+esp]
386*8fb009dcSAndroid Build Coastguard Worker	mov	ecx,DWORD [28+esp]
387*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [32+esp]
388*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [36+esp]
389*8fb009dcSAndroid Build Coastguard Worker	mov	ebp,esp
390*8fb009dcSAndroid Build Coastguard Worker	sub	esp,524
391*8fb009dcSAndroid Build Coastguard Worker	and	esp,-64
392*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [512+esp],ebp
393*8fb009dcSAndroid Build Coastguard Worker	lea	eax,[(L$ssse3_data-L$pic_point)+eax]
394*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[ebx]
395*8fb009dcSAndroid Build Coastguard Worker	cmp	ecx,256
396*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$0061x
397*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [516+esp],edx
398*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [520+esp],ebx
399*8fb009dcSAndroid Build Coastguard Worker	sub	ecx,256
400*8fb009dcSAndroid Build Coastguard Worker	lea	ebp,[384+esp]
401*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[edx]
402*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm0,xmm3,0
403*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm1,xmm3,85
404*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm3,170
405*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm3,xmm3,255
406*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,[48+eax]
407*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm4,xmm7,0
408*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm5,xmm7,85
409*8fb009dcSAndroid Build Coastguard Worker	psubd	xmm0,[64+eax]
410*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm6,xmm7,170
411*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm7,xmm7,255
412*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+ebp],xmm0
413*8fb009dcSAndroid Build Coastguard Worker	movdqa	[80+ebp],xmm1
414*8fb009dcSAndroid Build Coastguard Worker	movdqa	[96+ebp],xmm2
415*8fb009dcSAndroid Build Coastguard Worker	movdqa	[112+ebp],xmm3
416*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[16+edx]
417*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebp-64],xmm4
418*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebp-48],xmm5
419*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebp-32],xmm6
420*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebp-16],xmm7
421*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,[32+eax]
422*8fb009dcSAndroid Build Coastguard Worker	lea	ebx,[128+esp]
423*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm0,xmm3,0
424*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm1,xmm3,85
425*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm3,170
426*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm3,xmm3,255
427*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm4,xmm7,0
428*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm5,xmm7,85
429*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm6,xmm7,170
430*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm7,xmm7,255
431*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebp],xmm0
432*8fb009dcSAndroid Build Coastguard Worker	movdqa	[16+ebp],xmm1
433*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+ebp],xmm2
434*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+ebp],xmm3
435*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebp-128],xmm4
436*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebp-112],xmm5
437*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebp-96],xmm6
438*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebp-80],xmm7
439*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[128+esi]
440*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[128+edi]
441*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$007outer_loop
442*8fb009dcSAndroid Build Coastguard Workeralign	16
443*8fb009dcSAndroid Build Coastguard WorkerL$007outer_loop:
444*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[ebp-112]
445*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[ebp-96]
446*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[ebp-80]
447*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,[ebp-48]
448*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,[ebp-32]
449*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,[ebp-16]
450*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-112],xmm1
451*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-96],xmm2
452*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-80],xmm3
453*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-48],xmm5
454*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-32],xmm6
455*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-16],xmm7
456*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[32+ebp]
457*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[48+ebp]
458*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,[64+ebp]
459*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,[80+ebp]
460*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,[96+ebp]
461*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,[112+ebp]
462*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm4,[64+eax]
463*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+ebx],xmm2
464*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+ebx],xmm3
465*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+ebx],xmm4
466*8fb009dcSAndroid Build Coastguard Worker	movdqa	[80+ebx],xmm5
467*8fb009dcSAndroid Build Coastguard Worker	movdqa	[96+ebx],xmm6
468*8fb009dcSAndroid Build Coastguard Worker	movdqa	[112+ebx],xmm7
469*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+ebp],xmm4
470*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[ebp-128]
471*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,xmm4
472*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[ebp-64]
473*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,[ebp]
474*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,[16+ebp]
475*8fb009dcSAndroid Build Coastguard Worker	mov	edx,10
476*8fb009dcSAndroid Build Coastguard Worker	nop
477*8fb009dcSAndroid Build Coastguard Workeralign	16
478*8fb009dcSAndroid Build Coastguard WorkerL$008loop:
479*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm3
480*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,xmm3
481*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
482*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm6,[eax]
483*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm4,xmm6
484*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm4
485*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[ebx-48]
486*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm2
487*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm2,12
488*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,20
489*8fb009dcSAndroid Build Coastguard Worker	por	xmm2,xmm1
490*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[ebx-112]
491*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm2
492*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,[80+ebx]
493*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
494*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-128],xmm0
495*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm6,[16+eax]
496*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm4,xmm6
497*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+ebx],xmm6
498*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm4
499*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,xmm3
500*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,xmm2
501*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm2,7
502*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm0,25
503*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
504*8fb009dcSAndroid Build Coastguard Worker	por	xmm2,xmm0
505*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx],xmm4
506*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm7,[eax]
507*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-64],xmm2
508*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm5,xmm7
509*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,[32+ebx]
510*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm5
511*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[ebx-32]
512*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,xmm3
513*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm3,12
514*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm0,20
515*8fb009dcSAndroid Build Coastguard Worker	por	xmm3,xmm0
516*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[ebx-96]
517*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,xmm3
518*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,[96+ebx]
519*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
520*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-112],xmm1
521*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm7,[16+eax]
522*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm5,xmm7
523*8fb009dcSAndroid Build Coastguard Worker	movdqa	[80+ebx],xmm7
524*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm5
525*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm2
526*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm3
527*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm3,7
528*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,25
529*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
530*8fb009dcSAndroid Build Coastguard Worker	por	xmm3,xmm1
531*8fb009dcSAndroid Build Coastguard Worker	movdqa	[16+ebx],xmm5
532*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm6,[eax]
533*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-48],xmm3
534*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm4,xmm6
535*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,[48+ebx]
536*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm4
537*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[ebx-16]
538*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm2
539*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm2,12
540*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,20
541*8fb009dcSAndroid Build Coastguard Worker	por	xmm2,xmm1
542*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[ebx-80]
543*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm2
544*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,[112+ebx]
545*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
546*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-96],xmm0
547*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm6,[16+eax]
548*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm4,xmm6
549*8fb009dcSAndroid Build Coastguard Worker	movdqa	[96+ebx],xmm6
550*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm4
551*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,xmm3
552*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,xmm2
553*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm2,7
554*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm0,25
555*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
556*8fb009dcSAndroid Build Coastguard Worker	por	xmm2,xmm0
557*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm7,[eax]
558*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-32],xmm2
559*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm5,xmm7
560*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm5
561*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[ebx-48]
562*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,xmm3
563*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm3,12
564*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm0,20
565*8fb009dcSAndroid Build Coastguard Worker	por	xmm3,xmm0
566*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[ebx-128]
567*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,xmm3
568*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
569*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-80],xmm1
570*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm7,[16+eax]
571*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm5,xmm7
572*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,xmm7
573*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm5
574*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm2
575*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm3
576*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm3,7
577*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,25
578*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
579*8fb009dcSAndroid Build Coastguard Worker	por	xmm3,xmm1
580*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm6,[eax]
581*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-16],xmm3
582*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm4,xmm6
583*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm4
584*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[ebx-32]
585*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm2
586*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm2,12
587*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,20
588*8fb009dcSAndroid Build Coastguard Worker	por	xmm2,xmm1
589*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[ebx-112]
590*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm2
591*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,[64+ebx]
592*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
593*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-128],xmm0
594*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm6,[16+eax]
595*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm4,xmm6
596*8fb009dcSAndroid Build Coastguard Worker	movdqa	[112+ebx],xmm6
597*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm4
598*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,xmm3
599*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,xmm2
600*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm2,7
601*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm0,25
602*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
603*8fb009dcSAndroid Build Coastguard Worker	por	xmm2,xmm0
604*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+ebx],xmm4
605*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm7,[eax]
606*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-48],xmm2
607*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm5,xmm7
608*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,[ebx]
609*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm5
610*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[ebx-16]
611*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,xmm3
612*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm3,12
613*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm0,20
614*8fb009dcSAndroid Build Coastguard Worker	por	xmm3,xmm0
615*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[ebx-96]
616*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,xmm3
617*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,[80+ebx]
618*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
619*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-112],xmm1
620*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm7,[16+eax]
621*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm5,xmm7
622*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+ebx],xmm7
623*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm5
624*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm2
625*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm3
626*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm3,7
627*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,25
628*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
629*8fb009dcSAndroid Build Coastguard Worker	por	xmm3,xmm1
630*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+ebx],xmm5
631*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm6,[eax]
632*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-32],xmm3
633*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm4,xmm6
634*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm5,[16+ebx]
635*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm4
636*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[ebx-64]
637*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm2
638*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm2,12
639*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,20
640*8fb009dcSAndroid Build Coastguard Worker	por	xmm2,xmm1
641*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[ebx-80]
642*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm2
643*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,[96+ebx]
644*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm0
645*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-96],xmm0
646*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm6,[16+eax]
647*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm4,xmm6
648*8fb009dcSAndroid Build Coastguard Worker	movdqa	[80+ebx],xmm6
649*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm4
650*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,xmm3
651*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,xmm2
652*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm2,7
653*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm0,25
654*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
655*8fb009dcSAndroid Build Coastguard Worker	por	xmm2,xmm0
656*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm7,[eax]
657*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-16],xmm2
658*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm5,xmm7
659*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm5
660*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,xmm3
661*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm3,12
662*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm0,20
663*8fb009dcSAndroid Build Coastguard Worker	por	xmm3,xmm0
664*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[ebx-128]
665*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,xmm3
666*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,[64+ebx]
667*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm1
668*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-80],xmm1
669*8fb009dcSAndroid Build Coastguard Worker	pshufb	xmm7,[16+eax]
670*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm5,xmm7
671*8fb009dcSAndroid Build Coastguard Worker	movdqa	[96+ebx],xmm7
672*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm5
673*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm3
674*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm3,7
675*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,25
676*8fb009dcSAndroid Build Coastguard Worker	por	xmm3,xmm1
677*8fb009dcSAndroid Build Coastguard Worker	dec	edx
678*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$008loop
679*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx-64],xmm3
680*8fb009dcSAndroid Build Coastguard Worker	movdqa	[ebx],xmm4
681*8fb009dcSAndroid Build Coastguard Worker	movdqa	[16+ebx],xmm5
682*8fb009dcSAndroid Build Coastguard Worker	movdqa	[64+ebx],xmm6
683*8fb009dcSAndroid Build Coastguard Worker	movdqa	[96+ebx],xmm7
684*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[ebx-112]
685*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[ebx-96]
686*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[ebx-80]
687*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,[ebp-128]
688*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,[ebp-112]
689*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm2,[ebp-96]
690*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm3,[ebp-80]
691*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,xmm0
692*8fb009dcSAndroid Build Coastguard Worker	punpckldq	xmm0,xmm1
693*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,xmm2
694*8fb009dcSAndroid Build Coastguard Worker	punpckldq	xmm2,xmm3
695*8fb009dcSAndroid Build Coastguard Worker	punpckhdq	xmm6,xmm1
696*8fb009dcSAndroid Build Coastguard Worker	punpckhdq	xmm7,xmm3
697*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm0
698*8fb009dcSAndroid Build Coastguard Worker	punpcklqdq	xmm0,xmm2
699*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,xmm6
700*8fb009dcSAndroid Build Coastguard Worker	punpcklqdq	xmm6,xmm7
701*8fb009dcSAndroid Build Coastguard Worker	punpckhqdq	xmm1,xmm2
702*8fb009dcSAndroid Build Coastguard Worker	punpckhqdq	xmm3,xmm7
703*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[esi-128]
704*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[esi-64]
705*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[esi]
706*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[64+esi]
707*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[16+esi]
708*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
709*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[ebx-64]
710*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm1
711*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[ebx-48]
712*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm2
713*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[ebx-32]
714*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm3
715*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[ebx-16]
716*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi-128],xmm4
717*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi-64],xmm5
718*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi],xmm6
719*8fb009dcSAndroid Build Coastguard Worker	movdqu	[64+edi],xmm7
720*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[16+edi]
721*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,[ebp-64]
722*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,[ebp-48]
723*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm2,[ebp-32]
724*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm3,[ebp-16]
725*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,xmm0
726*8fb009dcSAndroid Build Coastguard Worker	punpckldq	xmm0,xmm1
727*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,xmm2
728*8fb009dcSAndroid Build Coastguard Worker	punpckldq	xmm2,xmm3
729*8fb009dcSAndroid Build Coastguard Worker	punpckhdq	xmm6,xmm1
730*8fb009dcSAndroid Build Coastguard Worker	punpckhdq	xmm7,xmm3
731*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm0
732*8fb009dcSAndroid Build Coastguard Worker	punpcklqdq	xmm0,xmm2
733*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,xmm6
734*8fb009dcSAndroid Build Coastguard Worker	punpcklqdq	xmm6,xmm7
735*8fb009dcSAndroid Build Coastguard Worker	punpckhqdq	xmm1,xmm2
736*8fb009dcSAndroid Build Coastguard Worker	punpckhqdq	xmm3,xmm7
737*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[esi-128]
738*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[esi-64]
739*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[esi]
740*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[64+esi]
741*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[16+esi]
742*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
743*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[ebx]
744*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm1
745*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[16+ebx]
746*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm2
747*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[32+ebx]
748*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm3
749*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[48+ebx]
750*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi-128],xmm4
751*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi-64],xmm5
752*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi],xmm6
753*8fb009dcSAndroid Build Coastguard Worker	movdqu	[64+edi],xmm7
754*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[16+edi]
755*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,[ebp]
756*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,[16+ebp]
757*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm2,[32+ebp]
758*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm3,[48+ebp]
759*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,xmm0
760*8fb009dcSAndroid Build Coastguard Worker	punpckldq	xmm0,xmm1
761*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,xmm2
762*8fb009dcSAndroid Build Coastguard Worker	punpckldq	xmm2,xmm3
763*8fb009dcSAndroid Build Coastguard Worker	punpckhdq	xmm6,xmm1
764*8fb009dcSAndroid Build Coastguard Worker	punpckhdq	xmm7,xmm3
765*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm0
766*8fb009dcSAndroid Build Coastguard Worker	punpcklqdq	xmm0,xmm2
767*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,xmm6
768*8fb009dcSAndroid Build Coastguard Worker	punpcklqdq	xmm6,xmm7
769*8fb009dcSAndroid Build Coastguard Worker	punpckhqdq	xmm1,xmm2
770*8fb009dcSAndroid Build Coastguard Worker	punpckhqdq	xmm3,xmm7
771*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[esi-128]
772*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[esi-64]
773*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[esi]
774*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[64+esi]
775*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[16+esi]
776*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
777*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[64+ebx]
778*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm1
779*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[80+ebx]
780*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm2
781*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[96+ebx]
782*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm3
783*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[112+ebx]
784*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi-128],xmm4
785*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi-64],xmm5
786*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi],xmm6
787*8fb009dcSAndroid Build Coastguard Worker	movdqu	[64+edi],xmm7
788*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[16+edi]
789*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,[64+ebp]
790*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,[80+ebp]
791*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm2,[96+ebp]
792*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm3,[112+ebp]
793*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,xmm0
794*8fb009dcSAndroid Build Coastguard Worker	punpckldq	xmm0,xmm1
795*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,xmm2
796*8fb009dcSAndroid Build Coastguard Worker	punpckldq	xmm2,xmm3
797*8fb009dcSAndroid Build Coastguard Worker	punpckhdq	xmm6,xmm1
798*8fb009dcSAndroid Build Coastguard Worker	punpckhdq	xmm7,xmm3
799*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,xmm0
800*8fb009dcSAndroid Build Coastguard Worker	punpcklqdq	xmm0,xmm2
801*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,xmm6
802*8fb009dcSAndroid Build Coastguard Worker	punpcklqdq	xmm6,xmm7
803*8fb009dcSAndroid Build Coastguard Worker	punpckhqdq	xmm1,xmm2
804*8fb009dcSAndroid Build Coastguard Worker	punpckhqdq	xmm3,xmm7
805*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[esi-128]
806*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[esi-64]
807*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[esi]
808*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm7,[64+esi]
809*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[208+esi]
810*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm4,xmm0
811*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm5,xmm1
812*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm6,xmm2
813*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm7,xmm3
814*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi-128],xmm4
815*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi-64],xmm5
816*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi],xmm6
817*8fb009dcSAndroid Build Coastguard Worker	movdqu	[64+edi],xmm7
818*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[208+edi]
819*8fb009dcSAndroid Build Coastguard Worker	sub	ecx,256
820*8fb009dcSAndroid Build Coastguard Worker	jnc	NEAR L$007outer_loop
821*8fb009dcSAndroid Build Coastguard Worker	add	ecx,256
822*8fb009dcSAndroid Build Coastguard Worker	jz	NEAR L$009done
823*8fb009dcSAndroid Build Coastguard Worker	mov	ebx,DWORD [520+esp]
824*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[esi-128]
825*8fb009dcSAndroid Build Coastguard Worker	mov	edx,DWORD [516+esp]
826*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[edi-128]
827*8fb009dcSAndroid Build Coastguard Worker	movd	xmm2,DWORD [64+ebp]
828*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm3,[ebx]
829*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm2,[96+eax]
830*8fb009dcSAndroid Build Coastguard Worker	pand	xmm3,[112+eax]
831*8fb009dcSAndroid Build Coastguard Worker	por	xmm3,xmm2
832*8fb009dcSAndroid Build Coastguard WorkerL$0061x:
833*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[32+eax]
834*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm1,[edx]
835*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm2,[16+edx]
836*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm6,[eax]
837*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm7,[16+eax]
838*8fb009dcSAndroid Build Coastguard Worker	mov	DWORD [48+esp],ebp
839*8fb009dcSAndroid Build Coastguard Worker	movdqa	[esp],xmm0
840*8fb009dcSAndroid Build Coastguard Worker	movdqa	[16+esp],xmm1
841*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+esp],xmm2
842*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm3
843*8fb009dcSAndroid Build Coastguard Worker	mov	edx,10
844*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$010loop1x
845*8fb009dcSAndroid Build Coastguard Workeralign	16
846*8fb009dcSAndroid Build Coastguard WorkerL$011outer1x:
847*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm3,[80+eax]
848*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm0,[esp]
849*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm1,[16+esp]
850*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm2,[32+esp]
851*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm3,[48+esp]
852*8fb009dcSAndroid Build Coastguard Worker	mov	edx,10
853*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm3
854*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$010loop1x
855*8fb009dcSAndroid Build Coastguard Workeralign	16
856*8fb009dcSAndroid Build Coastguard WorkerL$010loop1x:
857*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm1
858*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
859*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,222
860*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm2,xmm3
861*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
862*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,xmm1
863*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,20
864*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm4,12
865*8fb009dcSAndroid Build Coastguard Worker	por	xmm1,xmm4
866*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm1
867*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
868*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,223
869*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm2,xmm3
870*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
871*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,xmm1
872*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,25
873*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm4,7
874*8fb009dcSAndroid Build Coastguard Worker	por	xmm1,xmm4
875*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm2,78
876*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm1,xmm1,57
877*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm3,xmm3,147
878*8fb009dcSAndroid Build Coastguard Worker	nop
879*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm1
880*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
881*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,222
882*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm2,xmm3
883*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
884*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,xmm1
885*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,20
886*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm4,12
887*8fb009dcSAndroid Build Coastguard Worker	por	xmm1,xmm4
888*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,xmm1
889*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm0
890*8fb009dcSAndroid Build Coastguard Workerdb	102,15,56,0,223
891*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm2,xmm3
892*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm2
893*8fb009dcSAndroid Build Coastguard Worker	movdqa	xmm4,xmm1
894*8fb009dcSAndroid Build Coastguard Worker	psrld	xmm1,25
895*8fb009dcSAndroid Build Coastguard Worker	pslld	xmm4,7
896*8fb009dcSAndroid Build Coastguard Worker	por	xmm1,xmm4
897*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm2,xmm2,78
898*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm1,xmm1,147
899*8fb009dcSAndroid Build Coastguard Worker	pshufd	xmm3,xmm3,57
900*8fb009dcSAndroid Build Coastguard Worker	dec	edx
901*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$010loop1x
902*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm0,[esp]
903*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm1,[16+esp]
904*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm2,[32+esp]
905*8fb009dcSAndroid Build Coastguard Worker	paddd	xmm3,[48+esp]
906*8fb009dcSAndroid Build Coastguard Worker	cmp	ecx,64
907*8fb009dcSAndroid Build Coastguard Worker	jb	NEAR L$012tail
908*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[esi]
909*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[16+esi]
910*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm0,xmm4
911*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm4,[32+esi]
912*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm1,xmm5
913*8fb009dcSAndroid Build Coastguard Worker	movdqu	xmm5,[48+esi]
914*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm2,xmm4
915*8fb009dcSAndroid Build Coastguard Worker	pxor	xmm3,xmm5
916*8fb009dcSAndroid Build Coastguard Worker	lea	esi,[64+esi]
917*8fb009dcSAndroid Build Coastguard Worker	movdqu	[edi],xmm0
918*8fb009dcSAndroid Build Coastguard Worker	movdqu	[16+edi],xmm1
919*8fb009dcSAndroid Build Coastguard Worker	movdqu	[32+edi],xmm2
920*8fb009dcSAndroid Build Coastguard Worker	movdqu	[48+edi],xmm3
921*8fb009dcSAndroid Build Coastguard Worker	lea	edi,[64+edi]
922*8fb009dcSAndroid Build Coastguard Worker	sub	ecx,64
923*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$011outer1x
924*8fb009dcSAndroid Build Coastguard Worker	jmp	NEAR L$009done
925*8fb009dcSAndroid Build Coastguard WorkerL$012tail:
926*8fb009dcSAndroid Build Coastguard Worker	movdqa	[esp],xmm0
927*8fb009dcSAndroid Build Coastguard Worker	movdqa	[16+esp],xmm1
928*8fb009dcSAndroid Build Coastguard Worker	movdqa	[32+esp],xmm2
929*8fb009dcSAndroid Build Coastguard Worker	movdqa	[48+esp],xmm3
930*8fb009dcSAndroid Build Coastguard Worker	xor	eax,eax
931*8fb009dcSAndroid Build Coastguard Worker	xor	edx,edx
932*8fb009dcSAndroid Build Coastguard Worker	xor	ebp,ebp
933*8fb009dcSAndroid Build Coastguard WorkerL$013tail_loop:
934*8fb009dcSAndroid Build Coastguard Worker	mov	al,BYTE [ebp*1+esp]
935*8fb009dcSAndroid Build Coastguard Worker	mov	dl,BYTE [ebp*1+esi]
936*8fb009dcSAndroid Build Coastguard Worker	lea	ebp,[1+ebp]
937*8fb009dcSAndroid Build Coastguard Worker	xor	al,dl
938*8fb009dcSAndroid Build Coastguard Worker	mov	BYTE [ebp*1+edi-1],al
939*8fb009dcSAndroid Build Coastguard Worker	dec	ecx
940*8fb009dcSAndroid Build Coastguard Worker	jnz	NEAR L$013tail_loop
941*8fb009dcSAndroid Build Coastguard WorkerL$009done:
942*8fb009dcSAndroid Build Coastguard Worker	mov	esp,DWORD [512+esp]
943*8fb009dcSAndroid Build Coastguard Worker	pop	edi
944*8fb009dcSAndroid Build Coastguard Worker	pop	esi
945*8fb009dcSAndroid Build Coastguard Worker	pop	ebx
946*8fb009dcSAndroid Build Coastguard Worker	pop	ebp
947*8fb009dcSAndroid Build Coastguard Worker	ret
948*8fb009dcSAndroid Build Coastguard Workeralign	64
949*8fb009dcSAndroid Build Coastguard WorkerL$ssse3_data:
950*8fb009dcSAndroid Build Coastguard Workerdb	2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13
951*8fb009dcSAndroid Build Coastguard Workerdb	3,0,1,2,7,4,5,6,11,8,9,10,15,12,13,14
952*8fb009dcSAndroid Build Coastguard Workerdd	1634760805,857760878,2036477234,1797285236
953*8fb009dcSAndroid Build Coastguard Workerdd	0,1,2,3
954*8fb009dcSAndroid Build Coastguard Workerdd	4,4,4,4
955*8fb009dcSAndroid Build Coastguard Workerdd	1,0,0,0
956*8fb009dcSAndroid Build Coastguard Workerdd	4,0,0,0
957*8fb009dcSAndroid Build Coastguard Workerdd	0,-1,-1,-1
958*8fb009dcSAndroid Build Coastguard Workeralign	64
959*8fb009dcSAndroid Build Coastguard Workerdb	67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54
960*8fb009dcSAndroid Build Coastguard Workerdb	44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
961*8fb009dcSAndroid Build Coastguard Workerdb	60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
962*8fb009dcSAndroid Build Coastguard Workerdb	114,103,62,0
963*8fb009dcSAndroid Build Coastguard Worker%else
964*8fb009dcSAndroid Build Coastguard Worker; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738
965*8fb009dcSAndroid Build Coastguard Workerret
966*8fb009dcSAndroid Build Coastguard Worker%endif
967