Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(678)

Side by Side Diff: openssl/crypto/bf/asm/bf-586-mac.S

Issue 2072073002: Delete bundled copy of OpenSSL and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/openssl@master
Patch Set: Delete bundled copy of OpenSSL and replace with README. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « openssl/crypto/bf/asm/bf-586.pl ('k') | openssl/crypto/bf/asm/bf-686.pl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 .file "bf-586.s"
2 .text
3 .globl _BF_encrypt
4 .align 4
5 _BF_encrypt:
6 L_BF_encrypt_begin:
7
8 pushl %ebp
9 pushl %ebx
10 movl 12(%esp),%ebx
11 movl 16(%esp),%ebp
12 pushl %esi
13 pushl %edi
14 # Load the 2 words
15 movl (%ebx),%edi
16 movl 4(%ebx),%esi
17 xorl %eax,%eax
18 movl (%ebp),%ebx
19 xorl %ecx,%ecx
20 xorl %ebx,%edi
21
22 # Round 0
23 movl 4(%ebp),%edx
24 movl %edi,%ebx
25 xorl %edx,%esi
26 shrl $16,%ebx
27 movl %edi,%edx
28 movb %bh,%al
29 andl $255,%ebx
30 movb %dh,%cl
31 andl $255,%edx
32 movl 72(%ebp,%eax,4),%eax
33 movl 1096(%ebp,%ebx,4),%ebx
34 addl %eax,%ebx
35 movl 2120(%ebp,%ecx,4),%eax
36 xorl %eax,%ebx
37 movl 3144(%ebp,%edx,4),%edx
38 addl %edx,%ebx
39 xorl %eax,%eax
40 xorl %ebx,%esi
41
42 # Round 1
43 movl 8(%ebp),%edx
44 movl %esi,%ebx
45 xorl %edx,%edi
46 shrl $16,%ebx
47 movl %esi,%edx
48 movb %bh,%al
49 andl $255,%ebx
50 movb %dh,%cl
51 andl $255,%edx
52 movl 72(%ebp,%eax,4),%eax
53 movl 1096(%ebp,%ebx,4),%ebx
54 addl %eax,%ebx
55 movl 2120(%ebp,%ecx,4),%eax
56 xorl %eax,%ebx
57 movl 3144(%ebp,%edx,4),%edx
58 addl %edx,%ebx
59 xorl %eax,%eax
60 xorl %ebx,%edi
61
62 # Round 2
63 movl 12(%ebp),%edx
64 movl %edi,%ebx
65 xorl %edx,%esi
66 shrl $16,%ebx
67 movl %edi,%edx
68 movb %bh,%al
69 andl $255,%ebx
70 movb %dh,%cl
71 andl $255,%edx
72 movl 72(%ebp,%eax,4),%eax
73 movl 1096(%ebp,%ebx,4),%ebx
74 addl %eax,%ebx
75 movl 2120(%ebp,%ecx,4),%eax
76 xorl %eax,%ebx
77 movl 3144(%ebp,%edx,4),%edx
78 addl %edx,%ebx
79 xorl %eax,%eax
80 xorl %ebx,%esi
81
82 # Round 3
83 movl 16(%ebp),%edx
84 movl %esi,%ebx
85 xorl %edx,%edi
86 shrl $16,%ebx
87 movl %esi,%edx
88 movb %bh,%al
89 andl $255,%ebx
90 movb %dh,%cl
91 andl $255,%edx
92 movl 72(%ebp,%eax,4),%eax
93 movl 1096(%ebp,%ebx,4),%ebx
94 addl %eax,%ebx
95 movl 2120(%ebp,%ecx,4),%eax
96 xorl %eax,%ebx
97 movl 3144(%ebp,%edx,4),%edx
98 addl %edx,%ebx
99 xorl %eax,%eax
100 xorl %ebx,%edi
101
102 # Round 4
103 movl 20(%ebp),%edx
104 movl %edi,%ebx
105 xorl %edx,%esi
106 shrl $16,%ebx
107 movl %edi,%edx
108 movb %bh,%al
109 andl $255,%ebx
110 movb %dh,%cl
111 andl $255,%edx
112 movl 72(%ebp,%eax,4),%eax
113 movl 1096(%ebp,%ebx,4),%ebx
114 addl %eax,%ebx
115 movl 2120(%ebp,%ecx,4),%eax
116 xorl %eax,%ebx
117 movl 3144(%ebp,%edx,4),%edx
118 addl %edx,%ebx
119 xorl %eax,%eax
120 xorl %ebx,%esi
121
122 # Round 5
123 movl 24(%ebp),%edx
124 movl %esi,%ebx
125 xorl %edx,%edi
126 shrl $16,%ebx
127 movl %esi,%edx
128 movb %bh,%al
129 andl $255,%ebx
130 movb %dh,%cl
131 andl $255,%edx
132 movl 72(%ebp,%eax,4),%eax
133 movl 1096(%ebp,%ebx,4),%ebx
134 addl %eax,%ebx
135 movl 2120(%ebp,%ecx,4),%eax
136 xorl %eax,%ebx
137 movl 3144(%ebp,%edx,4),%edx
138 addl %edx,%ebx
139 xorl %eax,%eax
140 xorl %ebx,%edi
141
142 # Round 6
143 movl 28(%ebp),%edx
144 movl %edi,%ebx
145 xorl %edx,%esi
146 shrl $16,%ebx
147 movl %edi,%edx
148 movb %bh,%al
149 andl $255,%ebx
150 movb %dh,%cl
151 andl $255,%edx
152 movl 72(%ebp,%eax,4),%eax
153 movl 1096(%ebp,%ebx,4),%ebx
154 addl %eax,%ebx
155 movl 2120(%ebp,%ecx,4),%eax
156 xorl %eax,%ebx
157 movl 3144(%ebp,%edx,4),%edx
158 addl %edx,%ebx
159 xorl %eax,%eax
160 xorl %ebx,%esi
161
162 # Round 7
163 movl 32(%ebp),%edx
164 movl %esi,%ebx
165 xorl %edx,%edi
166 shrl $16,%ebx
167 movl %esi,%edx
168 movb %bh,%al
169 andl $255,%ebx
170 movb %dh,%cl
171 andl $255,%edx
172 movl 72(%ebp,%eax,4),%eax
173 movl 1096(%ebp,%ebx,4),%ebx
174 addl %eax,%ebx
175 movl 2120(%ebp,%ecx,4),%eax
176 xorl %eax,%ebx
177 movl 3144(%ebp,%edx,4),%edx
178 addl %edx,%ebx
179 xorl %eax,%eax
180 xorl %ebx,%edi
181
182 # Round 8
183 movl 36(%ebp),%edx
184 movl %edi,%ebx
185 xorl %edx,%esi
186 shrl $16,%ebx
187 movl %edi,%edx
188 movb %bh,%al
189 andl $255,%ebx
190 movb %dh,%cl
191 andl $255,%edx
192 movl 72(%ebp,%eax,4),%eax
193 movl 1096(%ebp,%ebx,4),%ebx
194 addl %eax,%ebx
195 movl 2120(%ebp,%ecx,4),%eax
196 xorl %eax,%ebx
197 movl 3144(%ebp,%edx,4),%edx
198 addl %edx,%ebx
199 xorl %eax,%eax
200 xorl %ebx,%esi
201
202 # Round 9
203 movl 40(%ebp),%edx
204 movl %esi,%ebx
205 xorl %edx,%edi
206 shrl $16,%ebx
207 movl %esi,%edx
208 movb %bh,%al
209 andl $255,%ebx
210 movb %dh,%cl
211 andl $255,%edx
212 movl 72(%ebp,%eax,4),%eax
213 movl 1096(%ebp,%ebx,4),%ebx
214 addl %eax,%ebx
215 movl 2120(%ebp,%ecx,4),%eax
216 xorl %eax,%ebx
217 movl 3144(%ebp,%edx,4),%edx
218 addl %edx,%ebx
219 xorl %eax,%eax
220 xorl %ebx,%edi
221
222 # Round 10
223 movl 44(%ebp),%edx
224 movl %edi,%ebx
225 xorl %edx,%esi
226 shrl $16,%ebx
227 movl %edi,%edx
228 movb %bh,%al
229 andl $255,%ebx
230 movb %dh,%cl
231 andl $255,%edx
232 movl 72(%ebp,%eax,4),%eax
233 movl 1096(%ebp,%ebx,4),%ebx
234 addl %eax,%ebx
235 movl 2120(%ebp,%ecx,4),%eax
236 xorl %eax,%ebx
237 movl 3144(%ebp,%edx,4),%edx
238 addl %edx,%ebx
239 xorl %eax,%eax
240 xorl %ebx,%esi
241
242 # Round 11
243 movl 48(%ebp),%edx
244 movl %esi,%ebx
245 xorl %edx,%edi
246 shrl $16,%ebx
247 movl %esi,%edx
248 movb %bh,%al
249 andl $255,%ebx
250 movb %dh,%cl
251 andl $255,%edx
252 movl 72(%ebp,%eax,4),%eax
253 movl 1096(%ebp,%ebx,4),%ebx
254 addl %eax,%ebx
255 movl 2120(%ebp,%ecx,4),%eax
256 xorl %eax,%ebx
257 movl 3144(%ebp,%edx,4),%edx
258 addl %edx,%ebx
259 xorl %eax,%eax
260 xorl %ebx,%edi
261
262 # Round 12
263 movl 52(%ebp),%edx
264 movl %edi,%ebx
265 xorl %edx,%esi
266 shrl $16,%ebx
267 movl %edi,%edx
268 movb %bh,%al
269 andl $255,%ebx
270 movb %dh,%cl
271 andl $255,%edx
272 movl 72(%ebp,%eax,4),%eax
273 movl 1096(%ebp,%ebx,4),%ebx
274 addl %eax,%ebx
275 movl 2120(%ebp,%ecx,4),%eax
276 xorl %eax,%ebx
277 movl 3144(%ebp,%edx,4),%edx
278 addl %edx,%ebx
279 xorl %eax,%eax
280 xorl %ebx,%esi
281
282 # Round 13
283 movl 56(%ebp),%edx
284 movl %esi,%ebx
285 xorl %edx,%edi
286 shrl $16,%ebx
287 movl %esi,%edx
288 movb %bh,%al
289 andl $255,%ebx
290 movb %dh,%cl
291 andl $255,%edx
292 movl 72(%ebp,%eax,4),%eax
293 movl 1096(%ebp,%ebx,4),%ebx
294 addl %eax,%ebx
295 movl 2120(%ebp,%ecx,4),%eax
296 xorl %eax,%ebx
297 movl 3144(%ebp,%edx,4),%edx
298 addl %edx,%ebx
299 xorl %eax,%eax
300 xorl %ebx,%edi
301
302 # Round 14
303 movl 60(%ebp),%edx
304 movl %edi,%ebx
305 xorl %edx,%esi
306 shrl $16,%ebx
307 movl %edi,%edx
308 movb %bh,%al
309 andl $255,%ebx
310 movb %dh,%cl
311 andl $255,%edx
312 movl 72(%ebp,%eax,4),%eax
313 movl 1096(%ebp,%ebx,4),%ebx
314 addl %eax,%ebx
315 movl 2120(%ebp,%ecx,4),%eax
316 xorl %eax,%ebx
317 movl 3144(%ebp,%edx,4),%edx
318 addl %edx,%ebx
319 xorl %eax,%eax
320 xorl %ebx,%esi
321
322 # Round 15
323 movl 64(%ebp),%edx
324 movl %esi,%ebx
325 xorl %edx,%edi
326 shrl $16,%ebx
327 movl %esi,%edx
328 movb %bh,%al
329 andl $255,%ebx
330 movb %dh,%cl
331 andl $255,%edx
332 movl 72(%ebp,%eax,4),%eax
333 movl 1096(%ebp,%ebx,4),%ebx
334 addl %eax,%ebx
335 movl 2120(%ebp,%ecx,4),%eax
336 xorl %eax,%ebx
337 movl 3144(%ebp,%edx,4),%edx
338 addl %edx,%ebx
339 # Load parameter 0 (16) enc=1
340 movl 20(%esp),%eax
341 xorl %ebx,%edi
342 movl 68(%ebp),%edx
343 xorl %edx,%esi
344 movl %edi,4(%eax)
345 movl %esi,(%eax)
346 popl %edi
347 popl %esi
348 popl %ebx
349 popl %ebp
350 ret
351 .globl _BF_decrypt
352 .align 4
353 _BF_decrypt:
354 L_BF_decrypt_begin:
355
356 pushl %ebp
357 pushl %ebx
358 movl 12(%esp),%ebx
359 movl 16(%esp),%ebp
360 pushl %esi
361 pushl %edi
362 # Load the 2 words
363 movl (%ebx),%edi
364 movl 4(%ebx),%esi
365 xorl %eax,%eax
366 movl 68(%ebp),%ebx
367 xorl %ecx,%ecx
368 xorl %ebx,%edi
369
370 # Round 16
371 movl 64(%ebp),%edx
372 movl %edi,%ebx
373 xorl %edx,%esi
374 shrl $16,%ebx
375 movl %edi,%edx
376 movb %bh,%al
377 andl $255,%ebx
378 movb %dh,%cl
379 andl $255,%edx
380 movl 72(%ebp,%eax,4),%eax
381 movl 1096(%ebp,%ebx,4),%ebx
382 addl %eax,%ebx
383 movl 2120(%ebp,%ecx,4),%eax
384 xorl %eax,%ebx
385 movl 3144(%ebp,%edx,4),%edx
386 addl %edx,%ebx
387 xorl %eax,%eax
388 xorl %ebx,%esi
389
390 # Round 15
391 movl 60(%ebp),%edx
392 movl %esi,%ebx
393 xorl %edx,%edi
394 shrl $16,%ebx
395 movl %esi,%edx
396 movb %bh,%al
397 andl $255,%ebx
398 movb %dh,%cl
399 andl $255,%edx
400 movl 72(%ebp,%eax,4),%eax
401 movl 1096(%ebp,%ebx,4),%ebx
402 addl %eax,%ebx
403 movl 2120(%ebp,%ecx,4),%eax
404 xorl %eax,%ebx
405 movl 3144(%ebp,%edx,4),%edx
406 addl %edx,%ebx
407 xorl %eax,%eax
408 xorl %ebx,%edi
409
410 # Round 14
411 movl 56(%ebp),%edx
412 movl %edi,%ebx
413 xorl %edx,%esi
414 shrl $16,%ebx
415 movl %edi,%edx
416 movb %bh,%al
417 andl $255,%ebx
418 movb %dh,%cl
419 andl $255,%edx
420 movl 72(%ebp,%eax,4),%eax
421 movl 1096(%ebp,%ebx,4),%ebx
422 addl %eax,%ebx
423 movl 2120(%ebp,%ecx,4),%eax
424 xorl %eax,%ebx
425 movl 3144(%ebp,%edx,4),%edx
426 addl %edx,%ebx
427 xorl %eax,%eax
428 xorl %ebx,%esi
429
430 # Round 13
431 movl 52(%ebp),%edx
432 movl %esi,%ebx
433 xorl %edx,%edi
434 shrl $16,%ebx
435 movl %esi,%edx
436 movb %bh,%al
437 andl $255,%ebx
438 movb %dh,%cl
439 andl $255,%edx
440 movl 72(%ebp,%eax,4),%eax
441 movl 1096(%ebp,%ebx,4),%ebx
442 addl %eax,%ebx
443 movl 2120(%ebp,%ecx,4),%eax
444 xorl %eax,%ebx
445 movl 3144(%ebp,%edx,4),%edx
446 addl %edx,%ebx
447 xorl %eax,%eax
448 xorl %ebx,%edi
449
450 # Round 12
451 movl 48(%ebp),%edx
452 movl %edi,%ebx
453 xorl %edx,%esi
454 shrl $16,%ebx
455 movl %edi,%edx
456 movb %bh,%al
457 andl $255,%ebx
458 movb %dh,%cl
459 andl $255,%edx
460 movl 72(%ebp,%eax,4),%eax
461 movl 1096(%ebp,%ebx,4),%ebx
462 addl %eax,%ebx
463 movl 2120(%ebp,%ecx,4),%eax
464 xorl %eax,%ebx
465 movl 3144(%ebp,%edx,4),%edx
466 addl %edx,%ebx
467 xorl %eax,%eax
468 xorl %ebx,%esi
469
470 # Round 11
471 movl 44(%ebp),%edx
472 movl %esi,%ebx
473 xorl %edx,%edi
474 shrl $16,%ebx
475 movl %esi,%edx
476 movb %bh,%al
477 andl $255,%ebx
478 movb %dh,%cl
479 andl $255,%edx
480 movl 72(%ebp,%eax,4),%eax
481 movl 1096(%ebp,%ebx,4),%ebx
482 addl %eax,%ebx
483 movl 2120(%ebp,%ecx,4),%eax
484 xorl %eax,%ebx
485 movl 3144(%ebp,%edx,4),%edx
486 addl %edx,%ebx
487 xorl %eax,%eax
488 xorl %ebx,%edi
489
490 # Round 10
491 movl 40(%ebp),%edx
492 movl %edi,%ebx
493 xorl %edx,%esi
494 shrl $16,%ebx
495 movl %edi,%edx
496 movb %bh,%al
497 andl $255,%ebx
498 movb %dh,%cl
499 andl $255,%edx
500 movl 72(%ebp,%eax,4),%eax
501 movl 1096(%ebp,%ebx,4),%ebx
502 addl %eax,%ebx
503 movl 2120(%ebp,%ecx,4),%eax
504 xorl %eax,%ebx
505 movl 3144(%ebp,%edx,4),%edx
506 addl %edx,%ebx
507 xorl %eax,%eax
508 xorl %ebx,%esi
509
510 # Round 9
511 movl 36(%ebp),%edx
512 movl %esi,%ebx
513 xorl %edx,%edi
514 shrl $16,%ebx
515 movl %esi,%edx
516 movb %bh,%al
517 andl $255,%ebx
518 movb %dh,%cl
519 andl $255,%edx
520 movl 72(%ebp,%eax,4),%eax
521 movl 1096(%ebp,%ebx,4),%ebx
522 addl %eax,%ebx
523 movl 2120(%ebp,%ecx,4),%eax
524 xorl %eax,%ebx
525 movl 3144(%ebp,%edx,4),%edx
526 addl %edx,%ebx
527 xorl %eax,%eax
528 xorl %ebx,%edi
529
530 # Round 8
531 movl 32(%ebp),%edx
532 movl %edi,%ebx
533 xorl %edx,%esi
534 shrl $16,%ebx
535 movl %edi,%edx
536 movb %bh,%al
537 andl $255,%ebx
538 movb %dh,%cl
539 andl $255,%edx
540 movl 72(%ebp,%eax,4),%eax
541 movl 1096(%ebp,%ebx,4),%ebx
542 addl %eax,%ebx
543 movl 2120(%ebp,%ecx,4),%eax
544 xorl %eax,%ebx
545 movl 3144(%ebp,%edx,4),%edx
546 addl %edx,%ebx
547 xorl %eax,%eax
548 xorl %ebx,%esi
549
550 # Round 7
551 movl 28(%ebp),%edx
552 movl %esi,%ebx
553 xorl %edx,%edi
554 shrl $16,%ebx
555 movl %esi,%edx
556 movb %bh,%al
557 andl $255,%ebx
558 movb %dh,%cl
559 andl $255,%edx
560 movl 72(%ebp,%eax,4),%eax
561 movl 1096(%ebp,%ebx,4),%ebx
562 addl %eax,%ebx
563 movl 2120(%ebp,%ecx,4),%eax
564 xorl %eax,%ebx
565 movl 3144(%ebp,%edx,4),%edx
566 addl %edx,%ebx
567 xorl %eax,%eax
568 xorl %ebx,%edi
569
570 # Round 6
571 movl 24(%ebp),%edx
572 movl %edi,%ebx
573 xorl %edx,%esi
574 shrl $16,%ebx
575 movl %edi,%edx
576 movb %bh,%al
577 andl $255,%ebx
578 movb %dh,%cl
579 andl $255,%edx
580 movl 72(%ebp,%eax,4),%eax
581 movl 1096(%ebp,%ebx,4),%ebx
582 addl %eax,%ebx
583 movl 2120(%ebp,%ecx,4),%eax
584 xorl %eax,%ebx
585 movl 3144(%ebp,%edx,4),%edx
586 addl %edx,%ebx
587 xorl %eax,%eax
588 xorl %ebx,%esi
589
590 # Round 5
591 movl 20(%ebp),%edx
592 movl %esi,%ebx
593 xorl %edx,%edi
594 shrl $16,%ebx
595 movl %esi,%edx
596 movb %bh,%al
597 andl $255,%ebx
598 movb %dh,%cl
599 andl $255,%edx
600 movl 72(%ebp,%eax,4),%eax
601 movl 1096(%ebp,%ebx,4),%ebx
602 addl %eax,%ebx
603 movl 2120(%ebp,%ecx,4),%eax
604 xorl %eax,%ebx
605 movl 3144(%ebp,%edx,4),%edx
606 addl %edx,%ebx
607 xorl %eax,%eax
608 xorl %ebx,%edi
609
610 # Round 4
611 movl 16(%ebp),%edx
612 movl %edi,%ebx
613 xorl %edx,%esi
614 shrl $16,%ebx
615 movl %edi,%edx
616 movb %bh,%al
617 andl $255,%ebx
618 movb %dh,%cl
619 andl $255,%edx
620 movl 72(%ebp,%eax,4),%eax
621 movl 1096(%ebp,%ebx,4),%ebx
622 addl %eax,%ebx
623 movl 2120(%ebp,%ecx,4),%eax
624 xorl %eax,%ebx
625 movl 3144(%ebp,%edx,4),%edx
626 addl %edx,%ebx
627 xorl %eax,%eax
628 xorl %ebx,%esi
629
630 # Round 3
631 movl 12(%ebp),%edx
632 movl %esi,%ebx
633 xorl %edx,%edi
634 shrl $16,%ebx
635 movl %esi,%edx
636 movb %bh,%al
637 andl $255,%ebx
638 movb %dh,%cl
639 andl $255,%edx
640 movl 72(%ebp,%eax,4),%eax
641 movl 1096(%ebp,%ebx,4),%ebx
642 addl %eax,%ebx
643 movl 2120(%ebp,%ecx,4),%eax
644 xorl %eax,%ebx
645 movl 3144(%ebp,%edx,4),%edx
646 addl %edx,%ebx
647 xorl %eax,%eax
648 xorl %ebx,%edi
649
650 # Round 2
651 movl 8(%ebp),%edx
652 movl %edi,%ebx
653 xorl %edx,%esi
654 shrl $16,%ebx
655 movl %edi,%edx
656 movb %bh,%al
657 andl $255,%ebx
658 movb %dh,%cl
659 andl $255,%edx
660 movl 72(%ebp,%eax,4),%eax
661 movl 1096(%ebp,%ebx,4),%ebx
662 addl %eax,%ebx
663 movl 2120(%ebp,%ecx,4),%eax
664 xorl %eax,%ebx
665 movl 3144(%ebp,%edx,4),%edx
666 addl %edx,%ebx
667 xorl %eax,%eax
668 xorl %ebx,%esi
669
670 # Round 1
671 movl 4(%ebp),%edx
672 movl %esi,%ebx
673 xorl %edx,%edi
674 shrl $16,%ebx
675 movl %esi,%edx
676 movb %bh,%al
677 andl $255,%ebx
678 movb %dh,%cl
679 andl $255,%edx
680 movl 72(%ebp,%eax,4),%eax
681 movl 1096(%ebp,%ebx,4),%ebx
682 addl %eax,%ebx
683 movl 2120(%ebp,%ecx,4),%eax
684 xorl %eax,%ebx
685 movl 3144(%ebp,%edx,4),%edx
686 addl %edx,%ebx
687 # Load parameter 0 (1) enc=0
688 movl 20(%esp),%eax
689 xorl %ebx,%edi
690 movl (%ebp),%edx
691 xorl %edx,%esi
692 movl %edi,4(%eax)
693 movl %esi,(%eax)
694 popl %edi
695 popl %esi
696 popl %ebx
697 popl %ebp
698 ret
699 .globl _BF_cbc_encrypt
700 .align 4
701 _BF_cbc_encrypt:
702 L_BF_cbc_encrypt_begin:
703
704 pushl %ebp
705 pushl %ebx
706 pushl %esi
707 pushl %edi
708 movl 28(%esp),%ebp
709 # getting iv ptr from parameter 4
710 movl 36(%esp),%ebx
711 movl (%ebx),%esi
712 movl 4(%ebx),%edi
713 pushl %edi
714 pushl %esi
715 pushl %edi
716 pushl %esi
717 movl %esp,%ebx
718 movl 36(%esp),%esi
719 movl 40(%esp),%edi
720 # getting encrypt flag from parameter 5
721 movl 56(%esp),%ecx
722 # get and push parameter 3
723 movl 48(%esp),%eax
724 pushl %eax
725 pushl %ebx
726 cmpl $0,%ecx
727 jz L000decrypt
728 andl $4294967288,%ebp
729 movl 8(%esp),%eax
730 movl 12(%esp),%ebx
731 jz L001encrypt_finish
732 L002encrypt_loop:
733 movl (%esi),%ecx
734 movl 4(%esi),%edx
735 xorl %ecx,%eax
736 xorl %edx,%ebx
737 bswap %eax
738 bswap %ebx
739 movl %eax,8(%esp)
740 movl %ebx,12(%esp)
741 call L_BF_encrypt_begin
742 movl 8(%esp),%eax
743 movl 12(%esp),%ebx
744 bswap %eax
745 bswap %ebx
746 movl %eax,(%edi)
747 movl %ebx,4(%edi)
748 addl $8,%esi
749 addl $8,%edi
750 subl $8,%ebp
751 jnz L002encrypt_loop
752 L001encrypt_finish:
753 movl 52(%esp),%ebp
754 andl $7,%ebp
755 jz L003finish
756 call L004PIC_point
757 L004PIC_point:
758 popl %edx
759 leal L005cbc_enc_jmp_table-L004PIC_point(%edx),%ecx
760 movl (%ecx,%ebp,4),%ebp
761 addl %edx,%ebp
762 xorl %ecx,%ecx
763 xorl %edx,%edx
764 jmp *%ebp
765 L006ej7:
766 movb 6(%esi),%dh
767 shll $8,%edx
768 L007ej6:
769 movb 5(%esi),%dh
770 L008ej5:
771 movb 4(%esi),%dl
772 L009ej4:
773 movl (%esi),%ecx
774 jmp L010ejend
775 L011ej3:
776 movb 2(%esi),%ch
777 shll $8,%ecx
778 L012ej2:
779 movb 1(%esi),%ch
780 L013ej1:
781 movb (%esi),%cl
782 L010ejend:
783 xorl %ecx,%eax
784 xorl %edx,%ebx
785 bswap %eax
786 bswap %ebx
787 movl %eax,8(%esp)
788 movl %ebx,12(%esp)
789 call L_BF_encrypt_begin
790 movl 8(%esp),%eax
791 movl 12(%esp),%ebx
792 bswap %eax
793 bswap %ebx
794 movl %eax,(%edi)
795 movl %ebx,4(%edi)
796 jmp L003finish
797 L000decrypt:
798 andl $4294967288,%ebp
799 movl 16(%esp),%eax
800 movl 20(%esp),%ebx
801 jz L014decrypt_finish
802 L015decrypt_loop:
803 movl (%esi),%eax
804 movl 4(%esi),%ebx
805 bswap %eax
806 bswap %ebx
807 movl %eax,8(%esp)
808 movl %ebx,12(%esp)
809 call L_BF_decrypt_begin
810 movl 8(%esp),%eax
811 movl 12(%esp),%ebx
812 bswap %eax
813 bswap %ebx
814 movl 16(%esp),%ecx
815 movl 20(%esp),%edx
816 xorl %eax,%ecx
817 xorl %ebx,%edx
818 movl (%esi),%eax
819 movl 4(%esi),%ebx
820 movl %ecx,(%edi)
821 movl %edx,4(%edi)
822 movl %eax,16(%esp)
823 movl %ebx,20(%esp)
824 addl $8,%esi
825 addl $8,%edi
826 subl $8,%ebp
827 jnz L015decrypt_loop
828 L014decrypt_finish:
829 movl 52(%esp),%ebp
830 andl $7,%ebp
831 jz L003finish
832 movl (%esi),%eax
833 movl 4(%esi),%ebx
834 bswap %eax
835 bswap %ebx
836 movl %eax,8(%esp)
837 movl %ebx,12(%esp)
838 call L_BF_decrypt_begin
839 movl 8(%esp),%eax
840 movl 12(%esp),%ebx
841 bswap %eax
842 bswap %ebx
843 movl 16(%esp),%ecx
844 movl 20(%esp),%edx
845 xorl %eax,%ecx
846 xorl %ebx,%edx
847 movl (%esi),%eax
848 movl 4(%esi),%ebx
849 L016dj7:
850 rorl $16,%edx
851 movb %dl,6(%edi)
852 shrl $16,%edx
853 L017dj6:
854 movb %dh,5(%edi)
855 L018dj5:
856 movb %dl,4(%edi)
857 L019dj4:
858 movl %ecx,(%edi)
859 jmp L020djend
860 L021dj3:
861 rorl $16,%ecx
862 movb %cl,2(%edi)
863 shll $16,%ecx
864 L022dj2:
865 movb %ch,1(%esi)
866 L023dj1:
867 movb %cl,(%esi)
868 L020djend:
869 jmp L003finish
870 L003finish:
871 movl 60(%esp),%ecx
872 addl $24,%esp
873 movl %eax,(%ecx)
874 movl %ebx,4(%ecx)
875 popl %edi
876 popl %esi
877 popl %ebx
878 popl %ebp
879 ret
880 .align 6,0x90
881 L005cbc_enc_jmp_table:
882 .long 0
883 .long L013ej1-L004PIC_point
884 .long L012ej2-L004PIC_point
885 .long L011ej3-L004PIC_point
886 .long L009ej4-L004PIC_point
887 .long L008ej5-L004PIC_point
888 .long L007ej6-L004PIC_point
889 .long L006ej7-L004PIC_point
890 .align 6,0x90
OLDNEW
« no previous file with comments | « openssl/crypto/bf/asm/bf-586.pl ('k') | openssl/crypto/bf/asm/bf-686.pl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698