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
20 L$
_aesni_encrypt_begin:
22 mov edx,DWORD [12+esp]
24 mov ecx,DWORD [240+edx]
35 jnz NEAR L
$000enc
1_loop
_1
42 L$
_aesni_decrypt_begin:
44 mov edx,DWORD [12+esp]
46 mov ecx,DWORD [240+edx]
57 jnz NEAR L
$001dec1_loop
_2
69 lea edx,[32+ecx*1+edx]
75 movups xmm1
,[ecx*1+edx]
79 movups xmm0
,[ecx*1+edx-16]
80 jnz NEAR L
$002enc
2_loop
94 lea edx,[32+ecx*1+edx]
100 movups xmm1
,[ecx*1+edx]
104 movups xmm0
,[ecx*1+edx-16]
105 jnz NEAR L
$003dec2_loop
120 lea edx,[32+ecx*1+edx]
127 movups xmm1
,[ecx*1+edx]
132 movups xmm0
,[ecx*1+edx-16]
133 jnz NEAR L
$004enc
3_loop
150 lea edx,[32+ecx*1+edx]
157 movups xmm1
,[ecx*1+edx]
162 movups xmm0
,[ecx*1+edx-16]
163 jnz NEAR L
$005dec3_loop
181 lea edx,[32+ecx*1+edx]
190 movups xmm1
,[ecx*1+edx]
196 movups xmm0
,[ecx*1+edx-16]
197 jnz NEAR L
$006enc
4_loop
217 lea edx,[32+ecx*1+edx]
226 movups xmm1
,[ecx*1+edx]
232 movups xmm0
,[ecx*1+edx-16]
233 jnz NEAR L
$007dec4_loop
255 lea edx,[32+ecx*1+edx]
263 movups xmm0
,[ecx*1+edx-16]
264 jmp NEAR L$_aesni_encrypt6_enter
273 L$
_aesni_encrypt6_enter:
274 movups xmm1
,[ecx*1+edx]
282 movups xmm0
,[ecx*1+edx-16]
283 jnz NEAR L
$008enc
6_loop
309 lea edx,[32+ecx*1+edx]
317 movups xmm0
,[ecx*1+edx-16]
318 jmp NEAR L$_aesni_decrypt6_enter
327 L$
_aesni_decrypt6_enter:
328 movups xmm1
,[ecx*1+edx]
336 movups xmm0
,[ecx*1+edx-16]
337 jnz NEAR L
$009dec6_loop
351 global _aesni_ecb_encrypt
354 L$
_aesni_ecb_encrypt_begin:
359 mov esi,DWORD [20+esp]
360 mov edi,DWORD [24+esp]
361 mov eax,DWORD [28+esp]
362 mov edx,DWORD [32+esp]
363 mov ebx,DWORD [36+esp]
366 mov ecx,DWORD [240+edx]
368 jz NEAR L
$011ecb_decrypt
372 jb NEAR L
$012ecb_enc_tail
381 jmp NEAR L
$013ecb_enc_loop
6_enter
398 L
$013ecb_enc_loop
6_enter
:
399 call __aesni_encrypt6
403 jnc NEAR L
$014ecb_enc_loop
6
416 jb NEAR L
$015ecb_enc_one
418 je NEAR L
$016ecb_enc_two
421 jb NEAR L
$017ecb_enc_three
423 je NEAR L
$018ecb_enc_four
426 call __aesni_encrypt6
432 jmp NEAR L
$010ecb_ret
444 jnz NEAR L
$019enc
1_loop
_3
447 jmp NEAR L
$010ecb_ret
450 call __aesni_encrypt2
453 jmp NEAR L
$010ecb_ret
456 call __aesni_encrypt3
460 jmp NEAR L
$010ecb_ret
463 call __aesni_encrypt4
468 jmp NEAR L
$010ecb_ret
474 jb NEAR L
$020ecb_dec_tail
483 jmp NEAR L
$021ecb_dec_loop
6_enter
500 L
$021ecb_dec_loop
6_enter
:
501 call __aesni_decrypt6
505 jnc NEAR L
$022ecb_dec_loop
6
518 jb NEAR L
$023ecb_dec_one
520 je NEAR L
$024ecb_dec_two
523 jb NEAR L
$025ecb_dec_three
525 je NEAR L
$026ecb_dec_four
528 call __aesni_decrypt6
534 jmp NEAR L
$010ecb_ret
546 jnz NEAR L
$027dec1_loop
_4
549 jmp NEAR L
$010ecb_ret
552 call __aesni_decrypt2
555 jmp NEAR L
$010ecb_ret
558 call __aesni_decrypt3
562 jmp NEAR L
$010ecb_ret
565 call __aesni_decrypt4
576 global _aesni_ccm64_encrypt_blocks
578 _aesni_ccm64_encrypt_blocks:
579 L$
_aesni_ccm64_encrypt_blocks_begin:
584 mov esi,DWORD [20+esp]
585 mov edi,DWORD [24+esp]
586 mov eax,DWORD [28+esp]
587 mov edx,DWORD [32+esp]
588 mov ebx,DWORD [36+esp]
589 mov ecx,DWORD [40+esp]
593 mov DWORD [48+esp],ebp
596 mov ecx,DWORD [240+edx]
597 mov DWORD [esp],202182159
598 mov DWORD [4+esp],134810123
599 mov DWORD [8+esp],67438087
600 mov DWORD [12+esp],66051
603 mov DWORD [16+esp],ebx
604 mov DWORD [20+esp],ebp
605 mov DWORD [24+esp],ebp
606 mov DWORD [28+esp],ebp
612 lea edx,[32+ecx*1+edx]
615 L
$028ccm
64_enc_outer
:
624 L
$029ccm
64_enc
2_loop
:
627 movups xmm1
,[ecx*1+edx]
631 movups xmm0
,[ecx*1+edx-16]
632 jnz NEAR L
$029ccm
64_enc
2_loop
645 jnz NEAR L
$028ccm
64_enc_outer
646 mov esp,DWORD [48+esp]
647 mov edi,DWORD [40+esp]
654 global _aesni_ccm64_decrypt_blocks
656 _aesni_ccm64_decrypt_blocks:
657 L$
_aesni_ccm64_decrypt_blocks_begin:
662 mov esi,DWORD [20+esp]
663 mov edi,DWORD [24+esp]
664 mov eax,DWORD [28+esp]
665 mov edx,DWORD [32+esp]
666 mov ebx,DWORD [36+esp]
667 mov ecx,DWORD [40+esp]
671 mov DWORD [48+esp],ebp
674 mov ecx,DWORD [240+edx]
675 mov DWORD [esp],202182159
676 mov DWORD [4+esp],134810123
677 mov DWORD [8+esp],67438087
678 mov DWORD [12+esp],66051
681 mov DWORD [16+esp],ebx
682 mov DWORD [20+esp],ebp
683 mov DWORD [24+esp],ebp
684 mov DWORD [28+esp],ebp
699 jnz NEAR L
$030enc
1_loop
_5
707 lea edx,[32+ebx*1+ebp]
709 jmp NEAR L
$031ccm
64_dec_outer
711 L
$031ccm
64_dec_outer
:
718 jz NEAR L
$032ccm
64_dec_break
726 L
$033ccm
64_dec
2_loop
:
729 movups xmm1
,[ecx*1+edx]
733 movups xmm0
,[ecx*1+edx-16]
734 jnz NEAR L
$033ccm
64_dec
2_loop
742 jmp NEAR L
$031ccm
64_dec_outer
744 L
$032ccm
64_dec_break
:
745 mov ecx,DWORD [240+ebp]
757 jnz NEAR L
$034enc
1_loop
_6
759 mov esp,DWORD [48+esp]
760 mov edi,DWORD [40+esp]
767 global _aesni_ctr32_encrypt_blocks
769 _aesni_ctr32_encrypt_blocks:
770 L$
_aesni_ctr32_encrypt_blocks_begin:
775 mov esi,DWORD [20+esp]
776 mov edi,DWORD [24+esp]
777 mov eax,DWORD [28+esp]
778 mov edx,DWORD [32+esp]
779 mov ebx,DWORD [36+esp]
783 mov DWORD [80+esp],ebp
785 je NEAR L
$035ctr
32_one_shortcut
787 mov DWORD [esp],202182159
788 mov DWORD [4+esp],134810123
789 mov DWORD [8+esp],67438087
790 mov DWORD [12+esp],66051
793 mov DWORD [16+esp],ecx
794 mov DWORD [20+esp],ecx
795 mov DWORD [24+esp],ecx
796 mov DWORD [28+esp],ebp
797 db 102,15,58,22,251,3
798 db 102,15,58,34,253,3
799 mov ecx,DWORD [240+edx]
804 db 102,15,58,34,195,0
806 db 102,15,58,34,205,0
808 db 102,15,58,34,195,1
810 db 102,15,58,34,205,1
812 db 102,15,58,34,195,2
814 db 102,15,58,34,205,2
823 jb NEAR L
$036ctr
32_tail
830 lea edx,[32+ecx*1+edx]
832 jmp NEAR L
$037ctr
32_loop
6
855 call L$_aesni_encrypt6_enter
888 jnc NEAR L
$037ctr
32_loop
6
890 jz NEAR L
$038ctr
32_ret
894 mov ecx,DWORD [240+ebp]
898 jb NEAR L
$039ctr
32_one
901 je NEAR L
$040ctr
32_two
905 jb NEAR L
$041ctr
32_three
908 je NEAR L
$042ctr
32_four
910 call __aesni_encrypt6
926 jmp NEAR L
$038ctr
32_ret
928 L
$035ctr
32_one_shortcut
:
930 mov ecx,DWORD [240+edx]
941 jnz NEAR L
$043enc
1_loop
_7
946 jmp NEAR L
$038ctr
32_ret
949 call __aesni_encrypt2
956 jmp NEAR L
$038ctr
32_ret
959 call __aesni_encrypt3
969 jmp NEAR L
$038ctr
32_ret
972 call __aesni_encrypt4
986 mov esp,DWORD [80+esp]
992 global _aesni_xts_encrypt
995 L$
_aesni_xts_encrypt_begin:
1000 mov edx,DWORD [36+esp]
1001 mov esi,DWORD [40+esp]
1002 mov ecx,DWORD [240+edx]
1005 movups xmm1
,[16+edx]
1009 db 102,15,56,220,209
1013 jnz NEAR L
$044enc
1_loop
_8
1014 db 102,15,56,221,209
1015 mov esi,DWORD [20+esp]
1016 mov edi,DWORD [24+esp]
1017 mov eax,DWORD [28+esp]
1018 mov edx,DWORD [32+esp]
1021 mov ecx,DWORD [240+edx]
1023 mov DWORD [96+esp],135
1024 mov DWORD [100+esp],0
1025 mov DWORD [104+esp],1
1026 mov DWORD [108+esp],0
1027 mov DWORD [112+esp],eax
1028 mov DWORD [116+esp],ebp
1031 movdqa xmm3
,[96+esp]
1037 jc NEAR L
$045xts_enc_short
1041 lea edx,[32+ecx*1+edx]
1042 jmp NEAR L
$046xts_enc_loop6
1054 movdqa
[16+esp],xmm1
1061 movdqa
[32+esp],xmm1
1068 movdqa
[48+esp],xmm1
1074 movdqa
[64+esp],xmm1
1081 movdqu xmm3
,[16+esi]
1083 movdqu xmm4
,[32+esi]
1085 movdqu xmm5
,[48+esi]
1087 movdqu xmm6
,[64+esi]
1089 movdqu xmm1
,[80+esi]
1093 movdqa
[80+esp],xmm7
1095 movups xmm1
,[16+ebp]
1098 db 102,15,56,220,209
1101 db 102,15,56,220,217
1103 movups xmm0
,[32+ebp]
1104 db 102,15,56,220,225
1105 db 102,15,56,220,233
1106 db 102,15,56,220,241
1107 db 102,15,56,220,249
1108 call L$_aesni_encrypt6_enter
1109 movdqa xmm1
,[80+esp]
1116 movups
[16+edi],xmm3
1118 movups
[32+edi],xmm4
1120 movups
[48+edi],xmm5
1122 movups
[64+edi],xmm6
1124 movups
[80+edi],xmm7
1126 movdqa xmm3
,[96+esp]
1133 jnc NEAR L
$046xts_enc_loop6
1134 mov ecx,DWORD [240+ebp]
1139 jz NEAR L
$047xts_enc_done6x
1142 jb NEAR L
$048xts_enc_one
1149 je NEAR L
$049xts_enc_two
1158 jb NEAR L
$050xts_enc_three
1167 movdqa
[16+esp],xmm6
1168 je NEAR L
$051xts_enc_four
1169 movdqa
[32+esp],xmm7
1171 movdqa
[48+esp],xmm1
1176 movdqu xmm3
,[16+esi]
1177 movdqu xmm4
,[32+esi]
1179 movdqu xmm5
,[48+esi]
1181 movdqu xmm6
,[64+esi]
1185 movdqa
[64+esp],xmm7
1187 call __aesni_encrypt6
1188 movaps xmm1
,[64+esp]
1194 movups
[16+edi],xmm3
1196 movups
[32+edi],xmm4
1197 movups
[48+edi],xmm5
1198 movups
[64+edi],xmm6
1200 jmp NEAR L
$052xts_enc_done
1207 movups xmm1
,[16+edx]
1211 db 102,15,56,220,209
1215 jnz NEAR L
$053enc
1_loop
_9
1216 db 102,15,56,221,209
1221 jmp NEAR L
$052xts_enc_done
1226 movups xmm3
,[16+esi]
1230 call __aesni_encrypt2
1234 movups
[16+edi],xmm3
1237 jmp NEAR L
$052xts_enc_done
1242 movups xmm3
,[16+esi]
1243 movups xmm4
,[32+esi]
1248 call __aesni_encrypt3
1253 movups
[16+edi],xmm3
1254 movups
[32+edi],xmm4
1257 jmp NEAR L
$052xts_enc_done
1262 movups xmm3
,[16+esi]
1263 movups xmm4
,[32+esi]
1265 movups xmm5
,[48+esi]
1270 call __aesni_encrypt4
1276 movups
[16+edi],xmm3
1277 movups
[32+edi],xmm4
1278 movups
[48+edi],xmm5
1281 jmp NEAR L
$052xts_enc_done
1283 L
$047xts_enc_done6x
:
1284 mov eax,DWORD [112+esp]
1286 jz NEAR L
$054xts_enc_ret
1288 mov DWORD [112+esp],eax
1289 jmp NEAR L
$055xts_enc_steal
1292 mov eax,DWORD [112+esp]
1295 jz NEAR L
$054xts_enc_ret
1297 mov DWORD [112+esp],eax
1303 movzx ecx,BYTE [esi]
1304 movzx edx,BYTE [edi-16]
1306 mov BYTE [edi-16],cl
1310 jnz NEAR L
$055xts_enc_steal
1311 sub edi,DWORD [112+esp]
1314 movups xmm2
,[edi-16]
1317 movups xmm1
,[16+edx]
1321 db 102,15,56,220,209
1325 jnz NEAR L
$056enc
1_loop
_10
1326 db 102,15,56,221,209
1328 movups
[edi-16],xmm2
1330 mov esp,DWORD [116+esp]
1336 global _aesni_xts_decrypt
1339 L$
_aesni_xts_decrypt_begin:
1344 mov edx,DWORD [36+esp]
1345 mov esi,DWORD [40+esp]
1346 mov ecx,DWORD [240+edx]
1349 movups xmm1
,[16+edx]
1353 db 102,15,56,220,209
1357 jnz NEAR L
$057enc
1_loop
_11
1358 db 102,15,56,221,209
1359 mov esi,DWORD [20+esp]
1360 mov edi,DWORD [24+esp]
1361 mov eax,DWORD [28+esp]
1362 mov edx,DWORD [32+esp]
1371 mov DWORD [96+esp],135
1372 mov DWORD [100+esp],0
1373 mov DWORD [104+esp],1
1374 mov DWORD [108+esp],0
1375 mov DWORD [112+esp],eax
1376 mov DWORD [116+esp],ebp
1377 mov ecx,DWORD [240+edx]
1382 movdqa xmm3
,[96+esp]
1386 jc NEAR L
$058xts_dec_short
1390 lea edx,[32+ecx*1+edx]
1391 jmp NEAR L
$059xts_dec_loop6
1403 movdqa
[16+esp],xmm1
1410 movdqa
[32+esp],xmm1
1417 movdqa
[48+esp],xmm1
1423 movdqa
[64+esp],xmm1
1430 movdqu xmm3
,[16+esi]
1432 movdqu xmm4
,[32+esi]
1434 movdqu xmm5
,[48+esi]
1436 movdqu xmm6
,[64+esi]
1438 movdqu xmm1
,[80+esi]
1442 movdqa
[80+esp],xmm7
1444 movups xmm1
,[16+ebp]
1447 db 102,15,56,222,209
1450 db 102,15,56,222,217
1452 movups xmm0
,[32+ebp]
1453 db 102,15,56,222,225
1454 db 102,15,56,222,233
1455 db 102,15,56,222,241
1456 db 102,15,56,222,249
1457 call L$_aesni_decrypt6_enter
1458 movdqa xmm1
,[80+esp]
1465 movups
[16+edi],xmm3
1467 movups
[32+edi],xmm4
1469 movups
[48+edi],xmm5
1471 movups
[64+edi],xmm6
1473 movups
[80+edi],xmm7
1475 movdqa xmm3
,[96+esp]
1482 jnc NEAR L
$059xts_dec_loop6
1483 mov ecx,DWORD [240+ebp]
1488 jz NEAR L
$060xts_dec_done6x
1491 jb NEAR L
$061xts_dec_one
1498 je NEAR L
$062xts_dec_two
1507 jb NEAR L
$063xts_dec_three
1516 movdqa
[16+esp],xmm6
1517 je NEAR L
$064xts_dec_four
1518 movdqa
[32+esp],xmm7
1520 movdqa
[48+esp],xmm1
1525 movdqu xmm3
,[16+esi]
1526 movdqu xmm4
,[32+esi]
1528 movdqu xmm5
,[48+esi]
1530 movdqu xmm6
,[64+esi]
1534 movdqa
[64+esp],xmm7
1536 call __aesni_decrypt6
1537 movaps xmm1
,[64+esp]
1543 movups
[16+edi],xmm3
1545 movups
[32+edi],xmm4
1546 movups
[48+edi],xmm5
1547 movups
[64+edi],xmm6
1549 jmp NEAR L
$065xts_dec_done
1556 movups xmm1
,[16+edx]
1560 db 102,15,56,222,209
1564 jnz NEAR L
$066dec1_loop
_12
1565 db 102,15,56,223,209
1570 jmp NEAR L
$065xts_dec_done
1575 movups xmm3
,[16+esi]
1579 call __aesni_decrypt2
1583 movups
[16+edi],xmm3
1586 jmp NEAR L
$065xts_dec_done
1591 movups xmm3
,[16+esi]
1592 movups xmm4
,[32+esi]
1597 call __aesni_decrypt3
1602 movups
[16+edi],xmm3
1603 movups
[32+edi],xmm4
1606 jmp NEAR L
$065xts_dec_done
1611 movups xmm3
,[16+esi]
1612 movups xmm4
,[32+esi]
1614 movups xmm5
,[48+esi]
1619 call __aesni_decrypt4
1625 movups
[16+edi],xmm3
1626 movups
[32+edi],xmm4
1627 movups
[48+edi],xmm5
1630 jmp NEAR L
$065xts_dec_done
1632 L
$060xts_dec_done6x
:
1633 mov eax,DWORD [112+esp]
1635 jz NEAR L
$067xts_dec_ret
1636 mov DWORD [112+esp],eax
1637 jmp NEAR L
$068xts_dec_only_one_more
1640 mov eax,DWORD [112+esp]
1643 jz NEAR L
$067xts_dec_ret
1645 mov DWORD [112+esp],eax
1648 movdqa xmm3
,[96+esp]
1653 L
$068xts_dec_only_one_more
:
1664 movups xmm1
,[16+edx]
1668 db 102,15,56,222,209
1672 jnz NEAR L
$069dec1_loop
_13
1673 db 102,15,56,223,209
1677 movzx ecx,BYTE [16+esi]
1678 movzx edx,BYTE [edi]
1681 mov BYTE [16+edi],dl
1684 jnz NEAR L
$070xts_dec_steal
1685 sub edi,DWORD [112+esp]
1691 movups xmm1
,[16+edx]
1695 db 102,15,56,222,209
1699 jnz NEAR L
$071dec1_loop
_14
1700 db 102,15,56,223,209
1704 mov esp,DWORD [116+esp]
1710 global _aesni_cbc_encrypt
1713 L$
_aesni_cbc_encrypt_begin:
1718 mov esi,DWORD [20+esp]
1720 mov edi,DWORD [24+esp]
1722 mov eax,DWORD [28+esp]
1724 mov edx,DWORD [32+esp]
1725 mov ebp,DWORD [36+esp]
1727 jz NEAR L
$072cbc_abort
1728 cmp DWORD [40+esp],0
1731 mov ecx,DWORD [240+edx]
1733 mov DWORD [16+esp],ebx
1735 je NEAR L
$073cbc_decrypt
1738 jb NEAR L
$074cbc_enc_tail
1740 jmp NEAR L
$075cbc_enc_loop
1746 movups xmm1
,[16+edx]
1751 db 102,15,56,220,209
1755 jnz NEAR L
$076enc
1_loop
_15
1756 db 102,15,56,221,209
1762 jnc NEAR L
$075cbc_enc_loop
1764 jnz NEAR L
$074cbc_enc_tail
1766 jmp NEAR L
$077cbc_ret
1778 jmp NEAR L
$075cbc_enc_loop
1782 jbe NEAR L
$078cbc_dec_tail
1785 jmp NEAR L
$079cbc_dec_loop
6_enter
1791 L
$079cbc_dec_loop
6_enter
:
1793 movdqu xmm3
,[16+esi]
1794 movdqu xmm4
,[32+esi]
1795 movdqu xmm5
,[48+esi]
1796 movdqu xmm6
,[64+esi]
1797 movdqu xmm7
,[80+esi]
1798 call __aesni_decrypt6
1800 movups xmm0
,[16+esi]
1803 movups xmm1
,[32+esi]
1805 movups xmm0
,[48+esi]
1807 movups xmm1
,[64+esi]
1809 movups xmm0
,[80+esi]
1812 movups
[16+edi],xmm3
1814 movups
[32+edi],xmm4
1816 movups
[48+edi],xmm5
1818 movups
[64+edi],xmm6
1821 ja NEAR L
$080cbc_dec_loop
6
1825 jle NEAR L
$081cbc_dec_tail_collected
1832 jbe NEAR L
$082cbc_dec_one
1833 movups xmm3
,[16+esi]
1836 jbe NEAR L
$083cbc_dec_two
1837 movups xmm4
,[32+esi]
1839 jbe NEAR L
$084cbc_dec_three
1840 movups xmm5
,[48+esi]
1842 jbe NEAR L
$085cbc_dec_four
1843 movups xmm6
,[64+esi]
1847 call __aesni_decrypt6
1849 movups xmm0
,[16+esi]
1852 movups xmm1
,[32+esi]
1854 movups xmm0
,[48+esi]
1856 movups xmm7
,[64+esi]
1859 movups
[16+edi],xmm3
1860 movups
[32+edi],xmm4
1861 movups
[48+edi],xmm5
1865 jmp NEAR L
$081cbc_dec_tail_collected
1869 movups xmm1
,[16+edx]
1873 db 102,15,56,222,209
1877 jnz NEAR L
$086dec1_loop
_16
1878 db 102,15,56,223,209
1882 jmp NEAR L
$081cbc_dec_tail_collected
1885 call __aesni_decrypt2
1893 jmp NEAR L
$081cbc_dec_tail_collected
1896 call __aesni_decrypt3
1902 movups
[16+edi],xmm3
1904 movups xmm7
,[32+esi]
1906 jmp NEAR L
$081cbc_dec_tail_collected
1909 call __aesni_decrypt4
1910 movups xmm1
,[16+esi]
1911 movups xmm0
,[32+esi]
1913 movups xmm7
,[48+esi]
1917 movups
[16+edi],xmm3
1919 movups
[32+edi],xmm4
1923 L
$081cbc_dec_tail_collected
:
1925 jnz NEAR L
$087cbc_dec_tail_partial
1927 jmp NEAR L
$077cbc_ret
1929 L
$087cbc_dec_tail_partial
:
1936 mov esp,DWORD [16+esp]
1937 mov ebp,DWORD [36+esp]
1946 __aesni_set_encrypt_key:
1948 jz NEAR L
$088bad_pointer
1950 jz NEAR L
$088bad_pointer
1955 je NEAR L
$08914rounds
1957 je NEAR L
$09012rounds
1959 jne NEAR L
$091bad_keybits
1963 movups
[edx-16],xmm0
1964 db 102,15,58,223,200,1
1965 call L
$093key_128_cold
1966 db 102,15,58,223,200,2
1968 db 102,15,58,223,200,4
1970 db 102,15,58,223,200,8
1972 db 102,15,58,223,200,16
1974 db 102,15,58,223,200,32
1976 db 102,15,58,223,200,64
1978 db 102,15,58,223,200,128
1980 db 102,15,58,223,200,27
1982 db 102,15,58,223,200,54
1985 mov DWORD [80+edx],ecx
1995 shufps xmm4
,xmm0
,140
1997 shufps xmm1
,xmm1
,255
2004 movups
[edx-16],xmm0
2005 db 102,15,58,223,202,1
2006 call L
$095key_192a_cold
2007 db 102,15,58,223,202,2
2009 db 102,15,58,223,202,4
2011 db 102,15,58,223,202,8
2013 db 102,15,58,223,202,16
2015 db 102,15,58,223,202,32
2017 db 102,15,58,223,202,64
2019 db 102,15,58,223,202,128
2022 mov DWORD [48+edx],ecx
2036 shufps xmm4
,xmm0
,140
2042 pshufd xmm3
,xmm0
,255
2051 movups
[16+edx],xmm3
2053 jmp NEAR L
$098key_192b_warm
2056 movups xmm2
,[16+eax]
2059 movups
[edx-32],xmm0
2060 movups
[edx-16],xmm2
2061 db 102,15,58,223,202,1
2062 call L
$099key_256a_cold
2063 db 102,15,58,223,200,1
2065 db 102,15,58,223,202,2
2067 db 102,15,58,223,200,2
2069 db 102,15,58,223,202,4
2071 db 102,15,58,223,200,4
2073 db 102,15,58,223,202,8
2075 db 102,15,58,223,200,8
2077 db 102,15,58,223,202,16
2079 db 102,15,58,223,200,16
2081 db 102,15,58,223,202,32
2083 db 102,15,58,223,200,32
2085 db 102,15,58,223,202,64
2088 mov DWORD [16+edx],ecx
2098 shufps xmm4
,xmm0
,140
2100 shufps xmm1
,xmm1
,255
2109 shufps xmm4
,xmm2
,140
2111 shufps xmm1
,xmm1
,170
2122 global _aesni_set_encrypt_key
2124 _aesni_set_encrypt_key:
2125 L$
_aesni_set_encrypt_key_begin:
2126 mov eax,DWORD [4+esp]
2127 mov ecx,DWORD [8+esp]
2128 mov edx,DWORD [12+esp]
2129 call __aesni_set_encrypt_key
2131 global _aesni_set_decrypt_key
2133 _aesni_set_decrypt_key:
2134 L$
_aesni_set_decrypt_key_begin:
2135 mov eax,DWORD [4+esp]
2136 mov ecx,DWORD [8+esp]
2137 mov edx,DWORD [12+esp]
2138 call __aesni_set_encrypt_key
2139 mov edx,DWORD [12+esp]
2142 jnz NEAR L
$102dec_key_ret
2143 lea eax,[16+ecx*1+edx]
2150 L
$103dec_key_inverse
:
2153 db 102,15,56,219,192
2154 db 102,15,56,219,201
2157 movups
[16+eax],xmm0
2158 movups
[edx-16],xmm1
2160 ja NEAR L
$103dec_key_inverse
2162 db 102,15,56,219,192
2167 db 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
2168 db 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
2169 db 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2170 db 115,108,46,111,114,103,62,0