sha256-586.S revision 9838b9f4b038825b061a6b323842f9d23729eac0
1.file	"sha512-586.s"
2.text
3.globl	sha256_block_data_order
4.type	sha256_block_data_order,@function
5.align	16
6sha256_block_data_order:
7.L_sha256_block_data_order_begin:
8	pushl	%ebp
9	pushl	%ebx
10	pushl	%esi
11	pushl	%edi
12	movl	20(%esp),%esi
13	movl	24(%esp),%edi
14	movl	28(%esp),%eax
15	movl	%esp,%ebx
16	call	.L000pic_point
17.L000pic_point:
18	popl	%ebp
19	leal	.L001K256-.L000pic_point(%ebp),%ebp
20	subl	$16,%esp
21	andl	$-64,%esp
22	shll	$6,%eax
23	addl	%edi,%eax
24	movl	%esi,(%esp)
25	movl	%edi,4(%esp)
26	movl	%eax,8(%esp)
27	movl	%ebx,12(%esp)
28.align	16
29.L002loop:
30	movl	(%edi),%eax
31	movl	4(%edi),%ebx
32	movl	8(%edi),%ecx
33	movl	12(%edi),%edx
34	bswap	%eax
35	bswap	%ebx
36	bswap	%ecx
37	bswap	%edx
38	pushl	%eax
39	pushl	%ebx
40	pushl	%ecx
41	pushl	%edx
42	movl	16(%edi),%eax
43	movl	20(%edi),%ebx
44	movl	24(%edi),%ecx
45	movl	28(%edi),%edx
46	bswap	%eax
47	bswap	%ebx
48	bswap	%ecx
49	bswap	%edx
50	pushl	%eax
51	pushl	%ebx
52	pushl	%ecx
53	pushl	%edx
54	movl	32(%edi),%eax
55	movl	36(%edi),%ebx
56	movl	40(%edi),%ecx
57	movl	44(%edi),%edx
58	bswap	%eax
59	bswap	%ebx
60	bswap	%ecx
61	bswap	%edx
62	pushl	%eax
63	pushl	%ebx
64	pushl	%ecx
65	pushl	%edx
66	movl	48(%edi),%eax
67	movl	52(%edi),%ebx
68	movl	56(%edi),%ecx
69	movl	60(%edi),%edx
70	bswap	%eax
71	bswap	%ebx
72	bswap	%ecx
73	bswap	%edx
74	pushl	%eax
75	pushl	%ebx
76	pushl	%ecx
77	pushl	%edx
78	addl	$64,%edi
79	subl	$32,%esp
80	movl	%edi,100(%esp)
81	movl	(%esi),%eax
82	movl	4(%esi),%ebx
83	movl	8(%esi),%ecx
84	movl	12(%esi),%edi
85	movl	%ebx,4(%esp)
86	movl	%ecx,8(%esp)
87	movl	%edi,12(%esp)
88	movl	16(%esi),%edx
89	movl	20(%esi),%ebx
90	movl	24(%esi),%ecx
91	movl	28(%esi),%edi
92	movl	%ebx,20(%esp)
93	movl	%ecx,24(%esp)
94	movl	%edi,28(%esp)
95.align	16
96.L00300_15:
97	movl	92(%esp),%ebx
98	movl	%edx,%ecx
99	rorl	$14,%ecx
100	movl	20(%esp),%esi
101	xorl	%edx,%ecx
102	rorl	$5,%ecx
103	xorl	%edx,%ecx
104	rorl	$6,%ecx
105	movl	24(%esp),%edi
106	addl	%ecx,%ebx
107	xorl	%edi,%esi
108	movl	%edx,16(%esp)
109	movl	%eax,%ecx
110	andl	%edx,%esi
111	movl	12(%esp),%edx
112	xorl	%edi,%esi
113	movl	%eax,%edi
114	addl	%esi,%ebx
115	rorl	$9,%ecx
116	addl	28(%esp),%ebx
117	xorl	%eax,%ecx
118	rorl	$11,%ecx
119	movl	4(%esp),%esi
120	xorl	%eax,%ecx
121	rorl	$2,%ecx
122	addl	%ebx,%edx
123	movl	8(%esp),%edi
124	addl	%ecx,%ebx
125	movl	%eax,(%esp)
126	movl	%eax,%ecx
127	subl	$4,%esp
128	orl	%esi,%eax
129	andl	%esi,%ecx
130	andl	%edi,%eax
131	movl	(%ebp),%esi
132	orl	%ecx,%eax
133	addl	$4,%ebp
134	addl	%ebx,%eax
135	addl	%esi,%edx
136	addl	%esi,%eax
137	cmpl	$3248222580,%esi
138	jne	.L00300_15
139	movl	152(%esp),%ebx
140.align	16
141.L00416_63:
142	movl	%ebx,%esi
143	movl	100(%esp),%ecx
144	rorl	$11,%esi
145	movl	%ecx,%edi
146	xorl	%ebx,%esi
147	rorl	$7,%esi
148	shrl	$3,%ebx
149	rorl	$2,%edi
150	xorl	%esi,%ebx
151	xorl	%ecx,%edi
152	rorl	$17,%edi
153	shrl	$10,%ecx
154	addl	156(%esp),%ebx
155	xorl	%ecx,%edi
156	addl	120(%esp),%ebx
157	movl	%edx,%ecx
158	addl	%edi,%ebx
159	rorl	$14,%ecx
160	movl	20(%esp),%esi
161	xorl	%edx,%ecx
162	rorl	$5,%ecx
163	movl	%ebx,92(%esp)
164	xorl	%edx,%ecx
165	rorl	$6,%ecx
166	movl	24(%esp),%edi
167	addl	%ecx,%ebx
168	xorl	%edi,%esi
169	movl	%edx,16(%esp)
170	movl	%eax,%ecx
171	andl	%edx,%esi
172	movl	12(%esp),%edx
173	xorl	%edi,%esi
174	movl	%eax,%edi
175	addl	%esi,%ebx
176	rorl	$9,%ecx
177	addl	28(%esp),%ebx
178	xorl	%eax,%ecx
179	rorl	$11,%ecx
180	movl	4(%esp),%esi
181	xorl	%eax,%ecx
182	rorl	$2,%ecx
183	addl	%ebx,%edx
184	movl	8(%esp),%edi
185	addl	%ecx,%ebx
186	movl	%eax,(%esp)
187	movl	%eax,%ecx
188	subl	$4,%esp
189	orl	%esi,%eax
190	andl	%esi,%ecx
191	andl	%edi,%eax
192	movl	(%ebp),%esi
193	orl	%ecx,%eax
194	addl	$4,%ebp
195	addl	%ebx,%eax
196	movl	152(%esp),%ebx
197	addl	%esi,%edx
198	addl	%esi,%eax
199	cmpl	$3329325298,%esi
200	jne	.L00416_63
201	movl	352(%esp),%esi
202	movl	4(%esp),%ebx
203	movl	8(%esp),%ecx
204	movl	12(%esp),%edi
205	addl	(%esi),%eax
206	addl	4(%esi),%ebx
207	addl	8(%esi),%ecx
208	addl	12(%esi),%edi
209	movl	%eax,(%esi)
210	movl	%ebx,4(%esi)
211	movl	%ecx,8(%esi)
212	movl	%edi,12(%esi)
213	movl	20(%esp),%eax
214	movl	24(%esp),%ebx
215	movl	28(%esp),%ecx
216	movl	356(%esp),%edi
217	addl	16(%esi),%edx
218	addl	20(%esi),%eax
219	addl	24(%esi),%ebx
220	addl	28(%esi),%ecx
221	movl	%edx,16(%esi)
222	movl	%eax,20(%esi)
223	movl	%ebx,24(%esi)
224	movl	%ecx,28(%esi)
225	addl	$352,%esp
226	subl	$256,%ebp
227	cmpl	8(%esp),%edi
228	jb	.L002loop
229	movl	12(%esp),%esp
230	popl	%edi
231	popl	%esi
232	popl	%ebx
233	popl	%ebp
234	ret
235.align	64
236.L001K256:
237.long	1116352408,1899447441,3049323471,3921009573
238.long	961987163,1508970993,2453635748,2870763221
239.long	3624381080,310598401,607225278,1426881987
240.long	1925078388,2162078206,2614888103,3248222580
241.long	3835390401,4022224774,264347078,604807628
242.long	770255983,1249150122,1555081692,1996064986
243.long	2554220882,2821834349,2952996808,3210313671
244.long	3336571891,3584528711,113926993,338241895
245.long	666307205,773529912,1294757372,1396182291
246.long	1695183700,1986661051,2177026350,2456956037
247.long	2730485921,2820302411,3259730800,3345764771
248.long	3516065817,3600352804,4094571909,275423344
249.long	430227734,506948616,659060556,883997877
250.long	958139571,1322822218,1537002063,1747873779
251.long	1955562222,2024104815,2227730452,2361852424
252.long	2428436474,2756734187,3204031479,3329325298
253.size	sha256_block_data_order,.-.L_sha256_block_data_order_begin
254.byte	83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
255.byte	110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
256.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
257.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
258.byte	62,0
259