sha256-586.S revision 1.1
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	$6,%ecx
100	movl	%edx,%edi
101	rorl	$11,%edi
102	movl	20(%esp),%esi
103	xorl	%edi,%ecx
104	rorl	$14,%edi
105	xorl	%edi,%ecx
106	movl	24(%esp),%edi
107	addl	%ecx,%ebx
108	movl	%edx,16(%esp)
109	xorl	%edi,%esi
110	movl	%eax,%ecx
111	andl	%edx,%esi
112	movl	12(%esp),%edx
113	xorl	%edi,%esi
114	movl	%eax,%edi
115	addl	%esi,%ebx
116	rorl	$2,%ecx
117	addl	28(%esp),%ebx
118	rorl	$13,%edi
119	movl	4(%esp),%esi
120	xorl	%edi,%ecx
121	rorl	$9,%edi
122	addl	%ebx,%edx
123	xorl	%edi,%ecx
124	movl	8(%esp),%edi
125	addl	%ecx,%ebx
126	movl	%eax,(%esp)
127	movl	%eax,%ecx
128	subl	$4,%esp
129	orl	%esi,%eax
130	andl	%esi,%ecx
131	andl	%edi,%eax
132	movl	(%ebp),%esi
133	orl	%ecx,%eax
134	addl	$4,%ebp
135	addl	%ebx,%eax
136	addl	%esi,%edx
137	addl	%esi,%eax
138	cmpl	$3248222580,%esi
139	jne	.L00300_15
140	movl	152(%esp),%ebx
141.align	16
142.L00416_63:
143	movl	%ebx,%esi
144	movl	100(%esp),%ecx
145	shrl	$3,%ebx
146	rorl	$7,%esi
147	xorl	%esi,%ebx
148	rorl	$11,%esi
149	movl	%ecx,%edi
150	xorl	%esi,%ebx
151	shrl	$10,%ecx
152	movl	156(%esp),%esi
153	rorl	$17,%edi
154	xorl	%edi,%ecx
155	rorl	$2,%edi
156	addl	%esi,%ebx
157	xorl	%ecx,%edi
158	addl	%edi,%ebx
159	movl	%edx,%ecx
160	addl	120(%esp),%ebx
161	rorl	$6,%ecx
162	movl	%edx,%edi
163	rorl	$11,%edi
164	movl	20(%esp),%esi
165	xorl	%edi,%ecx
166	rorl	$14,%edi
167	movl	%ebx,92(%esp)
168	xorl	%edi,%ecx
169	movl	24(%esp),%edi
170	addl	%ecx,%ebx
171	movl	%edx,16(%esp)
172	xorl	%edi,%esi
173	movl	%eax,%ecx
174	andl	%edx,%esi
175	movl	12(%esp),%edx
176	xorl	%edi,%esi
177	movl	%eax,%edi
178	addl	%esi,%ebx
179	rorl	$2,%ecx
180	addl	28(%esp),%ebx
181	rorl	$13,%edi
182	movl	4(%esp),%esi
183	xorl	%edi,%ecx
184	rorl	$9,%edi
185	addl	%ebx,%edx
186	xorl	%edi,%ecx
187	movl	8(%esp),%edi
188	addl	%ecx,%ebx
189	movl	%eax,(%esp)
190	movl	%eax,%ecx
191	subl	$4,%esp
192	orl	%esi,%eax
193	andl	%esi,%ecx
194	andl	%edi,%eax
195	movl	(%ebp),%esi
196	orl	%ecx,%eax
197	addl	$4,%ebp
198	addl	%ebx,%eax
199	movl	152(%esp),%ebx
200	addl	%esi,%edx
201	addl	%esi,%eax
202	cmpl	$3329325298,%esi
203	jne	.L00416_63
204	movl	352(%esp),%esi
205	movl	4(%esp),%ebx
206	movl	8(%esp),%ecx
207	movl	12(%esp),%edi
208	addl	(%esi),%eax
209	addl	4(%esi),%ebx
210	addl	8(%esi),%ecx
211	addl	12(%esi),%edi
212	movl	%eax,(%esi)
213	movl	%ebx,4(%esi)
214	movl	%ecx,8(%esi)
215	movl	%edi,12(%esi)
216	movl	20(%esp),%eax
217	movl	24(%esp),%ebx
218	movl	28(%esp),%ecx
219	movl	356(%esp),%edi
220	addl	16(%esi),%edx
221	addl	20(%esi),%eax
222	addl	24(%esi),%ebx
223	addl	28(%esi),%ecx
224	movl	%edx,16(%esi)
225	movl	%eax,20(%esi)
226	movl	%ebx,24(%esi)
227	movl	%ecx,28(%esi)
228	addl	$352,%esp
229	subl	$256,%ebp
230	cmpl	8(%esp),%edi
231	jb	.L002loop
232	movl	12(%esp),%esp
233	popl	%edi
234	popl	%esi
235	popl	%ebx
236	popl	%ebp
237	ret
238.align	64
239.L001K256:
240.long	1116352408,1899447441,3049323471,3921009573
241.long	961987163,1508970993,2453635748,2870763221
242.long	3624381080,310598401,607225278,1426881987
243.long	1925078388,2162078206,2614888103,3248222580
244.long	3835390401,4022224774,264347078,604807628
245.long	770255983,1249150122,1555081692,1996064986
246.long	2554220882,2821834349,2952996808,3210313671
247.long	3336571891,3584528711,113926993,338241895
248.long	666307205,773529912,1294757372,1396182291
249.long	1695183700,1986661051,2177026350,2456956037
250.long	2730485921,2820302411,3259730800,3345764771
251.long	3516065817,3600352804,4094571909,275423344
252.long	430227734,506948616,659060556,883997877
253.long	958139571,1322822218,1537002063,1747873779
254.long	1955562222,2024104815,2227730452,2361852424
255.long	2428436474,2756734187,3204031479,3329325298
256.size	sha256_block_data_order,.-.L_sha256_block_data_order_begin
257.byte	83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
258.byte	110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
259.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
260.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
261.byte	62,0
262