summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/sha
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/sha')
-rw-r--r--src/lib/libcrypto/sha/Makefile.ssl103
-rw-r--r--src/lib/libcrypto/sha/Makefile.uni122
-rw-r--r--src/lib/libcrypto/sha/asm/s1-win32.asm1664
-rw-r--r--src/lib/libcrypto/sha/asm/sx86unix.cpp1948
-rw-r--r--src/lib/libcrypto/sha/sha_sgst.c246
5 files changed, 4083 insertions, 0 deletions
diff --git a/src/lib/libcrypto/sha/Makefile.ssl b/src/lib/libcrypto/sha/Makefile.ssl
new file mode 100644
index 0000000000..eeb545d140
--- /dev/null
+++ b/src/lib/libcrypto/sha/Makefile.ssl
@@ -0,0 +1,103 @@
1#
2# SSLeay/crypto/sha/Makefile
3#
4
5DIR= sha
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALLTOP=/usr/local/ssl
11MAKE= make -f Makefile.ssl
12MAKEDEPEND= makedepend -f Makefile.ssl
13MAKEFILE= Makefile.ssl
14AR= ar r
15
16SHA1_ASM_OBJ=
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=shatest.c sha1test.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
26LIBOBJ=sha_dgst.o sha1dgst.o sha_one.o sha1_one.o $(SHA1_ASM_OBJ)
27
28SRC= $(LIBSRC)
29
30EXHEADER= sha.h
31HEADER= sha_locl.h $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 sh $(TOP)/util/ranlib.sh $(LIB)
43 @touch lib
44
45# elf
46asm/sx86-elf.o: asm/sx86unix.cpp
47 $(CPP) -DELF asm/sx86unix.cpp | as -o asm/sx86-elf.o
48
49# solaris
50asm/sx86-sol.o: asm/sx86unix.cpp
51 $(CC) -E -DSOL asm/sx86unix.cpp | sed 's/^#.*//' > asm/sx86-sol.s
52 as -o asm/sx86-sol.o asm/sx86-sol.s
53 rm -f asm/sx86-sol.s
54
55# a.out
56asm/sx86-out.o: asm/sx86unix.cpp
57 $(CPP) -DOUT asm/sx86unix.cpp | as -o asm/sx86-out.o
58
59# bsdi
60asm/sx86bsdi.o: asm/sx86unix.cpp
61 $(CPP) -DBSDI asm/sx86unix.cpp | as -o asm/sx86bsdi.o
62
63asm/sx86unix.cpp:
64 (cd asm; perl sha1-586.pl cpp >sx86unix.cpp)
65
66files:
67 perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
68
69links:
70 /bin/rm -f Makefile
71 $(TOP)/util/point.sh Makefile.ssl Makefile ;
72 $(TOP)/util/mklink.sh ../../include $(EXHEADER)
73 $(TOP)/util/mklink.sh ../../test $(TEST)
74 $(TOP)/util/mklink.sh ../../apps $(APPS)
75
76install:
77 @for i in $(EXHEADER) ; \
78 do \
79 (cp $$i $(INSTALLTOP)/include/$$i; \
80 chmod 644 $(INSTALLTOP)/include/$$i ); \
81 done;
82
83tags:
84 ctags $(SRC)
85
86tests:
87
88lint:
89 lint -DLINT $(INCLUDES) $(SRC)>fluff
90
91depend:
92 $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC)
93
94dclean:
95 perl -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
96 mv -f Makefile.new $(MAKEFILE)
97
98clean:
99 /bin/rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff asm/*.o
100
101errors:
102
103# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/src/lib/libcrypto/sha/Makefile.uni b/src/lib/libcrypto/sha/Makefile.uni
new file mode 100644
index 0000000000..f3236755b2
--- /dev/null
+++ b/src/lib/libcrypto/sha/Makefile.uni
@@ -0,0 +1,122 @@
1# Targets
2# make - twidle the options yourself :-)
3# make cc - standard cc options
4# make gcc - standard gcc options
5# make x86-elf - linux-elf etc
6# make x86-out - linux-a.out, FreeBSD etc
7# make x86-solaris
8# make x86-bdsi
9
10DIR= sha
11TOP= .
12CC= gcc
13CFLAG= -O3 -fomit-frame-pointer
14
15CPP= $(CC) -E
16INCLUDES=
17INSTALLTOP=/usr/local/lib
18MAKE= make
19MAKEDEPEND= makedepend
20MAKEFILE= Makefile.uni
21AR= ar r
22
23SHA_ASM_OBJ=
24
25CFLAGS= $(INCLUDES) $(CFLAG)
26
27GENERAL=Makefile
28
29TEST1=shatest
30TEST2=sha1test
31APP1=sha
32APP2=sha1
33
34TEST=$(TEST1) $(TEST2)
35APPS=$(APP1) $(APP2)
36
37LIB=libsha.a
38LIBSRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
39LIBOBJ=sha_dgst.o sha1dgst.o sha_one.o sha1_one.o $(SHA_ASM_OBJ)
40
41SRC= $(LIBSRC)
42
43EXHEADER= sha.h
44HEADER= sha_locl.h $(EXHEADER)
45
46ALL= $(GENERAL) $(SRC) $(HEADER)
47
48all: $(LIB) $(TEST) $(APPS)
49
50$(LIB): $(LIBOBJ)
51 $(AR) $(LIB) $(LIBOBJ)
52 sh $(TOP)/ranlib.sh $(LIB)
53
54# elf
55asm/sx86-elf.o: asm/sx86unix.cpp
56 $(CPP) -DELF asm/sx86unix.cpp | as -o asm/sx86-elf.o
57
58# solaris
59asm/sx86-sol.o: asm/sx86unix.cpp
60 $(CC) -E -DSOL asm/sx86unix.cpp | sed 's/^#.*//' > asm/sx86-sol.s
61 as -o asm/sx86-sol.o asm/sx86-sol.s
62 rm -f asm/sx86-sol.s
63
64# a.out
65asm/sx86-out.o: asm/sx86unix.cpp
66 $(CPP) -DOUT asm/sx86unix.cpp | as -o asm/sx86-out.o
67
68# bsdi
69asm/sx86bsdi.o: asm/sx86unix.cpp
70 $(CPP) -DBSDI asm/sx86unix.cpp | as -o asm/sx86bsdi.o
71
72asm/sx86unix.cpp:
73 (cd asm; perl sha1-586.pl cpp >sx86unix.cpp)
74
75test: $(TEST)
76 ./$(TEST1)
77 ./$(TEST2)
78
79$(TEST1): $(TEST1).c $(LIB)
80 $(CC) -o $(TEST1) $(CFLAGS) $(TEST1).c $(LIB)
81
82$(TEST2): $(TEST2).c $(LIB)
83 $(CC) -o $(TEST2) $(CFLAGS) $(TEST2).c $(LIB)
84
85$(APP1): $(APP1).c $(LIB)
86 $(CC) -o $(APP1) $(CFLAGS) $(APP1).c $(LIB)
87
88$(APP2): $(APP2).c $(LIB)
89 $(CC) -o $(APP2) $(CFLAGS) $(APP2).c $(LIB)
90
91lint:
92 lint -DLINT $(INCLUDES) $(SRC)>fluff
93
94depend:
95 $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC)
96
97dclean:
98 perl -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
99 mv -f Makefile.new $(MAKEFILE)
100
101clean:
102 /bin/rm -f $(LIB) $(TEST) $(APPS) *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
103
104cc:
105 $(MAKE) SHA_ASM_OBJ="" CC="cc" CFLAG="-O" all
106
107gcc:
108 $(MAKE) SHA_ASM_OBJ="" CC="gcc" CFLAGS="-O3 -fomit-frame-pointer" all
109
110x86-elf:
111 $(MAKE) SHA_ASM_OBJ="asm/sx86-elf.o" CFLAG="-DELF -DSHA1_ASM -DL_ENDIAN $(CFLAGS)" all
112
113x86-out:
114 $(MAKE) SHA_ASM_OBJ="asm/sx86-out.o" CFLAG="-DOUT -DSHA1_ASM -DL_ENDIAN $(CFLAGS)" all
115
116x86-solaris:
117 $(MAKE) SHA_ASM_OBJ="asm/sx86-sol.o" CFLAG="-DSOL -DSHA1_ASM -DL_ENDIAN $(CFLAGS)" all
118
119x86-bdsi:
120 $(MAKE) SHA_ASM_OBJ="asm/sx86-bdsi.o" CFLAG="-DBDSI -DSHA1_ASM -DL_ENDIAN $(CFLAGS)" all
121
122# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/src/lib/libcrypto/sha/asm/s1-win32.asm b/src/lib/libcrypto/sha/asm/s1-win32.asm
new file mode 100644
index 0000000000..61335666b9
--- /dev/null
+++ b/src/lib/libcrypto/sha/asm/s1-win32.asm
@@ -0,0 +1,1664 @@
1 ; Don't even think of reading this code
2 ; It was automatically generated by sha1-586.pl
3 ; Which is a perl program used to generate the x86 assember for
4 ; any of elf, a.out, BSDI,Win32, or Solaris
5 ; eric <eay@cryptsoft.com>
6 ;
7 TITLE sha1-586.asm
8 .486
9.model FLAT
10_TEXT SEGMENT
11PUBLIC _sha1_block_x86
12
13_sha1_block_x86 PROC NEAR
14 push esi
15 push ebp
16 mov eax, DWORD PTR 20[esp]
17 mov esi, DWORD PTR 16[esp]
18 add eax, esi
19 mov ebp, DWORD PTR 12[esp]
20 push ebx
21 sub eax, 64
22 push edi
23 mov ebx, DWORD PTR 4[ebp]
24 sub esp, 72
25 mov edx, DWORD PTR 12[ebp]
26 mov edi, DWORD PTR 16[ebp]
27 mov ecx, DWORD PTR 8[ebp]
28 mov DWORD PTR 68[esp],eax
29 ; First we need to setup the X array
30 mov eax, DWORD PTR [esi]
31L000start:
32 ; First, load the words onto the stack in network byte order
33 bswap eax
34 mov DWORD PTR [esp],eax
35 mov eax, DWORD PTR 4[esi]
36 bswap eax
37 mov DWORD PTR 4[esp],eax
38 mov eax, DWORD PTR 8[esi]
39 bswap eax
40 mov DWORD PTR 8[esp],eax
41 mov eax, DWORD PTR 12[esi]
42 bswap eax
43 mov DWORD PTR 12[esp],eax
44 mov eax, DWORD PTR 16[esi]
45 bswap eax
46 mov DWORD PTR 16[esp],eax
47 mov eax, DWORD PTR 20[esi]
48 bswap eax
49 mov DWORD PTR 20[esp],eax
50 mov eax, DWORD PTR 24[esi]
51 bswap eax
52 mov DWORD PTR 24[esp],eax
53 mov eax, DWORD PTR 28[esi]
54 bswap eax
55 mov DWORD PTR 28[esp],eax
56 mov eax, DWORD PTR 32[esi]
57 bswap eax
58 mov DWORD PTR 32[esp],eax
59 mov eax, DWORD PTR 36[esi]
60 bswap eax
61 mov DWORD PTR 36[esp],eax
62 mov eax, DWORD PTR 40[esi]
63 bswap eax
64 mov DWORD PTR 40[esp],eax
65 mov eax, DWORD PTR 44[esi]
66 bswap eax
67 mov DWORD PTR 44[esp],eax
68 mov eax, DWORD PTR 48[esi]
69 bswap eax
70 mov DWORD PTR 48[esp],eax
71 mov eax, DWORD PTR 52[esi]
72 bswap eax
73 mov DWORD PTR 52[esp],eax
74 mov eax, DWORD PTR 56[esi]
75 bswap eax
76 mov DWORD PTR 56[esp],eax
77 mov eax, DWORD PTR 60[esi]
78 bswap eax
79 mov DWORD PTR 60[esp],eax
80 ; We now have the X array on the stack
81 ; starting at sp-4
82 mov DWORD PTR 64[esp],esi
83 ;
84 ; Start processing
85 mov eax, DWORD PTR [ebp]
86 ; 00_15 0
87 mov esi, ecx
88 mov ebp, eax
89 xor esi, edx
90 rol ebp, 5
91 and esi, ebx
92 add ebp, edi
93 ror ebx, 1
94 mov edi, DWORD PTR [esp]
95 ror ebx, 1
96 xor esi, edx
97 lea ebp, DWORD PTR 1518500249[edi*1+ebp]
98 mov edi, ebx
99 add esi, ebp
100 xor edi, ecx
101 mov ebp, esi
102 and edi, eax
103 rol ebp, 5
104 add ebp, edx
105 mov edx, DWORD PTR 4[esp]
106 ror eax, 1
107 xor edi, ecx
108 ror eax, 1
109 lea ebp, DWORD PTR 1518500249[edx*1+ebp]
110 add edi, ebp
111 ; 00_15 2
112 mov edx, eax
113 mov ebp, edi
114 xor edx, ebx
115 rol ebp, 5
116 and edx, esi
117 add ebp, ecx
118 ror esi, 1
119 mov ecx, DWORD PTR 8[esp]
120 ror esi, 1
121 xor edx, ebx
122 lea ebp, DWORD PTR 1518500249[ecx*1+ebp]
123 mov ecx, esi
124 add edx, ebp
125 xor ecx, eax
126 mov ebp, edx
127 and ecx, edi
128 rol ebp, 5
129 add ebp, ebx
130 mov ebx, DWORD PTR 12[esp]
131 ror edi, 1
132 xor ecx, eax
133 ror edi, 1
134 lea ebp, DWORD PTR 1518500249[ebx*1+ebp]
135 add ecx, ebp
136 ; 00_15 4
137 mov ebx, edi
138 mov ebp, ecx
139 xor ebx, esi
140 rol ebp, 5
141 and ebx, edx
142 add ebp, eax
143 ror edx, 1
144 mov eax, DWORD PTR 16[esp]
145 ror edx, 1
146 xor ebx, esi
147 lea ebp, DWORD PTR 1518500249[eax*1+ebp]
148 mov eax, edx
149 add ebx, ebp
150 xor eax, edi
151 mov ebp, ebx
152 and eax, ecx
153 rol ebp, 5
154 add ebp, esi
155 mov esi, DWORD PTR 20[esp]
156 ror ecx, 1
157 xor eax, edi
158 ror ecx, 1
159 lea ebp, DWORD PTR 1518500249[esi*1+ebp]
160 add eax, ebp
161 ; 00_15 6
162 mov esi, ecx
163 mov ebp, eax
164 xor esi, edx
165 rol ebp, 5
166 and esi, ebx
167 add ebp, edi
168 ror ebx, 1
169 mov edi, DWORD PTR 24[esp]
170 ror ebx, 1
171 xor esi, edx
172 lea ebp, DWORD PTR 1518500249[edi*1+ebp]
173 mov edi, ebx
174 add esi, ebp
175 xor edi, ecx
176 mov ebp, esi
177 and edi, eax
178 rol ebp, 5
179 add ebp, edx
180 mov edx, DWORD PTR 28[esp]
181 ror eax, 1
182 xor edi, ecx
183 ror eax, 1
184 lea ebp, DWORD PTR 1518500249[edx*1+ebp]
185 add edi, ebp
186 ; 00_15 8
187 mov edx, eax
188 mov ebp, edi
189 xor edx, ebx
190 rol ebp, 5
191 and edx, esi
192 add ebp, ecx
193 ror esi, 1
194 mov ecx, DWORD PTR 32[esp]
195 ror esi, 1
196 xor edx, ebx
197 lea ebp, DWORD PTR 1518500249[ecx*1+ebp]
198 mov ecx, esi
199 add edx, ebp
200 xor ecx, eax
201 mov ebp, edx
202 and ecx, edi
203 rol ebp, 5
204 add ebp, ebx
205 mov ebx, DWORD PTR 36[esp]
206 ror edi, 1
207 xor ecx, eax
208 ror edi, 1
209 lea ebp, DWORD PTR 1518500249[ebx*1+ebp]
210 add ecx, ebp
211 ; 00_15 10
212 mov ebx, edi
213 mov ebp, ecx
214 xor ebx, esi
215 rol ebp, 5
216 and ebx, edx
217 add ebp, eax
218 ror edx, 1
219 mov eax, DWORD PTR 40[esp]
220 ror edx, 1
221 xor ebx, esi
222 lea ebp, DWORD PTR 1518500249[eax*1+ebp]
223 mov eax, edx
224 add ebx, ebp
225 xor eax, edi
226 mov ebp, ebx
227 and eax, ecx
228 rol ebp, 5
229 add ebp, esi
230 mov esi, DWORD PTR 44[esp]
231 ror ecx, 1
232 xor eax, edi
233 ror ecx, 1
234 lea ebp, DWORD PTR 1518500249[esi*1+ebp]
235 add eax, ebp
236 ; 00_15 12
237 mov esi, ecx
238 mov ebp, eax
239 xor esi, edx
240 rol ebp, 5
241 and esi, ebx
242 add ebp, edi
243 ror ebx, 1
244 mov edi, DWORD PTR 48[esp]
245 ror ebx, 1
246 xor esi, edx
247 lea ebp, DWORD PTR 1518500249[edi*1+ebp]
248 mov edi, ebx
249 add esi, ebp
250 xor edi, ecx
251 mov ebp, esi
252 and edi, eax
253 rol ebp, 5
254 add ebp, edx
255 mov edx, DWORD PTR 52[esp]
256 ror eax, 1
257 xor edi, ecx
258 ror eax, 1
259 lea ebp, DWORD PTR 1518500249[edx*1+ebp]
260 add edi, ebp
261 ; 00_15 14
262 mov edx, eax
263 mov ebp, edi
264 xor edx, ebx
265 rol ebp, 5
266 and edx, esi
267 add ebp, ecx
268 ror esi, 1
269 mov ecx, DWORD PTR 56[esp]
270 ror esi, 1
271 xor edx, ebx
272 lea ebp, DWORD PTR 1518500249[ecx*1+ebp]
273 mov ecx, esi
274 add edx, ebp
275 xor ecx, eax
276 mov ebp, edx
277 and ecx, edi
278 rol ebp, 5
279 add ebp, ebx
280 mov ebx, DWORD PTR 60[esp]
281 ror edi, 1
282 xor ecx, eax
283 ror edi, 1
284 lea ebp, DWORD PTR 1518500249[ebx*1+ebp]
285 add ecx, ebp
286 ; 16_19 16
287 nop
288 mov ebp, DWORD PTR [esp]
289 mov ebx, DWORD PTR 8[esp]
290 xor ebx, ebp
291 mov ebp, DWORD PTR 32[esp]
292 xor ebx, ebp
293 mov ebp, DWORD PTR 52[esp]
294 xor ebx, ebp
295 mov ebp, edi
296 rol ebx, 1
297 xor ebp, esi
298 mov DWORD PTR [esp],ebx
299 and ebp, edx
300 lea ebx, DWORD PTR 1518500249[eax*1+ebx]
301 xor ebp, esi
302 mov eax, ecx
303 add ebx, ebp
304 rol eax, 5
305 ror edx, 1
306 add ebx, eax
307 mov eax, DWORD PTR 4[esp]
308 mov ebp, DWORD PTR 12[esp]
309 xor eax, ebp
310 mov ebp, DWORD PTR 36[esp]
311 xor eax, ebp
312 mov ebp, DWORD PTR 56[esp]
313 ror edx, 1
314 xor eax, ebp
315 rol eax, 1
316 mov ebp, edx
317 xor ebp, edi
318 mov DWORD PTR 4[esp],eax
319 and ebp, ecx
320 lea eax, DWORD PTR 1518500249[esi*1+eax]
321 xor ebp, edi
322 mov esi, ebx
323 rol esi, 5
324 ror ecx, 1
325 add eax, esi
326 ror ecx, 1
327 add eax, ebp
328 ; 16_19 18
329 mov ebp, DWORD PTR 8[esp]
330 mov esi, DWORD PTR 16[esp]
331 xor esi, ebp
332 mov ebp, DWORD PTR 40[esp]
333 xor esi, ebp
334 mov ebp, DWORD PTR 60[esp]
335 xor esi, ebp
336 mov ebp, ecx
337 rol esi, 1
338 xor ebp, edx
339 mov DWORD PTR 8[esp],esi
340 and ebp, ebx
341 lea esi, DWORD PTR 1518500249[edi*1+esi]
342 xor ebp, edx
343 mov edi, eax
344 add esi, ebp
345 rol edi, 5
346 ror ebx, 1
347 add esi, edi
348 mov edi, DWORD PTR 12[esp]
349 mov ebp, DWORD PTR 20[esp]
350 xor edi, ebp
351 mov ebp, DWORD PTR 44[esp]
352 xor edi, ebp
353 mov ebp, DWORD PTR [esp]
354 ror ebx, 1
355 xor edi, ebp
356 rol edi, 1
357 mov ebp, ebx
358 xor ebp, ecx
359 mov DWORD PTR 12[esp],edi
360 and ebp, eax
361 lea edi, DWORD PTR 1518500249[edx*1+edi]
362 xor ebp, ecx
363 mov edx, esi
364 rol edx, 5
365 ror eax, 1
366 add edi, edx
367 ror eax, 1
368 add edi, ebp
369 ; 20_39 20
370 mov edx, DWORD PTR 16[esp]
371 mov ebp, DWORD PTR 24[esp]
372 xor edx, ebp
373 mov ebp, DWORD PTR 48[esp]
374 xor edx, ebp
375 mov ebp, DWORD PTR 4[esp]
376 xor edx, ebp
377 mov ebp, esi
378 rol edx, 1
379 xor ebp, eax
380 mov DWORD PTR 16[esp],edx
381 xor ebp, ebx
382 lea edx, DWORD PTR 1859775393[ecx*1+edx]
383 mov ecx, edi
384 rol ecx, 5
385 ror esi, 1
386 add ecx, ebp
387 ror esi, 1
388 add edx, ecx
389 ; 20_39 21
390 mov ecx, DWORD PTR 20[esp]
391 mov ebp, DWORD PTR 28[esp]
392 xor ecx, ebp
393 mov ebp, DWORD PTR 52[esp]
394 xor ecx, ebp
395 mov ebp, DWORD PTR 8[esp]
396 xor ecx, ebp
397 mov ebp, edi
398 rol ecx, 1
399 xor ebp, esi
400 mov DWORD PTR 20[esp],ecx
401 xor ebp, eax
402 lea ecx, DWORD PTR 1859775393[ebx*1+ecx]
403 mov ebx, edx
404 rol ebx, 5
405 ror edi, 1
406 add ebx, ebp
407 ror edi, 1
408 add ecx, ebx
409 ; 20_39 22
410 mov ebx, DWORD PTR 24[esp]
411 mov ebp, DWORD PTR 32[esp]
412 xor ebx, ebp
413 mov ebp, DWORD PTR 56[esp]
414 xor ebx, ebp
415 mov ebp, DWORD PTR 12[esp]
416 xor ebx, ebp
417 mov ebp, edx
418 rol ebx, 1
419 xor ebp, edi
420 mov DWORD PTR 24[esp],ebx
421 xor ebp, esi
422 lea ebx, DWORD PTR 1859775393[eax*1+ebx]
423 mov eax, ecx
424 rol eax, 5
425 ror edx, 1
426 add eax, ebp
427 ror edx, 1
428 add ebx, eax
429 ; 20_39 23
430 mov eax, DWORD PTR 28[esp]
431 mov ebp, DWORD PTR 36[esp]
432 xor eax, ebp
433 mov ebp, DWORD PTR 60[esp]
434 xor eax, ebp
435 mov ebp, DWORD PTR 16[esp]
436 xor eax, ebp
437 mov ebp, ecx
438 rol eax, 1
439 xor ebp, edx
440 mov DWORD PTR 28[esp],eax
441 xor ebp, edi
442 lea eax, DWORD PTR 1859775393[esi*1+eax]
443 mov esi, ebx
444 rol esi, 5
445 ror ecx, 1
446 add esi, ebp
447 ror ecx, 1
448 add eax, esi
449 ; 20_39 24
450 mov esi, DWORD PTR 32[esp]
451 mov ebp, DWORD PTR 40[esp]
452 xor esi, ebp
453 mov ebp, DWORD PTR [esp]
454 xor esi, ebp
455 mov ebp, DWORD PTR 20[esp]
456 xor esi, ebp
457 mov ebp, ebx
458 rol esi, 1
459 xor ebp, ecx
460 mov DWORD PTR 32[esp],esi
461 xor ebp, edx
462 lea esi, DWORD PTR 1859775393[edi*1+esi]
463 mov edi, eax
464 rol edi, 5
465 ror ebx, 1
466 add edi, ebp
467 ror ebx, 1
468 add esi, edi
469 ; 20_39 25
470 mov edi, DWORD PTR 36[esp]
471 mov ebp, DWORD PTR 44[esp]
472 xor edi, ebp
473 mov ebp, DWORD PTR 4[esp]
474 xor edi, ebp
475 mov ebp, DWORD PTR 24[esp]
476 xor edi, ebp
477 mov ebp, eax
478 rol edi, 1
479 xor ebp, ebx
480 mov DWORD PTR 36[esp],edi
481 xor ebp, ecx
482 lea edi, DWORD PTR 1859775393[edx*1+edi]
483 mov edx, esi
484 rol edx, 5
485 ror eax, 1
486 add edx, ebp
487 ror eax, 1
488 add edi, edx
489 ; 20_39 26
490 mov edx, DWORD PTR 40[esp]
491 mov ebp, DWORD PTR 48[esp]
492 xor edx, ebp
493 mov ebp, DWORD PTR 8[esp]
494 xor edx, ebp
495 mov ebp, DWORD PTR 28[esp]
496 xor edx, ebp
497 mov ebp, esi
498 rol edx, 1
499 xor ebp, eax
500 mov DWORD PTR 40[esp],edx
501 xor ebp, ebx
502 lea edx, DWORD PTR 1859775393[ecx*1+edx]
503 mov ecx, edi
504 rol ecx, 5
505 ror esi, 1
506 add ecx, ebp
507 ror esi, 1
508 add edx, ecx
509 ; 20_39 27
510 mov ecx, DWORD PTR 44[esp]
511 mov ebp, DWORD PTR 52[esp]
512 xor ecx, ebp
513 mov ebp, DWORD PTR 12[esp]
514 xor ecx, ebp
515 mov ebp, DWORD PTR 32[esp]
516 xor ecx, ebp
517 mov ebp, edi
518 rol ecx, 1
519 xor ebp, esi
520 mov DWORD PTR 44[esp],ecx
521 xor ebp, eax
522 lea ecx, DWORD PTR 1859775393[ebx*1+ecx]
523 mov ebx, edx
524 rol ebx, 5
525 ror edi, 1
526 add ebx, ebp
527 ror edi, 1
528 add ecx, ebx
529 ; 20_39 28
530 mov ebx, DWORD PTR 48[esp]
531 mov ebp, DWORD PTR 56[esp]
532 xor ebx, ebp
533 mov ebp, DWORD PTR 16[esp]
534 xor ebx, ebp
535 mov ebp, DWORD PTR 36[esp]
536 xor ebx, ebp
537 mov ebp, edx
538 rol ebx, 1
539 xor ebp, edi
540 mov DWORD PTR 48[esp],ebx
541 xor ebp, esi
542 lea ebx, DWORD PTR 1859775393[eax*1+ebx]
543 mov eax, ecx
544 rol eax, 5
545 ror edx, 1
546 add eax, ebp
547 ror edx, 1
548 add ebx, eax
549 ; 20_39 29
550 mov eax, DWORD PTR 52[esp]
551 mov ebp, DWORD PTR 60[esp]
552 xor eax, ebp
553 mov ebp, DWORD PTR 20[esp]
554 xor eax, ebp
555 mov ebp, DWORD PTR 40[esp]
556 xor eax, ebp
557 mov ebp, ecx
558 rol eax, 1
559 xor ebp, edx
560 mov DWORD PTR 52[esp],eax
561 xor ebp, edi
562 lea eax, DWORD PTR 1859775393[esi*1+eax]
563 mov esi, ebx
564 rol esi, 5
565 ror ecx, 1
566 add esi, ebp
567 ror ecx, 1
568 add eax, esi
569 ; 20_39 30
570 mov esi, DWORD PTR 56[esp]
571 mov ebp, DWORD PTR [esp]
572 xor esi, ebp
573 mov ebp, DWORD PTR 24[esp]
574 xor esi, ebp
575 mov ebp, DWORD PTR 44[esp]
576 xor esi, ebp
577 mov ebp, ebx
578 rol esi, 1
579 xor ebp, ecx
580 mov DWORD PTR 56[esp],esi
581 xor ebp, edx
582 lea esi, DWORD PTR 1859775393[edi*1+esi]
583 mov edi, eax
584 rol edi, 5
585 ror ebx, 1
586 add edi, ebp
587 ror ebx, 1
588 add esi, edi
589 ; 20_39 31
590 mov edi, DWORD PTR 60[esp]
591 mov ebp, DWORD PTR 4[esp]
592 xor edi, ebp
593 mov ebp, DWORD PTR 28[esp]
594 xor edi, ebp
595 mov ebp, DWORD PTR 48[esp]
596 xor edi, ebp
597 mov ebp, eax
598 rol edi, 1
599 xor ebp, ebx
600 mov DWORD PTR 60[esp],edi
601 xor ebp, ecx
602 lea edi, DWORD PTR 1859775393[edx*1+edi]
603 mov edx, esi
604 rol edx, 5
605 ror eax, 1
606 add edx, ebp
607 ror eax, 1
608 add edi, edx
609 ; 20_39 32
610 mov edx, DWORD PTR [esp]
611 mov ebp, DWORD PTR 8[esp]
612 xor edx, ebp
613 mov ebp, DWORD PTR 32[esp]
614 xor edx, ebp
615 mov ebp, DWORD PTR 52[esp]
616 xor edx, ebp
617 mov ebp, esi
618 rol edx, 1
619 xor ebp, eax
620 mov DWORD PTR [esp],edx
621 xor ebp, ebx
622 lea edx, DWORD PTR 1859775393[ecx*1+edx]
623 mov ecx, edi
624 rol ecx, 5
625 ror esi, 1
626 add ecx, ebp
627 ror esi, 1
628 add edx, ecx
629 ; 20_39 33
630 mov ecx, DWORD PTR 4[esp]
631 mov ebp, DWORD PTR 12[esp]
632 xor ecx, ebp
633 mov ebp, DWORD PTR 36[esp]
634 xor ecx, ebp
635 mov ebp, DWORD PTR 56[esp]
636 xor ecx, ebp
637 mov ebp, edi
638 rol ecx, 1
639 xor ebp, esi
640 mov DWORD PTR 4[esp],ecx
641 xor ebp, eax
642 lea ecx, DWORD PTR 1859775393[ebx*1+ecx]
643 mov ebx, edx
644 rol ebx, 5
645 ror edi, 1
646 add ebx, ebp
647 ror edi, 1
648 add ecx, ebx
649 ; 20_39 34
650 mov ebx, DWORD PTR 8[esp]
651 mov ebp, DWORD PTR 16[esp]
652 xor ebx, ebp
653 mov ebp, DWORD PTR 40[esp]
654 xor ebx, ebp
655 mov ebp, DWORD PTR 60[esp]
656 xor ebx, ebp
657 mov ebp, edx
658 rol ebx, 1
659 xor ebp, edi
660 mov DWORD PTR 8[esp],ebx
661 xor ebp, esi
662 lea ebx, DWORD PTR 1859775393[eax*1+ebx]
663 mov eax, ecx
664 rol eax, 5
665 ror edx, 1
666 add eax, ebp
667 ror edx, 1
668 add ebx, eax
669 ; 20_39 35
670 mov eax, DWORD PTR 12[esp]
671 mov ebp, DWORD PTR 20[esp]
672 xor eax, ebp
673 mov ebp, DWORD PTR 44[esp]
674 xor eax, ebp
675 mov ebp, DWORD PTR [esp]
676 xor eax, ebp
677 mov ebp, ecx
678 rol eax, 1
679 xor ebp, edx
680 mov DWORD PTR 12[esp],eax
681 xor ebp, edi
682 lea eax, DWORD PTR 1859775393[esi*1+eax]
683 mov esi, ebx
684 rol esi, 5
685 ror ecx, 1
686 add esi, ebp
687 ror ecx, 1
688 add eax, esi
689 ; 20_39 36
690 mov esi, DWORD PTR 16[esp]
691 mov ebp, DWORD PTR 24[esp]
692 xor esi, ebp
693 mov ebp, DWORD PTR 48[esp]
694 xor esi, ebp
695 mov ebp, DWORD PTR 4[esp]
696 xor esi, ebp
697 mov ebp, ebx
698 rol esi, 1
699 xor ebp, ecx
700 mov DWORD PTR 16[esp],esi
701 xor ebp, edx
702 lea esi, DWORD PTR 1859775393[edi*1+esi]
703 mov edi, eax
704 rol edi, 5
705 ror ebx, 1
706 add edi, ebp
707 ror ebx, 1
708 add esi, edi
709 ; 20_39 37
710 mov edi, DWORD PTR 20[esp]
711 mov ebp, DWORD PTR 28[esp]
712 xor edi, ebp
713 mov ebp, DWORD PTR 52[esp]
714 xor edi, ebp
715 mov ebp, DWORD PTR 8[esp]
716 xor edi, ebp
717 mov ebp, eax
718 rol edi, 1
719 xor ebp, ebx
720 mov DWORD PTR 20[esp],edi
721 xor ebp, ecx
722 lea edi, DWORD PTR 1859775393[edx*1+edi]
723 mov edx, esi
724 rol edx, 5
725 ror eax, 1
726 add edx, ebp
727 ror eax, 1
728 add edi, edx
729 ; 20_39 38
730 mov edx, DWORD PTR 24[esp]
731 mov ebp, DWORD PTR 32[esp]
732 xor edx, ebp
733 mov ebp, DWORD PTR 56[esp]
734 xor edx, ebp
735 mov ebp, DWORD PTR 12[esp]
736 xor edx, ebp
737 mov ebp, esi
738 rol edx, 1
739 xor ebp, eax
740 mov DWORD PTR 24[esp],edx
741 xor ebp, ebx
742 lea edx, DWORD PTR 1859775393[ecx*1+edx]
743 mov ecx, edi
744 rol ecx, 5
745 ror esi, 1
746 add ecx, ebp
747 ror esi, 1
748 add edx, ecx
749 ; 20_39 39
750 mov ecx, DWORD PTR 28[esp]
751 mov ebp, DWORD PTR 36[esp]
752 xor ecx, ebp
753 mov ebp, DWORD PTR 60[esp]
754 xor ecx, ebp
755 mov ebp, DWORD PTR 16[esp]
756 xor ecx, ebp
757 mov ebp, edi
758 rol ecx, 1
759 xor ebp, esi
760 mov DWORD PTR 28[esp],ecx
761 xor ebp, eax
762 lea ecx, DWORD PTR 1859775393[ebx*1+ecx]
763 mov ebx, edx
764 rol ebx, 5
765 ror edi, 1
766 add ebx, ebp
767 ror edi, 1
768 add ecx, ebx
769 ; 40_59 40
770 mov ebx, DWORD PTR 32[esp]
771 mov ebp, DWORD PTR 40[esp]
772 xor ebx, ebp
773 mov ebp, DWORD PTR [esp]
774 xor ebx, ebp
775 mov ebp, DWORD PTR 20[esp]
776 xor ebx, ebp
777 mov ebp, edx
778 rol ebx, 1
779 or ebp, edi
780 mov DWORD PTR 32[esp],ebx
781 and ebp, esi
782 lea ebx, DWORD PTR 2400959708[eax*1+ebx]
783 mov eax, edx
784 ror edx, 1
785 and eax, edi
786 or ebp, eax
787 mov eax, ecx
788 rol eax, 5
789 add ebp, eax
790 mov eax, DWORD PTR 36[esp]
791 add ebx, ebp
792 mov ebp, DWORD PTR 44[esp]
793 xor eax, ebp
794 mov ebp, DWORD PTR 4[esp]
795 xor eax, ebp
796 mov ebp, DWORD PTR 24[esp]
797 ror edx, 1
798 xor eax, ebp
799 rol eax, 1
800 mov ebp, ecx
801 mov DWORD PTR 36[esp],eax
802 or ebp, edx
803 lea eax, DWORD PTR 2400959708[esi*1+eax]
804 mov esi, ecx
805 and ebp, edi
806 and esi, edx
807 or ebp, esi
808 mov esi, ebx
809 rol esi, 5
810 ror ecx, 1
811 add ebp, esi
812 ror ecx, 1
813 add eax, ebp
814 ; 40_59 41
815 ; 40_59 42
816 mov esi, DWORD PTR 40[esp]
817 mov ebp, DWORD PTR 48[esp]
818 xor esi, ebp
819 mov ebp, DWORD PTR 8[esp]
820 xor esi, ebp
821 mov ebp, DWORD PTR 28[esp]
822 xor esi, ebp
823 mov ebp, ebx
824 rol esi, 1
825 or ebp, ecx
826 mov DWORD PTR 40[esp],esi
827 and ebp, edx
828 lea esi, DWORD PTR 2400959708[edi*1+esi]
829 mov edi, ebx
830 ror ebx, 1
831 and edi, ecx
832 or ebp, edi
833 mov edi, eax
834 rol edi, 5
835 add ebp, edi
836 mov edi, DWORD PTR 44[esp]
837 add esi, ebp
838 mov ebp, DWORD PTR 52[esp]
839 xor edi, ebp
840 mov ebp, DWORD PTR 12[esp]
841 xor edi, ebp
842 mov ebp, DWORD PTR 32[esp]
843 ror ebx, 1
844 xor edi, ebp
845 rol edi, 1
846 mov ebp, eax
847 mov DWORD PTR 44[esp],edi
848 or ebp, ebx
849 lea edi, DWORD PTR 2400959708[edx*1+edi]
850 mov edx, eax
851 and ebp, ecx
852 and edx, ebx
853 or ebp, edx
854 mov edx, esi
855 rol edx, 5
856 ror eax, 1
857 add ebp, edx
858 ror eax, 1
859 add edi, ebp
860 ; 40_59 43
861 ; 40_59 44
862 mov edx, DWORD PTR 48[esp]
863 mov ebp, DWORD PTR 56[esp]
864 xor edx, ebp
865 mov ebp, DWORD PTR 16[esp]
866 xor edx, ebp
867 mov ebp, DWORD PTR 36[esp]
868 xor edx, ebp
869 mov ebp, esi
870 rol edx, 1
871 or ebp, eax
872 mov DWORD PTR 48[esp],edx
873 and ebp, ebx
874 lea edx, DWORD PTR 2400959708[ecx*1+edx]
875 mov ecx, esi
876 ror esi, 1
877 and ecx, eax
878 or ebp, ecx
879 mov ecx, edi
880 rol ecx, 5
881 add ebp, ecx
882 mov ecx, DWORD PTR 52[esp]
883 add edx, ebp
884 mov ebp, DWORD PTR 60[esp]
885 xor ecx, ebp
886 mov ebp, DWORD PTR 20[esp]
887 xor ecx, ebp
888 mov ebp, DWORD PTR 40[esp]
889 ror esi, 1
890 xor ecx, ebp
891 rol ecx, 1
892 mov ebp, edi
893 mov DWORD PTR 52[esp],ecx
894 or ebp, esi
895 lea ecx, DWORD PTR 2400959708[ebx*1+ecx]
896 mov ebx, edi
897 and ebp, eax
898 and ebx, esi
899 or ebp, ebx
900 mov ebx, edx
901 rol ebx, 5
902 ror edi, 1
903 add ebp, ebx
904 ror edi, 1
905 add ecx, ebp
906 ; 40_59 45
907 ; 40_59 46
908 mov ebx, DWORD PTR 56[esp]
909 mov ebp, DWORD PTR [esp]
910 xor ebx, ebp
911 mov ebp, DWORD PTR 24[esp]
912 xor ebx, ebp
913 mov ebp, DWORD PTR 44[esp]
914 xor ebx, ebp
915 mov ebp, edx
916 rol ebx, 1
917 or ebp, edi
918 mov DWORD PTR 56[esp],ebx
919 and ebp, esi
920 lea ebx, DWORD PTR 2400959708[eax*1+ebx]
921 mov eax, edx
922 ror edx, 1
923 and eax, edi
924 or ebp, eax
925 mov eax, ecx
926 rol eax, 5
927 add ebp, eax
928 mov eax, DWORD PTR 60[esp]
929 add ebx, ebp
930 mov ebp, DWORD PTR 4[esp]
931 xor eax, ebp
932 mov ebp, DWORD PTR 28[esp]
933 xor eax, ebp
934 mov ebp, DWORD PTR 48[esp]
935 ror edx, 1
936 xor eax, ebp
937 rol eax, 1
938 mov ebp, ecx
939 mov DWORD PTR 60[esp],eax
940 or ebp, edx
941 lea eax, DWORD PTR 2400959708[esi*1+eax]
942 mov esi, ecx
943 and ebp, edi
944 and esi, edx
945 or ebp, esi
946 mov esi, ebx
947 rol esi, 5
948 ror ecx, 1
949 add ebp, esi
950 ror ecx, 1
951 add eax, ebp
952 ; 40_59 47
953 ; 40_59 48
954 mov esi, DWORD PTR [esp]
955 mov ebp, DWORD PTR 8[esp]
956 xor esi, ebp
957 mov ebp, DWORD PTR 32[esp]
958 xor esi, ebp
959 mov ebp, DWORD PTR 52[esp]
960 xor esi, ebp
961 mov ebp, ebx
962 rol esi, 1
963 or ebp, ecx
964 mov DWORD PTR [esp],esi
965 and ebp, edx
966 lea esi, DWORD PTR 2400959708[edi*1+esi]
967 mov edi, ebx
968 ror ebx, 1
969 and edi, ecx
970 or ebp, edi
971 mov edi, eax
972 rol edi, 5
973 add ebp, edi
974 mov edi, DWORD PTR 4[esp]
975 add esi, ebp
976 mov ebp, DWORD PTR 12[esp]
977 xor edi, ebp
978 mov ebp, DWORD PTR 36[esp]
979 xor edi, ebp
980 mov ebp, DWORD PTR 56[esp]
981 ror ebx, 1
982 xor edi, ebp
983 rol edi, 1
984 mov ebp, eax
985 mov DWORD PTR 4[esp],edi
986 or ebp, ebx
987 lea edi, DWORD PTR 2400959708[edx*1+edi]
988 mov edx, eax
989 and ebp, ecx
990 and edx, ebx
991 or ebp, edx
992 mov edx, esi
993 rol edx, 5
994 ror eax, 1
995 add ebp, edx
996 ror eax, 1
997 add edi, ebp
998 ; 40_59 49
999 ; 40_59 50
1000 mov edx, DWORD PTR 8[esp]
1001 mov ebp, DWORD PTR 16[esp]
1002 xor edx, ebp
1003 mov ebp, DWORD PTR 40[esp]
1004 xor edx, ebp
1005 mov ebp, DWORD PTR 60[esp]
1006 xor edx, ebp
1007 mov ebp, esi
1008 rol edx, 1
1009 or ebp, eax
1010 mov DWORD PTR 8[esp],edx
1011 and ebp, ebx
1012 lea edx, DWORD PTR 2400959708[ecx*1+edx]
1013 mov ecx, esi
1014 ror esi, 1
1015 and ecx, eax
1016 or ebp, ecx
1017 mov ecx, edi
1018 rol ecx, 5
1019 add ebp, ecx
1020 mov ecx, DWORD PTR 12[esp]
1021 add edx, ebp
1022 mov ebp, DWORD PTR 20[esp]
1023 xor ecx, ebp
1024 mov ebp, DWORD PTR 44[esp]
1025 xor ecx, ebp
1026 mov ebp, DWORD PTR [esp]
1027 ror esi, 1
1028 xor ecx, ebp
1029 rol ecx, 1
1030 mov ebp, edi
1031 mov DWORD PTR 12[esp],ecx
1032 or ebp, esi
1033 lea ecx, DWORD PTR 2400959708[ebx*1+ecx]
1034 mov ebx, edi
1035 and ebp, eax
1036 and ebx, esi
1037 or ebp, ebx
1038 mov ebx, edx
1039 rol ebx, 5
1040 ror edi, 1
1041 add ebp, ebx
1042 ror edi, 1
1043 add ecx, ebp
1044 ; 40_59 51
1045 ; 40_59 52
1046 mov ebx, DWORD PTR 16[esp]
1047 mov ebp, DWORD PTR 24[esp]
1048 xor ebx, ebp
1049 mov ebp, DWORD PTR 48[esp]
1050 xor ebx, ebp
1051 mov ebp, DWORD PTR 4[esp]
1052 xor ebx, ebp
1053 mov ebp, edx
1054 rol ebx, 1
1055 or ebp, edi
1056 mov DWORD PTR 16[esp],ebx
1057 and ebp, esi
1058 lea ebx, DWORD PTR 2400959708[eax*1+ebx]
1059 mov eax, edx
1060 ror edx, 1
1061 and eax, edi
1062 or ebp, eax
1063 mov eax, ecx
1064 rol eax, 5
1065 add ebp, eax
1066 mov eax, DWORD PTR 20[esp]
1067 add ebx, ebp
1068 mov ebp, DWORD PTR 28[esp]
1069 xor eax, ebp
1070 mov ebp, DWORD PTR 52[esp]
1071 xor eax, ebp
1072 mov ebp, DWORD PTR 8[esp]
1073 ror edx, 1
1074 xor eax, ebp
1075 rol eax, 1
1076 mov ebp, ecx
1077 mov DWORD PTR 20[esp],eax
1078 or ebp, edx
1079 lea eax, DWORD PTR 2400959708[esi*1+eax]
1080 mov esi, ecx
1081 and ebp, edi
1082 and esi, edx
1083 or ebp, esi
1084 mov esi, ebx
1085 rol esi, 5
1086 ror ecx, 1
1087 add ebp, esi
1088 ror ecx, 1
1089 add eax, ebp
1090 ; 40_59 53
1091 ; 40_59 54
1092 mov esi, DWORD PTR 24[esp]
1093 mov ebp, DWORD PTR 32[esp]
1094 xor esi, ebp
1095 mov ebp, DWORD PTR 56[esp]
1096 xor esi, ebp
1097 mov ebp, DWORD PTR 12[esp]
1098 xor esi, ebp
1099 mov ebp, ebx
1100 rol esi, 1
1101 or ebp, ecx
1102 mov DWORD PTR 24[esp],esi
1103 and ebp, edx
1104 lea esi, DWORD PTR 2400959708[edi*1+esi]
1105 mov edi, ebx
1106 ror ebx, 1
1107 and edi, ecx
1108 or ebp, edi
1109 mov edi, eax
1110 rol edi, 5
1111 add ebp, edi
1112 mov edi, DWORD PTR 28[esp]
1113 add esi, ebp
1114 mov ebp, DWORD PTR 36[esp]
1115 xor edi, ebp
1116 mov ebp, DWORD PTR 60[esp]
1117 xor edi, ebp
1118 mov ebp, DWORD PTR 16[esp]
1119 ror ebx, 1
1120 xor edi, ebp
1121 rol edi, 1
1122 mov ebp, eax
1123 mov DWORD PTR 28[esp],edi
1124 or ebp, ebx
1125 lea edi, DWORD PTR 2400959708[edx*1+edi]
1126 mov edx, eax
1127 and ebp, ecx
1128 and edx, ebx
1129 or ebp, edx
1130 mov edx, esi
1131 rol edx, 5
1132 ror eax, 1
1133 add ebp, edx
1134 ror eax, 1
1135 add edi, ebp
1136 ; 40_59 55
1137 ; 40_59 56
1138 mov edx, DWORD PTR 32[esp]
1139 mov ebp, DWORD PTR 40[esp]
1140 xor edx, ebp
1141 mov ebp, DWORD PTR [esp]
1142 xor edx, ebp
1143 mov ebp, DWORD PTR 20[esp]
1144 xor edx, ebp
1145 mov ebp, esi
1146 rol edx, 1
1147 or ebp, eax
1148 mov DWORD PTR 32[esp],edx
1149 and ebp, ebx
1150 lea edx, DWORD PTR 2400959708[ecx*1+edx]
1151 mov ecx, esi
1152 ror esi, 1
1153 and ecx, eax
1154 or ebp, ecx
1155 mov ecx, edi
1156 rol ecx, 5
1157 add ebp, ecx
1158 mov ecx, DWORD PTR 36[esp]
1159 add edx, ebp
1160 mov ebp, DWORD PTR 44[esp]
1161 xor ecx, ebp
1162 mov ebp, DWORD PTR 4[esp]
1163 xor ecx, ebp
1164 mov ebp, DWORD PTR 24[esp]
1165 ror esi, 1
1166 xor ecx, ebp
1167 rol ecx, 1
1168 mov ebp, edi
1169 mov DWORD PTR 36[esp],ecx
1170 or ebp, esi
1171 lea ecx, DWORD PTR 2400959708[ebx*1+ecx]
1172 mov ebx, edi
1173 and ebp, eax
1174 and ebx, esi
1175 or ebp, ebx
1176 mov ebx, edx
1177 rol ebx, 5
1178 ror edi, 1
1179 add ebp, ebx
1180 ror edi, 1
1181 add ecx, ebp
1182 ; 40_59 57
1183 ; 40_59 58
1184 mov ebx, DWORD PTR 40[esp]
1185 mov ebp, DWORD PTR 48[esp]
1186 xor ebx, ebp
1187 mov ebp, DWORD PTR 8[esp]
1188 xor ebx, ebp
1189 mov ebp, DWORD PTR 28[esp]
1190 xor ebx, ebp
1191 mov ebp, edx
1192 rol ebx, 1
1193 or ebp, edi
1194 mov DWORD PTR 40[esp],ebx
1195 and ebp, esi
1196 lea ebx, DWORD PTR 2400959708[eax*1+ebx]
1197 mov eax, edx
1198 ror edx, 1
1199 and eax, edi
1200 or ebp, eax
1201 mov eax, ecx
1202 rol eax, 5
1203 add ebp, eax
1204 mov eax, DWORD PTR 44[esp]
1205 add ebx, ebp
1206 mov ebp, DWORD PTR 52[esp]
1207 xor eax, ebp
1208 mov ebp, DWORD PTR 12[esp]
1209 xor eax, ebp
1210 mov ebp, DWORD PTR 32[esp]
1211 ror edx, 1
1212 xor eax, ebp
1213 rol eax, 1
1214 mov ebp, ecx
1215 mov DWORD PTR 44[esp],eax
1216 or ebp, edx
1217 lea eax, DWORD PTR 2400959708[esi*1+eax]
1218 mov esi, ecx
1219 and ebp, edi
1220 and esi, edx
1221 or ebp, esi
1222 mov esi, ebx
1223 rol esi, 5
1224 ror ecx, 1
1225 add ebp, esi
1226 ror ecx, 1
1227 add eax, ebp
1228 ; 40_59 59
1229 ; 20_39 60
1230 mov esi, DWORD PTR 48[esp]
1231 mov ebp, DWORD PTR 56[esp]
1232 xor esi, ebp
1233 mov ebp, DWORD PTR 16[esp]
1234 xor esi, ebp
1235 mov ebp, DWORD PTR 36[esp]
1236 xor esi, ebp
1237 mov ebp, ebx
1238 rol esi, 1
1239 xor ebp, ecx
1240 mov DWORD PTR 48[esp],esi
1241 xor ebp, edx
1242 lea esi, DWORD PTR 3395469782[edi*1+esi]
1243 mov edi, eax
1244 rol edi, 5
1245 ror ebx, 1
1246 add edi, ebp
1247 ror ebx, 1
1248 add esi, edi
1249 ; 20_39 61
1250 mov edi, DWORD PTR 52[esp]
1251 mov ebp, DWORD PTR 60[esp]
1252 xor edi, ebp
1253 mov ebp, DWORD PTR 20[esp]
1254 xor edi, ebp
1255 mov ebp, DWORD PTR 40[esp]
1256 xor edi, ebp
1257 mov ebp, eax
1258 rol edi, 1
1259 xor ebp, ebx
1260 mov DWORD PTR 52[esp],edi
1261 xor ebp, ecx
1262 lea edi, DWORD PTR 3395469782[edx*1+edi]
1263 mov edx, esi
1264 rol edx, 5
1265 ror eax, 1
1266 add edx, ebp
1267 ror eax, 1
1268 add edi, edx
1269 ; 20_39 62
1270 mov edx, DWORD PTR 56[esp]
1271 mov ebp, DWORD PTR [esp]
1272 xor edx, ebp
1273 mov ebp, DWORD PTR 24[esp]
1274 xor edx, ebp
1275 mov ebp, DWORD PTR 44[esp]
1276 xor edx, ebp
1277 mov ebp, esi
1278 rol edx, 1
1279 xor ebp, eax
1280 mov DWORD PTR 56[esp],edx
1281 xor ebp, ebx
1282 lea edx, DWORD PTR 3395469782[ecx*1+edx]
1283 mov ecx, edi
1284 rol ecx, 5
1285 ror esi, 1
1286 add ecx, ebp
1287 ror esi, 1
1288 add edx, ecx
1289 ; 20_39 63
1290 mov ecx, DWORD PTR 60[esp]
1291 mov ebp, DWORD PTR 4[esp]
1292 xor ecx, ebp
1293 mov ebp, DWORD PTR 28[esp]
1294 xor ecx, ebp
1295 mov ebp, DWORD PTR 48[esp]
1296 xor ecx, ebp
1297 mov ebp, edi
1298 rol ecx, 1
1299 xor ebp, esi
1300 mov DWORD PTR 60[esp],ecx
1301 xor ebp, eax
1302 lea ecx, DWORD PTR 3395469782[ebx*1+ecx]
1303 mov ebx, edx
1304 rol ebx, 5
1305 ror edi, 1
1306 add ebx, ebp
1307 ror edi, 1
1308 add ecx, ebx
1309 ; 20_39 64
1310 mov ebx, DWORD PTR [esp]
1311 mov ebp, DWORD PTR 8[esp]
1312 xor ebx, ebp
1313 mov ebp, DWORD PTR 32[esp]
1314 xor ebx, ebp
1315 mov ebp, DWORD PTR 52[esp]
1316 xor ebx, ebp
1317 mov ebp, edx
1318 rol ebx, 1
1319 xor ebp, edi
1320 mov DWORD PTR [esp],ebx
1321 xor ebp, esi
1322 lea ebx, DWORD PTR 3395469782[eax*1+ebx]
1323 mov eax, ecx
1324 rol eax, 5
1325 ror edx, 1
1326 add eax, ebp
1327 ror edx, 1
1328 add ebx, eax
1329 ; 20_39 65
1330 mov eax, DWORD PTR 4[esp]
1331 mov ebp, DWORD PTR 12[esp]
1332 xor eax, ebp
1333 mov ebp, DWORD PTR 36[esp]
1334 xor eax, ebp
1335 mov ebp, DWORD PTR 56[esp]
1336 xor eax, ebp
1337 mov ebp, ecx
1338 rol eax, 1
1339 xor ebp, edx
1340 mov DWORD PTR 4[esp],eax
1341 xor ebp, edi
1342 lea eax, DWORD PTR 3395469782[esi*1+eax]
1343 mov esi, ebx
1344 rol esi, 5
1345 ror ecx, 1
1346 add esi, ebp
1347 ror ecx, 1
1348 add eax, esi
1349 ; 20_39 66
1350 mov esi, DWORD PTR 8[esp]
1351 mov ebp, DWORD PTR 16[esp]
1352 xor esi, ebp
1353 mov ebp, DWORD PTR 40[esp]
1354 xor esi, ebp
1355 mov ebp, DWORD PTR 60[esp]
1356 xor esi, ebp
1357 mov ebp, ebx
1358 rol esi, 1
1359 xor ebp, ecx
1360 mov DWORD PTR 8[esp],esi
1361 xor ebp, edx
1362 lea esi, DWORD PTR 3395469782[edi*1+esi]
1363 mov edi, eax
1364 rol edi, 5
1365 ror ebx, 1
1366 add edi, ebp
1367 ror ebx, 1
1368 add esi, edi
1369 ; 20_39 67
1370 mov edi, DWORD PTR 12[esp]
1371 mov ebp, DWORD PTR 20[esp]
1372 xor edi, ebp
1373 mov ebp, DWORD PTR 44[esp]
1374 xor edi, ebp
1375 mov ebp, DWORD PTR [esp]
1376 xor edi, ebp
1377 mov ebp, eax
1378 rol edi, 1
1379 xor ebp, ebx
1380 mov DWORD PTR 12[esp],edi
1381 xor ebp, ecx
1382 lea edi, DWORD PTR 3395469782[edx*1+edi]
1383 mov edx, esi
1384 rol edx, 5
1385 ror eax, 1
1386 add edx, ebp
1387 ror eax, 1
1388 add edi, edx
1389 ; 20_39 68
1390 mov edx, DWORD PTR 16[esp]
1391 mov ebp, DWORD PTR 24[esp]
1392 xor edx, ebp
1393 mov ebp, DWORD PTR 48[esp]
1394 xor edx, ebp
1395 mov ebp, DWORD PTR 4[esp]
1396 xor edx, ebp
1397 mov ebp, esi
1398 rol edx, 1
1399 xor ebp, eax
1400 mov DWORD PTR 16[esp],edx
1401 xor ebp, ebx
1402 lea edx, DWORD PTR 3395469782[ecx*1+edx]
1403 mov ecx, edi
1404 rol ecx, 5
1405 ror esi, 1
1406 add ecx, ebp
1407 ror esi, 1
1408 add edx, ecx
1409 ; 20_39 69
1410 mov ecx, DWORD PTR 20[esp]
1411 mov ebp, DWORD PTR 28[esp]
1412 xor ecx, ebp
1413 mov ebp, DWORD PTR 52[esp]
1414 xor ecx, ebp
1415 mov ebp, DWORD PTR 8[esp]
1416 xor ecx, ebp
1417 mov ebp, edi
1418 rol ecx, 1
1419 xor ebp, esi
1420 mov DWORD PTR 20[esp],ecx
1421 xor ebp, eax
1422 lea ecx, DWORD PTR 3395469782[ebx*1+ecx]
1423 mov ebx, edx
1424 rol ebx, 5
1425 ror edi, 1
1426 add ebx, ebp
1427 ror edi, 1
1428 add ecx, ebx
1429 ; 20_39 70
1430 mov ebx, DWORD PTR 24[esp]
1431 mov ebp, DWORD PTR 32[esp]
1432 xor ebx, ebp
1433 mov ebp, DWORD PTR 56[esp]
1434 xor ebx, ebp
1435 mov ebp, DWORD PTR 12[esp]
1436 xor ebx, ebp
1437 mov ebp, edx
1438 rol ebx, 1
1439 xor ebp, edi
1440 mov DWORD PTR 24[esp],ebx
1441 xor ebp, esi
1442 lea ebx, DWORD PTR 3395469782[eax*1+ebx]
1443 mov eax, ecx
1444 rol eax, 5
1445 ror edx, 1
1446 add eax, ebp
1447 ror edx, 1
1448 add ebx, eax
1449 ; 20_39 71
1450 mov eax, DWORD PTR 28[esp]
1451 mov ebp, DWORD PTR 36[esp]
1452 xor eax, ebp
1453 mov ebp, DWORD PTR 60[esp]
1454 xor eax, ebp
1455 mov ebp, DWORD PTR 16[esp]
1456 xor eax, ebp
1457 mov ebp, ecx
1458 rol eax, 1
1459 xor ebp, edx
1460 mov DWORD PTR 28[esp],eax
1461 xor ebp, edi
1462 lea eax, DWORD PTR 3395469782[esi*1+eax]
1463 mov esi, ebx
1464 rol esi, 5
1465 ror ecx, 1
1466 add esi, ebp
1467 ror ecx, 1
1468 add eax, esi
1469 ; 20_39 72
1470 mov esi, DWORD PTR 32[esp]
1471 mov ebp, DWORD PTR 40[esp]
1472 xor esi, ebp
1473 mov ebp, DWORD PTR [esp]
1474 xor esi, ebp
1475 mov ebp, DWORD PTR 20[esp]
1476 xor esi, ebp
1477 mov ebp, ebx
1478 rol esi, 1
1479 xor ebp, ecx
1480 mov DWORD PTR 32[esp],esi
1481 xor ebp, edx
1482 lea esi, DWORD PTR 3395469782[edi*1+esi]
1483 mov edi, eax
1484 rol edi, 5
1485 ror ebx, 1
1486 add edi, ebp
1487 ror ebx, 1
1488 add esi, edi
1489 ; 20_39 73
1490 mov edi, DWORD PTR 36[esp]
1491 mov ebp, DWORD PTR 44[esp]
1492 xor edi, ebp
1493 mov ebp, DWORD PTR 4[esp]
1494 xor edi, ebp
1495 mov ebp, DWORD PTR 24[esp]
1496 xor edi, ebp
1497 mov ebp, eax
1498 rol edi, 1
1499 xor ebp, ebx
1500 mov DWORD PTR 36[esp],edi
1501 xor ebp, ecx
1502 lea edi, DWORD PTR 3395469782[edx*1+edi]
1503 mov edx, esi
1504 rol edx, 5
1505 ror eax, 1
1506 add edx, ebp
1507 ror eax, 1
1508 add edi, edx
1509 ; 20_39 74
1510 mov edx, DWORD PTR 40[esp]
1511 mov ebp, DWORD PTR 48[esp]
1512 xor edx, ebp
1513 mov ebp, DWORD PTR 8[esp]
1514 xor edx, ebp
1515 mov ebp, DWORD PTR 28[esp]
1516 xor edx, ebp
1517 mov ebp, esi
1518 rol edx, 1
1519 xor ebp, eax
1520 mov DWORD PTR 40[esp],edx
1521 xor ebp, ebx
1522 lea edx, DWORD PTR 3395469782[ecx*1+edx]
1523 mov ecx, edi
1524 rol ecx, 5
1525 ror esi, 1
1526 add ecx, ebp
1527 ror esi, 1
1528 add edx, ecx
1529 ; 20_39 75
1530 mov ecx, DWORD PTR 44[esp]
1531 mov ebp, DWORD PTR 52[esp]
1532 xor ecx, ebp
1533 mov ebp, DWORD PTR 12[esp]
1534 xor ecx, ebp
1535 mov ebp, DWORD PTR 32[esp]
1536 xor ecx, ebp
1537 mov ebp, edi
1538 rol ecx, 1
1539 xor ebp, esi
1540 mov DWORD PTR 44[esp],ecx
1541 xor ebp, eax
1542 lea ecx, DWORD PTR 3395469782[ebx*1+ecx]
1543 mov ebx, edx
1544 rol ebx, 5
1545 ror edi, 1
1546 add ebx, ebp
1547 ror edi, 1
1548 add ecx, ebx
1549 ; 20_39 76
1550 mov ebx, DWORD PTR 48[esp]
1551 mov ebp, DWORD PTR 56[esp]
1552 xor ebx, ebp
1553 mov ebp, DWORD PTR 16[esp]
1554 xor ebx, ebp
1555 mov ebp, DWORD PTR 36[esp]
1556 xor ebx, ebp
1557 mov ebp, edx
1558 rol ebx, 1
1559 xor ebp, edi
1560 mov DWORD PTR 48[esp],ebx
1561 xor ebp, esi
1562 lea ebx, DWORD PTR 3395469782[eax*1+ebx]
1563 mov eax, ecx
1564 rol eax, 5
1565 ror edx, 1
1566 add eax, ebp
1567 ror edx, 1
1568 add ebx, eax
1569 ; 20_39 77
1570 mov eax, DWORD PTR 52[esp]
1571 mov ebp, DWORD PTR 60[esp]
1572 xor eax, ebp
1573 mov ebp, DWORD PTR 20[esp]
1574 xor eax, ebp
1575 mov ebp, DWORD PTR 40[esp]
1576 xor eax, ebp
1577 mov ebp, ecx
1578 rol eax, 1
1579 xor ebp, edx
1580 mov DWORD PTR 52[esp],eax
1581 xor ebp, edi
1582 lea eax, DWORD PTR 3395469782[esi*1+eax]
1583 mov esi, ebx
1584 rol esi, 5
1585 ror ecx, 1
1586 add esi, ebp
1587 ror ecx, 1
1588 add eax, esi
1589 ; 20_39 78
1590 mov esi, DWORD PTR 56[esp]
1591 mov ebp, DWORD PTR [esp]
1592 xor esi, ebp
1593 mov ebp, DWORD PTR 24[esp]
1594 xor esi, ebp
1595 mov ebp, DWORD PTR 44[esp]
1596 xor esi, ebp
1597 mov ebp, ebx
1598 rol esi, 1
1599 xor ebp, ecx
1600 mov DWORD PTR 56[esp],esi
1601 xor ebp, edx
1602 lea esi, DWORD PTR 3395469782[edi*1+esi]
1603 mov edi, eax
1604 rol edi, 5
1605 ror ebx, 1
1606 add edi, ebp
1607 ror ebx, 1
1608 add esi, edi
1609 ; 20_39 79
1610 mov edi, DWORD PTR 60[esp]
1611 mov ebp, DWORD PTR 4[esp]
1612 xor edi, ebp
1613 mov ebp, DWORD PTR 28[esp]
1614 xor edi, ebp
1615 mov ebp, DWORD PTR 48[esp]
1616 xor edi, ebp
1617 mov ebp, eax
1618 rol edi, 1
1619 xor ebp, ebx
1620 mov DWORD PTR 60[esp],edi
1621 xor ebp, ecx
1622 lea edi, DWORD PTR 3395469782[edx*1+edi]
1623 mov edx, esi
1624 rol edx, 5
1625 add edx, ebp
1626 mov ebp, DWORD PTR 92[esp]
1627 ror eax, 1
1628 add edi, edx
1629 ror eax, 1
1630 ; End processing
1631 ;
1632 mov edx, DWORD PTR 12[ebp]
1633 add edx, ebx
1634 mov ebx, DWORD PTR 4[ebp]
1635 add ebx, esi
1636 mov esi, eax
1637 mov eax, DWORD PTR [ebp]
1638 mov DWORD PTR 12[ebp],edx
1639 add eax, edi
1640 mov edi, DWORD PTR 16[ebp]
1641 add edi, ecx
1642 mov ecx, DWORD PTR 8[ebp]
1643 add ecx, esi
1644 mov DWORD PTR [ebp],eax
1645 mov esi, DWORD PTR 64[esp]
1646 mov DWORD PTR 8[ebp],ecx
1647 add esi, 64
1648 mov eax, DWORD PTR 68[esp]
1649 mov DWORD PTR 16[ebp],edi
1650 cmp eax, esi
1651 mov DWORD PTR 4[ebp],ebx
1652 jl $L001end
1653 mov eax, DWORD PTR [esi]
1654 jmp L000start
1655$L001end:
1656 add esp, 72
1657 pop edi
1658 pop ebx
1659 pop ebp
1660 pop esi
1661 ret
1662_sha1_block_x86 ENDP
1663_TEXT ENDS
1664END
diff --git a/src/lib/libcrypto/sha/asm/sx86unix.cpp b/src/lib/libcrypto/sha/asm/sx86unix.cpp
new file mode 100644
index 0000000000..8366664a39
--- /dev/null
+++ b/src/lib/libcrypto/sha/asm/sx86unix.cpp
@@ -0,0 +1,1948 @@
1/* Run the C pre-processor over this file with one of the following defined
2 * ELF - elf object files,
3 * OUT - a.out object files,
4 * BSDI - BSDI style a.out object files
5 * SOL - Solaris style elf
6 */
7
8#define TYPE(a,b) .type a,b
9#define SIZE(a,b) .size a,b
10
11#if defined(OUT) || defined(BSDI)
12#define sha1_block_x86 _sha1_block_x86
13
14#endif
15
16#ifdef OUT
17#define OK 1
18#define ALIGN 4
19#endif
20
21#ifdef BSDI
22#define OK 1
23#define ALIGN 4
24#undef SIZE
25#undef TYPE
26#define SIZE(a,b)
27#define TYPE(a,b)
28#endif
29
30#if defined(ELF) || defined(SOL)
31#define OK 1
32#define ALIGN 16
33#endif
34
35#ifndef OK
36You need to define one of
37ELF - elf systems - linux-elf, NetBSD and DG-UX
38OUT - a.out systems - linux-a.out and FreeBSD
39SOL - solaris systems, which are elf with strange comment lines
40BSDI - a.out with a very primative version of as.
41#endif
42
43/* Let the Assembler begin :-) */
44 /* Don't even think of reading this code */
45 /* It was automatically generated by sha1-586.pl */
46 /* Which is a perl program used to generate the x86 assember for */
47 /* any of elf, a.out, BSDI,Win32, or Solaris */
48 /* eric <eay@cryptsoft.com> */
49
50 .file "sha1-586.s"
51 .version "01.01"
52gcc2_compiled.:
53.text
54 .align ALIGN
55.globl sha1_block_x86
56 TYPE(sha1_block_x86,@function)
57sha1_block_x86:
58 pushl %esi
59 pushl %ebp
60 movl 20(%esp), %eax
61 movl 16(%esp), %esi
62 addl %esi, %eax
63 movl 12(%esp), %ebp
64 pushl %ebx
65 subl $64, %eax
66 pushl %edi
67 movl 4(%ebp), %ebx
68 subl $72, %esp
69 movl 12(%ebp), %edx
70 movl 16(%ebp), %edi
71 movl 8(%ebp), %ecx
72 movl %eax, 68(%esp)
73 /* First we need to setup the X array */
74 movl (%esi), %eax
75.L000start:
76 /* First, load the words onto the stack in network byte order */
77.byte 15
78.byte 200 /* bswapl %eax */
79 movl %eax, (%esp)
80 movl 4(%esi), %eax
81.byte 15
82.byte 200 /* bswapl %eax */
83 movl %eax, 4(%esp)
84 movl 8(%esi), %eax
85.byte 15
86.byte 200 /* bswapl %eax */
87 movl %eax, 8(%esp)
88 movl 12(%esi), %eax
89.byte 15
90.byte 200 /* bswapl %eax */
91 movl %eax, 12(%esp)
92 movl 16(%esi), %eax
93.byte 15
94.byte 200 /* bswapl %eax */
95 movl %eax, 16(%esp)
96 movl 20(%esi), %eax
97.byte 15
98.byte 200 /* bswapl %eax */
99 movl %eax, 20(%esp)
100 movl 24(%esi), %eax
101.byte 15
102.byte 200 /* bswapl %eax */
103 movl %eax, 24(%esp)
104 movl 28(%esi), %eax
105.byte 15
106.byte 200 /* bswapl %eax */
107 movl %eax, 28(%esp)
108 movl 32(%esi), %eax
109.byte 15
110.byte 200 /* bswapl %eax */
111 movl %eax, 32(%esp)
112 movl 36(%esi), %eax
113.byte 15
114.byte 200 /* bswapl %eax */
115 movl %eax, 36(%esp)
116 movl 40(%esi), %eax
117.byte 15
118.byte 200 /* bswapl %eax */
119 movl %eax, 40(%esp)
120 movl 44(%esi), %eax
121.byte 15
122.byte 200 /* bswapl %eax */
123 movl %eax, 44(%esp)
124 movl 48(%esi), %eax
125.byte 15
126.byte 200 /* bswapl %eax */
127 movl %eax, 48(%esp)
128 movl 52(%esi), %eax
129.byte 15
130.byte 200 /* bswapl %eax */
131 movl %eax, 52(%esp)
132 movl 56(%esi), %eax
133.byte 15
134.byte 200 /* bswapl %eax */
135 movl %eax, 56(%esp)
136 movl 60(%esi), %eax
137.byte 15
138.byte 200 /* bswapl %eax */
139 movl %eax, 60(%esp)
140 /* We now have the X array on the stack */
141 /* starting at sp-4 */
142 movl %esi, 64(%esp)
143
144 /* Start processing */
145 movl (%ebp), %eax
146 /* 00_15 0 */
147 movl %ecx, %esi
148 movl %eax, %ebp
149 xorl %edx, %esi
150 roll $5, %ebp
151 andl %ebx, %esi
152 addl %edi, %ebp
153.byte 209
154.byte 203 /* rorl $1 %ebx */
155 movl (%esp), %edi
156.byte 209
157.byte 203 /* rorl $1 %ebx */
158 xorl %edx, %esi
159 leal 1518500249(%ebp,%edi,1),%ebp
160 movl %ebx, %edi
161 addl %ebp, %esi
162 xorl %ecx, %edi
163 movl %esi, %ebp
164 andl %eax, %edi
165 roll $5, %ebp
166 addl %edx, %ebp
167 movl 4(%esp), %edx
168.byte 209
169.byte 200 /* rorl $1 %eax */
170 xorl %ecx, %edi
171.byte 209
172.byte 200 /* rorl $1 %eax */
173 leal 1518500249(%ebp,%edx,1),%ebp
174 addl %ebp, %edi
175 /* 00_15 2 */
176 movl %eax, %edx
177 movl %edi, %ebp
178 xorl %ebx, %edx
179 roll $5, %ebp
180 andl %esi, %edx
181 addl %ecx, %ebp
182.byte 209
183.byte 206 /* rorl $1 %esi */
184 movl 8(%esp), %ecx
185.byte 209
186.byte 206 /* rorl $1 %esi */
187 xorl %ebx, %edx
188 leal 1518500249(%ebp,%ecx,1),%ebp
189 movl %esi, %ecx
190 addl %ebp, %edx
191 xorl %eax, %ecx
192 movl %edx, %ebp
193 andl %edi, %ecx
194 roll $5, %ebp
195 addl %ebx, %ebp
196 movl 12(%esp), %ebx
197.byte 209
198.byte 207 /* rorl $1 %edi */
199 xorl %eax, %ecx
200.byte 209
201.byte 207 /* rorl $1 %edi */
202 leal 1518500249(%ebp,%ebx,1),%ebp
203 addl %ebp, %ecx
204 /* 00_15 4 */
205 movl %edi, %ebx
206 movl %ecx, %ebp
207 xorl %esi, %ebx
208 roll $5, %ebp
209 andl %edx, %ebx
210 addl %eax, %ebp
211.byte 209
212.byte 202 /* rorl $1 %edx */
213 movl 16(%esp), %eax
214.byte 209
215.byte 202 /* rorl $1 %edx */
216 xorl %esi, %ebx
217 leal 1518500249(%ebp,%eax,1),%ebp
218 movl %edx, %eax
219 addl %ebp, %ebx
220 xorl %edi, %eax
221 movl %ebx, %ebp
222 andl %ecx, %eax
223 roll $5, %ebp
224 addl %esi, %ebp
225 movl 20(%esp), %esi
226.byte 209
227.byte 201 /* rorl $1 %ecx */
228 xorl %edi, %eax
229.byte 209
230.byte 201 /* rorl $1 %ecx */
231 leal 1518500249(%ebp,%esi,1),%ebp
232 addl %ebp, %eax
233 /* 00_15 6 */
234 movl %ecx, %esi
235 movl %eax, %ebp
236 xorl %edx, %esi
237 roll $5, %ebp
238 andl %ebx, %esi
239 addl %edi, %ebp
240.byte 209
241.byte 203 /* rorl $1 %ebx */
242 movl 24(%esp), %edi
243.byte 209
244.byte 203 /* rorl $1 %ebx */
245 xorl %edx, %esi
246 leal 1518500249(%ebp,%edi,1),%ebp
247 movl %ebx, %edi
248 addl %ebp, %esi
249 xorl %ecx, %edi
250 movl %esi, %ebp
251 andl %eax, %edi
252 roll $5, %ebp
253 addl %edx, %ebp
254 movl 28(%esp), %edx
255.byte 209
256.byte 200 /* rorl $1 %eax */
257 xorl %ecx, %edi
258.byte 209
259.byte 200 /* rorl $1 %eax */
260 leal 1518500249(%ebp,%edx,1),%ebp
261 addl %ebp, %edi
262 /* 00_15 8 */
263 movl %eax, %edx
264 movl %edi, %ebp
265 xorl %ebx, %edx
266 roll $5, %ebp
267 andl %esi, %edx
268 addl %ecx, %ebp
269.byte 209
270.byte 206 /* rorl $1 %esi */
271 movl 32(%esp), %ecx
272.byte 209
273.byte 206 /* rorl $1 %esi */
274 xorl %ebx, %edx
275 leal 1518500249(%ebp,%ecx,1),%ebp
276 movl %esi, %ecx
277 addl %ebp, %edx
278 xorl %eax, %ecx
279 movl %edx, %ebp
280 andl %edi, %ecx
281 roll $5, %ebp
282 addl %ebx, %ebp
283 movl 36(%esp), %ebx
284.byte 209
285.byte 207 /* rorl $1 %edi */
286 xorl %eax, %ecx
287.byte 209
288.byte 207 /* rorl $1 %edi */
289 leal 1518500249(%ebp,%ebx,1),%ebp
290 addl %ebp, %ecx
291 /* 00_15 10 */
292 movl %edi, %ebx
293 movl %ecx, %ebp
294 xorl %esi, %ebx
295 roll $5, %ebp
296 andl %edx, %ebx
297 addl %eax, %ebp
298.byte 209
299.byte 202 /* rorl $1 %edx */
300 movl 40(%esp), %eax
301.byte 209
302.byte 202 /* rorl $1 %edx */
303 xorl %esi, %ebx
304 leal 1518500249(%ebp,%eax,1),%ebp
305 movl %edx, %eax
306 addl %ebp, %ebx
307 xorl %edi, %eax
308 movl %ebx, %ebp
309 andl %ecx, %eax
310 roll $5, %ebp
311 addl %esi, %ebp
312 movl 44(%esp), %esi
313.byte 209
314.byte 201 /* rorl $1 %ecx */
315 xorl %edi, %eax
316.byte 209
317.byte 201 /* rorl $1 %ecx */
318 leal 1518500249(%ebp,%esi,1),%ebp
319 addl %ebp, %eax
320 /* 00_15 12 */
321 movl %ecx, %esi
322 movl %eax, %ebp
323 xorl %edx, %esi
324 roll $5, %ebp
325 andl %ebx, %esi
326 addl %edi, %ebp
327.byte 209
328.byte 203 /* rorl $1 %ebx */
329 movl 48(%esp), %edi
330.byte 209
331.byte 203 /* rorl $1 %ebx */
332 xorl %edx, %esi
333 leal 1518500249(%ebp,%edi,1),%ebp
334 movl %ebx, %edi
335 addl %ebp, %esi
336 xorl %ecx, %edi
337 movl %esi, %ebp
338 andl %eax, %edi
339 roll $5, %ebp
340 addl %edx, %ebp
341 movl 52(%esp), %edx
342.byte 209
343.byte 200 /* rorl $1 %eax */
344 xorl %ecx, %edi
345.byte 209
346.byte 200 /* rorl $1 %eax */
347 leal 1518500249(%ebp,%edx,1),%ebp
348 addl %ebp, %edi
349 /* 00_15 14 */
350 movl %eax, %edx
351 movl %edi, %ebp
352 xorl %ebx, %edx
353 roll $5, %ebp
354 andl %esi, %edx
355 addl %ecx, %ebp
356.byte 209
357.byte 206 /* rorl $1 %esi */
358 movl 56(%esp), %ecx
359.byte 209
360.byte 206 /* rorl $1 %esi */
361 xorl %ebx, %edx
362 leal 1518500249(%ebp,%ecx,1),%ebp
363 movl %esi, %ecx
364 addl %ebp, %edx
365 xorl %eax, %ecx
366 movl %edx, %ebp
367 andl %edi, %ecx
368 roll $5, %ebp
369 addl %ebx, %ebp
370 movl 60(%esp), %ebx
371.byte 209
372.byte 207 /* rorl $1 %edi */
373 xorl %eax, %ecx
374.byte 209
375.byte 207 /* rorl $1 %edi */
376 leal 1518500249(%ebp,%ebx,1),%ebp
377 addl %ebp, %ecx
378 /* 16_19 16 */
379 nop
380 movl (%esp), %ebp
381 movl 8(%esp), %ebx
382 xorl %ebp, %ebx
383 movl 32(%esp), %ebp
384 xorl %ebp, %ebx
385 movl 52(%esp), %ebp
386 xorl %ebp, %ebx
387 movl %edi, %ebp
388.byte 209
389.byte 195 /* roll $1 %ebx */
390 xorl %esi, %ebp
391 movl %ebx, (%esp)
392 andl %edx, %ebp
393 leal 1518500249(%ebx,%eax,1),%ebx
394 xorl %esi, %ebp
395 movl %ecx, %eax
396 addl %ebp, %ebx
397 roll $5, %eax
398.byte 209
399.byte 202 /* rorl $1 %edx */
400 addl %eax, %ebx
401 movl 4(%esp), %eax
402 movl 12(%esp), %ebp
403 xorl %ebp, %eax
404 movl 36(%esp), %ebp
405 xorl %ebp, %eax
406 movl 56(%esp), %ebp
407.byte 209
408.byte 202 /* rorl $1 %edx */
409 xorl %ebp, %eax
410.byte 209
411.byte 192 /* roll $1 %eax */
412 movl %edx, %ebp
413 xorl %edi, %ebp
414 movl %eax, 4(%esp)
415 andl %ecx, %ebp
416 leal 1518500249(%eax,%esi,1),%eax
417 xorl %edi, %ebp
418 movl %ebx, %esi
419 roll $5, %esi
420.byte 209
421.byte 201 /* rorl $1 %ecx */
422 addl %esi, %eax
423.byte 209
424.byte 201 /* rorl $1 %ecx */
425 addl %ebp, %eax
426 /* 16_19 18 */
427 movl 8(%esp), %ebp
428 movl 16(%esp), %esi
429 xorl %ebp, %esi
430 movl 40(%esp), %ebp
431 xorl %ebp, %esi
432 movl 60(%esp), %ebp
433 xorl %ebp, %esi
434 movl %ecx, %ebp
435.byte 209
436.byte 198 /* roll $1 %esi */
437 xorl %edx, %ebp
438 movl %esi, 8(%esp)
439 andl %ebx, %ebp
440 leal 1518500249(%esi,%edi,1),%esi
441 xorl %edx, %ebp
442 movl %eax, %edi
443 addl %ebp, %esi
444 roll $5, %edi
445.byte 209
446.byte 203 /* rorl $1 %ebx */
447 addl %edi, %esi
448 movl 12(%esp), %edi
449 movl 20(%esp), %ebp
450 xorl %ebp, %edi
451 movl 44(%esp), %ebp
452 xorl %ebp, %edi
453 movl (%esp), %ebp
454.byte 209
455.byte 203 /* rorl $1 %ebx */
456 xorl %ebp, %edi
457.byte 209
458.byte 199 /* roll $1 %edi */
459 movl %ebx, %ebp
460 xorl %ecx, %ebp
461 movl %edi, 12(%esp)
462 andl %eax, %ebp
463 leal 1518500249(%edi,%edx,1),%edi
464 xorl %ecx, %ebp
465 movl %esi, %edx
466 roll $5, %edx
467.byte 209
468.byte 200 /* rorl $1 %eax */
469 addl %edx, %edi
470.byte 209
471.byte 200 /* rorl $1 %eax */
472 addl %ebp, %edi
473 /* 20_39 20 */
474 movl 16(%esp), %edx
475 movl 24(%esp), %ebp
476 xorl %ebp, %edx
477 movl 48(%esp), %ebp
478 xorl %ebp, %edx
479 movl 4(%esp), %ebp
480 xorl %ebp, %edx
481 movl %esi, %ebp
482.byte 209
483.byte 194 /* roll $1 %edx */
484 xorl %eax, %ebp
485 movl %edx, 16(%esp)
486 xorl %ebx, %ebp
487 leal 1859775393(%edx,%ecx,1),%edx
488 movl %edi, %ecx
489 roll $5, %ecx
490.byte 209
491.byte 206 /* rorl $1 %esi */
492 addl %ebp, %ecx
493.byte 209
494.byte 206 /* rorl $1 %esi */
495 addl %ecx, %edx
496 /* 20_39 21 */
497 movl 20(%esp), %ecx
498 movl 28(%esp), %ebp
499 xorl %ebp, %ecx
500 movl 52(%esp), %ebp
501 xorl %ebp, %ecx
502 movl 8(%esp), %ebp
503 xorl %ebp, %ecx
504 movl %edi, %ebp
505.byte 209
506.byte 193 /* roll $1 %ecx */
507 xorl %esi, %ebp
508 movl %ecx, 20(%esp)
509 xorl %eax, %ebp
510 leal 1859775393(%ecx,%ebx,1),%ecx
511 movl %edx, %ebx
512 roll $5, %ebx
513.byte 209
514.byte 207 /* rorl $1 %edi */
515 addl %ebp, %ebx
516.byte 209
517.byte 207 /* rorl $1 %edi */
518 addl %ebx, %ecx
519 /* 20_39 22 */
520 movl 24(%esp), %ebx
521 movl 32(%esp), %ebp
522 xorl %ebp, %ebx
523 movl 56(%esp), %ebp
524 xorl %ebp, %ebx
525 movl 12(%esp), %ebp
526 xorl %ebp, %ebx
527 movl %edx, %ebp
528.byte 209
529.byte 195 /* roll $1 %ebx */
530 xorl %edi, %ebp
531 movl %ebx, 24(%esp)
532 xorl %esi, %ebp
533 leal 1859775393(%ebx,%eax,1),%ebx
534 movl %ecx, %eax
535 roll $5, %eax
536.byte 209
537.byte 202 /* rorl $1 %edx */
538 addl %ebp, %eax
539.byte 209
540.byte 202 /* rorl $1 %edx */
541 addl %eax, %ebx
542 /* 20_39 23 */
543 movl 28(%esp), %eax
544 movl 36(%esp), %ebp
545 xorl %ebp, %eax
546 movl 60(%esp), %ebp
547 xorl %ebp, %eax
548 movl 16(%esp), %ebp
549 xorl %ebp, %eax
550 movl %ecx, %ebp
551.byte 209
552.byte 192 /* roll $1 %eax */
553 xorl %edx, %ebp
554 movl %eax, 28(%esp)
555 xorl %edi, %ebp
556 leal 1859775393(%eax,%esi,1),%eax
557 movl %ebx, %esi
558 roll $5, %esi
559.byte 209
560.byte 201 /* rorl $1 %ecx */
561 addl %ebp, %esi
562.byte 209
563.byte 201 /* rorl $1 %ecx */
564 addl %esi, %eax
565 /* 20_39 24 */
566 movl 32(%esp), %esi
567 movl 40(%esp), %ebp
568 xorl %ebp, %esi
569 movl (%esp), %ebp
570 xorl %ebp, %esi
571 movl 20(%esp), %ebp
572 xorl %ebp, %esi
573 movl %ebx, %ebp
574.byte 209
575.byte 198 /* roll $1 %esi */
576 xorl %ecx, %ebp
577 movl %esi, 32(%esp)
578 xorl %edx, %ebp
579 leal 1859775393(%esi,%edi,1),%esi
580 movl %eax, %edi
581 roll $5, %edi
582.byte 209
583.byte 203 /* rorl $1 %ebx */
584 addl %ebp, %edi
585.byte 209
586.byte 203 /* rorl $1 %ebx */
587 addl %edi, %esi
588 /* 20_39 25 */
589 movl 36(%esp), %edi
590 movl 44(%esp), %ebp
591 xorl %ebp, %edi
592 movl 4(%esp), %ebp
593 xorl %ebp, %edi
594 movl 24(%esp), %ebp
595 xorl %ebp, %edi
596 movl %eax, %ebp
597.byte 209
598.byte 199 /* roll $1 %edi */
599 xorl %ebx, %ebp
600 movl %edi, 36(%esp)
601 xorl %ecx, %ebp
602 leal 1859775393(%edi,%edx,1),%edi
603 movl %esi, %edx
604 roll $5, %edx
605.byte 209
606.byte 200 /* rorl $1 %eax */
607 addl %ebp, %edx
608.byte 209
609.byte 200 /* rorl $1 %eax */
610 addl %edx, %edi
611 /* 20_39 26 */
612 movl 40(%esp), %edx
613 movl 48(%esp), %ebp
614 xorl %ebp, %edx
615 movl 8(%esp), %ebp
616 xorl %ebp, %edx
617 movl 28(%esp), %ebp
618 xorl %ebp, %edx
619 movl %esi, %ebp
620.byte 209
621.byte 194 /* roll $1 %edx */
622 xorl %eax, %ebp
623 movl %edx, 40(%esp)
624 xorl %ebx, %ebp
625 leal 1859775393(%edx,%ecx,1),%edx
626 movl %edi, %ecx
627 roll $5, %ecx
628.byte 209
629.byte 206 /* rorl $1 %esi */
630 addl %ebp, %ecx
631.byte 209
632.byte 206 /* rorl $1 %esi */
633 addl %ecx, %edx
634 /* 20_39 27 */
635 movl 44(%esp), %ecx
636 movl 52(%esp), %ebp
637 xorl %ebp, %ecx
638 movl 12(%esp), %ebp
639 xorl %ebp, %ecx
640 movl 32(%esp), %ebp
641 xorl %ebp, %ecx
642 movl %edi, %ebp
643.byte 209
644.byte 193 /* roll $1 %ecx */
645 xorl %esi, %ebp
646 movl %ecx, 44(%esp)
647 xorl %eax, %ebp
648 leal 1859775393(%ecx,%ebx,1),%ecx
649 movl %edx, %ebx
650 roll $5, %ebx
651.byte 209
652.byte 207 /* rorl $1 %edi */
653 addl %ebp, %ebx
654.byte 209
655.byte 207 /* rorl $1 %edi */
656 addl %ebx, %ecx
657 /* 20_39 28 */
658 movl 48(%esp), %ebx
659 movl 56(%esp), %ebp
660 xorl %ebp, %ebx
661 movl 16(%esp), %ebp
662 xorl %ebp, %ebx
663 movl 36(%esp), %ebp
664 xorl %ebp, %ebx
665 movl %edx, %ebp
666.byte 209
667.byte 195 /* roll $1 %ebx */
668 xorl %edi, %ebp
669 movl %ebx, 48(%esp)
670 xorl %esi, %ebp
671 leal 1859775393(%ebx,%eax,1),%ebx
672 movl %ecx, %eax
673 roll $5, %eax
674.byte 209
675.byte 202 /* rorl $1 %edx */
676 addl %ebp, %eax
677.byte 209
678.byte 202 /* rorl $1 %edx */
679 addl %eax, %ebx
680 /* 20_39 29 */
681 movl 52(%esp), %eax
682 movl 60(%esp), %ebp
683 xorl %ebp, %eax
684 movl 20(%esp), %ebp
685 xorl %ebp, %eax
686 movl 40(%esp), %ebp
687 xorl %ebp, %eax
688 movl %ecx, %ebp
689.byte 209
690.byte 192 /* roll $1 %eax */
691 xorl %edx, %ebp
692 movl %eax, 52(%esp)
693 xorl %edi, %ebp
694 leal 1859775393(%eax,%esi,1),%eax
695 movl %ebx, %esi
696 roll $5, %esi
697.byte 209
698.byte 201 /* rorl $1 %ecx */
699 addl %ebp, %esi
700.byte 209
701.byte 201 /* rorl $1 %ecx */
702 addl %esi, %eax
703 /* 20_39 30 */
704 movl 56(%esp), %esi
705 movl (%esp), %ebp
706 xorl %ebp, %esi
707 movl 24(%esp), %ebp
708 xorl %ebp, %esi
709 movl 44(%esp), %ebp
710 xorl %ebp, %esi
711 movl %ebx, %ebp
712.byte 209
713.byte 198 /* roll $1 %esi */
714 xorl %ecx, %ebp
715 movl %esi, 56(%esp)
716 xorl %edx, %ebp
717 leal 1859775393(%esi,%edi,1),%esi
718 movl %eax, %edi
719 roll $5, %edi
720.byte 209
721.byte 203 /* rorl $1 %ebx */
722 addl %ebp, %edi
723.byte 209
724.byte 203 /* rorl $1 %ebx */
725 addl %edi, %esi
726 /* 20_39 31 */
727 movl 60(%esp), %edi
728 movl 4(%esp), %ebp
729 xorl %ebp, %edi
730 movl 28(%esp), %ebp
731 xorl %ebp, %edi
732 movl 48(%esp), %ebp
733 xorl %ebp, %edi
734 movl %eax, %ebp
735.byte 209
736.byte 199 /* roll $1 %edi */
737 xorl %ebx, %ebp
738 movl %edi, 60(%esp)
739 xorl %ecx, %ebp
740 leal 1859775393(%edi,%edx,1),%edi
741 movl %esi, %edx
742 roll $5, %edx
743.byte 209
744.byte 200 /* rorl $1 %eax */
745 addl %ebp, %edx
746.byte 209
747.byte 200 /* rorl $1 %eax */
748 addl %edx, %edi
749 /* 20_39 32 */
750 movl (%esp), %edx
751 movl 8(%esp), %ebp
752 xorl %ebp, %edx
753 movl 32(%esp), %ebp
754 xorl %ebp, %edx
755 movl 52(%esp), %ebp
756 xorl %ebp, %edx
757 movl %esi, %ebp
758.byte 209
759.byte 194 /* roll $1 %edx */
760 xorl %eax, %ebp
761 movl %edx, (%esp)
762 xorl %ebx, %ebp
763 leal 1859775393(%edx,%ecx,1),%edx
764 movl %edi, %ecx
765 roll $5, %ecx
766.byte 209
767.byte 206 /* rorl $1 %esi */
768 addl %ebp, %ecx
769.byte 209
770.byte 206 /* rorl $1 %esi */
771 addl %ecx, %edx
772 /* 20_39 33 */
773 movl 4(%esp), %ecx
774 movl 12(%esp), %ebp
775 xorl %ebp, %ecx
776 movl 36(%esp), %ebp
777 xorl %ebp, %ecx
778 movl 56(%esp), %ebp
779 xorl %ebp, %ecx
780 movl %edi, %ebp
781.byte 209
782.byte 193 /* roll $1 %ecx */
783 xorl %esi, %ebp
784 movl %ecx, 4(%esp)
785 xorl %eax, %ebp
786 leal 1859775393(%ecx,%ebx,1),%ecx
787 movl %edx, %ebx
788 roll $5, %ebx
789.byte 209
790.byte 207 /* rorl $1 %edi */
791 addl %ebp, %ebx
792.byte 209
793.byte 207 /* rorl $1 %edi */
794 addl %ebx, %ecx
795 /* 20_39 34 */
796 movl 8(%esp), %ebx
797 movl 16(%esp), %ebp
798 xorl %ebp, %ebx
799 movl 40(%esp), %ebp
800 xorl %ebp, %ebx
801 movl 60(%esp), %ebp
802 xorl %ebp, %ebx
803 movl %edx, %ebp
804.byte 209
805.byte 195 /* roll $1 %ebx */
806 xorl %edi, %ebp
807 movl %ebx, 8(%esp)
808 xorl %esi, %ebp
809 leal 1859775393(%ebx,%eax,1),%ebx
810 movl %ecx, %eax
811 roll $5, %eax
812.byte 209
813.byte 202 /* rorl $1 %edx */
814 addl %ebp, %eax
815.byte 209
816.byte 202 /* rorl $1 %edx */
817 addl %eax, %ebx
818 /* 20_39 35 */
819 movl 12(%esp), %eax
820 movl 20(%esp), %ebp
821 xorl %ebp, %eax
822 movl 44(%esp), %ebp
823 xorl %ebp, %eax
824 movl (%esp), %ebp
825 xorl %ebp, %eax
826 movl %ecx, %ebp
827.byte 209
828.byte 192 /* roll $1 %eax */
829 xorl %edx, %ebp
830 movl %eax, 12(%esp)
831 xorl %edi, %ebp
832 leal 1859775393(%eax,%esi,1),%eax
833 movl %ebx, %esi
834 roll $5, %esi
835.byte 209
836.byte 201 /* rorl $1 %ecx */
837 addl %ebp, %esi
838.byte 209
839.byte 201 /* rorl $1 %ecx */
840 addl %esi, %eax
841 /* 20_39 36 */
842 movl 16(%esp), %esi
843 movl 24(%esp), %ebp
844 xorl %ebp, %esi
845 movl 48(%esp), %ebp
846 xorl %ebp, %esi
847 movl 4(%esp), %ebp
848 xorl %ebp, %esi
849 movl %ebx, %ebp
850.byte 209
851.byte 198 /* roll $1 %esi */
852 xorl %ecx, %ebp
853 movl %esi, 16(%esp)
854 xorl %edx, %ebp
855 leal 1859775393(%esi,%edi,1),%esi
856 movl %eax, %edi
857 roll $5, %edi
858.byte 209
859.byte 203 /* rorl $1 %ebx */
860 addl %ebp, %edi
861.byte 209
862.byte 203 /* rorl $1 %ebx */
863 addl %edi, %esi
864 /* 20_39 37 */
865 movl 20(%esp), %edi
866 movl 28(%esp), %ebp
867 xorl %ebp, %edi
868 movl 52(%esp), %ebp
869 xorl %ebp, %edi
870 movl 8(%esp), %ebp
871 xorl %ebp, %edi
872 movl %eax, %ebp
873.byte 209
874.byte 199 /* roll $1 %edi */
875 xorl %ebx, %ebp
876 movl %edi, 20(%esp)
877 xorl %ecx, %ebp
878 leal 1859775393(%edi,%edx,1),%edi
879 movl %esi, %edx
880 roll $5, %edx
881.byte 209
882.byte 200 /* rorl $1 %eax */
883 addl %ebp, %edx
884.byte 209
885.byte 200 /* rorl $1 %eax */
886 addl %edx, %edi
887 /* 20_39 38 */
888 movl 24(%esp), %edx
889 movl 32(%esp), %ebp
890 xorl %ebp, %edx
891 movl 56(%esp), %ebp
892 xorl %ebp, %edx
893 movl 12(%esp), %ebp
894 xorl %ebp, %edx
895 movl %esi, %ebp
896.byte 209
897.byte 194 /* roll $1 %edx */
898 xorl %eax, %ebp
899 movl %edx, 24(%esp)
900 xorl %ebx, %ebp
901 leal 1859775393(%edx,%ecx,1),%edx
902 movl %edi, %ecx
903 roll $5, %ecx
904.byte 209
905.byte 206 /* rorl $1 %esi */
906 addl %ebp, %ecx
907.byte 209
908.byte 206 /* rorl $1 %esi */
909 addl %ecx, %edx
910 /* 20_39 39 */
911 movl 28(%esp), %ecx
912 movl 36(%esp), %ebp
913 xorl %ebp, %ecx
914 movl 60(%esp), %ebp
915 xorl %ebp, %ecx
916 movl 16(%esp), %ebp
917 xorl %ebp, %ecx
918 movl %edi, %ebp
919.byte 209
920.byte 193 /* roll $1 %ecx */
921 xorl %esi, %ebp
922 movl %ecx, 28(%esp)
923 xorl %eax, %ebp
924 leal 1859775393(%ecx,%ebx,1),%ecx
925 movl %edx, %ebx
926 roll $5, %ebx
927.byte 209
928.byte 207 /* rorl $1 %edi */
929 addl %ebp, %ebx
930.byte 209
931.byte 207 /* rorl $1 %edi */
932 addl %ebx, %ecx
933 /* 40_59 40 */
934 movl 32(%esp), %ebx
935 movl 40(%esp), %ebp
936 xorl %ebp, %ebx
937 movl (%esp), %ebp
938 xorl %ebp, %ebx
939 movl 20(%esp), %ebp
940 xorl %ebp, %ebx
941 movl %edx, %ebp
942.byte 209
943.byte 195 /* roll $1 %ebx */
944 orl %edi, %ebp
945 movl %ebx, 32(%esp)
946 andl %esi, %ebp
947 leal 2400959708(%ebx,%eax,1),%ebx
948 movl %edx, %eax
949.byte 209
950.byte 202 /* rorl $1 %edx */
951 andl %edi, %eax
952 orl %eax, %ebp
953 movl %ecx, %eax
954 roll $5, %eax
955 addl %eax, %ebp
956 movl 36(%esp), %eax
957 addl %ebp, %ebx
958 movl 44(%esp), %ebp
959 xorl %ebp, %eax
960 movl 4(%esp), %ebp
961 xorl %ebp, %eax
962 movl 24(%esp), %ebp
963.byte 209
964.byte 202 /* rorl $1 %edx */
965 xorl %ebp, %eax
966.byte 209
967.byte 192 /* roll $1 %eax */
968 movl %ecx, %ebp
969 movl %eax, 36(%esp)
970 orl %edx, %ebp
971 leal 2400959708(%eax,%esi,1),%eax
972 movl %ecx, %esi
973 andl %edi, %ebp
974 andl %edx, %esi
975 orl %esi, %ebp
976 movl %ebx, %esi
977 roll $5, %esi
978.byte 209
979.byte 201 /* rorl $1 %ecx */
980 addl %esi, %ebp
981.byte 209
982.byte 201 /* rorl $1 %ecx */
983 addl %ebp, %eax
984 /* 40_59 41 */
985 /* 40_59 42 */
986 movl 40(%esp), %esi
987 movl 48(%esp), %ebp
988 xorl %ebp, %esi
989 movl 8(%esp), %ebp
990 xorl %ebp, %esi
991 movl 28(%esp), %ebp
992 xorl %ebp, %esi
993 movl %ebx, %ebp
994.byte 209
995.byte 198 /* roll $1 %esi */
996 orl %ecx, %ebp
997 movl %esi, 40(%esp)
998 andl %edx, %ebp
999 leal 2400959708(%esi,%edi,1),%esi
1000 movl %ebx, %edi
1001.byte 209
1002.byte 203 /* rorl $1 %ebx */
1003 andl %ecx, %edi
1004 orl %edi, %ebp
1005 movl %eax, %edi
1006 roll $5, %edi
1007 addl %edi, %ebp
1008 movl 44(%esp), %edi
1009 addl %ebp, %esi
1010 movl 52(%esp), %ebp
1011 xorl %ebp, %edi
1012 movl 12(%esp), %ebp
1013 xorl %ebp, %edi
1014 movl 32(%esp), %ebp
1015.byte 209
1016.byte 203 /* rorl $1 %ebx */
1017 xorl %ebp, %edi
1018.byte 209
1019.byte 199 /* roll $1 %edi */
1020 movl %eax, %ebp
1021 movl %edi, 44(%esp)
1022 orl %ebx, %ebp
1023 leal 2400959708(%edi,%edx,1),%edi
1024 movl %eax, %edx
1025 andl %ecx, %ebp
1026 andl %ebx, %edx
1027 orl %edx, %ebp
1028 movl %esi, %edx
1029 roll $5, %edx
1030.byte 209
1031.byte 200 /* rorl $1 %eax */
1032 addl %edx, %ebp
1033.byte 209
1034.byte 200 /* rorl $1 %eax */
1035 addl %ebp, %edi
1036 /* 40_59 43 */
1037 /* 40_59 44 */
1038 movl 48(%esp), %edx
1039 movl 56(%esp), %ebp
1040 xorl %ebp, %edx
1041 movl 16(%esp), %ebp
1042 xorl %ebp, %edx
1043 movl 36(%esp), %ebp
1044 xorl %ebp, %edx
1045 movl %esi, %ebp
1046.byte 209
1047.byte 194 /* roll $1 %edx */
1048 orl %eax, %ebp
1049 movl %edx, 48(%esp)
1050 andl %ebx, %ebp
1051 leal 2400959708(%edx,%ecx,1),%edx
1052 movl %esi, %ecx
1053.byte 209
1054.byte 206 /* rorl $1 %esi */
1055 andl %eax, %ecx
1056 orl %ecx, %ebp
1057 movl %edi, %ecx
1058 roll $5, %ecx
1059 addl %ecx, %ebp
1060 movl 52(%esp), %ecx
1061 addl %ebp, %edx
1062 movl 60(%esp), %ebp
1063 xorl %ebp, %ecx
1064 movl 20(%esp), %ebp
1065 xorl %ebp, %ecx
1066 movl 40(%esp), %ebp
1067.byte 209
1068.byte 206 /* rorl $1 %esi */
1069 xorl %ebp, %ecx
1070.byte 209
1071.byte 193 /* roll $1 %ecx */
1072 movl %edi, %ebp
1073 movl %ecx, 52(%esp)
1074 orl %esi, %ebp
1075 leal 2400959708(%ecx,%ebx,1),%ecx
1076 movl %edi, %ebx
1077 andl %eax, %ebp
1078 andl %esi, %ebx
1079 orl %ebx, %ebp
1080 movl %edx, %ebx
1081 roll $5, %ebx
1082.byte 209
1083.byte 207 /* rorl $1 %edi */
1084 addl %ebx, %ebp
1085.byte 209
1086.byte 207 /* rorl $1 %edi */
1087 addl %ebp, %ecx
1088 /* 40_59 45 */
1089 /* 40_59 46 */
1090 movl 56(%esp), %ebx
1091 movl (%esp), %ebp
1092 xorl %ebp, %ebx
1093 movl 24(%esp), %ebp
1094 xorl %ebp, %ebx
1095 movl 44(%esp), %ebp
1096 xorl %ebp, %ebx
1097 movl %edx, %ebp
1098.byte 209
1099.byte 195 /* roll $1 %ebx */
1100 orl %edi, %ebp
1101 movl %ebx, 56(%esp)
1102 andl %esi, %ebp
1103 leal 2400959708(%ebx,%eax,1),%ebx
1104 movl %edx, %eax
1105.byte 209
1106.byte 202 /* rorl $1 %edx */
1107 andl %edi, %eax
1108 orl %eax, %ebp
1109 movl %ecx, %eax
1110 roll $5, %eax
1111 addl %eax, %ebp
1112 movl 60(%esp), %eax
1113 addl %ebp, %ebx
1114 movl 4(%esp), %ebp
1115 xorl %ebp, %eax
1116 movl 28(%esp), %ebp
1117 xorl %ebp, %eax
1118 movl 48(%esp), %ebp
1119.byte 209
1120.byte 202 /* rorl $1 %edx */
1121 xorl %ebp, %eax
1122.byte 209
1123.byte 192 /* roll $1 %eax */
1124 movl %ecx, %ebp
1125 movl %eax, 60(%esp)
1126 orl %edx, %ebp
1127 leal 2400959708(%eax,%esi,1),%eax
1128 movl %ecx, %esi
1129 andl %edi, %ebp
1130 andl %edx, %esi
1131 orl %esi, %ebp
1132 movl %ebx, %esi
1133 roll $5, %esi
1134.byte 209
1135.byte 201 /* rorl $1 %ecx */
1136 addl %esi, %ebp
1137.byte 209
1138.byte 201 /* rorl $1 %ecx */
1139 addl %ebp, %eax
1140 /* 40_59 47 */
1141 /* 40_59 48 */
1142 movl (%esp), %esi
1143 movl 8(%esp), %ebp
1144 xorl %ebp, %esi
1145 movl 32(%esp), %ebp
1146 xorl %ebp, %esi
1147 movl 52(%esp), %ebp
1148 xorl %ebp, %esi
1149 movl %ebx, %ebp
1150.byte 209
1151.byte 198 /* roll $1 %esi */
1152 orl %ecx, %ebp
1153 movl %esi, (%esp)
1154 andl %edx, %ebp
1155 leal 2400959708(%esi,%edi,1),%esi
1156 movl %ebx, %edi
1157.byte 209
1158.byte 203 /* rorl $1 %ebx */
1159 andl %ecx, %edi
1160 orl %edi, %ebp
1161 movl %eax, %edi
1162 roll $5, %edi
1163 addl %edi, %ebp
1164 movl 4(%esp), %edi
1165 addl %ebp, %esi
1166 movl 12(%esp), %ebp
1167 xorl %ebp, %edi
1168 movl 36(%esp), %ebp
1169 xorl %ebp, %edi
1170 movl 56(%esp), %ebp
1171.byte 209
1172.byte 203 /* rorl $1 %ebx */
1173 xorl %ebp, %edi
1174.byte 209
1175.byte 199 /* roll $1 %edi */
1176 movl %eax, %ebp
1177 movl %edi, 4(%esp)
1178 orl %ebx, %ebp
1179 leal 2400959708(%edi,%edx,1),%edi
1180 movl %eax, %edx
1181 andl %ecx, %ebp
1182 andl %ebx, %edx
1183 orl %edx, %ebp
1184 movl %esi, %edx
1185 roll $5, %edx
1186.byte 209
1187.byte 200 /* rorl $1 %eax */
1188 addl %edx, %ebp
1189.byte 209
1190.byte 200 /* rorl $1 %eax */
1191 addl %ebp, %edi
1192 /* 40_59 49 */
1193 /* 40_59 50 */
1194 movl 8(%esp), %edx
1195 movl 16(%esp), %ebp
1196 xorl %ebp, %edx
1197 movl 40(%esp), %ebp
1198 xorl %ebp, %edx
1199 movl 60(%esp), %ebp
1200 xorl %ebp, %edx
1201 movl %esi, %ebp
1202.byte 209
1203.byte 194 /* roll $1 %edx */
1204 orl %eax, %ebp
1205 movl %edx, 8(%esp)
1206 andl %ebx, %ebp
1207 leal 2400959708(%edx,%ecx,1),%edx
1208 movl %esi, %ecx
1209.byte 209
1210.byte 206 /* rorl $1 %esi */
1211 andl %eax, %ecx
1212 orl %ecx, %ebp
1213 movl %edi, %ecx
1214 roll $5, %ecx
1215 addl %ecx, %ebp
1216 movl 12(%esp), %ecx
1217 addl %ebp, %edx
1218 movl 20(%esp), %ebp
1219 xorl %ebp, %ecx
1220 movl 44(%esp), %ebp
1221 xorl %ebp, %ecx
1222 movl (%esp), %ebp
1223.byte 209
1224.byte 206 /* rorl $1 %esi */
1225 xorl %ebp, %ecx
1226.byte 209
1227.byte 193 /* roll $1 %ecx */
1228 movl %edi, %ebp
1229 movl %ecx, 12(%esp)
1230 orl %esi, %ebp
1231 leal 2400959708(%ecx,%ebx,1),%ecx
1232 movl %edi, %ebx
1233 andl %eax, %ebp
1234 andl %esi, %ebx
1235 orl %ebx, %ebp
1236 movl %edx, %ebx
1237 roll $5, %ebx
1238.byte 209
1239.byte 207 /* rorl $1 %edi */
1240 addl %ebx, %ebp
1241.byte 209
1242.byte 207 /* rorl $1 %edi */
1243 addl %ebp, %ecx
1244 /* 40_59 51 */
1245 /* 40_59 52 */
1246 movl 16(%esp), %ebx
1247 movl 24(%esp), %ebp
1248 xorl %ebp, %ebx
1249 movl 48(%esp), %ebp
1250 xorl %ebp, %ebx
1251 movl 4(%esp), %ebp
1252 xorl %ebp, %ebx
1253 movl %edx, %ebp
1254.byte 209
1255.byte 195 /* roll $1 %ebx */
1256 orl %edi, %ebp
1257 movl %ebx, 16(%esp)
1258 andl %esi, %ebp
1259 leal 2400959708(%ebx,%eax,1),%ebx
1260 movl %edx, %eax
1261.byte 209
1262.byte 202 /* rorl $1 %edx */
1263 andl %edi, %eax
1264 orl %eax, %ebp
1265 movl %ecx, %eax
1266 roll $5, %eax
1267 addl %eax, %ebp
1268 movl 20(%esp), %eax
1269 addl %ebp, %ebx
1270 movl 28(%esp), %ebp
1271 xorl %ebp, %eax
1272 movl 52(%esp), %ebp
1273 xorl %ebp, %eax
1274 movl 8(%esp), %ebp
1275.byte 209
1276.byte 202 /* rorl $1 %edx */
1277 xorl %ebp, %eax
1278.byte 209
1279.byte 192 /* roll $1 %eax */
1280 movl %ecx, %ebp
1281 movl %eax, 20(%esp)
1282 orl %edx, %ebp
1283 leal 2400959708(%eax,%esi,1),%eax
1284 movl %ecx, %esi
1285 andl %edi, %ebp
1286 andl %edx, %esi
1287 orl %esi, %ebp
1288 movl %ebx, %esi
1289 roll $5, %esi
1290.byte 209
1291.byte 201 /* rorl $1 %ecx */
1292 addl %esi, %ebp
1293.byte 209
1294.byte 201 /* rorl $1 %ecx */
1295 addl %ebp, %eax
1296 /* 40_59 53 */
1297 /* 40_59 54 */
1298 movl 24(%esp), %esi
1299 movl 32(%esp), %ebp
1300 xorl %ebp, %esi
1301 movl 56(%esp), %ebp
1302 xorl %ebp, %esi
1303 movl 12(%esp), %ebp
1304 xorl %ebp, %esi
1305 movl %ebx, %ebp
1306.byte 209
1307.byte 198 /* roll $1 %esi */
1308 orl %ecx, %ebp
1309 movl %esi, 24(%esp)
1310 andl %edx, %ebp
1311 leal 2400959708(%esi,%edi,1),%esi
1312 movl %ebx, %edi
1313.byte 209
1314.byte 203 /* rorl $1 %ebx */
1315 andl %ecx, %edi
1316 orl %edi, %ebp
1317 movl %eax, %edi
1318 roll $5, %edi
1319 addl %edi, %ebp
1320 movl 28(%esp), %edi
1321 addl %ebp, %esi
1322 movl 36(%esp), %ebp
1323 xorl %ebp, %edi
1324 movl 60(%esp), %ebp
1325 xorl %ebp, %edi
1326 movl 16(%esp), %ebp
1327.byte 209
1328.byte 203 /* rorl $1 %ebx */
1329 xorl %ebp, %edi
1330.byte 209
1331.byte 199 /* roll $1 %edi */
1332 movl %eax, %ebp
1333 movl %edi, 28(%esp)
1334 orl %ebx, %ebp
1335 leal 2400959708(%edi,%edx,1),%edi
1336 movl %eax, %edx
1337 andl %ecx, %ebp
1338 andl %ebx, %edx
1339 orl %edx, %ebp
1340 movl %esi, %edx
1341 roll $5, %edx
1342.byte 209
1343.byte 200 /* rorl $1 %eax */
1344 addl %edx, %ebp
1345.byte 209
1346.byte 200 /* rorl $1 %eax */
1347 addl %ebp, %edi
1348 /* 40_59 55 */
1349 /* 40_59 56 */
1350 movl 32(%esp), %edx
1351 movl 40(%esp), %ebp
1352 xorl %ebp, %edx
1353 movl (%esp), %ebp
1354 xorl %ebp, %edx
1355 movl 20(%esp), %ebp
1356 xorl %ebp, %edx
1357 movl %esi, %ebp
1358.byte 209
1359.byte 194 /* roll $1 %edx */
1360 orl %eax, %ebp
1361 movl %edx, 32(%esp)
1362 andl %ebx, %ebp
1363 leal 2400959708(%edx,%ecx,1),%edx
1364 movl %esi, %ecx
1365.byte 209
1366.byte 206 /* rorl $1 %esi */
1367 andl %eax, %ecx
1368 orl %ecx, %ebp
1369 movl %edi, %ecx
1370 roll $5, %ecx
1371 addl %ecx, %ebp
1372 movl 36(%esp), %ecx
1373 addl %ebp, %edx
1374 movl 44(%esp), %ebp
1375 xorl %ebp, %ecx
1376 movl 4(%esp), %ebp
1377 xorl %ebp, %ecx
1378 movl 24(%esp), %ebp
1379.byte 209
1380.byte 206 /* rorl $1 %esi */
1381 xorl %ebp, %ecx
1382.byte 209
1383.byte 193 /* roll $1 %ecx */
1384 movl %edi, %ebp
1385 movl %ecx, 36(%esp)
1386 orl %esi, %ebp
1387 leal 2400959708(%ecx,%ebx,1),%ecx
1388 movl %edi, %ebx
1389 andl %eax, %ebp
1390 andl %esi, %ebx
1391 orl %ebx, %ebp
1392 movl %edx, %ebx
1393 roll $5, %ebx
1394.byte 209
1395.byte 207 /* rorl $1 %edi */
1396 addl %ebx, %ebp
1397.byte 209
1398.byte 207 /* rorl $1 %edi */
1399 addl %ebp, %ecx
1400 /* 40_59 57 */
1401 /* 40_59 58 */
1402 movl 40(%esp), %ebx
1403 movl 48(%esp), %ebp
1404 xorl %ebp, %ebx
1405 movl 8(%esp), %ebp
1406 xorl %ebp, %ebx
1407 movl 28(%esp), %ebp
1408 xorl %ebp, %ebx
1409 movl %edx, %ebp
1410.byte 209
1411.byte 195 /* roll $1 %ebx */
1412 orl %edi, %ebp
1413 movl %ebx, 40(%esp)
1414 andl %esi, %ebp
1415 leal 2400959708(%ebx,%eax,1),%ebx
1416 movl %edx, %eax
1417.byte 209
1418.byte 202 /* rorl $1 %edx */
1419 andl %edi, %eax
1420 orl %eax, %ebp
1421 movl %ecx, %eax
1422 roll $5, %eax
1423 addl %eax, %ebp
1424 movl 44(%esp), %eax
1425 addl %ebp, %ebx
1426 movl 52(%esp), %ebp
1427 xorl %ebp, %eax
1428 movl 12(%esp), %ebp
1429 xorl %ebp, %eax
1430 movl 32(%esp), %ebp
1431.byte 209
1432.byte 202 /* rorl $1 %edx */
1433 xorl %ebp, %eax
1434.byte 209
1435.byte 192 /* roll $1 %eax */
1436 movl %ecx, %ebp
1437 movl %eax, 44(%esp)
1438 orl %edx, %ebp
1439 leal 2400959708(%eax,%esi,1),%eax
1440 movl %ecx, %esi
1441 andl %edi, %ebp
1442 andl %edx, %esi
1443 orl %esi, %ebp
1444 movl %ebx, %esi
1445 roll $5, %esi
1446.byte 209
1447.byte 201 /* rorl $1 %ecx */
1448 addl %esi, %ebp
1449.byte 209
1450.byte 201 /* rorl $1 %ecx */
1451 addl %ebp, %eax
1452 /* 40_59 59 */
1453 /* 20_39 60 */
1454 movl 48(%esp), %esi
1455 movl 56(%esp), %ebp
1456 xorl %ebp, %esi
1457 movl 16(%esp), %ebp
1458 xorl %ebp, %esi
1459 movl 36(%esp), %ebp
1460 xorl %ebp, %esi
1461 movl %ebx, %ebp
1462.byte 209
1463.byte 198 /* roll $1 %esi */
1464 xorl %ecx, %ebp
1465 movl %esi, 48(%esp)
1466 xorl %edx, %ebp
1467 leal 3395469782(%esi,%edi,1),%esi
1468 movl %eax, %edi
1469 roll $5, %edi
1470.byte 209
1471.byte 203 /* rorl $1 %ebx */
1472 addl %ebp, %edi
1473.byte 209
1474.byte 203 /* rorl $1 %ebx */
1475 addl %edi, %esi
1476 /* 20_39 61 */
1477 movl 52(%esp), %edi
1478 movl 60(%esp), %ebp
1479 xorl %ebp, %edi
1480 movl 20(%esp), %ebp
1481 xorl %ebp, %edi
1482 movl 40(%esp), %ebp
1483 xorl %ebp, %edi
1484 movl %eax, %ebp
1485.byte 209
1486.byte 199 /* roll $1 %edi */
1487 xorl %ebx, %ebp
1488 movl %edi, 52(%esp)
1489 xorl %ecx, %ebp
1490 leal 3395469782(%edi,%edx,1),%edi
1491 movl %esi, %edx
1492 roll $5, %edx
1493.byte 209
1494.byte 200 /* rorl $1 %eax */
1495 addl %ebp, %edx
1496.byte 209
1497.byte 200 /* rorl $1 %eax */
1498 addl %edx, %edi
1499 /* 20_39 62 */
1500 movl 56(%esp), %edx
1501 movl (%esp), %ebp
1502 xorl %ebp, %edx
1503 movl 24(%esp), %ebp
1504 xorl %ebp, %edx
1505 movl 44(%esp), %ebp
1506 xorl %ebp, %edx
1507 movl %esi, %ebp
1508.byte 209
1509.byte 194 /* roll $1 %edx */
1510 xorl %eax, %ebp
1511 movl %edx, 56(%esp)
1512 xorl %ebx, %ebp
1513 leal 3395469782(%edx,%ecx,1),%edx
1514 movl %edi, %ecx
1515 roll $5, %ecx
1516.byte 209
1517.byte 206 /* rorl $1 %esi */
1518 addl %ebp, %ecx
1519.byte 209
1520.byte 206 /* rorl $1 %esi */
1521 addl %ecx, %edx
1522 /* 20_39 63 */
1523 movl 60(%esp), %ecx
1524 movl 4(%esp), %ebp
1525 xorl %ebp, %ecx
1526 movl 28(%esp), %ebp
1527 xorl %ebp, %ecx
1528 movl 48(%esp), %ebp
1529 xorl %ebp, %ecx
1530 movl %edi, %ebp
1531.byte 209
1532.byte 193 /* roll $1 %ecx */
1533 xorl %esi, %ebp
1534 movl %ecx, 60(%esp)
1535 xorl %eax, %ebp
1536 leal 3395469782(%ecx,%ebx,1),%ecx
1537 movl %edx, %ebx
1538 roll $5, %ebx
1539.byte 209
1540.byte 207 /* rorl $1 %edi */
1541 addl %ebp, %ebx
1542.byte 209
1543.byte 207 /* rorl $1 %edi */
1544 addl %ebx, %ecx
1545 /* 20_39 64 */
1546 movl (%esp), %ebx
1547 movl 8(%esp), %ebp
1548 xorl %ebp, %ebx
1549 movl 32(%esp), %ebp
1550 xorl %ebp, %ebx
1551 movl 52(%esp), %ebp
1552 xorl %ebp, %ebx
1553 movl %edx, %ebp
1554.byte 209
1555.byte 195 /* roll $1 %ebx */
1556 xorl %edi, %ebp
1557 movl %ebx, (%esp)
1558 xorl %esi, %ebp
1559 leal 3395469782(%ebx,%eax,1),%ebx
1560 movl %ecx, %eax
1561 roll $5, %eax
1562.byte 209
1563.byte 202 /* rorl $1 %edx */
1564 addl %ebp, %eax
1565.byte 209
1566.byte 202 /* rorl $1 %edx */
1567 addl %eax, %ebx
1568 /* 20_39 65 */
1569 movl 4(%esp), %eax
1570 movl 12(%esp), %ebp
1571 xorl %ebp, %eax
1572 movl 36(%esp), %ebp
1573 xorl %ebp, %eax
1574 movl 56(%esp), %ebp
1575 xorl %ebp, %eax
1576 movl %ecx, %ebp
1577.byte 209
1578.byte 192 /* roll $1 %eax */
1579 xorl %edx, %ebp
1580 movl %eax, 4(%esp)
1581 xorl %edi, %ebp
1582 leal 3395469782(%eax,%esi,1),%eax
1583 movl %ebx, %esi
1584 roll $5, %esi
1585.byte 209
1586.byte 201 /* rorl $1 %ecx */
1587 addl %ebp, %esi
1588.byte 209
1589.byte 201 /* rorl $1 %ecx */
1590 addl %esi, %eax
1591 /* 20_39 66 */
1592 movl 8(%esp), %esi
1593 movl 16(%esp), %ebp
1594 xorl %ebp, %esi
1595 movl 40(%esp), %ebp
1596 xorl %ebp, %esi
1597 movl 60(%esp), %ebp
1598 xorl %ebp, %esi
1599 movl %ebx, %ebp
1600.byte 209
1601.byte 198 /* roll $1 %esi */
1602 xorl %ecx, %ebp
1603 movl %esi, 8(%esp)
1604 xorl %edx, %ebp
1605 leal 3395469782(%esi,%edi,1),%esi
1606 movl %eax, %edi
1607 roll $5, %edi
1608.byte 209
1609.byte 203 /* rorl $1 %ebx */
1610 addl %ebp, %edi
1611.byte 209
1612.byte 203 /* rorl $1 %ebx */
1613 addl %edi, %esi
1614 /* 20_39 67 */
1615 movl 12(%esp), %edi
1616 movl 20(%esp), %ebp
1617 xorl %ebp, %edi
1618 movl 44(%esp), %ebp
1619 xorl %ebp, %edi
1620 movl (%esp), %ebp
1621 xorl %ebp, %edi
1622 movl %eax, %ebp
1623.byte 209
1624.byte 199 /* roll $1 %edi */
1625 xorl %ebx, %ebp
1626 movl %edi, 12(%esp)
1627 xorl %ecx, %ebp
1628 leal 3395469782(%edi,%edx,1),%edi
1629 movl %esi, %edx
1630 roll $5, %edx
1631.byte 209
1632.byte 200 /* rorl $1 %eax */
1633 addl %ebp, %edx
1634.byte 209
1635.byte 200 /* rorl $1 %eax */
1636 addl %edx, %edi
1637 /* 20_39 68 */
1638 movl 16(%esp), %edx
1639 movl 24(%esp), %ebp
1640 xorl %ebp, %edx
1641 movl 48(%esp), %ebp
1642 xorl %ebp, %edx
1643 movl 4(%esp), %ebp
1644 xorl %ebp, %edx
1645 movl %esi, %ebp
1646.byte 209
1647.byte 194 /* roll $1 %edx */
1648 xorl %eax, %ebp
1649 movl %edx, 16(%esp)
1650 xorl %ebx, %ebp
1651 leal 3395469782(%edx,%ecx,1),%edx
1652 movl %edi, %ecx
1653 roll $5, %ecx
1654.byte 209
1655.byte 206 /* rorl $1 %esi */
1656 addl %ebp, %ecx
1657.byte 209
1658.byte 206 /* rorl $1 %esi */
1659 addl %ecx, %edx
1660 /* 20_39 69 */
1661 movl 20(%esp), %ecx
1662 movl 28(%esp), %ebp
1663 xorl %ebp, %ecx
1664 movl 52(%esp), %ebp
1665 xorl %ebp, %ecx
1666 movl 8(%esp), %ebp
1667 xorl %ebp, %ecx
1668 movl %edi, %ebp
1669.byte 209
1670.byte 193 /* roll $1 %ecx */
1671 xorl %esi, %ebp
1672 movl %ecx, 20(%esp)
1673 xorl %eax, %ebp
1674 leal 3395469782(%ecx,%ebx,1),%ecx
1675 movl %edx, %ebx
1676 roll $5, %ebx
1677.byte 209
1678.byte 207 /* rorl $1 %edi */
1679 addl %ebp, %ebx
1680.byte 209
1681.byte 207 /* rorl $1 %edi */
1682 addl %ebx, %ecx
1683 /* 20_39 70 */
1684 movl 24(%esp), %ebx
1685 movl 32(%esp), %ebp
1686 xorl %ebp, %ebx
1687 movl 56(%esp), %ebp
1688 xorl %ebp, %ebx
1689 movl 12(%esp), %ebp
1690 xorl %ebp, %ebx
1691 movl %edx, %ebp
1692.byte 209
1693.byte 195 /* roll $1 %ebx */
1694 xorl %edi, %ebp
1695 movl %ebx, 24(%esp)
1696 xorl %esi, %ebp
1697 leal 3395469782(%ebx,%eax,1),%ebx
1698 movl %ecx, %eax
1699 roll $5, %eax
1700.byte 209
1701.byte 202 /* rorl $1 %edx */
1702 addl %ebp, %eax
1703.byte 209
1704.byte 202 /* rorl $1 %edx */
1705 addl %eax, %ebx
1706 /* 20_39 71 */
1707 movl 28(%esp), %eax
1708 movl 36(%esp), %ebp
1709 xorl %ebp, %eax
1710 movl 60(%esp), %ebp
1711 xorl %ebp, %eax
1712 movl 16(%esp), %ebp
1713 xorl %ebp, %eax
1714 movl %ecx, %ebp
1715.byte 209
1716.byte 192 /* roll $1 %eax */
1717 xorl %edx, %ebp
1718 movl %eax, 28(%esp)
1719 xorl %edi, %ebp
1720 leal 3395469782(%eax,%esi,1),%eax
1721 movl %ebx, %esi
1722 roll $5, %esi
1723.byte 209
1724.byte 201 /* rorl $1 %ecx */
1725 addl %ebp, %esi
1726.byte 209
1727.byte 201 /* rorl $1 %ecx */
1728 addl %esi, %eax
1729 /* 20_39 72 */
1730 movl 32(%esp), %esi
1731 movl 40(%esp), %ebp
1732 xorl %ebp, %esi
1733 movl (%esp), %ebp
1734 xorl %ebp, %esi
1735 movl 20(%esp), %ebp
1736 xorl %ebp, %esi
1737 movl %ebx, %ebp
1738.byte 209
1739.byte 198 /* roll $1 %esi */
1740 xorl %ecx, %ebp
1741 movl %esi, 32(%esp)
1742 xorl %edx, %ebp
1743 leal 3395469782(%esi,%edi,1),%esi
1744 movl %eax, %edi
1745 roll $5, %edi
1746.byte 209
1747.byte 203 /* rorl $1 %ebx */
1748 addl %ebp, %edi
1749.byte 209
1750.byte 203 /* rorl $1 %ebx */
1751 addl %edi, %esi
1752 /* 20_39 73 */
1753 movl 36(%esp), %edi
1754 movl 44(%esp), %ebp
1755 xorl %ebp, %edi
1756 movl 4(%esp), %ebp
1757 xorl %ebp, %edi
1758 movl 24(%esp), %ebp
1759 xorl %ebp, %edi
1760 movl %eax, %ebp
1761.byte 209
1762.byte 199 /* roll $1 %edi */
1763 xorl %ebx, %ebp
1764 movl %edi, 36(%esp)
1765 xorl %ecx, %ebp
1766 leal 3395469782(%edi,%edx,1),%edi
1767 movl %esi, %edx
1768 roll $5, %edx
1769.byte 209
1770.byte 200 /* rorl $1 %eax */
1771 addl %ebp, %edx
1772.byte 209
1773.byte 200 /* rorl $1 %eax */
1774 addl %edx, %edi
1775 /* 20_39 74 */
1776 movl 40(%esp), %edx
1777 movl 48(%esp), %ebp
1778 xorl %ebp, %edx
1779 movl 8(%esp), %ebp
1780 xorl %ebp, %edx
1781 movl 28(%esp), %ebp
1782 xorl %ebp, %edx
1783 movl %esi, %ebp
1784.byte 209
1785.byte 194 /* roll $1 %edx */
1786 xorl %eax, %ebp
1787 movl %edx, 40(%esp)
1788 xorl %ebx, %ebp
1789 leal 3395469782(%edx,%ecx,1),%edx
1790 movl %edi, %ecx
1791 roll $5, %ecx
1792.byte 209
1793.byte 206 /* rorl $1 %esi */
1794 addl %ebp, %ecx
1795.byte 209
1796.byte 206 /* rorl $1 %esi */
1797 addl %ecx, %edx
1798 /* 20_39 75 */
1799 movl 44(%esp), %ecx
1800 movl 52(%esp), %ebp
1801 xorl %ebp, %ecx
1802 movl 12(%esp), %ebp
1803 xorl %ebp, %ecx
1804 movl 32(%esp), %ebp
1805 xorl %ebp, %ecx
1806 movl %edi, %ebp
1807.byte 209
1808.byte 193 /* roll $1 %ecx */
1809 xorl %esi, %ebp
1810 movl %ecx, 44(%esp)
1811 xorl %eax, %ebp
1812 leal 3395469782(%ecx,%ebx,1),%ecx
1813 movl %edx, %ebx
1814 roll $5, %ebx
1815.byte 209
1816.byte 207 /* rorl $1 %edi */
1817 addl %ebp, %ebx
1818.byte 209
1819.byte 207 /* rorl $1 %edi */
1820 addl %ebx, %ecx
1821 /* 20_39 76 */
1822 movl 48(%esp), %ebx
1823 movl 56(%esp), %ebp
1824 xorl %ebp, %ebx
1825 movl 16(%esp), %ebp
1826 xorl %ebp, %ebx
1827 movl 36(%esp), %ebp
1828 xorl %ebp, %ebx
1829 movl %edx, %ebp
1830.byte 209
1831.byte 195 /* roll $1 %ebx */
1832 xorl %edi, %ebp
1833 movl %ebx, 48(%esp)
1834 xorl %esi, %ebp
1835 leal 3395469782(%ebx,%eax,1),%ebx
1836 movl %ecx, %eax
1837 roll $5, %eax
1838.byte 209
1839.byte 202 /* rorl $1 %edx */
1840 addl %ebp, %eax
1841.byte 209
1842.byte 202 /* rorl $1 %edx */
1843 addl %eax, %ebx
1844 /* 20_39 77 */
1845 movl 52(%esp), %eax
1846 movl 60(%esp), %ebp
1847 xorl %ebp, %eax
1848 movl 20(%esp), %ebp
1849 xorl %ebp, %eax
1850 movl 40(%esp), %ebp
1851 xorl %ebp, %eax
1852 movl %ecx, %ebp
1853.byte 209
1854.byte 192 /* roll $1 %eax */
1855 xorl %edx, %ebp
1856 movl %eax, 52(%esp)
1857 xorl %edi, %ebp
1858 leal 3395469782(%eax,%esi,1),%eax
1859 movl %ebx, %esi
1860 roll $5, %esi
1861.byte 209
1862.byte 201 /* rorl $1 %ecx */
1863 addl %ebp, %esi
1864.byte 209
1865.byte 201 /* rorl $1 %ecx */
1866 addl %esi, %eax
1867 /* 20_39 78 */
1868 movl 56(%esp), %esi
1869 movl (%esp), %ebp
1870 xorl %ebp, %esi
1871 movl 24(%esp), %ebp
1872 xorl %ebp, %esi
1873 movl 44(%esp), %ebp
1874 xorl %ebp, %esi
1875 movl %ebx, %ebp
1876.byte 209
1877.byte 198 /* roll $1 %esi */
1878 xorl %ecx, %ebp
1879 movl %esi, 56(%esp)
1880 xorl %edx, %ebp
1881 leal 3395469782(%esi,%edi,1),%esi
1882 movl %eax, %edi
1883 roll $5, %edi
1884.byte 209
1885.byte 203 /* rorl $1 %ebx */
1886 addl %ebp, %edi
1887.byte 209
1888.byte 203 /* rorl $1 %ebx */
1889 addl %edi, %esi
1890 /* 20_39 79 */
1891 movl 60(%esp), %edi
1892 movl 4(%esp), %ebp
1893 xorl %ebp, %edi
1894 movl 28(%esp), %ebp
1895 xorl %ebp, %edi
1896 movl 48(%esp), %ebp
1897 xorl %ebp, %edi
1898 movl %eax, %ebp
1899.byte 209
1900.byte 199 /* roll $1 %edi */
1901 xorl %ebx, %ebp
1902 movl %edi, 60(%esp)
1903 xorl %ecx, %ebp
1904 leal 3395469782(%edi,%edx,1),%edi
1905 movl %esi, %edx
1906 roll $5, %edx
1907 addl %ebp, %edx
1908 movl 92(%esp), %ebp
1909.byte 209
1910.byte 200 /* rorl $1 %eax */
1911 addl %edx, %edi
1912.byte 209
1913.byte 200 /* rorl $1 %eax */
1914 /* End processing */
1915
1916 movl 12(%ebp), %edx
1917 addl %ebx, %edx
1918 movl 4(%ebp), %ebx
1919 addl %esi, %ebx
1920 movl %eax, %esi
1921 movl (%ebp), %eax
1922 movl %edx, 12(%ebp)
1923 addl %edi, %eax
1924 movl 16(%ebp), %edi
1925 addl %ecx, %edi
1926 movl 8(%ebp), %ecx
1927 addl %esi, %ecx
1928 movl %eax, (%ebp)
1929 movl 64(%esp), %esi
1930 movl %ecx, 8(%ebp)
1931 addl $64, %esi
1932 movl 68(%esp), %eax
1933 movl %edi, 16(%ebp)
1934 cmpl %esi, %eax
1935 movl %ebx, 4(%ebp)
1936 jl .L001end
1937 movl (%esi), %eax
1938 jmp .L000start
1939.L001end:
1940 addl $72, %esp
1941 popl %edi
1942 popl %ebx
1943 popl %ebp
1944 popl %esi
1945 ret
1946.sha1_block_x86_end:
1947 SIZE(sha1_block_x86,.sha1_block_x86_end-sha1_block_x86)
1948.ident "desasm.pl"
diff --git a/src/lib/libcrypto/sha/sha_sgst.c b/src/lib/libcrypto/sha/sha_sgst.c
new file mode 100644
index 0000000000..8a16801328
--- /dev/null
+++ b/src/lib/libcrypto/sha/sha_sgst.c
@@ -0,0 +1,246 @@
1/* crypto/sha/sha_sgst.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdlib.h>
60#include <string.h>
61
62#ifdef undef
63/* one or the other needs to be defined */
64#ifndef SHA_1 /* FIPE 180-1 */
65#define SHA_0 /* FIPS 180 */
66#endif
67#endif
68
69#define ULONG unsigned long
70#define UCHAR unsigned char
71#define UINT unsigned int
72
73#ifdef NOCONST
74#define const
75#endif
76
77#undef c2nl
78#define c2nl(c,l) (l =(((unsigned long)(*((c)++)))<<24), \
79 l|=(((unsigned long)(*((c)++)))<<16), \
80 l|=(((unsigned long)(*((c)++)))<< 8), \
81 l|=(((unsigned long)(*((c)++))) ))
82
83#undef p_c2nl
84#define p_c2nl(c,l,n) { \
85 switch (n) { \
86 case 0: l =((unsigned long)(*((c)++)))<<24; \
87 case 1: l|=((unsigned long)(*((c)++)))<<16; \
88 case 2: l|=((unsigned long)(*((c)++)))<< 8; \
89 case 3: l|=((unsigned long)(*((c)++))); \
90 } \
91 }
92
93#undef c2nl_p
94/* NOTE the pointer is not incremented at the end of this */
95#define c2nl_p(c,l,n) { \
96 l=0; \
97 (c)+=n; \
98 switch (n) { \
99 case 3: l =((unsigned long)(*(--(c))))<< 8; \
100 case 2: l|=((unsigned long)(*(--(c))))<<16; \
101 case 1: l|=((unsigned long)(*(--(c))))<<24; \
102 } \
103 }
104
105#undef p_c2nl_p
106#define p_c2nl_p(c,l,sc,len) { \
107 switch (sc) \
108 { \
109 case 0: l =((unsigned long)(*((c)++)))<<24; \
110 if (--len == 0) break; \
111 case 1: l|=((unsigned long)(*((c)++)))<<16; \
112 if (--len == 0) break; \
113 case 2: l|=((unsigned long)(*((c)++)))<< 8; \
114 } \
115 }
116
117#undef nl2c
118#define nl2c(l,c) (*((c)++)=(unsigned char)(((l)>>24)&0xff), \
119 *((c)++)=(unsigned char)(((l)>>16)&0xff), \
120 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
121 *((c)++)=(unsigned char)(((l) )&0xff))
122
123#undef c2l
124#define c2l(c,l) (l =(((unsigned long)(*((c)++))) ), \
125 l|=(((unsigned long)(*((c)++)))<< 8), \
126 l|=(((unsigned long)(*((c)++)))<<16), \
127 l|=(((unsigned long)(*((c)++)))<<24))
128
129#undef p_c2l
130#define p_c2l(c,l,n) { \
131 switch (n) { \
132 case 0: l =((unsigned long)(*((c)++))); \
133 case 1: l|=((unsigned long)(*((c)++)))<< 8; \
134 case 2: l|=((unsigned long)(*((c)++)))<<16; \
135 case 3: l|=((unsigned long)(*((c)++)))<<24; \
136 } \
137 }
138
139#undef c2l_p
140/* NOTE the pointer is not incremented at the end of this */
141#define c2l_p(c,l,n) { \
142 l=0; \
143 (c)+=n; \
144 switch (n) { \
145 case 3: l =((unsigned long)(*(--(c))))<<16; \
146 case 2: l|=((unsigned long)(*(--(c))))<< 8; \
147 case 1: l|=((unsigned long)(*(--(c)))); \
148 } \
149 }
150
151#undef p_c2l_p
152#define p_c2l_p(c,l,sc,len) { \
153 switch (sc) \
154 { \
155 case 0: l =((unsigned long)(*((c)++))); \
156 if (--len == 0) break; \
157 case 1: l|=((unsigned long)(*((c)++)))<< 8; \
158 if (--len == 0) break; \
159 case 2: l|=((unsigned long)(*((c)++)))<<16; \
160 } \
161 }
162
163#undef l2c
164#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
165 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
166 *((c)++)=(unsigned char)(((l)>>16)&0xff), \
167 *((c)++)=(unsigned char)(((l)>>24)&0xff))
168
169#undef ROTATE
170#if defined(WIN32)
171#define ROTATE(a,n) _lrotl(a,n)
172#else
173#define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
174#endif
175
176/* A nice byte order reversal from Wei Dai <weidai@eskimo.com> */
177#if defined(WIN32)
178/* 5 instructions with rotate instruction, else 9 */
179#define Endian_Reverse32(a) \
180 { \
181 unsigned long l=(a); \
182 (a)=((ROTATE(l,8)&0x00FF00FF)|(ROTATE(l,24)&0xFF00FF00)); \
183 }
184#else
185/* 6 instructions with rotate instruction, else 8 */
186#define Endian_Reverse32(a) \
187 { \
188 unsigned long l=(a); \
189 l=(((l&0xFF00FF00)>>8L)|((l&0x00FF00FF)<<8L)); \
190 (a)=ROTATE(l,16L); \
191 }
192#endif
193
194/* As pointed out by Wei Dai <weidai@eskimo.com>, F() below can be
195 * simplified to the code in F_00_19. Wei attributes these optimisations
196 * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel.
197 * #define F(x,y,z) (((x) & (y)) | ((~(x)) & (z)))
198 * I've just become aware of another tweak to be made, again from Wei Dai,
199 * in F_40_59, (x&a)|(y&a) -> (x|y)&a
200 */
201#define F_00_19(b,c,d) ((((c) ^ (d)) & (b)) ^ (d))
202#define F_20_39(b,c,d) ((b) ^ (c) ^ (d))
203#define F_40_59(b,c,d) (((b) & (c)) | (((b)|(c)) & (d)))
204#define F_60_79(b,c,d) F_20_39(b,c,d)
205
206#ifdef SHA_0
207#undef Xupdate
208#define Xupdate(a,i,ia,ib,ic,id) X[(i)&0x0f]=(a)=\
209 (ia[(i)&0x0f]^ib[((i)+2)&0x0f]^ic[((i)+8)&0x0f]^id[((i)+13)&0x0f]);
210#endif
211#ifdef SHA_1
212#undef Xupdate
213#define Xupdate(a,i,ia,ib,ic,id) (a)=\
214 (ia[(i)&0x0f]^ib[((i)+2)&0x0f]^ic[((i)+8)&0x0f]^id[((i)+13)&0x0f]);\
215 X[(i)&0x0f]=(a)=ROTATE((a),1);
216#endif
217
218#define BODY_00_15(i,a,b,c,d,e,f,xa) \
219 (f)=xa[i]+(e)+K_00_19+ROTATE((a),5)+F_00_19((b),(c),(d)); \
220 (b)=ROTATE((b),30);
221
222#define BODY_16_19(i,a,b,c,d,e,f,xa,xb,xc,xd) \
223 Xupdate(f,i,xa,xb,xc,xd); \
224 (f)+=(e)+K_00_19+ROTATE((a),5)+F_00_19((b),(c),(d)); \
225 (b)=ROTATE((b),30);
226
227#define BODY_20_31(i,a,b,c,d,e,f,xa,xb,xc,xd) \
228 Xupdate(f,i,xa,xb,xc,xd); \
229 (f)+=(e)+K_20_39+ROTATE((a),5)+F_20_39((b),(c),(d)); \
230 (b)=ROTATE((b),30);
231
232#define BODY_32_39(i,a,b,c,d,e,f,xa) \
233 Xupdate(f,i,xa,xa,xa,xa); \
234 (f)+=(e)+K_20_39+ROTATE((a),5)+F_20_39((b),(c),(d)); \
235 (b)=ROTATE((b),30);
236
237#define BODY_40_59(i,a,b,c,d,e,f,xa) \
238 Xupdate(f,i,xa,xa,xa,xa); \
239 (f)+=(e)+K_40_59+ROTATE((a),5)+F_40_59((b),(c),(d)); \
240 (b)=ROTATE((b),30);
241
242#define BODY_60_79(i,a,b,c,d,e,f,xa) \
243 Xupdate(f,i,xa,xa,xa,xa); \
244 (f)=X[(i)&0x0f]+(e)+K_60_79+ROTATE((a),5)+F_60_79((b),(c),(d)); \
245 (b)=ROTATE((b),30);
246