• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; This file is generated from a similarly-named Perl script in the BoringSSL
2; source tree. Do not edit by hand.
3
4%ifdef BORINGSSL_PREFIX
5%include "boringssl_prefix_symbols_nasm.inc"
6%endif
7%ifidn __OUTPUT_FORMAT__,obj
8section	code	use32 class=code align=64
9%elifidn __OUTPUT_FORMAT__,win32
10$@feat.00 equ 1
11section	.text	code align=64
12%else
13section	.text	code
14%endif
15global	_md5_block_asm_data_order
16align	16
17_md5_block_asm_data_order:
18L$_md5_block_asm_data_order_begin:
19	push	esi
20	push	edi
21	mov	edi,DWORD [12+esp]
22	mov	esi,DWORD [16+esp]
23	mov	ecx,DWORD [20+esp]
24	push	ebp
25	shl	ecx,6
26	push	ebx
27	add	ecx,esi
28	sub	ecx,64
29	mov	eax,DWORD [edi]
30	push	ecx
31	mov	ebx,DWORD [4+edi]
32	mov	ecx,DWORD [8+edi]
33	mov	edx,DWORD [12+edi]
34L$000start:
35	;
36	; R0 section
37	mov	edi,ecx
38	mov	ebp,DWORD [esi]
39	; R0 0
40	xor	edi,edx
41	and	edi,ebx
42	lea	eax,[3614090360+ebp*1+eax]
43	xor	edi,edx
44	add	eax,edi
45	mov	edi,ebx
46	rol	eax,7
47	mov	ebp,DWORD [4+esi]
48	add	eax,ebx
49	; R0 1
50	xor	edi,ecx
51	and	edi,eax
52	lea	edx,[3905402710+ebp*1+edx]
53	xor	edi,ecx
54	add	edx,edi
55	mov	edi,eax
56	rol	edx,12
57	mov	ebp,DWORD [8+esi]
58	add	edx,eax
59	; R0 2
60	xor	edi,ebx
61	and	edi,edx
62	lea	ecx,[606105819+ebp*1+ecx]
63	xor	edi,ebx
64	add	ecx,edi
65	mov	edi,edx
66	rol	ecx,17
67	mov	ebp,DWORD [12+esi]
68	add	ecx,edx
69	; R0 3
70	xor	edi,eax
71	and	edi,ecx
72	lea	ebx,[3250441966+ebp*1+ebx]
73	xor	edi,eax
74	add	ebx,edi
75	mov	edi,ecx
76	rol	ebx,22
77	mov	ebp,DWORD [16+esi]
78	add	ebx,ecx
79	; R0 4
80	xor	edi,edx
81	and	edi,ebx
82	lea	eax,[4118548399+ebp*1+eax]
83	xor	edi,edx
84	add	eax,edi
85	mov	edi,ebx
86	rol	eax,7
87	mov	ebp,DWORD [20+esi]
88	add	eax,ebx
89	; R0 5
90	xor	edi,ecx
91	and	edi,eax
92	lea	edx,[1200080426+ebp*1+edx]
93	xor	edi,ecx
94	add	edx,edi
95	mov	edi,eax
96	rol	edx,12
97	mov	ebp,DWORD [24+esi]
98	add	edx,eax
99	; R0 6
100	xor	edi,ebx
101	and	edi,edx
102	lea	ecx,[2821735955+ebp*1+ecx]
103	xor	edi,ebx
104	add	ecx,edi
105	mov	edi,edx
106	rol	ecx,17
107	mov	ebp,DWORD [28+esi]
108	add	ecx,edx
109	; R0 7
110	xor	edi,eax
111	and	edi,ecx
112	lea	ebx,[4249261313+ebp*1+ebx]
113	xor	edi,eax
114	add	ebx,edi
115	mov	edi,ecx
116	rol	ebx,22
117	mov	ebp,DWORD [32+esi]
118	add	ebx,ecx
119	; R0 8
120	xor	edi,edx
121	and	edi,ebx
122	lea	eax,[1770035416+ebp*1+eax]
123	xor	edi,edx
124	add	eax,edi
125	mov	edi,ebx
126	rol	eax,7
127	mov	ebp,DWORD [36+esi]
128	add	eax,ebx
129	; R0 9
130	xor	edi,ecx
131	and	edi,eax
132	lea	edx,[2336552879+ebp*1+edx]
133	xor	edi,ecx
134	add	edx,edi
135	mov	edi,eax
136	rol	edx,12
137	mov	ebp,DWORD [40+esi]
138	add	edx,eax
139	; R0 10
140	xor	edi,ebx
141	and	edi,edx
142	lea	ecx,[4294925233+ebp*1+ecx]
143	xor	edi,ebx
144	add	ecx,edi
145	mov	edi,edx
146	rol	ecx,17
147	mov	ebp,DWORD [44+esi]
148	add	ecx,edx
149	; R0 11
150	xor	edi,eax
151	and	edi,ecx
152	lea	ebx,[2304563134+ebp*1+ebx]
153	xor	edi,eax
154	add	ebx,edi
155	mov	edi,ecx
156	rol	ebx,22
157	mov	ebp,DWORD [48+esi]
158	add	ebx,ecx
159	; R0 12
160	xor	edi,edx
161	and	edi,ebx
162	lea	eax,[1804603682+ebp*1+eax]
163	xor	edi,edx
164	add	eax,edi
165	mov	edi,ebx
166	rol	eax,7
167	mov	ebp,DWORD [52+esi]
168	add	eax,ebx
169	; R0 13
170	xor	edi,ecx
171	and	edi,eax
172	lea	edx,[4254626195+ebp*1+edx]
173	xor	edi,ecx
174	add	edx,edi
175	mov	edi,eax
176	rol	edx,12
177	mov	ebp,DWORD [56+esi]
178	add	edx,eax
179	; R0 14
180	xor	edi,ebx
181	and	edi,edx
182	lea	ecx,[2792965006+ebp*1+ecx]
183	xor	edi,ebx
184	add	ecx,edi
185	mov	edi,edx
186	rol	ecx,17
187	mov	ebp,DWORD [60+esi]
188	add	ecx,edx
189	; R0 15
190	xor	edi,eax
191	and	edi,ecx
192	lea	ebx,[1236535329+ebp*1+ebx]
193	xor	edi,eax
194	add	ebx,edi
195	mov	edi,ecx
196	rol	ebx,22
197	mov	ebp,DWORD [4+esi]
198	add	ebx,ecx
199	;
200	; R1 section
201	; R1 16
202	lea	eax,[4129170786+ebp*1+eax]
203	xor	edi,ebx
204	and	edi,edx
205	mov	ebp,DWORD [24+esi]
206	xor	edi,ecx
207	add	eax,edi
208	mov	edi,ebx
209	rol	eax,5
210	add	eax,ebx
211	; R1 17
212	lea	edx,[3225465664+ebp*1+edx]
213	xor	edi,eax
214	and	edi,ecx
215	mov	ebp,DWORD [44+esi]
216	xor	edi,ebx
217	add	edx,edi
218	mov	edi,eax
219	rol	edx,9
220	add	edx,eax
221	; R1 18
222	lea	ecx,[643717713+ebp*1+ecx]
223	xor	edi,edx
224	and	edi,ebx
225	mov	ebp,DWORD [esi]
226	xor	edi,eax
227	add	ecx,edi
228	mov	edi,edx
229	rol	ecx,14
230	add	ecx,edx
231	; R1 19
232	lea	ebx,[3921069994+ebp*1+ebx]
233	xor	edi,ecx
234	and	edi,eax
235	mov	ebp,DWORD [20+esi]
236	xor	edi,edx
237	add	ebx,edi
238	mov	edi,ecx
239	rol	ebx,20
240	add	ebx,ecx
241	; R1 20
242	lea	eax,[3593408605+ebp*1+eax]
243	xor	edi,ebx
244	and	edi,edx
245	mov	ebp,DWORD [40+esi]
246	xor	edi,ecx
247	add	eax,edi
248	mov	edi,ebx
249	rol	eax,5
250	add	eax,ebx
251	; R1 21
252	lea	edx,[38016083+ebp*1+edx]
253	xor	edi,eax
254	and	edi,ecx
255	mov	ebp,DWORD [60+esi]
256	xor	edi,ebx
257	add	edx,edi
258	mov	edi,eax
259	rol	edx,9
260	add	edx,eax
261	; R1 22
262	lea	ecx,[3634488961+ebp*1+ecx]
263	xor	edi,edx
264	and	edi,ebx
265	mov	ebp,DWORD [16+esi]
266	xor	edi,eax
267	add	ecx,edi
268	mov	edi,edx
269	rol	ecx,14
270	add	ecx,edx
271	; R1 23
272	lea	ebx,[3889429448+ebp*1+ebx]
273	xor	edi,ecx
274	and	edi,eax
275	mov	ebp,DWORD [36+esi]
276	xor	edi,edx
277	add	ebx,edi
278	mov	edi,ecx
279	rol	ebx,20
280	add	ebx,ecx
281	; R1 24
282	lea	eax,[568446438+ebp*1+eax]
283	xor	edi,ebx
284	and	edi,edx
285	mov	ebp,DWORD [56+esi]
286	xor	edi,ecx
287	add	eax,edi
288	mov	edi,ebx
289	rol	eax,5
290	add	eax,ebx
291	; R1 25
292	lea	edx,[3275163606+ebp*1+edx]
293	xor	edi,eax
294	and	edi,ecx
295	mov	ebp,DWORD [12+esi]
296	xor	edi,ebx
297	add	edx,edi
298	mov	edi,eax
299	rol	edx,9
300	add	edx,eax
301	; R1 26
302	lea	ecx,[4107603335+ebp*1+ecx]
303	xor	edi,edx
304	and	edi,ebx
305	mov	ebp,DWORD [32+esi]
306	xor	edi,eax
307	add	ecx,edi
308	mov	edi,edx
309	rol	ecx,14
310	add	ecx,edx
311	; R1 27
312	lea	ebx,[1163531501+ebp*1+ebx]
313	xor	edi,ecx
314	and	edi,eax
315	mov	ebp,DWORD [52+esi]
316	xor	edi,edx
317	add	ebx,edi
318	mov	edi,ecx
319	rol	ebx,20
320	add	ebx,ecx
321	; R1 28
322	lea	eax,[2850285829+ebp*1+eax]
323	xor	edi,ebx
324	and	edi,edx
325	mov	ebp,DWORD [8+esi]
326	xor	edi,ecx
327	add	eax,edi
328	mov	edi,ebx
329	rol	eax,5
330	add	eax,ebx
331	; R1 29
332	lea	edx,[4243563512+ebp*1+edx]
333	xor	edi,eax
334	and	edi,ecx
335	mov	ebp,DWORD [28+esi]
336	xor	edi,ebx
337	add	edx,edi
338	mov	edi,eax
339	rol	edx,9
340	add	edx,eax
341	; R1 30
342	lea	ecx,[1735328473+ebp*1+ecx]
343	xor	edi,edx
344	and	edi,ebx
345	mov	ebp,DWORD [48+esi]
346	xor	edi,eax
347	add	ecx,edi
348	mov	edi,edx
349	rol	ecx,14
350	add	ecx,edx
351	; R1 31
352	lea	ebx,[2368359562+ebp*1+ebx]
353	xor	edi,ecx
354	and	edi,eax
355	mov	ebp,DWORD [20+esi]
356	xor	edi,edx
357	add	ebx,edi
358	mov	edi,ecx
359	rol	ebx,20
360	add	ebx,ecx
361	;
362	; R2 section
363	; R2 32
364	xor	edi,edx
365	xor	edi,ebx
366	lea	eax,[4294588738+ebp*1+eax]
367	add	eax,edi
368	rol	eax,4
369	mov	ebp,DWORD [32+esi]
370	mov	edi,ebx
371	; R2 33
372	lea	edx,[2272392833+ebp*1+edx]
373	add	eax,ebx
374	xor	edi,ecx
375	xor	edi,eax
376	mov	ebp,DWORD [44+esi]
377	add	edx,edi
378	mov	edi,eax
379	rol	edx,11
380	add	edx,eax
381	; R2 34
382	xor	edi,ebx
383	xor	edi,edx
384	lea	ecx,[1839030562+ebp*1+ecx]
385	add	ecx,edi
386	rol	ecx,16
387	mov	ebp,DWORD [56+esi]
388	mov	edi,edx
389	; R2 35
390	lea	ebx,[4259657740+ebp*1+ebx]
391	add	ecx,edx
392	xor	edi,eax
393	xor	edi,ecx
394	mov	ebp,DWORD [4+esi]
395	add	ebx,edi
396	mov	edi,ecx
397	rol	ebx,23
398	add	ebx,ecx
399	; R2 36
400	xor	edi,edx
401	xor	edi,ebx
402	lea	eax,[2763975236+ebp*1+eax]
403	add	eax,edi
404	rol	eax,4
405	mov	ebp,DWORD [16+esi]
406	mov	edi,ebx
407	; R2 37
408	lea	edx,[1272893353+ebp*1+edx]
409	add	eax,ebx
410	xor	edi,ecx
411	xor	edi,eax
412	mov	ebp,DWORD [28+esi]
413	add	edx,edi
414	mov	edi,eax
415	rol	edx,11
416	add	edx,eax
417	; R2 38
418	xor	edi,ebx
419	xor	edi,edx
420	lea	ecx,[4139469664+ebp*1+ecx]
421	add	ecx,edi
422	rol	ecx,16
423	mov	ebp,DWORD [40+esi]
424	mov	edi,edx
425	; R2 39
426	lea	ebx,[3200236656+ebp*1+ebx]
427	add	ecx,edx
428	xor	edi,eax
429	xor	edi,ecx
430	mov	ebp,DWORD [52+esi]
431	add	ebx,edi
432	mov	edi,ecx
433	rol	ebx,23
434	add	ebx,ecx
435	; R2 40
436	xor	edi,edx
437	xor	edi,ebx
438	lea	eax,[681279174+ebp*1+eax]
439	add	eax,edi
440	rol	eax,4
441	mov	ebp,DWORD [esi]
442	mov	edi,ebx
443	; R2 41
444	lea	edx,[3936430074+ebp*1+edx]
445	add	eax,ebx
446	xor	edi,ecx
447	xor	edi,eax
448	mov	ebp,DWORD [12+esi]
449	add	edx,edi
450	mov	edi,eax
451	rol	edx,11
452	add	edx,eax
453	; R2 42
454	xor	edi,ebx
455	xor	edi,edx
456	lea	ecx,[3572445317+ebp*1+ecx]
457	add	ecx,edi
458	rol	ecx,16
459	mov	ebp,DWORD [24+esi]
460	mov	edi,edx
461	; R2 43
462	lea	ebx,[76029189+ebp*1+ebx]
463	add	ecx,edx
464	xor	edi,eax
465	xor	edi,ecx
466	mov	ebp,DWORD [36+esi]
467	add	ebx,edi
468	mov	edi,ecx
469	rol	ebx,23
470	add	ebx,ecx
471	; R2 44
472	xor	edi,edx
473	xor	edi,ebx
474	lea	eax,[3654602809+ebp*1+eax]
475	add	eax,edi
476	rol	eax,4
477	mov	ebp,DWORD [48+esi]
478	mov	edi,ebx
479	; R2 45
480	lea	edx,[3873151461+ebp*1+edx]
481	add	eax,ebx
482	xor	edi,ecx
483	xor	edi,eax
484	mov	ebp,DWORD [60+esi]
485	add	edx,edi
486	mov	edi,eax
487	rol	edx,11
488	add	edx,eax
489	; R2 46
490	xor	edi,ebx
491	xor	edi,edx
492	lea	ecx,[530742520+ebp*1+ecx]
493	add	ecx,edi
494	rol	ecx,16
495	mov	ebp,DWORD [8+esi]
496	mov	edi,edx
497	; R2 47
498	lea	ebx,[3299628645+ebp*1+ebx]
499	add	ecx,edx
500	xor	edi,eax
501	xor	edi,ecx
502	mov	ebp,DWORD [esi]
503	add	ebx,edi
504	mov	edi,-1
505	rol	ebx,23
506	add	ebx,ecx
507	;
508	; R3 section
509	; R3 48
510	xor	edi,edx
511	or	edi,ebx
512	lea	eax,[4096336452+ebp*1+eax]
513	xor	edi,ecx
514	mov	ebp,DWORD [28+esi]
515	add	eax,edi
516	mov	edi,-1
517	rol	eax,6
518	xor	edi,ecx
519	add	eax,ebx
520	; R3 49
521	or	edi,eax
522	lea	edx,[1126891415+ebp*1+edx]
523	xor	edi,ebx
524	mov	ebp,DWORD [56+esi]
525	add	edx,edi
526	mov	edi,-1
527	rol	edx,10
528	xor	edi,ebx
529	add	edx,eax
530	; R3 50
531	or	edi,edx
532	lea	ecx,[2878612391+ebp*1+ecx]
533	xor	edi,eax
534	mov	ebp,DWORD [20+esi]
535	add	ecx,edi
536	mov	edi,-1
537	rol	ecx,15
538	xor	edi,eax
539	add	ecx,edx
540	; R3 51
541	or	edi,ecx
542	lea	ebx,[4237533241+ebp*1+ebx]
543	xor	edi,edx
544	mov	ebp,DWORD [48+esi]
545	add	ebx,edi
546	mov	edi,-1
547	rol	ebx,21
548	xor	edi,edx
549	add	ebx,ecx
550	; R3 52
551	or	edi,ebx
552	lea	eax,[1700485571+ebp*1+eax]
553	xor	edi,ecx
554	mov	ebp,DWORD [12+esi]
555	add	eax,edi
556	mov	edi,-1
557	rol	eax,6
558	xor	edi,ecx
559	add	eax,ebx
560	; R3 53
561	or	edi,eax
562	lea	edx,[2399980690+ebp*1+edx]
563	xor	edi,ebx
564	mov	ebp,DWORD [40+esi]
565	add	edx,edi
566	mov	edi,-1
567	rol	edx,10
568	xor	edi,ebx
569	add	edx,eax
570	; R3 54
571	or	edi,edx
572	lea	ecx,[4293915773+ebp*1+ecx]
573	xor	edi,eax
574	mov	ebp,DWORD [4+esi]
575	add	ecx,edi
576	mov	edi,-1
577	rol	ecx,15
578	xor	edi,eax
579	add	ecx,edx
580	; R3 55
581	or	edi,ecx
582	lea	ebx,[2240044497+ebp*1+ebx]
583	xor	edi,edx
584	mov	ebp,DWORD [32+esi]
585	add	ebx,edi
586	mov	edi,-1
587	rol	ebx,21
588	xor	edi,edx
589	add	ebx,ecx
590	; R3 56
591	or	edi,ebx
592	lea	eax,[1873313359+ebp*1+eax]
593	xor	edi,ecx
594	mov	ebp,DWORD [60+esi]
595	add	eax,edi
596	mov	edi,-1
597	rol	eax,6
598	xor	edi,ecx
599	add	eax,ebx
600	; R3 57
601	or	edi,eax
602	lea	edx,[4264355552+ebp*1+edx]
603	xor	edi,ebx
604	mov	ebp,DWORD [24+esi]
605	add	edx,edi
606	mov	edi,-1
607	rol	edx,10
608	xor	edi,ebx
609	add	edx,eax
610	; R3 58
611	or	edi,edx
612	lea	ecx,[2734768916+ebp*1+ecx]
613	xor	edi,eax
614	mov	ebp,DWORD [52+esi]
615	add	ecx,edi
616	mov	edi,-1
617	rol	ecx,15
618	xor	edi,eax
619	add	ecx,edx
620	; R3 59
621	or	edi,ecx
622	lea	ebx,[1309151649+ebp*1+ebx]
623	xor	edi,edx
624	mov	ebp,DWORD [16+esi]
625	add	ebx,edi
626	mov	edi,-1
627	rol	ebx,21
628	xor	edi,edx
629	add	ebx,ecx
630	; R3 60
631	or	edi,ebx
632	lea	eax,[4149444226+ebp*1+eax]
633	xor	edi,ecx
634	mov	ebp,DWORD [44+esi]
635	add	eax,edi
636	mov	edi,-1
637	rol	eax,6
638	xor	edi,ecx
639	add	eax,ebx
640	; R3 61
641	or	edi,eax
642	lea	edx,[3174756917+ebp*1+edx]
643	xor	edi,ebx
644	mov	ebp,DWORD [8+esi]
645	add	edx,edi
646	mov	edi,-1
647	rol	edx,10
648	xor	edi,ebx
649	add	edx,eax
650	; R3 62
651	or	edi,edx
652	lea	ecx,[718787259+ebp*1+ecx]
653	xor	edi,eax
654	mov	ebp,DWORD [36+esi]
655	add	ecx,edi
656	mov	edi,-1
657	rol	ecx,15
658	xor	edi,eax
659	add	ecx,edx
660	; R3 63
661	or	edi,ecx
662	lea	ebx,[3951481745+ebp*1+ebx]
663	xor	edi,edx
664	mov	ebp,DWORD [24+esp]
665	add	ebx,edi
666	add	esi,64
667	rol	ebx,21
668	mov	edi,DWORD [ebp]
669	add	ebx,ecx
670	add	eax,edi
671	mov	edi,DWORD [4+ebp]
672	add	ebx,edi
673	mov	edi,DWORD [8+ebp]
674	add	ecx,edi
675	mov	edi,DWORD [12+ebp]
676	add	edx,edi
677	mov	DWORD [ebp],eax
678	mov	DWORD [4+ebp],ebx
679	mov	edi,DWORD [esp]
680	mov	DWORD [8+ebp],ecx
681	mov	DWORD [12+ebp],edx
682	cmp	edi,esi
683	jae	NEAR L$000start
684	pop	eax
685	pop	ebx
686	pop	ebp
687	pop	edi
688	pop	esi
689	ret
690