1 diff -burN android-openssl.orig/import_openssl.sh android-openssl/import_openssl.sh
2 --- android-openssl.orig/import_openssl.sh 2014-04-03 13:23:34.925663547 +0200
3 +++ android-openssl/import_openssl.sh 2014-04-03 14:13:56.497704796 +0200
8 +function default_asm_mac_ia32_file () {
12 + echo "${1%%.pl}-mac.S"
15 # Generate an ARM assembly file.
16 # $1: generator (perl script)
17 # $2: [optional] output file name
19 perl "$1" elf "$OUT" > "$OUT"
22 +function gen_asm_mac_ia32 () {
24 + OUT=$(default_asm_mac_ia32_file "$@")
25 + perl "$1" macosx "$OUT" > "$OUT"
28 # Filter all items in a list that match a given pattern.
29 # $1: space-separated list
31 gen_asm_x86_64 crypto/rc4/asm/rc4-x86_64.pl
32 gen_asm_x86_64 crypto/rc4/asm/rc4-md5-x86_64.pl
34 + # Generate mac_ia32 asm
35 + gen_asm_mac_ia32 crypto/x86cpuid.pl
36 + gen_asm_mac_ia32 crypto/aes/asm/aes-586.pl
37 + gen_asm_mac_ia32 crypto/aes/asm/vpaes-x86.pl
38 + gen_asm_mac_ia32 crypto/aes/asm/aesni-x86.pl
39 + gen_asm_mac_ia32 crypto/bn/asm/bn-586.pl
40 + gen_asm_mac_ia32 crypto/bn/asm/co-586.pl
41 + gen_asm_mac_ia32 crypto/bn/asm/x86-mont.pl
42 + gen_asm_mac_ia32 crypto/bn/asm/x86-gf2m.pl
43 + gen_asm_mac_ia32 crypto/modes/asm/ghash-x86.pl
44 + gen_asm_mac_ia32 crypto/sha/asm/sha1-586.pl
45 + gen_asm_mac_ia32 crypto/sha/asm/sha256-586.pl
46 + gen_asm_mac_ia32 crypto/sha/asm/sha512-586.pl
47 + gen_asm_mac_ia32 crypto/md5/asm/md5-586.pl
48 + gen_asm_mac_ia32 crypto/des/asm/des-586.pl
49 + gen_asm_mac_ia32 crypto/des/asm/crypt586.pl
50 + gen_asm_mac_ia32 crypto/bf/asm/bf-586.pl
52 # Setup android.testssl directory
55 diff -burN android-openssl.orig/openssl.config android-openssl/openssl.config
56 --- android-openssl.orig/openssl.config 2014-04-03 13:23:34.989663548 +0200
57 +++ android-openssl/openssl.config 2014-04-03 14:14:40.309705394 +0200
62 +OPENSSL_CRYPTO_DEFINES_mac_ia32="\
63 +OPENSSL_BN_ASM_GF2m \
64 +OPENSSL_BN_ASM_MONT \
65 +OPENSSL_BN_ASM_PART_WORDS \
78 OPENSSL_CRYPTO_INCLUDES="\
85 +OPENSSL_CRYPTO_SOURCES_mac_ia32="\
86 +crypto/aes/asm/aes-586-mac.S \
87 +crypto/aes/asm/aesni-x86-mac.S \
88 +crypto/aes/asm/vpaes-x86-mac.S \
89 +crypto/bf/asm/bf-586-mac.S \
90 +crypto/bn/asm/bn-586-mac.S \
91 +crypto/bn/asm/co-586-mac.S \
92 +crypto/bn/asm/x86-gf2m-mac.S \
93 +crypto/bn/asm/x86-mont-mac.S \
94 +crypto/des/asm/crypt586-mac.S \
95 +crypto/des/asm/des-586-mac.S \
96 +crypto/md5/asm/md5-586-mac.S \
97 +crypto/modes/asm/ghash-x86-mac.S \
98 +crypto/sha/asm/sha1-586-mac.S \
99 +crypto/sha/asm/sha256-586-mac.S \
100 +crypto/sha/asm/sha512-586-mac.S \
101 +crypto/x86cpuid-mac.S \
104 +OPENSSL_CRYPTO_SOURCES_EXCLUDES_mac_ia32="\
105 +crypto/aes/aes_core.c \
106 +crypto/aes/aes_cbc.c \
107 +crypto/bf/bf_enc.c \
108 +crypto/bn/bn_asm.c \
109 +crypto/des/des_enc.c \
110 +crypto/des/fcrypt_b.c \
114 OPENSSL_CRYPTO_SOURCES_x86_64="\
115 crypto/aes/asm/aes-x86_64.S \
116 crypto/aes/asm/aesni-x86_64.S \
117 @@ -1016,6 +1061,7 @@
118 chacha20poly1305.patch \
121 +mac_ia32_assembly.patch \
124 OPENSSL_PATCHES_progs_SOURCES="\
125 @@ -1089,3 +1135,22 @@
126 include/openssl/lhash.h
130 +OPENSSL_PATCHES_mac_ia32_assembly_SOURCES="\
131 +crypto/aes/asm/aes-586-mac.S \
132 +crypto/aes/asm/aesni-x86-mac.S \
133 +crypto/aes/asm/vpaes-x86-mac.S \
134 +crypto/bf/asm/bf-586-mac.S \
135 +crypto/bn/asm/bn-586-mac.S \
136 +crypto/bn/asm/co-586-mac.S \
137 +crypto/bn/asm/x86-gf2m-mac.S \
138 +crypto/bn/asm/x86-mont-mac.S \
139 +crypto/des/asm/crypt586-mac.S \
140 +crypto/des/asm/des-586-mac.S \
141 +crypto/md5/asm/md5-586-mac.S \
142 +crypto/modes/asm/ghash-x86-mac.S \
143 +crypto/sha/asm/sha1-586-mac.S \
144 +crypto/sha/asm/sha256-586-mac.S \
145 +crypto/sha/asm/sha512-586-mac.S \
146 +crypto/x86cpuid-mac.S \
148 diff -burN android-openssl.orig/patches/mac_ia32_assembly.patch android-openssl/patches/mac_ia32_assembly.patch
149 --- android-openssl.orig/patches/mac_ia32_assembly.patch 1970-01-01 01:00:00.000000000 +0100
150 +++ android-openssl/patches/mac_ia32_assembly.patch 2014-04-03 14:13:56.505704796 +0200
152 +From dee77b350211c7b5980f03cc67e30ebf616b029e Mon Sep 17 00:00:00 2001
153 +From: =?UTF-8?q?H=C3=A5vard=20Molland?= <haavardm@opera.com>
154 +Date: Thu, 3 Apr 2014 10:58:22 +0200
155 +Subject: [PATCH 4/4] Assembly files for OSX-32.
157 +Needed for compiling 32 bit OSX with assembly support.
159 + crypto/aes/asm/aes-586-mac.S | 3200 +++++++++++++++++++++++++++
160 + crypto/aes/asm/aesni-x86-mac.S | 2107 ++++++++++++++++++
161 + crypto/aes/asm/vpaes-x86-mac.S | 635 ++++++
162 + crypto/bf/asm/bf-586-mac.S | 890 ++++++++
163 + crypto/bn/asm/bn-586-mac.S | 1370 ++++++++++++
164 + crypto/bn/asm/co-586-mac.S | 1246 +++++++++++
165 + crypto/bn/asm/x86-gf2m-mac.S | 332 +++
166 + crypto/bn/asm/x86-mont-mac.S | 336 +++
167 + crypto/des/asm/crypt586-mac.S | 880 ++++++++
168 + crypto/des/asm/des-586-mac.S | 1821 +++++++++++++++
169 + crypto/md5/asm/md5-586-mac.S | 677 ++++++
170 + crypto/modes/asm/ghash-x86-mac.S | 718 ++++++
171 + crypto/sha/asm/sha1-586-mac.S | 1378 ++++++++++++
172 + crypto/sha/asm/sha256-586-mac.S | 256 +++
173 + crypto/sha/asm/sha512-586-mac.S | 561 +++++
174 + crypto/x86cpuid-mac.S | 316 +++
175 + import_openssl.sh | 32 +-
176 + openssl.config | 29 -
177 + 18 files changed, 16724 insertions(+), 60 deletions(-)
178 + create mode 100644 crypto/aes/asm/aes-586-mac.S
179 + create mode 100644 crypto/aes/asm/aesni-x86-mac.S
180 + create mode 100644 crypto/aes/asm/vpaes-x86-mac.S
181 + create mode 100644 crypto/bf/asm/bf-586-mac.S
182 + create mode 100644 crypto/bn/asm/bn-586-mac.S
183 + create mode 100644 crypto/bn/asm/co-586-mac.S
184 + create mode 100644 crypto/bn/asm/x86-gf2m-mac.S
185 + create mode 100644 crypto/bn/asm/x86-mont-mac.S
186 + create mode 100644 crypto/des/asm/crypt586-mac.S
187 + create mode 100644 crypto/des/asm/des-586-mac.S
188 + create mode 100644 crypto/md5/asm/md5-586-mac.S
189 + create mode 100644 crypto/modes/asm/ghash-x86-mac.S
190 + create mode 100644 crypto/sha/asm/sha1-586-mac.S
191 + create mode 100644 crypto/sha/asm/sha256-586-mac.S
192 + create mode 100644 crypto/sha/asm/sha512-586-mac.S
193 + create mode 100644 crypto/x86cpuid-mac.S
195 +diff --git a/crypto/aes/asm/aes-586-mac.S b/crypto/aes/asm/aes-586-mac.S
196 +new file mode 100644
197 +index 0000000..15d5d7b
199 ++++ b/crypto/aes/asm/aes-586-mac.S
204 ++__x86_AES_encrypt_compact:
205 ++ movl %edi,20(%esp)
209 ++ xorl 12(%edi),%edx
210 ++ movl 240(%edi),%esi
211 ++ leal -2(%esi,%esi,1),%esi
212 ++ leal (%edi,%esi,8),%esi
213 ++ movl %esi,24(%esp)
214 ++ movl -128(%ebp),%edi
215 ++ movl -96(%ebp),%esi
216 ++ movl -64(%ebp),%edi
217 ++ movl -32(%ebp),%esi
219 ++ movl 32(%ebp),%esi
220 ++ movl 64(%ebp),%edi
221 ++ movl 96(%ebp),%esi
226 ++ movzbl -128(%ebp,%esi,1),%esi
228 ++ movzbl -128(%ebp,%edi,1),%edi
234 ++ movzbl -128(%ebp,%edi,1),%edi
239 ++ movzbl -128(%ebp,%edi,1),%edi
246 ++ movzbl -128(%ebp,%esi,1),%esi
248 ++ movzbl -128(%ebp,%edi,1),%edi
254 ++ movzbl -128(%ebp,%edi,1),%edi
259 ++ movzbl -128(%ebp,%edi,1),%edi
266 ++ movzbl -128(%ebp,%esi,1),%esi
268 ++ movzbl -128(%ebp,%edi,1),%edi
275 ++ movzbl -128(%ebp,%edi,1),%edi
279 ++ movzbl -128(%ebp,%edi,1),%edi
283 ++ movzbl -128(%ebp,%edx,1),%edx
285 ++ movzbl -128(%ebp,%eax,1),%eax
290 ++ movzbl -128(%ebp,%ebx,1),%ebx
294 ++ movzbl -128(%ebp,%ecx,1),%ecx
299 ++ andl $2155905152,%esi
302 ++ leal (%ecx,%ecx,1),%edi
304 ++ andl $4278124286,%edi
305 ++ andl $454761243,%esi
316 ++ andl $2155905152,%esi
319 ++ leal (%edx,%edx,1),%edi
321 ++ andl $4278124286,%edi
322 ++ andl $454761243,%esi
333 ++ andl $2155905152,%esi
336 ++ leal (%eax,%eax,1),%edi
338 ++ andl $4278124286,%edi
339 ++ andl $454761243,%esi
350 ++ andl $2155905152,%esi
353 ++ leal (%ebx,%ebx,1),%edi
355 ++ andl $4278124286,%edi
356 ++ andl $454761243,%esi
366 ++ movl 20(%esp),%edi
367 ++ movl 28(%esp),%ebp
372 ++ xorl 12(%edi),%edx
373 ++ cmpl 24(%esp),%edi
374 ++ movl %edi,20(%esp)
378 ++ movzbl -128(%ebp,%esi,1),%esi
380 ++ movzbl -128(%ebp,%edi,1),%edi
386 ++ movzbl -128(%ebp,%edi,1),%edi
391 ++ movzbl -128(%ebp,%edi,1),%edi
398 ++ movzbl -128(%ebp,%esi,1),%esi
400 ++ movzbl -128(%ebp,%edi,1),%edi
406 ++ movzbl -128(%ebp,%edi,1),%edi
411 ++ movzbl -128(%ebp,%edi,1),%edi
418 ++ movzbl -128(%ebp,%esi,1),%esi
420 ++ movzbl -128(%ebp,%edi,1),%edi
427 ++ movzbl -128(%ebp,%edi,1),%edi
431 ++ movzbl -128(%ebp,%edi,1),%edi
434 ++ movl 20(%esp),%edi
436 ++ movzbl -128(%ebp,%edx,1),%edx
438 ++ movzbl -128(%ebp,%eax,1),%eax
443 ++ movzbl -128(%ebp,%ebx,1),%ebx
447 ++ movzbl -128(%ebp,%ecx,1),%ecx
451 ++ xorl 16(%edi),%eax
452 ++ xorl 20(%edi),%ebx
453 ++ xorl 24(%edi),%ecx
454 ++ xorl 28(%edi),%edx
457 ++__sse_AES_encrypt_compact:
460 ++ movl 240(%edi),%esi
461 ++ leal -2(%esi,%esi,1),%esi
462 ++ leal (%edi,%esi,8),%esi
463 ++ movl %esi,24(%esp)
464 ++ movl $454761243,%eax
466 ++ movl %eax,12(%esp)
467 ++ movl -128(%ebp),%eax
468 ++ movl -96(%ebp),%ebx
469 ++ movl -64(%ebp),%ecx
470 ++ movl -32(%ebp),%edx
472 ++ movl 32(%ebp),%ebx
473 ++ movl 64(%ebp),%ecx
474 ++ movl 96(%ebp),%edx
477 ++ pshufw $8,%mm0,%mm1
478 ++ pshufw $13,%mm4,%mm5
482 ++ movzbl -128(%ebp,%esi,1),%ecx
483 ++ pshufw $13,%mm0,%mm2
485 ++ movzbl -128(%ebp,%edx,1),%edx
489 ++ movzbl -128(%ebp,%esi,1),%esi
492 ++ pshufw $8,%mm4,%mm6
494 ++ movzbl -128(%ebp,%esi,1),%esi
499 ++ movzbl -128(%ebp,%esi,1),%esi
503 ++ movzbl -128(%ebp,%esi,1),%esi
508 ++ movzbl -128(%ebp,%esi,1),%ecx
511 ++ movzbl -128(%ebp,%esi,1),%esi
516 ++ movzbl -128(%ebp,%esi,1),%esi
520 ++ movzbl -128(%ebp,%esi,1),%esi
525 ++ movzbl -128(%ebp,%esi,1),%ecx
528 ++ movzbl -128(%ebp,%esi,1),%esi
532 ++ punpckldq %mm1,%mm0
534 ++ movzbl -128(%ebp,%esi,1),%esi
538 ++ movzbl -128(%ebp,%eax,1),%eax
542 ++ movzbl -128(%ebp,%esi,1),%esi
547 ++ movzbl -128(%ebp,%ebx,1),%ebx
550 ++ punpckldq %mm5,%mm4
552 ++ cmpl 24(%esp),%edi
563 ++ pshufw $177,%mm0,%mm2
564 ++ pshufw $177,%mm4,%mm6
569 ++ pshufw $177,%mm2,%mm3
570 ++ pshufw $177,%mm6,%mm7
591 ++ movl -128(%ebp),%eax
594 ++ movl -64(%ebp),%ebx
600 ++ movl 64(%ebp),%edx
611 ++ movl %edi,20(%esp)
615 ++ xorl 12(%edi),%edx
616 ++ movl 240(%edi),%esi
617 ++ leal -2(%esi,%esi,1),%esi
618 ++ leal (%edi,%esi,8),%esi
619 ++ movl %esi,24(%esp)
624 ++ movl (%ebp,%esi,8),%esi
626 ++ xorl 3(%ebp,%edi,8),%esi
630 ++ xorl 2(%ebp,%edi,8),%esi
633 ++ xorl 1(%ebp,%edi,8),%esi
638 ++ movl (%ebp,%esi,8),%esi
640 ++ xorl 3(%ebp,%edi,8),%esi
644 ++ xorl 2(%ebp,%edi,8),%esi
647 ++ xorl 1(%ebp,%edi,8),%esi
652 ++ movl (%ebp,%esi,8),%esi
654 ++ xorl 3(%ebp,%edi,8),%esi
659 ++ xorl 2(%ebp,%edi,8),%esi
661 ++ xorl 1(%ebp,%edi,8),%esi
662 ++ movl 20(%esp),%edi
663 ++ movl (%ebp,%edx,8),%edx
665 ++ xorl 3(%ebp,%eax,8),%edx
668 ++ xorl 2(%ebp,%ebx,8),%edx
670 ++ xorl 1(%ebp,%ecx,8),%edx
676 ++ xorl 12(%edi),%edx
677 ++ cmpl 24(%esp),%edi
678 ++ movl %edi,20(%esp)
682 ++ movl 2(%ebp,%esi,8),%esi
685 ++ movl (%ebp,%edi,8),%edi
691 ++ movl (%ebp,%edi,8),%edi
692 ++ andl $16711680,%edi
696 ++ movl 2(%ebp,%edi,8),%edi
697 ++ andl $4278190080,%edi
703 ++ movl 2(%ebp,%esi,8),%esi
706 ++ movl (%ebp,%edi,8),%edi
712 ++ movl (%ebp,%edi,8),%edi
713 ++ andl $16711680,%edi
717 ++ movl 2(%ebp,%edi,8),%edi
718 ++ andl $4278190080,%edi
724 ++ movl 2(%ebp,%esi,8),%esi
727 ++ movl (%ebp,%edi,8),%edi
734 ++ movl (%ebp,%edi,8),%edi
735 ++ andl $16711680,%edi
738 ++ movl 2(%ebp,%edi,8),%edi
739 ++ andl $4278190080,%edi
741 ++ movl 20(%esp),%edi
743 ++ movl 2(%ebp,%edx,8),%edx
746 ++ movl (%ebp,%eax,8),%eax
751 ++ movl (%ebp,%ebx,8),%ebx
752 ++ andl $16711680,%ebx
755 ++ movl 2(%ebp,%ecx,8),%ecx
756 ++ andl $4278190080,%ecx
763 ++ xorl 12(%edi),%edx
767 ++.long 2774754246,2774754246
768 ++.long 2222750968,2222750968
769 ++.long 2574743534,2574743534
770 ++.long 2373680118,2373680118
771 ++.long 234025727,234025727
772 ++.long 3177933782,3177933782
773 ++.long 2976870366,2976870366
774 ++.long 1422247313,1422247313
775 ++.long 1345335392,1345335392
776 ++.long 50397442,50397442
777 ++.long 2842126286,2842126286
778 ++.long 2099981142,2099981142
779 ++.long 436141799,436141799
780 ++.long 1658312629,1658312629
781 ++.long 3870010189,3870010189
782 ++.long 2591454956,2591454956
783 ++.long 1170918031,1170918031
784 ++.long 2642575903,2642575903
785 ++.long 1086966153,1086966153
786 ++.long 2273148410,2273148410
787 ++.long 368769775,368769775
788 ++.long 3948501426,3948501426
789 ++.long 3376891790,3376891790
790 ++.long 200339707,200339707
791 ++.long 3970805057,3970805057
792 ++.long 1742001331,1742001331
793 ++.long 4255294047,4255294047
794 ++.long 3937382213,3937382213
795 ++.long 3214711843,3214711843
796 ++.long 4154762323,4154762323
797 ++.long 2524082916,2524082916
798 ++.long 1539358875,1539358875
799 ++.long 3266819957,3266819957
800 ++.long 486407649,486407649
801 ++.long 2928907069,2928907069
802 ++.long 1780885068,1780885068
803 ++.long 1513502316,1513502316
804 ++.long 1094664062,1094664062
805 ++.long 49805301,49805301
806 ++.long 1338821763,1338821763
807 ++.long 1546925160,1546925160
808 ++.long 4104496465,4104496465
809 ++.long 887481809,887481809
810 ++.long 150073849,150073849
811 ++.long 2473685474,2473685474
812 ++.long 1943591083,1943591083
813 ++.long 1395732834,1395732834
814 ++.long 1058346282,1058346282
815 ++.long 201589768,201589768
816 ++.long 1388824469,1388824469
817 ++.long 1696801606,1696801606
818 ++.long 1589887901,1589887901
819 ++.long 672667696,672667696
820 ++.long 2711000631,2711000631
821 ++.long 251987210,251987210
822 ++.long 3046808111,3046808111
823 ++.long 151455502,151455502
824 ++.long 907153956,907153956
825 ++.long 2608889883,2608889883
826 ++.long 1038279391,1038279391
827 ++.long 652995533,652995533
828 ++.long 1764173646,1764173646
829 ++.long 3451040383,3451040383
830 ++.long 2675275242,2675275242
831 ++.long 453576978,453576978
832 ++.long 2659418909,2659418909
833 ++.long 1949051992,1949051992
834 ++.long 773462580,773462580
835 ++.long 756751158,756751158
836 ++.long 2993581788,2993581788
837 ++.long 3998898868,3998898868
838 ++.long 4221608027,4221608027
839 ++.long 4132590244,4132590244
840 ++.long 1295727478,1295727478
841 ++.long 1641469623,1641469623
842 ++.long 3467883389,3467883389
843 ++.long 2066295122,2066295122
844 ++.long 1055122397,1055122397
845 ++.long 1898917726,1898917726
846 ++.long 2542044179,2542044179
847 ++.long 4115878822,4115878822
848 ++.long 1758581177,1758581177
850 ++.long 753790401,753790401
851 ++.long 1612718144,1612718144
852 ++.long 536673507,536673507
853 ++.long 3367088505,3367088505
854 ++.long 3982187446,3982187446
855 ++.long 3194645204,3194645204
856 ++.long 1187761037,1187761037
857 ++.long 3653156455,3653156455
858 ++.long 1262041458,1262041458
859 ++.long 3729410708,3729410708
860 ++.long 3561770136,3561770136
861 ++.long 3898103984,3898103984
862 ++.long 1255133061,1255133061
863 ++.long 1808847035,1808847035
864 ++.long 720367557,720367557
865 ++.long 3853167183,3853167183
866 ++.long 385612781,385612781
867 ++.long 3309519750,3309519750
868 ++.long 3612167578,3612167578
869 ++.long 1429418854,1429418854
870 ++.long 2491778321,2491778321
871 ++.long 3477423498,3477423498
872 ++.long 284817897,284817897
873 ++.long 100794884,100794884
874 ++.long 2172616702,2172616702
875 ++.long 4031795360,4031795360
876 ++.long 1144798328,1144798328
877 ++.long 3131023141,3131023141
878 ++.long 3819481163,3819481163
879 ++.long 4082192802,4082192802
880 ++.long 4272137053,4272137053
881 ++.long 3225436288,3225436288
882 ++.long 2324664069,2324664069
883 ++.long 2912064063,2912064063
884 ++.long 3164445985,3164445985
885 ++.long 1211644016,1211644016
886 ++.long 83228145,83228145
887 ++.long 3753688163,3753688163
888 ++.long 3249976951,3249976951
889 ++.long 1977277103,1977277103
890 ++.long 1663115586,1663115586
891 ++.long 806359072,806359072
892 ++.long 452984805,452984805
893 ++.long 250868733,250868733
894 ++.long 1842533055,1842533055
895 ++.long 1288555905,1288555905
896 ++.long 336333848,336333848
897 ++.long 890442534,890442534
898 ++.long 804056259,804056259
899 ++.long 3781124030,3781124030
900 ++.long 2727843637,2727843637
901 ++.long 3427026056,3427026056
902 ++.long 957814574,957814574
903 ++.long 1472513171,1472513171
904 ++.long 4071073621,4071073621
905 ++.long 2189328124,2189328124
906 ++.long 1195195770,1195195770
907 ++.long 2892260552,2892260552
908 ++.long 3881655738,3881655738
909 ++.long 723065138,723065138
910 ++.long 2507371494,2507371494
911 ++.long 2690670784,2690670784
912 ++.long 2558624025,2558624025
913 ++.long 3511635870,3511635870
914 ++.long 2145180835,2145180835
915 ++.long 1713513028,1713513028
916 ++.long 2116692564,2116692564
917 ++.long 2878378043,2878378043
918 ++.long 2206763019,2206763019
919 ++.long 3393603212,3393603212
920 ++.long 703524551,703524551
921 ++.long 3552098411,3552098411
922 ++.long 1007948840,1007948840
923 ++.long 2044649127,2044649127
924 ++.long 3797835452,3797835452
925 ++.long 487262998,487262998
926 ++.long 1994120109,1994120109
927 ++.long 1004593371,1004593371
928 ++.long 1446130276,1446130276
929 ++.long 1312438900,1312438900
930 ++.long 503974420,503974420
931 ++.long 3679013266,3679013266
932 ++.long 168166924,168166924
933 ++.long 1814307912,1814307912
934 ++.long 3831258296,3831258296
935 ++.long 1573044895,1573044895
936 ++.long 1859376061,1859376061
937 ++.long 4021070915,4021070915
938 ++.long 2791465668,2791465668
939 ++.long 2828112185,2828112185
940 ++.long 2761266481,2761266481
941 ++.long 937747667,937747667
942 ++.long 2339994098,2339994098
943 ++.long 854058965,854058965
944 ++.long 1137232011,1137232011
945 ++.long 1496790894,1496790894
946 ++.long 3077402074,3077402074
947 ++.long 2358086913,2358086913
948 ++.long 1691735473,1691735473
949 ++.long 3528347292,3528347292
950 ++.long 3769215305,3769215305
951 ++.long 3027004632,3027004632
952 ++.long 4199962284,4199962284
953 ++.long 133494003,133494003
954 ++.long 636152527,636152527
955 ++.long 2942657994,2942657994
956 ++.long 2390391540,2390391540
957 ++.long 3920539207,3920539207
958 ++.long 403179536,403179536
959 ++.long 3585784431,3585784431
960 ++.long 2289596656,2289596656
961 ++.long 1864705354,1864705354
962 ++.long 1915629148,1915629148
963 ++.long 605822008,605822008
964 ++.long 4054230615,4054230615
965 ++.long 3350508659,3350508659
966 ++.long 1371981463,1371981463
967 ++.long 602466507,602466507
968 ++.long 2094914977,2094914977
969 ++.long 2624877800,2624877800
970 ++.long 555687742,555687742
971 ++.long 3712699286,3712699286
972 ++.long 3703422305,3703422305
973 ++.long 2257292045,2257292045
974 ++.long 2240449039,2240449039
975 ++.long 2423288032,2423288032
976 ++.long 1111375484,1111375484
977 ++.long 3300242801,3300242801
978 ++.long 2858837708,2858837708
979 ++.long 3628615824,3628615824
980 ++.long 84083462,84083462
981 ++.long 32962295,32962295
982 ++.long 302911004,302911004
983 ++.long 2741068226,2741068226
984 ++.long 1597322602,1597322602
985 ++.long 4183250862,4183250862
986 ++.long 3501832553,3501832553
987 ++.long 2441512471,2441512471
988 ++.long 1489093017,1489093017
989 ++.long 656219450,656219450
990 ++.long 3114180135,3114180135
991 ++.long 954327513,954327513
992 ++.long 335083755,335083755
993 ++.long 3013122091,3013122091
994 ++.long 856756514,856756514
995 ++.long 3144247762,3144247762
996 ++.long 1893325225,1893325225
997 ++.long 2307821063,2307821063
998 ++.long 2811532339,2811532339
999 ++.long 3063651117,3063651117
1000 ++.long 572399164,572399164
1001 ++.long 2458355477,2458355477
1002 ++.long 552200649,552200649
1003 ++.long 1238290055,1238290055
1004 ++.long 4283782570,4283782570
1005 ++.long 2015897680,2015897680
1006 ++.long 2061492133,2061492133
1007 ++.long 2408352771,2408352771
1008 ++.long 4171342169,4171342169
1009 ++.long 2156497161,2156497161
1010 ++.long 386731290,386731290
1011 ++.long 3669999461,3669999461
1012 ++.long 837215959,837215959
1013 ++.long 3326231172,3326231172
1014 ++.long 3093850320,3093850320
1015 ++.long 3275833730,3275833730
1016 ++.long 2962856233,2962856233
1017 ++.long 1999449434,1999449434
1018 ++.long 286199582,286199582
1019 ++.long 3417354363,3417354363
1020 ++.long 4233385128,4233385128
1021 ++.long 3602627437,3602627437
1022 ++.long 974525996,974525996
1023 ++.byte 99,124,119,123,242,107,111,197
1024 ++.byte 48,1,103,43,254,215,171,118
1025 ++.byte 202,130,201,125,250,89,71,240
1026 ++.byte 173,212,162,175,156,164,114,192
1027 ++.byte 183,253,147,38,54,63,247,204
1028 ++.byte 52,165,229,241,113,216,49,21
1029 ++.byte 4,199,35,195,24,150,5,154
1030 ++.byte 7,18,128,226,235,39,178,117
1031 ++.byte 9,131,44,26,27,110,90,160
1032 ++.byte 82,59,214,179,41,227,47,132
1033 ++.byte 83,209,0,237,32,252,177,91
1034 ++.byte 106,203,190,57,74,76,88,207
1035 ++.byte 208,239,170,251,67,77,51,133
1036 ++.byte 69,249,2,127,80,60,159,168
1037 ++.byte 81,163,64,143,146,157,56,245
1038 ++.byte 188,182,218,33,16,255,243,210
1039 ++.byte 205,12,19,236,95,151,68,23
1040 ++.byte 196,167,126,61,100,93,25,115
1041 ++.byte 96,129,79,220,34,42,144,136
1042 ++.byte 70,238,184,20,222,94,11,219
1043 ++.byte 224,50,58,10,73,6,36,92
1044 ++.byte 194,211,172,98,145,149,228,121
1045 ++.byte 231,200,55,109,141,213,78,169
1046 ++.byte 108,86,244,234,101,122,174,8
1047 ++.byte 186,120,37,46,28,166,180,198
1048 ++.byte 232,221,116,31,75,189,139,138
1049 ++.byte 112,62,181,102,72,3,246,14
1050 ++.byte 97,53,87,185,134,193,29,158
1051 ++.byte 225,248,152,17,105,217,142,148
1052 ++.byte 155,30,135,233,206,85,40,223
1053 ++.byte 140,161,137,13,191,230,66,104
1054 ++.byte 65,153,45,15,176,84,187,22
1055 ++.byte 99,124,119,123,242,107,111,197
1056 ++.byte 48,1,103,43,254,215,171,118
1057 ++.byte 202,130,201,125,250,89,71,240
1058 ++.byte 173,212,162,175,156,164,114,192
1059 ++.byte 183,253,147,38,54,63,247,204
1060 ++.byte 52,165,229,241,113,216,49,21
1061 ++.byte 4,199,35,195,24,150,5,154
1062 ++.byte 7,18,128,226,235,39,178,117
1063 ++.byte 9,131,44,26,27,110,90,160
1064 ++.byte 82,59,214,179,41,227,47,132
1065 ++.byte 83,209,0,237,32,252,177,91
1066 ++.byte 106,203,190,57,74,76,88,207
1067 ++.byte 208,239,170,251,67,77,51,133
1068 ++.byte 69,249,2,127,80,60,159,168
1069 ++.byte 81,163,64,143,146,157,56,245
1070 ++.byte 188,182,218,33,16,255,243,210
1071 ++.byte 205,12,19,236,95,151,68,23
1072 ++.byte 196,167,126,61,100,93,25,115
1073 ++.byte 96,129,79,220,34,42,144,136
1074 ++.byte 70,238,184,20,222,94,11,219
1075 ++.byte 224,50,58,10,73,6,36,92
1076 ++.byte 194,211,172,98,145,149,228,121
1077 ++.byte 231,200,55,109,141,213,78,169
1078 ++.byte 108,86,244,234,101,122,174,8
1079 ++.byte 186,120,37,46,28,166,180,198
1080 ++.byte 232,221,116,31,75,189,139,138
1081 ++.byte 112,62,181,102,72,3,246,14
1082 ++.byte 97,53,87,185,134,193,29,158
1083 ++.byte 225,248,152,17,105,217,142,148
1084 ++.byte 155,30,135,233,206,85,40,223
1085 ++.byte 140,161,137,13,191,230,66,104
1086 ++.byte 65,153,45,15,176,84,187,22
1087 ++.byte 99,124,119,123,242,107,111,197
1088 ++.byte 48,1,103,43,254,215,171,118
1089 ++.byte 202,130,201,125,250,89,71,240
1090 ++.byte 173,212,162,175,156,164,114,192
1091 ++.byte 183,253,147,38,54,63,247,204
1092 ++.byte 52,165,229,241,113,216,49,21
1093 ++.byte 4,199,35,195,24,150,5,154
1094 ++.byte 7,18,128,226,235,39,178,117
1095 ++.byte 9,131,44,26,27,110,90,160
1096 ++.byte 82,59,214,179,41,227,47,132
1097 ++.byte 83,209,0,237,32,252,177,91
1098 ++.byte 106,203,190,57,74,76,88,207
1099 ++.byte 208,239,170,251,67,77,51,133
1100 ++.byte 69,249,2,127,80,60,159,168
1101 ++.byte 81,163,64,143,146,157,56,245
1102 ++.byte 188,182,218,33,16,255,243,210
1103 ++.byte 205,12,19,236,95,151,68,23
1104 ++.byte 196,167,126,61,100,93,25,115
1105 ++.byte 96,129,79,220,34,42,144,136
1106 ++.byte 70,238,184,20,222,94,11,219
1107 ++.byte 224,50,58,10,73,6,36,92
1108 ++.byte 194,211,172,98,145,149,228,121
1109 ++.byte 231,200,55,109,141,213,78,169
1110 ++.byte 108,86,244,234,101,122,174,8
1111 ++.byte 186,120,37,46,28,166,180,198
1112 ++.byte 232,221,116,31,75,189,139,138
1113 ++.byte 112,62,181,102,72,3,246,14
1114 ++.byte 97,53,87,185,134,193,29,158
1115 ++.byte 225,248,152,17,105,217,142,148
1116 ++.byte 155,30,135,233,206,85,40,223
1117 ++.byte 140,161,137,13,191,230,66,104
1118 ++.byte 65,153,45,15,176,84,187,22
1119 ++.byte 99,124,119,123,242,107,111,197
1120 ++.byte 48,1,103,43,254,215,171,118
1121 ++.byte 202,130,201,125,250,89,71,240
1122 ++.byte 173,212,162,175,156,164,114,192
1123 ++.byte 183,253,147,38,54,63,247,204
1124 ++.byte 52,165,229,241,113,216,49,21
1125 ++.byte 4,199,35,195,24,150,5,154
1126 ++.byte 7,18,128,226,235,39,178,117
1127 ++.byte 9,131,44,26,27,110,90,160
1128 ++.byte 82,59,214,179,41,227,47,132
1129 ++.byte 83,209,0,237,32,252,177,91
1130 ++.byte 106,203,190,57,74,76,88,207
1131 ++.byte 208,239,170,251,67,77,51,133
1132 ++.byte 69,249,2,127,80,60,159,168
1133 ++.byte 81,163,64,143,146,157,56,245
1134 ++.byte 188,182,218,33,16,255,243,210
1135 ++.byte 205,12,19,236,95,151,68,23
1136 ++.byte 196,167,126,61,100,93,25,115
1137 ++.byte 96,129,79,220,34,42,144,136
1138 ++.byte 70,238,184,20,222,94,11,219
1139 ++.byte 224,50,58,10,73,6,36,92
1140 ++.byte 194,211,172,98,145,149,228,121
1141 ++.byte 231,200,55,109,141,213,78,169
1142 ++.byte 108,86,244,234,101,122,174,8
1143 ++.byte 186,120,37,46,28,166,180,198
1144 ++.byte 232,221,116,31,75,189,139,138
1145 ++.byte 112,62,181,102,72,3,246,14
1146 ++.byte 97,53,87,185,134,193,29,158
1147 ++.byte 225,248,152,17,105,217,142,148
1148 ++.byte 155,30,135,233,206,85,40,223
1149 ++.byte 140,161,137,13,191,230,66,104
1150 ++.byte 65,153,45,15,176,84,187,22
1152 ++.long 16,32,64,128
1155 ++.globl _AES_encrypt
1158 ++L_AES_encrypt_begin:
1163 ++ movl 20(%esp),%esi
1164 ++ movl 28(%esp),%edi
1168 ++ leal -127(%edi),%ebx
1174 ++ movl %eax,28(%esp)
1175 ++ call L004pic_point
1178 ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L004pic_point(%ebp),%eax
1179 ++ leal LAES_Te-L004pic_point(%ebp),%ebp
1180 ++ leal 764(%esp),%ebx
1183 ++ leal 2176(%ebp,%ebx,1),%ebp
1187 ++ movq 8(%esi),%mm4
1188 ++ call __sse_AES_encrypt_compact
1189 ++ movl 28(%esp),%esp
1190 ++ movl 24(%esp),%esi
1192 ++ movq %mm4,8(%esi)
1201 ++ movl %ebp,24(%esp)
1203 ++ movl 4(%esi),%ebx
1204 ++ movl 8(%esi),%ecx
1205 ++ movl 12(%esi),%edx
1206 ++ call __x86_AES_encrypt_compact
1207 ++ movl 28(%esp),%esp
1208 ++ movl 24(%esp),%esi
1210 ++ movl %ebx,4(%esi)
1211 ++ movl %ecx,8(%esi)
1212 ++ movl %edx,12(%esi)
1219 ++__x86_AES_decrypt_compact:
1220 ++ movl %edi,20(%esp)
1222 ++ xorl 4(%edi),%ebx
1223 ++ xorl 8(%edi),%ecx
1224 ++ xorl 12(%edi),%edx
1225 ++ movl 240(%edi),%esi
1226 ++ leal -2(%esi,%esi,1),%esi
1227 ++ leal (%edi,%esi,8),%esi
1228 ++ movl %esi,24(%esp)
1229 ++ movl -128(%ebp),%edi
1230 ++ movl -96(%ebp),%esi
1231 ++ movl -64(%ebp),%edi
1232 ++ movl -32(%ebp),%esi
1234 ++ movl 32(%ebp),%esi
1235 ++ movl 64(%ebp),%edi
1236 ++ movl 96(%ebp),%esi
1241 ++ movzbl -128(%ebp,%esi,1),%esi
1243 ++ movzbl -128(%ebp,%edi,1),%edi
1249 ++ movzbl -128(%ebp,%edi,1),%edi
1254 ++ movzbl -128(%ebp,%edi,1),%edi
1257 ++ movl %esi,4(%esp)
1260 ++ movzbl -128(%ebp,%esi,1),%esi
1262 ++ movzbl -128(%ebp,%edi,1),%edi
1268 ++ movzbl -128(%ebp,%edi,1),%edi
1273 ++ movzbl -128(%ebp,%edi,1),%edi
1276 ++ movl %esi,8(%esp)
1279 ++ movzbl -128(%ebp,%esi,1),%esi
1281 ++ movzbl -128(%ebp,%edi,1),%edi
1287 ++ movzbl -128(%ebp,%edi,1),%edi
1292 ++ movzbl -128(%ebp,%edi,1),%edi
1296 ++ movzbl -128(%ebp,%edx,1),%edx
1298 ++ movzbl -128(%ebp,%ecx,1),%ecx
1304 ++ movzbl -128(%ebp,%ebx,1),%ebx
1308 ++ movzbl -128(%ebp,%eax,1),%eax
1312 ++ andl $2155905152,%esi
1315 ++ leal (%ecx,%ecx,1),%eax
1317 ++ andl $4278124286,%eax
1318 ++ andl $454761243,%esi
1321 ++ andl $2155905152,%esi
1324 ++ leal (%eax,%eax,1),%ebx
1326 ++ andl $4278124286,%ebx
1327 ++ andl $454761243,%esi
1331 ++ andl $2155905152,%esi
1334 ++ leal (%ebx,%ebx,1),%ebp
1336 ++ andl $4278124286,%ebp
1337 ++ andl $454761243,%esi
1351 ++ movl 4(%esp),%eax
1353 ++ movl %ecx,12(%esp)
1355 ++ andl $2155905152,%esi
1358 ++ leal (%edx,%edx,1),%ebx
1360 ++ andl $4278124286,%ebx
1361 ++ andl $454761243,%esi
1364 ++ andl $2155905152,%esi
1367 ++ leal (%ebx,%ebx,1),%ecx
1369 ++ andl $4278124286,%ecx
1370 ++ andl $454761243,%esi
1374 ++ andl $2155905152,%esi
1377 ++ leal (%ecx,%ecx,1),%ebp
1379 ++ andl $4278124286,%ebp
1380 ++ andl $454761243,%esi
1394 ++ movl 8(%esp),%ebx
1396 ++ movl %edx,16(%esp)
1398 ++ andl $2155905152,%esi
1401 ++ leal (%eax,%eax,1),%ecx
1403 ++ andl $4278124286,%ecx
1404 ++ andl $454761243,%esi
1407 ++ andl $2155905152,%esi
1410 ++ leal (%ecx,%ecx,1),%edx
1412 ++ andl $4278124286,%edx
1413 ++ andl $454761243,%esi
1417 ++ andl $2155905152,%esi
1420 ++ leal (%edx,%edx,1),%ebp
1422 ++ andl $4278124286,%ebp
1423 ++ andl $454761243,%esi
1439 ++ andl $2155905152,%esi
1442 ++ leal (%ebx,%ebx,1),%ecx
1444 ++ andl $4278124286,%ecx
1445 ++ andl $454761243,%esi
1448 ++ andl $2155905152,%esi
1451 ++ leal (%ecx,%ecx,1),%edx
1453 ++ andl $4278124286,%edx
1454 ++ andl $454761243,%esi
1458 ++ andl $2155905152,%esi
1461 ++ leal (%edx,%edx,1),%ebp
1463 ++ andl $4278124286,%ebp
1464 ++ andl $454761243,%esi
1478 ++ movl 12(%esp),%ecx
1480 ++ movl 16(%esp),%edx
1481 ++ movl 20(%esp),%edi
1482 ++ movl 28(%esp),%ebp
1485 ++ xorl 4(%edi),%ebx
1486 ++ xorl 8(%edi),%ecx
1487 ++ xorl 12(%edi),%edx
1488 ++ cmpl 24(%esp),%edi
1489 ++ movl %edi,20(%esp)
1493 ++ movzbl -128(%ebp,%esi,1),%esi
1495 ++ movzbl -128(%ebp,%edi,1),%edi
1501 ++ movzbl -128(%ebp,%edi,1),%edi
1506 ++ movzbl -128(%ebp,%edi,1),%edi
1509 ++ movl %esi,4(%esp)
1512 ++ movzbl -128(%ebp,%esi,1),%esi
1514 ++ movzbl -128(%ebp,%edi,1),%edi
1520 ++ movzbl -128(%ebp,%edi,1),%edi
1525 ++ movzbl -128(%ebp,%edi,1),%edi
1528 ++ movl %esi,8(%esp)
1531 ++ movzbl -128(%ebp,%esi,1),%esi
1533 ++ movzbl -128(%ebp,%edi,1),%edi
1539 ++ movzbl -128(%ebp,%edi,1),%edi
1544 ++ movzbl -128(%ebp,%edi,1),%edi
1547 ++ movl 20(%esp),%edi
1549 ++ movzbl -128(%ebp,%edx,1),%edx
1551 ++ movzbl -128(%ebp,%ecx,1),%ecx
1557 ++ movzbl -128(%ebp,%ebx,1),%ebx
1560 ++ movl 8(%esp),%ebx
1562 ++ movzbl -128(%ebp,%eax,1),%eax
1565 ++ movl 4(%esp),%eax
1566 ++ xorl 16(%edi),%eax
1567 ++ xorl 20(%edi),%ebx
1568 ++ xorl 24(%edi),%ecx
1569 ++ xorl 28(%edi),%edx
1572 ++__sse_AES_decrypt_compact:
1574 ++ pxor 8(%edi),%mm4
1575 ++ movl 240(%edi),%esi
1576 ++ leal -2(%esi,%esi,1),%esi
1577 ++ leal (%edi,%esi,8),%esi
1578 ++ movl %esi,24(%esp)
1579 ++ movl $454761243,%eax
1580 ++ movl %eax,8(%esp)
1581 ++ movl %eax,12(%esp)
1582 ++ movl -128(%ebp),%eax
1583 ++ movl -96(%ebp),%ebx
1584 ++ movl -64(%ebp),%ecx
1585 ++ movl -32(%ebp),%edx
1587 ++ movl 32(%ebp),%ebx
1588 ++ movl 64(%ebp),%ecx
1589 ++ movl 96(%ebp),%edx
1592 ++ pshufw $12,%mm0,%mm1
1594 ++ pshufw $9,%mm4,%mm5
1596 ++ movzbl -128(%ebp,%esi,1),%ecx
1599 ++ movzbl -128(%ebp,%edx,1),%edx
1601 ++ pshufw $6,%mm0,%mm2
1603 ++ movzbl -128(%ebp,%esi,1),%esi
1608 ++ movzbl -128(%ebp,%esi,1),%esi
1612 ++ pshufw $3,%mm4,%mm6
1614 ++ movzbl -128(%ebp,%esi,1),%esi
1618 ++ movzbl -128(%ebp,%esi,1),%esi
1624 ++ movzbl -128(%ebp,%esi,1),%ecx
1628 ++ movzbl -128(%ebp,%esi,1),%esi
1631 ++ movzbl -128(%ebp,%esi,1),%esi
1634 ++ movzbl -128(%ebp,%esi,1),%esi
1639 ++ movzbl -128(%ebp,%esi,1),%edx
1643 ++ movzbl -128(%ebp,%esi,1),%esi
1647 ++ punpckldq %mm1,%mm0
1649 ++ movzbl -128(%ebp,%esi,1),%esi
1653 ++ movzbl -128(%ebp,%ebx,1),%ebx
1656 ++ movzbl -128(%ebp,%esi,1),%esi
1661 ++ movzbl -128(%ebp,%eax,1),%eax
1665 ++ punpckldq %mm5,%mm4
1667 ++ cmpl 24(%esp),%edi
1671 ++ pshufw $228,%mm0,%mm2
1672 ++ pshufw $228,%mm4,%mm6
1675 ++ pshufw $177,%mm0,%mm0
1676 ++ pshufw $177,%mm4,%mm4
1693 ++ movq 8(%esp),%mm3
1696 ++ pcmpgtb %mm1,%mm2
1697 ++ pcmpgtb %mm5,%mm6
1718 ++ movq 8(%esp),%mm2
1721 ++ pcmpgtb %mm1,%mm3
1722 ++ pcmpgtb %mm5,%mm7
1729 ++ pshufw $177,%mm1,%mm3
1730 ++ pshufw $177,%mm5,%mm7
1737 ++ pcmpgtb %mm1,%mm3
1738 ++ pcmpgtb %mm5,%mm7
1749 ++ pshufw $177,%mm1,%mm2
1750 ++ pshufw $177,%mm5,%mm6
1758 ++ movq 8(%edi),%mm6
1763 ++ movl -128(%ebp),%eax
1766 ++ movl -64(%ebp),%ebx
1772 ++ movl 64(%ebp),%edx
1781 ++ pxor 8(%edi),%mm4
1784 ++__x86_AES_decrypt:
1785 ++ movl %edi,20(%esp)
1787 ++ xorl 4(%edi),%ebx
1788 ++ xorl 8(%edi),%ecx
1789 ++ xorl 12(%edi),%edx
1790 ++ movl 240(%edi),%esi
1791 ++ leal -2(%esi,%esi,1),%esi
1792 ++ leal (%edi,%esi,8),%esi
1793 ++ movl %esi,24(%esp)
1798 ++ movl (%ebp,%esi,8),%esi
1800 ++ xorl 3(%ebp,%edi,8),%esi
1804 ++ xorl 2(%ebp,%edi,8),%esi
1807 ++ xorl 1(%ebp,%edi,8),%esi
1808 ++ movl %esi,4(%esp)
1811 ++ movl (%ebp,%esi,8),%esi
1813 ++ xorl 3(%ebp,%edi,8),%esi
1817 ++ xorl 2(%ebp,%edi,8),%esi
1820 ++ xorl 1(%ebp,%edi,8),%esi
1821 ++ movl %esi,8(%esp)
1824 ++ movl (%ebp,%esi,8),%esi
1826 ++ xorl 3(%ebp,%edi,8),%esi
1830 ++ xorl 2(%ebp,%edi,8),%esi
1833 ++ xorl 1(%ebp,%edi,8),%esi
1834 ++ movl 20(%esp),%edi
1836 ++ movl (%ebp,%edx,8),%edx
1838 ++ xorl 3(%ebp,%ecx,8),%edx
1842 ++ xorl 2(%ebp,%ebx,8),%edx
1843 ++ movl 8(%esp),%ebx
1845 ++ xorl 1(%ebp,%eax,8),%edx
1846 ++ movl 4(%esp),%eax
1849 ++ xorl 4(%edi),%ebx
1850 ++ xorl 8(%edi),%ecx
1851 ++ xorl 12(%edi),%edx
1852 ++ cmpl 24(%esp),%edi
1853 ++ movl %edi,20(%esp)
1855 ++ leal 2176(%ebp),%ebp
1856 ++ movl -128(%ebp),%edi
1857 ++ movl -96(%ebp),%esi
1858 ++ movl -64(%ebp),%edi
1859 ++ movl -32(%ebp),%esi
1861 ++ movl 32(%ebp),%esi
1862 ++ movl 64(%ebp),%edi
1863 ++ movl 96(%ebp),%esi
1864 ++ leal -128(%ebp),%ebp
1867 ++ movzbl (%ebp,%esi,1),%esi
1869 ++ movzbl (%ebp,%edi,1),%edi
1875 ++ movzbl (%ebp,%edi,1),%edi
1880 ++ movzbl (%ebp,%edi,1),%edi
1883 ++ movl %esi,4(%esp)
1886 ++ movzbl (%ebp,%esi,1),%esi
1888 ++ movzbl (%ebp,%edi,1),%edi
1894 ++ movzbl (%ebp,%edi,1),%edi
1899 ++ movzbl (%ebp,%edi,1),%edi
1902 ++ movl %esi,8(%esp)
1905 ++ movzbl (%ebp,%esi,1),%esi
1907 ++ movzbl (%ebp,%edi,1),%edi
1913 ++ movzbl (%ebp,%edi,1),%edi
1918 ++ movzbl (%ebp,%edi,1),%edi
1921 ++ movl 20(%esp),%edi
1923 ++ movzbl (%ebp,%edx,1),%edx
1925 ++ movzbl (%ebp,%ecx,1),%ecx
1931 ++ movzbl (%ebp,%ebx,1),%ebx
1934 ++ movl 8(%esp),%ebx
1936 ++ movzbl (%ebp,%eax,1),%eax
1939 ++ movl 4(%esp),%eax
1940 ++ leal -2048(%ebp),%ebp
1943 ++ xorl 4(%edi),%ebx
1944 ++ xorl 8(%edi),%ecx
1945 ++ xorl 12(%edi),%edx
1949 ++.long 1353184337,1353184337
1950 ++.long 1399144830,1399144830
1951 ++.long 3282310938,3282310938
1952 ++.long 2522752826,2522752826
1953 ++.long 3412831035,3412831035
1954 ++.long 4047871263,4047871263
1955 ++.long 2874735276,2874735276
1956 ++.long 2466505547,2466505547
1957 ++.long 1442459680,1442459680
1958 ++.long 4134368941,4134368941
1959 ++.long 2440481928,2440481928
1960 ++.long 625738485,625738485
1961 ++.long 4242007375,4242007375
1962 ++.long 3620416197,3620416197
1963 ++.long 2151953702,2151953702
1964 ++.long 2409849525,2409849525
1965 ++.long 1230680542,1230680542
1966 ++.long 1729870373,1729870373
1967 ++.long 2551114309,2551114309
1968 ++.long 3787521629,3787521629
1969 ++.long 41234371,41234371
1970 ++.long 317738113,317738113
1971 ++.long 2744600205,2744600205
1972 ++.long 3338261355,3338261355
1973 ++.long 3881799427,3881799427
1974 ++.long 2510066197,2510066197
1975 ++.long 3950669247,3950669247
1976 ++.long 3663286933,3663286933
1977 ++.long 763608788,763608788
1978 ++.long 3542185048,3542185048
1979 ++.long 694804553,694804553
1980 ++.long 1154009486,1154009486
1981 ++.long 1787413109,1787413109
1982 ++.long 2021232372,2021232372
1983 ++.long 1799248025,1799248025
1984 ++.long 3715217703,3715217703
1985 ++.long 3058688446,3058688446
1986 ++.long 397248752,397248752
1987 ++.long 1722556617,1722556617
1988 ++.long 3023752829,3023752829
1989 ++.long 407560035,407560035
1990 ++.long 2184256229,2184256229
1991 ++.long 1613975959,1613975959
1992 ++.long 1165972322,1165972322
1993 ++.long 3765920945,3765920945
1994 ++.long 2226023355,2226023355
1995 ++.long 480281086,480281086
1996 ++.long 2485848313,2485848313
1997 ++.long 1483229296,1483229296
1998 ++.long 436028815,436028815
1999 ++.long 2272059028,2272059028
2000 ++.long 3086515026,3086515026
2001 ++.long 601060267,601060267
2002 ++.long 3791801202,3791801202
2003 ++.long 1468997603,1468997603
2004 ++.long 715871590,715871590
2005 ++.long 120122290,120122290
2006 ++.long 63092015,63092015
2007 ++.long 2591802758,2591802758
2008 ++.long 2768779219,2768779219
2009 ++.long 4068943920,4068943920
2010 ++.long 2997206819,2997206819
2011 ++.long 3127509762,3127509762
2012 ++.long 1552029421,1552029421
2013 ++.long 723308426,723308426
2014 ++.long 2461301159,2461301159
2015 ++.long 4042393587,4042393587
2016 ++.long 2715969870,2715969870
2017 ++.long 3455375973,3455375973
2018 ++.long 3586000134,3586000134
2019 ++.long 526529745,526529745
2020 ++.long 2331944644,2331944644
2021 ++.long 2639474228,2639474228
2022 ++.long 2689987490,2689987490
2023 ++.long 853641733,853641733
2024 ++.long 1978398372,1978398372
2025 ++.long 971801355,971801355
2026 ++.long 2867814464,2867814464
2027 ++.long 111112542,111112542
2028 ++.long 1360031421,1360031421
2029 ++.long 4186579262,4186579262
2030 ++.long 1023860118,1023860118
2031 ++.long 2919579357,2919579357
2032 ++.long 1186850381,1186850381
2033 ++.long 3045938321,3045938321
2034 ++.long 90031217,90031217
2035 ++.long 1876166148,1876166148
2036 ++.long 4279586912,4279586912
2037 ++.long 620468249,620468249
2038 ++.long 2548678102,2548678102
2039 ++.long 3426959497,3426959497
2040 ++.long 2006899047,2006899047
2041 ++.long 3175278768,3175278768
2042 ++.long 2290845959,2290845959
2043 ++.long 945494503,945494503
2044 ++.long 3689859193,3689859193
2045 ++.long 1191869601,1191869601
2046 ++.long 3910091388,3910091388
2047 ++.long 3374220536,3374220536
2049 ++.long 2206629897,2206629897
2050 ++.long 1223502642,1223502642
2051 ++.long 2893025566,2893025566
2052 ++.long 1316117100,1316117100
2053 ++.long 4227796733,4227796733
2054 ++.long 1446544655,1446544655
2055 ++.long 517320253,517320253
2056 ++.long 658058550,658058550
2057 ++.long 1691946762,1691946762
2058 ++.long 564550760,564550760
2059 ++.long 3511966619,3511966619
2060 ++.long 976107044,976107044
2061 ++.long 2976320012,2976320012
2062 ++.long 266819475,266819475
2063 ++.long 3533106868,3533106868
2064 ++.long 2660342555,2660342555
2065 ++.long 1338359936,1338359936
2066 ++.long 2720062561,2720062561
2067 ++.long 1766553434,1766553434
2068 ++.long 370807324,370807324
2069 ++.long 179999714,179999714
2070 ++.long 3844776128,3844776128
2071 ++.long 1138762300,1138762300
2072 ++.long 488053522,488053522
2073 ++.long 185403662,185403662
2074 ++.long 2915535858,2915535858
2075 ++.long 3114841645,3114841645
2076 ++.long 3366526484,3366526484
2077 ++.long 2233069911,2233069911
2078 ++.long 1275557295,1275557295
2079 ++.long 3151862254,3151862254
2080 ++.long 4250959779,4250959779
2081 ++.long 2670068215,2670068215
2082 ++.long 3170202204,3170202204
2083 ++.long 3309004356,3309004356
2084 ++.long 880737115,880737115
2085 ++.long 1982415755,1982415755
2086 ++.long 3703972811,3703972811
2087 ++.long 1761406390,1761406390
2088 ++.long 1676797112,1676797112
2089 ++.long 3403428311,3403428311
2090 ++.long 277177154,277177154
2091 ++.long 1076008723,1076008723
2092 ++.long 538035844,538035844
2093 ++.long 2099530373,2099530373
2094 ++.long 4164795346,4164795346
2095 ++.long 288553390,288553390
2096 ++.long 1839278535,1839278535
2097 ++.long 1261411869,1261411869
2098 ++.long 4080055004,4080055004
2099 ++.long 3964831245,3964831245
2100 ++.long 3504587127,3504587127
2101 ++.long 1813426987,1813426987
2102 ++.long 2579067049,2579067049
2103 ++.long 4199060497,4199060497
2104 ++.long 577038663,577038663
2105 ++.long 3297574056,3297574056
2106 ++.long 440397984,440397984
2107 ++.long 3626794326,3626794326
2108 ++.long 4019204898,4019204898
2109 ++.long 3343796615,3343796615
2110 ++.long 3251714265,3251714265
2111 ++.long 4272081548,4272081548
2112 ++.long 906744984,906744984
2113 ++.long 3481400742,3481400742
2114 ++.long 685669029,685669029
2115 ++.long 646887386,646887386
2116 ++.long 2764025151,2764025151
2117 ++.long 3835509292,3835509292
2118 ++.long 227702864,227702864
2119 ++.long 2613862250,2613862250
2120 ++.long 1648787028,1648787028
2121 ++.long 3256061430,3256061430
2122 ++.long 3904428176,3904428176
2123 ++.long 1593260334,1593260334
2124 ++.long 4121936770,4121936770
2125 ++.long 3196083615,3196083615
2126 ++.long 2090061929,2090061929
2127 ++.long 2838353263,2838353263
2128 ++.long 3004310991,3004310991
2129 ++.long 999926984,999926984
2130 ++.long 2809993232,2809993232
2131 ++.long 1852021992,1852021992
2132 ++.long 2075868123,2075868123
2133 ++.long 158869197,158869197
2134 ++.long 4095236462,4095236462
2135 ++.long 28809964,28809964
2136 ++.long 2828685187,2828685187
2137 ++.long 1701746150,1701746150
2138 ++.long 2129067946,2129067946
2139 ++.long 147831841,147831841
2140 ++.long 3873969647,3873969647
2141 ++.long 3650873274,3650873274
2142 ++.long 3459673930,3459673930
2143 ++.long 3557400554,3557400554
2144 ++.long 3598495785,3598495785
2145 ++.long 2947720241,2947720241
2146 ++.long 824393514,824393514
2147 ++.long 815048134,815048134
2148 ++.long 3227951669,3227951669
2149 ++.long 935087732,935087732
2150 ++.long 2798289660,2798289660
2151 ++.long 2966458592,2966458592
2152 ++.long 366520115,366520115
2153 ++.long 1251476721,1251476721
2154 ++.long 4158319681,4158319681
2155 ++.long 240176511,240176511
2156 ++.long 804688151,804688151
2157 ++.long 2379631990,2379631990
2158 ++.long 1303441219,1303441219
2159 ++.long 1414376140,1414376140
2160 ++.long 3741619940,3741619940
2161 ++.long 3820343710,3820343710
2162 ++.long 461924940,461924940
2163 ++.long 3089050817,3089050817
2164 ++.long 2136040774,2136040774
2165 ++.long 82468509,82468509
2166 ++.long 1563790337,1563790337
2167 ++.long 1937016826,1937016826
2168 ++.long 776014843,776014843
2169 ++.long 1511876531,1511876531
2170 ++.long 1389550482,1389550482
2171 ++.long 861278441,861278441
2172 ++.long 323475053,323475053
2173 ++.long 2355222426,2355222426
2174 ++.long 2047648055,2047648055
2175 ++.long 2383738969,2383738969
2176 ++.long 2302415851,2302415851
2177 ++.long 3995576782,3995576782
2178 ++.long 902390199,902390199
2179 ++.long 3991215329,3991215329
2180 ++.long 1018251130,1018251130
2181 ++.long 1507840668,1507840668
2182 ++.long 1064563285,1064563285
2183 ++.long 2043548696,2043548696
2184 ++.long 3208103795,3208103795
2185 ++.long 3939366739,3939366739
2186 ++.long 1537932639,1537932639
2187 ++.long 342834655,342834655
2188 ++.long 2262516856,2262516856
2189 ++.long 2180231114,2180231114
2190 ++.long 1053059257,1053059257
2191 ++.long 741614648,741614648
2192 ++.long 1598071746,1598071746
2193 ++.long 1925389590,1925389590
2194 ++.long 203809468,203809468
2195 ++.long 2336832552,2336832552
2196 ++.long 1100287487,1100287487
2197 ++.long 1895934009,1895934009
2198 ++.long 3736275976,3736275976
2199 ++.long 2632234200,2632234200
2200 ++.long 2428589668,2428589668
2201 ++.long 1636092795,1636092795
2202 ++.long 1890988757,1890988757
2203 ++.long 1952214088,1952214088
2204 ++.long 1113045200,1113045200
2205 ++.byte 82,9,106,213,48,54,165,56
2206 ++.byte 191,64,163,158,129,243,215,251
2207 ++.byte 124,227,57,130,155,47,255,135
2208 ++.byte 52,142,67,68,196,222,233,203
2209 ++.byte 84,123,148,50,166,194,35,61
2210 ++.byte 238,76,149,11,66,250,195,78
2211 ++.byte 8,46,161,102,40,217,36,178
2212 ++.byte 118,91,162,73,109,139,209,37
2213 ++.byte 114,248,246,100,134,104,152,22
2214 ++.byte 212,164,92,204,93,101,182,146
2215 ++.byte 108,112,72,80,253,237,185,218
2216 ++.byte 94,21,70,87,167,141,157,132
2217 ++.byte 144,216,171,0,140,188,211,10
2218 ++.byte 247,228,88,5,184,179,69,6
2219 ++.byte 208,44,30,143,202,63,15,2
2220 ++.byte 193,175,189,3,1,19,138,107
2221 ++.byte 58,145,17,65,79,103,220,234
2222 ++.byte 151,242,207,206,240,180,230,115
2223 ++.byte 150,172,116,34,231,173,53,133
2224 ++.byte 226,249,55,232,28,117,223,110
2225 ++.byte 71,241,26,113,29,41,197,137
2226 ++.byte 111,183,98,14,170,24,190,27
2227 ++.byte 252,86,62,75,198,210,121,32
2228 ++.byte 154,219,192,254,120,205,90,244
2229 ++.byte 31,221,168,51,136,7,199,49
2230 ++.byte 177,18,16,89,39,128,236,95
2231 ++.byte 96,81,127,169,25,181,74,13
2232 ++.byte 45,229,122,159,147,201,156,239
2233 ++.byte 160,224,59,77,174,42,245,176
2234 ++.byte 200,235,187,60,131,83,153,97
2235 ++.byte 23,43,4,126,186,119,214,38
2236 ++.byte 225,105,20,99,85,33,12,125
2237 ++.byte 82,9,106,213,48,54,165,56
2238 ++.byte 191,64,163,158,129,243,215,251
2239 ++.byte 124,227,57,130,155,47,255,135
2240 ++.byte 52,142,67,68,196,222,233,203
2241 ++.byte 84,123,148,50,166,194,35,61
2242 ++.byte 238,76,149,11,66,250,195,78
2243 ++.byte 8,46,161,102,40,217,36,178
2244 ++.byte 118,91,162,73,109,139,209,37
2245 ++.byte 114,248,246,100,134,104,152,22
2246 ++.byte 212,164,92,204,93,101,182,146
2247 ++.byte 108,112,72,80,253,237,185,218
2248 ++.byte 94,21,70,87,167,141,157,132
2249 ++.byte 144,216,171,0,140,188,211,10
2250 ++.byte 247,228,88,5,184,179,69,6
2251 ++.byte 208,44,30,143,202,63,15,2
2252 ++.byte 193,175,189,3,1,19,138,107
2253 ++.byte 58,145,17,65,79,103,220,234
2254 ++.byte 151,242,207,206,240,180,230,115
2255 ++.byte 150,172,116,34,231,173,53,133
2256 ++.byte 226,249,55,232,28,117,223,110
2257 ++.byte 71,241,26,113,29,41,197,137
2258 ++.byte 111,183,98,14,170,24,190,27
2259 ++.byte 252,86,62,75,198,210,121,32
2260 ++.byte 154,219,192,254,120,205,90,244
2261 ++.byte 31,221,168,51,136,7,199,49
2262 ++.byte 177,18,16,89,39,128,236,95
2263 ++.byte 96,81,127,169,25,181,74,13
2264 ++.byte 45,229,122,159,147,201,156,239
2265 ++.byte 160,224,59,77,174,42,245,176
2266 ++.byte 200,235,187,60,131,83,153,97
2267 ++.byte 23,43,4,126,186,119,214,38
2268 ++.byte 225,105,20,99,85,33,12,125
2269 ++.byte 82,9,106,213,48,54,165,56
2270 ++.byte 191,64,163,158,129,243,215,251
2271 ++.byte 124,227,57,130,155,47,255,135
2272 ++.byte 52,142,67,68,196,222,233,203
2273 ++.byte 84,123,148,50,166,194,35,61
2274 ++.byte 238,76,149,11,66,250,195,78
2275 ++.byte 8,46,161,102,40,217,36,178
2276 ++.byte 118,91,162,73,109,139,209,37
2277 ++.byte 114,248,246,100,134,104,152,22
2278 ++.byte 212,164,92,204,93,101,182,146
2279 ++.byte 108,112,72,80,253,237,185,218
2280 ++.byte 94,21,70,87,167,141,157,132
2281 ++.byte 144,216,171,0,140,188,211,10
2282 ++.byte 247,228,88,5,184,179,69,6
2283 ++.byte 208,44,30,143,202,63,15,2
2284 ++.byte 193,175,189,3,1,19,138,107
2285 ++.byte 58,145,17,65,79,103,220,234
2286 ++.byte 151,242,207,206,240,180,230,115
2287 ++.byte 150,172,116,34,231,173,53,133
2288 ++.byte 226,249,55,232,28,117,223,110
2289 ++.byte 71,241,26,113,29,41,197,137
2290 ++.byte 111,183,98,14,170,24,190,27
2291 ++.byte 252,86,62,75,198,210,121,32
2292 ++.byte 154,219,192,254,120,205,90,244
2293 ++.byte 31,221,168,51,136,7,199,49
2294 ++.byte 177,18,16,89,39,128,236,95
2295 ++.byte 96,81,127,169,25,181,74,13
2296 ++.byte 45,229,122,159,147,201,156,239
2297 ++.byte 160,224,59,77,174,42,245,176
2298 ++.byte 200,235,187,60,131,83,153,97
2299 ++.byte 23,43,4,126,186,119,214,38
2300 ++.byte 225,105,20,99,85,33,12,125
2301 ++.byte 82,9,106,213,48,54,165,56
2302 ++.byte 191,64,163,158,129,243,215,251
2303 ++.byte 124,227,57,130,155,47,255,135
2304 ++.byte 52,142,67,68,196,222,233,203
2305 ++.byte 84,123,148,50,166,194,35,61
2306 ++.byte 238,76,149,11,66,250,195,78
2307 ++.byte 8,46,161,102,40,217,36,178
2308 ++.byte 118,91,162,73,109,139,209,37
2309 ++.byte 114,248,246,100,134,104,152,22
2310 ++.byte 212,164,92,204,93,101,182,146
2311 ++.byte 108,112,72,80,253,237,185,218
2312 ++.byte 94,21,70,87,167,141,157,132
2313 ++.byte 144,216,171,0,140,188,211,10
2314 ++.byte 247,228,88,5,184,179,69,6
2315 ++.byte 208,44,30,143,202,63,15,2
2316 ++.byte 193,175,189,3,1,19,138,107
2317 ++.byte 58,145,17,65,79,103,220,234
2318 ++.byte 151,242,207,206,240,180,230,115
2319 ++.byte 150,172,116,34,231,173,53,133
2320 ++.byte 226,249,55,232,28,117,223,110
2321 ++.byte 71,241,26,113,29,41,197,137
2322 ++.byte 111,183,98,14,170,24,190,27
2323 ++.byte 252,86,62,75,198,210,121,32
2324 ++.byte 154,219,192,254,120,205,90,244
2325 ++.byte 31,221,168,51,136,7,199,49
2326 ++.byte 177,18,16,89,39,128,236,95
2327 ++.byte 96,81,127,169,25,181,74,13
2328 ++.byte 45,229,122,159,147,201,156,239
2329 ++.byte 160,224,59,77,174,42,245,176
2330 ++.byte 200,235,187,60,131,83,153,97
2331 ++.byte 23,43,4,126,186,119,214,38
2332 ++.byte 225,105,20,99,85,33,12,125
2333 ++.globl _AES_decrypt
2336 ++L_AES_decrypt_begin:
2341 ++ movl 20(%esp),%esi
2342 ++ movl 28(%esp),%edi
2346 ++ leal -127(%edi),%ebx
2352 ++ movl %eax,28(%esp)
2353 ++ call L010pic_point
2356 ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010pic_point(%ebp),%eax
2357 ++ leal LAES_Td-L010pic_point(%ebp),%ebp
2358 ++ leal 764(%esp),%ebx
2361 ++ leal 2176(%ebp,%ebx,1),%ebp
2365 ++ movq 8(%esi),%mm4
2366 ++ call __sse_AES_decrypt_compact
2367 ++ movl 28(%esp),%esp
2368 ++ movl 24(%esp),%esi
2370 ++ movq %mm4,8(%esi)
2379 ++ movl %ebp,24(%esp)
2381 ++ movl 4(%esi),%ebx
2382 ++ movl 8(%esi),%ecx
2383 ++ movl 12(%esi),%edx
2384 ++ call __x86_AES_decrypt_compact
2385 ++ movl 28(%esp),%esp
2386 ++ movl 24(%esp),%esi
2388 ++ movl %ebx,4(%esi)
2389 ++ movl %ecx,8(%esi)
2390 ++ movl %edx,12(%esi)
2396 ++.globl _AES_cbc_encrypt
2399 ++L_AES_cbc_encrypt_begin:
2404 ++ movl 28(%esp),%ecx
2407 ++ call L013pic_point
2410 ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L013pic_point(%ebp),%eax
2412 ++ leal LAES_Te-L013pic_point(%ebp),%ebp
2413 ++ jne L014picked_te
2414 ++ leal LAES_Td-LAES_Te(%ebp),%ebp
2424 ++ leal -324(%esp),%esi
2427 ++ leal 2304(%ebp),%ebx
2433 ++ jb L016tbl_break_out
2438 ++L016tbl_break_out:
2445 ++ leal 24(%esp),%edx
2448 ++ movl %ebp,24(%esp)
2449 ++ movl %esi,28(%esp)
2451 ++ movl 4(%edx),%ebx
2452 ++ movl 12(%edx),%edi
2453 ++ movl 16(%edx),%esi
2454 ++ movl 20(%edx),%edx
2455 ++ movl %eax,32(%esp)
2456 ++ movl %ebx,36(%esp)
2457 ++ movl %ecx,40(%esp)
2458 ++ movl %edi,44(%esp)
2459 ++ movl %esi,48(%esp)
2460 ++ movl $0,316(%esp)
2466 ++ leal 76(%esp),%edi
2473 ++ movl %edi,44(%esp)
2480 ++ movl 32(%ebp),%ebx
2481 ++ movl 64(%ebp),%ecx
2482 ++ movl 96(%ebp),%esi
2483 ++ leal 128(%ebp),%ebp
2485 ++ jnz L020prefetch_tbl
2487 ++ movl 32(%esp),%esi
2488 ++ movl 48(%esp),%edi
2490 ++ je L021fast_decrypt
2492 ++ movl 4(%edi),%ebx
2494 ++L022fast_enc_loop:
2495 ++ movl 8(%edi),%ecx
2496 ++ movl 12(%edi),%edx
2498 ++ xorl 4(%esi),%ebx
2499 ++ xorl 8(%esi),%ecx
2500 ++ xorl 12(%esi),%edx
2501 ++ movl 44(%esp),%edi
2502 ++ call __x86_AES_encrypt
2503 ++ movl 32(%esp),%esi
2504 ++ movl 36(%esp),%edi
2506 ++ movl %ebx,4(%edi)
2507 ++ movl %ecx,8(%edi)
2508 ++ movl %edx,12(%edi)
2509 ++ leal 16(%esi),%esi
2510 ++ movl 40(%esp),%ecx
2511 ++ movl %esi,32(%esp)
2512 ++ leal 16(%edi),%edx
2513 ++ movl %edx,36(%esp)
2515 ++ movl %ecx,40(%esp)
2516 ++ jnz L022fast_enc_loop
2517 ++ movl 48(%esp),%esi
2518 ++ movl 8(%edi),%ecx
2519 ++ movl 12(%edi),%edx
2521 ++ movl %ebx,4(%esi)
2522 ++ movl %ecx,8(%esi)
2523 ++ movl %edx,12(%esi)
2524 ++ cmpl $0,316(%esp)
2525 ++ movl 44(%esp),%edi
2526 ++ je L023skip_ezero
2532 ++ movl 28(%esp),%esp
2543 ++ cmpl 36(%esp),%esi
2544 ++ je L024fast_dec_in_place
2545 ++ movl %edi,52(%esp)
2548 ++L025fast_dec_loop:
2550 ++ movl 4(%esi),%ebx
2551 ++ movl 8(%esi),%ecx
2552 ++ movl 12(%esi),%edx
2553 ++ movl 44(%esp),%edi
2554 ++ call __x86_AES_decrypt
2555 ++ movl 52(%esp),%edi
2556 ++ movl 40(%esp),%esi
2558 ++ xorl 4(%edi),%ebx
2559 ++ xorl 8(%edi),%ecx
2560 ++ xorl 12(%edi),%edx
2561 ++ movl 36(%esp),%edi
2562 ++ movl 32(%esp),%esi
2564 ++ movl %ebx,4(%edi)
2565 ++ movl %ecx,8(%edi)
2566 ++ movl %edx,12(%edi)
2567 ++ movl 40(%esp),%ecx
2568 ++ movl %esi,52(%esp)
2569 ++ leal 16(%esi),%esi
2570 ++ movl %esi,32(%esp)
2571 ++ leal 16(%edi),%edi
2572 ++ movl %edi,36(%esp)
2574 ++ movl %ecx,40(%esp)
2575 ++ jnz L025fast_dec_loop
2576 ++ movl 52(%esp),%edi
2577 ++ movl 48(%esp),%esi
2579 ++ movl 4(%edi),%ebx
2580 ++ movl 8(%edi),%ecx
2581 ++ movl 12(%edi),%edx
2583 ++ movl %ebx,4(%esi)
2584 ++ movl %ecx,8(%esi)
2585 ++ movl %edx,12(%esi)
2586 ++ jmp L026fast_dec_out
2588 ++L024fast_dec_in_place:
2589 ++L027fast_dec_in_place_loop:
2591 ++ movl 4(%esi),%ebx
2592 ++ movl 8(%esi),%ecx
2593 ++ movl 12(%esi),%edx
2594 ++ leal 60(%esp),%edi
2596 ++ movl %ebx,4(%edi)
2597 ++ movl %ecx,8(%edi)
2598 ++ movl %edx,12(%edi)
2599 ++ movl 44(%esp),%edi
2600 ++ call __x86_AES_decrypt
2601 ++ movl 48(%esp),%edi
2602 ++ movl 36(%esp),%esi
2604 ++ xorl 4(%edi),%ebx
2605 ++ xorl 8(%edi),%ecx
2606 ++ xorl 12(%edi),%edx
2608 ++ movl %ebx,4(%esi)
2609 ++ movl %ecx,8(%esi)
2610 ++ movl %edx,12(%esi)
2611 ++ leal 16(%esi),%esi
2612 ++ movl %esi,36(%esp)
2613 ++ leal 60(%esp),%esi
2615 ++ movl 4(%esi),%ebx
2616 ++ movl 8(%esi),%ecx
2617 ++ movl 12(%esi),%edx
2619 ++ movl %ebx,4(%edi)
2620 ++ movl %ecx,8(%edi)
2621 ++ movl %edx,12(%edi)
2622 ++ movl 32(%esp),%esi
2623 ++ movl 40(%esp),%ecx
2624 ++ leal 16(%esi),%esi
2625 ++ movl %esi,32(%esp)
2627 ++ movl %ecx,40(%esp)
2628 ++ jnz L027fast_dec_in_place_loop
2631 ++ cmpl $0,316(%esp)
2632 ++ movl 44(%esp),%edi
2633 ++ je L028skip_dzero
2639 ++ movl 28(%esp),%esp
2650 ++ movl 36(%esp),%edi
2651 ++ leal -80(%esp),%esi
2653 ++ leal -143(%edi),%ebx
2658 ++ leal 768(%esi),%ebx
2661 ++ leal 2176(%ebp,%ebx,1),%ebp
2662 ++ leal 24(%esp),%edx
2665 ++ movl %ebp,24(%esp)
2666 ++ movl %esi,28(%esp)
2667 ++ movl %eax,52(%esp)
2669 ++ movl 4(%edx),%ebx
2670 ++ movl 16(%edx),%esi
2671 ++ movl 20(%edx),%edx
2672 ++ movl %eax,32(%esp)
2673 ++ movl %ebx,36(%esp)
2674 ++ movl %ecx,40(%esp)
2675 ++ movl %edi,44(%esp)
2676 ++ movl %esi,48(%esp)
2680 ++ je L029slow_decrypt
2683 ++ jb L030slow_enc_tail
2685 ++ jnc L031slow_enc_x86
2687 ++ movq 8(%edi),%mm4
2689 ++L032slow_enc_loop_sse:
2691 ++ pxor 8(%esi),%mm4
2692 ++ movl 44(%esp),%edi
2693 ++ call __sse_AES_encrypt_compact
2694 ++ movl 32(%esp),%esi
2695 ++ movl 36(%esp),%edi
2696 ++ movl 40(%esp),%ecx
2698 ++ movq %mm4,8(%edi)
2699 ++ leal 16(%esi),%esi
2700 ++ movl %esi,32(%esp)
2701 ++ leal 16(%edi),%edx
2702 ++ movl %edx,36(%esp)
2705 ++ movl %ecx,40(%esp)
2706 ++ jae L032slow_enc_loop_sse
2708 ++ jnz L030slow_enc_tail
2709 ++ movl 48(%esp),%esi
2711 ++ movq %mm4,8(%esi)
2713 ++ movl 28(%esp),%esp
2724 ++ movl 4(%edi),%ebx
2726 ++L033slow_enc_loop_x86:
2727 ++ movl 8(%edi),%ecx
2728 ++ movl 12(%edi),%edx
2730 ++ xorl 4(%esi),%ebx
2731 ++ xorl 8(%esi),%ecx
2732 ++ xorl 12(%esi),%edx
2733 ++ movl 44(%esp),%edi
2734 ++ call __x86_AES_encrypt_compact
2735 ++ movl 32(%esp),%esi
2736 ++ movl 36(%esp),%edi
2738 ++ movl %ebx,4(%edi)
2739 ++ movl %ecx,8(%edi)
2740 ++ movl %edx,12(%edi)
2741 ++ movl 40(%esp),%ecx
2742 ++ leal 16(%esi),%esi
2743 ++ movl %esi,32(%esp)
2744 ++ leal 16(%edi),%edx
2745 ++ movl %edx,36(%esp)
2748 ++ movl %ecx,40(%esp)
2749 ++ jae L033slow_enc_loop_x86
2751 ++ jnz L030slow_enc_tail
2752 ++ movl 48(%esp),%esi
2753 ++ movl 8(%edi),%ecx
2754 ++ movl 12(%edi),%edx
2756 ++ movl %ebx,4(%esi)
2757 ++ movl %ecx,8(%esi)
2758 ++ movl %edx,12(%esi)
2759 ++ movl 28(%esp),%esp
2768 ++L030slow_enc_tail:
2774 ++ je L034enc_in_place
2777 ++ jmp L035enc_skip_in_place
2779 ++ leal (%edi,%ecx,1),%edi
2780 ++L035enc_skip_in_place:
2785 ++ movl 48(%esp),%edi
2788 ++ movl 4(%edi),%ebx
2789 ++ movl $16,40(%esp)
2790 ++ jmp L033slow_enc_loop_x86
2794 ++ jnc L036slow_dec_loop_x86
2796 ++L037slow_dec_loop_sse:
2798 ++ movq 8(%esi),%mm4
2799 ++ movl 44(%esp),%edi
2800 ++ call __sse_AES_decrypt_compact
2801 ++ movl 32(%esp),%esi
2802 ++ leal 60(%esp),%eax
2803 ++ movl 36(%esp),%ebx
2804 ++ movl 40(%esp),%ecx
2805 ++ movl 48(%esp),%edi
2807 ++ movq 8(%esi),%mm5
2809 ++ pxor 8(%edi),%mm4
2811 ++ movq %mm5,8(%edi)
2813 ++ jc L038slow_dec_partial_sse
2815 ++ movq %mm4,8(%ebx)
2816 ++ leal 16(%ebx),%ebx
2817 ++ movl %ebx,36(%esp)
2818 ++ leal 16(%esi),%esi
2819 ++ movl %esi,32(%esp)
2820 ++ movl %ecx,40(%esp)
2821 ++ jnz L037slow_dec_loop_sse
2823 ++ movl 28(%esp),%esp
2832 ++L038slow_dec_partial_sse:
2834 ++ movq %mm4,8(%eax)
2841 ++ movl 28(%esp),%esp
2850 ++L036slow_dec_loop_x86:
2852 ++ movl 4(%esi),%ebx
2853 ++ movl 8(%esi),%ecx
2854 ++ movl 12(%esi),%edx
2855 ++ leal 60(%esp),%edi
2857 ++ movl %ebx,4(%edi)
2858 ++ movl %ecx,8(%edi)
2859 ++ movl %edx,12(%edi)
2860 ++ movl 44(%esp),%edi
2861 ++ call __x86_AES_decrypt_compact
2862 ++ movl 48(%esp),%edi
2863 ++ movl 40(%esp),%esi
2865 ++ xorl 4(%edi),%ebx
2866 ++ xorl 8(%edi),%ecx
2867 ++ xorl 12(%edi),%edx
2869 ++ jc L039slow_dec_partial_x86
2870 ++ movl %esi,40(%esp)
2871 ++ movl 36(%esp),%esi
2873 ++ movl %ebx,4(%esi)
2874 ++ movl %ecx,8(%esi)
2875 ++ movl %edx,12(%esi)
2876 ++ leal 16(%esi),%esi
2877 ++ movl %esi,36(%esp)
2878 ++ leal 60(%esp),%esi
2880 ++ movl 4(%esi),%ebx
2881 ++ movl 8(%esi),%ecx
2882 ++ movl 12(%esi),%edx
2884 ++ movl %ebx,4(%edi)
2885 ++ movl %ecx,8(%edi)
2886 ++ movl %edx,12(%edi)
2887 ++ movl 32(%esp),%esi
2888 ++ leal 16(%esi),%esi
2889 ++ movl %esi,32(%esp)
2890 ++ jnz L036slow_dec_loop_x86
2891 ++ movl 28(%esp),%esp
2900 ++L039slow_dec_partial_x86:
2901 ++ leal 60(%esp),%esi
2903 ++ movl %ebx,4(%esi)
2904 ++ movl %ecx,8(%esi)
2905 ++ movl %edx,12(%esi)
2906 ++ movl 32(%esp),%esi
2908 ++ movl 4(%esi),%ebx
2909 ++ movl 8(%esi),%ecx
2910 ++ movl 12(%esi),%edx
2912 ++ movl %ebx,4(%edi)
2913 ++ movl %ecx,8(%edi)
2914 ++ movl %edx,12(%edi)
2915 ++ movl 40(%esp),%ecx
2916 ++ movl 36(%esp),%edi
2917 ++ leal 60(%esp),%esi
2920 ++ movl 28(%esp),%esp
2928 ++__x86_AES_set_encrypt_key:
2933 ++ movl 24(%esp),%esi
2934 ++ movl 32(%esp),%edi
2936 ++ jz L040badpointer
2938 ++ jz L040badpointer
2939 ++ call L041pic_point
2942 ++ leal LAES_Te-L041pic_point(%ebp),%ebp
2943 ++ leal 2176(%ebp),%ebp
2944 ++ movl -128(%ebp),%eax
2945 ++ movl -96(%ebp),%ebx
2946 ++ movl -64(%ebp),%ecx
2947 ++ movl -32(%ebp),%edx
2949 ++ movl 32(%ebp),%ebx
2950 ++ movl 64(%ebp),%ecx
2951 ++ movl 96(%ebp),%edx
2952 ++ movl 28(%esp),%ecx
2963 ++ movl 4(%esi),%ebx
2964 ++ movl 8(%esi),%ecx
2965 ++ movl 12(%esi),%edx
2967 ++ movl %ebx,4(%edi)
2968 ++ movl %ecx,8(%edi)
2969 ++ movl %edx,12(%edi)
2971 ++ jmp L04610shortcut
2975 ++ movl 12(%edi),%edx
2978 ++ movzbl -128(%ebp,%esi,1),%ebx
2982 ++ movzbl -128(%ebp,%esi,1),%ebx
2986 ++ movzbl -128(%ebp,%esi,1),%ebx
2990 ++ movzbl -128(%ebp,%esi,1),%ebx
2993 ++ xorl 896(%ebp,%ecx,4),%eax
2994 ++ movl %eax,16(%edi)
2995 ++ xorl 4(%edi),%eax
2996 ++ movl %eax,20(%edi)
2997 ++ xorl 8(%edi),%eax
2998 ++ movl %eax,24(%edi)
2999 ++ xorl 12(%edi),%eax
3000 ++ movl %eax,28(%edi)
3005 ++ movl $10,80(%edi)
3010 ++ movl 4(%esi),%ebx
3011 ++ movl 8(%esi),%ecx
3012 ++ movl 12(%esi),%edx
3014 ++ movl %ebx,4(%edi)
3015 ++ movl %ecx,8(%edi)
3016 ++ movl %edx,12(%edi)
3017 ++ movl 16(%esi),%ecx
3018 ++ movl 20(%esi),%edx
3019 ++ movl %ecx,16(%edi)
3020 ++ movl %edx,20(%edi)
3022 ++ jmp L04812shortcut
3026 ++ movl 20(%edi),%edx
3029 ++ movzbl -128(%ebp,%esi,1),%ebx
3033 ++ movzbl -128(%ebp,%esi,1),%ebx
3037 ++ movzbl -128(%ebp,%esi,1),%ebx
3041 ++ movzbl -128(%ebp,%esi,1),%ebx
3044 ++ xorl 896(%ebp,%ecx,4),%eax
3045 ++ movl %eax,24(%edi)
3046 ++ xorl 4(%edi),%eax
3047 ++ movl %eax,28(%edi)
3048 ++ xorl 8(%edi),%eax
3049 ++ movl %eax,32(%edi)
3050 ++ xorl 12(%edi),%eax
3051 ++ movl %eax,36(%edi)
3055 ++ xorl 16(%edi),%eax
3056 ++ movl %eax,40(%edi)
3057 ++ xorl 20(%edi),%eax
3058 ++ movl %eax,44(%edi)
3062 ++ movl $12,72(%edi)
3067 ++ movl 4(%esi),%ebx
3068 ++ movl 8(%esi),%ecx
3069 ++ movl 12(%esi),%edx
3071 ++ movl %ebx,4(%edi)
3072 ++ movl %ecx,8(%edi)
3073 ++ movl %edx,12(%edi)
3074 ++ movl 16(%esi),%eax
3075 ++ movl 20(%esi),%ebx
3076 ++ movl 24(%esi),%ecx
3077 ++ movl 28(%esi),%edx
3078 ++ movl %eax,16(%edi)
3079 ++ movl %ebx,20(%edi)
3080 ++ movl %ecx,24(%edi)
3081 ++ movl %edx,28(%edi)
3083 ++ jmp L05114shortcut
3086 ++ movl 28(%edi),%edx
3090 ++ movzbl -128(%ebp,%esi,1),%ebx
3094 ++ movzbl -128(%ebp,%esi,1),%ebx
3098 ++ movzbl -128(%ebp,%esi,1),%ebx
3102 ++ movzbl -128(%ebp,%esi,1),%ebx
3105 ++ xorl 896(%ebp,%ecx,4),%eax
3106 ++ movl %eax,32(%edi)
3107 ++ xorl 4(%edi),%eax
3108 ++ movl %eax,36(%edi)
3109 ++ xorl 8(%edi),%eax
3110 ++ movl %eax,40(%edi)
3111 ++ xorl 12(%edi),%eax
3112 ++ movl %eax,44(%edi)
3117 ++ movl 16(%edi),%eax
3119 ++ movzbl -128(%ebp,%esi,1),%ebx
3122 ++ movzbl -128(%ebp,%esi,1),%ebx
3127 ++ movzbl -128(%ebp,%esi,1),%ebx
3131 ++ movzbl -128(%ebp,%esi,1),%ebx
3134 ++ movl %eax,48(%edi)
3135 ++ xorl 20(%edi),%eax
3136 ++ movl %eax,52(%edi)
3137 ++ xorl 24(%edi),%eax
3138 ++ movl %eax,56(%edi)
3139 ++ xorl 28(%edi),%eax
3140 ++ movl %eax,60(%edi)
3144 ++ movl $14,48(%edi)
3155 ++.globl _private_AES_set_encrypt_key
3157 ++_private_AES_set_encrypt_key:
3158 ++L_private_AES_set_encrypt_key_begin:
3159 ++ call __x86_AES_set_encrypt_key
3161 ++.globl _private_AES_set_decrypt_key
3163 ++_private_AES_set_decrypt_key:
3164 ++L_private_AES_set_decrypt_key_begin:
3165 ++ call __x86_AES_set_encrypt_key
3174 ++ movl 28(%esp),%esi
3175 ++ movl 240(%esi),%ecx
3176 ++ leal (,%ecx,4),%ecx
3177 ++ leal (%esi,%ecx,4),%edi
3181 ++ movl 4(%esi),%ebx
3183 ++ movl 4(%edi),%edx
3185 ++ movl %ebx,4(%edi)
3187 ++ movl %edx,4(%esi)
3188 ++ movl 8(%esi),%eax
3189 ++ movl 12(%esi),%ebx
3190 ++ movl 8(%edi),%ecx
3191 ++ movl 12(%edi),%edx
3192 ++ movl %eax,8(%edi)
3193 ++ movl %ebx,12(%edi)
3194 ++ movl %ecx,8(%esi)
3195 ++ movl %edx,12(%esi)
3200 ++ movl 28(%esp),%edi
3201 ++ movl 240(%edi),%esi
3202 ++ leal -2(%esi,%esi,1),%esi
3203 ++ leal (%edi,%esi,8),%esi
3204 ++ movl %esi,28(%esp)
3205 ++ movl 16(%edi),%eax
3210 ++ andl $2155905152,%esi
3213 ++ leal (%eax,%eax,1),%ebx
3215 ++ andl $4278124286,%ebx
3216 ++ andl $454761243,%esi
3219 ++ andl $2155905152,%esi
3222 ++ leal (%ebx,%ebx,1),%ecx
3224 ++ andl $4278124286,%ecx
3225 ++ andl $454761243,%esi
3229 ++ andl $2155905152,%esi
3232 ++ leal (%ecx,%ecx,1),%edx
3235 ++ andl $4278124286,%edx
3236 ++ andl $454761243,%esi
3239 ++ movl 4(%edi),%ebp
3254 ++ andl $2155905152,%esi
3257 ++ leal (%ebx,%ebx,1),%ecx
3259 ++ andl $4278124286,%ecx
3260 ++ andl $454761243,%esi
3263 ++ andl $2155905152,%esi
3266 ++ leal (%ecx,%ecx,1),%edx
3268 ++ andl $4278124286,%edx
3269 ++ andl $454761243,%esi
3273 ++ andl $2155905152,%esi
3276 ++ leal (%edx,%edx,1),%eax
3279 ++ andl $4278124286,%eax
3280 ++ andl $454761243,%esi
3283 ++ movl 8(%edi),%ebp
3296 ++ movl %ebx,4(%edi)
3298 ++ andl $2155905152,%esi
3301 ++ leal (%ecx,%ecx,1),%edx
3303 ++ andl $4278124286,%edx
3304 ++ andl $454761243,%esi
3307 ++ andl $2155905152,%esi
3310 ++ leal (%edx,%edx,1),%eax
3312 ++ andl $4278124286,%eax
3313 ++ andl $454761243,%esi
3317 ++ andl $2155905152,%esi
3320 ++ leal (%eax,%eax,1),%ebx
3323 ++ andl $4278124286,%ebx
3324 ++ andl $454761243,%esi
3327 ++ movl 12(%edi),%ebp
3340 ++ movl %ecx,8(%edi)
3342 ++ andl $2155905152,%esi
3345 ++ leal (%edx,%edx,1),%eax
3347 ++ andl $4278124286,%eax
3348 ++ andl $454761243,%esi
3351 ++ andl $2155905152,%esi
3354 ++ leal (%eax,%eax,1),%ebx
3356 ++ andl $4278124286,%ebx
3357 ++ andl $454761243,%esi
3361 ++ andl $2155905152,%esi
3364 ++ leal (%ebx,%ebx,1),%ecx
3367 ++ andl $4278124286,%ecx
3368 ++ andl $454761243,%esi
3371 ++ movl 16(%edi),%ebp
3384 ++ movl %edx,12(%edi)
3385 ++ cmpl 28(%esp),%edi
3393 ++.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
3394 ++.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
3395 ++.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
3396 ++.section __IMPORT,__pointers,non_lazy_symbol_pointers
3397 ++L_OPENSSL_ia32cap_P$non_lazy_ptr:
3398 ++.indirect_symbol _OPENSSL_ia32cap_P
3400 ++.comm _OPENSSL_ia32cap_P,8,2
3401 +diff --git a/crypto/aes/asm/aesni-x86-mac.S b/crypto/aes/asm/aesni-x86-mac.S
3402 +new file mode 100644
3403 +index 0000000..2bf45c6
3405 ++++ b/crypto/aes/asm/aesni-x86-mac.S
3407 ++.file "crypto/aes/asm/aesni-x86.s"
3409 ++.globl _aesni_encrypt
3412 ++L_aesni_encrypt_begin:
3413 ++ movl 4(%esp),%eax
3414 ++ movl 12(%esp),%edx
3415 ++ movups (%eax),%xmm2
3416 ++ movl 240(%edx),%ecx
3417 ++ movl 8(%esp),%eax
3418 ++ movups (%edx),%xmm0
3419 ++ movups 16(%edx),%xmm1
3420 ++ leal 32(%edx),%edx
3421 ++ xorps %xmm0,%xmm2
3423 ++.byte 102,15,56,220,209
3425 ++ movups (%edx),%xmm1
3426 ++ leal 16(%edx),%edx
3427 ++ jnz L000enc1_loop_1
3428 ++.byte 102,15,56,221,209
3429 ++ movups %xmm2,(%eax)
3431 ++.globl _aesni_decrypt
3434 ++L_aesni_decrypt_begin:
3435 ++ movl 4(%esp),%eax
3436 ++ movl 12(%esp),%edx
3437 ++ movups (%eax),%xmm2
3438 ++ movl 240(%edx),%ecx
3439 ++ movl 8(%esp),%eax
3440 ++ movups (%edx),%xmm0
3441 ++ movups 16(%edx),%xmm1
3442 ++ leal 32(%edx),%edx
3443 ++ xorps %xmm0,%xmm2
3445 ++.byte 102,15,56,222,209
3447 ++ movups (%edx),%xmm1
3448 ++ leal 16(%edx),%edx
3449 ++ jnz L001dec1_loop_2
3450 ++.byte 102,15,56,223,209
3451 ++ movups %xmm2,(%eax)
3455 ++ movups (%edx),%xmm0
3457 ++ movups 16(%edx),%xmm1
3458 ++ leal 32(%edx),%edx
3459 ++ xorps %xmm0,%xmm2
3462 ++ movups (%edx),%xmm0
3464 ++.byte 102,15,56,220,209
3465 ++.byte 102,15,56,220,217
3467 ++.byte 102,15,56,220,225
3468 ++ movups 16(%edx),%xmm1
3469 ++.byte 102,15,56,220,208
3470 ++.byte 102,15,56,220,216
3471 ++ leal 32(%edx),%edx
3472 ++.byte 102,15,56,220,224
3473 ++ movups (%edx),%xmm0
3474 ++ jnz L002enc3_loop
3475 ++.byte 102,15,56,220,209
3476 ++.byte 102,15,56,220,217
3477 ++.byte 102,15,56,220,225
3478 ++.byte 102,15,56,221,208
3479 ++.byte 102,15,56,221,216
3480 ++.byte 102,15,56,221,224
3484 ++ movups (%edx),%xmm0
3486 ++ movups 16(%edx),%xmm1
3487 ++ leal 32(%edx),%edx
3488 ++ xorps %xmm0,%xmm2
3491 ++ movups (%edx),%xmm0
3493 ++.byte 102,15,56,222,209
3494 ++.byte 102,15,56,222,217
3496 ++.byte 102,15,56,222,225
3497 ++ movups 16(%edx),%xmm1
3498 ++.byte 102,15,56,222,208
3499 ++.byte 102,15,56,222,216
3500 ++ leal 32(%edx),%edx
3501 ++.byte 102,15,56,222,224
3502 ++ movups (%edx),%xmm0
3503 ++ jnz L003dec3_loop
3504 ++.byte 102,15,56,222,209
3505 ++.byte 102,15,56,222,217
3506 ++.byte 102,15,56,222,225
3507 ++.byte 102,15,56,223,208
3508 ++.byte 102,15,56,223,216
3509 ++.byte 102,15,56,223,224
3513 ++ movups (%edx),%xmm0
3514 ++ movups 16(%edx),%xmm1
3516 ++ leal 32(%edx),%edx
3517 ++ xorps %xmm0,%xmm2
3521 ++ movups (%edx),%xmm0
3523 ++.byte 102,15,56,220,209
3524 ++.byte 102,15,56,220,217
3526 ++.byte 102,15,56,220,225
3527 ++.byte 102,15,56,220,233
3528 ++ movups 16(%edx),%xmm1
3529 ++.byte 102,15,56,220,208
3530 ++.byte 102,15,56,220,216
3531 ++ leal 32(%edx),%edx
3532 ++.byte 102,15,56,220,224
3533 ++.byte 102,15,56,220,232
3534 ++ movups (%edx),%xmm0
3535 ++ jnz L004enc4_loop
3536 ++.byte 102,15,56,220,209
3537 ++.byte 102,15,56,220,217
3538 ++.byte 102,15,56,220,225
3539 ++.byte 102,15,56,220,233
3540 ++.byte 102,15,56,221,208
3541 ++.byte 102,15,56,221,216
3542 ++.byte 102,15,56,221,224
3543 ++.byte 102,15,56,221,232
3547 ++ movups (%edx),%xmm0
3548 ++ movups 16(%edx),%xmm1
3550 ++ leal 32(%edx),%edx
3551 ++ xorps %xmm0,%xmm2
3555 ++ movups (%edx),%xmm0
3557 ++.byte 102,15,56,222,209
3558 ++.byte 102,15,56,222,217
3560 ++.byte 102,15,56,222,225
3561 ++.byte 102,15,56,222,233
3562 ++ movups 16(%edx),%xmm1
3563 ++.byte 102,15,56,222,208
3564 ++.byte 102,15,56,222,216
3565 ++ leal 32(%edx),%edx
3566 ++.byte 102,15,56,222,224
3567 ++.byte 102,15,56,222,232
3568 ++ movups (%edx),%xmm0
3569 ++ jnz L005dec4_loop
3570 ++.byte 102,15,56,222,209
3571 ++.byte 102,15,56,222,217
3572 ++.byte 102,15,56,222,225
3573 ++.byte 102,15,56,222,233
3574 ++.byte 102,15,56,223,208
3575 ++.byte 102,15,56,223,216
3576 ++.byte 102,15,56,223,224
3577 ++.byte 102,15,56,223,232
3581 ++ movups (%edx),%xmm0
3583 ++ movups 16(%edx),%xmm1
3584 ++ leal 32(%edx),%edx
3585 ++ xorps %xmm0,%xmm2
3587 ++.byte 102,15,56,220,209
3589 ++.byte 102,15,56,220,217
3592 ++.byte 102,15,56,220,225
3594 ++.byte 102,15,56,220,233
3596 ++.byte 102,15,56,220,241
3597 ++ movups (%edx),%xmm0
3598 ++.byte 102,15,56,220,249
3599 ++ jmp L_aesni_encrypt6_enter
3602 ++.byte 102,15,56,220,209
3603 ++.byte 102,15,56,220,217
3605 ++.byte 102,15,56,220,225
3606 ++.byte 102,15,56,220,233
3607 ++.byte 102,15,56,220,241
3608 ++.byte 102,15,56,220,249
3610 ++L_aesni_encrypt6_enter:
3611 ++ movups 16(%edx),%xmm1
3612 ++.byte 102,15,56,220,208
3613 ++.byte 102,15,56,220,216
3614 ++ leal 32(%edx),%edx
3615 ++.byte 102,15,56,220,224
3616 ++.byte 102,15,56,220,232
3617 ++.byte 102,15,56,220,240
3618 ++.byte 102,15,56,220,248
3619 ++ movups (%edx),%xmm0
3620 ++ jnz L006enc6_loop
3621 ++.byte 102,15,56,220,209
3622 ++.byte 102,15,56,220,217
3623 ++.byte 102,15,56,220,225
3624 ++.byte 102,15,56,220,233
3625 ++.byte 102,15,56,220,241
3626 ++.byte 102,15,56,220,249
3627 ++.byte 102,15,56,221,208
3628 ++.byte 102,15,56,221,216
3629 ++.byte 102,15,56,221,224
3630 ++.byte 102,15,56,221,232
3631 ++.byte 102,15,56,221,240
3632 ++.byte 102,15,56,221,248
3636 ++ movups (%edx),%xmm0
3638 ++ movups 16(%edx),%xmm1
3639 ++ leal 32(%edx),%edx
3640 ++ xorps %xmm0,%xmm2
3642 ++.byte 102,15,56,222,209
3644 ++.byte 102,15,56,222,217
3647 ++.byte 102,15,56,222,225
3649 ++.byte 102,15,56,222,233
3651 ++.byte 102,15,56,222,241
3652 ++ movups (%edx),%xmm0
3653 ++.byte 102,15,56,222,249
3654 ++ jmp L_aesni_decrypt6_enter
3657 ++.byte 102,15,56,222,209
3658 ++.byte 102,15,56,222,217
3660 ++.byte 102,15,56,222,225
3661 ++.byte 102,15,56,222,233
3662 ++.byte 102,15,56,222,241
3663 ++.byte 102,15,56,222,249
3665 ++L_aesni_decrypt6_enter:
3666 ++ movups 16(%edx),%xmm1
3667 ++.byte 102,15,56,222,208
3668 ++.byte 102,15,56,222,216
3669 ++ leal 32(%edx),%edx
3670 ++.byte 102,15,56,222,224
3671 ++.byte 102,15,56,222,232
3672 ++.byte 102,15,56,222,240
3673 ++.byte 102,15,56,222,248
3674 ++ movups (%edx),%xmm0
3675 ++ jnz L007dec6_loop
3676 ++.byte 102,15,56,222,209
3677 ++.byte 102,15,56,222,217
3678 ++.byte 102,15,56,222,225
3679 ++.byte 102,15,56,222,233
3680 ++.byte 102,15,56,222,241
3681 ++.byte 102,15,56,222,249
3682 ++.byte 102,15,56,223,208
3683 ++.byte 102,15,56,223,216
3684 ++.byte 102,15,56,223,224
3685 ++.byte 102,15,56,223,232
3686 ++.byte 102,15,56,223,240
3687 ++.byte 102,15,56,223,248
3689 ++.globl _aesni_ecb_encrypt
3691 ++_aesni_ecb_encrypt:
3692 ++L_aesni_ecb_encrypt_begin:
3697 ++ movl 20(%esp),%esi
3698 ++ movl 24(%esp),%edi
3699 ++ movl 28(%esp),%eax
3700 ++ movl 32(%esp),%edx
3701 ++ movl 36(%esp),%ebx
3704 ++ movl 240(%edx),%ecx
3706 ++ jz L009ecb_decrypt
3710 ++ jb L010ecb_enc_tail
3711 ++ movdqu (%esi),%xmm2
3712 ++ movdqu 16(%esi),%xmm3
3713 ++ movdqu 32(%esi),%xmm4
3714 ++ movdqu 48(%esi),%xmm5
3715 ++ movdqu 64(%esi),%xmm6
3716 ++ movdqu 80(%esi),%xmm7
3717 ++ leal 96(%esi),%esi
3719 ++ jmp L011ecb_enc_loop6_enter
3721 ++L012ecb_enc_loop6:
3722 ++ movups %xmm2,(%edi)
3723 ++ movdqu (%esi),%xmm2
3724 ++ movups %xmm3,16(%edi)
3725 ++ movdqu 16(%esi),%xmm3
3726 ++ movups %xmm4,32(%edi)
3727 ++ movdqu 32(%esi),%xmm4
3728 ++ movups %xmm5,48(%edi)
3729 ++ movdqu 48(%esi),%xmm5
3730 ++ movups %xmm6,64(%edi)
3731 ++ movdqu 64(%esi),%xmm6
3732 ++ movups %xmm7,80(%edi)
3733 ++ leal 96(%edi),%edi
3734 ++ movdqu 80(%esi),%xmm7
3735 ++ leal 96(%esi),%esi
3736 ++L011ecb_enc_loop6_enter:
3737 ++ call __aesni_encrypt6
3741 ++ jnc L012ecb_enc_loop6
3742 ++ movups %xmm2,(%edi)
3743 ++ movups %xmm3,16(%edi)
3744 ++ movups %xmm4,32(%edi)
3745 ++ movups %xmm5,48(%edi)
3746 ++ movups %xmm6,64(%edi)
3747 ++ movups %xmm7,80(%edi)
3748 ++ leal 96(%edi),%edi
3752 ++ movups (%esi),%xmm2
3754 ++ jb L013ecb_enc_one
3755 ++ movups 16(%esi),%xmm3
3756 ++ je L014ecb_enc_two
3757 ++ movups 32(%esi),%xmm4
3759 ++ jb L015ecb_enc_three
3760 ++ movups 48(%esi),%xmm5
3761 ++ je L016ecb_enc_four
3762 ++ movups 64(%esi),%xmm6
3763 ++ xorps %xmm7,%xmm7
3764 ++ call __aesni_encrypt6
3765 ++ movups %xmm2,(%edi)
3766 ++ movups %xmm3,16(%edi)
3767 ++ movups %xmm4,32(%edi)
3768 ++ movups %xmm5,48(%edi)
3769 ++ movups %xmm6,64(%edi)
3773 ++ movups (%edx),%xmm0
3774 ++ movups 16(%edx),%xmm1
3775 ++ leal 32(%edx),%edx
3776 ++ xorps %xmm0,%xmm2
3778 ++.byte 102,15,56,220,209
3780 ++ movups (%edx),%xmm1
3781 ++ leal 16(%edx),%edx
3782 ++ jnz L017enc1_loop_3
3783 ++.byte 102,15,56,221,209
3784 ++ movups %xmm2,(%edi)
3788 ++ xorps %xmm4,%xmm4
3789 ++ call __aesni_encrypt3
3790 ++ movups %xmm2,(%edi)
3791 ++ movups %xmm3,16(%edi)
3794 ++L015ecb_enc_three:
3795 ++ call __aesni_encrypt3
3796 ++ movups %xmm2,(%edi)
3797 ++ movups %xmm3,16(%edi)
3798 ++ movups %xmm4,32(%edi)
3802 ++ call __aesni_encrypt4
3803 ++ movups %xmm2,(%edi)
3804 ++ movups %xmm3,16(%edi)
3805 ++ movups %xmm4,32(%edi)
3806 ++ movups %xmm5,48(%edi)
3813 ++ jb L018ecb_dec_tail
3814 ++ movdqu (%esi),%xmm2
3815 ++ movdqu 16(%esi),%xmm3
3816 ++ movdqu 32(%esi),%xmm4
3817 ++ movdqu 48(%esi),%xmm5
3818 ++ movdqu 64(%esi),%xmm6
3819 ++ movdqu 80(%esi),%xmm7
3820 ++ leal 96(%esi),%esi
3822 ++ jmp L019ecb_dec_loop6_enter
3824 ++L020ecb_dec_loop6:
3825 ++ movups %xmm2,(%edi)
3826 ++ movdqu (%esi),%xmm2
3827 ++ movups %xmm3,16(%edi)
3828 ++ movdqu 16(%esi),%xmm3
3829 ++ movups %xmm4,32(%edi)
3830 ++ movdqu 32(%esi),%xmm4
3831 ++ movups %xmm5,48(%edi)
3832 ++ movdqu 48(%esi),%xmm5
3833 ++ movups %xmm6,64(%edi)
3834 ++ movdqu 64(%esi),%xmm6
3835 ++ movups %xmm7,80(%edi)
3836 ++ leal 96(%edi),%edi
3837 ++ movdqu 80(%esi),%xmm7
3838 ++ leal 96(%esi),%esi
3839 ++L019ecb_dec_loop6_enter:
3840 ++ call __aesni_decrypt6
3844 ++ jnc L020ecb_dec_loop6
3845 ++ movups %xmm2,(%edi)
3846 ++ movups %xmm3,16(%edi)
3847 ++ movups %xmm4,32(%edi)
3848 ++ movups %xmm5,48(%edi)
3849 ++ movups %xmm6,64(%edi)
3850 ++ movups %xmm7,80(%edi)
3851 ++ leal 96(%edi),%edi
3855 ++ movups (%esi),%xmm2
3857 ++ jb L021ecb_dec_one
3858 ++ movups 16(%esi),%xmm3
3859 ++ je L022ecb_dec_two
3860 ++ movups 32(%esi),%xmm4
3862 ++ jb L023ecb_dec_three
3863 ++ movups 48(%esi),%xmm5
3864 ++ je L024ecb_dec_four
3865 ++ movups 64(%esi),%xmm6
3866 ++ xorps %xmm7,%xmm7
3867 ++ call __aesni_decrypt6
3868 ++ movups %xmm2,(%edi)
3869 ++ movups %xmm3,16(%edi)
3870 ++ movups %xmm4,32(%edi)
3871 ++ movups %xmm5,48(%edi)
3872 ++ movups %xmm6,64(%edi)
3876 ++ movups (%edx),%xmm0
3877 ++ movups 16(%edx),%xmm1
3878 ++ leal 32(%edx),%edx
3879 ++ xorps %xmm0,%xmm2
3881 ++.byte 102,15,56,222,209
3883 ++ movups (%edx),%xmm1
3884 ++ leal 16(%edx),%edx
3885 ++ jnz L025dec1_loop_4
3886 ++.byte 102,15,56,223,209
3887 ++ movups %xmm2,(%edi)
3891 ++ xorps %xmm4,%xmm4
3892 ++ call __aesni_decrypt3
3893 ++ movups %xmm2,(%edi)
3894 ++ movups %xmm3,16(%edi)
3897 ++L023ecb_dec_three:
3898 ++ call __aesni_decrypt3
3899 ++ movups %xmm2,(%edi)
3900 ++ movups %xmm3,16(%edi)
3901 ++ movups %xmm4,32(%edi)
3905 ++ call __aesni_decrypt4
3906 ++ movups %xmm2,(%edi)
3907 ++ movups %xmm3,16(%edi)
3908 ++ movups %xmm4,32(%edi)
3909 ++ movups %xmm5,48(%edi)
3916 ++.globl _aesni_ccm64_encrypt_blocks
3918 ++_aesni_ccm64_encrypt_blocks:
3919 ++L_aesni_ccm64_encrypt_blocks_begin:
3924 ++ movl 20(%esp),%esi
3925 ++ movl 24(%esp),%edi
3926 ++ movl 28(%esp),%eax
3927 ++ movl 32(%esp),%edx
3928 ++ movl 36(%esp),%ebx
3929 ++ movl 40(%esp),%ecx
3933 ++ movl %ebp,48(%esp)
3934 ++ movdqu (%ebx),%xmm7
3935 ++ movdqu (%ecx),%xmm3
3936 ++ movl 240(%edx),%ecx
3937 ++ movl $202182159,(%esp)
3938 ++ movl $134810123,4(%esp)
3939 ++ movl $67438087,8(%esp)
3940 ++ movl $66051,12(%esp)
3943 ++ movl %ebx,16(%esp)
3944 ++ movl %ebp,20(%esp)
3945 ++ movl %ebp,24(%esp)
3946 ++ movl %ebp,28(%esp)
3949 ++ movdqa (%esp),%xmm5
3950 ++ movdqa %xmm7,%xmm2
3952 ++.byte 102,15,56,0,253
3953 ++L026ccm64_enc_outer:
3954 ++ movups (%ebp),%xmm0
3956 ++ movups (%esi),%xmm6
3957 ++ xorps %xmm0,%xmm2
3958 ++ movups 16(%ebp),%xmm1
3959 ++ xorps %xmm6,%xmm0
3960 ++ leal 32(%ebp),%edx
3961 ++ xorps %xmm0,%xmm3
3962 ++ movups (%edx),%xmm0
3963 ++L027ccm64_enc2_loop:
3964 ++.byte 102,15,56,220,209
3966 ++.byte 102,15,56,220,217
3967 ++ movups 16(%edx),%xmm1
3968 ++.byte 102,15,56,220,208
3969 ++ leal 32(%edx),%edx
3970 ++.byte 102,15,56,220,216
3971 ++ movups (%edx),%xmm0
3972 ++ jnz L027ccm64_enc2_loop
3973 ++.byte 102,15,56,220,209
3974 ++.byte 102,15,56,220,217
3975 ++ paddq 16(%esp),%xmm7
3976 ++.byte 102,15,56,221,208
3977 ++.byte 102,15,56,221,216
3979 ++ leal 16(%esi),%esi
3980 ++ xorps %xmm2,%xmm6
3981 ++ movdqa %xmm7,%xmm2
3982 ++ movups %xmm6,(%edi)
3983 ++ leal 16(%edi),%edi
3984 ++.byte 102,15,56,0,213
3985 ++ jnz L026ccm64_enc_outer
3986 ++ movl 48(%esp),%esp
3987 ++ movl 40(%esp),%edi
3988 ++ movups %xmm3,(%edi)
3994 ++.globl _aesni_ccm64_decrypt_blocks
3996 ++_aesni_ccm64_decrypt_blocks:
3997 ++L_aesni_ccm64_decrypt_blocks_begin:
4002 ++ movl 20(%esp),%esi
4003 ++ movl 24(%esp),%edi
4004 ++ movl 28(%esp),%eax
4005 ++ movl 32(%esp),%edx
4006 ++ movl 36(%esp),%ebx
4007 ++ movl 40(%esp),%ecx
4011 ++ movl %ebp,48(%esp)
4012 ++ movdqu (%ebx),%xmm7
4013 ++ movdqu (%ecx),%xmm3
4014 ++ movl 240(%edx),%ecx
4015 ++ movl $202182159,(%esp)
4016 ++ movl $134810123,4(%esp)
4017 ++ movl $67438087,8(%esp)
4018 ++ movl $66051,12(%esp)
4021 ++ movl %ebx,16(%esp)
4022 ++ movl %ebp,20(%esp)
4023 ++ movl %ebp,24(%esp)
4024 ++ movl %ebp,28(%esp)
4025 ++ movdqa (%esp),%xmm5
4026 ++ movdqa %xmm7,%xmm2
4029 ++.byte 102,15,56,0,253
4030 ++ movups (%edx),%xmm0
4031 ++ movups 16(%edx),%xmm1
4032 ++ leal 32(%edx),%edx
4033 ++ xorps %xmm0,%xmm2
4035 ++.byte 102,15,56,220,209
4037 ++ movups (%edx),%xmm1
4038 ++ leal 16(%edx),%edx
4039 ++ jnz L028enc1_loop_5
4040 ++.byte 102,15,56,221,209
4041 ++ movups (%esi),%xmm6
4042 ++ paddq 16(%esp),%xmm7
4043 ++ leal 16(%esi),%esi
4044 ++ jmp L029ccm64_dec_outer
4046 ++L029ccm64_dec_outer:
4047 ++ xorps %xmm2,%xmm6
4048 ++ movdqa %xmm7,%xmm2
4050 ++ movups %xmm6,(%edi)
4051 ++ leal 16(%edi),%edi
4052 ++.byte 102,15,56,0,213
4054 ++ jz L030ccm64_dec_break
4055 ++ movups (%ebp),%xmm0
4057 ++ movups 16(%ebp),%xmm1
4058 ++ xorps %xmm0,%xmm6
4059 ++ leal 32(%ebp),%edx
4060 ++ xorps %xmm0,%xmm2
4061 ++ xorps %xmm6,%xmm3
4062 ++ movups (%edx),%xmm0
4063 ++L031ccm64_dec2_loop:
4064 ++.byte 102,15,56,220,209
4066 ++.byte 102,15,56,220,217
4067 ++ movups 16(%edx),%xmm1
4068 ++.byte 102,15,56,220,208
4069 ++ leal 32(%edx),%edx
4070 ++.byte 102,15,56,220,216
4071 ++ movups (%edx),%xmm0
4072 ++ jnz L031ccm64_dec2_loop
4073 ++ movups (%esi),%xmm6
4074 ++ paddq 16(%esp),%xmm7
4075 ++.byte 102,15,56,220,209
4076 ++.byte 102,15,56,220,217
4077 ++ leal 16(%esi),%esi
4078 ++.byte 102,15,56,221,208
4079 ++.byte 102,15,56,221,216
4080 ++ jmp L029ccm64_dec_outer
4082 ++L030ccm64_dec_break:
4084 ++ movups (%edx),%xmm0
4085 ++ movups 16(%edx),%xmm1
4086 ++ xorps %xmm0,%xmm6
4087 ++ leal 32(%edx),%edx
4088 ++ xorps %xmm6,%xmm3
4090 ++.byte 102,15,56,220,217
4092 ++ movups (%edx),%xmm1
4093 ++ leal 16(%edx),%edx
4094 ++ jnz L032enc1_loop_6
4095 ++.byte 102,15,56,221,217
4096 ++ movl 48(%esp),%esp
4097 ++ movl 40(%esp),%edi
4098 ++ movups %xmm3,(%edi)
4104 ++.globl _aesni_ctr32_encrypt_blocks
4106 ++_aesni_ctr32_encrypt_blocks:
4107 ++L_aesni_ctr32_encrypt_blocks_begin:
4112 ++ movl 20(%esp),%esi
4113 ++ movl 24(%esp),%edi
4114 ++ movl 28(%esp),%eax
4115 ++ movl 32(%esp),%edx
4116 ++ movl 36(%esp),%ebx
4120 ++ movl %ebp,80(%esp)
4122 ++ je L033ctr32_one_shortcut
4123 ++ movdqu (%ebx),%xmm7
4124 ++ movl $202182159,(%esp)
4125 ++ movl $134810123,4(%esp)
4126 ++ movl $67438087,8(%esp)
4127 ++ movl $66051,12(%esp)
4130 ++ movl %ecx,16(%esp)
4131 ++ movl %ecx,20(%esp)
4132 ++ movl %ecx,24(%esp)
4133 ++ movl %ebp,28(%esp)
4134 ++.byte 102,15,58,22,251,3
4135 ++.byte 102,15,58,34,253,3
4136 ++ movl 240(%edx),%ecx
4140 ++ movdqa (%esp),%xmm2
4141 ++.byte 102,15,58,34,203,0
4142 ++ leal 3(%ebx),%ebp
4143 ++.byte 102,15,58,34,197,0
4145 ++.byte 102,15,58,34,203,1
4147 ++.byte 102,15,58,34,197,1
4149 ++.byte 102,15,58,34,203,2
4151 ++.byte 102,15,58,34,197,2
4152 ++ movdqa %xmm1,48(%esp)
4153 ++.byte 102,15,56,0,202
4154 ++ movdqa %xmm0,64(%esp)
4155 ++.byte 102,15,56,0,194
4156 ++ pshufd $192,%xmm1,%xmm2
4157 ++ pshufd $128,%xmm1,%xmm3
4159 ++ jb L034ctr32_tail
4160 ++ movdqa %xmm7,32(%esp)
4165 ++ jmp L035ctr32_loop6
4168 ++ pshufd $64,%xmm1,%xmm4
4169 ++ movdqa 32(%esp),%xmm1
4170 ++ pshufd $192,%xmm0,%xmm5
4172 ++ pshufd $128,%xmm0,%xmm6
4174 ++ pshufd $64,%xmm0,%xmm7
4179 ++ movups (%ebp),%xmm0
4180 ++ movups 16(%ebp),%xmm1
4181 ++ leal 32(%ebp),%edx
4185 ++.byte 102,15,56,220,209
4187 ++.byte 102,15,56,220,217
4189 ++.byte 102,15,56,220,225
4191 ++.byte 102,15,56,220,233
4193 ++.byte 102,15,56,220,241
4194 ++ movups (%edx),%xmm0
4195 ++.byte 102,15,56,220,249
4196 ++ call L_aesni_encrypt6_enter
4197 ++ movups (%esi),%xmm1
4198 ++ movups 16(%esi),%xmm0
4199 ++ xorps %xmm1,%xmm2
4200 ++ movups 32(%esi),%xmm1
4201 ++ xorps %xmm0,%xmm3
4202 ++ movups %xmm2,(%edi)
4203 ++ movdqa 16(%esp),%xmm0
4204 ++ xorps %xmm1,%xmm4
4205 ++ movdqa 48(%esp),%xmm1
4206 ++ movups %xmm3,16(%edi)
4207 ++ movups %xmm4,32(%edi)
4208 ++ paddd %xmm0,%xmm1
4209 ++ paddd 64(%esp),%xmm0
4210 ++ movdqa (%esp),%xmm2
4211 ++ movups 48(%esi),%xmm3
4212 ++ movups 64(%esi),%xmm4
4213 ++ xorps %xmm3,%xmm5
4214 ++ movups 80(%esi),%xmm3
4215 ++ leal 96(%esi),%esi
4216 ++ movdqa %xmm1,48(%esp)
4217 ++.byte 102,15,56,0,202
4218 ++ xorps %xmm4,%xmm6
4219 ++ movups %xmm5,48(%edi)
4220 ++ xorps %xmm3,%xmm7
4221 ++ movdqa %xmm0,64(%esp)
4222 ++.byte 102,15,56,0,194
4223 ++ movups %xmm6,64(%edi)
4224 ++ pshufd $192,%xmm1,%xmm2
4225 ++ movups %xmm7,80(%edi)
4226 ++ leal 96(%edi),%edi
4228 ++ pshufd $128,%xmm1,%xmm3
4230 ++ jnc L035ctr32_loop6
4234 ++ leal 1(,%ecx,2),%ecx
4235 ++ movdqa 32(%esp),%xmm7
4240 ++ pshufd $64,%xmm1,%xmm4
4243 ++ pshufd $192,%xmm0,%xmm5
4246 ++ jb L039ctr32_three
4247 ++ pshufd $128,%xmm0,%xmm6
4249 ++ je L040ctr32_four
4251 ++ call __aesni_encrypt6
4252 ++ movups (%esi),%xmm1
4253 ++ movups 16(%esi),%xmm0
4254 ++ xorps %xmm1,%xmm2
4255 ++ movups 32(%esi),%xmm1
4256 ++ xorps %xmm0,%xmm3
4257 ++ movups 48(%esi),%xmm0
4258 ++ xorps %xmm1,%xmm4
4259 ++ movups 64(%esi),%xmm1
4260 ++ xorps %xmm0,%xmm5
4261 ++ movups %xmm2,(%edi)
4262 ++ xorps %xmm1,%xmm6
4263 ++ movups %xmm3,16(%edi)
4264 ++ movups %xmm4,32(%edi)
4265 ++ movups %xmm5,48(%edi)
4266 ++ movups %xmm6,64(%edi)
4267 ++ jmp L036ctr32_ret
4269 ++L033ctr32_one_shortcut:
4270 ++ movups (%ebx),%xmm2
4271 ++ movl 240(%edx),%ecx
4273 ++ movups (%edx),%xmm0
4274 ++ movups 16(%edx),%xmm1
4275 ++ leal 32(%edx),%edx
4276 ++ xorps %xmm0,%xmm2
4278 ++.byte 102,15,56,220,209
4280 ++ movups (%edx),%xmm1
4281 ++ leal 16(%edx),%edx
4282 ++ jnz L041enc1_loop_7
4283 ++.byte 102,15,56,221,209
4284 ++ movups (%esi),%xmm6
4285 ++ xorps %xmm2,%xmm6
4286 ++ movups %xmm6,(%edi)
4287 ++ jmp L036ctr32_ret
4290 ++ call __aesni_encrypt3
4291 ++ movups (%esi),%xmm5
4292 ++ movups 16(%esi),%xmm6
4293 ++ xorps %xmm5,%xmm2
4294 ++ xorps %xmm6,%xmm3
4295 ++ movups %xmm2,(%edi)
4296 ++ movups %xmm3,16(%edi)
4297 ++ jmp L036ctr32_ret
4300 ++ call __aesni_encrypt3
4301 ++ movups (%esi),%xmm5
4302 ++ movups 16(%esi),%xmm6
4303 ++ xorps %xmm5,%xmm2
4304 ++ movups 32(%esi),%xmm7
4305 ++ xorps %xmm6,%xmm3
4306 ++ movups %xmm2,(%edi)
4307 ++ xorps %xmm7,%xmm4
4308 ++ movups %xmm3,16(%edi)
4309 ++ movups %xmm4,32(%edi)
4310 ++ jmp L036ctr32_ret
4313 ++ call __aesni_encrypt4
4314 ++ movups (%esi),%xmm6
4315 ++ movups 16(%esi),%xmm7
4316 ++ movups 32(%esi),%xmm1
4317 ++ xorps %xmm6,%xmm2
4318 ++ movups 48(%esi),%xmm0
4319 ++ xorps %xmm7,%xmm3
4320 ++ movups %xmm2,(%edi)
4321 ++ xorps %xmm1,%xmm4
4322 ++ movups %xmm3,16(%edi)
4323 ++ xorps %xmm0,%xmm5
4324 ++ movups %xmm4,32(%edi)
4325 ++ movups %xmm5,48(%edi)
4327 ++ movl 80(%esp),%esp
4333 ++.globl _aesni_xts_encrypt
4335 ++_aesni_xts_encrypt:
4336 ++L_aesni_xts_encrypt_begin:
4341 ++ movl 36(%esp),%edx
4342 ++ movl 40(%esp),%esi
4343 ++ movl 240(%edx),%ecx
4344 ++ movups (%esi),%xmm2
4345 ++ movups (%edx),%xmm0
4346 ++ movups 16(%edx),%xmm1
4347 ++ leal 32(%edx),%edx
4348 ++ xorps %xmm0,%xmm2
4350 ++.byte 102,15,56,220,209
4352 ++ movups (%edx),%xmm1
4353 ++ leal 16(%edx),%edx
4354 ++ jnz L042enc1_loop_8
4355 ++.byte 102,15,56,221,209
4356 ++ movl 20(%esp),%esi
4357 ++ movl 24(%esp),%edi
4358 ++ movl 28(%esp),%eax
4359 ++ movl 32(%esp),%edx
4362 ++ movl 240(%edx),%ecx
4364 ++ movl $135,96(%esp)
4365 ++ movl $0,100(%esp)
4366 ++ movl $1,104(%esp)
4367 ++ movl $0,108(%esp)
4368 ++ movl %eax,112(%esp)
4369 ++ movl %ebp,116(%esp)
4370 ++ movdqa %xmm2,%xmm1
4372 ++ movdqa 96(%esp),%xmm3
4373 ++ pcmpgtd %xmm1,%xmm0
4378 ++ jc L043xts_enc_short
4381 ++ jmp L044xts_enc_loop6
4383 ++L044xts_enc_loop6:
4384 ++ pshufd $19,%xmm0,%xmm2
4386 ++ movdqa %xmm1,(%esp)
4387 ++ paddq %xmm1,%xmm1
4389 ++ pcmpgtd %xmm1,%xmm0
4391 ++ pshufd $19,%xmm0,%xmm2
4393 ++ movdqa %xmm1,16(%esp)
4394 ++ paddq %xmm1,%xmm1
4396 ++ pcmpgtd %xmm1,%xmm0
4398 ++ pshufd $19,%xmm0,%xmm2
4400 ++ movdqa %xmm1,32(%esp)
4401 ++ paddq %xmm1,%xmm1
4403 ++ pcmpgtd %xmm1,%xmm0
4405 ++ pshufd $19,%xmm0,%xmm2
4407 ++ movdqa %xmm1,48(%esp)
4408 ++ paddq %xmm1,%xmm1
4410 ++ pcmpgtd %xmm1,%xmm0
4412 ++ pshufd $19,%xmm0,%xmm7
4413 ++ movdqa %xmm1,64(%esp)
4414 ++ paddq %xmm1,%xmm1
4415 ++ movups (%ebp),%xmm0
4417 ++ movups (%esi),%xmm2
4419 ++ movdqu 16(%esi),%xmm3
4420 ++ xorps %xmm0,%xmm2
4421 ++ movdqu 32(%esi),%xmm4
4423 ++ movdqu 48(%esi),%xmm5
4425 ++ movdqu 64(%esi),%xmm6
4427 ++ movdqu 80(%esi),%xmm1
4429 ++ leal 96(%esi),%esi
4430 ++ pxor (%esp),%xmm2
4431 ++ movdqa %xmm7,80(%esp)
4433 ++ movups 16(%ebp),%xmm1
4434 ++ leal 32(%ebp),%edx
4435 ++ pxor 16(%esp),%xmm3
4436 ++.byte 102,15,56,220,209
4437 ++ pxor 32(%esp),%xmm4
4438 ++.byte 102,15,56,220,217
4439 ++ pxor 48(%esp),%xmm5
4441 ++.byte 102,15,56,220,225
4442 ++ pxor 64(%esp),%xmm6
4443 ++.byte 102,15,56,220,233
4445 ++.byte 102,15,56,220,241
4446 ++ movups (%edx),%xmm0
4447 ++.byte 102,15,56,220,249
4448 ++ call L_aesni_encrypt6_enter
4449 ++ movdqa 80(%esp),%xmm1
4451 ++ xorps (%esp),%xmm2
4452 ++ pcmpgtd %xmm1,%xmm0
4453 ++ xorps 16(%esp),%xmm3
4454 ++ movups %xmm2,(%edi)
4455 ++ xorps 32(%esp),%xmm4
4456 ++ movups %xmm3,16(%edi)
4457 ++ xorps 48(%esp),%xmm5
4458 ++ movups %xmm4,32(%edi)
4459 ++ xorps 64(%esp),%xmm6
4460 ++ movups %xmm5,48(%edi)
4461 ++ xorps %xmm1,%xmm7
4462 ++ movups %xmm6,64(%edi)
4463 ++ pshufd $19,%xmm0,%xmm2
4464 ++ movups %xmm7,80(%edi)
4465 ++ leal 96(%edi),%edi
4466 ++ movdqa 96(%esp),%xmm3
4468 ++ paddq %xmm1,%xmm1
4470 ++ pcmpgtd %xmm1,%xmm0
4474 ++ jnc L044xts_enc_loop6
4475 ++ leal 1(,%ecx,2),%ecx
4478 ++L043xts_enc_short:
4480 ++ jz L045xts_enc_done6x
4481 ++ movdqa %xmm1,%xmm5
4483 ++ jb L046xts_enc_one
4484 ++ pshufd $19,%xmm0,%xmm2
4486 ++ paddq %xmm1,%xmm1
4488 ++ pcmpgtd %xmm1,%xmm0
4490 ++ je L047xts_enc_two
4491 ++ pshufd $19,%xmm0,%xmm2
4493 ++ movdqa %xmm1,%xmm6
4494 ++ paddq %xmm1,%xmm1
4496 ++ pcmpgtd %xmm1,%xmm0
4499 ++ jb L048xts_enc_three
4500 ++ pshufd $19,%xmm0,%xmm2
4502 ++ movdqa %xmm1,%xmm7
4503 ++ paddq %xmm1,%xmm1
4505 ++ pcmpgtd %xmm1,%xmm0
4507 ++ movdqa %xmm5,(%esp)
4508 ++ movdqa %xmm6,16(%esp)
4509 ++ je L049xts_enc_four
4510 ++ movdqa %xmm7,32(%esp)
4511 ++ pshufd $19,%xmm0,%xmm7
4512 ++ movdqa %xmm1,48(%esp)
4513 ++ paddq %xmm1,%xmm1
4516 ++ movdqu (%esi),%xmm2
4517 ++ movdqu 16(%esi),%xmm3
4518 ++ movdqu 32(%esi),%xmm4
4519 ++ pxor (%esp),%xmm2
4520 ++ movdqu 48(%esi),%xmm5
4521 ++ pxor 16(%esp),%xmm3
4522 ++ movdqu 64(%esi),%xmm6
4523 ++ pxor 32(%esp),%xmm4
4524 ++ leal 80(%esi),%esi
4525 ++ pxor 48(%esp),%xmm5
4526 ++ movdqa %xmm7,64(%esp)
4528 ++ call __aesni_encrypt6
4529 ++ movaps 64(%esp),%xmm1
4530 ++ xorps (%esp),%xmm2
4531 ++ xorps 16(%esp),%xmm3
4532 ++ xorps 32(%esp),%xmm4
4533 ++ movups %xmm2,(%edi)
4534 ++ xorps 48(%esp),%xmm5
4535 ++ movups %xmm3,16(%edi)
4536 ++ xorps %xmm1,%xmm6
4537 ++ movups %xmm4,32(%edi)
4538 ++ movups %xmm5,48(%edi)
4539 ++ movups %xmm6,64(%edi)
4540 ++ leal 80(%edi),%edi
4541 ++ jmp L050xts_enc_done
4544 ++ movups (%esi),%xmm2
4545 ++ leal 16(%esi),%esi
4546 ++ xorps %xmm5,%xmm2
4547 ++ movups (%edx),%xmm0
4548 ++ movups 16(%edx),%xmm1
4549 ++ leal 32(%edx),%edx
4550 ++ xorps %xmm0,%xmm2
4552 ++.byte 102,15,56,220,209
4554 ++ movups (%edx),%xmm1
4555 ++ leal 16(%edx),%edx
4556 ++ jnz L051enc1_loop_9
4557 ++.byte 102,15,56,221,209
4558 ++ xorps %xmm5,%xmm2
4559 ++ movups %xmm2,(%edi)
4560 ++ leal 16(%edi),%edi
4561 ++ movdqa %xmm5,%xmm1
4562 ++ jmp L050xts_enc_done
4565 ++ movaps %xmm1,%xmm6
4566 ++ movups (%esi),%xmm2
4567 ++ movups 16(%esi),%xmm3
4568 ++ leal 32(%esi),%esi
4569 ++ xorps %xmm5,%xmm2
4570 ++ xorps %xmm6,%xmm3
4571 ++ xorps %xmm4,%xmm4
4572 ++ call __aesni_encrypt3
4573 ++ xorps %xmm5,%xmm2
4574 ++ xorps %xmm6,%xmm3
4575 ++ movups %xmm2,(%edi)
4576 ++ movups %xmm3,16(%edi)
4577 ++ leal 32(%edi),%edi
4578 ++ movdqa %xmm6,%xmm1
4579 ++ jmp L050xts_enc_done
4581 ++L048xts_enc_three:
4582 ++ movaps %xmm1,%xmm7
4583 ++ movups (%esi),%xmm2
4584 ++ movups 16(%esi),%xmm3
4585 ++ movups 32(%esi),%xmm4
4586 ++ leal 48(%esi),%esi
4587 ++ xorps %xmm5,%xmm2
4588 ++ xorps %xmm6,%xmm3
4589 ++ xorps %xmm7,%xmm4
4590 ++ call __aesni_encrypt3
4591 ++ xorps %xmm5,%xmm2
4592 ++ xorps %xmm6,%xmm3
4593 ++ xorps %xmm7,%xmm4
4594 ++ movups %xmm2,(%edi)
4595 ++ movups %xmm3,16(%edi)
4596 ++ movups %xmm4,32(%edi)
4597 ++ leal 48(%edi),%edi
4598 ++ movdqa %xmm7,%xmm1
4599 ++ jmp L050xts_enc_done
4602 ++ movaps %xmm1,%xmm6
4603 ++ movups (%esi),%xmm2
4604 ++ movups 16(%esi),%xmm3
4605 ++ movups 32(%esi),%xmm4
4606 ++ xorps (%esp),%xmm2
4607 ++ movups 48(%esi),%xmm5
4608 ++ leal 64(%esi),%esi
4609 ++ xorps 16(%esp),%xmm3
4610 ++ xorps %xmm7,%xmm4
4611 ++ xorps %xmm6,%xmm5
4612 ++ call __aesni_encrypt4
4613 ++ xorps (%esp),%xmm2
4614 ++ xorps 16(%esp),%xmm3
4615 ++ xorps %xmm7,%xmm4
4616 ++ movups %xmm2,(%edi)
4617 ++ xorps %xmm6,%xmm5
4618 ++ movups %xmm3,16(%edi)
4619 ++ movups %xmm4,32(%edi)
4620 ++ movups %xmm5,48(%edi)
4621 ++ leal 64(%edi),%edi
4622 ++ movdqa %xmm6,%xmm1
4623 ++ jmp L050xts_enc_done
4625 ++L045xts_enc_done6x:
4626 ++ movl 112(%esp),%eax
4628 ++ jz L052xts_enc_ret
4629 ++ movdqa %xmm1,%xmm5
4630 ++ movl %eax,112(%esp)
4631 ++ jmp L053xts_enc_steal
4634 ++ movl 112(%esp),%eax
4637 ++ jz L052xts_enc_ret
4638 ++ pcmpgtd %xmm1,%xmm0
4639 ++ movl %eax,112(%esp)
4640 ++ pshufd $19,%xmm0,%xmm5
4641 ++ paddq %xmm1,%xmm1
4642 ++ pand 96(%esp),%xmm5
4644 ++L053xts_enc_steal:
4645 ++ movzbl (%esi),%ecx
4646 ++ movzbl -16(%edi),%edx
4647 ++ leal 1(%esi),%esi
4648 ++ movb %cl,-16(%edi)
4650 ++ leal 1(%edi),%edi
4652 ++ jnz L053xts_enc_steal
4653 ++ subl 112(%esp),%edi
4656 ++ movups -16(%edi),%xmm2
4657 ++ xorps %xmm5,%xmm2
4658 ++ movups (%edx),%xmm0
4659 ++ movups 16(%edx),%xmm1
4660 ++ leal 32(%edx),%edx
4661 ++ xorps %xmm0,%xmm2
4663 ++.byte 102,15,56,220,209
4665 ++ movups (%edx),%xmm1
4666 ++ leal 16(%edx),%edx
4667 ++ jnz L054enc1_loop_10
4668 ++.byte 102,15,56,221,209
4669 ++ xorps %xmm5,%xmm2
4670 ++ movups %xmm2,-16(%edi)
4672 ++ movl 116(%esp),%esp
4678 ++.globl _aesni_xts_decrypt
4680 ++_aesni_xts_decrypt:
4681 ++L_aesni_xts_decrypt_begin:
4686 ++ movl 36(%esp),%edx
4687 ++ movl 40(%esp),%esi
4688 ++ movl 240(%edx),%ecx
4689 ++ movups (%esi),%xmm2
4690 ++ movups (%edx),%xmm0
4691 ++ movups 16(%edx),%xmm1
4692 ++ leal 32(%edx),%edx
4693 ++ xorps %xmm0,%xmm2
4695 ++.byte 102,15,56,220,209
4697 ++ movups (%edx),%xmm1
4698 ++ leal 16(%edx),%edx
4699 ++ jnz L055enc1_loop_11
4700 ++.byte 102,15,56,221,209
4701 ++ movl 20(%esp),%esi
4702 ++ movl 24(%esp),%edi
4703 ++ movl 28(%esp),%eax
4704 ++ movl 32(%esp),%edx
4713 ++ movl $135,96(%esp)
4714 ++ movl $0,100(%esp)
4715 ++ movl $1,104(%esp)
4716 ++ movl $0,108(%esp)
4717 ++ movl %eax,112(%esp)
4718 ++ movl %ebp,116(%esp)
4719 ++ movl 240(%edx),%ecx
4722 ++ movdqa %xmm2,%xmm1
4724 ++ movdqa 96(%esp),%xmm3
4725 ++ pcmpgtd %xmm1,%xmm0
4728 ++ jc L056xts_dec_short
4731 ++ jmp L057xts_dec_loop6
4733 ++L057xts_dec_loop6:
4734 ++ pshufd $19,%xmm0,%xmm2
4736 ++ movdqa %xmm1,(%esp)
4737 ++ paddq %xmm1,%xmm1
4739 ++ pcmpgtd %xmm1,%xmm0
4741 ++ pshufd $19,%xmm0,%xmm2
4743 ++ movdqa %xmm1,16(%esp)
4744 ++ paddq %xmm1,%xmm1
4746 ++ pcmpgtd %xmm1,%xmm0
4748 ++ pshufd $19,%xmm0,%xmm2
4750 ++ movdqa %xmm1,32(%esp)
4751 ++ paddq %xmm1,%xmm1
4753 ++ pcmpgtd %xmm1,%xmm0
4755 ++ pshufd $19,%xmm0,%xmm2
4757 ++ movdqa %xmm1,48(%esp)
4758 ++ paddq %xmm1,%xmm1
4760 ++ pcmpgtd %xmm1,%xmm0
4762 ++ pshufd $19,%xmm0,%xmm7
4763 ++ movdqa %xmm1,64(%esp)
4764 ++ paddq %xmm1,%xmm1
4765 ++ movups (%ebp),%xmm0
4767 ++ movups (%esi),%xmm2
4769 ++ movdqu 16(%esi),%xmm3
4770 ++ xorps %xmm0,%xmm2
4771 ++ movdqu 32(%esi),%xmm4
4773 ++ movdqu 48(%esi),%xmm5
4775 ++ movdqu 64(%esi),%xmm6
4777 ++ movdqu 80(%esi),%xmm1
4779 ++ leal 96(%esi),%esi
4780 ++ pxor (%esp),%xmm2
4781 ++ movdqa %xmm7,80(%esp)
4783 ++ movups 16(%ebp),%xmm1
4784 ++ leal 32(%ebp),%edx
4785 ++ pxor 16(%esp),%xmm3
4786 ++.byte 102,15,56,222,209
4787 ++ pxor 32(%esp),%xmm4
4788 ++.byte 102,15,56,222,217
4789 ++ pxor 48(%esp),%xmm5
4791 ++.byte 102,15,56,222,225
4792 ++ pxor 64(%esp),%xmm6
4793 ++.byte 102,15,56,222,233
4795 ++.byte 102,15,56,222,241
4796 ++ movups (%edx),%xmm0
4797 ++.byte 102,15,56,222,249
4798 ++ call L_aesni_decrypt6_enter
4799 ++ movdqa 80(%esp),%xmm1
4801 ++ xorps (%esp),%xmm2
4802 ++ pcmpgtd %xmm1,%xmm0
4803 ++ xorps 16(%esp),%xmm3
4804 ++ movups %xmm2,(%edi)
4805 ++ xorps 32(%esp),%xmm4
4806 ++ movups %xmm3,16(%edi)
4807 ++ xorps 48(%esp),%xmm5
4808 ++ movups %xmm4,32(%edi)
4809 ++ xorps 64(%esp),%xmm6
4810 ++ movups %xmm5,48(%edi)
4811 ++ xorps %xmm1,%xmm7
4812 ++ movups %xmm6,64(%edi)
4813 ++ pshufd $19,%xmm0,%xmm2
4814 ++ movups %xmm7,80(%edi)
4815 ++ leal 96(%edi),%edi
4816 ++ movdqa 96(%esp),%xmm3
4818 ++ paddq %xmm1,%xmm1
4820 ++ pcmpgtd %xmm1,%xmm0
4824 ++ jnc L057xts_dec_loop6
4825 ++ leal 1(,%ecx,2),%ecx
4828 ++L056xts_dec_short:
4830 ++ jz L058xts_dec_done6x
4831 ++ movdqa %xmm1,%xmm5
4833 ++ jb L059xts_dec_one
4834 ++ pshufd $19,%xmm0,%xmm2
4836 ++ paddq %xmm1,%xmm1
4838 ++ pcmpgtd %xmm1,%xmm0
4840 ++ je L060xts_dec_two
4841 ++ pshufd $19,%xmm0,%xmm2
4843 ++ movdqa %xmm1,%xmm6
4844 ++ paddq %xmm1,%xmm1
4846 ++ pcmpgtd %xmm1,%xmm0
4849 ++ jb L061xts_dec_three
4850 ++ pshufd $19,%xmm0,%xmm2
4852 ++ movdqa %xmm1,%xmm7
4853 ++ paddq %xmm1,%xmm1
4855 ++ pcmpgtd %xmm1,%xmm0
4857 ++ movdqa %xmm5,(%esp)
4858 ++ movdqa %xmm6,16(%esp)
4859 ++ je L062xts_dec_four
4860 ++ movdqa %xmm7,32(%esp)
4861 ++ pshufd $19,%xmm0,%xmm7
4862 ++ movdqa %xmm1,48(%esp)
4863 ++ paddq %xmm1,%xmm1
4866 ++ movdqu (%esi),%xmm2
4867 ++ movdqu 16(%esi),%xmm3
4868 ++ movdqu 32(%esi),%xmm4
4869 ++ pxor (%esp),%xmm2
4870 ++ movdqu 48(%esi),%xmm5
4871 ++ pxor 16(%esp),%xmm3
4872 ++ movdqu 64(%esi),%xmm6
4873 ++ pxor 32(%esp),%xmm4
4874 ++ leal 80(%esi),%esi
4875 ++ pxor 48(%esp),%xmm5
4876 ++ movdqa %xmm7,64(%esp)
4878 ++ call __aesni_decrypt6
4879 ++ movaps 64(%esp),%xmm1
4880 ++ xorps (%esp),%xmm2
4881 ++ xorps 16(%esp),%xmm3
4882 ++ xorps 32(%esp),%xmm4
4883 ++ movups %xmm2,(%edi)
4884 ++ xorps 48(%esp),%xmm5
4885 ++ movups %xmm3,16(%edi)
4886 ++ xorps %xmm1,%xmm6
4887 ++ movups %xmm4,32(%edi)
4888 ++ movups %xmm5,48(%edi)
4889 ++ movups %xmm6,64(%edi)
4890 ++ leal 80(%edi),%edi
4891 ++ jmp L063xts_dec_done
4894 ++ movups (%esi),%xmm2
4895 ++ leal 16(%esi),%esi
4896 ++ xorps %xmm5,%xmm2
4897 ++ movups (%edx),%xmm0
4898 ++ movups 16(%edx),%xmm1
4899 ++ leal 32(%edx),%edx
4900 ++ xorps %xmm0,%xmm2
4902 ++.byte 102,15,56,222,209
4904 ++ movups (%edx),%xmm1
4905 ++ leal 16(%edx),%edx
4906 ++ jnz L064dec1_loop_12
4907 ++.byte 102,15,56,223,209
4908 ++ xorps %xmm5,%xmm2
4909 ++ movups %xmm2,(%edi)
4910 ++ leal 16(%edi),%edi
4911 ++ movdqa %xmm5,%xmm1
4912 ++ jmp L063xts_dec_done
4915 ++ movaps %xmm1,%xmm6
4916 ++ movups (%esi),%xmm2
4917 ++ movups 16(%esi),%xmm3
4918 ++ leal 32(%esi),%esi
4919 ++ xorps %xmm5,%xmm2
4920 ++ xorps %xmm6,%xmm3
4921 ++ call __aesni_decrypt3
4922 ++ xorps %xmm5,%xmm2
4923 ++ xorps %xmm6,%xmm3
4924 ++ movups %xmm2,(%edi)
4925 ++ movups %xmm3,16(%edi)
4926 ++ leal 32(%edi),%edi
4927 ++ movdqa %xmm6,%xmm1
4928 ++ jmp L063xts_dec_done
4930 ++L061xts_dec_three:
4931 ++ movaps %xmm1,%xmm7
4932 ++ movups (%esi),%xmm2
4933 ++ movups 16(%esi),%xmm3
4934 ++ movups 32(%esi),%xmm4
4935 ++ leal 48(%esi),%esi
4936 ++ xorps %xmm5,%xmm2
4937 ++ xorps %xmm6,%xmm3
4938 ++ xorps %xmm7,%xmm4
4939 ++ call __aesni_decrypt3
4940 ++ xorps %xmm5,%xmm2
4941 ++ xorps %xmm6,%xmm3
4942 ++ xorps %xmm7,%xmm4
4943 ++ movups %xmm2,(%edi)
4944 ++ movups %xmm3,16(%edi)
4945 ++ movups %xmm4,32(%edi)
4946 ++ leal 48(%edi),%edi
4947 ++ movdqa %xmm7,%xmm1
4948 ++ jmp L063xts_dec_done
4951 ++ movaps %xmm1,%xmm6
4952 ++ movups (%esi),%xmm2
4953 ++ movups 16(%esi),%xmm3
4954 ++ movups 32(%esi),%xmm4
4955 ++ xorps (%esp),%xmm2
4956 ++ movups 48(%esi),%xmm5
4957 ++ leal 64(%esi),%esi
4958 ++ xorps 16(%esp),%xmm3
4959 ++ xorps %xmm7,%xmm4
4960 ++ xorps %xmm6,%xmm5
4961 ++ call __aesni_decrypt4
4962 ++ xorps (%esp),%xmm2
4963 ++ xorps 16(%esp),%xmm3
4964 ++ xorps %xmm7,%xmm4
4965 ++ movups %xmm2,(%edi)
4966 ++ xorps %xmm6,%xmm5
4967 ++ movups %xmm3,16(%edi)
4968 ++ movups %xmm4,32(%edi)
4969 ++ movups %xmm5,48(%edi)
4970 ++ leal 64(%edi),%edi
4971 ++ movdqa %xmm6,%xmm1
4972 ++ jmp L063xts_dec_done
4974 ++L058xts_dec_done6x:
4975 ++ movl 112(%esp),%eax
4977 ++ jz L065xts_dec_ret
4978 ++ movl %eax,112(%esp)
4979 ++ jmp L066xts_dec_only_one_more
4982 ++ movl 112(%esp),%eax
4985 ++ jz L065xts_dec_ret
4986 ++ pcmpgtd %xmm1,%xmm0
4987 ++ movl %eax,112(%esp)
4988 ++ pshufd $19,%xmm0,%xmm2
4990 ++ movdqa 96(%esp),%xmm3
4991 ++ paddq %xmm1,%xmm1
4993 ++ pcmpgtd %xmm1,%xmm0
4995 ++L066xts_dec_only_one_more:
4996 ++ pshufd $19,%xmm0,%xmm5
4997 ++ movdqa %xmm1,%xmm6
4998 ++ paddq %xmm1,%xmm1
5003 ++ movups (%esi),%xmm2
5004 ++ xorps %xmm5,%xmm2
5005 ++ movups (%edx),%xmm0
5006 ++ movups 16(%edx),%xmm1
5007 ++ leal 32(%edx),%edx
5008 ++ xorps %xmm0,%xmm2
5010 ++.byte 102,15,56,222,209
5012 ++ movups (%edx),%xmm1
5013 ++ leal 16(%edx),%edx
5014 ++ jnz L067dec1_loop_13
5015 ++.byte 102,15,56,223,209
5016 ++ xorps %xmm5,%xmm2
5017 ++ movups %xmm2,(%edi)
5018 ++L068xts_dec_steal:
5019 ++ movzbl 16(%esi),%ecx
5020 ++ movzbl (%edi),%edx
5021 ++ leal 1(%esi),%esi
5023 ++ movb %dl,16(%edi)
5024 ++ leal 1(%edi),%edi
5026 ++ jnz L068xts_dec_steal
5027 ++ subl 112(%esp),%edi
5030 ++ movups (%edi),%xmm2
5031 ++ xorps %xmm6,%xmm2
5032 ++ movups (%edx),%xmm0
5033 ++ movups 16(%edx),%xmm1
5034 ++ leal 32(%edx),%edx
5035 ++ xorps %xmm0,%xmm2
5037 ++.byte 102,15,56,222,209
5039 ++ movups (%edx),%xmm1
5040 ++ leal 16(%edx),%edx
5041 ++ jnz L069dec1_loop_14
5042 ++.byte 102,15,56,223,209
5043 ++ xorps %xmm6,%xmm2
5044 ++ movups %xmm2,(%edi)
5046 ++ movl 116(%esp),%esp
5052 ++.globl _aesni_cbc_encrypt
5054 ++_aesni_cbc_encrypt:
5055 ++L_aesni_cbc_encrypt_begin:
5060 ++ movl 20(%esp),%esi
5062 ++ movl 24(%esp),%edi
5064 ++ movl 28(%esp),%eax
5066 ++ movl 32(%esp),%edx
5067 ++ movl 36(%esp),%ebp
5072 ++ movups (%ebp),%xmm7
5073 ++ movl 240(%edx),%ecx
5075 ++ movl %ebx,16(%esp)
5077 ++ je L071cbc_decrypt
5078 ++ movaps %xmm7,%xmm2
5080 ++ jb L072cbc_enc_tail
5082 ++ jmp L073cbc_enc_loop
5085 ++ movups (%esi),%xmm7
5086 ++ leal 16(%esi),%esi
5087 ++ movups (%edx),%xmm0
5088 ++ movups 16(%edx),%xmm1
5089 ++ xorps %xmm0,%xmm7
5090 ++ leal 32(%edx),%edx
5091 ++ xorps %xmm7,%xmm2
5093 ++.byte 102,15,56,220,209
5095 ++ movups (%edx),%xmm1
5096 ++ leal 16(%edx),%edx
5097 ++ jnz L074enc1_loop_15
5098 ++.byte 102,15,56,221,209
5101 ++ movups %xmm2,(%edi)
5102 ++ leal 16(%edi),%edi
5104 ++ jnc L073cbc_enc_loop
5106 ++ jnz L072cbc_enc_tail
5107 ++ movaps %xmm2,%xmm7
5116 ++ leal -16(%edi),%edi
5120 ++ jmp L073cbc_enc_loop
5124 ++ jbe L076cbc_dec_tail
5125 ++ movaps %xmm7,(%esp)
5127 ++ jmp L077cbc_dec_loop6_enter
5129 ++L078cbc_dec_loop6:
5130 ++ movaps %xmm0,(%esp)
5131 ++ movups %xmm7,(%edi)
5132 ++ leal 16(%edi),%edi
5133 ++L077cbc_dec_loop6_enter:
5134 ++ movdqu (%esi),%xmm2
5135 ++ movdqu 16(%esi),%xmm3
5136 ++ movdqu 32(%esi),%xmm4
5137 ++ movdqu 48(%esi),%xmm5
5138 ++ movdqu 64(%esi),%xmm6
5139 ++ movdqu 80(%esi),%xmm7
5140 ++ call __aesni_decrypt6
5141 ++ movups (%esi),%xmm1
5142 ++ movups 16(%esi),%xmm0
5143 ++ xorps (%esp),%xmm2
5144 ++ xorps %xmm1,%xmm3
5145 ++ movups 32(%esi),%xmm1
5146 ++ xorps %xmm0,%xmm4
5147 ++ movups 48(%esi),%xmm0
5148 ++ xorps %xmm1,%xmm5
5149 ++ movups 64(%esi),%xmm1
5150 ++ xorps %xmm0,%xmm6
5151 ++ movups 80(%esi),%xmm0
5152 ++ xorps %xmm1,%xmm7
5153 ++ movups %xmm2,(%edi)
5154 ++ movups %xmm3,16(%edi)
5155 ++ leal 96(%esi),%esi
5156 ++ movups %xmm4,32(%edi)
5158 ++ movups %xmm5,48(%edi)
5160 ++ movups %xmm6,64(%edi)
5161 ++ leal 80(%edi),%edi
5163 ++ ja L078cbc_dec_loop6
5164 ++ movaps %xmm7,%xmm2
5165 ++ movaps %xmm0,%xmm7
5167 ++ jle L079cbc_dec_tail_collected
5168 ++ movups %xmm2,(%edi)
5169 ++ leal 16(%edi),%edi
5171 ++ movups (%esi),%xmm2
5172 ++ movaps %xmm2,%xmm6
5174 ++ jbe L080cbc_dec_one
5175 ++ movups 16(%esi),%xmm3
5176 ++ movaps %xmm3,%xmm5
5178 ++ jbe L081cbc_dec_two
5179 ++ movups 32(%esi),%xmm4
5181 ++ jbe L082cbc_dec_three
5182 ++ movups 48(%esi),%xmm5
5184 ++ jbe L083cbc_dec_four
5185 ++ movups 64(%esi),%xmm6
5186 ++ movaps %xmm7,(%esp)
5187 ++ movups (%esi),%xmm2
5188 ++ xorps %xmm7,%xmm7
5189 ++ call __aesni_decrypt6
5190 ++ movups (%esi),%xmm1
5191 ++ movups 16(%esi),%xmm0
5192 ++ xorps (%esp),%xmm2
5193 ++ xorps %xmm1,%xmm3
5194 ++ movups 32(%esi),%xmm1
5195 ++ xorps %xmm0,%xmm4
5196 ++ movups 48(%esi),%xmm0
5197 ++ xorps %xmm1,%xmm5
5198 ++ movups 64(%esi),%xmm7
5199 ++ xorps %xmm0,%xmm6
5200 ++ movups %xmm2,(%edi)
5201 ++ movups %xmm3,16(%edi)
5202 ++ movups %xmm4,32(%edi)
5203 ++ movups %xmm5,48(%edi)
5204 ++ leal 64(%edi),%edi
5205 ++ movaps %xmm6,%xmm2
5207 ++ jmp L079cbc_dec_tail_collected
5210 ++ movups (%edx),%xmm0
5211 ++ movups 16(%edx),%xmm1
5212 ++ leal 32(%edx),%edx
5213 ++ xorps %xmm0,%xmm2
5215 ++.byte 102,15,56,222,209
5217 ++ movups (%edx),%xmm1
5218 ++ leal 16(%edx),%edx
5219 ++ jnz L084dec1_loop_16
5220 ++.byte 102,15,56,223,209
5221 ++ xorps %xmm7,%xmm2
5222 ++ movaps %xmm6,%xmm7
5224 ++ jmp L079cbc_dec_tail_collected
5227 ++ xorps %xmm4,%xmm4
5228 ++ call __aesni_decrypt3
5229 ++ xorps %xmm7,%xmm2
5230 ++ xorps %xmm6,%xmm3
5231 ++ movups %xmm2,(%edi)
5232 ++ movaps %xmm3,%xmm2
5233 ++ leal 16(%edi),%edi
5234 ++ movaps %xmm5,%xmm7
5236 ++ jmp L079cbc_dec_tail_collected
5238 ++L082cbc_dec_three:
5239 ++ call __aesni_decrypt3
5240 ++ xorps %xmm7,%xmm2
5241 ++ xorps %xmm6,%xmm3
5242 ++ xorps %xmm5,%xmm4
5243 ++ movups %xmm2,(%edi)
5244 ++ movaps %xmm4,%xmm2
5245 ++ movups %xmm3,16(%edi)
5246 ++ leal 32(%edi),%edi
5247 ++ movups 32(%esi),%xmm7
5249 ++ jmp L079cbc_dec_tail_collected
5252 ++ call __aesni_decrypt4
5253 ++ movups 16(%esi),%xmm1
5254 ++ movups 32(%esi),%xmm0
5255 ++ xorps %xmm7,%xmm2
5256 ++ movups 48(%esi),%xmm7
5257 ++ xorps %xmm6,%xmm3
5258 ++ movups %xmm2,(%edi)
5259 ++ xorps %xmm1,%xmm4
5260 ++ movups %xmm3,16(%edi)
5261 ++ xorps %xmm0,%xmm5
5262 ++ movups %xmm4,32(%edi)
5263 ++ leal 48(%edi),%edi
5264 ++ movaps %xmm5,%xmm2
5266 ++L079cbc_dec_tail_collected:
5268 ++ jnz L085cbc_dec_tail_partial
5269 ++ movups %xmm2,(%edi)
5272 ++L085cbc_dec_tail_partial:
5273 ++ movaps %xmm2,(%esp)
5279 ++ movl 16(%esp),%esp
5280 ++ movl 36(%esp),%ebp
5281 ++ movups %xmm7,(%ebp)
5289 ++__aesni_set_encrypt_key:
5291 ++ jz L086bad_pointer
5293 ++ jz L086bad_pointer
5294 ++ movups (%eax),%xmm0
5295 ++ xorps %xmm4,%xmm4
5296 ++ leal 16(%edx),%edx
5302 ++ jne L089bad_keybits
5306 ++ movups %xmm0,-16(%edx)
5307 ++.byte 102,15,58,223,200,1
5308 ++ call L091key_128_cold
5309 ++.byte 102,15,58,223,200,2
5311 ++.byte 102,15,58,223,200,4
5313 ++.byte 102,15,58,223,200,8
5315 ++.byte 102,15,58,223,200,16
5317 ++.byte 102,15,58,223,200,32
5319 ++.byte 102,15,58,223,200,64
5321 ++.byte 102,15,58,223,200,128
5323 ++.byte 102,15,58,223,200,27
5325 ++.byte 102,15,58,223,200,54
5327 ++ movups %xmm0,(%edx)
5328 ++ movl %ecx,80(%edx)
5333 ++ movups %xmm0,(%edx)
5334 ++ leal 16(%edx),%edx
5336 ++ shufps $16,%xmm0,%xmm4
5337 ++ xorps %xmm4,%xmm0
5338 ++ shufps $140,%xmm0,%xmm4
5339 ++ xorps %xmm4,%xmm0
5340 ++ shufps $255,%xmm1,%xmm1
5341 ++ xorps %xmm1,%xmm0
5345 ++ movq 16(%eax),%xmm2
5347 ++ movups %xmm0,-16(%edx)
5348 ++.byte 102,15,58,223,202,1
5349 ++ call L093key_192a_cold
5350 ++.byte 102,15,58,223,202,2
5351 ++ call L094key_192b
5352 ++.byte 102,15,58,223,202,4
5353 ++ call L095key_192a
5354 ++.byte 102,15,58,223,202,8
5355 ++ call L094key_192b
5356 ++.byte 102,15,58,223,202,16
5357 ++ call L095key_192a
5358 ++.byte 102,15,58,223,202,32
5359 ++ call L094key_192b
5360 ++.byte 102,15,58,223,202,64
5361 ++ call L095key_192a
5362 ++.byte 102,15,58,223,202,128
5363 ++ call L094key_192b
5364 ++ movups %xmm0,(%edx)
5365 ++ movl %ecx,48(%edx)
5370 ++ movups %xmm0,(%edx)
5371 ++ leal 16(%edx),%edx
5373 ++L093key_192a_cold:
5374 ++ movaps %xmm2,%xmm5
5375 ++L096key_192b_warm:
5376 ++ shufps $16,%xmm0,%xmm4
5377 ++ movdqa %xmm2,%xmm3
5378 ++ xorps %xmm4,%xmm0
5379 ++ shufps $140,%xmm0,%xmm4
5381 ++ xorps %xmm4,%xmm0
5382 ++ pshufd $85,%xmm1,%xmm1
5385 ++ pshufd $255,%xmm0,%xmm3
5390 ++ movaps %xmm0,%xmm3
5391 ++ shufps $68,%xmm0,%xmm5
5392 ++ movups %xmm5,(%edx)
5393 ++ shufps $78,%xmm2,%xmm3
5394 ++ movups %xmm3,16(%edx)
5395 ++ leal 32(%edx),%edx
5396 ++ jmp L096key_192b_warm
5399 ++ movups 16(%eax),%xmm2
5401 ++ leal 16(%edx),%edx
5402 ++ movups %xmm0,-32(%edx)
5403 ++ movups %xmm2,-16(%edx)
5404 ++.byte 102,15,58,223,202,1
5405 ++ call L097key_256a_cold
5406 ++.byte 102,15,58,223,200,1
5407 ++ call L098key_256b
5408 ++.byte 102,15,58,223,202,2
5409 ++ call L099key_256a
5410 ++.byte 102,15,58,223,200,2
5411 ++ call L098key_256b
5412 ++.byte 102,15,58,223,202,4
5413 ++ call L099key_256a
5414 ++.byte 102,15,58,223,200,4
5415 ++ call L098key_256b
5416 ++.byte 102,15,58,223,202,8
5417 ++ call L099key_256a
5418 ++.byte 102,15,58,223,200,8
5419 ++ call L098key_256b
5420 ++.byte 102,15,58,223,202,16
5421 ++ call L099key_256a
5422 ++.byte 102,15,58,223,200,16
5423 ++ call L098key_256b
5424 ++.byte 102,15,58,223,202,32
5425 ++ call L099key_256a
5426 ++.byte 102,15,58,223,200,32
5427 ++ call L098key_256b
5428 ++.byte 102,15,58,223,202,64
5429 ++ call L099key_256a
5430 ++ movups %xmm0,(%edx)
5431 ++ movl %ecx,16(%edx)
5436 ++ movups %xmm2,(%edx)
5437 ++ leal 16(%edx),%edx
5438 ++L097key_256a_cold:
5439 ++ shufps $16,%xmm0,%xmm4
5440 ++ xorps %xmm4,%xmm0
5441 ++ shufps $140,%xmm0,%xmm4
5442 ++ xorps %xmm4,%xmm0
5443 ++ shufps $255,%xmm1,%xmm1
5444 ++ xorps %xmm1,%xmm0
5448 ++ movups %xmm0,(%edx)
5449 ++ leal 16(%edx),%edx
5450 ++ shufps $16,%xmm2,%xmm4
5451 ++ xorps %xmm4,%xmm2
5452 ++ shufps $140,%xmm2,%xmm4
5453 ++ xorps %xmm4,%xmm2
5454 ++ shufps $170,%xmm1,%xmm1
5455 ++ xorps %xmm1,%xmm2
5465 ++.globl _aesni_set_encrypt_key
5467 ++_aesni_set_encrypt_key:
5468 ++L_aesni_set_encrypt_key_begin:
5469 ++ movl 4(%esp),%eax
5470 ++ movl 8(%esp),%ecx
5471 ++ movl 12(%esp),%edx
5472 ++ call __aesni_set_encrypt_key
5474 ++.globl _aesni_set_decrypt_key
5476 ++_aesni_set_decrypt_key:
5477 ++L_aesni_set_decrypt_key_begin:
5478 ++ movl 4(%esp),%eax
5479 ++ movl 8(%esp),%ecx
5480 ++ movl 12(%esp),%edx
5481 ++ call __aesni_set_encrypt_key
5482 ++ movl 12(%esp),%edx
5485 ++ jnz L100dec_key_ret
5486 ++ leal 16(%edx,%ecx,1),%eax
5487 ++ movups (%edx),%xmm0
5488 ++ movups (%eax),%xmm1
5489 ++ movups %xmm0,(%eax)
5490 ++ movups %xmm1,(%edx)
5491 ++ leal 16(%edx),%edx
5492 ++ leal -16(%eax),%eax
5493 ++L101dec_key_inverse:
5494 ++ movups (%edx),%xmm0
5495 ++ movups (%eax),%xmm1
5496 ++.byte 102,15,56,219,192
5497 ++.byte 102,15,56,219,201
5498 ++ leal 16(%edx),%edx
5499 ++ leal -16(%eax),%eax
5500 ++ movups %xmm0,16(%eax)
5501 ++ movups %xmm1,-16(%edx)
5503 ++ ja L101dec_key_inverse
5504 ++ movups (%edx),%xmm0
5505 ++.byte 102,15,56,219,192
5506 ++ movups %xmm0,(%edx)
5510 ++.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
5511 ++.byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
5512 ++.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
5513 ++.byte 115,108,46,111,114,103,62,0
5514 +diff --git a/crypto/aes/asm/vpaes-x86-mac.S b/crypto/aes/asm/vpaes-x86-mac.S
5515 +new file mode 100644
5516 +index 0000000..f6d164f
5518 ++++ b/crypto/aes/asm/vpaes-x86-mac.S
5520 ++.file "vpaes-x86.s"
5524 ++.long 218628480,235210255,168496130,67568393
5525 ++.long 252381056,17041926,33884169,51187212
5526 ++.long 252645135,252645135,252645135,252645135
5527 ++.long 1512730624,3266504856,1377990664,3401244816
5528 ++.long 830229760,1275146365,2969422977,3447763452
5529 ++.long 3411033600,2979783055,338359620,2782886510
5530 ++.long 4209124096,907596821,221174255,1006095553
5531 ++.long 191964160,3799684038,3164090317,1589111125
5532 ++.long 182528256,1777043520,2877432650,3265356744
5533 ++.long 1874708224,3503451415,3305285752,363511674
5534 ++.long 1606117888,3487855781,1093350906,2384367825
5535 ++.long 197121,67569157,134941193,202313229
5536 ++.long 67569157,134941193,202313229,197121
5537 ++.long 134941193,202313229,197121,67569157
5538 ++.long 202313229,197121,67569157,134941193
5539 ++.long 33619971,100992007,168364043,235736079
5540 ++.long 235736079,33619971,100992007,168364043
5541 ++.long 168364043,235736079,33619971,100992007
5542 ++.long 100992007,168364043,235736079,33619971
5543 ++.long 50462976,117835012,185207048,252579084
5544 ++.long 252314880,51251460,117574920,184942860
5545 ++.long 184682752,252054788,50987272,118359308
5546 ++.long 118099200,185467140,251790600,50727180
5547 ++.long 2946363062,528716217,1300004225,1881839624
5548 ++.long 1532713819,1532713819,1532713819,1532713819
5549 ++.long 3602276352,4288629033,3737020424,4153884961
5550 ++.long 1354558464,32357713,2958822624,3775749553
5551 ++.long 1201988352,132424512,1572796698,503232858
5552 ++.long 2213177600,1597421020,4103937655,675398315
5553 ++.long 2749646592,4273543773,1511898873,121693092
5554 ++.long 3040248576,1103263732,2871565598,1608280554
5555 ++.long 2236667136,2588920351,482954393,64377734
5556 ++.long 3069987328,291237287,2117370568,3650299247
5557 ++.long 533321216,3573750986,2572112006,1401264716
5558 ++.long 1339849704,2721158661,548607111,3445553514
5559 ++.long 2128193280,3054596040,2183486460,1257083700
5560 ++.long 655635200,1165381986,3923443150,2344132524
5561 ++.long 190078720,256924420,290342170,357187870
5562 ++.long 1610966272,2263057382,4103205268,309794674
5563 ++.long 2592527872,2233205587,1335446729,3402964816
5564 ++.long 3973531904,3225098121,3002836325,1918774430
5565 ++.long 3870401024,2102906079,2284471353,4117666579
5566 ++.long 617007872,1021508343,366931923,691083277
5567 ++.long 2528395776,3491914898,2968704004,1613121270
5568 ++.long 3445188352,3247741094,844474987,4093578302
5569 ++.long 651481088,1190302358,1689581232,574775300
5570 ++.long 4289380608,206939853,2555985458,2489840491
5571 ++.long 2130264064,327674451,3566485037,3349835193
5572 ++.long 2470714624,316102159,3636825756,3393945945
5573 ++.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
5574 ++.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
5575 ++.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
5576 ++.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
5577 ++.byte 118,101,114,115,105,116,121,41,0
5582 ++ movdqa -48(%ebp),%xmm7
5583 ++ movdqa -16(%ebp),%xmm6
5586 ++__vpaes_encrypt_core:
5588 ++ movl 240(%edx),%eax
5589 ++ movdqa %xmm6,%xmm1
5590 ++ movdqa (%ebp),%xmm2
5591 ++ pandn %xmm0,%xmm1
5592 ++ movdqu (%edx),%xmm5
5595 ++.byte 102,15,56,0,208
5596 ++ movdqa 16(%ebp),%xmm0
5597 ++.byte 102,15,56,0,193
5601 ++ leal 192(%ebp),%ebx
5602 ++ jmp L000enc_entry
5605 ++ movdqa 32(%ebp),%xmm4
5606 ++.byte 102,15,56,0,226
5608 ++ movdqa 48(%ebp),%xmm0
5609 ++.byte 102,15,56,0,195
5611 ++ movdqa 64(%ebp),%xmm5
5612 ++.byte 102,15,56,0,234
5613 ++ movdqa -64(%ebx,%ecx,1),%xmm1
5614 ++ movdqa 80(%ebp),%xmm2
5615 ++.byte 102,15,56,0,211
5617 ++ movdqa (%ebx,%ecx,1),%xmm4
5618 ++ movdqa %xmm0,%xmm3
5619 ++.byte 102,15,56,0,193
5622 ++.byte 102,15,56,0,220
5625 ++.byte 102,15,56,0,193
5630 ++ movdqa %xmm6,%xmm1
5631 ++ pandn %xmm0,%xmm1
5634 ++ movdqa -32(%ebp),%xmm5
5635 ++.byte 102,15,56,0,232
5637 ++ movdqa %xmm7,%xmm3
5638 ++.byte 102,15,56,0,217
5640 ++ movdqa %xmm7,%xmm4
5641 ++.byte 102,15,56,0,224
5643 ++ movdqa %xmm7,%xmm2
5644 ++.byte 102,15,56,0,211
5646 ++ movdqa %xmm7,%xmm3
5647 ++ movdqu (%edx),%xmm5
5648 ++.byte 102,15,56,0,220
5651 ++ movdqa 96(%ebp),%xmm4
5652 ++ movdqa 112(%ebp),%xmm0
5653 ++.byte 102,15,56,0,226
5655 ++.byte 102,15,56,0,195
5656 ++ movdqa 64(%ebx,%ecx,1),%xmm1
5658 ++.byte 102,15,56,0,193
5661 ++__vpaes_decrypt_core:
5662 ++ movl 240(%edx),%eax
5663 ++ leal 608(%ebp),%ebx
5664 ++ movdqa %xmm6,%xmm1
5665 ++ movdqa -64(%ebx),%xmm2
5666 ++ pandn %xmm0,%xmm1
5669 ++ movdqu (%edx),%xmm5
5672 ++.byte 102,15,56,0,208
5673 ++ movdqa -48(%ebx),%xmm0
5675 ++.byte 102,15,56,0,193
5678 ++ movdqa 176(%ebp),%xmm5
5681 ++ leal -352(%ebx,%ecx,1),%ecx
5682 ++ jmp L002dec_entry
5685 ++ movdqa -32(%ebx),%xmm4
5686 ++.byte 102,15,56,0,226
5688 ++ movdqa -16(%ebx),%xmm0
5689 ++.byte 102,15,56,0,195
5692 ++.byte 102,15,56,0,197
5693 ++ movdqa (%ebx),%xmm4
5694 ++.byte 102,15,56,0,226
5696 ++ movdqa 16(%ebx),%xmm0
5697 ++.byte 102,15,56,0,195
5700 ++.byte 102,15,56,0,197
5701 ++ movdqa 32(%ebx),%xmm4
5702 ++.byte 102,15,56,0,226
5704 ++ movdqa 48(%ebx),%xmm0
5705 ++.byte 102,15,56,0,195
5707 ++.byte 102,15,56,0,197
5708 ++ movdqa 64(%ebx),%xmm4
5709 ++.byte 102,15,56,0,226
5711 ++ movdqa 80(%ebx),%xmm0
5712 ++.byte 102,15,56,0,195
5714 ++.byte 102,15,58,15,237,12
5716 ++ movdqa %xmm6,%xmm1
5717 ++ pandn %xmm0,%xmm1
5720 ++ movdqa -32(%ebp),%xmm2
5721 ++.byte 102,15,56,0,208
5723 ++ movdqa %xmm7,%xmm3
5724 ++.byte 102,15,56,0,217
5726 ++ movdqa %xmm7,%xmm4
5727 ++.byte 102,15,56,0,224
5729 ++ movdqa %xmm7,%xmm2
5730 ++.byte 102,15,56,0,211
5732 ++ movdqa %xmm7,%xmm3
5733 ++.byte 102,15,56,0,220
5735 ++ movdqu (%edx),%xmm0
5737 ++ movdqa 96(%ebx),%xmm4
5738 ++.byte 102,15,56,0,226
5740 ++ movdqa 112(%ebx),%xmm0
5741 ++ movdqa (%ecx),%xmm2
5742 ++.byte 102,15,56,0,195
5744 ++.byte 102,15,56,0,194
5747 ++__vpaes_schedule_core:
5749 ++ movdqu (%esi),%xmm0
5750 ++ movdqa 320(%ebp),%xmm2
5751 ++ movdqa %xmm0,%xmm3
5753 ++ movdqa %xmm2,4(%esp)
5754 ++ call __vpaes_schedule_transform
5755 ++ movdqa %xmm0,%xmm7
5757 ++ jnz L004schedule_am_decrypting
5758 ++ movdqu %xmm0,(%edx)
5759 ++ jmp L005schedule_go
5760 ++L004schedule_am_decrypting:
5761 ++ movdqa 256(%ebp,%ecx,1),%xmm1
5762 ++.byte 102,15,56,0,217
5763 ++ movdqu %xmm3,(%edx)
5767 ++ ja L006schedule_256
5768 ++ je L007schedule_192
5771 ++L009loop_schedule_128:
5772 ++ call __vpaes_schedule_round
5774 ++ jz L010schedule_mangle_last
5775 ++ call __vpaes_schedule_mangle
5776 ++ jmp L009loop_schedule_128
5779 ++ movdqu 8(%esi),%xmm0
5780 ++ call __vpaes_schedule_transform
5781 ++ movdqa %xmm0,%xmm6
5783 ++ movhlps %xmm4,%xmm6
5785 ++L011loop_schedule_192:
5786 ++ call __vpaes_schedule_round
5787 ++.byte 102,15,58,15,198,8
5788 ++ call __vpaes_schedule_mangle
5789 ++ call __vpaes_schedule_192_smear
5790 ++ call __vpaes_schedule_mangle
5791 ++ call __vpaes_schedule_round
5793 ++ jz L010schedule_mangle_last
5794 ++ call __vpaes_schedule_mangle
5795 ++ call __vpaes_schedule_192_smear
5796 ++ jmp L011loop_schedule_192
5799 ++ movdqu 16(%esi),%xmm0
5800 ++ call __vpaes_schedule_transform
5802 ++L012loop_schedule_256:
5803 ++ call __vpaes_schedule_mangle
5804 ++ movdqa %xmm0,%xmm6
5805 ++ call __vpaes_schedule_round
5807 ++ jz L010schedule_mangle_last
5808 ++ call __vpaes_schedule_mangle
5809 ++ pshufd $255,%xmm0,%xmm0
5810 ++ movdqa %xmm7,20(%esp)
5811 ++ movdqa %xmm6,%xmm7
5812 ++ call L_vpaes_schedule_low_round
5813 ++ movdqa 20(%esp),%xmm7
5814 ++ jmp L012loop_schedule_256
5816 ++L010schedule_mangle_last:
5817 ++ leal 384(%ebp),%ebx
5819 ++ jnz L013schedule_mangle_last_dec
5820 ++ movdqa 256(%ebp,%ecx,1),%xmm1
5821 ++.byte 102,15,56,0,193
5822 ++ leal 352(%ebp),%ebx
5824 ++L013schedule_mangle_last_dec:
5826 ++ pxor 336(%ebp),%xmm0
5827 ++ call __vpaes_schedule_transform
5828 ++ movdqu %xmm0,(%edx)
5839 ++__vpaes_schedule_192_smear:
5840 ++ pshufd $128,%xmm6,%xmm0
5842 ++ pshufd $254,%xmm7,%xmm0
5844 ++ movdqa %xmm6,%xmm0
5846 ++ movhlps %xmm1,%xmm6
5849 ++__vpaes_schedule_round:
5850 ++ movdqa 8(%esp),%xmm2
5852 ++.byte 102,15,58,15,202,15
5853 ++.byte 102,15,58,15,210,15
5855 ++ pshufd $255,%xmm0,%xmm0
5856 ++.byte 102,15,58,15,192,1
5857 ++ movdqa %xmm2,8(%esp)
5858 ++L_vpaes_schedule_low_round:
5859 ++ movdqa %xmm7,%xmm1
5862 ++ movdqa %xmm7,%xmm1
5865 ++ pxor 336(%ebp),%xmm7
5866 ++ movdqa -16(%ebp),%xmm4
5867 ++ movdqa -48(%ebp),%xmm5
5868 ++ movdqa %xmm4,%xmm1
5869 ++ pandn %xmm0,%xmm1
5872 ++ movdqa -32(%ebp),%xmm2
5873 ++.byte 102,15,56,0,208
5875 ++ movdqa %xmm5,%xmm3
5876 ++.byte 102,15,56,0,217
5878 ++ movdqa %xmm5,%xmm4
5879 ++.byte 102,15,56,0,224
5881 ++ movdqa %xmm5,%xmm2
5882 ++.byte 102,15,56,0,211
5884 ++ movdqa %xmm5,%xmm3
5885 ++.byte 102,15,56,0,220
5887 ++ movdqa 32(%ebp),%xmm4
5888 ++.byte 102,15,56,0,226
5889 ++ movdqa 48(%ebp),%xmm0
5890 ++.byte 102,15,56,0,195
5893 ++ movdqa %xmm0,%xmm7
5896 ++__vpaes_schedule_transform:
5897 ++ movdqa -16(%ebp),%xmm2
5898 ++ movdqa %xmm2,%xmm1
5899 ++ pandn %xmm0,%xmm1
5902 ++ movdqa (%ebx),%xmm2
5903 ++.byte 102,15,56,0,208
5904 ++ movdqa 16(%ebx),%xmm0
5905 ++.byte 102,15,56,0,193
5909 ++__vpaes_schedule_mangle:
5910 ++ movdqa %xmm0,%xmm4
5911 ++ movdqa 128(%ebp),%xmm5
5913 ++ jnz L014schedule_mangle_dec
5915 ++ pxor 336(%ebp),%xmm4
5916 ++.byte 102,15,56,0,229
5917 ++ movdqa %xmm4,%xmm3
5918 ++.byte 102,15,56,0,229
5920 ++.byte 102,15,56,0,229
5922 ++ jmp L015schedule_mangle_both
5924 ++L014schedule_mangle_dec:
5925 ++ movdqa -16(%ebp),%xmm2
5926 ++ leal 416(%ebp),%esi
5927 ++ movdqa %xmm2,%xmm1
5928 ++ pandn %xmm4,%xmm1
5931 ++ movdqa (%esi),%xmm2
5932 ++.byte 102,15,56,0,212
5933 ++ movdqa 16(%esi),%xmm3
5934 ++.byte 102,15,56,0,217
5936 ++.byte 102,15,56,0,221
5937 ++ movdqa 32(%esi),%xmm2
5938 ++.byte 102,15,56,0,212
5940 ++ movdqa 48(%esi),%xmm3
5941 ++.byte 102,15,56,0,217
5943 ++.byte 102,15,56,0,221
5944 ++ movdqa 64(%esi),%xmm2
5945 ++.byte 102,15,56,0,212
5947 ++ movdqa 80(%esi),%xmm3
5948 ++.byte 102,15,56,0,217
5950 ++.byte 102,15,56,0,221
5951 ++ movdqa 96(%esi),%xmm2
5952 ++.byte 102,15,56,0,212
5954 ++ movdqa 112(%esi),%xmm3
5955 ++.byte 102,15,56,0,217
5958 ++L015schedule_mangle_both:
5959 ++ movdqa 256(%ebp,%ecx,1),%xmm1
5960 ++.byte 102,15,56,0,217
5963 ++ movdqu %xmm3,(%edx)
5965 ++.globl _vpaes_set_encrypt_key
5967 ++_vpaes_set_encrypt_key:
5968 ++L_vpaes_set_encrypt_key_begin:
5973 ++ movl 20(%esp),%esi
5974 ++ leal -56(%esp),%ebx
5975 ++ movl 24(%esp),%eax
5977 ++ movl 28(%esp),%edx
5979 ++ movl %ebx,48(%esp)
5983 ++ movl %ebx,240(%edx)
5986 ++ leal L_vpaes_consts+0x30-L016pic_point,%ebp
5987 ++ call __vpaes_schedule_core
5989 ++ movl 48(%esp),%esp
5996 ++.globl _vpaes_set_decrypt_key
5998 ++_vpaes_set_decrypt_key:
5999 ++L_vpaes_set_decrypt_key_begin:
6004 ++ movl 20(%esp),%esi
6005 ++ leal -56(%esp),%ebx
6006 ++ movl 24(%esp),%eax
6008 ++ movl 28(%esp),%edx
6010 ++ movl %ebx,48(%esp)
6014 ++ movl %ebx,240(%edx)
6016 ++ leal 16(%edx,%ebx,1),%edx
6022 ++ leal L_vpaes_consts+0x30-L017pic_point,%ebp
6023 ++ call __vpaes_schedule_core
6025 ++ movl 48(%esp),%esp
6032 ++.globl _vpaes_encrypt
6035 ++L_vpaes_encrypt_begin:
6040 ++ leal L_vpaes_consts+0x30-L018pic_point,%ebp
6041 ++ call __vpaes_preheat
6043 ++ movl 20(%esp),%esi
6044 ++ leal -56(%esp),%ebx
6045 ++ movl 24(%esp),%edi
6047 ++ movl 28(%esp),%edx
6049 ++ movl %ebx,48(%esp)
6050 ++ movdqu (%esi),%xmm0
6051 ++ call __vpaes_encrypt_core
6052 ++ movdqu %xmm0,(%edi)
6053 ++ movl 48(%esp),%esp
6059 ++.globl _vpaes_decrypt
6062 ++L_vpaes_decrypt_begin:
6067 ++ leal L_vpaes_consts+0x30-L019pic_point,%ebp
6068 ++ call __vpaes_preheat
6070 ++ movl 20(%esp),%esi
6071 ++ leal -56(%esp),%ebx
6072 ++ movl 24(%esp),%edi
6074 ++ movl 28(%esp),%edx
6076 ++ movl %ebx,48(%esp)
6077 ++ movdqu (%esi),%xmm0
6078 ++ call __vpaes_decrypt_core
6079 ++ movdqu %xmm0,(%edi)
6080 ++ movl 48(%esp),%esp
6086 ++.globl _vpaes_cbc_encrypt
6088 ++_vpaes_cbc_encrypt:
6089 ++L_vpaes_cbc_encrypt_begin:
6094 ++ movl 20(%esp),%esi
6095 ++ movl 24(%esp),%edi
6096 ++ movl 28(%esp),%eax
6097 ++ movl 32(%esp),%edx
6100 ++ leal -56(%esp),%ebx
6101 ++ movl 36(%esp),%ebp
6103 ++ movl 40(%esp),%ecx
6105 ++ movdqu (%ebp),%xmm1
6107 ++ movl %ebx,48(%esp)
6109 ++ movl %edx,4(%esp)
6110 ++ movl %ebp,8(%esp)
6112 ++ leal L_vpaes_consts+0x30-L021pic_point,%ebp
6113 ++ call __vpaes_preheat
6116 ++ je L022cbc_dec_loop
6117 ++ jmp L023cbc_enc_loop
6120 ++ movdqu (%esi),%xmm0
6122 ++ call __vpaes_encrypt_core
6124 ++ movl 4(%esp),%edx
6125 ++ movdqa %xmm0,%xmm1
6126 ++ movdqu %xmm0,(%ebx,%esi,1)
6127 ++ leal 16(%esi),%esi
6129 ++ jnc L023cbc_enc_loop
6133 ++ movdqu (%esi),%xmm0
6134 ++ movdqa %xmm1,16(%esp)
6135 ++ movdqa %xmm0,32(%esp)
6136 ++ call __vpaes_decrypt_core
6138 ++ movl 4(%esp),%edx
6139 ++ pxor 16(%esp),%xmm0
6140 ++ movdqa 32(%esp),%xmm1
6141 ++ movdqu %xmm0,(%ebx,%esi,1)
6142 ++ leal 16(%esi),%esi
6144 ++ jnc L022cbc_dec_loop
6146 ++ movl 8(%esp),%ebx
6147 ++ movl 48(%esp),%esp
6148 ++ movdqu %xmm1,(%ebx)
6155 +diff --git a/crypto/bf/asm/bf-586-mac.S b/crypto/bf/asm/bf-586-mac.S
6156 +new file mode 100644
6157 +index 0000000..bf02384
6159 ++++ b/crypto/bf/asm/bf-586-mac.S
6163 ++.globl _BF_encrypt
6166 ++L_BF_encrypt_begin:
6170 ++ movl 12(%esp),%ebx
6171 ++ movl 16(%esp),%ebp
6174 ++ # Load the 2 words
6176 ++ movl 4(%ebx),%esi
6183 ++ movl 4(%ebp),%edx
6192 ++ movl 72(%ebp,%eax,4),%eax
6193 ++ movl 1096(%ebp,%ebx,4),%ebx
6195 ++ movl 2120(%ebp,%ecx,4),%eax
6197 ++ movl 3144(%ebp,%edx,4),%edx
6203 ++ movl 8(%ebp),%edx
6212 ++ movl 72(%ebp,%eax,4),%eax
6213 ++ movl 1096(%ebp,%ebx,4),%ebx
6215 ++ movl 2120(%ebp,%ecx,4),%eax
6217 ++ movl 3144(%ebp,%edx,4),%edx
6223 ++ movl 12(%ebp),%edx
6232 ++ movl 72(%ebp,%eax,4),%eax
6233 ++ movl 1096(%ebp,%ebx,4),%ebx
6235 ++ movl 2120(%ebp,%ecx,4),%eax
6237 ++ movl 3144(%ebp,%edx,4),%edx
6243 ++ movl 16(%ebp),%edx
6252 ++ movl 72(%ebp,%eax,4),%eax
6253 ++ movl 1096(%ebp,%ebx,4),%ebx
6255 ++ movl 2120(%ebp,%ecx,4),%eax
6257 ++ movl 3144(%ebp,%edx,4),%edx
6263 ++ movl 20(%ebp),%edx
6272 ++ movl 72(%ebp,%eax,4),%eax
6273 ++ movl 1096(%ebp,%ebx,4),%ebx
6275 ++ movl 2120(%ebp,%ecx,4),%eax
6277 ++ movl 3144(%ebp,%edx,4),%edx
6283 ++ movl 24(%ebp),%edx
6292 ++ movl 72(%ebp,%eax,4),%eax
6293 ++ movl 1096(%ebp,%ebx,4),%ebx
6295 ++ movl 2120(%ebp,%ecx,4),%eax
6297 ++ movl 3144(%ebp,%edx,4),%edx
6303 ++ movl 28(%ebp),%edx
6312 ++ movl 72(%ebp,%eax,4),%eax
6313 ++ movl 1096(%ebp,%ebx,4),%ebx
6315 ++ movl 2120(%ebp,%ecx,4),%eax
6317 ++ movl 3144(%ebp,%edx,4),%edx
6323 ++ movl 32(%ebp),%edx
6332 ++ movl 72(%ebp,%eax,4),%eax
6333 ++ movl 1096(%ebp,%ebx,4),%ebx
6335 ++ movl 2120(%ebp,%ecx,4),%eax
6337 ++ movl 3144(%ebp,%edx,4),%edx
6343 ++ movl 36(%ebp),%edx
6352 ++ movl 72(%ebp,%eax,4),%eax
6353 ++ movl 1096(%ebp,%ebx,4),%ebx
6355 ++ movl 2120(%ebp,%ecx,4),%eax
6357 ++ movl 3144(%ebp,%edx,4),%edx
6363 ++ movl 40(%ebp),%edx
6372 ++ movl 72(%ebp,%eax,4),%eax
6373 ++ movl 1096(%ebp,%ebx,4),%ebx
6375 ++ movl 2120(%ebp,%ecx,4),%eax
6377 ++ movl 3144(%ebp,%edx,4),%edx
6383 ++ movl 44(%ebp),%edx
6392 ++ movl 72(%ebp,%eax,4),%eax
6393 ++ movl 1096(%ebp,%ebx,4),%ebx
6395 ++ movl 2120(%ebp,%ecx,4),%eax
6397 ++ movl 3144(%ebp,%edx,4),%edx
6403 ++ movl 48(%ebp),%edx
6412 ++ movl 72(%ebp,%eax,4),%eax
6413 ++ movl 1096(%ebp,%ebx,4),%ebx
6415 ++ movl 2120(%ebp,%ecx,4),%eax
6417 ++ movl 3144(%ebp,%edx,4),%edx
6423 ++ movl 52(%ebp),%edx
6432 ++ movl 72(%ebp,%eax,4),%eax
6433 ++ movl 1096(%ebp,%ebx,4),%ebx
6435 ++ movl 2120(%ebp,%ecx,4),%eax
6437 ++ movl 3144(%ebp,%edx,4),%edx
6443 ++ movl 56(%ebp),%edx
6452 ++ movl 72(%ebp,%eax,4),%eax
6453 ++ movl 1096(%ebp,%ebx,4),%ebx
6455 ++ movl 2120(%ebp,%ecx,4),%eax
6457 ++ movl 3144(%ebp,%edx,4),%edx
6463 ++ movl 60(%ebp),%edx
6472 ++ movl 72(%ebp,%eax,4),%eax
6473 ++ movl 1096(%ebp,%ebx,4),%ebx
6475 ++ movl 2120(%ebp,%ecx,4),%eax
6477 ++ movl 3144(%ebp,%edx,4),%edx
6483 ++ movl 64(%ebp),%edx
6492 ++ movl 72(%ebp,%eax,4),%eax
6493 ++ movl 1096(%ebp,%ebx,4),%ebx
6495 ++ movl 2120(%ebp,%ecx,4),%eax
6497 ++ movl 3144(%ebp,%edx,4),%edx
6499 ++ # Load parameter 0 (16) enc=1
6500 ++ movl 20(%esp),%eax
6502 ++ movl 68(%ebp),%edx
6504 ++ movl %edi,4(%eax)
6511 ++.globl _BF_decrypt
6514 ++L_BF_decrypt_begin:
6518 ++ movl 12(%esp),%ebx
6519 ++ movl 16(%esp),%ebp
6522 ++ # Load the 2 words
6524 ++ movl 4(%ebx),%esi
6526 ++ movl 68(%ebp),%ebx
6531 ++ movl 64(%ebp),%edx
6540 ++ movl 72(%ebp,%eax,4),%eax
6541 ++ movl 1096(%ebp,%ebx,4),%ebx
6543 ++ movl 2120(%ebp,%ecx,4),%eax
6545 ++ movl 3144(%ebp,%edx,4),%edx
6551 ++ movl 60(%ebp),%edx
6560 ++ movl 72(%ebp,%eax,4),%eax
6561 ++ movl 1096(%ebp,%ebx,4),%ebx
6563 ++ movl 2120(%ebp,%ecx,4),%eax
6565 ++ movl 3144(%ebp,%edx,4),%edx
6571 ++ movl 56(%ebp),%edx
6580 ++ movl 72(%ebp,%eax,4),%eax
6581 ++ movl 1096(%ebp,%ebx,4),%ebx
6583 ++ movl 2120(%ebp,%ecx,4),%eax
6585 ++ movl 3144(%ebp,%edx,4),%edx
6591 ++ movl 52(%ebp),%edx
6600 ++ movl 72(%ebp,%eax,4),%eax
6601 ++ movl 1096(%ebp,%ebx,4),%ebx
6603 ++ movl 2120(%ebp,%ecx,4),%eax
6605 ++ movl 3144(%ebp,%edx,4),%edx
6611 ++ movl 48(%ebp),%edx
6620 ++ movl 72(%ebp,%eax,4),%eax
6621 ++ movl 1096(%ebp,%ebx,4),%ebx
6623 ++ movl 2120(%ebp,%ecx,4),%eax
6625 ++ movl 3144(%ebp,%edx,4),%edx
6631 ++ movl 44(%ebp),%edx
6640 ++ movl 72(%ebp,%eax,4),%eax
6641 ++ movl 1096(%ebp,%ebx,4),%ebx
6643 ++ movl 2120(%ebp,%ecx,4),%eax
6645 ++ movl 3144(%ebp,%edx,4),%edx
6651 ++ movl 40(%ebp),%edx
6660 ++ movl 72(%ebp,%eax,4),%eax
6661 ++ movl 1096(%ebp,%ebx,4),%ebx
6663 ++ movl 2120(%ebp,%ecx,4),%eax
6665 ++ movl 3144(%ebp,%edx,4),%edx
6671 ++ movl 36(%ebp),%edx
6680 ++ movl 72(%ebp,%eax,4),%eax
6681 ++ movl 1096(%ebp,%ebx,4),%ebx
6683 ++ movl 2120(%ebp,%ecx,4),%eax
6685 ++ movl 3144(%ebp,%edx,4),%edx
6691 ++ movl 32(%ebp),%edx
6700 ++ movl 72(%ebp,%eax,4),%eax
6701 ++ movl 1096(%ebp,%ebx,4),%ebx
6703 ++ movl 2120(%ebp,%ecx,4),%eax
6705 ++ movl 3144(%ebp,%edx,4),%edx
6711 ++ movl 28(%ebp),%edx
6720 ++ movl 72(%ebp,%eax,4),%eax
6721 ++ movl 1096(%ebp,%ebx,4),%ebx
6723 ++ movl 2120(%ebp,%ecx,4),%eax
6725 ++ movl 3144(%ebp,%edx,4),%edx
6731 ++ movl 24(%ebp),%edx
6740 ++ movl 72(%ebp,%eax,4),%eax
6741 ++ movl 1096(%ebp,%ebx,4),%ebx
6743 ++ movl 2120(%ebp,%ecx,4),%eax
6745 ++ movl 3144(%ebp,%edx,4),%edx
6751 ++ movl 20(%ebp),%edx
6760 ++ movl 72(%ebp,%eax,4),%eax
6761 ++ movl 1096(%ebp,%ebx,4),%ebx
6763 ++ movl 2120(%ebp,%ecx,4),%eax
6765 ++ movl 3144(%ebp,%edx,4),%edx
6771 ++ movl 16(%ebp),%edx
6780 ++ movl 72(%ebp,%eax,4),%eax
6781 ++ movl 1096(%ebp,%ebx,4),%ebx
6783 ++ movl 2120(%ebp,%ecx,4),%eax
6785 ++ movl 3144(%ebp,%edx,4),%edx
6791 ++ movl 12(%ebp),%edx
6800 ++ movl 72(%ebp,%eax,4),%eax
6801 ++ movl 1096(%ebp,%ebx,4),%ebx
6803 ++ movl 2120(%ebp,%ecx,4),%eax
6805 ++ movl 3144(%ebp,%edx,4),%edx
6811 ++ movl 8(%ebp),%edx
6820 ++ movl 72(%ebp,%eax,4),%eax
6821 ++ movl 1096(%ebp,%ebx,4),%ebx
6823 ++ movl 2120(%ebp,%ecx,4),%eax
6825 ++ movl 3144(%ebp,%edx,4),%edx
6831 ++ movl 4(%ebp),%edx
6840 ++ movl 72(%ebp,%eax,4),%eax
6841 ++ movl 1096(%ebp,%ebx,4),%ebx
6843 ++ movl 2120(%ebp,%ecx,4),%eax
6845 ++ movl 3144(%ebp,%edx,4),%edx
6847 ++ # Load parameter 0 (1) enc=0
6848 ++ movl 20(%esp),%eax
6852 ++ movl %edi,4(%eax)
6859 ++.globl _BF_cbc_encrypt
6862 ++L_BF_cbc_encrypt_begin:
6868 ++ movl 28(%esp),%ebp
6869 ++ # getting iv ptr from parameter 4
6870 ++ movl 36(%esp),%ebx
6872 ++ movl 4(%ebx),%edi
6878 ++ movl 36(%esp),%esi
6879 ++ movl 40(%esp),%edi
6880 ++ # getting encrypt flag from parameter 5
6881 ++ movl 56(%esp),%ecx
6882 ++ # get and push parameter 3
6883 ++ movl 48(%esp),%eax
6888 ++ andl $4294967288,%ebp
6889 ++ movl 8(%esp),%eax
6890 ++ movl 12(%esp),%ebx
6891 ++ jz L001encrypt_finish
6894 ++ movl 4(%esi),%edx
6899 ++ movl %eax,8(%esp)
6900 ++ movl %ebx,12(%esp)
6901 ++ call L_BF_encrypt_begin
6902 ++ movl 8(%esp),%eax
6903 ++ movl 12(%esp),%ebx
6907 ++ movl %ebx,4(%edi)
6911 ++ jnz L002encrypt_loop
6912 ++L001encrypt_finish:
6913 ++ movl 52(%esp),%ebp
6916 ++ call L004PIC_point
6919 ++ leal L005cbc_enc_jmp_table-L004PIC_point(%edx),%ecx
6920 ++ movl (%ecx,%ebp,4),%ebp
6947 ++ movl %eax,8(%esp)
6948 ++ movl %ebx,12(%esp)
6949 ++ call L_BF_encrypt_begin
6950 ++ movl 8(%esp),%eax
6951 ++ movl 12(%esp),%ebx
6955 ++ movl %ebx,4(%edi)
6958 ++ andl $4294967288,%ebp
6959 ++ movl 16(%esp),%eax
6960 ++ movl 20(%esp),%ebx
6961 ++ jz L014decrypt_finish
6964 ++ movl 4(%esi),%ebx
6967 ++ movl %eax,8(%esp)
6968 ++ movl %ebx,12(%esp)
6969 ++ call L_BF_decrypt_begin
6970 ++ movl 8(%esp),%eax
6971 ++ movl 12(%esp),%ebx
6974 ++ movl 16(%esp),%ecx
6975 ++ movl 20(%esp),%edx
6979 ++ movl 4(%esi),%ebx
6981 ++ movl %edx,4(%edi)
6982 ++ movl %eax,16(%esp)
6983 ++ movl %ebx,20(%esp)
6987 ++ jnz L015decrypt_loop
6988 ++L014decrypt_finish:
6989 ++ movl 52(%esp),%ebp
6993 ++ movl 4(%esi),%ebx
6996 ++ movl %eax,8(%esp)
6997 ++ movl %ebx,12(%esp)
6998 ++ call L_BF_decrypt_begin
6999 ++ movl 8(%esp),%eax
7000 ++ movl 12(%esp),%ebx
7003 ++ movl 16(%esp),%ecx
7004 ++ movl 20(%esp),%edx
7008 ++ movl 4(%esi),%ebx
7031 ++ movl 60(%esp),%ecx
7034 ++ movl %ebx,4(%ecx)
7041 ++L005cbc_enc_jmp_table:
7043 ++.long L013ej1-L004PIC_point
7044 ++.long L012ej2-L004PIC_point
7045 ++.long L011ej3-L004PIC_point
7046 ++.long L009ej4-L004PIC_point
7047 ++.long L008ej5-L004PIC_point
7048 ++.long L007ej6-L004PIC_point
7049 ++.long L006ej7-L004PIC_point
7051 +diff --git a/crypto/bn/asm/bn-586-mac.S b/crypto/bn/asm/bn-586-mac.S
7052 +new file mode 100644
7053 +index 0000000..05a81aa
7055 ++++ b/crypto/bn/asm/bn-586-mac.S
7057 ++.file "crypto/bn/asm/bn-586.s"
7059 ++.globl _bn_mul_add_words
7061 ++_bn_mul_add_words:
7062 ++L_bn_mul_add_words_begin:
7069 ++ movl 20(%esp),%edi
7070 ++ movl 28(%esp),%ecx
7071 ++ movl 24(%esp),%ebx
7072 ++ andl $4294967288,%ecx
7073 ++ movl 32(%esp),%ebp
7075 ++ jz L000maw_finish
7088 ++ movl 4(%ebx),%eax
7092 ++ addl 4(%edi),%eax
7094 ++ movl %eax,4(%edi)
7097 ++ movl 8(%ebx),%eax
7101 ++ addl 8(%edi),%eax
7103 ++ movl %eax,8(%edi)
7106 ++ movl 12(%ebx),%eax
7110 ++ addl 12(%edi),%eax
7112 ++ movl %eax,12(%edi)
7115 ++ movl 16(%ebx),%eax
7119 ++ addl 16(%edi),%eax
7121 ++ movl %eax,16(%edi)
7124 ++ movl 20(%ebx),%eax
7128 ++ addl 20(%edi),%eax
7130 ++ movl %eax,20(%edi)
7133 ++ movl 24(%ebx),%eax
7137 ++ addl 24(%edi),%eax
7139 ++ movl %eax,24(%edi)
7142 ++ movl 28(%ebx),%eax
7146 ++ addl 28(%edi),%eax
7148 ++ movl %eax,28(%edi)
7152 ++ leal 32(%ebx),%ebx
7153 ++ leal 32(%edi),%edi
7156 ++ movl 32(%esp),%ecx
7158 ++ jnz L002maw_finish2
7173 ++ movl 4(%ebx),%eax
7177 ++ addl 4(%edi),%eax
7180 ++ movl %eax,4(%edi)
7184 ++ movl 8(%ebx),%eax
7188 ++ addl 8(%edi),%eax
7191 ++ movl %eax,8(%edi)
7195 ++ movl 12(%ebx),%eax
7199 ++ addl 12(%edi),%eax
7202 ++ movl %eax,12(%edi)
7206 ++ movl 16(%ebx),%eax
7210 ++ addl 16(%edi),%eax
7213 ++ movl %eax,16(%edi)
7217 ++ movl 20(%ebx),%eax
7221 ++ addl 20(%edi),%eax
7224 ++ movl %eax,20(%edi)
7228 ++ movl 24(%ebx),%eax
7232 ++ addl 24(%edi),%eax
7234 ++ movl %eax,24(%edi)
7244 ++.globl _bn_mul_words
7247 ++L_bn_mul_words_begin:
7254 ++ movl 20(%esp),%edi
7255 ++ movl 24(%esp),%ebx
7256 ++ movl 28(%esp),%ebp
7257 ++ movl 32(%esp),%ecx
7258 ++ andl $4294967288,%ebp
7269 ++ movl 4(%ebx),%eax
7273 ++ movl %eax,4(%edi)
7276 ++ movl 8(%ebx),%eax
7280 ++ movl %eax,8(%edi)
7283 ++ movl 12(%ebx),%eax
7287 ++ movl %eax,12(%edi)
7290 ++ movl 16(%ebx),%eax
7294 ++ movl %eax,16(%edi)
7297 ++ movl 20(%ebx),%eax
7301 ++ movl %eax,20(%edi)
7304 ++ movl 24(%ebx),%eax
7308 ++ movl %eax,24(%edi)
7311 ++ movl 28(%ebx),%eax
7315 ++ movl %eax,28(%edi)
7324 ++ movl 28(%esp),%ebp
7326 ++ jnz L006mw_finish2
7339 ++ movl 4(%ebx),%eax
7343 ++ movl %eax,4(%edi)
7348 ++ movl 8(%ebx),%eax
7352 ++ movl %eax,8(%edi)
7357 ++ movl 12(%ebx),%eax
7361 ++ movl %eax,12(%edi)
7366 ++ movl 16(%ebx),%eax
7370 ++ movl %eax,16(%edi)
7375 ++ movl 20(%ebx),%eax
7379 ++ movl %eax,20(%edi)
7384 ++ movl 24(%ebx),%eax
7388 ++ movl %eax,24(%edi)
7397 ++.globl _bn_sqr_words
7400 ++L_bn_sqr_words_begin:
7406 ++ movl 20(%esp),%esi
7407 ++ movl 24(%esp),%edi
7408 ++ movl 28(%esp),%ebx
7409 ++ andl $4294967288,%ebx
7416 ++ movl %edx,4(%esi)
7418 ++ movl 4(%edi),%eax
7420 ++ movl %eax,8(%esi)
7421 ++ movl %edx,12(%esi)
7423 ++ movl 8(%edi),%eax
7425 ++ movl %eax,16(%esi)
7426 ++ movl %edx,20(%esi)
7428 ++ movl 12(%edi),%eax
7430 ++ movl %eax,24(%esi)
7431 ++ movl %edx,28(%esi)
7433 ++ movl 16(%edi),%eax
7435 ++ movl %eax,32(%esi)
7436 ++ movl %edx,36(%esi)
7438 ++ movl 20(%edi),%eax
7440 ++ movl %eax,40(%esi)
7441 ++ movl %edx,44(%esi)
7443 ++ movl 24(%edi),%eax
7445 ++ movl %eax,48(%esi)
7446 ++ movl %edx,52(%esi)
7448 ++ movl 28(%edi),%eax
7450 ++ movl %eax,56(%esi)
7451 ++ movl %edx,60(%esi)
7458 ++ movl 28(%esp),%ebx
7466 ++ movl %edx,4(%esi)
7469 ++ movl 4(%edi),%eax
7471 ++ movl %eax,8(%esi)
7473 ++ movl %edx,12(%esi)
7476 ++ movl 8(%edi),%eax
7478 ++ movl %eax,16(%esi)
7480 ++ movl %edx,20(%esi)
7483 ++ movl 12(%edi),%eax
7485 ++ movl %eax,24(%esi)
7487 ++ movl %edx,28(%esi)
7490 ++ movl 16(%edi),%eax
7492 ++ movl %eax,32(%esi)
7494 ++ movl %edx,36(%esi)
7497 ++ movl 20(%edi),%eax
7499 ++ movl %eax,40(%esi)
7501 ++ movl %edx,44(%esi)
7504 ++ movl 24(%edi),%eax
7506 ++ movl %eax,48(%esi)
7507 ++ movl %edx,52(%esi)
7514 ++.globl _bn_div_words
7517 ++L_bn_div_words_begin:
7518 ++ movl 4(%esp),%edx
7519 ++ movl 8(%esp),%eax
7520 ++ movl 12(%esp),%ecx
7523 ++.globl _bn_add_words
7526 ++L_bn_add_words_begin:
7532 ++ movl 20(%esp),%ebx
7533 ++ movl 24(%esp),%esi
7534 ++ movl 28(%esp),%edi
7535 ++ movl 32(%esp),%ebp
7537 ++ andl $4294967288,%ebp
7550 ++ movl 4(%esi),%ecx
7551 ++ movl 4(%edi),%edx
7557 ++ movl %ecx,4(%ebx)
7559 ++ movl 8(%esi),%ecx
7560 ++ movl 8(%edi),%edx
7566 ++ movl %ecx,8(%ebx)
7568 ++ movl 12(%esi),%ecx
7569 ++ movl 12(%edi),%edx
7575 ++ movl %ecx,12(%ebx)
7577 ++ movl 16(%esi),%ecx
7578 ++ movl 16(%edi),%edx
7584 ++ movl %ecx,16(%ebx)
7586 ++ movl 20(%esi),%ecx
7587 ++ movl 20(%edi),%edx
7593 ++ movl %ecx,20(%ebx)
7595 ++ movl 24(%esi),%ecx
7596 ++ movl 24(%edi),%edx
7602 ++ movl %ecx,24(%ebx)
7604 ++ movl 28(%esi),%ecx
7605 ++ movl 28(%edi),%edx
7611 ++ movl %ecx,28(%ebx)
7619 ++ movl 32(%esp),%ebp
7634 ++ movl 4(%esi),%ecx
7635 ++ movl 4(%edi),%edx
7642 ++ movl %ecx,4(%ebx)
7645 ++ movl 8(%esi),%ecx
7646 ++ movl 8(%edi),%edx
7653 ++ movl %ecx,8(%ebx)
7656 ++ movl 12(%esi),%ecx
7657 ++ movl 12(%edi),%edx
7664 ++ movl %ecx,12(%ebx)
7667 ++ movl 16(%esi),%ecx
7668 ++ movl 16(%edi),%edx
7675 ++ movl %ecx,16(%ebx)
7678 ++ movl 20(%esi),%ecx
7679 ++ movl 20(%edi),%edx
7686 ++ movl %ecx,20(%ebx)
7689 ++ movl 24(%esi),%ecx
7690 ++ movl 24(%edi),%edx
7696 ++ movl %ecx,24(%ebx)
7703 ++.globl _bn_sub_words
7706 ++L_bn_sub_words_begin:
7712 ++ movl 20(%esp),%ebx
7713 ++ movl 24(%esp),%esi
7714 ++ movl 28(%esp),%edi
7715 ++ movl 32(%esp),%ebp
7717 ++ andl $4294967288,%ebp
7730 ++ movl 4(%esi),%ecx
7731 ++ movl 4(%edi),%edx
7737 ++ movl %ecx,4(%ebx)
7739 ++ movl 8(%esi),%ecx
7740 ++ movl 8(%edi),%edx
7746 ++ movl %ecx,8(%ebx)
7748 ++ movl 12(%esi),%ecx
7749 ++ movl 12(%edi),%edx
7755 ++ movl %ecx,12(%ebx)
7757 ++ movl 16(%esi),%ecx
7758 ++ movl 16(%edi),%edx
7764 ++ movl %ecx,16(%ebx)
7766 ++ movl 20(%esi),%ecx
7767 ++ movl 20(%edi),%edx
7773 ++ movl %ecx,20(%ebx)
7775 ++ movl 24(%esi),%ecx
7776 ++ movl 24(%edi),%edx
7782 ++ movl %ecx,24(%ebx)
7784 ++ movl 28(%esi),%ecx
7785 ++ movl 28(%edi),%edx
7791 ++ movl %ecx,28(%ebx)
7799 ++ movl 32(%esp),%ebp
7814 ++ movl 4(%esi),%ecx
7815 ++ movl 4(%edi),%edx
7822 ++ movl %ecx,4(%ebx)
7825 ++ movl 8(%esi),%ecx
7826 ++ movl 8(%edi),%edx
7833 ++ movl %ecx,8(%ebx)
7836 ++ movl 12(%esi),%ecx
7837 ++ movl 12(%edi),%edx
7844 ++ movl %ecx,12(%ebx)
7847 ++ movl 16(%esi),%ecx
7848 ++ movl 16(%edi),%edx
7855 ++ movl %ecx,16(%ebx)
7858 ++ movl 20(%esi),%ecx
7859 ++ movl 20(%edi),%edx
7866 ++ movl %ecx,20(%ebx)
7869 ++ movl 24(%esi),%ecx
7870 ++ movl 24(%edi),%edx
7876 ++ movl %ecx,24(%ebx)
7883 ++.globl _bn_sub_part_words
7885 ++_bn_sub_part_words:
7886 ++L_bn_sub_part_words_begin:
7892 ++ movl 20(%esp),%ebx
7893 ++ movl 24(%esp),%esi
7894 ++ movl 28(%esp),%edi
7895 ++ movl 32(%esp),%ebp
7897 ++ andl $4294967288,%ebp
7910 ++ movl 4(%esi),%ecx
7911 ++ movl 4(%edi),%edx
7917 ++ movl %ecx,4(%ebx)
7919 ++ movl 8(%esi),%ecx
7920 ++ movl 8(%edi),%edx
7926 ++ movl %ecx,8(%ebx)
7928 ++ movl 12(%esi),%ecx
7929 ++ movl 12(%edi),%edx
7935 ++ movl %ecx,12(%ebx)
7937 ++ movl 16(%esi),%ecx
7938 ++ movl 16(%edi),%edx
7944 ++ movl %ecx,16(%ebx)
7946 ++ movl 20(%esi),%ecx
7947 ++ movl 20(%edi),%edx
7953 ++ movl %ecx,20(%ebx)
7955 ++ movl 24(%esi),%ecx
7956 ++ movl 24(%edi),%edx
7962 ++ movl %ecx,24(%ebx)
7964 ++ movl 28(%esi),%ecx
7965 ++ movl 28(%edi),%edx
7971 ++ movl %ecx,28(%ebx)
7979 ++ movl 32(%esp),%ebp
8081 ++ movl 36(%esp),%ebp
8089 ++ andl $4294967288,%ebp
8090 ++ jz L022pw_neg_finish
8103 ++ movl 4(%edi),%edx
8109 ++ movl %ecx,4(%ebx)
8112 ++ movl 8(%edi),%edx
8118 ++ movl %ecx,8(%ebx)
8121 ++ movl 12(%edi),%edx
8127 ++ movl %ecx,12(%ebx)
8130 ++ movl 16(%edi),%edx
8136 ++ movl %ecx,16(%ebx)
8139 ++ movl 20(%edi),%edx
8145 ++ movl %ecx,20(%ebx)
8148 ++ movl 24(%edi),%edx
8154 ++ movl %ecx,24(%ebx)
8157 ++ movl 28(%edi),%edx
8163 ++ movl %ecx,28(%ebx)
8168 ++ jnz L023pw_neg_loop
8169 ++L022pw_neg_finish:
8170 ++ movl 36(%esp),%edx
8175 ++ # dl<0 Tail Round 0
8186 ++ # dl<0 Tail Round 1
8188 ++ movl 4(%edi),%edx
8195 ++ movl %ecx,4(%ebx)
8197 ++ # dl<0 Tail Round 2
8199 ++ movl 8(%edi),%edx
8206 ++ movl %ecx,8(%ebx)
8208 ++ # dl<0 Tail Round 3
8210 ++ movl 12(%edi),%edx
8217 ++ movl %ecx,12(%ebx)
8219 ++ # dl<0 Tail Round 4
8221 ++ movl 16(%edi),%edx
8228 ++ movl %ecx,16(%ebx)
8230 ++ # dl<0 Tail Round 5
8232 ++ movl 20(%edi),%edx
8239 ++ movl %ecx,20(%ebx)
8241 ++ # dl<0 Tail Round 6
8243 ++ movl 24(%edi),%edx
8249 ++ movl %ecx,24(%ebx)
8252 ++ andl $4294967288,%ebp
8253 ++ jz L024pw_pos_finish
8261 ++ movl 4(%esi),%ecx
8263 ++ movl %ecx,4(%ebx)
8266 ++ movl 8(%esi),%ecx
8268 ++ movl %ecx,8(%ebx)
8271 ++ movl 12(%esi),%ecx
8273 ++ movl %ecx,12(%ebx)
8276 ++ movl 16(%esi),%ecx
8278 ++ movl %ecx,16(%ebx)
8281 ++ movl 20(%esi),%ecx
8283 ++ movl %ecx,20(%ebx)
8286 ++ movl 24(%esi),%ecx
8288 ++ movl %ecx,24(%ebx)
8291 ++ movl 28(%esi),%ecx
8293 ++ movl %ecx,28(%ebx)
8299 ++ jnz L025pw_pos_loop
8300 ++L024pw_pos_finish:
8301 ++ movl 36(%esp),%ebp
8304 ++ # dl>0 Tail Round 0
8308 ++ jnc L034pw_tail_nc0
8311 ++ # dl>0 Tail Round 1
8312 ++ movl 4(%esi),%ecx
8314 ++ movl %ecx,4(%ebx)
8315 ++ jnc L035pw_tail_nc1
8318 ++ # dl>0 Tail Round 2
8319 ++ movl 8(%esi),%ecx
8321 ++ movl %ecx,8(%ebx)
8322 ++ jnc L036pw_tail_nc2
8325 ++ # dl>0 Tail Round 3
8326 ++ movl 12(%esi),%ecx
8328 ++ movl %ecx,12(%ebx)
8329 ++ jnc L037pw_tail_nc3
8332 ++ # dl>0 Tail Round 4
8333 ++ movl 16(%esi),%ecx
8335 ++ movl %ecx,16(%ebx)
8336 ++ jnc L038pw_tail_nc4
8339 ++ # dl>0 Tail Round 5
8340 ++ movl 20(%esi),%ecx
8342 ++ movl %ecx,20(%ebx)
8343 ++ jnc L039pw_tail_nc5
8346 ++ # dl>0 Tail Round 6
8347 ++ movl 24(%esi),%ecx
8349 ++ movl %ecx,24(%ebx)
8350 ++ jnc L040pw_tail_nc6
8357 ++ movl 4(%esi),%ecx
8358 ++ movl %ecx,4(%ebx)
8360 ++ movl 8(%esi),%ecx
8361 ++ movl %ecx,8(%ebx)
8363 ++ movl 12(%esi),%ecx
8364 ++ movl %ecx,12(%ebx)
8366 ++ movl 16(%esi),%ecx
8367 ++ movl %ecx,16(%ebx)
8369 ++ movl 20(%esi),%ecx
8370 ++ movl %ecx,20(%ebx)
8372 ++ movl 24(%esi),%ecx
8373 ++ movl %ecx,24(%ebx)
8375 ++ movl 28(%esi),%ecx
8376 ++ movl %ecx,28(%ebx)
8382 ++ jnz L041pw_nc_loop
8383 ++ movl 36(%esp),%ebp
8391 ++ movl 4(%esi),%ecx
8392 ++ movl %ecx,4(%ebx)
8396 ++ movl 8(%esi),%ecx
8397 ++ movl %ecx,8(%ebx)
8401 ++ movl 12(%esi),%ecx
8402 ++ movl %ecx,12(%ebx)
8406 ++ movl 16(%esi),%ecx
8407 ++ movl %ecx,16(%ebx)
8411 ++ movl 20(%esi),%ecx
8412 ++ movl %ecx,20(%ebx)
8416 ++ movl 24(%esi),%ecx
8417 ++ movl %ecx,24(%ebx)
8427 +diff --git a/crypto/bn/asm/co-586-mac.S b/crypto/bn/asm/co-586-mac.S
8428 +new file mode 100644
8429 +index 0000000..d82fdcb
8431 ++++ b/crypto/bn/asm/co-586-mac.S
8433 ++.file "crypto/bn/asm/co-586.s"
8435 ++.globl _bn_mul_comba8
8438 ++L_bn_mul_comba8_begin:
8440 ++ movl 12(%esp),%esi
8442 ++ movl 20(%esp),%edi
8449 ++ # ################## Calculate word 0
8454 ++ movl 20(%esp),%eax
8459 ++ movl 4(%esi),%eax
8461 ++ # ################## Calculate word 1
8468 ++ movl 4(%edi),%edx
8473 ++ movl 20(%esp),%eax
8477 ++ movl %ecx,4(%eax)
8478 ++ movl 8(%esi),%eax
8480 ++ # ################## Calculate word 2
8485 ++ movl 4(%esi),%eax
8487 ++ movl 4(%edi),%edx
8494 ++ movl 8(%edi),%edx
8499 ++ movl 20(%esp),%eax
8503 ++ movl %ebp,8(%eax)
8504 ++ movl 12(%esi),%eax
8506 ++ # ################## Calculate word 3
8511 ++ movl 8(%esi),%eax
8513 ++ movl 4(%edi),%edx
8518 ++ movl 4(%esi),%eax
8520 ++ movl 8(%edi),%edx
8527 ++ movl 12(%edi),%edx
8532 ++ movl 20(%esp),%eax
8536 ++ movl %ebx,12(%eax)
8537 ++ movl 16(%esi),%eax
8539 ++ # ################## Calculate word 4
8544 ++ movl 12(%esi),%eax
8546 ++ movl 4(%edi),%edx
8551 ++ movl 8(%esi),%eax
8553 ++ movl 8(%edi),%edx
8558 ++ movl 4(%esi),%eax
8560 ++ movl 12(%edi),%edx
8567 ++ movl 16(%edi),%edx
8572 ++ movl 20(%esp),%eax
8576 ++ movl %ecx,16(%eax)
8577 ++ movl 20(%esi),%eax
8579 ++ # ################## Calculate word 5
8584 ++ movl 16(%esi),%eax
8586 ++ movl 4(%edi),%edx
8591 ++ movl 12(%esi),%eax
8593 ++ movl 8(%edi),%edx
8598 ++ movl 8(%esi),%eax
8600 ++ movl 12(%edi),%edx
8605 ++ movl 4(%esi),%eax
8607 ++ movl 16(%edi),%edx
8614 ++ movl 20(%edi),%edx
8619 ++ movl 20(%esp),%eax
8623 ++ movl %ebp,20(%eax)
8624 ++ movl 24(%esi),%eax
8626 ++ # ################## Calculate word 6
8631 ++ movl 20(%esi),%eax
8633 ++ movl 4(%edi),%edx
8638 ++ movl 16(%esi),%eax
8640 ++ movl 8(%edi),%edx
8645 ++ movl 12(%esi),%eax
8647 ++ movl 12(%edi),%edx
8652 ++ movl 8(%esi),%eax
8654 ++ movl 16(%edi),%edx
8659 ++ movl 4(%esi),%eax
8661 ++ movl 20(%edi),%edx
8668 ++ movl 24(%edi),%edx
8673 ++ movl 20(%esp),%eax
8677 ++ movl %ebx,24(%eax)
8678 ++ movl 28(%esi),%eax
8680 ++ # ################## Calculate word 7
8685 ++ movl 24(%esi),%eax
8687 ++ movl 4(%edi),%edx
8692 ++ movl 20(%esi),%eax
8694 ++ movl 8(%edi),%edx
8699 ++ movl 16(%esi),%eax
8701 ++ movl 12(%edi),%edx
8706 ++ movl 12(%esi),%eax
8708 ++ movl 16(%edi),%edx
8713 ++ movl 8(%esi),%eax
8715 ++ movl 20(%edi),%edx
8720 ++ movl 4(%esi),%eax
8722 ++ movl 24(%edi),%edx
8729 ++ movl 28(%edi),%edx
8734 ++ movl 20(%esp),%eax
8736 ++ movl 4(%edi),%edx
8738 ++ movl %ecx,28(%eax)
8739 ++ movl 28(%esi),%eax
8741 ++ # ################## Calculate word 8
8746 ++ movl 24(%esi),%eax
8748 ++ movl 8(%edi),%edx
8753 ++ movl 20(%esi),%eax
8755 ++ movl 12(%edi),%edx
8760 ++ movl 16(%esi),%eax
8762 ++ movl 16(%edi),%edx
8767 ++ movl 12(%esi),%eax
8769 ++ movl 20(%edi),%edx
8774 ++ movl 8(%esi),%eax
8776 ++ movl 24(%edi),%edx
8781 ++ movl 4(%esi),%eax
8783 ++ movl 28(%edi),%edx
8788 ++ movl 20(%esp),%eax
8790 ++ movl 8(%edi),%edx
8792 ++ movl %ebp,32(%eax)
8793 ++ movl 28(%esi),%eax
8795 ++ # ################## Calculate word 9
8800 ++ movl 24(%esi),%eax
8802 ++ movl 12(%edi),%edx
8807 ++ movl 20(%esi),%eax
8809 ++ movl 16(%edi),%edx
8814 ++ movl 16(%esi),%eax
8816 ++ movl 20(%edi),%edx
8821 ++ movl 12(%esi),%eax
8823 ++ movl 24(%edi),%edx
8828 ++ movl 8(%esi),%eax
8830 ++ movl 28(%edi),%edx
8835 ++ movl 20(%esp),%eax
8837 ++ movl 12(%edi),%edx
8839 ++ movl %ebx,36(%eax)
8840 ++ movl 28(%esi),%eax
8842 ++ # ################## Calculate word 10
8847 ++ movl 24(%esi),%eax
8849 ++ movl 16(%edi),%edx
8854 ++ movl 20(%esi),%eax
8856 ++ movl 20(%edi),%edx
8861 ++ movl 16(%esi),%eax
8863 ++ movl 24(%edi),%edx
8868 ++ movl 12(%esi),%eax
8870 ++ movl 28(%edi),%edx
8875 ++ movl 20(%esp),%eax
8877 ++ movl 16(%edi),%edx
8879 ++ movl %ecx,40(%eax)
8880 ++ movl 28(%esi),%eax
8882 ++ # ################## Calculate word 11
8887 ++ movl 24(%esi),%eax
8889 ++ movl 20(%edi),%edx
8894 ++ movl 20(%esi),%eax
8896 ++ movl 24(%edi),%edx
8901 ++ movl 16(%esi),%eax
8903 ++ movl 28(%edi),%edx
8908 ++ movl 20(%esp),%eax
8910 ++ movl 20(%edi),%edx
8912 ++ movl %ebp,44(%eax)
8913 ++ movl 28(%esi),%eax
8915 ++ # ################## Calculate word 12
8920 ++ movl 24(%esi),%eax
8922 ++ movl 24(%edi),%edx
8927 ++ movl 20(%esi),%eax
8929 ++ movl 28(%edi),%edx
8934 ++ movl 20(%esp),%eax
8936 ++ movl 24(%edi),%edx
8938 ++ movl %ebx,48(%eax)
8939 ++ movl 28(%esi),%eax
8941 ++ # ################## Calculate word 13
8946 ++ movl 24(%esi),%eax
8948 ++ movl 28(%edi),%edx
8953 ++ movl 20(%esp),%eax
8955 ++ movl 28(%edi),%edx
8957 ++ movl %ecx,52(%eax)
8958 ++ movl 28(%esi),%eax
8960 ++ # ################## Calculate word 14
8965 ++ movl 20(%esp),%eax
8968 ++ movl %ebp,56(%eax)
8971 ++ movl %ebx,60(%eax)
8977 ++.globl _bn_mul_comba4
8980 ++L_bn_mul_comba4_begin:
8982 ++ movl 12(%esp),%esi
8984 ++ movl 20(%esp),%edi
8991 ++ # ################## Calculate word 0
8996 ++ movl 20(%esp),%eax
9001 ++ movl 4(%esi),%eax
9003 ++ # ################## Calculate word 1
9010 ++ movl 4(%edi),%edx
9015 ++ movl 20(%esp),%eax
9019 ++ movl %ecx,4(%eax)
9020 ++ movl 8(%esi),%eax
9022 ++ # ################## Calculate word 2
9027 ++ movl 4(%esi),%eax
9029 ++ movl 4(%edi),%edx
9036 ++ movl 8(%edi),%edx
9041 ++ movl 20(%esp),%eax
9045 ++ movl %ebp,8(%eax)
9046 ++ movl 12(%esi),%eax
9048 ++ # ################## Calculate word 3
9053 ++ movl 8(%esi),%eax
9055 ++ movl 4(%edi),%edx
9060 ++ movl 4(%esi),%eax
9062 ++ movl 8(%edi),%edx
9069 ++ movl 12(%edi),%edx
9074 ++ movl 20(%esp),%eax
9076 ++ movl 4(%edi),%edx
9078 ++ movl %ebx,12(%eax)
9079 ++ movl 12(%esi),%eax
9081 ++ # ################## Calculate word 4
9086 ++ movl 8(%esi),%eax
9088 ++ movl 8(%edi),%edx
9093 ++ movl 4(%esi),%eax
9095 ++ movl 12(%edi),%edx
9100 ++ movl 20(%esp),%eax
9102 ++ movl 8(%edi),%edx
9104 ++ movl %ecx,16(%eax)
9105 ++ movl 12(%esi),%eax
9107 ++ # ################## Calculate word 5
9112 ++ movl 8(%esi),%eax
9114 ++ movl 12(%edi),%edx
9119 ++ movl 20(%esp),%eax
9121 ++ movl 12(%edi),%edx
9123 ++ movl %ebp,20(%eax)
9124 ++ movl 12(%esi),%eax
9126 ++ # ################## Calculate word 6
9131 ++ movl 20(%esp),%eax
9134 ++ movl %ebx,24(%eax)
9137 ++ movl %ecx,28(%eax)
9143 ++.globl _bn_sqr_comba8
9146 ++L_bn_sqr_comba8_begin:
9151 ++ movl 20(%esp),%edi
9152 ++ movl 24(%esp),%esi
9156 ++ # ############### Calculate word 0
9165 ++ movl 4(%esi),%eax
9167 ++ # ############### Calculate word 1
9176 ++ movl 8(%esi),%eax
9178 ++ movl %ecx,4(%edi)
9181 ++ # ############### Calculate word 2
9190 ++ movl 4(%esi),%eax
9198 ++ movl %ebp,8(%edi)
9199 ++ movl 12(%esi),%eax
9201 ++ # ############### Calculate word 3
9210 ++ movl 8(%esi),%eax
9212 ++ movl 4(%esi),%edx
9220 ++ movl 16(%esi),%eax
9222 ++ movl %ebx,12(%edi)
9225 ++ # ############### Calculate word 4
9234 ++ movl 12(%esi),%eax
9236 ++ movl 4(%esi),%edx
9244 ++ movl 8(%esi),%eax
9252 ++ movl %ecx,16(%edi)
9253 ++ movl 20(%esi),%eax
9255 ++ # ############### Calculate word 5
9264 ++ movl 16(%esi),%eax
9266 ++ movl 4(%esi),%edx
9274 ++ movl 12(%esi),%eax
9276 ++ movl 8(%esi),%edx
9284 ++ movl 24(%esi),%eax
9286 ++ movl %ebp,20(%edi)
9289 ++ # ############### Calculate word 6
9298 ++ movl 20(%esi),%eax
9300 ++ movl 4(%esi),%edx
9308 ++ movl 16(%esi),%eax
9310 ++ movl 8(%esi),%edx
9318 ++ movl 12(%esi),%eax
9326 ++ movl %ebx,24(%edi)
9327 ++ movl 28(%esi),%eax
9329 ++ # ############### Calculate word 7
9338 ++ movl 24(%esi),%eax
9340 ++ movl 4(%esi),%edx
9348 ++ movl 20(%esi),%eax
9350 ++ movl 8(%esi),%edx
9358 ++ movl 16(%esi),%eax
9360 ++ movl 12(%esi),%edx
9368 ++ movl 28(%esi),%eax
9370 ++ movl %ecx,28(%edi)
9371 ++ movl 4(%esi),%edx
9373 ++ # ############### Calculate word 8
9382 ++ movl 24(%esi),%eax
9384 ++ movl 8(%esi),%edx
9392 ++ movl 20(%esi),%eax
9394 ++ movl 12(%esi),%edx
9402 ++ movl 16(%esi),%eax
9408 ++ movl 8(%esi),%edx
9410 ++ movl %ebp,32(%edi)
9411 ++ movl 28(%esi),%eax
9413 ++ # ############### Calculate word 9
9422 ++ movl 24(%esi),%eax
9424 ++ movl 12(%esi),%edx
9432 ++ movl 20(%esi),%eax
9434 ++ movl 16(%esi),%edx
9442 ++ movl 28(%esi),%eax
9444 ++ movl %ebx,36(%edi)
9445 ++ movl 12(%esi),%edx
9447 ++ # ############### Calculate word 10
9456 ++ movl 24(%esi),%eax
9458 ++ movl 16(%esi),%edx
9466 ++ movl 20(%esi),%eax
9472 ++ movl 16(%esi),%edx
9474 ++ movl %ecx,40(%edi)
9475 ++ movl 28(%esi),%eax
9477 ++ # ############### Calculate word 11
9486 ++ movl 24(%esi),%eax
9488 ++ movl 20(%esi),%edx
9496 ++ movl 28(%esi),%eax
9498 ++ movl %ebp,44(%edi)
9499 ++ movl 20(%esi),%edx
9501 ++ # ############### Calculate word 12
9510 ++ movl 24(%esi),%eax
9516 ++ movl 24(%esi),%edx
9518 ++ movl %ebx,48(%edi)
9519 ++ movl 28(%esi),%eax
9521 ++ # ############### Calculate word 13
9530 ++ movl 28(%esi),%eax
9532 ++ movl %ecx,52(%edi)
9534 ++ # ############### Calculate word 14
9541 ++ movl %ebp,56(%edi)
9543 ++ movl %ebx,60(%edi)
9549 ++.globl _bn_sqr_comba4
9552 ++L_bn_sqr_comba4_begin:
9557 ++ movl 20(%esp),%edi
9558 ++ movl 24(%esp),%esi
9562 ++ # ############### Calculate word 0
9571 ++ movl 4(%esi),%eax
9573 ++ # ############### Calculate word 1
9582 ++ movl 8(%esi),%eax
9584 ++ movl %ecx,4(%edi)
9587 ++ # ############### Calculate word 2
9596 ++ movl 4(%esi),%eax
9604 ++ movl %ebp,8(%edi)
9605 ++ movl 12(%esi),%eax
9607 ++ # ############### Calculate word 3
9616 ++ movl 8(%esi),%eax
9618 ++ movl 4(%esi),%edx
9626 ++ movl 12(%esi),%eax
9628 ++ movl %ebx,12(%edi)
9629 ++ movl 4(%esi),%edx
9631 ++ # ############### Calculate word 4
9640 ++ movl 8(%esi),%eax
9646 ++ movl 8(%esi),%edx
9648 ++ movl %ecx,16(%edi)
9649 ++ movl 12(%esi),%eax
9651 ++ # ############### Calculate word 5
9660 ++ movl 12(%esi),%eax
9662 ++ movl %ebp,20(%edi)
9664 ++ # ############### Calculate word 6
9671 ++ movl %ebx,24(%edi)
9673 ++ movl %ecx,28(%edi)
9679 +diff --git a/crypto/bn/asm/x86-gf2m-mac.S b/crypto/bn/asm/x86-gf2m-mac.S
9680 +new file mode 100644
9681 +index 0000000..31718e0
9683 ++++ b/crypto/bn/asm/x86-gf2m-mac.S
9685 ++.file "crypto/bn/asm/x86-gf2m.s"
9691 ++ leal (%eax,%eax,1),%edx
9692 ++ andl $1073741823,%ecx
9693 ++ leal (%edx,%edx,1),%ebp
9695 ++ andl $2147483647,%edx
9698 ++ movl %ecx,4(%esp)
9702 ++ movl %edx,8(%esp)
9704 ++ movl %ecx,12(%esp)
9705 ++ pcmpgtd %mm2,%mm5
9708 ++ movl %ebp,16(%esp)
9711 ++ pcmpgtd %mm2,%mm4
9712 ++ movl %ecx,20(%esp)
9716 ++ movl %edx,24(%esp)
9718 ++ movl %ebp,28(%esp)
9726 ++ movd (%esp,%esi,4),%mm0
9730 ++ movd (%esp,%edi,4),%mm2
9736 ++ movd (%esp,%esi,4),%mm1
9742 ++ movd (%esp,%edi,4),%mm2
9748 ++ movd (%esp,%esi,4),%mm1
9754 ++ movd (%esp,%edi,4),%mm2
9760 ++ movd (%esp,%esi,4),%mm1
9766 ++ movd (%esp,%edi,4),%mm2
9772 ++ movd (%esp,%esi,4),%mm1
9778 ++ movd (%esp,%edi,4),%mm2
9782 ++ movd (%esp,%esi,4),%mm1
9792 ++ leal (%eax,%eax,1),%edx
9793 ++ leal (,%eax,4),%ebp
9794 ++ andl $1073741823,%ecx
9795 ++ leal (%eax,%eax,1),%edi
9798 ++ andl $2147483647,%edx
9799 ++ movl %ecx,4(%esp)
9801 ++ movl %edx,8(%esp)
9803 ++ movl %ecx,12(%esp)
9805 ++ movl %ebp,16(%esp)
9807 ++ movl %ecx,20(%esp)
9811 ++ movl %edx,24(%esp)
9813 ++ movl %ebp,28(%esp)
9828 ++ xorl (%esp,%esi,4),%eax
9832 ++ movl (%esp,%edi,4),%ebp
9841 ++ movl (%esp,%esi,4),%ecx
9850 ++ movl (%esp,%edi,4),%ebp
9859 ++ movl (%esp,%esi,4),%ecx
9868 ++ movl (%esp,%edi,4),%ebp
9877 ++ movl (%esp,%esi,4),%ecx
9886 ++ movl (%esp,%edi,4),%ebp
9895 ++ movl (%esp,%esi,4),%ecx
9904 ++ movl (%esp,%edi,4),%ebp
9907 ++ movl (%esp,%esi,4),%edi
9918 ++.globl _bn_GF2m_mul_2x2
9921 ++L_bn_GF2m_mul_2x2_begin:
9922 ++ call L000PIC_me_up
9925 ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L000PIC_me_up(%edx),%edx
9927 ++ movl 4(%edx),%edx
9928 ++ testl $8388608,%eax
9934 ++ movl 24(%esp),%eax
9935 ++ movl 32(%esp),%ebx
9936 ++ call __mul_1x1_mmx
9938 ++ movl 28(%esp),%eax
9939 ++ movl 36(%esp),%ebx
9940 ++ call __mul_1x1_mmx
9942 ++ movl 24(%esp),%eax
9943 ++ movl 32(%esp),%ebx
9944 ++ xorl 28(%esp),%eax
9945 ++ xorl 36(%esp),%ebx
9946 ++ call __mul_1x1_mmx
9948 ++ movl 20(%esp),%eax
9960 ++ movq %mm2,8(%eax)
9970 ++ movl 44(%esp),%eax
9971 ++ movl 52(%esp),%ebx
9972 ++ call __mul_1x1_ialu
9973 ++ movl %eax,8(%esp)
9974 ++ movl %edx,12(%esp)
9975 ++ movl 48(%esp),%eax
9976 ++ movl 56(%esp),%ebx
9977 ++ call __mul_1x1_ialu
9979 ++ movl %edx,4(%esp)
9980 ++ movl 44(%esp),%eax
9981 ++ movl 52(%esp),%ebx
9982 ++ xorl 48(%esp),%eax
9983 ++ xorl 56(%esp),%ebx
9984 ++ call __mul_1x1_ialu
9985 ++ movl 40(%esp),%ebp
9987 ++ movl 4(%esp),%ecx
9988 ++ movl 8(%esp),%edi
9989 ++ movl 12(%esp),%esi
9995 ++ movl %esi,12(%ebp)
10002 ++ movl %edx,8(%ebp)
10004 ++ movl %eax,4(%ebp)
10007 ++.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105
10008 ++.byte 99,97,116,105,111,110,32,102,111,114,32,120,56,54,44,32
10009 ++.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
10010 ++.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
10012 ++.section __IMPORT,__pointers,non_lazy_symbol_pointers
10013 ++L_OPENSSL_ia32cap_P$non_lazy_ptr:
10014 ++.indirect_symbol _OPENSSL_ia32cap_P
10016 ++.comm _OPENSSL_ia32cap_P,8,2
10017 +diff --git a/crypto/bn/asm/x86-mont-mac.S b/crypto/bn/asm/x86-mont-mac.S
10018 +new file mode 100644
10019 +index 0000000..aab259a
10021 ++++ b/crypto/bn/asm/x86-mont-mac.S
10023 ++.file "crypto/bn/asm/x86-mont.s"
10025 ++.globl _bn_mul_mont
10028 ++L_bn_mul_mont_begin:
10034 ++ movl 40(%esp),%edi
10036 ++ jl L000just_leave
10037 ++ leal 20(%esp),%esi
10038 ++ leal 24(%esp),%edx
10042 ++ leal -32(%esp,%edi,4),%esp
10053 ++ movl (%esi),%eax
10054 ++ movl 4(%esi),%ebx
10055 ++ movl 8(%esi),%ecx
10056 ++ movl 12(%esi),%edx
10057 ++ movl 16(%esi),%esi
10058 ++ movl (%esi),%esi
10059 ++ movl %eax,4(%esp)
10060 ++ movl %ebx,8(%esp)
10061 ++ movl %ecx,12(%esp)
10062 ++ movl %edx,16(%esp)
10063 ++ movl %esi,20(%esp)
10064 ++ leal -3(%edi),%ebx
10065 ++ movl %ebp,24(%esp)
10066 ++ movl 8(%esp),%esi
10067 ++ leal 1(%ebx),%ebp
10068 ++ movl 12(%esp),%edi
10073 ++ leal 4(%edi,%ebx,4),%eax
10075 ++ movl (%edi),%edi
10076 ++ jz L001bn_sqr_mont
10077 ++ movl %eax,28(%esp)
10078 ++ movl (%esi),%eax
10085 ++ leal 1(%ecx),%ecx
10087 ++ movl (%esi,%ecx,4),%eax
10089 ++ movl %ebp,28(%esp,%ecx,4)
10093 ++ movl 20(%esp),%edi
10095 ++ movl 16(%esp),%esi
10097 ++ imull 32(%esp),%edi
10098 ++ movl %eax,32(%esp,%ebx,4)
10100 ++ movl %edx,36(%esp,%ebx,4)
10101 ++ movl %ecx,40(%esp,%ebx,4)
10102 ++ movl (%esi),%eax
10104 ++ addl 32(%esp),%eax
10105 ++ movl 4(%esi),%eax
10113 ++ addl 32(%esp,%ecx,4),%ebp
10114 ++ leal 1(%ecx),%ecx
10117 ++ movl (%esi,%ecx,4),%eax
10120 ++ movl %ebp,28(%esp,%ecx,4)
10124 ++ addl 32(%esp,%ebx,4),%eax
10125 ++ movl 20(%esp),%edi
10127 ++ movl 16(%esp),%esi
10130 ++ imull 32(%esp),%edi
10132 ++ addl 36(%esp,%ebx,4),%edx
10133 ++ movl %ebp,32(%esp,%ebx,4)
10135 ++ movl (%esi),%eax
10136 ++ movl %edx,36(%esp,%ebx,4)
10137 ++ movl %ecx,40(%esp,%ebx,4)
10139 ++ addl 32(%esp),%eax
10140 ++ movl 4(%esi),%eax
10147 ++ addl 32(%esp,%ecx,4),%ebp
10148 ++ leal 1(%ecx),%ecx
10151 ++ movl (%esi,%ecx,4),%eax
10154 ++ movl %ebp,24(%esp,%ecx,4)
10158 ++ addl 32(%esp,%ebx,4),%ebp
10162 ++ movl %ebp,28(%esp,%ebx,4)
10164 ++ movl 12(%esp),%ecx
10165 ++ addl 36(%esp,%ebx,4),%edx
10166 ++ adcl 40(%esp,%ebx,4),%eax
10167 ++ leal 4(%ecx),%ecx
10168 ++ movl %edx,32(%esp,%ebx,4)
10169 ++ cmpl 28(%esp),%ecx
10170 ++ movl %eax,36(%esp,%ebx,4)
10171 ++ je L005common_tail
10172 ++ movl (%ecx),%edi
10173 ++ movl 8(%esp),%esi
10174 ++ movl %ecx,12(%esp)
10177 ++ movl (%esi),%eax
10181 ++ movl %ebx,(%esp)
10182 ++ movl %ecx,12(%esp)
10185 ++ movl %eax,32(%esp)
10192 ++ movl (%esi,%ecx,4),%eax
10196 ++ leal 1(%ecx),%ecx
10198 ++ leal (%ebx,%eax,2),%ebp
10200 ++ cmpl (%esp),%ecx
10202 ++ movl %ebp,28(%esp,%ecx,4)
10204 ++ movl (%esi,%ecx,4),%eax
10208 ++ movl 20(%esp),%edi
10210 ++ movl 16(%esp),%esi
10211 ++ leal (%ebx,%eax,2),%ebp
10212 ++ imull 32(%esp),%edi
10214 ++ movl %ebp,32(%esp,%ecx,4)
10215 ++ leal (%eax,%edx,2),%ebp
10216 ++ movl (%esi),%eax
10218 ++ movl %ebp,36(%esp,%ecx,4)
10219 ++ movl %edx,40(%esp,%ecx,4)
10221 ++ addl 32(%esp),%eax
10224 ++ movl 4(%esi),%eax
10230 ++ addl 32(%esp,%ecx,4),%ebp
10233 ++ movl 4(%esi,%ecx,4),%eax
10235 ++ movl %ebp,28(%esp,%ecx,4)
10238 ++ addl 36(%esp,%ecx,4),%ebp
10239 ++ leal 2(%ecx),%ecx
10242 ++ movl (%esi,%ecx,4),%eax
10245 ++ movl %ebp,24(%esp,%ecx,4)
10249 ++ addl 32(%esp,%ebx,4),%ebp
10253 ++ movl %ebp,28(%esp,%ebx,4)
10254 ++ movl 12(%esp),%ecx
10256 ++ movl 8(%esp),%esi
10257 ++ addl 36(%esp,%ebx,4),%edx
10258 ++ adcl 40(%esp,%ebx,4),%eax
10259 ++ movl %edx,32(%esp,%ebx,4)
10261 ++ movl %eax,36(%esp,%ebx,4)
10262 ++ je L005common_tail
10263 ++ movl 4(%esi,%ecx,4),%edi
10264 ++ leal 1(%ecx),%ecx
10266 ++ movl %ecx,12(%esp)
10268 ++ addl 32(%esp,%ecx,4),%eax
10270 ++ movl %eax,32(%esp,%ecx,4)
10273 ++ leal 1(%ecx),%ecx
10280 ++ movl (%esi,%ecx,4),%eax
10284 ++ leal (%eax,%eax,1),%ebp
10287 ++ addl 32(%esp,%ecx,4),%ebp
10288 ++ leal 1(%ecx),%ecx
10292 ++ cmpl (%esp),%ecx
10293 ++ movl %ebp,28(%esp,%ecx,4)
10302 ++ movl 20(%esp),%edi
10303 ++ movl 16(%esp),%esi
10304 ++ imull 32(%esp),%edi
10305 ++ addl 32(%esp,%ecx,4),%edx
10306 ++ movl (%esi),%eax
10308 ++ movl %edx,32(%esp,%ecx,4)
10309 ++ movl %ebp,36(%esp,%ecx,4)
10311 ++ addl 32(%esp),%eax
10312 ++ leal -1(%ecx),%ebx
10315 ++ movl 4(%esi),%eax
10319 ++ movl 16(%esp),%ebp
10320 ++ movl 4(%esp),%edi
10321 ++ leal 32(%esp),%esi
10322 ++ movl (%esi),%eax
10327 ++ sbbl (%ebp,%edx,4),%eax
10328 ++ movl %eax,(%edi,%edx,4)
10330 ++ movl 4(%esi,%edx,4),%eax
10331 ++ leal 1(%edx),%edx
10341 ++ movl (%esi,%ebx,4),%eax
10342 ++ movl %eax,(%edi,%ebx,4)
10343 ++ movl %ecx,32(%esp,%ebx,4)
10346 ++ movl 24(%esp),%esp
10354 ++.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
10355 ++.byte 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56
10356 ++.byte 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
10357 ++.byte 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
10358 ++.byte 111,114,103,62,0
10359 +diff --git a/crypto/des/asm/crypt586-mac.S b/crypto/des/asm/crypt586-mac.S
10360 +new file mode 100644
10361 +index 0000000..9156a65
10363 ++++ b/crypto/des/asm/crypt586-mac.S
10365 ++.file "crypt586.s"
10367 ++.globl _fcrypt_body
10370 ++L_fcrypt_body_begin:
10376 ++ # Load the 2 words
10379 ++ call L000PIC_me_up
10382 ++ movl L_DES_SPtrans$non_lazy_ptr-L000PIC_me_up(%edx),%edx
10384 ++ movl 28(%esp),%ebp
10389 ++ movl 36(%esp),%eax
10392 ++ movl 40(%esp),%ecx
10402 ++ movl (%ebp),%ebx
10404 ++ movl 4(%ebp),%ecx
10408 ++ andl $0xfcfcfcfc,%eax
10410 ++ andl $0xcfcfcfcf,%edx
10415 ++ movl 4(%esp),%ebp
10416 ++ xorl (%ebp,%ebx,1),%edi
10418 ++ xorl 0x200(%ebp,%ecx,1),%edi
10421 ++ xorl 0x100(%ebp,%ebx,1),%edi
10424 ++ xorl 0x300(%ebp,%ecx,1),%edi
10428 ++ movl 0x600(%ebp,%ebx,1),%ebx
10430 ++ movl 0x700(%ebp,%ecx,1),%ebx
10432 ++ movl 0x400(%ebp,%eax,1),%ebx
10434 ++ movl 0x500(%ebp,%edx,1),%ebx
10436 ++ movl 32(%esp),%ebp
10439 ++ movl 36(%esp),%eax
10442 ++ movl 40(%esp),%ecx
10452 ++ movl 8(%ebp),%ebx
10454 ++ movl 12(%ebp),%ecx
10458 ++ andl $0xfcfcfcfc,%eax
10460 ++ andl $0xcfcfcfcf,%edx
10465 ++ movl 4(%esp),%ebp
10466 ++ xorl (%ebp,%ebx,1),%esi
10468 ++ xorl 0x200(%ebp,%ecx,1),%esi
10471 ++ xorl 0x100(%ebp,%ebx,1),%esi
10474 ++ xorl 0x300(%ebp,%ecx,1),%esi
10478 ++ movl 0x600(%ebp,%ebx,1),%ebx
10480 ++ movl 0x700(%ebp,%ecx,1),%ebx
10482 ++ movl 0x400(%ebp,%eax,1),%ebx
10484 ++ movl 0x500(%ebp,%edx,1),%ebx
10486 ++ movl 32(%esp),%ebp
10489 ++ movl 36(%esp),%eax
10492 ++ movl 40(%esp),%ecx
10502 ++ movl 16(%ebp),%ebx
10504 ++ movl 20(%ebp),%ecx
10508 ++ andl $0xfcfcfcfc,%eax
10510 ++ andl $0xcfcfcfcf,%edx
10515 ++ movl 4(%esp),%ebp
10516 ++ xorl (%ebp,%ebx,1),%edi
10518 ++ xorl 0x200(%ebp,%ecx,1),%edi
10521 ++ xorl 0x100(%ebp,%ebx,1),%edi
10524 ++ xorl 0x300(%ebp,%ecx,1),%edi
10528 ++ movl 0x600(%ebp,%ebx,1),%ebx
10530 ++ movl 0x700(%ebp,%ecx,1),%ebx
10532 ++ movl 0x400(%ebp,%eax,1),%ebx
10534 ++ movl 0x500(%ebp,%edx,1),%ebx
10536 ++ movl 32(%esp),%ebp
10539 ++ movl 36(%esp),%eax
10542 ++ movl 40(%esp),%ecx
10552 ++ movl 24(%ebp),%ebx
10554 ++ movl 28(%ebp),%ecx
10558 ++ andl $0xfcfcfcfc,%eax
10560 ++ andl $0xcfcfcfcf,%edx
10565 ++ movl 4(%esp),%ebp
10566 ++ xorl (%ebp,%ebx,1),%esi
10568 ++ xorl 0x200(%ebp,%ecx,1),%esi
10571 ++ xorl 0x100(%ebp,%ebx,1),%esi
10574 ++ xorl 0x300(%ebp,%ecx,1),%esi
10578 ++ movl 0x600(%ebp,%ebx,1),%ebx
10580 ++ movl 0x700(%ebp,%ecx,1),%ebx
10582 ++ movl 0x400(%ebp,%eax,1),%ebx
10584 ++ movl 0x500(%ebp,%edx,1),%ebx
10586 ++ movl 32(%esp),%ebp
10589 ++ movl 36(%esp),%eax
10592 ++ movl 40(%esp),%ecx
10602 ++ movl 32(%ebp),%ebx
10604 ++ movl 36(%ebp),%ecx
10608 ++ andl $0xfcfcfcfc,%eax
10610 ++ andl $0xcfcfcfcf,%edx
10615 ++ movl 4(%esp),%ebp
10616 ++ xorl (%ebp,%ebx,1),%edi
10618 ++ xorl 0x200(%ebp,%ecx,1),%edi
10621 ++ xorl 0x100(%ebp,%ebx,1),%edi
10624 ++ xorl 0x300(%ebp,%ecx,1),%edi
10628 ++ movl 0x600(%ebp,%ebx,1),%ebx
10630 ++ movl 0x700(%ebp,%ecx,1),%ebx
10632 ++ movl 0x400(%ebp,%eax,1),%ebx
10634 ++ movl 0x500(%ebp,%edx,1),%ebx
10636 ++ movl 32(%esp),%ebp
10639 ++ movl 36(%esp),%eax
10642 ++ movl 40(%esp),%ecx
10652 ++ movl 40(%ebp),%ebx
10654 ++ movl 44(%ebp),%ecx
10658 ++ andl $0xfcfcfcfc,%eax
10660 ++ andl $0xcfcfcfcf,%edx
10665 ++ movl 4(%esp),%ebp
10666 ++ xorl (%ebp,%ebx,1),%esi
10668 ++ xorl 0x200(%ebp,%ecx,1),%esi
10671 ++ xorl 0x100(%ebp,%ebx,1),%esi
10674 ++ xorl 0x300(%ebp,%ecx,1),%esi
10678 ++ movl 0x600(%ebp,%ebx,1),%ebx
10680 ++ movl 0x700(%ebp,%ecx,1),%ebx
10682 ++ movl 0x400(%ebp,%eax,1),%ebx
10684 ++ movl 0x500(%ebp,%edx,1),%ebx
10686 ++ movl 32(%esp),%ebp
10689 ++ movl 36(%esp),%eax
10692 ++ movl 40(%esp),%ecx
10702 ++ movl 48(%ebp),%ebx
10704 ++ movl 52(%ebp),%ecx
10708 ++ andl $0xfcfcfcfc,%eax
10710 ++ andl $0xcfcfcfcf,%edx
10715 ++ movl 4(%esp),%ebp
10716 ++ xorl (%ebp,%ebx,1),%edi
10718 ++ xorl 0x200(%ebp,%ecx,1),%edi
10721 ++ xorl 0x100(%ebp,%ebx,1),%edi
10724 ++ xorl 0x300(%ebp,%ecx,1),%edi
10728 ++ movl 0x600(%ebp,%ebx,1),%ebx
10730 ++ movl 0x700(%ebp,%ecx,1),%ebx
10732 ++ movl 0x400(%ebp,%eax,1),%ebx
10734 ++ movl 0x500(%ebp,%edx,1),%ebx
10736 ++ movl 32(%esp),%ebp
10739 ++ movl 36(%esp),%eax
10742 ++ movl 40(%esp),%ecx
10752 ++ movl 56(%ebp),%ebx
10754 ++ movl 60(%ebp),%ecx
10758 ++ andl $0xfcfcfcfc,%eax
10760 ++ andl $0xcfcfcfcf,%edx
10765 ++ movl 4(%esp),%ebp
10766 ++ xorl (%ebp,%ebx,1),%esi
10768 ++ xorl 0x200(%ebp,%ecx,1),%esi
10771 ++ xorl 0x100(%ebp,%ebx,1),%esi
10774 ++ xorl 0x300(%ebp,%ecx,1),%esi
10778 ++ movl 0x600(%ebp,%ebx,1),%ebx
10780 ++ movl 0x700(%ebp,%ecx,1),%ebx
10782 ++ movl 0x400(%ebp,%eax,1),%ebx
10784 ++ movl 0x500(%ebp,%edx,1),%ebx
10786 ++ movl 32(%esp),%ebp
10789 ++ movl 36(%esp),%eax
10792 ++ movl 40(%esp),%ecx
10802 ++ movl 64(%ebp),%ebx
10804 ++ movl 68(%ebp),%ecx
10808 ++ andl $0xfcfcfcfc,%eax
10810 ++ andl $0xcfcfcfcf,%edx
10815 ++ movl 4(%esp),%ebp
10816 ++ xorl (%ebp,%ebx,1),%edi
10818 ++ xorl 0x200(%ebp,%ecx,1),%edi
10821 ++ xorl 0x100(%ebp,%ebx,1),%edi
10824 ++ xorl 0x300(%ebp,%ecx,1),%edi
10828 ++ movl 0x600(%ebp,%ebx,1),%ebx
10830 ++ movl 0x700(%ebp,%ecx,1),%ebx
10832 ++ movl 0x400(%ebp,%eax,1),%ebx
10834 ++ movl 0x500(%ebp,%edx,1),%ebx
10836 ++ movl 32(%esp),%ebp
10839 ++ movl 36(%esp),%eax
10842 ++ movl 40(%esp),%ecx
10852 ++ movl 72(%ebp),%ebx
10854 ++ movl 76(%ebp),%ecx
10858 ++ andl $0xfcfcfcfc,%eax
10860 ++ andl $0xcfcfcfcf,%edx
10865 ++ movl 4(%esp),%ebp
10866 ++ xorl (%ebp,%ebx,1),%esi
10868 ++ xorl 0x200(%ebp,%ecx,1),%esi
10871 ++ xorl 0x100(%ebp,%ebx,1),%esi
10874 ++ xorl 0x300(%ebp,%ecx,1),%esi
10878 ++ movl 0x600(%ebp,%ebx,1),%ebx
10880 ++ movl 0x700(%ebp,%ecx,1),%ebx
10882 ++ movl 0x400(%ebp,%eax,1),%ebx
10884 ++ movl 0x500(%ebp,%edx,1),%ebx
10886 ++ movl 32(%esp),%ebp
10889 ++ movl 36(%esp),%eax
10892 ++ movl 40(%esp),%ecx
10902 ++ movl 80(%ebp),%ebx
10904 ++ movl 84(%ebp),%ecx
10908 ++ andl $0xfcfcfcfc,%eax
10910 ++ andl $0xcfcfcfcf,%edx
10915 ++ movl 4(%esp),%ebp
10916 ++ xorl (%ebp,%ebx,1),%edi
10918 ++ xorl 0x200(%ebp,%ecx,1),%edi
10921 ++ xorl 0x100(%ebp,%ebx,1),%edi
10924 ++ xorl 0x300(%ebp,%ecx,1),%edi
10928 ++ movl 0x600(%ebp,%ebx,1),%ebx
10930 ++ movl 0x700(%ebp,%ecx,1),%ebx
10932 ++ movl 0x400(%ebp,%eax,1),%ebx
10934 ++ movl 0x500(%ebp,%edx,1),%ebx
10936 ++ movl 32(%esp),%ebp
10939 ++ movl 36(%esp),%eax
10942 ++ movl 40(%esp),%ecx
10952 ++ movl 88(%ebp),%ebx
10954 ++ movl 92(%ebp),%ecx
10958 ++ andl $0xfcfcfcfc,%eax
10960 ++ andl $0xcfcfcfcf,%edx
10965 ++ movl 4(%esp),%ebp
10966 ++ xorl (%ebp,%ebx,1),%esi
10968 ++ xorl 0x200(%ebp,%ecx,1),%esi
10971 ++ xorl 0x100(%ebp,%ebx,1),%esi
10974 ++ xorl 0x300(%ebp,%ecx,1),%esi
10978 ++ movl 0x600(%ebp,%ebx,1),%ebx
10980 ++ movl 0x700(%ebp,%ecx,1),%ebx
10982 ++ movl 0x400(%ebp,%eax,1),%ebx
10984 ++ movl 0x500(%ebp,%edx,1),%ebx
10986 ++ movl 32(%esp),%ebp
10989 ++ movl 36(%esp),%eax
10992 ++ movl 40(%esp),%ecx
11002 ++ movl 96(%ebp),%ebx
11004 ++ movl 100(%ebp),%ecx
11008 ++ andl $0xfcfcfcfc,%eax
11010 ++ andl $0xcfcfcfcf,%edx
11015 ++ movl 4(%esp),%ebp
11016 ++ xorl (%ebp,%ebx,1),%edi
11018 ++ xorl 0x200(%ebp,%ecx,1),%edi
11021 ++ xorl 0x100(%ebp,%ebx,1),%edi
11024 ++ xorl 0x300(%ebp,%ecx,1),%edi
11028 ++ movl 0x600(%ebp,%ebx,1),%ebx
11030 ++ movl 0x700(%ebp,%ecx,1),%ebx
11032 ++ movl 0x400(%ebp,%eax,1),%ebx
11034 ++ movl 0x500(%ebp,%edx,1),%ebx
11036 ++ movl 32(%esp),%ebp
11039 ++ movl 36(%esp),%eax
11042 ++ movl 40(%esp),%ecx
11052 ++ movl 104(%ebp),%ebx
11054 ++ movl 108(%ebp),%ecx
11058 ++ andl $0xfcfcfcfc,%eax
11060 ++ andl $0xcfcfcfcf,%edx
11065 ++ movl 4(%esp),%ebp
11066 ++ xorl (%ebp,%ebx,1),%esi
11068 ++ xorl 0x200(%ebp,%ecx,1),%esi
11071 ++ xorl 0x100(%ebp,%ebx,1),%esi
11074 ++ xorl 0x300(%ebp,%ecx,1),%esi
11078 ++ movl 0x600(%ebp,%ebx,1),%ebx
11080 ++ movl 0x700(%ebp,%ecx,1),%ebx
11082 ++ movl 0x400(%ebp,%eax,1),%ebx
11084 ++ movl 0x500(%ebp,%edx,1),%ebx
11086 ++ movl 32(%esp),%ebp
11089 ++ movl 36(%esp),%eax
11092 ++ movl 40(%esp),%ecx
11102 ++ movl 112(%ebp),%ebx
11104 ++ movl 116(%ebp),%ecx
11108 ++ andl $0xfcfcfcfc,%eax
11110 ++ andl $0xcfcfcfcf,%edx
11115 ++ movl 4(%esp),%ebp
11116 ++ xorl (%ebp,%ebx,1),%edi
11118 ++ xorl 0x200(%ebp,%ecx,1),%edi
11121 ++ xorl 0x100(%ebp,%ebx,1),%edi
11124 ++ xorl 0x300(%ebp,%ecx,1),%edi
11128 ++ movl 0x600(%ebp,%ebx,1),%ebx
11130 ++ movl 0x700(%ebp,%ecx,1),%ebx
11132 ++ movl 0x400(%ebp,%eax,1),%ebx
11134 ++ movl 0x500(%ebp,%edx,1),%ebx
11136 ++ movl 32(%esp),%ebp
11139 ++ movl 36(%esp),%eax
11142 ++ movl 40(%esp),%ecx
11152 ++ movl 120(%ebp),%ebx
11154 ++ movl 124(%ebp),%ecx
11158 ++ andl $0xfcfcfcfc,%eax
11160 ++ andl $0xcfcfcfcf,%edx
11165 ++ movl 4(%esp),%ebp
11166 ++ xorl (%ebp,%ebx,1),%esi
11168 ++ xorl 0x200(%ebp,%ecx,1),%esi
11171 ++ xorl 0x100(%ebp,%ebx,1),%esi
11174 ++ xorl 0x300(%ebp,%ecx,1),%esi
11178 ++ movl 0x600(%ebp,%ebx,1),%ebx
11180 ++ movl 0x700(%ebp,%ecx,1),%ebx
11182 ++ movl 0x400(%ebp,%eax,1),%ebx
11184 ++ movl 0x500(%ebp,%edx,1),%ebx
11186 ++ movl 32(%esp),%ebp
11187 ++ movl (%esp),%ebx
11192 ++ movl %ebx,(%esp)
11196 ++ movl 28(%esp),%edx
11200 ++ andl $0xaaaaaaaa,%esi
11207 ++ andl $0x03fc03fc,%eax
11214 ++ andl $0x33333333,%esi
11221 ++ andl $0xfff0000f,%edi
11228 ++ andl $0xf0f0f0f0,%esi
11233 ++ movl %eax,(%edx)
11234 ++ movl %edi,4(%edx)
11241 ++.section __IMPORT,__pointers,non_lazy_symbol_pointers
11242 ++L_DES_SPtrans$non_lazy_ptr:
11243 ++.indirect_symbol _DES_SPtrans
11245 +diff --git a/crypto/des/asm/des-586-mac.S b/crypto/des/asm/des-586-mac.S
11246 +new file mode 100644
11247 +index 0000000..4969416
11249 ++++ b/crypto/des/asm/des-586-mac.S
11250 +@@ -0,0 +1,1821 @@
11251 ++.file "des-586.s"
11253 ++.globl _DES_SPtrans
11255 ++__x86_DES_encrypt:
11258 ++ movl (%ecx),%eax
11260 ++ movl 4(%ecx),%edx
11264 ++ andl $0xfcfcfcfc,%eax
11265 ++ andl $0xcfcfcfcf,%edx
11269 ++ xorl (%ebp,%ebx,1),%edi
11271 ++ xorl 0x200(%ebp,%ecx,1),%edi
11274 ++ xorl 0x100(%ebp,%ebx,1),%edi
11277 ++ xorl 0x300(%ebp,%ecx,1),%edi
11281 ++ xorl 0x600(%ebp,%ebx,1),%edi
11282 ++ xorl 0x700(%ebp,%ecx,1),%edi
11283 ++ movl (%esp),%ecx
11284 ++ xorl 0x400(%ebp,%eax,1),%edi
11285 ++ xorl 0x500(%ebp,%edx,1),%edi
11287 ++ movl 8(%ecx),%eax
11289 ++ movl 12(%ecx),%edx
11293 ++ andl $0xfcfcfcfc,%eax
11294 ++ andl $0xcfcfcfcf,%edx
11298 ++ xorl (%ebp,%ebx,1),%esi
11300 ++ xorl 0x200(%ebp,%ecx,1),%esi
11303 ++ xorl 0x100(%ebp,%ebx,1),%esi
11306 ++ xorl 0x300(%ebp,%ecx,1),%esi
11310 ++ xorl 0x600(%ebp,%ebx,1),%esi
11311 ++ xorl 0x700(%ebp,%ecx,1),%esi
11312 ++ movl (%esp),%ecx
11313 ++ xorl 0x400(%ebp,%eax,1),%esi
11314 ++ xorl 0x500(%ebp,%edx,1),%esi
11316 ++ movl 16(%ecx),%eax
11318 ++ movl 20(%ecx),%edx
11322 ++ andl $0xfcfcfcfc,%eax
11323 ++ andl $0xcfcfcfcf,%edx
11327 ++ xorl (%ebp,%ebx,1),%edi
11329 ++ xorl 0x200(%ebp,%ecx,1),%edi
11332 ++ xorl 0x100(%ebp,%ebx,1),%edi
11335 ++ xorl 0x300(%ebp,%ecx,1),%edi
11339 ++ xorl 0x600(%ebp,%ebx,1),%edi
11340 ++ xorl 0x700(%ebp,%ecx,1),%edi
11341 ++ movl (%esp),%ecx
11342 ++ xorl 0x400(%ebp,%eax,1),%edi
11343 ++ xorl 0x500(%ebp,%edx,1),%edi
11345 ++ movl 24(%ecx),%eax
11347 ++ movl 28(%ecx),%edx
11351 ++ andl $0xfcfcfcfc,%eax
11352 ++ andl $0xcfcfcfcf,%edx
11356 ++ xorl (%ebp,%ebx,1),%esi
11358 ++ xorl 0x200(%ebp,%ecx,1),%esi
11361 ++ xorl 0x100(%ebp,%ebx,1),%esi
11364 ++ xorl 0x300(%ebp,%ecx,1),%esi
11368 ++ xorl 0x600(%ebp,%ebx,1),%esi
11369 ++ xorl 0x700(%ebp,%ecx,1),%esi
11370 ++ movl (%esp),%ecx
11371 ++ xorl 0x400(%ebp,%eax,1),%esi
11372 ++ xorl 0x500(%ebp,%edx,1),%esi
11374 ++ movl 32(%ecx),%eax
11376 ++ movl 36(%ecx),%edx
11380 ++ andl $0xfcfcfcfc,%eax
11381 ++ andl $0xcfcfcfcf,%edx
11385 ++ xorl (%ebp,%ebx,1),%edi
11387 ++ xorl 0x200(%ebp,%ecx,1),%edi
11390 ++ xorl 0x100(%ebp,%ebx,1),%edi
11393 ++ xorl 0x300(%ebp,%ecx,1),%edi
11397 ++ xorl 0x600(%ebp,%ebx,1),%edi
11398 ++ xorl 0x700(%ebp,%ecx,1),%edi
11399 ++ movl (%esp),%ecx
11400 ++ xorl 0x400(%ebp,%eax,1),%edi
11401 ++ xorl 0x500(%ebp,%edx,1),%edi
11403 ++ movl 40(%ecx),%eax
11405 ++ movl 44(%ecx),%edx
11409 ++ andl $0xfcfcfcfc,%eax
11410 ++ andl $0xcfcfcfcf,%edx
11414 ++ xorl (%ebp,%ebx,1),%esi
11416 ++ xorl 0x200(%ebp,%ecx,1),%esi
11419 ++ xorl 0x100(%ebp,%ebx,1),%esi
11422 ++ xorl 0x300(%ebp,%ecx,1),%esi
11426 ++ xorl 0x600(%ebp,%ebx,1),%esi
11427 ++ xorl 0x700(%ebp,%ecx,1),%esi
11428 ++ movl (%esp),%ecx
11429 ++ xorl 0x400(%ebp,%eax,1),%esi
11430 ++ xorl 0x500(%ebp,%edx,1),%esi
11432 ++ movl 48(%ecx),%eax
11434 ++ movl 52(%ecx),%edx
11438 ++ andl $0xfcfcfcfc,%eax
11439 ++ andl $0xcfcfcfcf,%edx
11443 ++ xorl (%ebp,%ebx,1),%edi
11445 ++ xorl 0x200(%ebp,%ecx,1),%edi
11448 ++ xorl 0x100(%ebp,%ebx,1),%edi
11451 ++ xorl 0x300(%ebp,%ecx,1),%edi
11455 ++ xorl 0x600(%ebp,%ebx,1),%edi
11456 ++ xorl 0x700(%ebp,%ecx,1),%edi
11457 ++ movl (%esp),%ecx
11458 ++ xorl 0x400(%ebp,%eax,1),%edi
11459 ++ xorl 0x500(%ebp,%edx,1),%edi
11461 ++ movl 56(%ecx),%eax
11463 ++ movl 60(%ecx),%edx
11467 ++ andl $0xfcfcfcfc,%eax
11468 ++ andl $0xcfcfcfcf,%edx
11472 ++ xorl (%ebp,%ebx,1),%esi
11474 ++ xorl 0x200(%ebp,%ecx,1),%esi
11477 ++ xorl 0x100(%ebp,%ebx,1),%esi
11480 ++ xorl 0x300(%ebp,%ecx,1),%esi
11484 ++ xorl 0x600(%ebp,%ebx,1),%esi
11485 ++ xorl 0x700(%ebp,%ecx,1),%esi
11486 ++ movl (%esp),%ecx
11487 ++ xorl 0x400(%ebp,%eax,1),%esi
11488 ++ xorl 0x500(%ebp,%edx,1),%esi
11490 ++ movl 64(%ecx),%eax
11492 ++ movl 68(%ecx),%edx
11496 ++ andl $0xfcfcfcfc,%eax
11497 ++ andl $0xcfcfcfcf,%edx
11501 ++ xorl (%ebp,%ebx,1),%edi
11503 ++ xorl 0x200(%ebp,%ecx,1),%edi
11506 ++ xorl 0x100(%ebp,%ebx,1),%edi
11509 ++ xorl 0x300(%ebp,%ecx,1),%edi
11513 ++ xorl 0x600(%ebp,%ebx,1),%edi
11514 ++ xorl 0x700(%ebp,%ecx,1),%edi
11515 ++ movl (%esp),%ecx
11516 ++ xorl 0x400(%ebp,%eax,1),%edi
11517 ++ xorl 0x500(%ebp,%edx,1),%edi
11519 ++ movl 72(%ecx),%eax
11521 ++ movl 76(%ecx),%edx
11525 ++ andl $0xfcfcfcfc,%eax
11526 ++ andl $0xcfcfcfcf,%edx
11530 ++ xorl (%ebp,%ebx,1),%esi
11532 ++ xorl 0x200(%ebp,%ecx,1),%esi
11535 ++ xorl 0x100(%ebp,%ebx,1),%esi
11538 ++ xorl 0x300(%ebp,%ecx,1),%esi
11542 ++ xorl 0x600(%ebp,%ebx,1),%esi
11543 ++ xorl 0x700(%ebp,%ecx,1),%esi
11544 ++ movl (%esp),%ecx
11545 ++ xorl 0x400(%ebp,%eax,1),%esi
11546 ++ xorl 0x500(%ebp,%edx,1),%esi
11548 ++ movl 80(%ecx),%eax
11550 ++ movl 84(%ecx),%edx
11554 ++ andl $0xfcfcfcfc,%eax
11555 ++ andl $0xcfcfcfcf,%edx
11559 ++ xorl (%ebp,%ebx,1),%edi
11561 ++ xorl 0x200(%ebp,%ecx,1),%edi
11564 ++ xorl 0x100(%ebp,%ebx,1),%edi
11567 ++ xorl 0x300(%ebp,%ecx,1),%edi
11571 ++ xorl 0x600(%ebp,%ebx,1),%edi
11572 ++ xorl 0x700(%ebp,%ecx,1),%edi
11573 ++ movl (%esp),%ecx
11574 ++ xorl 0x400(%ebp,%eax,1),%edi
11575 ++ xorl 0x500(%ebp,%edx,1),%edi
11577 ++ movl 88(%ecx),%eax
11579 ++ movl 92(%ecx),%edx
11583 ++ andl $0xfcfcfcfc,%eax
11584 ++ andl $0xcfcfcfcf,%edx
11588 ++ xorl (%ebp,%ebx,1),%esi
11590 ++ xorl 0x200(%ebp,%ecx,1),%esi
11593 ++ xorl 0x100(%ebp,%ebx,1),%esi
11596 ++ xorl 0x300(%ebp,%ecx,1),%esi
11600 ++ xorl 0x600(%ebp,%ebx,1),%esi
11601 ++ xorl 0x700(%ebp,%ecx,1),%esi
11602 ++ movl (%esp),%ecx
11603 ++ xorl 0x400(%ebp,%eax,1),%esi
11604 ++ xorl 0x500(%ebp,%edx,1),%esi
11606 ++ movl 96(%ecx),%eax
11608 ++ movl 100(%ecx),%edx
11612 ++ andl $0xfcfcfcfc,%eax
11613 ++ andl $0xcfcfcfcf,%edx
11617 ++ xorl (%ebp,%ebx,1),%edi
11619 ++ xorl 0x200(%ebp,%ecx,1),%edi
11622 ++ xorl 0x100(%ebp,%ebx,1),%edi
11625 ++ xorl 0x300(%ebp,%ecx,1),%edi
11629 ++ xorl 0x600(%ebp,%ebx,1),%edi
11630 ++ xorl 0x700(%ebp,%ecx,1),%edi
11631 ++ movl (%esp),%ecx
11632 ++ xorl 0x400(%ebp,%eax,1),%edi
11633 ++ xorl 0x500(%ebp,%edx,1),%edi
11635 ++ movl 104(%ecx),%eax
11637 ++ movl 108(%ecx),%edx
11641 ++ andl $0xfcfcfcfc,%eax
11642 ++ andl $0xcfcfcfcf,%edx
11646 ++ xorl (%ebp,%ebx,1),%esi
11648 ++ xorl 0x200(%ebp,%ecx,1),%esi
11651 ++ xorl 0x100(%ebp,%ebx,1),%esi
11654 ++ xorl 0x300(%ebp,%ecx,1),%esi
11658 ++ xorl 0x600(%ebp,%ebx,1),%esi
11659 ++ xorl 0x700(%ebp,%ecx,1),%esi
11660 ++ movl (%esp),%ecx
11661 ++ xorl 0x400(%ebp,%eax,1),%esi
11662 ++ xorl 0x500(%ebp,%edx,1),%esi
11664 ++ movl 112(%ecx),%eax
11666 ++ movl 116(%ecx),%edx
11670 ++ andl $0xfcfcfcfc,%eax
11671 ++ andl $0xcfcfcfcf,%edx
11675 ++ xorl (%ebp,%ebx,1),%edi
11677 ++ xorl 0x200(%ebp,%ecx,1),%edi
11680 ++ xorl 0x100(%ebp,%ebx,1),%edi
11683 ++ xorl 0x300(%ebp,%ecx,1),%edi
11687 ++ xorl 0x600(%ebp,%ebx,1),%edi
11688 ++ xorl 0x700(%ebp,%ecx,1),%edi
11689 ++ movl (%esp),%ecx
11690 ++ xorl 0x400(%ebp,%eax,1),%edi
11691 ++ xorl 0x500(%ebp,%edx,1),%edi
11693 ++ movl 120(%ecx),%eax
11695 ++ movl 124(%ecx),%edx
11699 ++ andl $0xfcfcfcfc,%eax
11700 ++ andl $0xcfcfcfcf,%edx
11704 ++ xorl (%ebp,%ebx,1),%esi
11706 ++ xorl 0x200(%ebp,%ecx,1),%esi
11709 ++ xorl 0x100(%ebp,%ebx,1),%esi
11712 ++ xorl 0x300(%ebp,%ecx,1),%esi
11716 ++ xorl 0x600(%ebp,%ebx,1),%esi
11717 ++ xorl 0x700(%ebp,%ecx,1),%esi
11718 ++ movl (%esp),%ecx
11719 ++ xorl 0x400(%ebp,%eax,1),%esi
11720 ++ xorl 0x500(%ebp,%edx,1),%esi
11724 ++__x86_DES_decrypt:
11727 ++ movl 120(%ecx),%eax
11729 ++ movl 124(%ecx),%edx
11733 ++ andl $0xfcfcfcfc,%eax
11734 ++ andl $0xcfcfcfcf,%edx
11738 ++ xorl (%ebp,%ebx,1),%edi
11740 ++ xorl 0x200(%ebp,%ecx,1),%edi
11743 ++ xorl 0x100(%ebp,%ebx,1),%edi
11746 ++ xorl 0x300(%ebp,%ecx,1),%edi
11750 ++ xorl 0x600(%ebp,%ebx,1),%edi
11751 ++ xorl 0x700(%ebp,%ecx,1),%edi
11752 ++ movl (%esp),%ecx
11753 ++ xorl 0x400(%ebp,%eax,1),%edi
11754 ++ xorl 0x500(%ebp,%edx,1),%edi
11756 ++ movl 112(%ecx),%eax
11758 ++ movl 116(%ecx),%edx
11762 ++ andl $0xfcfcfcfc,%eax
11763 ++ andl $0xcfcfcfcf,%edx
11767 ++ xorl (%ebp,%ebx,1),%esi
11769 ++ xorl 0x200(%ebp,%ecx,1),%esi
11772 ++ xorl 0x100(%ebp,%ebx,1),%esi
11775 ++ xorl 0x300(%ebp,%ecx,1),%esi
11779 ++ xorl 0x600(%ebp,%ebx,1),%esi
11780 ++ xorl 0x700(%ebp,%ecx,1),%esi
11781 ++ movl (%esp),%ecx
11782 ++ xorl 0x400(%ebp,%eax,1),%esi
11783 ++ xorl 0x500(%ebp,%edx,1),%esi
11785 ++ movl 104(%ecx),%eax
11787 ++ movl 108(%ecx),%edx
11791 ++ andl $0xfcfcfcfc,%eax
11792 ++ andl $0xcfcfcfcf,%edx
11796 ++ xorl (%ebp,%ebx,1),%edi
11798 ++ xorl 0x200(%ebp,%ecx,1),%edi
11801 ++ xorl 0x100(%ebp,%ebx,1),%edi
11804 ++ xorl 0x300(%ebp,%ecx,1),%edi
11808 ++ xorl 0x600(%ebp,%ebx,1),%edi
11809 ++ xorl 0x700(%ebp,%ecx,1),%edi
11810 ++ movl (%esp),%ecx
11811 ++ xorl 0x400(%ebp,%eax,1),%edi
11812 ++ xorl 0x500(%ebp,%edx,1),%edi
11814 ++ movl 96(%ecx),%eax
11816 ++ movl 100(%ecx),%edx
11820 ++ andl $0xfcfcfcfc,%eax
11821 ++ andl $0xcfcfcfcf,%edx
11825 ++ xorl (%ebp,%ebx,1),%esi
11827 ++ xorl 0x200(%ebp,%ecx,1),%esi
11830 ++ xorl 0x100(%ebp,%ebx,1),%esi
11833 ++ xorl 0x300(%ebp,%ecx,1),%esi
11837 ++ xorl 0x600(%ebp,%ebx,1),%esi
11838 ++ xorl 0x700(%ebp,%ecx,1),%esi
11839 ++ movl (%esp),%ecx
11840 ++ xorl 0x400(%ebp,%eax,1),%esi
11841 ++ xorl 0x500(%ebp,%edx,1),%esi
11843 ++ movl 88(%ecx),%eax
11845 ++ movl 92(%ecx),%edx
11849 ++ andl $0xfcfcfcfc,%eax
11850 ++ andl $0xcfcfcfcf,%edx
11854 ++ xorl (%ebp,%ebx,1),%edi
11856 ++ xorl 0x200(%ebp,%ecx,1),%edi
11859 ++ xorl 0x100(%ebp,%ebx,1),%edi
11862 ++ xorl 0x300(%ebp,%ecx,1),%edi
11866 ++ xorl 0x600(%ebp,%ebx,1),%edi
11867 ++ xorl 0x700(%ebp,%ecx,1),%edi
11868 ++ movl (%esp),%ecx
11869 ++ xorl 0x400(%ebp,%eax,1),%edi
11870 ++ xorl 0x500(%ebp,%edx,1),%edi
11872 ++ movl 80(%ecx),%eax
11874 ++ movl 84(%ecx),%edx
11878 ++ andl $0xfcfcfcfc,%eax
11879 ++ andl $0xcfcfcfcf,%edx
11883 ++ xorl (%ebp,%ebx,1),%esi
11885 ++ xorl 0x200(%ebp,%ecx,1),%esi
11888 ++ xorl 0x100(%ebp,%ebx,1),%esi
11891 ++ xorl 0x300(%ebp,%ecx,1),%esi
11895 ++ xorl 0x600(%ebp,%ebx,1),%esi
11896 ++ xorl 0x700(%ebp,%ecx,1),%esi
11897 ++ movl (%esp),%ecx
11898 ++ xorl 0x400(%ebp,%eax,1),%esi
11899 ++ xorl 0x500(%ebp,%edx,1),%esi
11901 ++ movl 72(%ecx),%eax
11903 ++ movl 76(%ecx),%edx
11907 ++ andl $0xfcfcfcfc,%eax
11908 ++ andl $0xcfcfcfcf,%edx
11912 ++ xorl (%ebp,%ebx,1),%edi
11914 ++ xorl 0x200(%ebp,%ecx,1),%edi
11917 ++ xorl 0x100(%ebp,%ebx,1),%edi
11920 ++ xorl 0x300(%ebp,%ecx,1),%edi
11924 ++ xorl 0x600(%ebp,%ebx,1),%edi
11925 ++ xorl 0x700(%ebp,%ecx,1),%edi
11926 ++ movl (%esp),%ecx
11927 ++ xorl 0x400(%ebp,%eax,1),%edi
11928 ++ xorl 0x500(%ebp,%edx,1),%edi
11930 ++ movl 64(%ecx),%eax
11932 ++ movl 68(%ecx),%edx
11936 ++ andl $0xfcfcfcfc,%eax
11937 ++ andl $0xcfcfcfcf,%edx
11941 ++ xorl (%ebp,%ebx,1),%esi
11943 ++ xorl 0x200(%ebp,%ecx,1),%esi
11946 ++ xorl 0x100(%ebp,%ebx,1),%esi
11949 ++ xorl 0x300(%ebp,%ecx,1),%esi
11953 ++ xorl 0x600(%ebp,%ebx,1),%esi
11954 ++ xorl 0x700(%ebp,%ecx,1),%esi
11955 ++ movl (%esp),%ecx
11956 ++ xorl 0x400(%ebp,%eax,1),%esi
11957 ++ xorl 0x500(%ebp,%edx,1),%esi
11959 ++ movl 56(%ecx),%eax
11961 ++ movl 60(%ecx),%edx
11965 ++ andl $0xfcfcfcfc,%eax
11966 ++ andl $0xcfcfcfcf,%edx
11970 ++ xorl (%ebp,%ebx,1),%edi
11972 ++ xorl 0x200(%ebp,%ecx,1),%edi
11975 ++ xorl 0x100(%ebp,%ebx,1),%edi
11978 ++ xorl 0x300(%ebp,%ecx,1),%edi
11982 ++ xorl 0x600(%ebp,%ebx,1),%edi
11983 ++ xorl 0x700(%ebp,%ecx,1),%edi
11984 ++ movl (%esp),%ecx
11985 ++ xorl 0x400(%ebp,%eax,1),%edi
11986 ++ xorl 0x500(%ebp,%edx,1),%edi
11988 ++ movl 48(%ecx),%eax
11990 ++ movl 52(%ecx),%edx
11994 ++ andl $0xfcfcfcfc,%eax
11995 ++ andl $0xcfcfcfcf,%edx
11999 ++ xorl (%ebp,%ebx,1),%esi
12001 ++ xorl 0x200(%ebp,%ecx,1),%esi
12004 ++ xorl 0x100(%ebp,%ebx,1),%esi
12007 ++ xorl 0x300(%ebp,%ecx,1),%esi
12011 ++ xorl 0x600(%ebp,%ebx,1),%esi
12012 ++ xorl 0x700(%ebp,%ecx,1),%esi
12013 ++ movl (%esp),%ecx
12014 ++ xorl 0x400(%ebp,%eax,1),%esi
12015 ++ xorl 0x500(%ebp,%edx,1),%esi
12017 ++ movl 40(%ecx),%eax
12019 ++ movl 44(%ecx),%edx
12023 ++ andl $0xfcfcfcfc,%eax
12024 ++ andl $0xcfcfcfcf,%edx
12028 ++ xorl (%ebp,%ebx,1),%edi
12030 ++ xorl 0x200(%ebp,%ecx,1),%edi
12033 ++ xorl 0x100(%ebp,%ebx,1),%edi
12036 ++ xorl 0x300(%ebp,%ecx,1),%edi
12040 ++ xorl 0x600(%ebp,%ebx,1),%edi
12041 ++ xorl 0x700(%ebp,%ecx,1),%edi
12042 ++ movl (%esp),%ecx
12043 ++ xorl 0x400(%ebp,%eax,1),%edi
12044 ++ xorl 0x500(%ebp,%edx,1),%edi
12046 ++ movl 32(%ecx),%eax
12048 ++ movl 36(%ecx),%edx
12052 ++ andl $0xfcfcfcfc,%eax
12053 ++ andl $0xcfcfcfcf,%edx
12057 ++ xorl (%ebp,%ebx,1),%esi
12059 ++ xorl 0x200(%ebp,%ecx,1),%esi
12062 ++ xorl 0x100(%ebp,%ebx,1),%esi
12065 ++ xorl 0x300(%ebp,%ecx,1),%esi
12069 ++ xorl 0x600(%ebp,%ebx,1),%esi
12070 ++ xorl 0x700(%ebp,%ecx,1),%esi
12071 ++ movl (%esp),%ecx
12072 ++ xorl 0x400(%ebp,%eax,1),%esi
12073 ++ xorl 0x500(%ebp,%edx,1),%esi
12075 ++ movl 24(%ecx),%eax
12077 ++ movl 28(%ecx),%edx
12081 ++ andl $0xfcfcfcfc,%eax
12082 ++ andl $0xcfcfcfcf,%edx
12086 ++ xorl (%ebp,%ebx,1),%edi
12088 ++ xorl 0x200(%ebp,%ecx,1),%edi
12091 ++ xorl 0x100(%ebp,%ebx,1),%edi
12094 ++ xorl 0x300(%ebp,%ecx,1),%edi
12098 ++ xorl 0x600(%ebp,%ebx,1),%edi
12099 ++ xorl 0x700(%ebp,%ecx,1),%edi
12100 ++ movl (%esp),%ecx
12101 ++ xorl 0x400(%ebp,%eax,1),%edi
12102 ++ xorl 0x500(%ebp,%edx,1),%edi
12104 ++ movl 16(%ecx),%eax
12106 ++ movl 20(%ecx),%edx
12110 ++ andl $0xfcfcfcfc,%eax
12111 ++ andl $0xcfcfcfcf,%edx
12115 ++ xorl (%ebp,%ebx,1),%esi
12117 ++ xorl 0x200(%ebp,%ecx,1),%esi
12120 ++ xorl 0x100(%ebp,%ebx,1),%esi
12123 ++ xorl 0x300(%ebp,%ecx,1),%esi
12127 ++ xorl 0x600(%ebp,%ebx,1),%esi
12128 ++ xorl 0x700(%ebp,%ecx,1),%esi
12129 ++ movl (%esp),%ecx
12130 ++ xorl 0x400(%ebp,%eax,1),%esi
12131 ++ xorl 0x500(%ebp,%edx,1),%esi
12133 ++ movl 8(%ecx),%eax
12135 ++ movl 12(%ecx),%edx
12139 ++ andl $0xfcfcfcfc,%eax
12140 ++ andl $0xcfcfcfcf,%edx
12144 ++ xorl (%ebp,%ebx,1),%edi
12146 ++ xorl 0x200(%ebp,%ecx,1),%edi
12149 ++ xorl 0x100(%ebp,%ebx,1),%edi
12152 ++ xorl 0x300(%ebp,%ecx,1),%edi
12156 ++ xorl 0x600(%ebp,%ebx,1),%edi
12157 ++ xorl 0x700(%ebp,%ecx,1),%edi
12158 ++ movl (%esp),%ecx
12159 ++ xorl 0x400(%ebp,%eax,1),%edi
12160 ++ xorl 0x500(%ebp,%edx,1),%edi
12162 ++ movl (%ecx),%eax
12164 ++ movl 4(%ecx),%edx
12168 ++ andl $0xfcfcfcfc,%eax
12169 ++ andl $0xcfcfcfcf,%edx
12173 ++ xorl (%ebp,%ebx,1),%esi
12175 ++ xorl 0x200(%ebp,%ecx,1),%esi
12178 ++ xorl 0x100(%ebp,%ebx,1),%esi
12181 ++ xorl 0x300(%ebp,%ecx,1),%esi
12185 ++ xorl 0x600(%ebp,%ebx,1),%esi
12186 ++ xorl 0x700(%ebp,%ecx,1),%esi
12187 ++ movl (%esp),%ecx
12188 ++ xorl 0x400(%ebp,%eax,1),%esi
12189 ++ xorl 0x500(%ebp,%edx,1),%esi
12192 ++.globl _DES_encrypt1
12195 ++L_DES_encrypt1_begin:
12199 ++ # Load the 2 words
12200 ++ movl 12(%esp),%esi
12204 ++ movl (%esi),%eax
12205 ++ movl 28(%esp),%ebx
12206 ++ movl 4(%esi),%edi
12212 ++ andl $0xf0f0f0f0,%eax
12219 ++ andl $0xfff0000f,%edi
12226 ++ andl $0x33333333,%eax
12233 ++ andl $0x03fc03fc,%esi
12240 ++ andl $0xaaaaaaaa,%eax
12245 ++ call L000pic_point
12248 ++ leal _DES_SPtrans-L000pic_point(%ebp),%ebp
12249 ++ movl 24(%esp),%ecx
12252 ++ call __x86_DES_encrypt
12255 ++ call __x86_DES_decrypt
12259 ++ movl 20(%esp),%edx
12263 ++ andl $0xaaaaaaaa,%edi
12270 ++ andl $0x03fc03fc,%eax
12277 ++ andl $0x33333333,%edi
12284 ++ andl $0xfff0000f,%esi
12291 ++ andl $0xf0f0f0f0,%edi
12296 ++ movl %eax,(%edx)
12297 ++ movl %esi,4(%edx)
12303 ++.globl _DES_encrypt2
12306 ++L_DES_encrypt2_begin:
12310 ++ # Load the 2 words
12311 ++ movl 12(%esp),%eax
12315 ++ movl (%eax),%esi
12316 ++ movl 28(%esp),%ebx
12318 ++ movl 4(%eax),%edi
12320 ++ call L003pic_point
12323 ++ leal _DES_SPtrans-L003pic_point(%ebp),%ebp
12324 ++ movl 24(%esp),%ecx
12327 ++ call __x86_DES_encrypt
12330 ++ call __x86_DES_decrypt
12335 ++ movl 20(%esp),%eax
12337 ++ movl %edi,(%eax)
12338 ++ movl %esi,4(%eax)
12344 ++.globl _DES_encrypt3
12347 ++L_DES_encrypt3_begin:
12349 ++ movl 8(%esp),%ebx
12354 ++ # Load the data words
12355 ++ movl (%ebx),%edi
12356 ++ movl 4(%ebx),%esi
12363 ++ andl $0xf0f0f0f0,%edi
12370 ++ andl $0xfff0000f,%esi
12377 ++ andl $0x33333333,%edi
12384 ++ andl $0x03fc03fc,%edx
12391 ++ andl $0xaaaaaaaa,%edi
12397 ++ movl %esi,4(%ebx)
12398 ++ movl 36(%esp),%eax
12399 ++ movl %edx,(%ebx)
12400 ++ movl 40(%esp),%edi
12401 ++ movl 44(%esp),%esi
12403 ++ movl %eax,4(%esp)
12404 ++ movl %ebx,(%esp)
12405 ++ call L_DES_encrypt2_begin
12407 ++ movl %edi,4(%esp)
12408 ++ movl %ebx,(%esp)
12409 ++ call L_DES_encrypt2_begin
12411 ++ movl %esi,4(%esp)
12412 ++ movl %ebx,(%esp)
12413 ++ call L_DES_encrypt2_begin
12415 ++ movl (%ebx),%edi
12416 ++ movl 4(%ebx),%esi
12423 ++ andl $0xaaaaaaaa,%edi
12430 ++ andl $0x03fc03fc,%eax
12437 ++ andl $0x33333333,%edi
12444 ++ andl $0xfff0000f,%esi
12451 ++ andl $0xf0f0f0f0,%edi
12456 ++ movl %eax,(%ebx)
12457 ++ movl %esi,4(%ebx)
12463 ++.globl _DES_decrypt3
12466 ++L_DES_decrypt3_begin:
12468 ++ movl 8(%esp),%ebx
12473 ++ # Load the data words
12474 ++ movl (%ebx),%edi
12475 ++ movl 4(%ebx),%esi
12482 ++ andl $0xf0f0f0f0,%edi
12489 ++ andl $0xfff0000f,%esi
12496 ++ andl $0x33333333,%edi
12503 ++ andl $0x03fc03fc,%edx
12510 ++ andl $0xaaaaaaaa,%edi
12516 ++ movl %esi,4(%ebx)
12517 ++ movl 36(%esp),%esi
12518 ++ movl %edx,(%ebx)
12519 ++ movl 40(%esp),%edi
12520 ++ movl 44(%esp),%eax
12522 ++ movl %eax,4(%esp)
12523 ++ movl %ebx,(%esp)
12524 ++ call L_DES_encrypt2_begin
12526 ++ movl %edi,4(%esp)
12527 ++ movl %ebx,(%esp)
12528 ++ call L_DES_encrypt2_begin
12530 ++ movl %esi,4(%esp)
12531 ++ movl %ebx,(%esp)
12532 ++ call L_DES_encrypt2_begin
12534 ++ movl (%ebx),%edi
12535 ++ movl 4(%ebx),%esi
12542 ++ andl $0xaaaaaaaa,%edi
12549 ++ andl $0x03fc03fc,%eax
12556 ++ andl $0x33333333,%edi
12563 ++ andl $0xfff0000f,%esi
12570 ++ andl $0xf0f0f0f0,%edi
12575 ++ movl %eax,(%ebx)
12576 ++ movl %esi,4(%ebx)
12582 ++.globl _DES_ncbc_encrypt
12584 ++_DES_ncbc_encrypt:
12585 ++L_DES_ncbc_encrypt_begin:
12591 ++ movl 28(%esp),%ebp
12592 ++ # getting iv ptr from parameter 4
12593 ++ movl 36(%esp),%ebx
12594 ++ movl (%ebx),%esi
12595 ++ movl 4(%ebx),%edi
12601 ++ movl 36(%esp),%esi
12602 ++ movl 40(%esp),%edi
12603 ++ # getting encrypt flag from parameter 5
12604 ++ movl 56(%esp),%ecx
12605 ++ # get and push parameter 5
12607 ++ # get and push parameter 3
12608 ++ movl 52(%esp),%eax
12613 ++ andl $4294967288,%ebp
12614 ++ movl 12(%esp),%eax
12615 ++ movl 16(%esp),%ebx
12616 ++ jz L007encrypt_finish
12617 ++L008encrypt_loop:
12618 ++ movl (%esi),%ecx
12619 ++ movl 4(%esi),%edx
12622 ++ movl %eax,12(%esp)
12623 ++ movl %ebx,16(%esp)
12624 ++ call L_DES_encrypt1_begin
12625 ++ movl 12(%esp),%eax
12626 ++ movl 16(%esp),%ebx
12627 ++ movl %eax,(%edi)
12628 ++ movl %ebx,4(%edi)
12632 ++ jnz L008encrypt_loop
12633 ++L007encrypt_finish:
12634 ++ movl 56(%esp),%ebp
12637 ++ call L010PIC_point
12640 ++ leal L011cbc_enc_jmp_table-L010PIC_point(%edx),%ecx
12641 ++ movl (%ecx,%ebp,4),%ebp
12647 ++ movb 6(%esi),%dh
12650 ++ movb 5(%esi),%dh
12652 ++ movb 4(%esi),%dl
12654 ++ movl (%esi),%ecx
12657 ++ movb 2(%esi),%ch
12660 ++ movb 1(%esi),%ch
12666 ++ movl %eax,12(%esp)
12667 ++ movl %ebx,16(%esp)
12668 ++ call L_DES_encrypt1_begin
12669 ++ movl 12(%esp),%eax
12670 ++ movl 16(%esp),%ebx
12671 ++ movl %eax,(%edi)
12672 ++ movl %ebx,4(%edi)
12675 ++ andl $4294967288,%ebp
12676 ++ movl 20(%esp),%eax
12677 ++ movl 24(%esp),%ebx
12678 ++ jz L020decrypt_finish
12679 ++L021decrypt_loop:
12680 ++ movl (%esi),%eax
12681 ++ movl 4(%esi),%ebx
12682 ++ movl %eax,12(%esp)
12683 ++ movl %ebx,16(%esp)
12684 ++ call L_DES_encrypt1_begin
12685 ++ movl 12(%esp),%eax
12686 ++ movl 16(%esp),%ebx
12687 ++ movl 20(%esp),%ecx
12688 ++ movl 24(%esp),%edx
12691 ++ movl (%esi),%eax
12692 ++ movl 4(%esi),%ebx
12693 ++ movl %ecx,(%edi)
12694 ++ movl %edx,4(%edi)
12695 ++ movl %eax,20(%esp)
12696 ++ movl %ebx,24(%esp)
12700 ++ jnz L021decrypt_loop
12701 ++L020decrypt_finish:
12702 ++ movl 56(%esp),%ebp
12705 ++ movl (%esi),%eax
12706 ++ movl 4(%esi),%ebx
12707 ++ movl %eax,12(%esp)
12708 ++ movl %ebx,16(%esp)
12709 ++ call L_DES_encrypt1_begin
12710 ++ movl 12(%esp),%eax
12711 ++ movl 16(%esp),%ebx
12712 ++ movl 20(%esp),%ecx
12713 ++ movl 24(%esp),%edx
12716 ++ movl (%esi),%eax
12717 ++ movl 4(%esi),%ebx
12720 ++ movb %dl,6(%edi)
12723 ++ movb %dh,5(%edi)
12725 ++ movb %dl,4(%edi)
12727 ++ movl %ecx,(%edi)
12731 ++ movb %cl,2(%edi)
12734 ++ movb %ch,1(%esi)
12740 ++ movl 64(%esp),%ecx
12742 ++ movl %eax,(%ecx)
12743 ++ movl %ebx,4(%ecx)
12750 ++L011cbc_enc_jmp_table:
12752 ++.long L019ej1-L010PIC_point
12753 ++.long L018ej2-L010PIC_point
12754 ++.long L017ej3-L010PIC_point
12755 ++.long L015ej4-L010PIC_point
12756 ++.long L014ej5-L010PIC_point
12757 ++.long L013ej6-L010PIC_point
12758 ++.long L012ej7-L010PIC_point
12760 ++.globl _DES_ede3_cbc_encrypt
12762 ++_DES_ede3_cbc_encrypt:
12763 ++L_DES_ede3_cbc_encrypt_begin:
12769 ++ movl 28(%esp),%ebp
12770 ++ # getting iv ptr from parameter 6
12771 ++ movl 44(%esp),%ebx
12772 ++ movl (%ebx),%esi
12773 ++ movl 4(%ebx),%edi
12779 ++ movl 36(%esp),%esi
12780 ++ movl 40(%esp),%edi
12781 ++ # getting encrypt flag from parameter 7
12782 ++ movl 64(%esp),%ecx
12783 ++ # get and push parameter 5
12784 ++ movl 56(%esp),%eax
12786 ++ # get and push parameter 4
12787 ++ movl 56(%esp),%eax
12789 ++ # get and push parameter 3
12790 ++ movl 56(%esp),%eax
12795 ++ andl $4294967288,%ebp
12796 ++ movl 16(%esp),%eax
12797 ++ movl 20(%esp),%ebx
12798 ++ jz L031encrypt_finish
12799 ++L032encrypt_loop:
12800 ++ movl (%esi),%ecx
12801 ++ movl 4(%esi),%edx
12804 ++ movl %eax,16(%esp)
12805 ++ movl %ebx,20(%esp)
12806 ++ call L_DES_encrypt3_begin
12807 ++ movl 16(%esp),%eax
12808 ++ movl 20(%esp),%ebx
12809 ++ movl %eax,(%edi)
12810 ++ movl %ebx,4(%edi)
12814 ++ jnz L032encrypt_loop
12815 ++L031encrypt_finish:
12816 ++ movl 60(%esp),%ebp
12819 ++ call L034PIC_point
12822 ++ leal L035cbc_enc_jmp_table-L034PIC_point(%edx),%ecx
12823 ++ movl (%ecx,%ebp,4),%ebp
12829 ++ movb 6(%esi),%dh
12832 ++ movb 5(%esi),%dh
12834 ++ movb 4(%esi),%dl
12836 ++ movl (%esi),%ecx
12839 ++ movb 2(%esi),%ch
12842 ++ movb 1(%esi),%ch
12848 ++ movl %eax,16(%esp)
12849 ++ movl %ebx,20(%esp)
12850 ++ call L_DES_encrypt3_begin
12851 ++ movl 16(%esp),%eax
12852 ++ movl 20(%esp),%ebx
12853 ++ movl %eax,(%edi)
12854 ++ movl %ebx,4(%edi)
12857 ++ andl $4294967288,%ebp
12858 ++ movl 24(%esp),%eax
12859 ++ movl 28(%esp),%ebx
12860 ++ jz L044decrypt_finish
12861 ++L045decrypt_loop:
12862 ++ movl (%esi),%eax
12863 ++ movl 4(%esi),%ebx
12864 ++ movl %eax,16(%esp)
12865 ++ movl %ebx,20(%esp)
12866 ++ call L_DES_decrypt3_begin
12867 ++ movl 16(%esp),%eax
12868 ++ movl 20(%esp),%ebx
12869 ++ movl 24(%esp),%ecx
12870 ++ movl 28(%esp),%edx
12873 ++ movl (%esi),%eax
12874 ++ movl 4(%esi),%ebx
12875 ++ movl %ecx,(%edi)
12876 ++ movl %edx,4(%edi)
12877 ++ movl %eax,24(%esp)
12878 ++ movl %ebx,28(%esp)
12882 ++ jnz L045decrypt_loop
12883 ++L044decrypt_finish:
12884 ++ movl 60(%esp),%ebp
12887 ++ movl (%esi),%eax
12888 ++ movl 4(%esi),%ebx
12889 ++ movl %eax,16(%esp)
12890 ++ movl %ebx,20(%esp)
12891 ++ call L_DES_decrypt3_begin
12892 ++ movl 16(%esp),%eax
12893 ++ movl 20(%esp),%ebx
12894 ++ movl 24(%esp),%ecx
12895 ++ movl 28(%esp),%edx
12898 ++ movl (%esi),%eax
12899 ++ movl 4(%esi),%ebx
12902 ++ movb %dl,6(%edi)
12905 ++ movb %dh,5(%edi)
12907 ++ movb %dl,4(%edi)
12909 ++ movl %ecx,(%edi)
12913 ++ movb %cl,2(%edi)
12916 ++ movb %ch,1(%esi)
12922 ++ movl 76(%esp),%ecx
12924 ++ movl %eax,(%ecx)
12925 ++ movl %ebx,4(%ecx)
12932 ++L035cbc_enc_jmp_table:
12934 ++.long L043ej1-L034PIC_point
12935 ++.long L042ej2-L034PIC_point
12936 ++.long L041ej3-L034PIC_point
12937 ++.long L039ej4-L034PIC_point
12938 ++.long L038ej5-L034PIC_point
12939 ++.long L037ej6-L034PIC_point
12940 ++.long L036ej7-L034PIC_point
12944 ++.long 34080768,524288,33554434,34080770
12945 ++.long 33554432,526338,524290,33554434
12946 ++.long 526338,34080768,34078720,2050
12947 ++.long 33556482,33554432,0,524290
12948 ++.long 524288,2,33556480,526336
12949 ++.long 34080770,34078720,2050,33556480
12950 ++.long 2,2048,526336,34078722
12951 ++.long 2048,33556482,34078722,0
12952 ++.long 0,34080770,33556480,524290
12953 ++.long 34080768,524288,2050,33556480
12954 ++.long 34078722,2048,526336,33554434
12955 ++.long 526338,2,33554434,34078720
12956 ++.long 34080770,526336,34078720,33556482
12957 ++.long 33554432,2050,524290,0
12958 ++.long 524288,33554432,33556482,34080768
12959 ++.long 2,34078722,2048,526338
12960 ++.long 1074823184,0,1081344,1074790400
12961 ++.long 1073741840,32784,1073774592,1081344
12962 ++.long 32768,1074790416,16,1073774592
12963 ++.long 1048592,1074823168,1074790400,16
12964 ++.long 1048576,1073774608,1074790416,32768
12965 ++.long 1081360,1073741824,0,1048592
12966 ++.long 1073774608,1081360,1074823168,1073741840
12967 ++.long 1073741824,1048576,32784,1074823184
12968 ++.long 1048592,1074823168,1073774592,1081360
12969 ++.long 1074823184,1048592,1073741840,0
12970 ++.long 1073741824,32784,1048576,1074790416
12971 ++.long 32768,1073741824,1081360,1073774608
12972 ++.long 1074823168,32768,0,1073741840
12973 ++.long 16,1074823184,1081344,1074790400
12974 ++.long 1074790416,1048576,32784,1073774592
12975 ++.long 1073774608,16,1074790400,1081344
12976 ++.long 67108865,67371264,256,67109121
12977 ++.long 262145,67108864,67109121,262400
12978 ++.long 67109120,262144,67371008,1
12979 ++.long 67371265,257,1,67371009
12980 ++.long 0,262145,67371264,256
12981 ++.long 257,67371265,262144,67108865
12982 ++.long 67371009,67109120,262401,67371008
12983 ++.long 262400,0,67108864,262401
12984 ++.long 67371264,256,1,262144
12985 ++.long 257,262145,67371008,67109121
12986 ++.long 0,67371264,262400,67371009
12987 ++.long 262145,67108864,67371265,1
12988 ++.long 262401,67108865,67108864,67371265
12989 ++.long 262144,67109120,67109121,262400
12990 ++.long 67109120,0,67371009,257
12991 ++.long 67108865,262401,256,67371008
12992 ++.long 4198408,268439552,8,272633864
12993 ++.long 0,272629760,268439560,4194312
12994 ++.long 272633856,268435464,268435456,4104
12995 ++.long 268435464,4198408,4194304,268435456
12996 ++.long 272629768,4198400,4096,8
12997 ++.long 4198400,268439560,272629760,4096
12998 ++.long 4104,0,4194312,272633856
12999 ++.long 268439552,272629768,272633864,4194304
13000 ++.long 272629768,4104,4194304,268435464
13001 ++.long 4198400,268439552,8,272629760
13002 ++.long 268439560,0,4096,4194312
13003 ++.long 0,272629768,272633856,4096
13004 ++.long 268435456,272633864,4198408,4194304
13005 ++.long 272633864,8,268439552,4198408
13006 ++.long 4194312,4198400,272629760,268439560
13007 ++.long 4104,268435456,268435464,272633856
13008 ++.long 134217728,65536,1024,134284320
13009 ++.long 134283296,134218752,66592,134283264
13010 ++.long 65536,32,134217760,66560
13011 ++.long 134218784,134283296,134284288,0
13012 ++.long 66560,134217728,65568,1056
13013 ++.long 134218752,66592,0,134217760
13014 ++.long 32,134218784,134284320,65568
13015 ++.long 134283264,1024,1056,134284288
13016 ++.long 134284288,134218784,65568,134283264
13017 ++.long 65536,32,134217760,134218752
13018 ++.long 134217728,66560,134284320,0
13019 ++.long 66592,134217728,1024,65568
13020 ++.long 134218784,1024,0,134284320
13021 ++.long 134283296,134284288,1056,65536
13022 ++.long 66560,134283296,134218752,1056
13023 ++.long 32,66592,134283264,134217760
13024 ++.long 2147483712,2097216,0,2149588992
13025 ++.long 2097216,8192,2147491904,2097152
13026 ++.long 8256,2149589056,2105344,2147483648
13027 ++.long 2147491840,2147483712,2149580800,2105408
13028 ++.long 2097152,2147491904,2149580864,0
13029 ++.long 8192,64,2149588992,2149580864
13030 ++.long 2149589056,2149580800,2147483648,8256
13031 ++.long 64,2105344,2105408,2147491840
13032 ++.long 8256,2147483648,2147491840,2105408
13033 ++.long 2149588992,2097216,0,2147491840
13034 ++.long 2147483648,8192,2149580864,2097152
13035 ++.long 2097216,2149589056,2105344,64
13036 ++.long 2149589056,2105344,2097152,2147491904
13037 ++.long 2147483712,2149580800,2105408,0
13038 ++.long 8192,2147483712,2147491904,2149588992
13039 ++.long 2149580800,8256,64,2149580864
13040 ++.long 16384,512,16777728,16777220
13041 ++.long 16794116,16388,16896,0
13042 ++.long 16777216,16777732,516,16793600
13043 ++.long 4,16794112,16793600,516
13044 ++.long 16777732,16384,16388,16794116
13045 ++.long 0,16777728,16777220,16896
13046 ++.long 16793604,16900,16794112,4
13047 ++.long 16900,16793604,512,16777216
13048 ++.long 16900,16793600,16793604,516
13049 ++.long 16384,512,16777216,16793604
13050 ++.long 16777732,16900,16896,0
13051 ++.long 512,16777220,4,16777728
13052 ++.long 0,16777732,16777728,16896
13053 ++.long 516,16384,16794116,16777216
13054 ++.long 16794112,4,16388,16794116
13055 ++.long 16777220,16794112,16793600,16388
13056 ++.long 545259648,545390592,131200,0
13057 ++.long 537001984,8388736,545259520,545390720
13058 ++.long 128,536870912,8519680,131200
13059 ++.long 8519808,537002112,536871040,545259520
13060 ++.long 131072,8519808,8388736,537001984
13061 ++.long 545390720,536871040,0,8519680
13062 ++.long 536870912,8388608,537002112,545259648
13063 ++.long 8388608,131072,545390592,128
13064 ++.long 8388608,131072,536871040,545390720
13065 ++.long 131200,536870912,0,8519680
13066 ++.long 545259648,537002112,537001984,8388736
13067 ++.long 545390592,128,8388736,537001984
13068 ++.long 545390720,8388608,545259520,536871040
13069 ++.long 8519680,131200,537002112,545259520
13070 ++.long 128,545390592,8519808,0
13071 ++.long 536870912,545259648,131072,8519808
13072 +diff --git a/crypto/md5/asm/md5-586-mac.S b/crypto/md5/asm/md5-586-mac.S
13073 +new file mode 100644
13074 +index 0000000..8413d0c
13076 ++++ b/crypto/md5/asm/md5-586-mac.S
13078 ++.file "crypto/md5/asm/md5-586.s"
13080 ++.globl _md5_block_asm_data_order
13082 ++_md5_block_asm_data_order:
13083 ++L_md5_block_asm_data_order_begin:
13086 ++ movl 12(%esp),%edi
13087 ++ movl 16(%esp),%esi
13088 ++ movl 20(%esp),%ecx
13094 ++ movl (%edi),%eax
13096 ++ movl 4(%edi),%ebx
13097 ++ movl 8(%edi),%ecx
13098 ++ movl 12(%edi),%edx
13103 ++ movl (%esi),%ebp
13107 ++ leal 3614090360(%eax,%ebp,1),%eax
13112 ++ movl 4(%esi),%ebp
13117 ++ leal 3905402710(%edx,%ebp,1),%edx
13122 ++ movl 8(%esi),%ebp
13127 ++ leal 606105819(%ecx,%ebp,1),%ecx
13132 ++ movl 12(%esi),%ebp
13137 ++ leal 3250441966(%ebx,%ebp,1),%ebx
13142 ++ movl 16(%esi),%ebp
13147 ++ leal 4118548399(%eax,%ebp,1),%eax
13152 ++ movl 20(%esi),%ebp
13157 ++ leal 1200080426(%edx,%ebp,1),%edx
13162 ++ movl 24(%esi),%ebp
13167 ++ leal 2821735955(%ecx,%ebp,1),%ecx
13172 ++ movl 28(%esi),%ebp
13177 ++ leal 4249261313(%ebx,%ebp,1),%ebx
13182 ++ movl 32(%esi),%ebp
13187 ++ leal 1770035416(%eax,%ebp,1),%eax
13192 ++ movl 36(%esi),%ebp
13197 ++ leal 2336552879(%edx,%ebp,1),%edx
13202 ++ movl 40(%esi),%ebp
13207 ++ leal 4294925233(%ecx,%ebp,1),%ecx
13212 ++ movl 44(%esi),%ebp
13217 ++ leal 2304563134(%ebx,%ebp,1),%ebx
13222 ++ movl 48(%esi),%ebp
13227 ++ leal 1804603682(%eax,%ebp,1),%eax
13232 ++ movl 52(%esi),%ebp
13237 ++ leal 4254626195(%edx,%ebp,1),%edx
13242 ++ movl 56(%esi),%ebp
13247 ++ leal 2792965006(%ecx,%ebp,1),%ecx
13252 ++ movl 60(%esi),%ebp
13257 ++ leal 1236535329(%ebx,%ebp,1),%ebx
13262 ++ movl 4(%esi),%ebp
13267 ++ leal 4129170786(%eax,%ebp,1),%eax
13270 ++ movl 24(%esi),%ebp
13277 ++ leal 3225465664(%edx,%ebp,1),%edx
13280 ++ movl 44(%esi),%ebp
13287 ++ leal 643717713(%ecx,%ebp,1),%ecx
13290 ++ movl (%esi),%ebp
13297 ++ leal 3921069994(%ebx,%ebp,1),%ebx
13300 ++ movl 20(%esi),%ebp
13307 ++ leal 3593408605(%eax,%ebp,1),%eax
13310 ++ movl 40(%esi),%ebp
13317 ++ leal 38016083(%edx,%ebp,1),%edx
13320 ++ movl 60(%esi),%ebp
13327 ++ leal 3634488961(%ecx,%ebp,1),%ecx
13330 ++ movl 16(%esi),%ebp
13337 ++ leal 3889429448(%ebx,%ebp,1),%ebx
13340 ++ movl 36(%esi),%ebp
13347 ++ leal 568446438(%eax,%ebp,1),%eax
13350 ++ movl 56(%esi),%ebp
13357 ++ leal 3275163606(%edx,%ebp,1),%edx
13360 ++ movl 12(%esi),%ebp
13367 ++ leal 4107603335(%ecx,%ebp,1),%ecx
13370 ++ movl 32(%esi),%ebp
13377 ++ leal 1163531501(%ebx,%ebp,1),%ebx
13380 ++ movl 52(%esi),%ebp
13387 ++ leal 2850285829(%eax,%ebp,1),%eax
13390 ++ movl 8(%esi),%ebp
13397 ++ leal 4243563512(%edx,%ebp,1),%edx
13400 ++ movl 28(%esi),%ebp
13407 ++ leal 1735328473(%ecx,%ebp,1),%ecx
13410 ++ movl 48(%esi),%ebp
13417 ++ leal 2368359562(%ebx,%ebp,1),%ebx
13420 ++ movl 20(%esi),%ebp
13431 ++ leal 4294588738(%eax,%ebp,1),%eax
13434 ++ movl 32(%esi),%ebp
13437 ++ leal 2272392833(%edx,%ebp,1),%edx
13441 ++ movl 44(%esi),%ebp
13449 ++ leal 1839030562(%ecx,%ebp,1),%ecx
13452 ++ movl 56(%esi),%ebp
13455 ++ leal 4259657740(%ebx,%ebp,1),%ebx
13459 ++ movl 4(%esi),%ebp
13467 ++ leal 2763975236(%eax,%ebp,1),%eax
13470 ++ movl 16(%esi),%ebp
13473 ++ leal 1272893353(%edx,%ebp,1),%edx
13477 ++ movl 28(%esi),%ebp
13485 ++ leal 4139469664(%ecx,%ebp,1),%ecx
13488 ++ movl 40(%esi),%ebp
13491 ++ leal 3200236656(%ebx,%ebp,1),%ebx
13495 ++ movl 52(%esi),%ebp
13503 ++ leal 681279174(%eax,%ebp,1),%eax
13506 ++ movl (%esi),%ebp
13509 ++ leal 3936430074(%edx,%ebp,1),%edx
13513 ++ movl 12(%esi),%ebp
13521 ++ leal 3572445317(%ecx,%ebp,1),%ecx
13524 ++ movl 24(%esi),%ebp
13527 ++ leal 76029189(%ebx,%ebp,1),%ebx
13531 ++ movl 36(%esi),%ebp
13539 ++ leal 3654602809(%eax,%ebp,1),%eax
13542 ++ movl 48(%esi),%ebp
13545 ++ leal 3873151461(%edx,%ebp,1),%edx
13549 ++ movl 60(%esi),%ebp
13557 ++ leal 530742520(%ecx,%ebp,1),%ecx
13560 ++ movl 8(%esi),%ebp
13563 ++ leal 3299628645(%ebx,%ebp,1),%ebx
13567 ++ movl (%esi),%ebp
13577 ++ leal 4096336452(%eax,%ebp,1),%eax
13579 ++ movl 28(%esi),%ebp
13587 ++ leal 1126891415(%edx,%ebp,1),%edx
13589 ++ movl 56(%esi),%ebp
13597 ++ leal 2878612391(%ecx,%ebp,1),%ecx
13599 ++ movl 20(%esi),%ebp
13607 ++ leal 4237533241(%ebx,%ebp,1),%ebx
13609 ++ movl 48(%esi),%ebp
13617 ++ leal 1700485571(%eax,%ebp,1),%eax
13619 ++ movl 12(%esi),%ebp
13627 ++ leal 2399980690(%edx,%ebp,1),%edx
13629 ++ movl 40(%esi),%ebp
13637 ++ leal 4293915773(%ecx,%ebp,1),%ecx
13639 ++ movl 4(%esi),%ebp
13647 ++ leal 2240044497(%ebx,%ebp,1),%ebx
13649 ++ movl 32(%esi),%ebp
13657 ++ leal 1873313359(%eax,%ebp,1),%eax
13659 ++ movl 60(%esi),%ebp
13667 ++ leal 4264355552(%edx,%ebp,1),%edx
13669 ++ movl 24(%esi),%ebp
13677 ++ leal 2734768916(%ecx,%ebp,1),%ecx
13679 ++ movl 52(%esi),%ebp
13687 ++ leal 1309151649(%ebx,%ebp,1),%ebx
13689 ++ movl 16(%esi),%ebp
13697 ++ leal 4149444226(%eax,%ebp,1),%eax
13699 ++ movl 44(%esi),%ebp
13707 ++ leal 3174756917(%edx,%ebp,1),%edx
13709 ++ movl 8(%esi),%ebp
13717 ++ leal 718787259(%ecx,%ebp,1),%ecx
13719 ++ movl 36(%esi),%ebp
13727 ++ leal 3951481745(%ebx,%ebp,1),%ebx
13729 ++ movl 24(%esp),%ebp
13733 ++ movl (%ebp),%edi
13736 ++ movl 4(%ebp),%edi
13738 ++ movl 8(%ebp),%edi
13740 ++ movl 12(%ebp),%edi
13742 ++ movl %eax,(%ebp)
13743 ++ movl %ebx,4(%ebp)
13744 ++ movl (%esp),%edi
13745 ++ movl %ecx,8(%ebp)
13746 ++ movl %edx,12(%ebp)
13755 +diff --git a/crypto/modes/asm/ghash-x86-mac.S b/crypto/modes/asm/ghash-x86-mac.S
13756 +new file mode 100644
13757 +index 0000000..dc6ba14
13759 ++++ b/crypto/modes/asm/ghash-x86-mac.S
13761 ++.file "ghash-x86.s"
13763 ++.globl _gcm_gmult_4bit_x86
13765 ++_gcm_gmult_4bit_x86:
13766 ++L_gcm_gmult_4bit_x86_begin:
13772 ++ movl 104(%esp),%edi
13773 ++ movl 108(%esp),%esi
13774 ++ movl (%edi),%ebp
13775 ++ movl 4(%edi),%edx
13776 ++ movl 8(%edi),%ecx
13777 ++ movl 12(%edi),%ebx
13778 ++ movl $0,16(%esp)
13779 ++ movl $471859200,20(%esp)
13780 ++ movl $943718400,24(%esp)
13781 ++ movl $610271232,28(%esp)
13782 ++ movl $1887436800,32(%esp)
13783 ++ movl $1822425088,36(%esp)
13784 ++ movl $1220542464,40(%esp)
13785 ++ movl $1423966208,44(%esp)
13786 ++ movl $3774873600,48(%esp)
13787 ++ movl $4246732800,52(%esp)
13788 ++ movl $3644850176,56(%esp)
13789 ++ movl $3311403008,60(%esp)
13790 ++ movl $2441084928,64(%esp)
13791 ++ movl $2376073216,68(%esp)
13792 ++ movl $2847932416,72(%esp)
13793 ++ movl $3051356160,76(%esp)
13794 ++ movl %ebp,(%esp)
13795 ++ movl %edx,4(%esp)
13796 ++ movl %ecx,8(%esp)
13797 ++ movl %ebx,12(%esp)
13800 ++ movl 4(%esi,%ebx,1),%ebp
13801 ++ movl (%esi,%ebx,1),%edx
13802 ++ movl 12(%esi,%ebx,1),%ecx
13803 ++ movl 8(%esi,%ebx,1),%ebx
13806 ++ jmp L000x86_loop
13810 ++ shrdl $4,%ecx,%ebx
13812 ++ shrdl $4,%edx,%ecx
13813 ++ shrdl $4,%ebp,%edx
13815 ++ xorl 16(%esp,%eax,4),%ebp
13816 ++ movb (%esp,%edi,1),%al
13818 ++ xorl 8(%esi,%eax,1),%ebx
13819 ++ xorl 12(%esi,%eax,1),%ecx
13820 ++ xorl (%esi,%eax,1),%edx
13821 ++ xorl 4(%esi,%eax,1),%ebp
13823 ++ js L001x86_break
13825 ++ shrdl $4,%ecx,%ebx
13827 ++ shrdl $4,%edx,%ecx
13828 ++ shrdl $4,%ebp,%edx
13830 ++ xorl 16(%esp,%eax,4),%ebp
13831 ++ movb (%esp,%edi,1),%al
13833 ++ xorl 8(%esi,%eax,1),%ebx
13834 ++ xorl 12(%esi,%eax,1),%ecx
13835 ++ xorl (%esi,%eax,1),%edx
13836 ++ xorl 4(%esi,%eax,1),%ebp
13837 ++ jmp L000x86_loop
13844 ++ movl 104(%esp),%edi
13845 ++ movl %ebx,12(%edi)
13846 ++ movl %ecx,8(%edi)
13847 ++ movl %edx,4(%edi)
13848 ++ movl %ebp,(%edi)
13855 ++.globl _gcm_ghash_4bit_x86
13857 ++_gcm_ghash_4bit_x86:
13858 ++L_gcm_ghash_4bit_x86_begin:
13864 ++ movl 104(%esp),%ebx
13865 ++ movl 108(%esp),%esi
13866 ++ movl 112(%esp),%edi
13867 ++ movl 116(%esp),%ecx
13869 ++ movl %ecx,116(%esp)
13870 ++ movl (%ebx),%ebp
13871 ++ movl 4(%ebx),%edx
13872 ++ movl 8(%ebx),%ecx
13873 ++ movl 12(%ebx),%ebx
13874 ++ movl $0,16(%esp)
13875 ++ movl $471859200,20(%esp)
13876 ++ movl $943718400,24(%esp)
13877 ++ movl $610271232,28(%esp)
13878 ++ movl $1887436800,32(%esp)
13879 ++ movl $1822425088,36(%esp)
13880 ++ movl $1220542464,40(%esp)
13881 ++ movl $1423966208,44(%esp)
13882 ++ movl $3774873600,48(%esp)
13883 ++ movl $4246732800,52(%esp)
13884 ++ movl $3644850176,56(%esp)
13885 ++ movl $3311403008,60(%esp)
13886 ++ movl $2441084928,64(%esp)
13887 ++ movl $2376073216,68(%esp)
13888 ++ movl $2847932416,72(%esp)
13889 ++ movl $3051356160,76(%esp)
13891 ++L002x86_outer_loop:
13892 ++ xorl 12(%edi),%ebx
13893 ++ xorl 8(%edi),%ecx
13894 ++ xorl 4(%edi),%edx
13895 ++ xorl (%edi),%ebp
13896 ++ movl %ebx,12(%esp)
13897 ++ movl %ecx,8(%esp)
13898 ++ movl %edx,4(%esp)
13899 ++ movl %ebp,(%esp)
13902 ++ movl 4(%esi,%ebx,1),%ebp
13903 ++ movl (%esi,%ebx,1),%edx
13904 ++ movl 12(%esi,%ebx,1),%ecx
13905 ++ movl 8(%esi,%ebx,1),%ebx
13908 ++ jmp L003x86_loop
13912 ++ shrdl $4,%ecx,%ebx
13914 ++ shrdl $4,%edx,%ecx
13915 ++ shrdl $4,%ebp,%edx
13917 ++ xorl 16(%esp,%eax,4),%ebp
13918 ++ movb (%esp,%edi,1),%al
13920 ++ xorl 8(%esi,%eax,1),%ebx
13921 ++ xorl 12(%esi,%eax,1),%ecx
13922 ++ xorl (%esi,%eax,1),%edx
13923 ++ xorl 4(%esi,%eax,1),%ebp
13925 ++ js L004x86_break
13927 ++ shrdl $4,%ecx,%ebx
13929 ++ shrdl $4,%edx,%ecx
13930 ++ shrdl $4,%ebp,%edx
13932 ++ xorl 16(%esp,%eax,4),%ebp
13933 ++ movb (%esp,%edi,1),%al
13935 ++ xorl 8(%esi,%eax,1),%ebx
13936 ++ xorl 12(%esi,%eax,1),%ecx
13937 ++ xorl (%esi,%eax,1),%edx
13938 ++ xorl 4(%esi,%eax,1),%ebp
13939 ++ jmp L003x86_loop
13946 ++ movl 112(%esp),%edi
13947 ++ leal 16(%edi),%edi
13948 ++ cmpl 116(%esp),%edi
13949 ++ movl %edi,112(%esp)
13950 ++ jb L002x86_outer_loop
13951 ++ movl 104(%esp),%edi
13952 ++ movl %ebx,12(%edi)
13953 ++ movl %ecx,8(%edi)
13954 ++ movl %edx,4(%edi)
13955 ++ movl %ebp,(%edi)
13963 ++__mmx_gmult_4bit_inner:
13969 ++ movq 8(%esi,%ecx,1),%mm0
13970 ++ movq (%esi,%ecx,1),%mm1
13975 ++ pxor 8(%esi,%edx,1),%mm0
13976 ++ movb 14(%edi),%cl
13979 ++ pxor (%esi,%edx,1),%mm1
13987 ++ pxor 8(%esi,%ecx,1),%mm0
13990 ++ pxor (%eax,%ebp,8),%mm1
13992 ++ pxor (%esi,%ecx,1),%mm1
13998 ++ pxor 8(%esi,%edx,1),%mm0
13999 ++ movb 13(%edi),%cl
14001 ++ pxor (%eax,%ebx,8),%mm1
14003 ++ pxor (%esi,%edx,1),%mm1
14011 ++ pxor 8(%esi,%ecx,1),%mm0
14014 ++ pxor (%eax,%ebp,8),%mm1
14016 ++ pxor (%esi,%ecx,1),%mm1
14022 ++ pxor 8(%esi,%edx,1),%mm0
14023 ++ movb 12(%edi),%cl
14025 ++ pxor (%eax,%ebx,8),%mm1
14027 ++ pxor (%esi,%edx,1),%mm1
14035 ++ pxor 8(%esi,%ecx,1),%mm0
14038 ++ pxor (%eax,%ebp,8),%mm1
14040 ++ pxor (%esi,%ecx,1),%mm1
14046 ++ pxor 8(%esi,%edx,1),%mm0
14047 ++ movb 11(%edi),%cl
14049 ++ pxor (%eax,%ebx,8),%mm1
14051 ++ pxor (%esi,%edx,1),%mm1
14059 ++ pxor 8(%esi,%ecx,1),%mm0
14062 ++ pxor (%eax,%ebp,8),%mm1
14064 ++ pxor (%esi,%ecx,1),%mm1
14070 ++ pxor 8(%esi,%edx,1),%mm0
14071 ++ movb 10(%edi),%cl
14073 ++ pxor (%eax,%ebx,8),%mm1
14075 ++ pxor (%esi,%edx,1),%mm1
14083 ++ pxor 8(%esi,%ecx,1),%mm0
14086 ++ pxor (%eax,%ebp,8),%mm1
14088 ++ pxor (%esi,%ecx,1),%mm1
14094 ++ pxor 8(%esi,%edx,1),%mm0
14095 ++ movb 9(%edi),%cl
14097 ++ pxor (%eax,%ebx,8),%mm1
14099 ++ pxor (%esi,%edx,1),%mm1
14107 ++ pxor 8(%esi,%ecx,1),%mm0
14110 ++ pxor (%eax,%ebp,8),%mm1
14112 ++ pxor (%esi,%ecx,1),%mm1
14118 ++ pxor 8(%esi,%edx,1),%mm0
14119 ++ movb 8(%edi),%cl
14121 ++ pxor (%eax,%ebx,8),%mm1
14123 ++ pxor (%esi,%edx,1),%mm1
14131 ++ pxor 8(%esi,%ecx,1),%mm0
14134 ++ pxor (%eax,%ebp,8),%mm1
14136 ++ pxor (%esi,%ecx,1),%mm1
14142 ++ pxor 8(%esi,%edx,1),%mm0
14143 ++ movb 7(%edi),%cl
14145 ++ pxor (%eax,%ebx,8),%mm1
14147 ++ pxor (%esi,%edx,1),%mm1
14155 ++ pxor 8(%esi,%ecx,1),%mm0
14158 ++ pxor (%eax,%ebp,8),%mm1
14160 ++ pxor (%esi,%ecx,1),%mm1
14166 ++ pxor 8(%esi,%edx,1),%mm0
14167 ++ movb 6(%edi),%cl
14169 ++ pxor (%eax,%ebx,8),%mm1
14171 ++ pxor (%esi,%edx,1),%mm1
14179 ++ pxor 8(%esi,%ecx,1),%mm0
14182 ++ pxor (%eax,%ebp,8),%mm1
14184 ++ pxor (%esi,%ecx,1),%mm1
14190 ++ pxor 8(%esi,%edx,1),%mm0
14191 ++ movb 5(%edi),%cl
14193 ++ pxor (%eax,%ebx,8),%mm1
14195 ++ pxor (%esi,%edx,1),%mm1
14203 ++ pxor 8(%esi,%ecx,1),%mm0
14206 ++ pxor (%eax,%ebp,8),%mm1
14208 ++ pxor (%esi,%ecx,1),%mm1
14214 ++ pxor 8(%esi,%edx,1),%mm0
14215 ++ movb 4(%edi),%cl
14217 ++ pxor (%eax,%ebx,8),%mm1
14219 ++ pxor (%esi,%edx,1),%mm1
14227 ++ pxor 8(%esi,%ecx,1),%mm0
14230 ++ pxor (%eax,%ebp,8),%mm1
14232 ++ pxor (%esi,%ecx,1),%mm1
14238 ++ pxor 8(%esi,%edx,1),%mm0
14239 ++ movb 3(%edi),%cl
14241 ++ pxor (%eax,%ebx,8),%mm1
14243 ++ pxor (%esi,%edx,1),%mm1
14251 ++ pxor 8(%esi,%ecx,1),%mm0
14254 ++ pxor (%eax,%ebp,8),%mm1
14256 ++ pxor (%esi,%ecx,1),%mm1
14262 ++ pxor 8(%esi,%edx,1),%mm0
14263 ++ movb 2(%edi),%cl
14265 ++ pxor (%eax,%ebx,8),%mm1
14267 ++ pxor (%esi,%edx,1),%mm1
14275 ++ pxor 8(%esi,%ecx,1),%mm0
14278 ++ pxor (%eax,%ebp,8),%mm1
14280 ++ pxor (%esi,%ecx,1),%mm1
14286 ++ pxor 8(%esi,%edx,1),%mm0
14287 ++ movb 1(%edi),%cl
14289 ++ pxor (%eax,%ebx,8),%mm1
14291 ++ pxor (%esi,%edx,1),%mm1
14299 ++ pxor 8(%esi,%ecx,1),%mm0
14302 ++ pxor (%eax,%ebp,8),%mm1
14304 ++ pxor (%esi,%ecx,1),%mm1
14310 ++ pxor 8(%esi,%edx,1),%mm0
14313 ++ pxor (%eax,%ebx,8),%mm1
14315 ++ pxor (%esi,%edx,1),%mm1
14323 ++ pxor 8(%esi,%ecx,1),%mm0
14326 ++ pxor (%eax,%ebp,8),%mm1
14328 ++ pxor (%esi,%ecx,1),%mm1
14334 ++ pxor 8(%esi,%edx,1),%mm0
14336 ++ pxor (%eax,%ebx,8),%mm1
14338 ++ pxor (%esi,%edx,1),%mm1
14341 ++ movl 4(%eax,%ebp,8),%edi
14354 ++.globl _gcm_gmult_4bit_mmx
14356 ++_gcm_gmult_4bit_mmx:
14357 ++L_gcm_gmult_4bit_mmx_begin:
14362 ++ movl 20(%esp),%edi
14363 ++ movl 24(%esp),%esi
14364 ++ call L005pic_point
14367 ++ leal Lrem_4bit-L005pic_point(%eax),%eax
14368 ++ movzbl 15(%edi),%ebx
14369 ++ call __mmx_gmult_4bit_inner
14370 ++ movl 20(%esp),%edi
14372 ++ movl %ebx,12(%edi)
14373 ++ movl %edx,4(%edi)
14374 ++ movl %ecx,8(%edi)
14375 ++ movl %ebp,(%edi)
14381 ++.globl _gcm_ghash_4bit_mmx
14383 ++_gcm_ghash_4bit_mmx:
14384 ++L_gcm_ghash_4bit_mmx_begin:
14389 ++ movl 20(%esp),%ebp
14390 ++ movl 24(%esp),%esi
14391 ++ movl 28(%esp),%edi
14392 ++ movl 32(%esp),%ecx
14393 ++ call L006pic_point
14396 ++ leal Lrem_4bit-L006pic_point(%eax),%eax
14398 ++ movl %ecx,32(%esp)
14400 ++ movl 12(%ebp),%ebx
14401 ++ movl 4(%ebp),%edx
14402 ++ movl 8(%ebp),%ecx
14403 ++ movl (%ebp),%ebp
14404 ++ jmp L007mmx_outer_loop
14406 ++L007mmx_outer_loop:
14407 ++ xorl 12(%edi),%ebx
14408 ++ xorl 4(%edi),%edx
14409 ++ xorl 8(%edi),%ecx
14410 ++ xorl (%edi),%ebp
14411 ++ movl %edi,48(%esp)
14412 ++ movl %ebx,12(%esp)
14413 ++ movl %edx,4(%esp)
14414 ++ movl %ecx,8(%esp)
14415 ++ movl %ebp,(%esp)
14418 ++ call __mmx_gmult_4bit_inner
14419 ++ movl 48(%esp),%edi
14420 ++ leal 16(%edi),%edi
14421 ++ cmpl 52(%esp),%edi
14422 ++ jb L007mmx_outer_loop
14423 ++ movl 40(%esp),%edi
14425 ++ movl %ebx,12(%edi)
14426 ++ movl %edx,4(%edi)
14427 ++ movl %ecx,8(%edi)
14428 ++ movl %ebp,(%edi)
14437 ++.long 0,0,0,29491200,0,58982400,0,38141952
14438 ++.long 0,117964800,0,113901568,0,76283904,0,88997888
14439 ++.long 0,235929600,0,265420800,0,227803136,0,206962688
14440 ++.long 0,152567808,0,148504576,0,177995776,0,190709760
14443 ++.value 0,450,900,582,1800,1738,1164,1358
14444 ++.value 3600,4050,3476,3158,2328,2266,2716,2910
14445 ++.value 7200,7650,8100,7782,6952,6890,6316,6510
14446 ++.value 4656,5106,4532,4214,5432,5370,5820,6014
14447 ++.value 14400,14722,15300,14854,16200,16010,15564,15630
14448 ++.value 13904,14226,13780,13334,12632,12442,13020,13086
14449 ++.value 9312,9634,10212,9766,9064,8874,8428,8494
14450 ++.value 10864,11186,10740,10294,11640,11450,12028,12094
14451 ++.value 28800,28994,29444,29382,30600,30282,29708,30158
14452 ++.value 32400,32594,32020,31958,31128,30810,31260,31710
14453 ++.value 27808,28002,28452,28390,27560,27242,26668,27118
14454 ++.value 25264,25458,24884,24822,26040,25722,26172,26622
14455 ++.value 18624,18690,19268,19078,20424,19978,19532,19854
14456 ++.value 18128,18194,17748,17558,16856,16410,16988,17310
14457 ++.value 21728,21794,22372,22182,21480,21034,20588,20910
14458 ++.value 23280,23346,22900,22710,24056,23610,24188,24510
14459 ++.value 57600,57538,57988,58182,58888,59338,58764,58446
14460 ++.value 61200,61138,60564,60758,59416,59866,60316,59998
14461 ++.value 64800,64738,65188,65382,64040,64490,63916,63598
14462 ++.value 62256,62194,61620,61814,62520,62970,63420,63102
14463 ++.value 55616,55426,56004,56070,56904,57226,56780,56334
14464 ++.value 55120,54930,54484,54550,53336,53658,54236,53790
14465 ++.value 50528,50338,50916,50982,49768,50090,49644,49198
14466 ++.value 52080,51890,51444,51510,52344,52666,53244,52798
14467 ++.value 37248,36930,37380,37830,38536,38730,38156,38094
14468 ++.value 40848,40530,39956,40406,39064,39258,39708,39646
14469 ++.value 36256,35938,36388,36838,35496,35690,35116,35054
14470 ++.value 33712,33394,32820,33270,33976,34170,34620,34558
14471 ++.value 43456,43010,43588,43910,44744,44810,44364,44174
14472 ++.value 42960,42514,42068,42390,41176,41242,41820,41630
14473 ++.value 46560,46114,46692,47014,45800,45866,45420,45230
14474 ++.value 48112,47666,47220,47542,48376,48442,49020,48830
14475 ++.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
14476 ++.byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
14477 ++.byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
14479 +diff --git a/crypto/sha/asm/sha1-586-mac.S b/crypto/sha/asm/sha1-586-mac.S
14480 +new file mode 100644
14481 +index 0000000..b843b80
14483 ++++ b/crypto/sha/asm/sha1-586-mac.S
14484 +@@ -0,0 +1,1378 @@
14485 ++.file "sha1-586.s"
14487 ++.globl _sha1_block_data_order
14489 ++_sha1_block_data_order:
14490 ++L_sha1_block_data_order_begin:
14495 ++ movl 20(%esp),%ebp
14496 ++ movl 24(%esp),%esi
14497 ++ movl 28(%esp),%eax
14501 ++ movl %eax,104(%esp)
14502 ++ movl 16(%ebp),%edi
14506 ++ movl (%esi),%eax
14507 ++ movl 4(%esi),%ebx
14508 ++ movl 8(%esi),%ecx
14509 ++ movl 12(%esi),%edx
14514 ++ movl %eax,(%esp)
14515 ++ movl %ebx,4(%esp)
14516 ++ movl %ecx,8(%esp)
14517 ++ movl %edx,12(%esp)
14518 ++ movl 16(%esi),%eax
14519 ++ movl 20(%esi),%ebx
14520 ++ movl 24(%esi),%ecx
14521 ++ movl 28(%esi),%edx
14526 ++ movl %eax,16(%esp)
14527 ++ movl %ebx,20(%esp)
14528 ++ movl %ecx,24(%esp)
14529 ++ movl %edx,28(%esp)
14530 ++ movl 32(%esi),%eax
14531 ++ movl 36(%esi),%ebx
14532 ++ movl 40(%esi),%ecx
14533 ++ movl 44(%esi),%edx
14538 ++ movl %eax,32(%esp)
14539 ++ movl %ebx,36(%esp)
14540 ++ movl %ecx,40(%esp)
14541 ++ movl %edx,44(%esp)
14542 ++ movl 48(%esi),%eax
14543 ++ movl 52(%esi),%ebx
14544 ++ movl 56(%esi),%ecx
14545 ++ movl 60(%esi),%edx
14550 ++ movl %eax,48(%esp)
14551 ++ movl %ebx,52(%esp)
14552 ++ movl %ecx,56(%esp)
14553 ++ movl %edx,60(%esp)
14554 ++ movl %esi,100(%esp)
14555 ++ movl (%ebp),%eax
14556 ++ movl 4(%ebp),%ebx
14557 ++ movl 8(%ebp),%ecx
14558 ++ movl 12(%ebp),%edx
14565 ++ movl (%esp),%edi
14569 ++ leal 1518500249(%ebp,%edi,1),%ebp
14577 ++ movl 4(%esp),%edx
14581 ++ leal 1518500249(%ebp,%edx,1),%ebp
14589 ++ movl 8(%esp),%ecx
14593 ++ leal 1518500249(%ebp,%ecx,1),%ebp
14601 ++ movl 12(%esp),%ebx
14605 ++ leal 1518500249(%ebp,%ebx,1),%ebp
14613 ++ movl 16(%esp),%eax
14617 ++ leal 1518500249(%ebp,%eax,1),%ebp
14625 ++ movl 20(%esp),%esi
14629 ++ leal 1518500249(%ebp,%esi,1),%ebp
14637 ++ movl 24(%esp),%edi
14641 ++ leal 1518500249(%ebp,%edi,1),%ebp
14649 ++ movl 28(%esp),%edx
14653 ++ leal 1518500249(%ebp,%edx,1),%ebp
14661 ++ movl 32(%esp),%ecx
14665 ++ leal 1518500249(%ebp,%ecx,1),%ebp
14673 ++ movl 36(%esp),%ebx
14677 ++ leal 1518500249(%ebp,%ebx,1),%ebp
14685 ++ movl 40(%esp),%eax
14689 ++ leal 1518500249(%ebp,%eax,1),%ebp
14697 ++ movl 44(%esp),%esi
14701 ++ leal 1518500249(%ebp,%esi,1),%ebp
14709 ++ movl 48(%esp),%edi
14713 ++ leal 1518500249(%ebp,%edi,1),%ebp
14721 ++ movl 52(%esp),%edx
14725 ++ leal 1518500249(%ebp,%edx,1),%ebp
14733 ++ movl 56(%esp),%ecx
14737 ++ leal 1518500249(%ebp,%ecx,1),%ebp
14745 ++ movl 60(%esp),%ebx
14749 ++ leal 1518500249(%ebp,%ebx,1),%ebp
14750 ++ movl (%esp),%ebx
14754 ++ xorl 8(%esp),%ebx
14756 ++ xorl 32(%esp),%ebx
14758 ++ xorl 52(%esp),%ebx
14764 ++ movl %ebx,(%esp)
14766 ++ leal 1518500249(%ebx,%eax,1),%ebx
14767 ++ movl 4(%esp),%eax
14771 ++ xorl 12(%esp),%eax
14773 ++ xorl 36(%esp),%eax
14775 ++ xorl 56(%esp),%eax
14781 ++ movl %eax,4(%esp)
14783 ++ leal 1518500249(%eax,%esi,1),%eax
14784 ++ movl 8(%esp),%esi
14788 ++ xorl 16(%esp),%esi
14790 ++ xorl 40(%esp),%esi
14792 ++ xorl 60(%esp),%esi
14798 ++ movl %esi,8(%esp)
14800 ++ leal 1518500249(%esi,%edi,1),%esi
14801 ++ movl 12(%esp),%edi
14805 ++ xorl 20(%esp),%edi
14807 ++ xorl 44(%esp),%edi
14809 ++ xorl (%esp),%edi
14815 ++ movl %edi,12(%esp)
14817 ++ leal 1518500249(%edi,%edx,1),%edi
14818 ++ movl 16(%esp),%edx
14822 ++ xorl 24(%esp),%edx
14824 ++ xorl 48(%esp),%edx
14826 ++ xorl 4(%esp),%edx
14832 ++ movl %edx,16(%esp)
14833 ++ leal 1859775393(%edx,%ecx,1),%edx
14834 ++ movl 20(%esp),%ecx
14838 ++ xorl 28(%esp),%ecx
14840 ++ xorl 52(%esp),%ecx
14842 ++ xorl 8(%esp),%ecx
14848 ++ movl %ecx,20(%esp)
14849 ++ leal 1859775393(%ecx,%ebx,1),%ecx
14850 ++ movl 24(%esp),%ebx
14854 ++ xorl 32(%esp),%ebx
14856 ++ xorl 56(%esp),%ebx
14858 ++ xorl 12(%esp),%ebx
14864 ++ movl %ebx,24(%esp)
14865 ++ leal 1859775393(%ebx,%eax,1),%ebx
14866 ++ movl 28(%esp),%eax
14870 ++ xorl 36(%esp),%eax
14872 ++ xorl 60(%esp),%eax
14874 ++ xorl 16(%esp),%eax
14880 ++ movl %eax,28(%esp)
14881 ++ leal 1859775393(%eax,%esi,1),%eax
14882 ++ movl 32(%esp),%esi
14886 ++ xorl 40(%esp),%esi
14888 ++ xorl (%esp),%esi
14890 ++ xorl 20(%esp),%esi
14896 ++ movl %esi,32(%esp)
14897 ++ leal 1859775393(%esi,%edi,1),%esi
14898 ++ movl 36(%esp),%edi
14902 ++ xorl 44(%esp),%edi
14904 ++ xorl 4(%esp),%edi
14906 ++ xorl 24(%esp),%edi
14912 ++ movl %edi,36(%esp)
14913 ++ leal 1859775393(%edi,%edx,1),%edi
14914 ++ movl 40(%esp),%edx
14918 ++ xorl 48(%esp),%edx
14920 ++ xorl 8(%esp),%edx
14922 ++ xorl 28(%esp),%edx
14928 ++ movl %edx,40(%esp)
14929 ++ leal 1859775393(%edx,%ecx,1),%edx
14930 ++ movl 44(%esp),%ecx
14934 ++ xorl 52(%esp),%ecx
14936 ++ xorl 12(%esp),%ecx
14938 ++ xorl 32(%esp),%ecx
14944 ++ movl %ecx,44(%esp)
14945 ++ leal 1859775393(%ecx,%ebx,1),%ecx
14946 ++ movl 48(%esp),%ebx
14950 ++ xorl 56(%esp),%ebx
14952 ++ xorl 16(%esp),%ebx
14954 ++ xorl 36(%esp),%ebx
14960 ++ movl %ebx,48(%esp)
14961 ++ leal 1859775393(%ebx,%eax,1),%ebx
14962 ++ movl 52(%esp),%eax
14966 ++ xorl 60(%esp),%eax
14968 ++ xorl 20(%esp),%eax
14970 ++ xorl 40(%esp),%eax
14976 ++ movl %eax,52(%esp)
14977 ++ leal 1859775393(%eax,%esi,1),%eax
14978 ++ movl 56(%esp),%esi
14982 ++ xorl (%esp),%esi
14984 ++ xorl 24(%esp),%esi
14986 ++ xorl 44(%esp),%esi
14992 ++ movl %esi,56(%esp)
14993 ++ leal 1859775393(%esi,%edi,1),%esi
14994 ++ movl 60(%esp),%edi
14998 ++ xorl 4(%esp),%edi
15000 ++ xorl 28(%esp),%edi
15002 ++ xorl 48(%esp),%edi
15008 ++ movl %edi,60(%esp)
15009 ++ leal 1859775393(%edi,%edx,1),%edi
15010 ++ movl (%esp),%edx
15014 ++ xorl 8(%esp),%edx
15016 ++ xorl 32(%esp),%edx
15018 ++ xorl 52(%esp),%edx
15024 ++ movl %edx,(%esp)
15025 ++ leal 1859775393(%edx,%ecx,1),%edx
15026 ++ movl 4(%esp),%ecx
15030 ++ xorl 12(%esp),%ecx
15032 ++ xorl 36(%esp),%ecx
15034 ++ xorl 56(%esp),%ecx
15040 ++ movl %ecx,4(%esp)
15041 ++ leal 1859775393(%ecx,%ebx,1),%ecx
15042 ++ movl 8(%esp),%ebx
15046 ++ xorl 16(%esp),%ebx
15048 ++ xorl 40(%esp),%ebx
15050 ++ xorl 60(%esp),%ebx
15056 ++ movl %ebx,8(%esp)
15057 ++ leal 1859775393(%ebx,%eax,1),%ebx
15058 ++ movl 12(%esp),%eax
15062 ++ xorl 20(%esp),%eax
15064 ++ xorl 44(%esp),%eax
15066 ++ xorl (%esp),%eax
15072 ++ movl %eax,12(%esp)
15073 ++ leal 1859775393(%eax,%esi,1),%eax
15074 ++ movl 16(%esp),%esi
15078 ++ xorl 24(%esp),%esi
15080 ++ xorl 48(%esp),%esi
15082 ++ xorl 4(%esp),%esi
15088 ++ movl %esi,16(%esp)
15089 ++ leal 1859775393(%esi,%edi,1),%esi
15090 ++ movl 20(%esp),%edi
15094 ++ xorl 28(%esp),%edi
15096 ++ xorl 52(%esp),%edi
15098 ++ xorl 8(%esp),%edi
15104 ++ movl %edi,20(%esp)
15105 ++ leal 1859775393(%edi,%edx,1),%edi
15106 ++ movl 24(%esp),%edx
15110 ++ xorl 32(%esp),%edx
15112 ++ xorl 56(%esp),%edx
15114 ++ xorl 12(%esp),%edx
15120 ++ movl %edx,24(%esp)
15121 ++ leal 1859775393(%edx,%ecx,1),%edx
15122 ++ movl 28(%esp),%ecx
15126 ++ xorl 36(%esp),%ecx
15128 ++ xorl 60(%esp),%ecx
15130 ++ xorl 16(%esp),%ecx
15136 ++ movl %ecx,28(%esp)
15137 ++ leal 1859775393(%ecx,%ebx,1),%ecx
15138 ++ movl 32(%esp),%ebx
15142 ++ xorl 40(%esp),%ebx
15144 ++ xorl (%esp),%ebx
15146 ++ xorl 20(%esp),%ebx
15152 ++ movl %ebx,32(%esp)
15153 ++ leal 2400959708(%ebx,%ebp,1),%ebx
15157 ++ movl 36(%esp),%eax
15161 ++ xorl 44(%esp),%eax
15163 ++ xorl 4(%esp),%eax
15165 ++ xorl 24(%esp),%eax
15171 ++ movl %eax,36(%esp)
15172 ++ leal 2400959708(%eax,%ebp,1),%eax
15176 ++ movl 40(%esp),%esi
15180 ++ xorl 48(%esp),%esi
15182 ++ xorl 8(%esp),%esi
15184 ++ xorl 28(%esp),%esi
15190 ++ movl %esi,40(%esp)
15191 ++ leal 2400959708(%esi,%ebp,1),%esi
15195 ++ movl 44(%esp),%edi
15199 ++ xorl 52(%esp),%edi
15201 ++ xorl 12(%esp),%edi
15203 ++ xorl 32(%esp),%edi
15209 ++ movl %edi,44(%esp)
15210 ++ leal 2400959708(%edi,%ebp,1),%edi
15214 ++ movl 48(%esp),%edx
15218 ++ xorl 56(%esp),%edx
15220 ++ xorl 16(%esp),%edx
15222 ++ xorl 36(%esp),%edx
15228 ++ movl %edx,48(%esp)
15229 ++ leal 2400959708(%edx,%ebp,1),%edx
15233 ++ movl 52(%esp),%ecx
15237 ++ xorl 60(%esp),%ecx
15239 ++ xorl 20(%esp),%ecx
15241 ++ xorl 40(%esp),%ecx
15247 ++ movl %ecx,52(%esp)
15248 ++ leal 2400959708(%ecx,%ebp,1),%ecx
15252 ++ movl 56(%esp),%ebx
15256 ++ xorl (%esp),%ebx
15258 ++ xorl 24(%esp),%ebx
15260 ++ xorl 44(%esp),%ebx
15266 ++ movl %ebx,56(%esp)
15267 ++ leal 2400959708(%ebx,%ebp,1),%ebx
15271 ++ movl 60(%esp),%eax
15275 ++ xorl 4(%esp),%eax
15277 ++ xorl 28(%esp),%eax
15279 ++ xorl 48(%esp),%eax
15285 ++ movl %eax,60(%esp)
15286 ++ leal 2400959708(%eax,%ebp,1),%eax
15290 ++ movl (%esp),%esi
15294 ++ xorl 8(%esp),%esi
15296 ++ xorl 32(%esp),%esi
15298 ++ xorl 52(%esp),%esi
15304 ++ movl %esi,(%esp)
15305 ++ leal 2400959708(%esi,%ebp,1),%esi
15309 ++ movl 4(%esp),%edi
15313 ++ xorl 12(%esp),%edi
15315 ++ xorl 36(%esp),%edi
15317 ++ xorl 56(%esp),%edi
15323 ++ movl %edi,4(%esp)
15324 ++ leal 2400959708(%edi,%ebp,1),%edi
15328 ++ movl 8(%esp),%edx
15332 ++ xorl 16(%esp),%edx
15334 ++ xorl 40(%esp),%edx
15336 ++ xorl 60(%esp),%edx
15342 ++ movl %edx,8(%esp)
15343 ++ leal 2400959708(%edx,%ebp,1),%edx
15347 ++ movl 12(%esp),%ecx
15351 ++ xorl 20(%esp),%ecx
15353 ++ xorl 44(%esp),%ecx
15355 ++ xorl (%esp),%ecx
15361 ++ movl %ecx,12(%esp)
15362 ++ leal 2400959708(%ecx,%ebp,1),%ecx
15366 ++ movl 16(%esp),%ebx
15370 ++ xorl 24(%esp),%ebx
15372 ++ xorl 48(%esp),%ebx
15374 ++ xorl 4(%esp),%ebx
15380 ++ movl %ebx,16(%esp)
15381 ++ leal 2400959708(%ebx,%ebp,1),%ebx
15385 ++ movl 20(%esp),%eax
15389 ++ xorl 28(%esp),%eax
15391 ++ xorl 52(%esp),%eax
15393 ++ xorl 8(%esp),%eax
15399 ++ movl %eax,20(%esp)
15400 ++ leal 2400959708(%eax,%ebp,1),%eax
15404 ++ movl 24(%esp),%esi
15408 ++ xorl 32(%esp),%esi
15410 ++ xorl 56(%esp),%esi
15412 ++ xorl 12(%esp),%esi
15418 ++ movl %esi,24(%esp)
15419 ++ leal 2400959708(%esi,%ebp,1),%esi
15423 ++ movl 28(%esp),%edi
15427 ++ xorl 36(%esp),%edi
15429 ++ xorl 60(%esp),%edi
15431 ++ xorl 16(%esp),%edi
15437 ++ movl %edi,28(%esp)
15438 ++ leal 2400959708(%edi,%ebp,1),%edi
15442 ++ movl 32(%esp),%edx
15446 ++ xorl 40(%esp),%edx
15448 ++ xorl (%esp),%edx
15450 ++ xorl 20(%esp),%edx
15456 ++ movl %edx,32(%esp)
15457 ++ leal 2400959708(%edx,%ebp,1),%edx
15461 ++ movl 36(%esp),%ecx
15465 ++ xorl 44(%esp),%ecx
15467 ++ xorl 4(%esp),%ecx
15469 ++ xorl 24(%esp),%ecx
15475 ++ movl %ecx,36(%esp)
15476 ++ leal 2400959708(%ecx,%ebp,1),%ecx
15480 ++ movl 40(%esp),%ebx
15484 ++ xorl 48(%esp),%ebx
15486 ++ xorl 8(%esp),%ebx
15488 ++ xorl 28(%esp),%ebx
15494 ++ movl %ebx,40(%esp)
15495 ++ leal 2400959708(%ebx,%ebp,1),%ebx
15499 ++ movl 44(%esp),%eax
15503 ++ xorl 52(%esp),%eax
15505 ++ xorl 12(%esp),%eax
15507 ++ xorl 32(%esp),%eax
15513 ++ movl %eax,44(%esp)
15514 ++ leal 2400959708(%eax,%ebp,1),%eax
15518 ++ movl 48(%esp),%esi
15522 ++ xorl 56(%esp),%esi
15524 ++ xorl 16(%esp),%esi
15526 ++ xorl 36(%esp),%esi
15532 ++ movl %esi,48(%esp)
15533 ++ leal 3395469782(%esi,%edi,1),%esi
15534 ++ movl 52(%esp),%edi
15538 ++ xorl 60(%esp),%edi
15540 ++ xorl 20(%esp),%edi
15542 ++ xorl 40(%esp),%edi
15548 ++ movl %edi,52(%esp)
15549 ++ leal 3395469782(%edi,%edx,1),%edi
15550 ++ movl 56(%esp),%edx
15554 ++ xorl (%esp),%edx
15556 ++ xorl 24(%esp),%edx
15558 ++ xorl 44(%esp),%edx
15564 ++ movl %edx,56(%esp)
15565 ++ leal 3395469782(%edx,%ecx,1),%edx
15566 ++ movl 60(%esp),%ecx
15570 ++ xorl 4(%esp),%ecx
15572 ++ xorl 28(%esp),%ecx
15574 ++ xorl 48(%esp),%ecx
15580 ++ movl %ecx,60(%esp)
15581 ++ leal 3395469782(%ecx,%ebx,1),%ecx
15582 ++ movl (%esp),%ebx
15586 ++ xorl 8(%esp),%ebx
15588 ++ xorl 32(%esp),%ebx
15590 ++ xorl 52(%esp),%ebx
15596 ++ movl %ebx,(%esp)
15597 ++ leal 3395469782(%ebx,%eax,1),%ebx
15598 ++ movl 4(%esp),%eax
15602 ++ xorl 12(%esp),%eax
15604 ++ xorl 36(%esp),%eax
15606 ++ xorl 56(%esp),%eax
15612 ++ movl %eax,4(%esp)
15613 ++ leal 3395469782(%eax,%esi,1),%eax
15614 ++ movl 8(%esp),%esi
15618 ++ xorl 16(%esp),%esi
15620 ++ xorl 40(%esp),%esi
15622 ++ xorl 60(%esp),%esi
15628 ++ movl %esi,8(%esp)
15629 ++ leal 3395469782(%esi,%edi,1),%esi
15630 ++ movl 12(%esp),%edi
15634 ++ xorl 20(%esp),%edi
15636 ++ xorl 44(%esp),%edi
15638 ++ xorl (%esp),%edi
15644 ++ movl %edi,12(%esp)
15645 ++ leal 3395469782(%edi,%edx,1),%edi
15646 ++ movl 16(%esp),%edx
15650 ++ xorl 24(%esp),%edx
15652 ++ xorl 48(%esp),%edx
15654 ++ xorl 4(%esp),%edx
15660 ++ movl %edx,16(%esp)
15661 ++ leal 3395469782(%edx,%ecx,1),%edx
15662 ++ movl 20(%esp),%ecx
15666 ++ xorl 28(%esp),%ecx
15668 ++ xorl 52(%esp),%ecx
15670 ++ xorl 8(%esp),%ecx
15676 ++ movl %ecx,20(%esp)
15677 ++ leal 3395469782(%ecx,%ebx,1),%ecx
15678 ++ movl 24(%esp),%ebx
15682 ++ xorl 32(%esp),%ebx
15684 ++ xorl 56(%esp),%ebx
15686 ++ xorl 12(%esp),%ebx
15692 ++ movl %ebx,24(%esp)
15693 ++ leal 3395469782(%ebx,%eax,1),%ebx
15694 ++ movl 28(%esp),%eax
15698 ++ xorl 36(%esp),%eax
15700 ++ xorl 60(%esp),%eax
15702 ++ xorl 16(%esp),%eax
15708 ++ movl %eax,28(%esp)
15709 ++ leal 3395469782(%eax,%esi,1),%eax
15710 ++ movl 32(%esp),%esi
15714 ++ xorl 40(%esp),%esi
15716 ++ xorl (%esp),%esi
15718 ++ xorl 20(%esp),%esi
15724 ++ movl %esi,32(%esp)
15725 ++ leal 3395469782(%esi,%edi,1),%esi
15726 ++ movl 36(%esp),%edi
15730 ++ xorl 44(%esp),%edi
15732 ++ xorl 4(%esp),%edi
15734 ++ xorl 24(%esp),%edi
15740 ++ movl %edi,36(%esp)
15741 ++ leal 3395469782(%edi,%edx,1),%edi
15742 ++ movl 40(%esp),%edx
15746 ++ xorl 48(%esp),%edx
15748 ++ xorl 8(%esp),%edx
15750 ++ xorl 28(%esp),%edx
15756 ++ movl %edx,40(%esp)
15757 ++ leal 3395469782(%edx,%ecx,1),%edx
15758 ++ movl 44(%esp),%ecx
15762 ++ xorl 52(%esp),%ecx
15764 ++ xorl 12(%esp),%ecx
15766 ++ xorl 32(%esp),%ecx
15772 ++ movl %ecx,44(%esp)
15773 ++ leal 3395469782(%ecx,%ebx,1),%ecx
15774 ++ movl 48(%esp),%ebx
15778 ++ xorl 56(%esp),%ebx
15780 ++ xorl 16(%esp),%ebx
15782 ++ xorl 36(%esp),%ebx
15788 ++ movl %ebx,48(%esp)
15789 ++ leal 3395469782(%ebx,%eax,1),%ebx
15790 ++ movl 52(%esp),%eax
15794 ++ xorl 60(%esp),%eax
15796 ++ xorl 20(%esp),%eax
15798 ++ xorl 40(%esp),%eax
15804 ++ leal 3395469782(%eax,%esi,1),%eax
15805 ++ movl 56(%esp),%esi
15809 ++ xorl (%esp),%esi
15811 ++ xorl 24(%esp),%esi
15813 ++ xorl 44(%esp),%esi
15819 ++ leal 3395469782(%esi,%edi,1),%esi
15820 ++ movl 60(%esp),%edi
15824 ++ xorl 4(%esp),%edi
15826 ++ xorl 28(%esp),%edi
15828 ++ xorl 48(%esp),%edi
15834 ++ leal 3395469782(%edi,%edx,1),%edi
15836 ++ movl 96(%esp),%ebp
15837 ++ movl 100(%esp),%edx
15838 ++ addl (%ebp),%edi
15839 ++ addl 4(%ebp),%esi
15840 ++ addl 8(%ebp),%eax
15841 ++ addl 12(%ebp),%ebx
15842 ++ addl 16(%ebp),%ecx
15843 ++ movl %edi,(%ebp)
15845 ++ movl %esi,4(%ebp)
15846 ++ cmpl 104(%esp),%edx
15847 ++ movl %eax,8(%ebp)
15849 ++ movl %ebx,12(%ebp)
15851 ++ movl %ecx,16(%ebp)
15859 ++.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
15860 ++.byte 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82
15861 ++.byte 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112
15862 ++.byte 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
15863 +diff --git a/crypto/sha/asm/sha256-586-mac.S b/crypto/sha/asm/sha256-586-mac.S
15864 +new file mode 100644
15865 +index 0000000..67c7a96
15867 ++++ b/crypto/sha/asm/sha256-586-mac.S
15869 ++.file "sha512-586.s"
15871 ++.globl _sha256_block_data_order
15873 ++_sha256_block_data_order:
15874 ++L_sha256_block_data_order_begin:
15879 ++ movl 20(%esp),%esi
15880 ++ movl 24(%esp),%edi
15881 ++ movl 28(%esp),%eax
15883 ++ call L000pic_point
15886 ++ leal L001K256-L000pic_point(%ebp),%ebp
15891 ++ movl %esi,(%esp)
15892 ++ movl %edi,4(%esp)
15893 ++ movl %eax,8(%esp)
15894 ++ movl %ebx,12(%esp)
15897 ++ movl (%edi),%eax
15898 ++ movl 4(%edi),%ebx
15899 ++ movl 8(%edi),%ecx
15900 ++ movl 12(%edi),%edx
15909 ++ movl 16(%edi),%eax
15910 ++ movl 20(%edi),%ebx
15911 ++ movl 24(%edi),%ecx
15912 ++ movl 28(%edi),%edx
15921 ++ movl 32(%edi),%eax
15922 ++ movl 36(%edi),%ebx
15923 ++ movl 40(%edi),%ecx
15924 ++ movl 44(%edi),%edx
15933 ++ movl 48(%edi),%eax
15934 ++ movl 52(%edi),%ebx
15935 ++ movl 56(%edi),%ecx
15936 ++ movl 60(%edi),%edx
15947 ++ movl %edi,100(%esp)
15948 ++ movl (%esi),%eax
15949 ++ movl 4(%esi),%ebx
15950 ++ movl 8(%esi),%ecx
15951 ++ movl 12(%esi),%edi
15952 ++ movl %ebx,4(%esp)
15953 ++ movl %ecx,8(%esp)
15954 ++ movl %edi,12(%esp)
15955 ++ movl 16(%esi),%edx
15956 ++ movl 20(%esi),%ebx
15957 ++ movl 24(%esi),%ecx
15958 ++ movl 28(%esi),%edi
15959 ++ movl %ebx,20(%esp)
15960 ++ movl %ecx,24(%esp)
15961 ++ movl %edi,28(%esp)
15964 ++ movl 92(%esp),%ebx
15967 ++ movl 20(%esp),%esi
15972 ++ movl 24(%esp),%edi
15975 ++ movl %edx,16(%esp)
15978 ++ movl 12(%esp),%edx
15983 ++ addl 28(%esp),%ebx
15986 ++ movl 4(%esp),%esi
15990 ++ movl 8(%esp),%edi
15992 ++ movl %eax,(%esp)
15998 ++ movl (%ebp),%esi
16004 ++ cmpl $3248222580,%esi
16006 ++ movl 152(%esp),%ebx
16010 ++ movl 100(%esp),%ecx
16021 ++ addl 156(%esp),%ebx
16023 ++ addl 120(%esp),%ebx
16027 ++ movl 20(%esp),%esi
16030 ++ movl %ebx,92(%esp)
16033 ++ movl 24(%esp),%edi
16036 ++ movl %edx,16(%esp)
16039 ++ movl 12(%esp),%edx
16044 ++ addl 28(%esp),%ebx
16047 ++ movl 4(%esp),%esi
16051 ++ movl 8(%esp),%edi
16053 ++ movl %eax,(%esp)
16059 ++ movl (%ebp),%esi
16063 ++ movl 152(%esp),%ebx
16066 ++ cmpl $3329325298,%esi
16068 ++ movl 352(%esp),%esi
16069 ++ movl 4(%esp),%ebx
16070 ++ movl 8(%esp),%ecx
16071 ++ movl 12(%esp),%edi
16072 ++ addl (%esi),%eax
16073 ++ addl 4(%esi),%ebx
16074 ++ addl 8(%esi),%ecx
16075 ++ addl 12(%esi),%edi
16076 ++ movl %eax,(%esi)
16077 ++ movl %ebx,4(%esi)
16078 ++ movl %ecx,8(%esi)
16079 ++ movl %edi,12(%esi)
16080 ++ movl 20(%esp),%eax
16081 ++ movl 24(%esp),%ebx
16082 ++ movl 28(%esp),%ecx
16083 ++ movl 356(%esp),%edi
16084 ++ addl 16(%esi),%edx
16085 ++ addl 20(%esi),%eax
16086 ++ addl 24(%esi),%ebx
16087 ++ addl 28(%esi),%ecx
16088 ++ movl %edx,16(%esi)
16089 ++ movl %eax,20(%esi)
16090 ++ movl %ebx,24(%esi)
16091 ++ movl %ecx,28(%esi)
16094 ++ cmpl 8(%esp),%edi
16096 ++ movl 12(%esp),%esp
16104 ++.long 1116352408,1899447441,3049323471,3921009573
16105 ++.long 961987163,1508970993,2453635748,2870763221
16106 ++.long 3624381080,310598401,607225278,1426881987
16107 ++.long 1925078388,2162078206,2614888103,3248222580
16108 ++.long 3835390401,4022224774,264347078,604807628
16109 ++.long 770255983,1249150122,1555081692,1996064986
16110 ++.long 2554220882,2821834349,2952996808,3210313671
16111 ++.long 3336571891,3584528711,113926993,338241895
16112 ++.long 666307205,773529912,1294757372,1396182291
16113 ++.long 1695183700,1986661051,2177026350,2456956037
16114 ++.long 2730485921,2820302411,3259730800,3345764771
16115 ++.long 3516065817,3600352804,4094571909,275423344
16116 ++.long 430227734,506948616,659060556,883997877
16117 ++.long 958139571,1322822218,1537002063,1747873779
16118 ++.long 1955562222,2024104815,2227730452,2361852424
16119 ++.long 2428436474,2756734187,3204031479,3329325298
16120 ++.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
16121 ++.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
16122 ++.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
16123 ++.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
16125 +diff --git a/crypto/sha/asm/sha512-586-mac.S b/crypto/sha/asm/sha512-586-mac.S
16126 +new file mode 100644
16127 +index 0000000..2c99753
16129 ++++ b/crypto/sha/asm/sha512-586-mac.S
16131 ++.file "sha512-586.s"
16133 ++.globl _sha512_block_data_order
16135 ++_sha512_block_data_order:
16136 ++L_sha512_block_data_order_begin:
16141 ++ movl 20(%esp),%esi
16142 ++ movl 24(%esp),%edi
16143 ++ movl 28(%esp),%eax
16145 ++ call L000pic_point
16148 ++ leal L001K512-L000pic_point(%ebp),%ebp
16153 ++ movl %esi,(%esp)
16154 ++ movl %edi,4(%esp)
16155 ++ movl %eax,8(%esp)
16156 ++ movl %ebx,12(%esp)
16159 ++ movl (%edi),%eax
16160 ++ movl 4(%edi),%ebx
16161 ++ movl 8(%edi),%ecx
16162 ++ movl 12(%edi),%edx
16171 ++ movl 16(%edi),%eax
16172 ++ movl 20(%edi),%ebx
16173 ++ movl 24(%edi),%ecx
16174 ++ movl 28(%edi),%edx
16183 ++ movl 32(%edi),%eax
16184 ++ movl 36(%edi),%ebx
16185 ++ movl 40(%edi),%ecx
16186 ++ movl 44(%edi),%edx
16195 ++ movl 48(%edi),%eax
16196 ++ movl 52(%edi),%ebx
16197 ++ movl 56(%edi),%ecx
16198 ++ movl 60(%edi),%edx
16207 ++ movl 64(%edi),%eax
16208 ++ movl 68(%edi),%ebx
16209 ++ movl 72(%edi),%ecx
16210 ++ movl 76(%edi),%edx
16219 ++ movl 80(%edi),%eax
16220 ++ movl 84(%edi),%ebx
16221 ++ movl 88(%edi),%ecx
16222 ++ movl 92(%edi),%edx
16231 ++ movl 96(%edi),%eax
16232 ++ movl 100(%edi),%ebx
16233 ++ movl 104(%edi),%ecx
16234 ++ movl 108(%edi),%edx
16243 ++ movl 112(%edi),%eax
16244 ++ movl 116(%edi),%ebx
16245 ++ movl 120(%edi),%ecx
16246 ++ movl 124(%edi),%edx
16257 ++ movl %edi,204(%esp)
16258 ++ leal 8(%esp),%edi
16263 ++ movl 40(%esp),%ecx
16264 ++ movl 44(%esp),%edx
16291 ++ movl 48(%esp),%ecx
16292 ++ movl 52(%esp),%edx
16293 ++ movl 56(%esp),%esi
16294 ++ movl 60(%esp),%edi
16295 ++ addl 64(%esp),%eax
16296 ++ adcl 68(%esp),%ebx
16299 ++ andl 40(%esp),%ecx
16300 ++ andl 44(%esp),%edx
16301 ++ addl 192(%esp),%eax
16302 ++ adcl 196(%esp),%ebx
16305 ++ movl (%ebp),%esi
16306 ++ movl 4(%ebp),%edi
16309 ++ movl 32(%esp),%ecx
16310 ++ movl 36(%esp),%edx
16313 ++ movl %eax,(%esp)
16314 ++ movl %ebx,4(%esp)
16317 ++ movl 8(%esp),%ecx
16318 ++ movl 12(%esp),%edx
16319 ++ movl %eax,32(%esp)
16320 ++ movl %ebx,36(%esp)
16347 ++ movl 8(%esp),%ecx
16348 ++ movl 12(%esp),%edx
16349 ++ movl 16(%esp),%esi
16350 ++ movl 20(%esp),%edi
16351 ++ addl (%esp),%eax
16352 ++ adcl 4(%esp),%ebx
16355 ++ andl 24(%esp),%ecx
16356 ++ andl 28(%esp),%edx
16357 ++ andl 8(%esp),%esi
16358 ++ andl 12(%esp),%edi
16363 ++ movl %eax,(%esp)
16364 ++ movl %ebx,4(%esp)
16367 ++ leal 8(%ebp),%ebp
16369 ++ jne L00300_15_x86
16372 ++ movl 312(%esp),%ecx
16373 ++ movl 316(%esp),%edx
16398 ++ movl %eax,(%esp)
16399 ++ movl %ebx,4(%esp)
16400 ++ movl 208(%esp),%ecx
16401 ++ movl 212(%esp),%edx
16426 ++ movl 320(%esp),%ecx
16427 ++ movl 324(%esp),%edx
16428 ++ addl (%esp),%eax
16429 ++ adcl 4(%esp),%ebx
16430 ++ movl 248(%esp),%esi
16431 ++ movl 252(%esp),%edi
16436 ++ movl %eax,192(%esp)
16437 ++ movl %ebx,196(%esp)
16438 ++ movl 40(%esp),%ecx
16439 ++ movl 44(%esp),%edx
16466 ++ movl 48(%esp),%ecx
16467 ++ movl 52(%esp),%edx
16468 ++ movl 56(%esp),%esi
16469 ++ movl 60(%esp),%edi
16470 ++ addl 64(%esp),%eax
16471 ++ adcl 68(%esp),%ebx
16474 ++ andl 40(%esp),%ecx
16475 ++ andl 44(%esp),%edx
16476 ++ addl 192(%esp),%eax
16477 ++ adcl 196(%esp),%ebx
16480 ++ movl (%ebp),%esi
16481 ++ movl 4(%ebp),%edi
16484 ++ movl 32(%esp),%ecx
16485 ++ movl 36(%esp),%edx
16488 ++ movl %eax,(%esp)
16489 ++ movl %ebx,4(%esp)
16492 ++ movl 8(%esp),%ecx
16493 ++ movl 12(%esp),%edx
16494 ++ movl %eax,32(%esp)
16495 ++ movl %ebx,36(%esp)
16522 ++ movl 8(%esp),%ecx
16523 ++ movl 12(%esp),%edx
16524 ++ movl 16(%esp),%esi
16525 ++ movl 20(%esp),%edi
16526 ++ addl (%esp),%eax
16527 ++ adcl 4(%esp),%ebx
16530 ++ andl 24(%esp),%ecx
16531 ++ andl 28(%esp),%edx
16532 ++ andl 8(%esp),%esi
16533 ++ andl 12(%esp),%edi
16538 ++ movl %eax,(%esp)
16539 ++ movl %ebx,4(%esp)
16542 ++ leal 8(%ebp),%ebp
16544 ++ jne L00416_79_x86
16545 ++ movl 840(%esp),%esi
16546 ++ movl 844(%esp),%edi
16547 ++ movl (%esi),%eax
16548 ++ movl 4(%esi),%ebx
16549 ++ movl 8(%esi),%ecx
16550 ++ movl 12(%esi),%edx
16551 ++ addl 8(%esp),%eax
16552 ++ adcl 12(%esp),%ebx
16553 ++ movl %eax,(%esi)
16554 ++ movl %ebx,4(%esi)
16555 ++ addl 16(%esp),%ecx
16556 ++ adcl 20(%esp),%edx
16557 ++ movl %ecx,8(%esi)
16558 ++ movl %edx,12(%esi)
16559 ++ movl 16(%esi),%eax
16560 ++ movl 20(%esi),%ebx
16561 ++ movl 24(%esi),%ecx
16562 ++ movl 28(%esi),%edx
16563 ++ addl 24(%esp),%eax
16564 ++ adcl 28(%esp),%ebx
16565 ++ movl %eax,16(%esi)
16566 ++ movl %ebx,20(%esi)
16567 ++ addl 32(%esp),%ecx
16568 ++ adcl 36(%esp),%edx
16569 ++ movl %ecx,24(%esi)
16570 ++ movl %edx,28(%esi)
16571 ++ movl 32(%esi),%eax
16572 ++ movl 36(%esi),%ebx
16573 ++ movl 40(%esi),%ecx
16574 ++ movl 44(%esi),%edx
16575 ++ addl 40(%esp),%eax
16576 ++ adcl 44(%esp),%ebx
16577 ++ movl %eax,32(%esi)
16578 ++ movl %ebx,36(%esi)
16579 ++ addl 48(%esp),%ecx
16580 ++ adcl 52(%esp),%edx
16581 ++ movl %ecx,40(%esi)
16582 ++ movl %edx,44(%esi)
16583 ++ movl 48(%esi),%eax
16584 ++ movl 52(%esi),%ebx
16585 ++ movl 56(%esi),%ecx
16586 ++ movl 60(%esi),%edx
16587 ++ addl 56(%esp),%eax
16588 ++ adcl 60(%esp),%ebx
16589 ++ movl %eax,48(%esi)
16590 ++ movl %ebx,52(%esi)
16591 ++ addl 64(%esp),%ecx
16592 ++ adcl 68(%esp),%edx
16593 ++ movl %ecx,56(%esi)
16594 ++ movl %edx,60(%esi)
16597 ++ cmpl 8(%esp),%edi
16599 ++ movl 12(%esp),%esp
16607 ++.long 3609767458,1116352408
16608 ++.long 602891725,1899447441
16609 ++.long 3964484399,3049323471
16610 ++.long 2173295548,3921009573
16611 ++.long 4081628472,961987163
16612 ++.long 3053834265,1508970993
16613 ++.long 2937671579,2453635748
16614 ++.long 3664609560,2870763221
16615 ++.long 2734883394,3624381080
16616 ++.long 1164996542,310598401
16617 ++.long 1323610764,607225278
16618 ++.long 3590304994,1426881987
16619 ++.long 4068182383,1925078388
16620 ++.long 991336113,2162078206
16621 ++.long 633803317,2614888103
16622 ++.long 3479774868,3248222580
16623 ++.long 2666613458,3835390401
16624 ++.long 944711139,4022224774
16625 ++.long 2341262773,264347078
16626 ++.long 2007800933,604807628
16627 ++.long 1495990901,770255983
16628 ++.long 1856431235,1249150122
16629 ++.long 3175218132,1555081692
16630 ++.long 2198950837,1996064986
16631 ++.long 3999719339,2554220882
16632 ++.long 766784016,2821834349
16633 ++.long 2566594879,2952996808
16634 ++.long 3203337956,3210313671
16635 ++.long 1034457026,3336571891
16636 ++.long 2466948901,3584528711
16637 ++.long 3758326383,113926993
16638 ++.long 168717936,338241895
16639 ++.long 1188179964,666307205
16640 ++.long 1546045734,773529912
16641 ++.long 1522805485,1294757372
16642 ++.long 2643833823,1396182291
16643 ++.long 2343527390,1695183700
16644 ++.long 1014477480,1986661051
16645 ++.long 1206759142,2177026350
16646 ++.long 344077627,2456956037
16647 ++.long 1290863460,2730485921
16648 ++.long 3158454273,2820302411
16649 ++.long 3505952657,3259730800
16650 ++.long 106217008,3345764771
16651 ++.long 3606008344,3516065817
16652 ++.long 1432725776,3600352804
16653 ++.long 1467031594,4094571909
16654 ++.long 851169720,275423344
16655 ++.long 3100823752,430227734
16656 ++.long 1363258195,506948616
16657 ++.long 3750685593,659060556
16658 ++.long 3785050280,883997877
16659 ++.long 3318307427,958139571
16660 ++.long 3812723403,1322822218
16661 ++.long 2003034995,1537002063
16662 ++.long 3602036899,1747873779
16663 ++.long 1575990012,1955562222
16664 ++.long 1125592928,2024104815
16665 ++.long 2716904306,2227730452
16666 ++.long 442776044,2361852424
16667 ++.long 593698344,2428436474
16668 ++.long 3733110249,2756734187
16669 ++.long 2999351573,3204031479
16670 ++.long 3815920427,3329325298
16671 ++.long 3928383900,3391569614
16672 ++.long 566280711,3515267271
16673 ++.long 3454069534,3940187606
16674 ++.long 4000239992,4118630271
16675 ++.long 1914138554,116418474
16676 ++.long 2731055270,174292421
16677 ++.long 3203993006,289380356
16678 ++.long 320620315,460393269
16679 ++.long 587496836,685471733
16680 ++.long 1086792851,852142971
16681 ++.long 365543100,1017036298
16682 ++.long 2618297676,1126000580
16683 ++.long 3409855158,1288033470
16684 ++.long 4234509866,1501505948
16685 ++.long 987167468,1607167915
16686 ++.long 1246189591,1816402316
16687 ++.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
16688 ++.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
16689 ++.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
16690 ++.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
16692 +diff --git a/crypto/x86cpuid-mac.S b/crypto/x86cpuid-mac.S
16693 +new file mode 100644
16694 +index 0000000..db36e6f
16696 ++++ b/crypto/x86cpuid-mac.S
16698 ++.file "x86cpuid.s"
16700 ++.globl _OPENSSL_ia32_cpuid
16702 ++_OPENSSL_ia32_cpuid:
16703 ++L_OPENSSL_ia32_cpuid_begin:
16712 ++ xorl $2097152,%eax
16724 ++ cmpl $1970169159,%ebx
16727 ++ cmpl $1231384169,%edx
16730 ++ cmpl $1818588270,%ecx
16734 ++ cmpl $1752462657,%ebx
16737 ++ cmpl $1769238117,%edx
16740 ++ cmpl $1145913699,%ecx
16744 ++ movl $2147483648,%eax
16746 ++ cmpl $2147483649,%eax
16749 ++ movl $2147483649,%eax
16753 ++ cmpl $2147483656,%esi
16755 ++ movl $2147483656,%eax
16767 ++ andl $4026531839,%edx
16772 ++ jb L003nocacheinfo
16782 ++ andl $3220176895,%edx
16784 ++ jne L004notintel
16785 ++ orl $1073741824,%edx
16788 ++ jne L004notintel
16789 ++ orl $1048576,%edx
16793 ++ andl $4026531839,%edx
16796 ++ orl $268435456,%edx
16800 ++ andl $4026531839,%edx
16803 ++ andl $4294965247,%ecx
16807 ++ jnc L005clear_avx
16814 ++ je L005clear_avx
16816 ++ andl $4261412861,%ebp
16817 ++ andl $4278190079,%esi
16819 ++ andl $4026525695,%ebp
16829 ++.globl _OPENSSL_rdtsc
16832 ++L_OPENSSL_rdtsc_begin:
16835 ++ call L008PIC_me_up
16838 ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L008PIC_me_up(%ecx),%ecx
16844 ++.globl _OPENSSL_instrument_halt
16846 ++_OPENSSL_instrument_halt:
16847 ++L_OPENSSL_instrument_halt_begin:
16848 ++ call L010PIC_me_up
16851 ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010PIC_me_up(%ecx),%ecx
16866 ++ subl (%esp),%eax
16867 ++ sbbl 4(%esp),%edx
16874 ++.globl _OPENSSL_far_spin
16876 ++_OPENSSL_far_spin:
16877 ++L_OPENSSL_far_spin_begin:
16882 ++ movl 4(%esp),%eax
16883 ++ movl 8(%esp),%ecx
16886 ++ movl (%ecx),%edx
16891 ++ cmpl (%ecx),%edx
16899 ++.globl _OPENSSL_wipe_cpu
16901 ++_OPENSSL_wipe_cpu:
16902 ++L_OPENSSL_wipe_cpu_begin:
16905 ++ call L014PIC_me_up
16908 ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L014PIC_me_up(%ecx),%ecx
16909 ++ movl (%ecx),%ecx
16912 ++.long 4007259865,4007259865,4007259865,4007259865,2430851995
16914 ++ leal 4(%esp),%eax
16916 ++.globl _OPENSSL_atomic_add
16918 ++_OPENSSL_atomic_add:
16919 ++L_OPENSSL_atomic_add_begin:
16920 ++ movl 4(%esp),%edx
16921 ++ movl 8(%esp),%ecx
16924 ++ movl (%edx),%eax
16926 ++ leal (%eax,%ecx,1),%ebx
16933 ++.globl _OPENSSL_indirect_call
16935 ++_OPENSSL_indirect_call:
16936 ++L_OPENSSL_indirect_call_begin:
16940 ++ movl 12(%ebp),%ecx
16941 ++ movl %ecx,(%esp)
16942 ++ movl 16(%ebp),%edx
16943 ++ movl %edx,4(%esp)
16944 ++ movl 20(%ebp),%eax
16945 ++ movl %eax,8(%esp)
16946 ++ movl 24(%ebp),%eax
16947 ++ movl %eax,12(%esp)
16948 ++ movl 28(%ebp),%eax
16949 ++ movl %eax,16(%esp)
16950 ++ movl 32(%ebp),%eax
16951 ++ movl %eax,20(%esp)
16952 ++ movl 36(%ebp),%eax
16953 ++ movl %eax,24(%esp)
16958 ++.globl _OPENSSL_cleanse
16960 ++_OPENSSL_cleanse:
16961 ++L_OPENSSL_cleanse_begin:
16962 ++ movl 4(%esp),%edx
16963 ++ movl 8(%esp),%ecx
16972 ++ leal 1(%edx),%edx
16981 ++ leal -1(%ecx),%ecx
16982 ++ leal 1(%edx),%edx
16985 ++ movl %eax,(%edx)
16986 ++ leal -4(%ecx),%ecx
16988 ++ leal 4(%edx),%edx
16993 ++.globl _OPENSSL_ia32_rdrand
16995 ++_OPENSSL_ia32_rdrand:
16996 ++L_OPENSSL_ia32_rdrand_begin:
17004 ++ cmovel %ecx,%eax
17006 ++.section __IMPORT,__pointers,non_lazy_symbol_pointers
17007 ++L_OPENSSL_ia32cap_P$non_lazy_ptr:
17008 ++.indirect_symbol _OPENSSL_ia32cap_P
17010 ++.comm _OPENSSL_ia32cap_P,8,2
17013 ++.long _OPENSSL_cpuid_setup