bn-586.S revision 8ff035535f7cf2903f02bbe94d2fa10b7ab855f1
1#if defined(__i386__)
2.text
3.globl	_bn_mul_add_words
4.private_extern	_bn_mul_add_words
5.align	4
6_bn_mul_add_words:
7L_bn_mul_add_words_begin:
8	call	L000PIC_me_up
9L000PIC_me_up:
10	popl	%eax
11	movl	L_OPENSSL_ia32cap_P$non_lazy_ptr-L000PIC_me_up(%eax),%eax
12	btl	$26,(%eax)
13	jnc	L001maw_non_sse2
14	movl	4(%esp),%eax
15	movl	8(%esp),%edx
16	movl	12(%esp),%ecx
17	movd	16(%esp),%mm0
18	pxor	%mm1,%mm1
19	jmp	L002maw_sse2_entry
20.align	4,0x90
21L003maw_sse2_unrolled:
22	movd	(%eax),%mm3
23	paddq	%mm3,%mm1
24	movd	(%edx),%mm2
25	pmuludq	%mm0,%mm2
26	movd	4(%edx),%mm4
27	pmuludq	%mm0,%mm4
28	movd	8(%edx),%mm6
29	pmuludq	%mm0,%mm6
30	movd	12(%edx),%mm7
31	pmuludq	%mm0,%mm7
32	paddq	%mm2,%mm1
33	movd	4(%eax),%mm3
34	paddq	%mm4,%mm3
35	movd	8(%eax),%mm5
36	paddq	%mm6,%mm5
37	movd	12(%eax),%mm4
38	paddq	%mm4,%mm7
39	movd	%mm1,(%eax)
40	movd	16(%edx),%mm2
41	pmuludq	%mm0,%mm2
42	psrlq	$32,%mm1
43	movd	20(%edx),%mm4
44	pmuludq	%mm0,%mm4
45	paddq	%mm3,%mm1
46	movd	24(%edx),%mm6
47	pmuludq	%mm0,%mm6
48	movd	%mm1,4(%eax)
49	psrlq	$32,%mm1
50	movd	28(%edx),%mm3
51	addl	$32,%edx
52	pmuludq	%mm0,%mm3
53	paddq	%mm5,%mm1
54	movd	16(%eax),%mm5
55	paddq	%mm5,%mm2
56	movd	%mm1,8(%eax)
57	psrlq	$32,%mm1
58	paddq	%mm7,%mm1
59	movd	20(%eax),%mm5
60	paddq	%mm5,%mm4
61	movd	%mm1,12(%eax)
62	psrlq	$32,%mm1
63	paddq	%mm2,%mm1
64	movd	24(%eax),%mm5
65	paddq	%mm5,%mm6
66	movd	%mm1,16(%eax)
67	psrlq	$32,%mm1
68	paddq	%mm4,%mm1
69	movd	28(%eax),%mm5
70	paddq	%mm5,%mm3
71	movd	%mm1,20(%eax)
72	psrlq	$32,%mm1
73	paddq	%mm6,%mm1
74	movd	%mm1,24(%eax)
75	psrlq	$32,%mm1
76	paddq	%mm3,%mm1
77	movd	%mm1,28(%eax)
78	leal	32(%eax),%eax
79	psrlq	$32,%mm1
80	subl	$8,%ecx
81	jz	L004maw_sse2_exit
82L002maw_sse2_entry:
83	testl	$4294967288,%ecx
84	jnz	L003maw_sse2_unrolled
85.align	2,0x90
86L005maw_sse2_loop:
87	movd	(%edx),%mm2
88	movd	(%eax),%mm3
89	pmuludq	%mm0,%mm2
90	leal	4(%edx),%edx
91	paddq	%mm3,%mm1
92	paddq	%mm2,%mm1
93	movd	%mm1,(%eax)
94	subl	$1,%ecx
95	psrlq	$32,%mm1
96	leal	4(%eax),%eax
97	jnz	L005maw_sse2_loop
98L004maw_sse2_exit:
99	movd	%mm1,%eax
100	emms
101	ret
102.align	4,0x90
103L001maw_non_sse2:
104	pushl	%ebp
105	pushl	%ebx
106	pushl	%esi
107	pushl	%edi
108
109	xorl	%esi,%esi
110	movl	20(%esp),%edi
111	movl	28(%esp),%ecx
112	movl	24(%esp),%ebx
113	andl	$4294967288,%ecx
114	movl	32(%esp),%ebp
115	pushl	%ecx
116	jz	L006maw_finish
117.align	4,0x90
118L007maw_loop:
119	# Round 0
120	movl	(%ebx),%eax
121	mull	%ebp
122	addl	%esi,%eax
123	adcl	$0,%edx
124	addl	(%edi),%eax
125	adcl	$0,%edx
126	movl	%eax,(%edi)
127	movl	%edx,%esi
128	# Round 4
129	movl	4(%ebx),%eax
130	mull	%ebp
131	addl	%esi,%eax
132	adcl	$0,%edx
133	addl	4(%edi),%eax
134	adcl	$0,%edx
135	movl	%eax,4(%edi)
136	movl	%edx,%esi
137	# Round 8
138	movl	8(%ebx),%eax
139	mull	%ebp
140	addl	%esi,%eax
141	adcl	$0,%edx
142	addl	8(%edi),%eax
143	adcl	$0,%edx
144	movl	%eax,8(%edi)
145	movl	%edx,%esi
146	# Round 12
147	movl	12(%ebx),%eax
148	mull	%ebp
149	addl	%esi,%eax
150	adcl	$0,%edx
151	addl	12(%edi),%eax
152	adcl	$0,%edx
153	movl	%eax,12(%edi)
154	movl	%edx,%esi
155	# Round 16
156	movl	16(%ebx),%eax
157	mull	%ebp
158	addl	%esi,%eax
159	adcl	$0,%edx
160	addl	16(%edi),%eax
161	adcl	$0,%edx
162	movl	%eax,16(%edi)
163	movl	%edx,%esi
164	# Round 20
165	movl	20(%ebx),%eax
166	mull	%ebp
167	addl	%esi,%eax
168	adcl	$0,%edx
169	addl	20(%edi),%eax
170	adcl	$0,%edx
171	movl	%eax,20(%edi)
172	movl	%edx,%esi
173	# Round 24
174	movl	24(%ebx),%eax
175	mull	%ebp
176	addl	%esi,%eax
177	adcl	$0,%edx
178	addl	24(%edi),%eax
179	adcl	$0,%edx
180	movl	%eax,24(%edi)
181	movl	%edx,%esi
182	# Round 28
183	movl	28(%ebx),%eax
184	mull	%ebp
185	addl	%esi,%eax
186	adcl	$0,%edx
187	addl	28(%edi),%eax
188	adcl	$0,%edx
189	movl	%eax,28(%edi)
190	movl	%edx,%esi
191
192	subl	$8,%ecx
193	leal	32(%ebx),%ebx
194	leal	32(%edi),%edi
195	jnz	L007maw_loop
196L006maw_finish:
197	movl	32(%esp),%ecx
198	andl	$7,%ecx
199	jnz	L008maw_finish2
200	jmp	L009maw_end
201L008maw_finish2:
202	# Tail Round 0
203	movl	(%ebx),%eax
204	mull	%ebp
205	addl	%esi,%eax
206	adcl	$0,%edx
207	addl	(%edi),%eax
208	adcl	$0,%edx
209	decl	%ecx
210	movl	%eax,(%edi)
211	movl	%edx,%esi
212	jz	L009maw_end
213	# Tail Round 1
214	movl	4(%ebx),%eax
215	mull	%ebp
216	addl	%esi,%eax
217	adcl	$0,%edx
218	addl	4(%edi),%eax
219	adcl	$0,%edx
220	decl	%ecx
221	movl	%eax,4(%edi)
222	movl	%edx,%esi
223	jz	L009maw_end
224	# Tail Round 2
225	movl	8(%ebx),%eax
226	mull	%ebp
227	addl	%esi,%eax
228	adcl	$0,%edx
229	addl	8(%edi),%eax
230	adcl	$0,%edx
231	decl	%ecx
232	movl	%eax,8(%edi)
233	movl	%edx,%esi
234	jz	L009maw_end
235	# Tail Round 3
236	movl	12(%ebx),%eax
237	mull	%ebp
238	addl	%esi,%eax
239	adcl	$0,%edx
240	addl	12(%edi),%eax
241	adcl	$0,%edx
242	decl	%ecx
243	movl	%eax,12(%edi)
244	movl	%edx,%esi
245	jz	L009maw_end
246	# Tail Round 4
247	movl	16(%ebx),%eax
248	mull	%ebp
249	addl	%esi,%eax
250	adcl	$0,%edx
251	addl	16(%edi),%eax
252	adcl	$0,%edx
253	decl	%ecx
254	movl	%eax,16(%edi)
255	movl	%edx,%esi
256	jz	L009maw_end
257	# Tail Round 5
258	movl	20(%ebx),%eax
259	mull	%ebp
260	addl	%esi,%eax
261	adcl	$0,%edx
262	addl	20(%edi),%eax
263	adcl	$0,%edx
264	decl	%ecx
265	movl	%eax,20(%edi)
266	movl	%edx,%esi
267	jz	L009maw_end
268	# Tail Round 6
269	movl	24(%ebx),%eax
270	mull	%ebp
271	addl	%esi,%eax
272	adcl	$0,%edx
273	addl	24(%edi),%eax
274	adcl	$0,%edx
275	movl	%eax,24(%edi)
276	movl	%edx,%esi
277L009maw_end:
278	movl	%esi,%eax
279	popl	%ecx
280	popl	%edi
281	popl	%esi
282	popl	%ebx
283	popl	%ebp
284	ret
285.globl	_bn_mul_words
286.private_extern	_bn_mul_words
287.align	4
288_bn_mul_words:
289L_bn_mul_words_begin:
290	call	L010PIC_me_up
291L010PIC_me_up:
292	popl	%eax
293	movl	L_OPENSSL_ia32cap_P$non_lazy_ptr-L010PIC_me_up(%eax),%eax
294	btl	$26,(%eax)
295	jnc	L011mw_non_sse2
296	movl	4(%esp),%eax
297	movl	8(%esp),%edx
298	movl	12(%esp),%ecx
299	movd	16(%esp),%mm0
300	pxor	%mm1,%mm1
301.align	4,0x90
302L012mw_sse2_loop:
303	movd	(%edx),%mm2
304	pmuludq	%mm0,%mm2
305	leal	4(%edx),%edx
306	paddq	%mm2,%mm1
307	movd	%mm1,(%eax)
308	subl	$1,%ecx
309	psrlq	$32,%mm1
310	leal	4(%eax),%eax
311	jnz	L012mw_sse2_loop
312	movd	%mm1,%eax
313	emms
314	ret
315.align	4,0x90
316L011mw_non_sse2:
317	pushl	%ebp
318	pushl	%ebx
319	pushl	%esi
320	pushl	%edi
321
322	xorl	%esi,%esi
323	movl	20(%esp),%edi
324	movl	24(%esp),%ebx
325	movl	28(%esp),%ebp
326	movl	32(%esp),%ecx
327	andl	$4294967288,%ebp
328	jz	L013mw_finish
329L014mw_loop:
330	# Round 0
331	movl	(%ebx),%eax
332	mull	%ecx
333	addl	%esi,%eax
334	adcl	$0,%edx
335	movl	%eax,(%edi)
336	movl	%edx,%esi
337	# Round 4
338	movl	4(%ebx),%eax
339	mull	%ecx
340	addl	%esi,%eax
341	adcl	$0,%edx
342	movl	%eax,4(%edi)
343	movl	%edx,%esi
344	# Round 8
345	movl	8(%ebx),%eax
346	mull	%ecx
347	addl	%esi,%eax
348	adcl	$0,%edx
349	movl	%eax,8(%edi)
350	movl	%edx,%esi
351	# Round 12
352	movl	12(%ebx),%eax
353	mull	%ecx
354	addl	%esi,%eax
355	adcl	$0,%edx
356	movl	%eax,12(%edi)
357	movl	%edx,%esi
358	# Round 16
359	movl	16(%ebx),%eax
360	mull	%ecx
361	addl	%esi,%eax
362	adcl	$0,%edx
363	movl	%eax,16(%edi)
364	movl	%edx,%esi
365	# Round 20
366	movl	20(%ebx),%eax
367	mull	%ecx
368	addl	%esi,%eax
369	adcl	$0,%edx
370	movl	%eax,20(%edi)
371	movl	%edx,%esi
372	# Round 24
373	movl	24(%ebx),%eax
374	mull	%ecx
375	addl	%esi,%eax
376	adcl	$0,%edx
377	movl	%eax,24(%edi)
378	movl	%edx,%esi
379	# Round 28
380	movl	28(%ebx),%eax
381	mull	%ecx
382	addl	%esi,%eax
383	adcl	$0,%edx
384	movl	%eax,28(%edi)
385	movl	%edx,%esi
386
387	addl	$32,%ebx
388	addl	$32,%edi
389	subl	$8,%ebp
390	jz	L013mw_finish
391	jmp	L014mw_loop
392L013mw_finish:
393	movl	28(%esp),%ebp
394	andl	$7,%ebp
395	jnz	L015mw_finish2
396	jmp	L016mw_end
397L015mw_finish2:
398	# Tail Round 0
399	movl	(%ebx),%eax
400	mull	%ecx
401	addl	%esi,%eax
402	adcl	$0,%edx
403	movl	%eax,(%edi)
404	movl	%edx,%esi
405	decl	%ebp
406	jz	L016mw_end
407	# Tail Round 1
408	movl	4(%ebx),%eax
409	mull	%ecx
410	addl	%esi,%eax
411	adcl	$0,%edx
412	movl	%eax,4(%edi)
413	movl	%edx,%esi
414	decl	%ebp
415	jz	L016mw_end
416	# Tail Round 2
417	movl	8(%ebx),%eax
418	mull	%ecx
419	addl	%esi,%eax
420	adcl	$0,%edx
421	movl	%eax,8(%edi)
422	movl	%edx,%esi
423	decl	%ebp
424	jz	L016mw_end
425	# Tail Round 3
426	movl	12(%ebx),%eax
427	mull	%ecx
428	addl	%esi,%eax
429	adcl	$0,%edx
430	movl	%eax,12(%edi)
431	movl	%edx,%esi
432	decl	%ebp
433	jz	L016mw_end
434	# Tail Round 4
435	movl	16(%ebx),%eax
436	mull	%ecx
437	addl	%esi,%eax
438	adcl	$0,%edx
439	movl	%eax,16(%edi)
440	movl	%edx,%esi
441	decl	%ebp
442	jz	L016mw_end
443	# Tail Round 5
444	movl	20(%ebx),%eax
445	mull	%ecx
446	addl	%esi,%eax
447	adcl	$0,%edx
448	movl	%eax,20(%edi)
449	movl	%edx,%esi
450	decl	%ebp
451	jz	L016mw_end
452	# Tail Round 6
453	movl	24(%ebx),%eax
454	mull	%ecx
455	addl	%esi,%eax
456	adcl	$0,%edx
457	movl	%eax,24(%edi)
458	movl	%edx,%esi
459L016mw_end:
460	movl	%esi,%eax
461	popl	%edi
462	popl	%esi
463	popl	%ebx
464	popl	%ebp
465	ret
466.globl	_bn_sqr_words
467.private_extern	_bn_sqr_words
468.align	4
469_bn_sqr_words:
470L_bn_sqr_words_begin:
471	call	L017PIC_me_up
472L017PIC_me_up:
473	popl	%eax
474	movl	L_OPENSSL_ia32cap_P$non_lazy_ptr-L017PIC_me_up(%eax),%eax
475	btl	$26,(%eax)
476	jnc	L018sqr_non_sse2
477	movl	4(%esp),%eax
478	movl	8(%esp),%edx
479	movl	12(%esp),%ecx
480.align	4,0x90
481L019sqr_sse2_loop:
482	movd	(%edx),%mm0
483	pmuludq	%mm0,%mm0
484	leal	4(%edx),%edx
485	movq	%mm0,(%eax)
486	subl	$1,%ecx
487	leal	8(%eax),%eax
488	jnz	L019sqr_sse2_loop
489	emms
490	ret
491.align	4,0x90
492L018sqr_non_sse2:
493	pushl	%ebp
494	pushl	%ebx
495	pushl	%esi
496	pushl	%edi
497
498	movl	20(%esp),%esi
499	movl	24(%esp),%edi
500	movl	28(%esp),%ebx
501	andl	$4294967288,%ebx
502	jz	L020sw_finish
503L021sw_loop:
504	# Round 0
505	movl	(%edi),%eax
506	mull	%eax
507	movl	%eax,(%esi)
508	movl	%edx,4(%esi)
509	# Round 4
510	movl	4(%edi),%eax
511	mull	%eax
512	movl	%eax,8(%esi)
513	movl	%edx,12(%esi)
514	# Round 8
515	movl	8(%edi),%eax
516	mull	%eax
517	movl	%eax,16(%esi)
518	movl	%edx,20(%esi)
519	# Round 12
520	movl	12(%edi),%eax
521	mull	%eax
522	movl	%eax,24(%esi)
523	movl	%edx,28(%esi)
524	# Round 16
525	movl	16(%edi),%eax
526	mull	%eax
527	movl	%eax,32(%esi)
528	movl	%edx,36(%esi)
529	# Round 20
530	movl	20(%edi),%eax
531	mull	%eax
532	movl	%eax,40(%esi)
533	movl	%edx,44(%esi)
534	# Round 24
535	movl	24(%edi),%eax
536	mull	%eax
537	movl	%eax,48(%esi)
538	movl	%edx,52(%esi)
539	# Round 28
540	movl	28(%edi),%eax
541	mull	%eax
542	movl	%eax,56(%esi)
543	movl	%edx,60(%esi)
544
545	addl	$32,%edi
546	addl	$64,%esi
547	subl	$8,%ebx
548	jnz	L021sw_loop
549L020sw_finish:
550	movl	28(%esp),%ebx
551	andl	$7,%ebx
552	jz	L022sw_end
553	# Tail Round 0
554	movl	(%edi),%eax
555	mull	%eax
556	movl	%eax,(%esi)
557	decl	%ebx
558	movl	%edx,4(%esi)
559	jz	L022sw_end
560	# Tail Round 1
561	movl	4(%edi),%eax
562	mull	%eax
563	movl	%eax,8(%esi)
564	decl	%ebx
565	movl	%edx,12(%esi)
566	jz	L022sw_end
567	# Tail Round 2
568	movl	8(%edi),%eax
569	mull	%eax
570	movl	%eax,16(%esi)
571	decl	%ebx
572	movl	%edx,20(%esi)
573	jz	L022sw_end
574	# Tail Round 3
575	movl	12(%edi),%eax
576	mull	%eax
577	movl	%eax,24(%esi)
578	decl	%ebx
579	movl	%edx,28(%esi)
580	jz	L022sw_end
581	# Tail Round 4
582	movl	16(%edi),%eax
583	mull	%eax
584	movl	%eax,32(%esi)
585	decl	%ebx
586	movl	%edx,36(%esi)
587	jz	L022sw_end
588	# Tail Round 5
589	movl	20(%edi),%eax
590	mull	%eax
591	movl	%eax,40(%esi)
592	decl	%ebx
593	movl	%edx,44(%esi)
594	jz	L022sw_end
595	# Tail Round 6
596	movl	24(%edi),%eax
597	mull	%eax
598	movl	%eax,48(%esi)
599	movl	%edx,52(%esi)
600L022sw_end:
601	popl	%edi
602	popl	%esi
603	popl	%ebx
604	popl	%ebp
605	ret
606.globl	_bn_div_words
607.private_extern	_bn_div_words
608.align	4
609_bn_div_words:
610L_bn_div_words_begin:
611	movl	4(%esp),%edx
612	movl	8(%esp),%eax
613	movl	12(%esp),%ecx
614	divl	%ecx
615	ret
616.globl	_bn_add_words
617.private_extern	_bn_add_words
618.align	4
619_bn_add_words:
620L_bn_add_words_begin:
621	pushl	%ebp
622	pushl	%ebx
623	pushl	%esi
624	pushl	%edi
625
626	movl	20(%esp),%ebx
627	movl	24(%esp),%esi
628	movl	28(%esp),%edi
629	movl	32(%esp),%ebp
630	xorl	%eax,%eax
631	andl	$4294967288,%ebp
632	jz	L023aw_finish
633L024aw_loop:
634	# Round 0
635	movl	(%esi),%ecx
636	movl	(%edi),%edx
637	addl	%eax,%ecx
638	movl	$0,%eax
639	adcl	%eax,%eax
640	addl	%edx,%ecx
641	adcl	$0,%eax
642	movl	%ecx,(%ebx)
643	# Round 1
644	movl	4(%esi),%ecx
645	movl	4(%edi),%edx
646	addl	%eax,%ecx
647	movl	$0,%eax
648	adcl	%eax,%eax
649	addl	%edx,%ecx
650	adcl	$0,%eax
651	movl	%ecx,4(%ebx)
652	# Round 2
653	movl	8(%esi),%ecx
654	movl	8(%edi),%edx
655	addl	%eax,%ecx
656	movl	$0,%eax
657	adcl	%eax,%eax
658	addl	%edx,%ecx
659	adcl	$0,%eax
660	movl	%ecx,8(%ebx)
661	# Round 3
662	movl	12(%esi),%ecx
663	movl	12(%edi),%edx
664	addl	%eax,%ecx
665	movl	$0,%eax
666	adcl	%eax,%eax
667	addl	%edx,%ecx
668	adcl	$0,%eax
669	movl	%ecx,12(%ebx)
670	# Round 4
671	movl	16(%esi),%ecx
672	movl	16(%edi),%edx
673	addl	%eax,%ecx
674	movl	$0,%eax
675	adcl	%eax,%eax
676	addl	%edx,%ecx
677	adcl	$0,%eax
678	movl	%ecx,16(%ebx)
679	# Round 5
680	movl	20(%esi),%ecx
681	movl	20(%edi),%edx
682	addl	%eax,%ecx
683	movl	$0,%eax
684	adcl	%eax,%eax
685	addl	%edx,%ecx
686	adcl	$0,%eax
687	movl	%ecx,20(%ebx)
688	# Round 6
689	movl	24(%esi),%ecx
690	movl	24(%edi),%edx
691	addl	%eax,%ecx
692	movl	$0,%eax
693	adcl	%eax,%eax
694	addl	%edx,%ecx
695	adcl	$0,%eax
696	movl	%ecx,24(%ebx)
697	# Round 7
698	movl	28(%esi),%ecx
699	movl	28(%edi),%edx
700	addl	%eax,%ecx
701	movl	$0,%eax
702	adcl	%eax,%eax
703	addl	%edx,%ecx
704	adcl	$0,%eax
705	movl	%ecx,28(%ebx)
706
707	addl	$32,%esi
708	addl	$32,%edi
709	addl	$32,%ebx
710	subl	$8,%ebp
711	jnz	L024aw_loop
712L023aw_finish:
713	movl	32(%esp),%ebp
714	andl	$7,%ebp
715	jz	L025aw_end
716	# Tail Round 0
717	movl	(%esi),%ecx
718	movl	(%edi),%edx
719	addl	%eax,%ecx
720	movl	$0,%eax
721	adcl	%eax,%eax
722	addl	%edx,%ecx
723	adcl	$0,%eax
724	decl	%ebp
725	movl	%ecx,(%ebx)
726	jz	L025aw_end
727	# Tail Round 1
728	movl	4(%esi),%ecx
729	movl	4(%edi),%edx
730	addl	%eax,%ecx
731	movl	$0,%eax
732	adcl	%eax,%eax
733	addl	%edx,%ecx
734	adcl	$0,%eax
735	decl	%ebp
736	movl	%ecx,4(%ebx)
737	jz	L025aw_end
738	# Tail Round 2
739	movl	8(%esi),%ecx
740	movl	8(%edi),%edx
741	addl	%eax,%ecx
742	movl	$0,%eax
743	adcl	%eax,%eax
744	addl	%edx,%ecx
745	adcl	$0,%eax
746	decl	%ebp
747	movl	%ecx,8(%ebx)
748	jz	L025aw_end
749	# Tail Round 3
750	movl	12(%esi),%ecx
751	movl	12(%edi),%edx
752	addl	%eax,%ecx
753	movl	$0,%eax
754	adcl	%eax,%eax
755	addl	%edx,%ecx
756	adcl	$0,%eax
757	decl	%ebp
758	movl	%ecx,12(%ebx)
759	jz	L025aw_end
760	# Tail Round 4
761	movl	16(%esi),%ecx
762	movl	16(%edi),%edx
763	addl	%eax,%ecx
764	movl	$0,%eax
765	adcl	%eax,%eax
766	addl	%edx,%ecx
767	adcl	$0,%eax
768	decl	%ebp
769	movl	%ecx,16(%ebx)
770	jz	L025aw_end
771	# Tail Round 5
772	movl	20(%esi),%ecx
773	movl	20(%edi),%edx
774	addl	%eax,%ecx
775	movl	$0,%eax
776	adcl	%eax,%eax
777	addl	%edx,%ecx
778	adcl	$0,%eax
779	decl	%ebp
780	movl	%ecx,20(%ebx)
781	jz	L025aw_end
782	# Tail Round 6
783	movl	24(%esi),%ecx
784	movl	24(%edi),%edx
785	addl	%eax,%ecx
786	movl	$0,%eax
787	adcl	%eax,%eax
788	addl	%edx,%ecx
789	adcl	$0,%eax
790	movl	%ecx,24(%ebx)
791L025aw_end:
792	popl	%edi
793	popl	%esi
794	popl	%ebx
795	popl	%ebp
796	ret
797.globl	_bn_sub_words
798.private_extern	_bn_sub_words
799.align	4
800_bn_sub_words:
801L_bn_sub_words_begin:
802	pushl	%ebp
803	pushl	%ebx
804	pushl	%esi
805	pushl	%edi
806
807	movl	20(%esp),%ebx
808	movl	24(%esp),%esi
809	movl	28(%esp),%edi
810	movl	32(%esp),%ebp
811	xorl	%eax,%eax
812	andl	$4294967288,%ebp
813	jz	L026aw_finish
814L027aw_loop:
815	# Round 0
816	movl	(%esi),%ecx
817	movl	(%edi),%edx
818	subl	%eax,%ecx
819	movl	$0,%eax
820	adcl	%eax,%eax
821	subl	%edx,%ecx
822	adcl	$0,%eax
823	movl	%ecx,(%ebx)
824	# Round 1
825	movl	4(%esi),%ecx
826	movl	4(%edi),%edx
827	subl	%eax,%ecx
828	movl	$0,%eax
829	adcl	%eax,%eax
830	subl	%edx,%ecx
831	adcl	$0,%eax
832	movl	%ecx,4(%ebx)
833	# Round 2
834	movl	8(%esi),%ecx
835	movl	8(%edi),%edx
836	subl	%eax,%ecx
837	movl	$0,%eax
838	adcl	%eax,%eax
839	subl	%edx,%ecx
840	adcl	$0,%eax
841	movl	%ecx,8(%ebx)
842	# Round 3
843	movl	12(%esi),%ecx
844	movl	12(%edi),%edx
845	subl	%eax,%ecx
846	movl	$0,%eax
847	adcl	%eax,%eax
848	subl	%edx,%ecx
849	adcl	$0,%eax
850	movl	%ecx,12(%ebx)
851	# Round 4
852	movl	16(%esi),%ecx
853	movl	16(%edi),%edx
854	subl	%eax,%ecx
855	movl	$0,%eax
856	adcl	%eax,%eax
857	subl	%edx,%ecx
858	adcl	$0,%eax
859	movl	%ecx,16(%ebx)
860	# Round 5
861	movl	20(%esi),%ecx
862	movl	20(%edi),%edx
863	subl	%eax,%ecx
864	movl	$0,%eax
865	adcl	%eax,%eax
866	subl	%edx,%ecx
867	adcl	$0,%eax
868	movl	%ecx,20(%ebx)
869	# Round 6
870	movl	24(%esi),%ecx
871	movl	24(%edi),%edx
872	subl	%eax,%ecx
873	movl	$0,%eax
874	adcl	%eax,%eax
875	subl	%edx,%ecx
876	adcl	$0,%eax
877	movl	%ecx,24(%ebx)
878	# Round 7
879	movl	28(%esi),%ecx
880	movl	28(%edi),%edx
881	subl	%eax,%ecx
882	movl	$0,%eax
883	adcl	%eax,%eax
884	subl	%edx,%ecx
885	adcl	$0,%eax
886	movl	%ecx,28(%ebx)
887
888	addl	$32,%esi
889	addl	$32,%edi
890	addl	$32,%ebx
891	subl	$8,%ebp
892	jnz	L027aw_loop
893L026aw_finish:
894	movl	32(%esp),%ebp
895	andl	$7,%ebp
896	jz	L028aw_end
897	# Tail Round 0
898	movl	(%esi),%ecx
899	movl	(%edi),%edx
900	subl	%eax,%ecx
901	movl	$0,%eax
902	adcl	%eax,%eax
903	subl	%edx,%ecx
904	adcl	$0,%eax
905	decl	%ebp
906	movl	%ecx,(%ebx)
907	jz	L028aw_end
908	# Tail Round 1
909	movl	4(%esi),%ecx
910	movl	4(%edi),%edx
911	subl	%eax,%ecx
912	movl	$0,%eax
913	adcl	%eax,%eax
914	subl	%edx,%ecx
915	adcl	$0,%eax
916	decl	%ebp
917	movl	%ecx,4(%ebx)
918	jz	L028aw_end
919	# Tail Round 2
920	movl	8(%esi),%ecx
921	movl	8(%edi),%edx
922	subl	%eax,%ecx
923	movl	$0,%eax
924	adcl	%eax,%eax
925	subl	%edx,%ecx
926	adcl	$0,%eax
927	decl	%ebp
928	movl	%ecx,8(%ebx)
929	jz	L028aw_end
930	# Tail Round 3
931	movl	12(%esi),%ecx
932	movl	12(%edi),%edx
933	subl	%eax,%ecx
934	movl	$0,%eax
935	adcl	%eax,%eax
936	subl	%edx,%ecx
937	adcl	$0,%eax
938	decl	%ebp
939	movl	%ecx,12(%ebx)
940	jz	L028aw_end
941	# Tail Round 4
942	movl	16(%esi),%ecx
943	movl	16(%edi),%edx
944	subl	%eax,%ecx
945	movl	$0,%eax
946	adcl	%eax,%eax
947	subl	%edx,%ecx
948	adcl	$0,%eax
949	decl	%ebp
950	movl	%ecx,16(%ebx)
951	jz	L028aw_end
952	# Tail Round 5
953	movl	20(%esi),%ecx
954	movl	20(%edi),%edx
955	subl	%eax,%ecx
956	movl	$0,%eax
957	adcl	%eax,%eax
958	subl	%edx,%ecx
959	adcl	$0,%eax
960	decl	%ebp
961	movl	%ecx,20(%ebx)
962	jz	L028aw_end
963	# Tail Round 6
964	movl	24(%esi),%ecx
965	movl	24(%edi),%edx
966	subl	%eax,%ecx
967	movl	$0,%eax
968	adcl	%eax,%eax
969	subl	%edx,%ecx
970	adcl	$0,%eax
971	movl	%ecx,24(%ebx)
972L028aw_end:
973	popl	%edi
974	popl	%esi
975	popl	%ebx
976	popl	%ebp
977	ret
978.globl	_bn_sub_part_words
979.private_extern	_bn_sub_part_words
980.align	4
981_bn_sub_part_words:
982L_bn_sub_part_words_begin:
983	pushl	%ebp
984	pushl	%ebx
985	pushl	%esi
986	pushl	%edi
987
988	movl	20(%esp),%ebx
989	movl	24(%esp),%esi
990	movl	28(%esp),%edi
991	movl	32(%esp),%ebp
992	xorl	%eax,%eax
993	andl	$4294967288,%ebp
994	jz	L029aw_finish
995L030aw_loop:
996	# Round 0
997	movl	(%esi),%ecx
998	movl	(%edi),%edx
999	subl	%eax,%ecx
1000	movl	$0,%eax
1001	adcl	%eax,%eax
1002	subl	%edx,%ecx
1003	adcl	$0,%eax
1004	movl	%ecx,(%ebx)
1005	# Round 1
1006	movl	4(%esi),%ecx
1007	movl	4(%edi),%edx
1008	subl	%eax,%ecx
1009	movl	$0,%eax
1010	adcl	%eax,%eax
1011	subl	%edx,%ecx
1012	adcl	$0,%eax
1013	movl	%ecx,4(%ebx)
1014	# Round 2
1015	movl	8(%esi),%ecx
1016	movl	8(%edi),%edx
1017	subl	%eax,%ecx
1018	movl	$0,%eax
1019	adcl	%eax,%eax
1020	subl	%edx,%ecx
1021	adcl	$0,%eax
1022	movl	%ecx,8(%ebx)
1023	# Round 3
1024	movl	12(%esi),%ecx
1025	movl	12(%edi),%edx
1026	subl	%eax,%ecx
1027	movl	$0,%eax
1028	adcl	%eax,%eax
1029	subl	%edx,%ecx
1030	adcl	$0,%eax
1031	movl	%ecx,12(%ebx)
1032	# Round 4
1033	movl	16(%esi),%ecx
1034	movl	16(%edi),%edx
1035	subl	%eax,%ecx
1036	movl	$0,%eax
1037	adcl	%eax,%eax
1038	subl	%edx,%ecx
1039	adcl	$0,%eax
1040	movl	%ecx,16(%ebx)
1041	# Round 5
1042	movl	20(%esi),%ecx
1043	movl	20(%edi),%edx
1044	subl	%eax,%ecx
1045	movl	$0,%eax
1046	adcl	%eax,%eax
1047	subl	%edx,%ecx
1048	adcl	$0,%eax
1049	movl	%ecx,20(%ebx)
1050	# Round 6
1051	movl	24(%esi),%ecx
1052	movl	24(%edi),%edx
1053	subl	%eax,%ecx
1054	movl	$0,%eax
1055	adcl	%eax,%eax
1056	subl	%edx,%ecx
1057	adcl	$0,%eax
1058	movl	%ecx,24(%ebx)
1059	# Round 7
1060	movl	28(%esi),%ecx
1061	movl	28(%edi),%edx
1062	subl	%eax,%ecx
1063	movl	$0,%eax
1064	adcl	%eax,%eax
1065	subl	%edx,%ecx
1066	adcl	$0,%eax
1067	movl	%ecx,28(%ebx)
1068
1069	addl	$32,%esi
1070	addl	$32,%edi
1071	addl	$32,%ebx
1072	subl	$8,%ebp
1073	jnz	L030aw_loop
1074L029aw_finish:
1075	movl	32(%esp),%ebp
1076	andl	$7,%ebp
1077	jz	L031aw_end
1078	# Tail Round 0
1079	movl	(%esi),%ecx
1080	movl	(%edi),%edx
1081	subl	%eax,%ecx
1082	movl	$0,%eax
1083	adcl	%eax,%eax
1084	subl	%edx,%ecx
1085	adcl	$0,%eax
1086	movl	%ecx,(%ebx)
1087	addl	$4,%esi
1088	addl	$4,%edi
1089	addl	$4,%ebx
1090	decl	%ebp
1091	jz	L031aw_end
1092	# Tail Round 1
1093	movl	(%esi),%ecx
1094	movl	(%edi),%edx
1095	subl	%eax,%ecx
1096	movl	$0,%eax
1097	adcl	%eax,%eax
1098	subl	%edx,%ecx
1099	adcl	$0,%eax
1100	movl	%ecx,(%ebx)
1101	addl	$4,%esi
1102	addl	$4,%edi
1103	addl	$4,%ebx
1104	decl	%ebp
1105	jz	L031aw_end
1106	# Tail Round 2
1107	movl	(%esi),%ecx
1108	movl	(%edi),%edx
1109	subl	%eax,%ecx
1110	movl	$0,%eax
1111	adcl	%eax,%eax
1112	subl	%edx,%ecx
1113	adcl	$0,%eax
1114	movl	%ecx,(%ebx)
1115	addl	$4,%esi
1116	addl	$4,%edi
1117	addl	$4,%ebx
1118	decl	%ebp
1119	jz	L031aw_end
1120	# Tail Round 3
1121	movl	(%esi),%ecx
1122	movl	(%edi),%edx
1123	subl	%eax,%ecx
1124	movl	$0,%eax
1125	adcl	%eax,%eax
1126	subl	%edx,%ecx
1127	adcl	$0,%eax
1128	movl	%ecx,(%ebx)
1129	addl	$4,%esi
1130	addl	$4,%edi
1131	addl	$4,%ebx
1132	decl	%ebp
1133	jz	L031aw_end
1134	# Tail Round 4
1135	movl	(%esi),%ecx
1136	movl	(%edi),%edx
1137	subl	%eax,%ecx
1138	movl	$0,%eax
1139	adcl	%eax,%eax
1140	subl	%edx,%ecx
1141	adcl	$0,%eax
1142	movl	%ecx,(%ebx)
1143	addl	$4,%esi
1144	addl	$4,%edi
1145	addl	$4,%ebx
1146	decl	%ebp
1147	jz	L031aw_end
1148	# Tail Round 5
1149	movl	(%esi),%ecx
1150	movl	(%edi),%edx
1151	subl	%eax,%ecx
1152	movl	$0,%eax
1153	adcl	%eax,%eax
1154	subl	%edx,%ecx
1155	adcl	$0,%eax
1156	movl	%ecx,(%ebx)
1157	addl	$4,%esi
1158	addl	$4,%edi
1159	addl	$4,%ebx
1160	decl	%ebp
1161	jz	L031aw_end
1162	# Tail Round 6
1163	movl	(%esi),%ecx
1164	movl	(%edi),%edx
1165	subl	%eax,%ecx
1166	movl	$0,%eax
1167	adcl	%eax,%eax
1168	subl	%edx,%ecx
1169	adcl	$0,%eax
1170	movl	%ecx,(%ebx)
1171	addl	$4,%esi
1172	addl	$4,%edi
1173	addl	$4,%ebx
1174L031aw_end:
1175	cmpl	$0,36(%esp)
1176	je	L032pw_end
1177	movl	36(%esp),%ebp
1178	cmpl	$0,%ebp
1179	je	L032pw_end
1180	jge	L033pw_pos
1181	# pw_neg
1182	movl	$0,%edx
1183	subl	%ebp,%edx
1184	movl	%edx,%ebp
1185	andl	$4294967288,%ebp
1186	jz	L034pw_neg_finish
1187L035pw_neg_loop:
1188	# dl<0 Round 0
1189	movl	$0,%ecx
1190	movl	(%edi),%edx
1191	subl	%eax,%ecx
1192	movl	$0,%eax
1193	adcl	%eax,%eax
1194	subl	%edx,%ecx
1195	adcl	$0,%eax
1196	movl	%ecx,(%ebx)
1197	# dl<0 Round 1
1198	movl	$0,%ecx
1199	movl	4(%edi),%edx
1200	subl	%eax,%ecx
1201	movl	$0,%eax
1202	adcl	%eax,%eax
1203	subl	%edx,%ecx
1204	adcl	$0,%eax
1205	movl	%ecx,4(%ebx)
1206	# dl<0 Round 2
1207	movl	$0,%ecx
1208	movl	8(%edi),%edx
1209	subl	%eax,%ecx
1210	movl	$0,%eax
1211	adcl	%eax,%eax
1212	subl	%edx,%ecx
1213	adcl	$0,%eax
1214	movl	%ecx,8(%ebx)
1215	# dl<0 Round 3
1216	movl	$0,%ecx
1217	movl	12(%edi),%edx
1218	subl	%eax,%ecx
1219	movl	$0,%eax
1220	adcl	%eax,%eax
1221	subl	%edx,%ecx
1222	adcl	$0,%eax
1223	movl	%ecx,12(%ebx)
1224	# dl<0 Round 4
1225	movl	$0,%ecx
1226	movl	16(%edi),%edx
1227	subl	%eax,%ecx
1228	movl	$0,%eax
1229	adcl	%eax,%eax
1230	subl	%edx,%ecx
1231	adcl	$0,%eax
1232	movl	%ecx,16(%ebx)
1233	# dl<0 Round 5
1234	movl	$0,%ecx
1235	movl	20(%edi),%edx
1236	subl	%eax,%ecx
1237	movl	$0,%eax
1238	adcl	%eax,%eax
1239	subl	%edx,%ecx
1240	adcl	$0,%eax
1241	movl	%ecx,20(%ebx)
1242	# dl<0 Round 6
1243	movl	$0,%ecx
1244	movl	24(%edi),%edx
1245	subl	%eax,%ecx
1246	movl	$0,%eax
1247	adcl	%eax,%eax
1248	subl	%edx,%ecx
1249	adcl	$0,%eax
1250	movl	%ecx,24(%ebx)
1251	# dl<0 Round 7
1252	movl	$0,%ecx
1253	movl	28(%edi),%edx
1254	subl	%eax,%ecx
1255	movl	$0,%eax
1256	adcl	%eax,%eax
1257	subl	%edx,%ecx
1258	adcl	$0,%eax
1259	movl	%ecx,28(%ebx)
1260
1261	addl	$32,%edi
1262	addl	$32,%ebx
1263	subl	$8,%ebp
1264	jnz	L035pw_neg_loop
1265L034pw_neg_finish:
1266	movl	36(%esp),%edx
1267	movl	$0,%ebp
1268	subl	%edx,%ebp
1269	andl	$7,%ebp
1270	jz	L032pw_end
1271	# dl<0 Tail Round 0
1272	movl	$0,%ecx
1273	movl	(%edi),%edx
1274	subl	%eax,%ecx
1275	movl	$0,%eax
1276	adcl	%eax,%eax
1277	subl	%edx,%ecx
1278	adcl	$0,%eax
1279	decl	%ebp
1280	movl	%ecx,(%ebx)
1281	jz	L032pw_end
1282	# dl<0 Tail Round 1
1283	movl	$0,%ecx
1284	movl	4(%edi),%edx
1285	subl	%eax,%ecx
1286	movl	$0,%eax
1287	adcl	%eax,%eax
1288	subl	%edx,%ecx
1289	adcl	$0,%eax
1290	decl	%ebp
1291	movl	%ecx,4(%ebx)
1292	jz	L032pw_end
1293	# dl<0 Tail Round 2
1294	movl	$0,%ecx
1295	movl	8(%edi),%edx
1296	subl	%eax,%ecx
1297	movl	$0,%eax
1298	adcl	%eax,%eax
1299	subl	%edx,%ecx
1300	adcl	$0,%eax
1301	decl	%ebp
1302	movl	%ecx,8(%ebx)
1303	jz	L032pw_end
1304	# dl<0 Tail Round 3
1305	movl	$0,%ecx
1306	movl	12(%edi),%edx
1307	subl	%eax,%ecx
1308	movl	$0,%eax
1309	adcl	%eax,%eax
1310	subl	%edx,%ecx
1311	adcl	$0,%eax
1312	decl	%ebp
1313	movl	%ecx,12(%ebx)
1314	jz	L032pw_end
1315	# dl<0 Tail Round 4
1316	movl	$0,%ecx
1317	movl	16(%edi),%edx
1318	subl	%eax,%ecx
1319	movl	$0,%eax
1320	adcl	%eax,%eax
1321	subl	%edx,%ecx
1322	adcl	$0,%eax
1323	decl	%ebp
1324	movl	%ecx,16(%ebx)
1325	jz	L032pw_end
1326	# dl<0 Tail Round 5
1327	movl	$0,%ecx
1328	movl	20(%edi),%edx
1329	subl	%eax,%ecx
1330	movl	$0,%eax
1331	adcl	%eax,%eax
1332	subl	%edx,%ecx
1333	adcl	$0,%eax
1334	decl	%ebp
1335	movl	%ecx,20(%ebx)
1336	jz	L032pw_end
1337	# dl<0 Tail Round 6
1338	movl	$0,%ecx
1339	movl	24(%edi),%edx
1340	subl	%eax,%ecx
1341	movl	$0,%eax
1342	adcl	%eax,%eax
1343	subl	%edx,%ecx
1344	adcl	$0,%eax
1345	movl	%ecx,24(%ebx)
1346	jmp	L032pw_end
1347L033pw_pos:
1348	andl	$4294967288,%ebp
1349	jz	L036pw_pos_finish
1350L037pw_pos_loop:
1351	# dl>0 Round 0
1352	movl	(%esi),%ecx
1353	subl	%eax,%ecx
1354	movl	%ecx,(%ebx)
1355	jnc	L038pw_nc0
1356	# dl>0 Round 1
1357	movl	4(%esi),%ecx
1358	subl	%eax,%ecx
1359	movl	%ecx,4(%ebx)
1360	jnc	L039pw_nc1
1361	# dl>0 Round 2
1362	movl	8(%esi),%ecx
1363	subl	%eax,%ecx
1364	movl	%ecx,8(%ebx)
1365	jnc	L040pw_nc2
1366	# dl>0 Round 3
1367	movl	12(%esi),%ecx
1368	subl	%eax,%ecx
1369	movl	%ecx,12(%ebx)
1370	jnc	L041pw_nc3
1371	# dl>0 Round 4
1372	movl	16(%esi),%ecx
1373	subl	%eax,%ecx
1374	movl	%ecx,16(%ebx)
1375	jnc	L042pw_nc4
1376	# dl>0 Round 5
1377	movl	20(%esi),%ecx
1378	subl	%eax,%ecx
1379	movl	%ecx,20(%ebx)
1380	jnc	L043pw_nc5
1381	# dl>0 Round 6
1382	movl	24(%esi),%ecx
1383	subl	%eax,%ecx
1384	movl	%ecx,24(%ebx)
1385	jnc	L044pw_nc6
1386	# dl>0 Round 7
1387	movl	28(%esi),%ecx
1388	subl	%eax,%ecx
1389	movl	%ecx,28(%ebx)
1390	jnc	L045pw_nc7
1391
1392	addl	$32,%esi
1393	addl	$32,%ebx
1394	subl	$8,%ebp
1395	jnz	L037pw_pos_loop
1396L036pw_pos_finish:
1397	movl	36(%esp),%ebp
1398	andl	$7,%ebp
1399	jz	L032pw_end
1400	# dl>0 Tail Round 0
1401	movl	(%esi),%ecx
1402	subl	%eax,%ecx
1403	movl	%ecx,(%ebx)
1404	jnc	L046pw_tail_nc0
1405	decl	%ebp
1406	jz	L032pw_end
1407	# dl>0 Tail Round 1
1408	movl	4(%esi),%ecx
1409	subl	%eax,%ecx
1410	movl	%ecx,4(%ebx)
1411	jnc	L047pw_tail_nc1
1412	decl	%ebp
1413	jz	L032pw_end
1414	# dl>0 Tail Round 2
1415	movl	8(%esi),%ecx
1416	subl	%eax,%ecx
1417	movl	%ecx,8(%ebx)
1418	jnc	L048pw_tail_nc2
1419	decl	%ebp
1420	jz	L032pw_end
1421	# dl>0 Tail Round 3
1422	movl	12(%esi),%ecx
1423	subl	%eax,%ecx
1424	movl	%ecx,12(%ebx)
1425	jnc	L049pw_tail_nc3
1426	decl	%ebp
1427	jz	L032pw_end
1428	# dl>0 Tail Round 4
1429	movl	16(%esi),%ecx
1430	subl	%eax,%ecx
1431	movl	%ecx,16(%ebx)
1432	jnc	L050pw_tail_nc4
1433	decl	%ebp
1434	jz	L032pw_end
1435	# dl>0 Tail Round 5
1436	movl	20(%esi),%ecx
1437	subl	%eax,%ecx
1438	movl	%ecx,20(%ebx)
1439	jnc	L051pw_tail_nc5
1440	decl	%ebp
1441	jz	L032pw_end
1442	# dl>0 Tail Round 6
1443	movl	24(%esi),%ecx
1444	subl	%eax,%ecx
1445	movl	%ecx,24(%ebx)
1446	jnc	L052pw_tail_nc6
1447	movl	$1,%eax
1448	jmp	L032pw_end
1449L053pw_nc_loop:
1450	movl	(%esi),%ecx
1451	movl	%ecx,(%ebx)
1452L038pw_nc0:
1453	movl	4(%esi),%ecx
1454	movl	%ecx,4(%ebx)
1455L039pw_nc1:
1456	movl	8(%esi),%ecx
1457	movl	%ecx,8(%ebx)
1458L040pw_nc2:
1459	movl	12(%esi),%ecx
1460	movl	%ecx,12(%ebx)
1461L041pw_nc3:
1462	movl	16(%esi),%ecx
1463	movl	%ecx,16(%ebx)
1464L042pw_nc4:
1465	movl	20(%esi),%ecx
1466	movl	%ecx,20(%ebx)
1467L043pw_nc5:
1468	movl	24(%esi),%ecx
1469	movl	%ecx,24(%ebx)
1470L044pw_nc6:
1471	movl	28(%esi),%ecx
1472	movl	%ecx,28(%ebx)
1473L045pw_nc7:
1474
1475	addl	$32,%esi
1476	addl	$32,%ebx
1477	subl	$8,%ebp
1478	jnz	L053pw_nc_loop
1479	movl	36(%esp),%ebp
1480	andl	$7,%ebp
1481	jz	L054pw_nc_end
1482	movl	(%esi),%ecx
1483	movl	%ecx,(%ebx)
1484L046pw_tail_nc0:
1485	decl	%ebp
1486	jz	L054pw_nc_end
1487	movl	4(%esi),%ecx
1488	movl	%ecx,4(%ebx)
1489L047pw_tail_nc1:
1490	decl	%ebp
1491	jz	L054pw_nc_end
1492	movl	8(%esi),%ecx
1493	movl	%ecx,8(%ebx)
1494L048pw_tail_nc2:
1495	decl	%ebp
1496	jz	L054pw_nc_end
1497	movl	12(%esi),%ecx
1498	movl	%ecx,12(%ebx)
1499L049pw_tail_nc3:
1500	decl	%ebp
1501	jz	L054pw_nc_end
1502	movl	16(%esi),%ecx
1503	movl	%ecx,16(%ebx)
1504L050pw_tail_nc4:
1505	decl	%ebp
1506	jz	L054pw_nc_end
1507	movl	20(%esi),%ecx
1508	movl	%ecx,20(%ebx)
1509L051pw_tail_nc5:
1510	decl	%ebp
1511	jz	L054pw_nc_end
1512	movl	24(%esi),%ecx
1513	movl	%ecx,24(%ebx)
1514L052pw_tail_nc6:
1515L054pw_nc_end:
1516	movl	$0,%eax
1517L032pw_end:
1518	popl	%edi
1519	popl	%esi
1520	popl	%ebx
1521	popl	%ebp
1522	ret
1523.section __IMPORT,__pointers,non_lazy_symbol_pointers
1524L_OPENSSL_ia32cap_P$non_lazy_ptr:
1525.indirect_symbol	_OPENSSL_ia32cap_P
1526.long	0
1527#endif
1528