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