1 %ifidn __OUTPUT_FORMAT__
,obj
2 section code use32 class
=code
align=64
3 %elifidn __OUTPUT_FORMAT__
,win32
4 %ifdef __YASM_VERSION_ID__
5 %if __YASM_VERSION_ID__
< 01010000h
6 %error yasm version
1.1.0 or later needed.
8 ; Yasm automatically includes .00 and complains about redefining it.
9 ; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
13 section .text code
align=64
18 __x86_AES_encrypt_compact:
19 mov DWORD [20+esp],edi
23 xor edx,DWORD [12+edi]
24 mov esi,DWORD [240+edi]
27 mov DWORD [24+esp],esi
28 mov edi,DWORD [ebp-128]
29 mov esi,DWORD [ebp-96]
30 mov edi,DWORD [ebp-64]
31 mov esi,DWORD [ebp-32]
33 mov esi,DWORD [32+ebp]
34 mov edi,DWORD [64+ebp]
35 mov esi,DWORD [96+ebp]
40 movzx esi,BYTE [esi*1+ebp-128]
42 movzx edi,BYTE [edi*1+ebp-128]
48 movzx edi,BYTE [edi*1+ebp-128]
53 movzx edi,BYTE [edi*1+ebp-128]
60 movzx esi,BYTE [esi*1+ebp-128]
62 movzx edi,BYTE [edi*1+ebp-128]
68 movzx edi,BYTE [edi*1+ebp-128]
73 movzx edi,BYTE [edi*1+ebp-128]
80 movzx esi,BYTE [esi*1+ebp-128]
82 movzx edi,BYTE [edi*1+ebp-128]
89 movzx edi,BYTE [edi*1+ebp-128]
93 movzx edi,BYTE [edi*1+ebp-128]
97 movzx edx,BYTE [edx*1+ebp-128]
99 movzx eax,BYTE [eax*1+ebp-128]
102 mov eax,DWORD [4+esp]
104 movzx ebx,BYTE [ebx*1+ebp-128]
107 mov ebx,DWORD [8+esp]
108 movzx ecx,BYTE [ecx*1+ebp-128]
184 mov edi,DWORD [20+esp]
185 mov ebp,DWORD [28+esp]
188 xor ebx,DWORD [4+edi]
189 xor ecx,DWORD [8+edi]
190 xor edx,DWORD [12+edi]
191 cmp edi,DWORD [24+esp]
192 mov DWORD [20+esp],edi
196 movzx esi,BYTE [esi*1+ebp-128]
198 movzx edi,BYTE [edi*1+ebp-128]
204 movzx edi,BYTE [edi*1+ebp-128]
209 movzx edi,BYTE [edi*1+ebp-128]
212 mov DWORD [4+esp],esi
216 movzx esi,BYTE [esi*1+ebp-128]
218 movzx edi,BYTE [edi*1+ebp-128]
224 movzx edi,BYTE [edi*1+ebp-128]
229 movzx edi,BYTE [edi*1+ebp-128]
232 mov DWORD [8+esp],esi
236 movzx esi,BYTE [esi*1+ebp-128]
238 movzx edi,BYTE [edi*1+ebp-128]
245 movzx edi,BYTE [edi*1+ebp-128]
249 movzx edi,BYTE [edi*1+ebp-128]
252 mov edi,DWORD [20+esp]
254 movzx edx,BYTE [edx*1+ebp-128]
256 movzx eax,BYTE [eax*1+ebp-128]
259 mov eax,DWORD [4+esp]
261 movzx ebx,BYTE [ebx*1+ebp-128]
264 mov ebx,DWORD [8+esp]
265 movzx ecx,BYTE [ecx*1+ebp-128]
269 xor eax,DWORD [16+edi]
270 xor ebx,DWORD [20+edi]
271 xor ecx,DWORD [24+edi]
272 xor edx,DWORD [28+edi]
275 __sse_AES_encrypt_compact:
278 mov esi,DWORD [240+edi]
279 lea esi,[esi*1+esi-2]
281 mov DWORD [24+esp],esi
283 mov DWORD [8+esp],eax
284 mov DWORD [12+esp],eax
285 mov eax,DWORD [ebp-128]
286 mov ebx,DWORD [ebp-96]
287 mov ecx,DWORD [ebp-64]
288 mov edx,DWORD [ebp-32]
290 mov ebx,DWORD [32+ebp]
291 mov ecx,DWORD [64+ebp]
292 mov edx,DWORD [96+ebp]
299 mov DWORD [20+esp],edi
303 movzx ecx,BYTE [esi*1+ebp-128]
305 movzx edx,BYTE [edx*1+ebp-128]
308 movzx esi,BYTE [edi*1+ebp-128]
313 movzx esi,BYTE [edi*1+ebp-128]
318 movzx esi,BYTE [edi*1+ebp-128]
322 movzx esi,BYTE [edi*1+ebp-128]
326 movzx esi,BYTE [edi*1+ebp-128]
330 movzx ecx,BYTE [edi*1+ebp-128]
335 movzx esi,BYTE [edi*1+ebp-128]
339 movzx esi,BYTE [edi*1+ebp-128]
344 movzx esi,BYTE [edi*1+ebp-128]
348 movzx ecx,BYTE [edi*1+ebp-128]
354 movzx esi,BYTE [edi*1+ebp-128]
358 movzx eax,BYTE [eax*1+ebp-128]
361 movzx esi,BYTE [edi*1+ebp-128]
364 movzx ebx,BYTE [ebx*1+ebp-128]
367 mov edi,DWORD [20+esp]
372 cmp edi,DWORD [24+esp]
411 mov eax,DWORD [ebp-128]
414 mov ebx,DWORD [ebp-64]
420 mov edx,DWORD [64+ebp]
431 mov DWORD [20+esp],edi
433 xor ebx,DWORD [4+edi]
434 xor ecx,DWORD [8+edi]
435 xor edx,DWORD [12+edi]
436 mov esi,DWORD [240+edi]
437 lea esi,[esi*1+esi-2]
439 mov DWORD [24+esp],esi
444 mov esi,DWORD [esi*8+ebp]
446 xor esi,DWORD [3+edi*8+ebp]
450 xor esi,DWORD [2+edi*8+ebp]
453 xor esi,DWORD [1+edi*8+ebp]
454 mov DWORD [4+esp],esi
458 mov esi,DWORD [esi*8+ebp]
460 xor esi,DWORD [3+edi*8+ebp]
464 xor esi,DWORD [2+edi*8+ebp]
467 xor esi,DWORD [1+edi*8+ebp]
468 mov DWORD [8+esp],esi
472 mov esi,DWORD [esi*8+ebp]
474 xor esi,DWORD [3+edi*8+ebp]
479 xor esi,DWORD [2+edi*8+ebp]
481 xor esi,DWORD [1+edi*8+ebp]
482 mov edi,DWORD [20+esp]
483 mov edx,DWORD [edx*8+ebp]
485 xor edx,DWORD [3+eax*8+ebp]
486 mov eax,DWORD [4+esp]
488 xor edx,DWORD [2+ebx*8+ebp]
489 mov ebx,DWORD [8+esp]
490 xor edx,DWORD [1+ecx*8+ebp]
494 xor ebx,DWORD [4+edi]
495 xor ecx,DWORD [8+edi]
496 xor edx,DWORD [12+edi]
497 cmp edi,DWORD [24+esp]
498 mov DWORD [20+esp],edi
502 mov esi,DWORD [2+esi*8+ebp]
505 mov edi,DWORD [edi*8+ebp]
511 mov edi,DWORD [edi*8+ebp]
516 mov edi,DWORD [2+edi*8+ebp]
519 mov DWORD [4+esp],esi
523 mov esi,DWORD [2+esi*8+ebp]
526 mov edi,DWORD [edi*8+ebp]
532 mov edi,DWORD [edi*8+ebp]
537 mov edi,DWORD [2+edi*8+ebp]
540 mov DWORD [8+esp],esi
544 mov esi,DWORD [2+esi*8+ebp]
547 mov edi,DWORD [edi*8+ebp]
554 mov edi,DWORD [edi*8+ebp]
558 mov edi,DWORD [2+edi*8+ebp]
561 mov edi,DWORD [20+esp]
563 mov edx,DWORD [2+edx*8+ebp]
566 mov eax,DWORD [eax*8+ebp]
569 mov eax,DWORD [4+esp]
571 mov ebx,DWORD [ebx*8+ebp]
574 mov ebx,DWORD [8+esp]
575 mov ecx,DWORD [2+ecx*8+ebp]
581 xor ebx,DWORD [4+edi]
582 xor ecx,DWORD [8+edi]
583 xor edx,DWORD [12+edi]
587 dd 2774754246,2774754246
588 dd 2222750968,2222750968
589 dd 2574743534,2574743534
590 dd 2373680118,2373680118
591 dd 234025727,234025727
592 dd 3177933782,3177933782
593 dd 2976870366,2976870366
594 dd 1422247313,1422247313
595 dd 1345335392,1345335392
597 dd 2842126286,2842126286
598 dd 2099981142,2099981142
599 dd 436141799,436141799
600 dd 1658312629,1658312629
601 dd 3870010189,3870010189
602 dd 2591454956,2591454956
603 dd 1170918031,1170918031
604 dd 2642575903,2642575903
605 dd 1086966153,1086966153
606 dd 2273148410,2273148410
607 dd 368769775,368769775
608 dd 3948501426,3948501426
609 dd 3376891790,3376891790
610 dd 200339707,200339707
611 dd 3970805057,3970805057
612 dd 1742001331,1742001331
613 dd 4255294047,4255294047
614 dd 3937382213,3937382213
615 dd 3214711843,3214711843
616 dd 4154762323,4154762323
617 dd 2524082916,2524082916
618 dd 1539358875,1539358875
619 dd 3266819957,3266819957
620 dd 486407649,486407649
621 dd 2928907069,2928907069
622 dd 1780885068,1780885068
623 dd 1513502316,1513502316
624 dd 1094664062,1094664062
626 dd 1338821763,1338821763
627 dd 1546925160,1546925160
628 dd 4104496465,4104496465
629 dd 887481809,887481809
630 dd 150073849,150073849
631 dd 2473685474,2473685474
632 dd 1943591083,1943591083
633 dd 1395732834,1395732834
634 dd 1058346282,1058346282
635 dd 201589768,201589768
636 dd 1388824469,1388824469
637 dd 1696801606,1696801606
638 dd 1589887901,1589887901
639 dd 672667696,672667696
640 dd 2711000631,2711000631
641 dd 251987210,251987210
642 dd 3046808111,3046808111
643 dd 151455502,151455502
644 dd 907153956,907153956
645 dd 2608889883,2608889883
646 dd 1038279391,1038279391
647 dd 652995533,652995533
648 dd 1764173646,1764173646
649 dd 3451040383,3451040383
650 dd 2675275242,2675275242
651 dd 453576978,453576978
652 dd 2659418909,2659418909
653 dd 1949051992,1949051992
654 dd 773462580,773462580
655 dd 756751158,756751158
656 dd 2993581788,2993581788
657 dd 3998898868,3998898868
658 dd 4221608027,4221608027
659 dd 4132590244,4132590244
660 dd 1295727478,1295727478
661 dd 1641469623,1641469623
662 dd 3467883389,3467883389
663 dd 2066295122,2066295122
664 dd 1055122397,1055122397
665 dd 1898917726,1898917726
666 dd 2542044179,2542044179
667 dd 4115878822,4115878822
668 dd 1758581177,1758581177
670 dd 753790401,753790401
671 dd 1612718144,1612718144
672 dd 536673507,536673507
673 dd 3367088505,3367088505
674 dd 3982187446,3982187446
675 dd 3194645204,3194645204
676 dd 1187761037,1187761037
677 dd 3653156455,3653156455
678 dd 1262041458,1262041458
679 dd 3729410708,3729410708
680 dd 3561770136,3561770136
681 dd 3898103984,3898103984
682 dd 1255133061,1255133061
683 dd 1808847035,1808847035
684 dd 720367557,720367557
685 dd 3853167183,3853167183
686 dd 385612781,385612781
687 dd 3309519750,3309519750
688 dd 3612167578,3612167578
689 dd 1429418854,1429418854
690 dd 2491778321,2491778321
691 dd 3477423498,3477423498
692 dd 284817897,284817897
693 dd 100794884,100794884
694 dd 2172616702,2172616702
695 dd 4031795360,4031795360
696 dd 1144798328,1144798328
697 dd 3131023141,3131023141
698 dd 3819481163,3819481163
699 dd 4082192802,4082192802
700 dd 4272137053,4272137053
701 dd 3225436288,3225436288
702 dd 2324664069,2324664069
703 dd 2912064063,2912064063
704 dd 3164445985,3164445985
705 dd 1211644016,1211644016
707 dd 3753688163,3753688163
708 dd 3249976951,3249976951
709 dd 1977277103,1977277103
710 dd 1663115586,1663115586
711 dd 806359072,806359072
712 dd 452984805,452984805
713 dd 250868733,250868733
714 dd 1842533055,1842533055
715 dd 1288555905,1288555905
716 dd 336333848,336333848
717 dd 890442534,890442534
718 dd 804056259,804056259
719 dd 3781124030,3781124030
720 dd 2727843637,2727843637
721 dd 3427026056,3427026056
722 dd 957814574,957814574
723 dd 1472513171,1472513171
724 dd 4071073621,4071073621
725 dd 2189328124,2189328124
726 dd 1195195770,1195195770
727 dd 2892260552,2892260552
728 dd 3881655738,3881655738
729 dd 723065138,723065138
730 dd 2507371494,2507371494
731 dd 2690670784,2690670784
732 dd 2558624025,2558624025
733 dd 3511635870,3511635870
734 dd 2145180835,2145180835
735 dd 1713513028,1713513028
736 dd 2116692564,2116692564
737 dd 2878378043,2878378043
738 dd 2206763019,2206763019
739 dd 3393603212,3393603212
740 dd 703524551,703524551
741 dd 3552098411,3552098411
742 dd 1007948840,1007948840
743 dd 2044649127,2044649127
744 dd 3797835452,3797835452
745 dd 487262998,487262998
746 dd 1994120109,1994120109
747 dd 1004593371,1004593371
748 dd 1446130276,1446130276
749 dd 1312438900,1312438900
750 dd 503974420,503974420
751 dd 3679013266,3679013266
752 dd 168166924,168166924
753 dd 1814307912,1814307912
754 dd 3831258296,3831258296
755 dd 1573044895,1573044895
756 dd 1859376061,1859376061
757 dd 4021070915,4021070915
758 dd 2791465668,2791465668
759 dd 2828112185,2828112185
760 dd 2761266481,2761266481
761 dd 937747667,937747667
762 dd 2339994098,2339994098
763 dd 854058965,854058965
764 dd 1137232011,1137232011
765 dd 1496790894,1496790894
766 dd 3077402074,3077402074
767 dd 2358086913,2358086913
768 dd 1691735473,1691735473
769 dd 3528347292,3528347292
770 dd 3769215305,3769215305
771 dd 3027004632,3027004632
772 dd 4199962284,4199962284
773 dd 133494003,133494003
774 dd 636152527,636152527
775 dd 2942657994,2942657994
776 dd 2390391540,2390391540
777 dd 3920539207,3920539207
778 dd 403179536,403179536
779 dd 3585784431,3585784431
780 dd 2289596656,2289596656
781 dd 1864705354,1864705354
782 dd 1915629148,1915629148
783 dd 605822008,605822008
784 dd 4054230615,4054230615
785 dd 3350508659,3350508659
786 dd 1371981463,1371981463
787 dd 602466507,602466507
788 dd 2094914977,2094914977
789 dd 2624877800,2624877800
790 dd 555687742,555687742
791 dd 3712699286,3712699286
792 dd 3703422305,3703422305
793 dd 2257292045,2257292045
794 dd 2240449039,2240449039
795 dd 2423288032,2423288032
796 dd 1111375484,1111375484
797 dd 3300242801,3300242801
798 dd 2858837708,2858837708
799 dd 3628615824,3628615824
802 dd 302911004,302911004
803 dd 2741068226,2741068226
804 dd 1597322602,1597322602
805 dd 4183250862,4183250862
806 dd 3501832553,3501832553
807 dd 2441512471,2441512471
808 dd 1489093017,1489093017
809 dd 656219450,656219450
810 dd 3114180135,3114180135
811 dd 954327513,954327513
812 dd 335083755,335083755
813 dd 3013122091,3013122091
814 dd 856756514,856756514
815 dd 3144247762,3144247762
816 dd 1893325225,1893325225
817 dd 2307821063,2307821063
818 dd 2811532339,2811532339
819 dd 3063651117,3063651117
820 dd 572399164,572399164
821 dd 2458355477,2458355477
822 dd 552200649,552200649
823 dd 1238290055,1238290055
824 dd 4283782570,4283782570
825 dd 2015897680,2015897680
826 dd 2061492133,2061492133
827 dd 2408352771,2408352771
828 dd 4171342169,4171342169
829 dd 2156497161,2156497161
830 dd 386731290,386731290
831 dd 3669999461,3669999461
832 dd 837215959,837215959
833 dd 3326231172,3326231172
834 dd 3093850320,3093850320
835 dd 3275833730,3275833730
836 dd 2962856233,2962856233
837 dd 1999449434,1999449434
838 dd 286199582,286199582
839 dd 3417354363,3417354363
840 dd 4233385128,4233385128
841 dd 3602627437,3602627437
842 dd 974525996,974525996
843 db 99,124,119,123,242,107,111,197
844 db 48,1,103,43,254,215,171,118
845 db 202,130,201,125,250,89,71,240
846 db 173,212,162,175,156,164,114,192
847 db 183,253,147,38,54,63,247,204
848 db 52,165,229,241,113,216,49,21
849 db 4,199,35,195,24,150,5,154
850 db 7,18,128,226,235,39,178,117
851 db 9,131,44,26,27,110,90,160
852 db 82,59,214,179,41,227,47,132
853 db 83,209,0,237,32,252,177,91
854 db 106,203,190,57,74,76,88,207
855 db 208,239,170,251,67,77,51,133
856 db 69,249,2,127,80,60,159,168
857 db 81,163,64,143,146,157,56,245
858 db 188,182,218,33,16,255,243,210
859 db 205,12,19,236,95,151,68,23
860 db 196,167,126,61,100,93,25,115
861 db 96,129,79,220,34,42,144,136
862 db 70,238,184,20,222,94,11,219
863 db 224,50,58,10,73,6,36,92
864 db 194,211,172,98,145,149,228,121
865 db 231,200,55,109,141,213,78,169
866 db 108,86,244,234,101,122,174,8
867 db 186,120,37,46,28,166,180,198
868 db 232,221,116,31,75,189,139,138
869 db 112,62,181,102,72,3,246,14
870 db 97,53,87,185,134,193,29,158
871 db 225,248,152,17,105,217,142,148
872 db 155,30,135,233,206,85,40,223
873 db 140,161,137,13,191,230,66,104
874 db 65,153,45,15,176,84,187,22
875 db 99,124,119,123,242,107,111,197
876 db 48,1,103,43,254,215,171,118
877 db 202,130,201,125,250,89,71,240
878 db 173,212,162,175,156,164,114,192
879 db 183,253,147,38,54,63,247,204
880 db 52,165,229,241,113,216,49,21
881 db 4,199,35,195,24,150,5,154
882 db 7,18,128,226,235,39,178,117
883 db 9,131,44,26,27,110,90,160
884 db 82,59,214,179,41,227,47,132
885 db 83,209,0,237,32,252,177,91
886 db 106,203,190,57,74,76,88,207
887 db 208,239,170,251,67,77,51,133
888 db 69,249,2,127,80,60,159,168
889 db 81,163,64,143,146,157,56,245
890 db 188,182,218,33,16,255,243,210
891 db 205,12,19,236,95,151,68,23
892 db 196,167,126,61,100,93,25,115
893 db 96,129,79,220,34,42,144,136
894 db 70,238,184,20,222,94,11,219
895 db 224,50,58,10,73,6,36,92
896 db 194,211,172,98,145,149,228,121
897 db 231,200,55,109,141,213,78,169
898 db 108,86,244,234,101,122,174,8
899 db 186,120,37,46,28,166,180,198
900 db 232,221,116,31,75,189,139,138
901 db 112,62,181,102,72,3,246,14
902 db 97,53,87,185,134,193,29,158
903 db 225,248,152,17,105,217,142,148
904 db 155,30,135,233,206,85,40,223
905 db 140,161,137,13,191,230,66,104
906 db 65,153,45,15,176,84,187,22
907 db 99,124,119,123,242,107,111,197
908 db 48,1,103,43,254,215,171,118
909 db 202,130,201,125,250,89,71,240
910 db 173,212,162,175,156,164,114,192
911 db 183,253,147,38,54,63,247,204
912 db 52,165,229,241,113,216,49,21
913 db 4,199,35,195,24,150,5,154
914 db 7,18,128,226,235,39,178,117
915 db 9,131,44,26,27,110,90,160
916 db 82,59,214,179,41,227,47,132
917 db 83,209,0,237,32,252,177,91
918 db 106,203,190,57,74,76,88,207
919 db 208,239,170,251,67,77,51,133
920 db 69,249,2,127,80,60,159,168
921 db 81,163,64,143,146,157,56,245
922 db 188,182,218,33,16,255,243,210
923 db 205,12,19,236,95,151,68,23
924 db 196,167,126,61,100,93,25,115
925 db 96,129,79,220,34,42,144,136
926 db 70,238,184,20,222,94,11,219
927 db 224,50,58,10,73,6,36,92
928 db 194,211,172,98,145,149,228,121
929 db 231,200,55,109,141,213,78,169
930 db 108,86,244,234,101,122,174,8
931 db 186,120,37,46,28,166,180,198
932 db 232,221,116,31,75,189,139,138
933 db 112,62,181,102,72,3,246,14
934 db 97,53,87,185,134,193,29,158
935 db 225,248,152,17,105,217,142,148
936 db 155,30,135,233,206,85,40,223
937 db 140,161,137,13,191,230,66,104
938 db 65,153,45,15,176,84,187,22
939 db 99,124,119,123,242,107,111,197
940 db 48,1,103,43,254,215,171,118
941 db 202,130,201,125,250,89,71,240
942 db 173,212,162,175,156,164,114,192
943 db 183,253,147,38,54,63,247,204
944 db 52,165,229,241,113,216,49,21
945 db 4,199,35,195,24,150,5,154
946 db 7,18,128,226,235,39,178,117
947 db 9,131,44,26,27,110,90,160
948 db 82,59,214,179,41,227,47,132
949 db 83,209,0,237,32,252,177,91
950 db 106,203,190,57,74,76,88,207
951 db 208,239,170,251,67,77,51,133
952 db 69,249,2,127,80,60,159,168
953 db 81,163,64,143,146,157,56,245
954 db 188,182,218,33,16,255,243,210
955 db 205,12,19,236,95,151,68,23
956 db 196,167,126,61,100,93,25,115
957 db 96,129,79,220,34,42,144,136
958 db 70,238,184,20,222,94,11,219
959 db 224,50,58,10,73,6,36,92
960 db 194,211,172,98,145,149,228,121
961 db 231,200,55,109,141,213,78,169
962 db 108,86,244,234,101,122,174,8
963 db 186,120,37,46,28,166,180,198
964 db 232,221,116,31,75,189,139,138
965 db 112,62,181,102,72,3,246,14
966 db 97,53,87,185,134,193,29,158
967 db 225,248,152,17,105,217,142,148
968 db 155,30,135,233,206,85,40,223
969 db 140,161,137,13,191,230,66,104
970 db 65,153,45,15,176,84,187,22
975 global _asm_AES_encrypt
978 L$
_asm_AES_encrypt_begin:
983 mov esi,DWORD [20+esp]
984 mov edi,DWORD [28+esp]
994 mov DWORD [28+esp],eax
998 lea eax,[_OPENSSL_ia32cap_P
]
999 lea ebp,[(L
$AES_Te
-L
$004pic_point
)+ebp]
1003 lea ebp,[2176+ebx*1+ebp]
1008 call __sse_AES_encrypt_compact
1009 mov esp,DWORD [28+esp]
1010 mov esi,DWORD [24+esp]
1021 mov DWORD [24+esp],ebp
1023 mov ebx,DWORD [4+esi]
1024 mov ecx,DWORD [8+esi]
1025 mov edx,DWORD [12+esi]
1026 call __x86_AES_encrypt_compact
1027 mov esp,DWORD [28+esp]
1028 mov esi,DWORD [24+esp]
1030 mov DWORD [4+esi],ebx
1031 mov DWORD [8+esi],ecx
1032 mov DWORD [12+esi],edx
1039 __x86_AES_decrypt_compact:
1040 mov DWORD [20+esp],edi
1042 xor ebx,DWORD [4+edi]
1043 xor ecx,DWORD [8+edi]
1044 xor edx,DWORD [12+edi]
1045 mov esi,DWORD [240+edi]
1046 lea esi,[esi*1+esi-2]
1048 mov DWORD [24+esp],esi
1049 mov edi,DWORD [ebp-128]
1050 mov esi,DWORD [ebp-96]
1051 mov edi,DWORD [ebp-64]
1052 mov esi,DWORD [ebp-32]
1054 mov esi,DWORD [32+ebp]
1055 mov edi,DWORD [64+ebp]
1056 mov esi,DWORD [96+ebp]
1061 movzx esi,BYTE [esi*1+ebp-128]
1063 movzx edi,BYTE [edi*1+ebp-128]
1069 movzx edi,BYTE [edi*1+ebp-128]
1074 movzx edi,BYTE [edi*1+ebp-128]
1077 mov DWORD [4+esp],esi
1080 movzx esi,BYTE [esi*1+ebp-128]
1082 movzx edi,BYTE [edi*1+ebp-128]
1088 movzx edi,BYTE [edi*1+ebp-128]
1093 movzx edi,BYTE [edi*1+ebp-128]
1096 mov DWORD [8+esp],esi
1099 movzx esi,BYTE [esi*1+ebp-128]
1101 movzx edi,BYTE [edi*1+ebp-128]
1107 movzx edi,BYTE [edi*1+ebp-128]
1112 movzx edi,BYTE [edi*1+ebp-128]
1116 movzx edx,BYTE [edx*1+ebp-128]
1118 movzx ecx,BYTE [ecx*1+ebp-128]
1124 movzx ebx,BYTE [ebx*1+ebp-128]
1128 movzx eax,BYTE [eax*1+ebp-128]
1171 mov eax,DWORD [4+esp]
1173 mov DWORD [12+esp],ecx
1214 mov ebx,DWORD [8+esp]
1216 mov DWORD [16+esp],edx
1298 mov ecx,DWORD [12+esp]
1300 mov edx,DWORD [16+esp]
1301 mov edi,DWORD [20+esp]
1302 mov ebp,DWORD [28+esp]
1305 xor ebx,DWORD [4+edi]
1306 xor ecx,DWORD [8+edi]
1307 xor edx,DWORD [12+edi]
1308 cmp edi,DWORD [24+esp]
1309 mov DWORD [20+esp],edi
1313 movzx esi,BYTE [esi*1+ebp-128]
1315 movzx edi,BYTE [edi*1+ebp-128]
1321 movzx edi,BYTE [edi*1+ebp-128]
1326 movzx edi,BYTE [edi*1+ebp-128]
1329 mov DWORD [4+esp],esi
1332 movzx esi,BYTE [esi*1+ebp-128]
1334 movzx edi,BYTE [edi*1+ebp-128]
1340 movzx edi,BYTE [edi*1+ebp-128]
1345 movzx edi,BYTE [edi*1+ebp-128]
1348 mov DWORD [8+esp],esi
1351 movzx esi,BYTE [esi*1+ebp-128]
1353 movzx edi,BYTE [edi*1+ebp-128]
1359 movzx edi,BYTE [edi*1+ebp-128]
1364 movzx edi,BYTE [edi*1+ebp-128]
1367 mov edi,DWORD [20+esp]
1369 movzx edx,BYTE [edx*1+ebp-128]
1371 movzx ecx,BYTE [ecx*1+ebp-128]
1377 movzx ebx,BYTE [ebx*1+ebp-128]
1380 mov ebx,DWORD [8+esp]
1382 movzx eax,BYTE [eax*1+ebp-128]
1385 mov eax,DWORD [4+esp]
1386 xor eax,DWORD [16+edi]
1387 xor ebx,DWORD [20+edi]
1388 xor ecx,DWORD [24+edi]
1389 xor edx,DWORD [28+edi]
1392 __sse_AES_decrypt_compact:
1395 mov esi,DWORD [240+edi]
1396 lea esi,[esi*1+esi-2]
1398 mov DWORD [24+esp],esi
1400 mov DWORD [8+esp],eax
1401 mov DWORD [12+esp],eax
1402 mov eax,DWORD [ebp-128]
1403 mov ebx,DWORD [ebp-96]
1404 mov ecx,DWORD [ebp-64]
1405 mov edx,DWORD [ebp-32]
1407 mov ebx,DWORD [32+ebp]
1408 mov ecx,DWORD [64+ebp]
1409 mov edx,DWORD [96+ebp]
1416 mov DWORD [20+esp],edi
1420 movzx ecx,BYTE [esi*1+ebp-128]
1422 movzx edx,BYTE [edx*1+ebp-128]
1425 movzx esi,BYTE [edi*1+ebp-128]
1430 movzx esi,BYTE [edi*1+ebp-128]
1435 movzx esi,BYTE [edi*1+ebp-128]
1439 movzx esi,BYTE [edi*1+ebp-128]
1444 movzx esi,BYTE [edi*1+ebp-128]
1449 movzx ecx,BYTE [edi*1+ebp-128]
1452 movzx esi,BYTE [edi*1+ebp-128]
1455 movzx esi,BYTE [edi*1+ebp-128]
1460 movzx esi,BYTE [edi*1+ebp-128]
1465 movzx edx,BYTE [edi*1+ebp-128]
1471 movzx esi,BYTE [edi*1+ebp-128]
1475 movzx ebx,BYTE [ebx*1+ebp-128]
1477 movzx esi,BYTE [edi*1+ebp-128]
1480 movzx eax,BYTE [eax*1+ebp-128]
1484 mov edi,DWORD [20+esp]
1489 cmp edi,DWORD [24+esp]
1585 mov eax,DWORD [ebp-128]
1588 mov ebx,DWORD [ebp-64]
1594 mov edx,DWORD [64+ebp]
1607 mov DWORD [20+esp],edi
1609 xor ebx,DWORD [4+edi]
1610 xor ecx,DWORD [8+edi]
1611 xor edx,DWORD [12+edi]
1612 mov esi,DWORD [240+edi]
1613 lea esi,[esi*1+esi-2]
1615 mov DWORD [24+esp],esi
1620 mov esi,DWORD [esi*8+ebp]
1622 xor esi,DWORD [3+edi*8+ebp]
1626 xor esi,DWORD [2+edi*8+ebp]
1629 xor esi,DWORD [1+edi*8+ebp]
1630 mov DWORD [4+esp],esi
1633 mov esi,DWORD [esi*8+ebp]
1635 xor esi,DWORD [3+edi*8+ebp]
1639 xor esi,DWORD [2+edi*8+ebp]
1642 xor esi,DWORD [1+edi*8+ebp]
1643 mov DWORD [8+esp],esi
1646 mov esi,DWORD [esi*8+ebp]
1648 xor esi,DWORD [3+edi*8+ebp]
1652 xor esi,DWORD [2+edi*8+ebp]
1655 xor esi,DWORD [1+edi*8+ebp]
1656 mov edi,DWORD [20+esp]
1658 mov edx,DWORD [edx*8+ebp]
1660 xor edx,DWORD [3+ecx*8+ebp]
1664 xor edx,DWORD [2+ebx*8+ebp]
1665 mov ebx,DWORD [8+esp]
1667 xor edx,DWORD [1+eax*8+ebp]
1668 mov eax,DWORD [4+esp]
1671 xor ebx,DWORD [4+edi]
1672 xor ecx,DWORD [8+edi]
1673 xor edx,DWORD [12+edi]
1674 cmp edi,DWORD [24+esp]
1675 mov DWORD [20+esp],edi
1678 mov edi,DWORD [ebp-128]
1679 mov esi,DWORD [ebp-96]
1680 mov edi,DWORD [ebp-64]
1681 mov esi,DWORD [ebp-32]
1683 mov esi,DWORD [32+ebp]
1684 mov edi,DWORD [64+ebp]
1685 mov esi,DWORD [96+ebp]
1689 movzx esi,BYTE [esi*1+ebp]
1691 movzx edi,BYTE [edi*1+ebp]
1697 movzx edi,BYTE [edi*1+ebp]
1702 movzx edi,BYTE [edi*1+ebp]
1705 mov DWORD [4+esp],esi
1708 movzx esi,BYTE [esi*1+ebp]
1710 movzx edi,BYTE [edi*1+ebp]
1716 movzx edi,BYTE [edi*1+ebp]
1721 movzx edi,BYTE [edi*1+ebp]
1724 mov DWORD [8+esp],esi
1727 movzx esi,BYTE [esi*1+ebp]
1729 movzx edi,BYTE [edi*1+ebp]
1735 movzx edi,BYTE [edi*1+ebp]
1740 movzx edi,BYTE [edi*1+ebp]
1743 mov edi,DWORD [20+esp]
1745 movzx edx,BYTE [edx*1+ebp]
1747 movzx ecx,BYTE [ecx*1+ebp]
1753 movzx ebx,BYTE [ebx*1+ebp]
1756 mov ebx,DWORD [8+esp]
1758 movzx eax,BYTE [eax*1+ebp]
1761 mov eax,DWORD [4+esp]
1765 xor ebx,DWORD [4+edi]
1766 xor ecx,DWORD [8+edi]
1767 xor edx,DWORD [12+edi]
1771 dd 1353184337,1353184337
1772 dd 1399144830,1399144830
1773 dd 3282310938,3282310938
1774 dd 2522752826,2522752826
1775 dd 3412831035,3412831035
1776 dd 4047871263,4047871263
1777 dd 2874735276,2874735276
1778 dd 2466505547,2466505547
1779 dd 1442459680,1442459680
1780 dd 4134368941,4134368941
1781 dd 2440481928,2440481928
1782 dd 625738485,625738485
1783 dd 4242007375,4242007375
1784 dd 3620416197,3620416197
1785 dd 2151953702,2151953702
1786 dd 2409849525,2409849525
1787 dd 1230680542,1230680542
1788 dd 1729870373,1729870373
1789 dd 2551114309,2551114309
1790 dd 3787521629,3787521629
1791 dd 41234371,41234371
1792 dd 317738113,317738113
1793 dd 2744600205,2744600205
1794 dd 3338261355,3338261355
1795 dd 3881799427,3881799427
1796 dd 2510066197,2510066197
1797 dd 3950669247,3950669247
1798 dd 3663286933,3663286933
1799 dd 763608788,763608788
1800 dd 3542185048,3542185048
1801 dd 694804553,694804553
1802 dd 1154009486,1154009486
1803 dd 1787413109,1787413109
1804 dd 2021232372,2021232372
1805 dd 1799248025,1799248025
1806 dd 3715217703,3715217703
1807 dd 3058688446,3058688446
1808 dd 397248752,397248752
1809 dd 1722556617,1722556617
1810 dd 3023752829,3023752829
1811 dd 407560035,407560035
1812 dd 2184256229,2184256229
1813 dd 1613975959,1613975959
1814 dd 1165972322,1165972322
1815 dd 3765920945,3765920945
1816 dd 2226023355,2226023355
1817 dd 480281086,480281086
1818 dd 2485848313,2485848313
1819 dd 1483229296,1483229296
1820 dd 436028815,436028815
1821 dd 2272059028,2272059028
1822 dd 3086515026,3086515026
1823 dd 601060267,601060267
1824 dd 3791801202,3791801202
1825 dd 1468997603,1468997603
1826 dd 715871590,715871590
1827 dd 120122290,120122290
1828 dd 63092015,63092015
1829 dd 2591802758,2591802758
1830 dd 2768779219,2768779219
1831 dd 4068943920,4068943920
1832 dd 2997206819,2997206819
1833 dd 3127509762,3127509762
1834 dd 1552029421,1552029421
1835 dd 723308426,723308426
1836 dd 2461301159,2461301159
1837 dd 4042393587,4042393587
1838 dd 2715969870,2715969870
1839 dd 3455375973,3455375973
1840 dd 3586000134,3586000134
1841 dd 526529745,526529745
1842 dd 2331944644,2331944644
1843 dd 2639474228,2639474228
1844 dd 2689987490,2689987490
1845 dd 853641733,853641733
1846 dd 1978398372,1978398372
1847 dd 971801355,971801355
1848 dd 2867814464,2867814464
1849 dd 111112542,111112542
1850 dd 1360031421,1360031421
1851 dd 4186579262,4186579262
1852 dd 1023860118,1023860118
1853 dd 2919579357,2919579357
1854 dd 1186850381,1186850381
1855 dd 3045938321,3045938321
1856 dd 90031217,90031217
1857 dd 1876166148,1876166148
1858 dd 4279586912,4279586912
1859 dd 620468249,620468249
1860 dd 2548678102,2548678102
1861 dd 3426959497,3426959497
1862 dd 2006899047,2006899047
1863 dd 3175278768,3175278768
1864 dd 2290845959,2290845959
1865 dd 945494503,945494503
1866 dd 3689859193,3689859193
1867 dd 1191869601,1191869601
1868 dd 3910091388,3910091388
1869 dd 3374220536,3374220536
1871 dd 2206629897,2206629897
1872 dd 1223502642,1223502642
1873 dd 2893025566,2893025566
1874 dd 1316117100,1316117100
1875 dd 4227796733,4227796733
1876 dd 1446544655,1446544655
1877 dd 517320253,517320253
1878 dd 658058550,658058550
1879 dd 1691946762,1691946762
1880 dd 564550760,564550760
1881 dd 3511966619,3511966619
1882 dd 976107044,976107044
1883 dd 2976320012,2976320012
1884 dd 266819475,266819475
1885 dd 3533106868,3533106868
1886 dd 2660342555,2660342555
1887 dd 1338359936,1338359936
1888 dd 2720062561,2720062561
1889 dd 1766553434,1766553434
1890 dd 370807324,370807324
1891 dd 179999714,179999714
1892 dd 3844776128,3844776128
1893 dd 1138762300,1138762300
1894 dd 488053522,488053522
1895 dd 185403662,185403662
1896 dd 2915535858,2915535858
1897 dd 3114841645,3114841645
1898 dd 3366526484,3366526484
1899 dd 2233069911,2233069911
1900 dd 1275557295,1275557295
1901 dd 3151862254,3151862254
1902 dd 4250959779,4250959779
1903 dd 2670068215,2670068215
1904 dd 3170202204,3170202204
1905 dd 3309004356,3309004356
1906 dd 880737115,880737115
1907 dd 1982415755,1982415755
1908 dd 3703972811,3703972811
1909 dd 1761406390,1761406390
1910 dd 1676797112,1676797112
1911 dd 3403428311,3403428311
1912 dd 277177154,277177154
1913 dd 1076008723,1076008723
1914 dd 538035844,538035844
1915 dd 2099530373,2099530373
1916 dd 4164795346,4164795346
1917 dd 288553390,288553390
1918 dd 1839278535,1839278535
1919 dd 1261411869,1261411869
1920 dd 4080055004,4080055004
1921 dd 3964831245,3964831245
1922 dd 3504587127,3504587127
1923 dd 1813426987,1813426987
1924 dd 2579067049,2579067049
1925 dd 4199060497,4199060497
1926 dd 577038663,577038663
1927 dd 3297574056,3297574056
1928 dd 440397984,440397984
1929 dd 3626794326,3626794326
1930 dd 4019204898,4019204898
1931 dd 3343796615,3343796615
1932 dd 3251714265,3251714265
1933 dd 4272081548,4272081548
1934 dd 906744984,906744984
1935 dd 3481400742,3481400742
1936 dd 685669029,685669029
1937 dd 646887386,646887386
1938 dd 2764025151,2764025151
1939 dd 3835509292,3835509292
1940 dd 227702864,227702864
1941 dd 2613862250,2613862250
1942 dd 1648787028,1648787028
1943 dd 3256061430,3256061430
1944 dd 3904428176,3904428176
1945 dd 1593260334,1593260334
1946 dd 4121936770,4121936770
1947 dd 3196083615,3196083615
1948 dd 2090061929,2090061929
1949 dd 2838353263,2838353263
1950 dd 3004310991,3004310991
1951 dd 999926984,999926984
1952 dd 2809993232,2809993232
1953 dd 1852021992,1852021992
1954 dd 2075868123,2075868123
1955 dd 158869197,158869197
1956 dd 4095236462,4095236462
1957 dd 28809964,28809964
1958 dd 2828685187,2828685187
1959 dd 1701746150,1701746150
1960 dd 2129067946,2129067946
1961 dd 147831841,147831841
1962 dd 3873969647,3873969647
1963 dd 3650873274,3650873274
1964 dd 3459673930,3459673930
1965 dd 3557400554,3557400554
1966 dd 3598495785,3598495785
1967 dd 2947720241,2947720241
1968 dd 824393514,824393514
1969 dd 815048134,815048134
1970 dd 3227951669,3227951669
1971 dd 935087732,935087732
1972 dd 2798289660,2798289660
1973 dd 2966458592,2966458592
1974 dd 366520115,366520115
1975 dd 1251476721,1251476721
1976 dd 4158319681,4158319681
1977 dd 240176511,240176511
1978 dd 804688151,804688151
1979 dd 2379631990,2379631990
1980 dd 1303441219,1303441219
1981 dd 1414376140,1414376140
1982 dd 3741619940,3741619940
1983 dd 3820343710,3820343710
1984 dd 461924940,461924940
1985 dd 3089050817,3089050817
1986 dd 2136040774,2136040774
1987 dd 82468509,82468509
1988 dd 1563790337,1563790337
1989 dd 1937016826,1937016826
1990 dd 776014843,776014843
1991 dd 1511876531,1511876531
1992 dd 1389550482,1389550482
1993 dd 861278441,861278441
1994 dd 323475053,323475053
1995 dd 2355222426,2355222426
1996 dd 2047648055,2047648055
1997 dd 2383738969,2383738969
1998 dd 2302415851,2302415851
1999 dd 3995576782,3995576782
2000 dd 902390199,902390199
2001 dd 3991215329,3991215329
2002 dd 1018251130,1018251130
2003 dd 1507840668,1507840668
2004 dd 1064563285,1064563285
2005 dd 2043548696,2043548696
2006 dd 3208103795,3208103795
2007 dd 3939366739,3939366739
2008 dd 1537932639,1537932639
2009 dd 342834655,342834655
2010 dd 2262516856,2262516856
2011 dd 2180231114,2180231114
2012 dd 1053059257,1053059257
2013 dd 741614648,741614648
2014 dd 1598071746,1598071746
2015 dd 1925389590,1925389590
2016 dd 203809468,203809468
2017 dd 2336832552,2336832552
2018 dd 1100287487,1100287487
2019 dd 1895934009,1895934009
2020 dd 3736275976,3736275976
2021 dd 2632234200,2632234200
2022 dd 2428589668,2428589668
2023 dd 1636092795,1636092795
2024 dd 1890988757,1890988757
2025 dd 1952214088,1952214088
2026 dd 1113045200,1113045200
2027 db 82,9,106,213,48,54,165,56
2028 db 191,64,163,158,129,243,215,251
2029 db 124,227,57,130,155,47,255,135
2030 db 52,142,67,68,196,222,233,203
2031 db 84,123,148,50,166,194,35,61
2032 db 238,76,149,11,66,250,195,78
2033 db 8,46,161,102,40,217,36,178
2034 db 118,91,162,73,109,139,209,37
2035 db 114,248,246,100,134,104,152,22
2036 db 212,164,92,204,93,101,182,146
2037 db 108,112,72,80,253,237,185,218
2038 db 94,21,70,87,167,141,157,132
2039 db 144,216,171,0,140,188,211,10
2040 db 247,228,88,5,184,179,69,6
2041 db 208,44,30,143,202,63,15,2
2042 db 193,175,189,3,1,19,138,107
2043 db 58,145,17,65,79,103,220,234
2044 db 151,242,207,206,240,180,230,115
2045 db 150,172,116,34,231,173,53,133
2046 db 226,249,55,232,28,117,223,110
2047 db 71,241,26,113,29,41,197,137
2048 db 111,183,98,14,170,24,190,27
2049 db 252,86,62,75,198,210,121,32
2050 db 154,219,192,254,120,205,90,244
2051 db 31,221,168,51,136,7,199,49
2052 db 177,18,16,89,39,128,236,95
2053 db 96,81,127,169,25,181,74,13
2054 db 45,229,122,159,147,201,156,239
2055 db 160,224,59,77,174,42,245,176
2056 db 200,235,187,60,131,83,153,97
2057 db 23,43,4,126,186,119,214,38
2058 db 225,105,20,99,85,33,12,125
2059 db 82,9,106,213,48,54,165,56
2060 db 191,64,163,158,129,243,215,251
2061 db 124,227,57,130,155,47,255,135
2062 db 52,142,67,68,196,222,233,203
2063 db 84,123,148,50,166,194,35,61
2064 db 238,76,149,11,66,250,195,78
2065 db 8,46,161,102,40,217,36,178
2066 db 118,91,162,73,109,139,209,37
2067 db 114,248,246,100,134,104,152,22
2068 db 212,164,92,204,93,101,182,146
2069 db 108,112,72,80,253,237,185,218
2070 db 94,21,70,87,167,141,157,132
2071 db 144,216,171,0,140,188,211,10
2072 db 247,228,88,5,184,179,69,6
2073 db 208,44,30,143,202,63,15,2
2074 db 193,175,189,3,1,19,138,107
2075 db 58,145,17,65,79,103,220,234
2076 db 151,242,207,206,240,180,230,115
2077 db 150,172,116,34,231,173,53,133
2078 db 226,249,55,232,28,117,223,110
2079 db 71,241,26,113,29,41,197,137
2080 db 111,183,98,14,170,24,190,27
2081 db 252,86,62,75,198,210,121,32
2082 db 154,219,192,254,120,205,90,244
2083 db 31,221,168,51,136,7,199,49
2084 db 177,18,16,89,39,128,236,95
2085 db 96,81,127,169,25,181,74,13
2086 db 45,229,122,159,147,201,156,239
2087 db 160,224,59,77,174,42,245,176
2088 db 200,235,187,60,131,83,153,97
2089 db 23,43,4,126,186,119,214,38
2090 db 225,105,20,99,85,33,12,125
2091 db 82,9,106,213,48,54,165,56
2092 db 191,64,163,158,129,243,215,251
2093 db 124,227,57,130,155,47,255,135
2094 db 52,142,67,68,196,222,233,203
2095 db 84,123,148,50,166,194,35,61
2096 db 238,76,149,11,66,250,195,78
2097 db 8,46,161,102,40,217,36,178
2098 db 118,91,162,73,109,139,209,37
2099 db 114,248,246,100,134,104,152,22
2100 db 212,164,92,204,93,101,182,146
2101 db 108,112,72,80,253,237,185,218
2102 db 94,21,70,87,167,141,157,132
2103 db 144,216,171,0,140,188,211,10
2104 db 247,228,88,5,184,179,69,6
2105 db 208,44,30,143,202,63,15,2
2106 db 193,175,189,3,1,19,138,107
2107 db 58,145,17,65,79,103,220,234
2108 db 151,242,207,206,240,180,230,115
2109 db 150,172,116,34,231,173,53,133
2110 db 226,249,55,232,28,117,223,110
2111 db 71,241,26,113,29,41,197,137
2112 db 111,183,98,14,170,24,190,27
2113 db 252,86,62,75,198,210,121,32
2114 db 154,219,192,254,120,205,90,244
2115 db 31,221,168,51,136,7,199,49
2116 db 177,18,16,89,39,128,236,95
2117 db 96,81,127,169,25,181,74,13
2118 db 45,229,122,159,147,201,156,239
2119 db 160,224,59,77,174,42,245,176
2120 db 200,235,187,60,131,83,153,97
2121 db 23,43,4,126,186,119,214,38
2122 db 225,105,20,99,85,33,12,125
2123 db 82,9,106,213,48,54,165,56
2124 db 191,64,163,158,129,243,215,251
2125 db 124,227,57,130,155,47,255,135
2126 db 52,142,67,68,196,222,233,203
2127 db 84,123,148,50,166,194,35,61
2128 db 238,76,149,11,66,250,195,78
2129 db 8,46,161,102,40,217,36,178
2130 db 118,91,162,73,109,139,209,37
2131 db 114,248,246,100,134,104,152,22
2132 db 212,164,92,204,93,101,182,146
2133 db 108,112,72,80,253,237,185,218
2134 db 94,21,70,87,167,141,157,132
2135 db 144,216,171,0,140,188,211,10
2136 db 247,228,88,5,184,179,69,6
2137 db 208,44,30,143,202,63,15,2
2138 db 193,175,189,3,1,19,138,107
2139 db 58,145,17,65,79,103,220,234
2140 db 151,242,207,206,240,180,230,115
2141 db 150,172,116,34,231,173,53,133
2142 db 226,249,55,232,28,117,223,110
2143 db 71,241,26,113,29,41,197,137
2144 db 111,183,98,14,170,24,190,27
2145 db 252,86,62,75,198,210,121,32
2146 db 154,219,192,254,120,205,90,244
2147 db 31,221,168,51,136,7,199,49
2148 db 177,18,16,89,39,128,236,95
2149 db 96,81,127,169,25,181,74,13
2150 db 45,229,122,159,147,201,156,239
2151 db 160,224,59,77,174,42,245,176
2152 db 200,235,187,60,131,83,153,97
2153 db 23,43,4,126,186,119,214,38
2154 db 225,105,20,99,85,33,12,125
2155 global _asm_AES_decrypt
2158 L$
_asm_AES_decrypt_begin:
2163 mov esi,DWORD [20+esp]
2164 mov edi,DWORD [28+esp]
2174 mov DWORD [28+esp],eax
2178 lea eax,[_OPENSSL_ia32cap_P
]
2179 lea ebp,[(L
$AES_Td
-L
$010pic_point
)+ebp]
2183 lea ebp,[2176+ebx*1+ebp]
2188 call __sse_AES_decrypt_compact
2189 mov esp,DWORD [28+esp]
2190 mov esi,DWORD [24+esp]
2201 mov DWORD [24+esp],ebp
2203 mov ebx,DWORD [4+esi]
2204 mov ecx,DWORD [8+esi]
2205 mov edx,DWORD [12+esi]
2206 call __x86_AES_decrypt_compact
2207 mov esp,DWORD [28+esp]
2208 mov esi,DWORD [24+esp]
2210 mov DWORD [4+esi],ebx
2211 mov DWORD [8+esi],ecx
2212 mov DWORD [12+esi],edx
2218 global _asm_AES_cbc_encrypt
2220 _asm_AES_cbc_encrypt:
2221 L$
_asm_AES_cbc_encrypt_begin:
2226 mov ecx,DWORD [28+esp]
2228 je NEAR L
$012drop_out
2232 lea eax,[_OPENSSL_ia32cap_P
]
2233 cmp DWORD [40+esp],0
2234 lea ebp,[(L
$AES_Te
-L
$013pic_point
)+ebp]
2235 jne NEAR L
$014picked_te
2236 lea ebp,[(L
$AES_Td
-L
$AES_Te
)+ebp]
2241 jb NEAR L
$015slow_way
2243 jnz NEAR L
$015slow_way
2245 jc NEAR L
$015slow_way
2255 jb NEAR L
$016tbl_break_out
2258 jmp NEAR L
$017tbl_ok
2270 mov DWORD [24+esp],ebp
2271 mov DWORD [28+esp],esi
2273 mov ebx,DWORD [4+edx]
2274 mov edi,DWORD [12+edx]
2275 mov esi,DWORD [16+edx]
2276 mov edx,DWORD [20+edx]
2277 mov DWORD [32+esp],eax
2278 mov DWORD [36+esp],ebx
2279 mov DWORD [40+esp],ecx
2280 mov DWORD [44+esp],edi
2281 mov DWORD [48+esp],esi
2282 mov DWORD [316+esp],0
2290 jb NEAR L
$018do_copy
2292 jb NEAR L
$019skip_copy
2295 mov DWORD [44+esp],edi
2302 mov ebx,DWORD [32+ebp]
2303 mov ecx,DWORD [64+ebp]
2304 mov esi,DWORD [96+ebp]
2307 jnz NEAR L
$020prefetch_tbl
2309 mov esi,DWORD [32+esp]
2310 mov edi,DWORD [48+esp]
2312 je NEAR L
$021fast_decrypt
2314 mov ebx,DWORD [4+edi]
2317 mov ecx,DWORD [8+edi]
2318 mov edx,DWORD [12+edi]
2320 xor ebx,DWORD [4+esi]
2321 xor ecx,DWORD [8+esi]
2322 xor edx,DWORD [12+esi]
2323 mov edi,DWORD [44+esp]
2324 call __x86_AES_encrypt
2325 mov esi,DWORD [32+esp]
2326 mov edi,DWORD [36+esp]
2328 mov DWORD [4+edi],ebx
2329 mov DWORD [8+edi],ecx
2330 mov DWORD [12+edi],edx
2332 mov ecx,DWORD [40+esp]
2333 mov DWORD [32+esp],esi
2335 mov DWORD [36+esp],edx
2337 mov DWORD [40+esp],ecx
2338 jnz NEAR L
$022fast_enc_loop
2339 mov esi,DWORD [48+esp]
2340 mov ecx,DWORD [8+edi]
2341 mov edx,DWORD [12+edi]
2343 mov DWORD [4+esi],ebx
2344 mov DWORD [8+esi],ecx
2345 mov DWORD [12+esi],edx
2346 cmp DWORD [316+esp],0
2347 mov edi,DWORD [44+esp]
2348 je NEAR L
$023skip_ezero
2354 mov esp,DWORD [28+esp]
2365 cmp esi,DWORD [36+esp]
2366 je NEAR L
$024fast_dec_in_place
2367 mov DWORD [52+esp],edi
2372 mov ebx,DWORD [4+esi]
2373 mov ecx,DWORD [8+esi]
2374 mov edx,DWORD [12+esi]
2375 mov edi,DWORD [44+esp]
2376 call __x86_AES_decrypt
2377 mov edi,DWORD [52+esp]
2378 mov esi,DWORD [40+esp]
2380 xor ebx,DWORD [4+edi]
2381 xor ecx,DWORD [8+edi]
2382 xor edx,DWORD [12+edi]
2383 mov edi,DWORD [36+esp]
2384 mov esi,DWORD [32+esp]
2386 mov DWORD [4+edi],ebx
2387 mov DWORD [8+edi],ecx
2388 mov DWORD [12+edi],edx
2389 mov ecx,DWORD [40+esp]
2390 mov DWORD [52+esp],esi
2392 mov DWORD [32+esp],esi
2394 mov DWORD [36+esp],edi
2396 mov DWORD [40+esp],ecx
2397 jnz NEAR L
$025fast_dec_loop
2398 mov edi,DWORD [52+esp]
2399 mov esi,DWORD [48+esp]
2401 mov ebx,DWORD [4+edi]
2402 mov ecx,DWORD [8+edi]
2403 mov edx,DWORD [12+edi]
2405 mov DWORD [4+esi],ebx
2406 mov DWORD [8+esi],ecx
2407 mov DWORD [12+esi],edx
2408 jmp NEAR L
$026fast_dec_out
2410 L
$024fast_dec_in_place
:
2411 L
$027fast_dec_in_place_loop
:
2413 mov ebx,DWORD [4+esi]
2414 mov ecx,DWORD [8+esi]
2415 mov edx,DWORD [12+esi]
2418 mov DWORD [4+edi],ebx
2419 mov DWORD [8+edi],ecx
2420 mov DWORD [12+edi],edx
2421 mov edi,DWORD [44+esp]
2422 call __x86_AES_decrypt
2423 mov edi,DWORD [48+esp]
2424 mov esi,DWORD [36+esp]
2426 xor ebx,DWORD [4+edi]
2427 xor ecx,DWORD [8+edi]
2428 xor edx,DWORD [12+edi]
2430 mov DWORD [4+esi],ebx
2431 mov DWORD [8+esi],ecx
2432 mov DWORD [12+esi],edx
2434 mov DWORD [36+esp],esi
2437 mov ebx,DWORD [4+esi]
2438 mov ecx,DWORD [8+esi]
2439 mov edx,DWORD [12+esi]
2441 mov DWORD [4+edi],ebx
2442 mov DWORD [8+edi],ecx
2443 mov DWORD [12+edi],edx
2444 mov esi,DWORD [32+esp]
2445 mov ecx,DWORD [40+esp]
2447 mov DWORD [32+esp],esi
2449 mov DWORD [40+esp],ecx
2450 jnz NEAR L
$027fast_dec_in_place_loop
2453 cmp DWORD [316+esp],0
2454 mov edi,DWORD [44+esp]
2455 je NEAR L
$028skip_dzero
2461 mov esp,DWORD [28+esp]
2472 mov edi,DWORD [36+esp]
2483 lea ebp,[2176+ebx*1+ebp]
2487 mov DWORD [24+esp],ebp
2488 mov DWORD [28+esp],esi
2489 mov DWORD [52+esp],eax
2491 mov ebx,DWORD [4+edx]
2492 mov esi,DWORD [16+edx]
2493 mov edx,DWORD [20+edx]
2494 mov DWORD [32+esp],eax
2495 mov DWORD [36+esp],ebx
2496 mov DWORD [40+esp],ecx
2497 mov DWORD [44+esp],edi
2498 mov DWORD [48+esp],esi
2502 je NEAR L
$029slow_decrypt
2505 jb NEAR L
$030slow_enc_tail
2506 bt DWORD [52+esp],25
2507 jnc NEAR L
$031slow_enc_x86
2511 L
$032slow_enc_loop_sse
:
2514 mov edi,DWORD [44+esp]
2515 call __sse_AES_encrypt_compact
2516 mov esi,DWORD [32+esp]
2517 mov edi,DWORD [36+esp]
2518 mov ecx,DWORD [40+esp]
2522 mov DWORD [32+esp],esi
2524 mov DWORD [36+esp],edx
2527 mov DWORD [40+esp],ecx
2528 jae NEAR L
$032slow_enc_loop_sse
2530 jnz NEAR L
$030slow_enc_tail
2531 mov esi,DWORD [48+esp]
2535 mov esp,DWORD [28+esp]
2546 mov ebx,DWORD [4+edi]
2548 L
$033slow_enc_loop_x86
:
2549 mov ecx,DWORD [8+edi]
2550 mov edx,DWORD [12+edi]
2552 xor ebx,DWORD [4+esi]
2553 xor ecx,DWORD [8+esi]
2554 xor edx,DWORD [12+esi]
2555 mov edi,DWORD [44+esp]
2556 call __x86_AES_encrypt_compact
2557 mov esi,DWORD [32+esp]
2558 mov edi,DWORD [36+esp]
2560 mov DWORD [4+edi],ebx
2561 mov DWORD [8+edi],ecx
2562 mov DWORD [12+edi],edx
2563 mov ecx,DWORD [40+esp]
2565 mov DWORD [32+esp],esi
2567 mov DWORD [36+esp],edx
2570 mov DWORD [40+esp],ecx
2571 jae NEAR L
$033slow_enc_loop_x86
2573 jnz NEAR L
$030slow_enc_tail
2574 mov esi,DWORD [48+esp]
2575 mov ecx,DWORD [8+edi]
2576 mov edx,DWORD [12+edi]
2578 mov DWORD [4+esi],ebx
2579 mov DWORD [8+esi],ecx
2580 mov DWORD [12+esi],edx
2581 mov esp,DWORD [28+esp]
2596 je NEAR L
$034enc_in_place
2599 jmp NEAR L
$035enc_skip_in_place
2602 L
$035enc_skip_in_place
:
2607 mov edi,DWORD [48+esp]
2610 mov ebx,DWORD [4+edi]
2611 mov DWORD [40+esp],16
2612 jmp NEAR L
$033slow_enc_loop_x86
2615 bt DWORD [52+esp],25
2616 jnc NEAR L
$036slow_dec_loop_x86
2618 L
$037slow_dec_loop_sse
:
2621 mov edi,DWORD [44+esp]
2622 call __sse_AES_decrypt_compact
2623 mov esi,DWORD [32+esp]
2625 mov ebx,DWORD [36+esp]
2626 mov ecx,DWORD [40+esp]
2627 mov edi,DWORD [48+esp]
2635 jc NEAR L
$038slow_dec_partial_sse
2639 mov DWORD [36+esp],ebx
2641 mov DWORD [32+esp],esi
2642 mov DWORD [40+esp],ecx
2643 jnz NEAR L
$037slow_dec_loop_sse
2645 mov esp,DWORD [28+esp]
2654 L
$038slow_dec_partial_sse
:
2663 mov esp,DWORD [28+esp]
2672 L
$036slow_dec_loop_x86
:
2674 mov ebx,DWORD [4+esi]
2675 mov ecx,DWORD [8+esi]
2676 mov edx,DWORD [12+esi]
2679 mov DWORD [4+edi],ebx
2680 mov DWORD [8+edi],ecx
2681 mov DWORD [12+edi],edx
2682 mov edi,DWORD [44+esp]
2683 call __x86_AES_decrypt_compact
2684 mov edi,DWORD [48+esp]
2685 mov esi,DWORD [40+esp]
2687 xor ebx,DWORD [4+edi]
2688 xor ecx,DWORD [8+edi]
2689 xor edx,DWORD [12+edi]
2691 jc NEAR L
$039slow_dec_partial_x86
2692 mov DWORD [40+esp],esi
2693 mov esi,DWORD [36+esp]
2695 mov DWORD [4+esi],ebx
2696 mov DWORD [8+esi],ecx
2697 mov DWORD [12+esi],edx
2699 mov DWORD [36+esp],esi
2702 mov ebx,DWORD [4+esi]
2703 mov ecx,DWORD [8+esi]
2704 mov edx,DWORD [12+esi]
2706 mov DWORD [4+edi],ebx
2707 mov DWORD [8+edi],ecx
2708 mov DWORD [12+edi],edx
2709 mov esi,DWORD [32+esp]
2711 mov DWORD [32+esp],esi
2712 jnz NEAR L
$036slow_dec_loop_x86
2713 mov esp,DWORD [28+esp]
2722 L
$039slow_dec_partial_x86
:
2725 mov DWORD [4+esi],ebx
2726 mov DWORD [8+esi],ecx
2727 mov DWORD [12+esi],edx
2728 mov esi,DWORD [32+esp]
2730 mov ebx,DWORD [4+esi]
2731 mov ecx,DWORD [8+esi]
2732 mov edx,DWORD [12+esi]
2734 mov DWORD [4+edi],ebx
2735 mov DWORD [8+edi],ecx
2736 mov DWORD [12+edi],edx
2737 mov ecx,DWORD [40+esp]
2738 mov edi,DWORD [36+esp]
2742 mov esp,DWORD [28+esp]
2750 __x86_AES_set_encrypt_key:
2755 mov esi,DWORD [24+esp]
2756 mov edi,DWORD [32+esp]
2758 jz NEAR L
$040badpointer
2760 jz NEAR L
$040badpointer
2764 lea ebp,[(L
$AES_Te
-L
$041pic_point
)+ebp]
2766 mov eax,DWORD [ebp-128]
2767 mov ebx,DWORD [ebp-96]
2768 mov ecx,DWORD [ebp-64]
2769 mov edx,DWORD [ebp-32]
2771 mov ebx,DWORD [32+ebp]
2772 mov ecx,DWORD [64+ebp]
2773 mov edx,DWORD [96+ebp]
2774 mov ecx,DWORD [28+esp]
2776 je NEAR L
$04210rounds
2778 je NEAR L
$04312rounds
2780 je NEAR L
$04414rounds
2785 mov ebx,DWORD [4+esi]
2786 mov ecx,DWORD [8+esi]
2787 mov edx,DWORD [12+esi]
2789 mov DWORD [4+edi],ebx
2790 mov DWORD [8+edi],ecx
2791 mov DWORD [12+edi],edx
2793 jmp NEAR L
$04610shortcut
2797 mov edx,DWORD [12+edi]
2800 movzx ebx,BYTE [esi*1+ebp-128]
2804 movzx ebx,BYTE [esi*1+ebp-128]
2808 movzx ebx,BYTE [esi*1+ebp-128]
2812 movzx ebx,BYTE [esi*1+ebp-128]
2815 xor eax,DWORD [896+ecx*4+ebp]
2816 mov DWORD [16+edi],eax
2817 xor eax,DWORD [4+edi]
2818 mov DWORD [20+edi],eax
2819 xor eax,DWORD [8+edi]
2820 mov DWORD [24+edi],eax
2821 xor eax,DWORD [12+edi]
2822 mov DWORD [28+edi],eax
2827 mov DWORD [80+edi],10
2832 mov ebx,DWORD [4+esi]
2833 mov ecx,DWORD [8+esi]
2834 mov edx,DWORD [12+esi]
2836 mov DWORD [4+edi],ebx
2837 mov DWORD [8+edi],ecx
2838 mov DWORD [12+edi],edx
2839 mov ecx,DWORD [16+esi]
2840 mov edx,DWORD [20+esi]
2841 mov DWORD [16+edi],ecx
2842 mov DWORD [20+edi],edx
2844 jmp NEAR L
$04812shortcut
2848 mov edx,DWORD [20+edi]
2851 movzx ebx,BYTE [esi*1+ebp-128]
2855 movzx ebx,BYTE [esi*1+ebp-128]
2859 movzx ebx,BYTE [esi*1+ebp-128]
2863 movzx ebx,BYTE [esi*1+ebp-128]
2866 xor eax,DWORD [896+ecx*4+ebp]
2867 mov DWORD [24+edi],eax
2868 xor eax,DWORD [4+edi]
2869 mov DWORD [28+edi],eax
2870 xor eax,DWORD [8+edi]
2871 mov DWORD [32+edi],eax
2872 xor eax,DWORD [12+edi]
2873 mov DWORD [36+edi],eax
2875 je NEAR L
$05012break
2877 xor eax,DWORD [16+edi]
2878 mov DWORD [40+edi],eax
2879 xor eax,DWORD [20+edi]
2880 mov DWORD [44+edi],eax
2882 jmp NEAR L
$04912loop
2884 mov DWORD [72+edi],12
2889 mov ebx,DWORD [4+esi]
2890 mov ecx,DWORD [8+esi]
2891 mov edx,DWORD [12+esi]
2893 mov DWORD [4+edi],ebx
2894 mov DWORD [8+edi],ecx
2895 mov DWORD [12+edi],edx
2896 mov eax,DWORD [16+esi]
2897 mov ebx,DWORD [20+esi]
2898 mov ecx,DWORD [24+esi]
2899 mov edx,DWORD [28+esi]
2900 mov DWORD [16+edi],eax
2901 mov DWORD [20+edi],ebx
2902 mov DWORD [24+edi],ecx
2903 mov DWORD [28+edi],edx
2905 jmp NEAR L
$05114shortcut
2908 mov edx,DWORD [28+edi]
2912 movzx ebx,BYTE [esi*1+ebp-128]
2916 movzx ebx,BYTE [esi*1+ebp-128]
2920 movzx ebx,BYTE [esi*1+ebp-128]
2924 movzx ebx,BYTE [esi*1+ebp-128]
2927 xor eax,DWORD [896+ecx*4+ebp]
2928 mov DWORD [32+edi],eax
2929 xor eax,DWORD [4+edi]
2930 mov DWORD [36+edi],eax
2931 xor eax,DWORD [8+edi]
2932 mov DWORD [40+edi],eax
2933 xor eax,DWORD [12+edi]
2934 mov DWORD [44+edi],eax
2936 je NEAR L
$05314break
2939 mov eax,DWORD [16+edi]
2941 movzx ebx,BYTE [esi*1+ebp-128]
2944 movzx ebx,BYTE [esi*1+ebp-128]
2949 movzx ebx,BYTE [esi*1+ebp-128]
2953 movzx ebx,BYTE [esi*1+ebp-128]
2956 mov DWORD [48+edi],eax
2957 xor eax,DWORD [20+edi]
2958 mov DWORD [52+edi],eax
2959 xor eax,DWORD [24+edi]
2960 mov DWORD [56+edi],eax
2961 xor eax,DWORD [28+edi]
2962 mov DWORD [60+edi],eax
2964 jmp NEAR L
$05214loop
2966 mov DWORD [48+edi],14
2977 global _asm_AES_set_encrypt_key
2979 _asm_AES_set_encrypt_key:
2980 L$
_asm_AES_set_encrypt_key_begin:
2981 call __x86_AES_set_encrypt_key
2983 global _asm_AES_set_decrypt_key
2985 _asm_AES_set_decrypt_key:
2986 L$
_asm_AES_set_decrypt_key_begin:
2987 call __x86_AES_set_encrypt_key
2989 je NEAR L
$054proceed
2996 mov esi,DWORD [28+esp]
2997 mov ecx,DWORD [240+esi]
3003 mov ebx,DWORD [4+esi]
3005 mov edx,DWORD [4+edi]
3007 mov DWORD [4+edi],ebx
3009 mov DWORD [4+esi],edx
3010 mov eax,DWORD [8+esi]
3011 mov ebx,DWORD [12+esi]
3012 mov ecx,DWORD [8+edi]
3013 mov edx,DWORD [12+edi]
3014 mov DWORD [8+edi],eax
3015 mov DWORD [12+edi],ebx
3016 mov DWORD [8+esi],ecx
3017 mov DWORD [12+esi],edx
3021 jne NEAR L
$055invert
3022 mov edi,DWORD [28+esp]
3023 mov esi,DWORD [240+edi]
3024 lea esi,[esi*1+esi-2]
3026 mov DWORD [28+esp],esi
3027 mov eax,DWORD [16+edi]
3061 mov ebp,DWORD [4+edi]
3105 mov ebp,DWORD [8+edi]
3118 mov DWORD [4+edi],ebx
3149 mov ebp,DWORD [12+edi]
3162 mov DWORD [8+edi],ecx
3193 mov ebp,DWORD [16+edi]
3206 mov DWORD [12+edi],edx
3207 cmp edi,DWORD [28+esp]
3208 jb NEAR L
$056permute
3215 db 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
3216 db 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
3217 db 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
3219 common _OPENSSL_ia32cap_P
16