5 section .text code
align=64
16 movdqa xmm8
,XMMWORD
[rax
]
18 movdqa xmm7
,XMMWORD
[80+r11
]
35 _bsaes_encrypt8_bitslice:
36 movdqa xmm7
,XMMWORD
[r11
]
37 movdqa xmm8
,XMMWORD
[16+r11
]
66 movdqa xmm7
,XMMWORD
[32+r11
]
127 pxor xmm15
,XMMWORD
[rax
]
128 pxor xmm0
,XMMWORD
[16+rax
]
129 pxor xmm1
,XMMWORD
[32+rax
]
130 pxor xmm2
,XMMWORD
[48+rax
]
131 DB 102,68,15,56,0,255
133 pxor xmm3
,XMMWORD
[64+rax
]
134 pxor xmm4
,XMMWORD
[80+rax
]
137 pxor xmm5
,XMMWORD
[96+rax
]
138 pxor xmm6
,XMMWORD
[112+rax
]
332 pshufd xmm7
,xmm15
,0x93
333 pshufd xmm8
,xmm0
,0x93
335 pshufd xmm9
,xmm3
,0x93
337 pshufd xmm10
,xmm5
,0x93
339 pshufd xmm11
,xmm2
,0x93
341 pshufd xmm12
,xmm6
,0x93
343 pshufd xmm13
,xmm1
,0x93
345 pshufd xmm14
,xmm4
,0x93
352 pshufd xmm15
,xmm15
,0x4E
354 pshufd xmm0
,xmm0
,0x4E
360 pshufd xmm7
,xmm2
,0x4E
362 pshufd xmm8
,xmm6
,0x4E
364 pshufd xmm2
,xmm5
,0x4E
366 pshufd xmm6
,xmm4
,0x4E
368 pshufd xmm5
,xmm1
,0x4E
370 pshufd xmm1
,xmm3
,0x4E
378 movdqa xmm7
,XMMWORD
[48+r11
]
380 movdqa xmm7
,XMMWORD
[64+r11
]
384 movdqa xmm7
,XMMWORD
[r11
]
385 movdqa xmm8
,XMMWORD
[16+r11
]
414 movdqa xmm7
,XMMWORD
[32+r11
]
471 movdqa xmm7
,XMMWORD
[rax
]
488 movdqa xmm8
,XMMWORD
[rax
]
490 movdqa xmm7
,XMMWORD
[((-48))+r11
]
495 DB 102,68,15,56,0,255
507 movdqa xmm7
,XMMWORD
[r11
]
508 movdqa xmm8
,XMMWORD
[16+r11
]
537 movdqa xmm7
,XMMWORD
[32+r11
]
598 pxor xmm15
,XMMWORD
[rax
]
599 pxor xmm0
,XMMWORD
[16+rax
]
600 pxor xmm1
,XMMWORD
[32+rax
]
601 pxor xmm2
,XMMWORD
[48+rax
]
602 DB 102,68,15,56,0,255
604 pxor xmm3
,XMMWORD
[64+rax
]
605 pxor xmm4
,XMMWORD
[80+rax
]
608 pxor xmm5
,XMMWORD
[96+rax
]
609 pxor xmm6
,XMMWORD
[112+rax
]
804 pshufd xmm7
,xmm15
,0x4E
805 pshufd xmm13
,xmm2
,0x4E
807 pshufd xmm14
,xmm4
,0x4E
809 pshufd xmm8
,xmm0
,0x4E
811 pshufd xmm9
,xmm5
,0x4E
813 pshufd xmm10
,xmm3
,0x4E
817 pshufd xmm11
,xmm1
,0x4E
821 pshufd xmm12
,xmm6
,0x4E
835 pshufd xmm7
,xmm15
,0x93
836 pshufd xmm8
,xmm0
,0x93
838 pshufd xmm9
,xmm5
,0x93
840 pshufd xmm10
,xmm3
,0x93
842 pshufd xmm11
,xmm1
,0x93
844 pshufd xmm12
,xmm6
,0x93
846 pshufd xmm13
,xmm2
,0x93
848 pshufd xmm14
,xmm4
,0x93
855 pshufd xmm15
,xmm15
,0x4E
857 pshufd xmm0
,xmm0
,0x4E
863 pshufd xmm7
,xmm1
,0x4E
865 pshufd xmm8
,xmm6
,0x4E
867 pshufd xmm1
,xmm3
,0x4E
869 pshufd xmm6
,xmm4
,0x4E
871 pshufd xmm3
,xmm2
,0x4E
873 pshufd xmm2
,xmm5
,0x4E
884 movdqa xmm7
,XMMWORD
[((-16))+r11
]
886 movdqa xmm7
,XMMWORD
[((-32))+r11
]
890 movdqa xmm7
,XMMWORD
[r11
]
891 movdqa xmm8
,XMMWORD
[16+r11
]
920 movdqa xmm7
,XMMWORD
[32+r11
]
977 movdqa xmm7
,XMMWORD
[rax
]
992 movdqu xmm7
,XMMWORD
[rcx
]
994 movdqa xmm0
,XMMWORD
[r11
]
995 movdqa xmm1
,XMMWORD
[16+r11
]
996 movdqa xmm2
,XMMWORD
[32+r11
]
997 movdqa xmm3
,XMMWORD
[48+r11
]
998 movdqa xmm4
,XMMWORD
[64+r11
]
1001 movdqu xmm6
,XMMWORD
[rcx
]
1002 movdqa XMMWORD
[rax
],xmm7
1005 jmp NEAR $L$key_loop
1038 movdqa XMMWORD
[rax
],xmm8
1041 movdqa XMMWORD
[16+rax
],xmm9
1048 movdqa XMMWORD
[32+rax
],xmm10
1051 movdqa XMMWORD
[48+rax
],xmm11
1054 movdqu xmm6
,XMMWORD
[rcx
]
1058 movdqa XMMWORD
[64+rax
],xmm12
1059 movdqa XMMWORD
[80+rax
],xmm13
1060 movdqa XMMWORD
[96+rax
],xmm14
1061 movdqa XMMWORD
[112+rax
],xmm15
1064 jnz NEAR $L$key_loop
1066 movdqa xmm7
,XMMWORD
[80+r11
]
1068 DB 0F3h
,0C3h
;repret
1070 EXTERN asm_AES_cbc_encrypt
1071 global bsaes_cbc_encrypt
1075 mov r11d
,DWORD[48+rsp
]
1077 jne NEAR asm_AES_cbc_encrypt
1079 jb NEAR asm_AES_cbc_encrypt
1082 $L
$cbc_dec_prologue
:
1089 lea rsp
,[((-72))+rsp
]
1090 mov r10
,QWORD[160+rsp
]
1091 lea rsp
,[((-160))+rsp
]
1092 movaps XMMWORD
[64+rsp
],xmm6
1093 movaps XMMWORD
[80+rsp
],xmm7
1094 movaps XMMWORD
[96+rsp
],xmm8
1095 movaps XMMWORD
[112+rsp
],xmm9
1096 movaps XMMWORD
[128+rsp
],xmm10
1097 movaps XMMWORD
[144+rsp
],xmm11
1098 movaps XMMWORD
[160+rsp
],xmm12
1099 movaps XMMWORD
[176+rsp
],xmm13
1100 movaps XMMWORD
[192+rsp
],xmm14
1101 movaps XMMWORD
[208+rsp
],xmm15
1104 mov eax,DWORD[240+r9
]
1120 call _bsaes_key_convert
1121 pxor xmm7
,XMMWORD
[rsp
]
1122 movdqa XMMWORD
[rax
],xmm6
1123 movdqa XMMWORD
[rsp
],xmm7
1125 movdqu xmm14
,XMMWORD
[rbx
]
1128 movdqu xmm15
,XMMWORD
[r12
]
1129 movdqu xmm0
,XMMWORD
[16+r12
]
1130 movdqu xmm1
,XMMWORD
[32+r12
]
1131 movdqu xmm2
,XMMWORD
[48+r12
]
1132 movdqu xmm3
,XMMWORD
[64+r12
]
1133 movdqu xmm4
,XMMWORD
[80+r12
]
1135 movdqu xmm5
,XMMWORD
[96+r12
]
1137 movdqu xmm6
,XMMWORD
[112+r12
]
1138 movdqa XMMWORD
[32+rbp
],xmm14
1140 call _bsaes_decrypt8
1142 pxor xmm15
,XMMWORD
[32+rbp
]
1143 movdqu xmm7
,XMMWORD
[r12
]
1144 movdqu xmm8
,XMMWORD
[16+r12
]
1146 movdqu xmm9
,XMMWORD
[32+r12
]
1148 movdqu xmm10
,XMMWORD
[48+r12
]
1150 movdqu xmm11
,XMMWORD
[64+r12
]
1152 movdqu xmm12
,XMMWORD
[80+r12
]
1154 movdqu xmm13
,XMMWORD
[96+r12
]
1156 movdqu xmm14
,XMMWORD
[112+r12
]
1158 movdqu XMMWORD
[r13
],xmm15
1160 movdqu XMMWORD
[16+r13
],xmm0
1161 movdqu XMMWORD
[32+r13
],xmm5
1162 movdqu XMMWORD
[48+r13
],xmm3
1163 movdqu XMMWORD
[64+r13
],xmm1
1164 movdqu XMMWORD
[80+r13
],xmm6
1165 movdqu XMMWORD
[96+r13
],xmm2
1166 movdqu XMMWORD
[112+r13
],xmm4
1169 jnc NEAR $L
$cbc_dec_loop
1172 jz NEAR $L
$cbc_dec_done
1174 movdqu xmm15
,XMMWORD
[r12
]
1178 jb NEAR $L
$cbc_dec_one
1179 movdqu xmm0
,XMMWORD
[16+r12
]
1180 je NEAR $L
$cbc_dec_two
1181 movdqu xmm1
,XMMWORD
[32+r12
]
1183 jb NEAR $L
$cbc_dec_three
1184 movdqu xmm2
,XMMWORD
[48+r12
]
1185 je NEAR $L
$cbc_dec_four
1186 movdqu xmm3
,XMMWORD
[64+r12
]
1188 jb NEAR $L
$cbc_dec_five
1189 movdqu xmm4
,XMMWORD
[80+r12
]
1190 je NEAR $L
$cbc_dec_six
1191 movdqu xmm5
,XMMWORD
[96+r12
]
1192 movdqa XMMWORD
[32+rbp
],xmm14
1193 call _bsaes_decrypt8
1194 pxor xmm15
,XMMWORD
[32+rbp
]
1195 movdqu xmm7
,XMMWORD
[r12
]
1196 movdqu xmm8
,XMMWORD
[16+r12
]
1198 movdqu xmm9
,XMMWORD
[32+r12
]
1200 movdqu xmm10
,XMMWORD
[48+r12
]
1202 movdqu xmm11
,XMMWORD
[64+r12
]
1204 movdqu xmm12
,XMMWORD
[80+r12
]
1206 movdqu xmm14
,XMMWORD
[96+r12
]
1208 movdqu XMMWORD
[r13
],xmm15
1209 movdqu XMMWORD
[16+r13
],xmm0
1210 movdqu XMMWORD
[32+r13
],xmm5
1211 movdqu XMMWORD
[48+r13
],xmm3
1212 movdqu XMMWORD
[64+r13
],xmm1
1213 movdqu XMMWORD
[80+r13
],xmm6
1214 movdqu XMMWORD
[96+r13
],xmm2
1215 jmp NEAR $L
$cbc_dec_done
1218 movdqa XMMWORD
[32+rbp
],xmm14
1219 call _bsaes_decrypt8
1220 pxor xmm15
,XMMWORD
[32+rbp
]
1221 movdqu xmm7
,XMMWORD
[r12
]
1222 movdqu xmm8
,XMMWORD
[16+r12
]
1224 movdqu xmm9
,XMMWORD
[32+r12
]
1226 movdqu xmm10
,XMMWORD
[48+r12
]
1228 movdqu xmm11
,XMMWORD
[64+r12
]
1230 movdqu xmm14
,XMMWORD
[80+r12
]
1232 movdqu XMMWORD
[r13
],xmm15
1233 movdqu XMMWORD
[16+r13
],xmm0
1234 movdqu XMMWORD
[32+r13
],xmm5
1235 movdqu XMMWORD
[48+r13
],xmm3
1236 movdqu XMMWORD
[64+r13
],xmm1
1237 movdqu XMMWORD
[80+r13
],xmm6
1238 jmp NEAR $L
$cbc_dec_done
1241 movdqa XMMWORD
[32+rbp
],xmm14
1242 call _bsaes_decrypt8
1243 pxor xmm15
,XMMWORD
[32+rbp
]
1244 movdqu xmm7
,XMMWORD
[r12
]
1245 movdqu xmm8
,XMMWORD
[16+r12
]
1247 movdqu xmm9
,XMMWORD
[32+r12
]
1249 movdqu xmm10
,XMMWORD
[48+r12
]
1251 movdqu xmm14
,XMMWORD
[64+r12
]
1253 movdqu XMMWORD
[r13
],xmm15
1254 movdqu XMMWORD
[16+r13
],xmm0
1255 movdqu XMMWORD
[32+r13
],xmm5
1256 movdqu XMMWORD
[48+r13
],xmm3
1257 movdqu XMMWORD
[64+r13
],xmm1
1258 jmp NEAR $L
$cbc_dec_done
1261 movdqa XMMWORD
[32+rbp
],xmm14
1262 call _bsaes_decrypt8
1263 pxor xmm15
,XMMWORD
[32+rbp
]
1264 movdqu xmm7
,XMMWORD
[r12
]
1265 movdqu xmm8
,XMMWORD
[16+r12
]
1267 movdqu xmm9
,XMMWORD
[32+r12
]
1269 movdqu xmm14
,XMMWORD
[48+r12
]
1271 movdqu XMMWORD
[r13
],xmm15
1272 movdqu XMMWORD
[16+r13
],xmm0
1273 movdqu XMMWORD
[32+r13
],xmm5
1274 movdqu XMMWORD
[48+r13
],xmm3
1275 jmp NEAR $L
$cbc_dec_done
1278 movdqa XMMWORD
[32+rbp
],xmm14
1279 call _bsaes_decrypt8
1280 pxor xmm15
,XMMWORD
[32+rbp
]
1281 movdqu xmm7
,XMMWORD
[r12
]
1282 movdqu xmm8
,XMMWORD
[16+r12
]
1284 movdqu xmm14
,XMMWORD
[32+r12
]
1286 movdqu XMMWORD
[r13
],xmm15
1287 movdqu XMMWORD
[16+r13
],xmm0
1288 movdqu XMMWORD
[32+r13
],xmm5
1289 jmp NEAR $L
$cbc_dec_done
1292 movdqa XMMWORD
[32+rbp
],xmm14
1293 call _bsaes_decrypt8
1294 pxor xmm15
,XMMWORD
[32+rbp
]
1295 movdqu xmm7
,XMMWORD
[r12
]
1296 movdqu xmm14
,XMMWORD
[16+r12
]
1298 movdqu XMMWORD
[r13
],xmm15
1299 movdqu XMMWORD
[16+r13
],xmm0
1300 jmp NEAR $L
$cbc_dec_done
1306 call asm_AES_decrypt
1307 pxor xmm14
,XMMWORD
[32+rbp
]
1308 movdqu XMMWORD
[r13
],xmm14
1312 movdqu XMMWORD
[rbx
],xmm14
1316 movdqa XMMWORD
[rax
],xmm0
1317 movdqa XMMWORD
[16+rax
],xmm0
1320 ja NEAR $L
$cbc_dec_bzero
1323 movaps xmm6
,XMMWORD
[64+rbp
]
1324 movaps xmm7
,XMMWORD
[80+rbp
]
1325 movaps xmm8
,XMMWORD
[96+rbp
]
1326 movaps xmm9
,XMMWORD
[112+rbp
]
1327 movaps xmm10
,XMMWORD
[128+rbp
]
1328 movaps xmm11
,XMMWORD
[144+rbp
]
1329 movaps xmm12
,XMMWORD
[160+rbp
]
1330 movaps xmm13
,XMMWORD
[176+rbp
]
1331 movaps xmm14
,XMMWORD
[192+rbp
]
1332 movaps xmm15
,XMMWORD
[208+rbp
]
1334 mov r15
,QWORD[72+rsp
]
1335 mov r14
,QWORD[80+rsp
]
1336 mov r13
,QWORD[88+rsp
]
1337 mov r12
,QWORD[96+rsp
]
1338 mov rbx
,QWORD[104+rsp
]
1339 mov rax
,QWORD[112+rsp
]
1342 $L
$cbc_dec_epilogue
:
1343 DB 0F3h
,0C3h
;repret
1346 global bsaes_ctr32_encrypt_blocks
1349 bsaes_ctr32_encrypt_blocks:
1351 $L
$ctr_enc_prologue
:
1358 lea rsp
,[((-72))+rsp
]
1359 mov r10
,QWORD[160+rsp
]
1360 lea rsp
,[((-160))+rsp
]
1361 movaps XMMWORD
[64+rsp
],xmm6
1362 movaps XMMWORD
[80+rsp
],xmm7
1363 movaps XMMWORD
[96+rsp
],xmm8
1364 movaps XMMWORD
[112+rsp
],xmm9
1365 movaps XMMWORD
[128+rsp
],xmm10
1366 movaps XMMWORD
[144+rsp
],xmm11
1367 movaps XMMWORD
[160+rsp
],xmm12
1368 movaps XMMWORD
[176+rsp
],xmm13
1369 movaps XMMWORD
[192+rsp
],xmm14
1370 movaps XMMWORD
[208+rsp
],xmm15
1373 movdqu xmm0
,XMMWORD
[r10
]
1374 mov eax,DWORD[240+r9
]
1379 movdqa XMMWORD
[32+rbp
],xmm0
1381 jb NEAR $L
$ctr_enc_short
1391 call _bsaes_key_convert
1393 movdqa XMMWORD
[rax
],xmm7
1395 movdqa xmm8
,XMMWORD
[rsp
]
1397 movdqa xmm15
,XMMWORD
[32+rbp
]
1398 movdqa xmm7
,XMMWORD
[((-32))+r11
]
1399 DB 102,68,15,56,0,199
1400 DB 102,68,15,56,0,255
1401 movdqa XMMWORD
[rsp
],xmm8
1402 jmp NEAR $L
$ctr_enc_loop
1405 movdqa XMMWORD
[32+rbp
],xmm15
1408 paddd xmm0
,XMMWORD
[r11
]
1410 paddd xmm1
,XMMWORD
[16+r11
]
1412 paddd xmm2
,XMMWORD
[32+r11
]
1414 paddd xmm3
,XMMWORD
[48+r11
]
1416 paddd xmm4
,XMMWORD
[64+r11
]
1418 paddd xmm5
,XMMWORD
[80+r11
]
1419 paddd xmm6
,XMMWORD
[96+r11
]
1423 movdqa xmm8
,XMMWORD
[rsp
]
1425 movdqa xmm7
,XMMWORD
[((-16))+r11
]
1430 DB 102,68,15,56,0,255
1445 call _bsaes_encrypt8_bitslice
1448 jc NEAR $L
$ctr_enc_loop_done
1450 movdqu xmm7
,XMMWORD
[r12
]
1451 movdqu xmm8
,XMMWORD
[16+r12
]
1452 movdqu xmm9
,XMMWORD
[32+r12
]
1453 movdqu xmm10
,XMMWORD
[48+r12
]
1454 movdqu xmm11
,XMMWORD
[64+r12
]
1455 movdqu xmm12
,XMMWORD
[80+r12
]
1456 movdqu xmm13
,XMMWORD
[96+r12
]
1457 movdqu xmm14
,XMMWORD
[112+r12
]
1460 movdqa xmm15
,XMMWORD
[32+rbp
]
1462 movdqu XMMWORD
[r13
],xmm7
1464 movdqu XMMWORD
[16+r13
],xmm0
1466 movdqu XMMWORD
[32+r13
],xmm3
1468 movdqu XMMWORD
[48+r13
],xmm5
1470 movdqu XMMWORD
[64+r13
],xmm2
1472 movdqu XMMWORD
[80+r13
],xmm6
1474 movdqu XMMWORD
[96+r13
],xmm1
1476 movdqu XMMWORD
[112+r13
],xmm4
1478 paddd xmm15
,XMMWORD
[112+r11
]
1479 jnz NEAR $L
$ctr_enc_loop
1481 jmp NEAR $L
$ctr_enc_done
1483 $L
$ctr_enc_loop_done
:
1485 movdqu xmm7
,XMMWORD
[r12
]
1487 movdqu XMMWORD
[r13
],xmm15
1489 jb NEAR $L
$ctr_enc_done
1490 movdqu xmm8
,XMMWORD
[16+r12
]
1492 movdqu XMMWORD
[16+r13
],xmm0
1493 je NEAR $L
$ctr_enc_done
1494 movdqu xmm9
,XMMWORD
[32+r12
]
1496 movdqu XMMWORD
[32+r13
],xmm3
1498 jb NEAR $L
$ctr_enc_done
1499 movdqu xmm10
,XMMWORD
[48+r12
]
1501 movdqu XMMWORD
[48+r13
],xmm5
1502 je NEAR $L
$ctr_enc_done
1503 movdqu xmm11
,XMMWORD
[64+r12
]
1505 movdqu XMMWORD
[64+r13
],xmm2
1507 jb NEAR $L
$ctr_enc_done
1508 movdqu xmm12
,XMMWORD
[80+r12
]
1510 movdqu XMMWORD
[80+r13
],xmm6
1511 je NEAR $L
$ctr_enc_done
1512 movdqu xmm13
,XMMWORD
[96+r12
]
1514 movdqu XMMWORD
[96+r13
],xmm1
1515 jmp NEAR $L
$ctr_enc_done
1522 call asm_AES_encrypt
1523 movdqu xmm0
,XMMWORD
[r12
]
1525 mov eax,DWORD[44+rbp
]
1527 pxor xmm0
,XMMWORD
[48+rbp
]
1529 movdqu XMMWORD
[r13
],xmm0
1532 mov DWORD[44+rsp
],eax
1534 jnz NEAR $L
$ctr_enc_short
1540 movdqa XMMWORD
[rax
],xmm0
1541 movdqa XMMWORD
[16+rax
],xmm0
1544 ja NEAR $L
$ctr_enc_bzero
1547 movaps xmm6
,XMMWORD
[64+rbp
]
1548 movaps xmm7
,XMMWORD
[80+rbp
]
1549 movaps xmm8
,XMMWORD
[96+rbp
]
1550 movaps xmm9
,XMMWORD
[112+rbp
]
1551 movaps xmm10
,XMMWORD
[128+rbp
]
1552 movaps xmm11
,XMMWORD
[144+rbp
]
1553 movaps xmm12
,XMMWORD
[160+rbp
]
1554 movaps xmm13
,XMMWORD
[176+rbp
]
1555 movaps xmm14
,XMMWORD
[192+rbp
]
1556 movaps xmm15
,XMMWORD
[208+rbp
]
1558 mov r15
,QWORD[72+rsp
]
1559 mov r14
,QWORD[80+rsp
]
1560 mov r13
,QWORD[88+rsp
]
1561 mov r12
,QWORD[96+rsp
]
1562 mov rbx
,QWORD[104+rsp
]
1563 mov rax
,QWORD[112+rsp
]
1566 $L
$ctr_enc_epilogue
:
1567 DB 0F3h
,0C3h
;repret
1569 global bsaes_xts_encrypt
1574 $L$
xts_enc_prologue:
1581 lea rsp
,[((-72))+rsp
]
1582 mov r10
,QWORD[160+rsp
]
1583 mov r11
,QWORD[168+rsp
]
1584 lea rsp
,[((-160))+rsp
]
1585 movaps XMMWORD
[64+rsp
],xmm6
1586 movaps XMMWORD
[80+rsp
],xmm7
1587 movaps XMMWORD
[96+rsp
],xmm8
1588 movaps XMMWORD
[112+rsp
],xmm9
1589 movaps XMMWORD
[128+rsp
],xmm10
1590 movaps XMMWORD
[144+rsp
],xmm11
1591 movaps XMMWORD
[160+rsp
],xmm12
1592 movaps XMMWORD
[176+rsp
],xmm13
1593 movaps XMMWORD
[192+rsp
],xmm14
1594 movaps XMMWORD
[208+rsp
],xmm15
1605 call asm_AES_encrypt
1607 mov eax,DWORD[240+r15
]
1618 call _bsaes_key_convert
1620 movdqa XMMWORD
[rax
],xmm7
1624 movdqa xmm6
,XMMWORD
[32+rbp
]
1627 movdqa xmm12
,XMMWORD
[$L$xts_magic
]
1631 jc NEAR $L$xts_enc_short
1632 jmp NEAR $L$xts_enc_loop
1636 pshufd xmm13
,xmm14
,0x13
1639 movdqa XMMWORD
[rsp
],xmm6
1644 pshufd xmm13
,xmm14
,0x13
1647 movdqa XMMWORD
[16+rsp
],xmm6
1652 movdqu xmm7
,XMMWORD
[r12
]
1653 pshufd xmm13
,xmm14
,0x13
1656 movdqa XMMWORD
[32+rsp
],xmm6
1661 movdqu xmm8
,XMMWORD
[16+r12
]
1663 pshufd xmm13
,xmm14
,0x13
1666 movdqa XMMWORD
[48+rsp
],xmm6
1671 movdqu xmm9
,XMMWORD
[32+r12
]
1673 pshufd xmm13
,xmm14
,0x13
1676 movdqa XMMWORD
[64+rsp
],xmm6
1681 movdqu xmm10
,XMMWORD
[48+r12
]
1683 pshufd xmm13
,xmm14
,0x13
1686 movdqa XMMWORD
[80+rsp
],xmm6
1691 movdqu xmm11
,XMMWORD
[64+r12
]
1693 pshufd xmm13
,xmm14
,0x13
1696 movdqa XMMWORD
[96+rsp
],xmm6
1701 movdqu xmm12
,XMMWORD
[80+r12
]
1703 movdqu xmm13
,XMMWORD
[96+r12
]
1705 movdqu xmm14
,XMMWORD
[112+r12
]
1707 movdqa XMMWORD
[112+rsp
],xmm6
1713 call _bsaes_encrypt8
1715 pxor xmm15
,XMMWORD
[rsp
]
1716 pxor xmm0
,XMMWORD
[16+rsp
]
1717 movdqu XMMWORD
[r13
],xmm15
1718 pxor xmm3
,XMMWORD
[32+rsp
]
1719 movdqu XMMWORD
[16+r13
],xmm0
1720 pxor xmm5
,XMMWORD
[48+rsp
]
1721 movdqu XMMWORD
[32+r13
],xmm3
1722 pxor xmm2
,XMMWORD
[64+rsp
]
1723 movdqu XMMWORD
[48+r13
],xmm5
1724 pxor xmm6
,XMMWORD
[80+rsp
]
1725 movdqu XMMWORD
[64+r13
],xmm2
1726 pxor xmm1
,XMMWORD
[96+rsp
]
1727 movdqu XMMWORD
[80+r13
],xmm6
1728 pxor xmm4
,XMMWORD
[112+rsp
]
1729 movdqu XMMWORD
[96+r13
],xmm1
1730 movdqu XMMWORD
[112+r13
],xmm4
1733 movdqa xmm6
,XMMWORD
[112+rsp
]
1735 movdqa xmm12
,XMMWORD
[$L$xts_magic
]
1737 pshufd xmm13
,xmm14
,0x13
1745 jnc NEAR $L$xts_enc_loop
1749 jz NEAR $L$xts_enc_done
1750 pshufd xmm13
,xmm14
,0x13
1753 movdqa XMMWORD
[rsp
],xmm6
1758 pshufd xmm13
,xmm14
,0x13
1761 movdqa XMMWORD
[16+rsp
],xmm6
1766 movdqu xmm7
,XMMWORD
[r12
]
1768 je NEAR $L$xts_enc_1
1769 pshufd xmm13
,xmm14
,0x13
1772 movdqa XMMWORD
[32+rsp
],xmm6
1777 movdqu xmm8
,XMMWORD
[16+r12
]
1779 je NEAR $L$xts_enc_2
1781 pshufd xmm13
,xmm14
,0x13
1784 movdqa XMMWORD
[48+rsp
],xmm6
1789 movdqu xmm9
,XMMWORD
[32+r12
]
1791 je NEAR $L$xts_enc_3
1793 pshufd xmm13
,xmm14
,0x13
1796 movdqa XMMWORD
[64+rsp
],xmm6
1801 movdqu xmm10
,XMMWORD
[48+r12
]
1803 je NEAR $L$xts_enc_4
1805 pshufd xmm13
,xmm14
,0x13
1808 movdqa XMMWORD
[80+rsp
],xmm6
1813 movdqu xmm11
,XMMWORD
[64+r12
]
1815 je NEAR $L$xts_enc_5
1817 pshufd xmm13
,xmm14
,0x13
1820 movdqa XMMWORD
[96+rsp
],xmm6
1825 movdqu xmm12
,XMMWORD
[80+r12
]
1827 je NEAR $L$xts_enc_6
1829 movdqu xmm13
,XMMWORD
[96+r12
]
1831 movdqa XMMWORD
[112+rsp
],xmm6
1837 call _bsaes_encrypt8
1839 pxor xmm15
,XMMWORD
[rsp
]
1840 pxor xmm0
,XMMWORD
[16+rsp
]
1841 movdqu XMMWORD
[r13
],xmm15
1842 pxor xmm3
,XMMWORD
[32+rsp
]
1843 movdqu XMMWORD
[16+r13
],xmm0
1844 pxor xmm5
,XMMWORD
[48+rsp
]
1845 movdqu XMMWORD
[32+r13
],xmm3
1846 pxor xmm2
,XMMWORD
[64+rsp
]
1847 movdqu XMMWORD
[48+r13
],xmm5
1848 pxor xmm6
,XMMWORD
[80+rsp
]
1849 movdqu XMMWORD
[64+r13
],xmm2
1850 pxor xmm1
,XMMWORD
[96+rsp
]
1851 movdqu XMMWORD
[80+r13
],xmm6
1852 movdqu XMMWORD
[96+r13
],xmm1
1855 movdqa xmm6
,XMMWORD
[112+rsp
]
1856 jmp NEAR $L$xts_enc_done
1865 call _bsaes_encrypt8
1867 pxor xmm15
,XMMWORD
[rsp
]
1868 pxor xmm0
,XMMWORD
[16+rsp
]
1869 movdqu XMMWORD
[r13
],xmm15
1870 pxor xmm3
,XMMWORD
[32+rsp
]
1871 movdqu XMMWORD
[16+r13
],xmm0
1872 pxor xmm5
,XMMWORD
[48+rsp
]
1873 movdqu XMMWORD
[32+r13
],xmm3
1874 pxor xmm2
,XMMWORD
[64+rsp
]
1875 movdqu XMMWORD
[48+r13
],xmm5
1876 pxor xmm6
,XMMWORD
[80+rsp
]
1877 movdqu XMMWORD
[64+r13
],xmm2
1878 movdqu XMMWORD
[80+r13
],xmm6
1881 movdqa xmm6
,XMMWORD
[96+rsp
]
1882 jmp NEAR $L$xts_enc_done
1891 call _bsaes_encrypt8
1893 pxor xmm15
,XMMWORD
[rsp
]
1894 pxor xmm0
,XMMWORD
[16+rsp
]
1895 movdqu XMMWORD
[r13
],xmm15
1896 pxor xmm3
,XMMWORD
[32+rsp
]
1897 movdqu XMMWORD
[16+r13
],xmm0
1898 pxor xmm5
,XMMWORD
[48+rsp
]
1899 movdqu XMMWORD
[32+r13
],xmm3
1900 pxor xmm2
,XMMWORD
[64+rsp
]
1901 movdqu XMMWORD
[48+r13
],xmm5
1902 movdqu XMMWORD
[64+r13
],xmm2
1905 movdqa xmm6
,XMMWORD
[80+rsp
]
1906 jmp NEAR $L$xts_enc_done
1915 call _bsaes_encrypt8
1917 pxor xmm15
,XMMWORD
[rsp
]
1918 pxor xmm0
,XMMWORD
[16+rsp
]
1919 movdqu XMMWORD
[r13
],xmm15
1920 pxor xmm3
,XMMWORD
[32+rsp
]
1921 movdqu XMMWORD
[16+r13
],xmm0
1922 pxor xmm5
,XMMWORD
[48+rsp
]
1923 movdqu XMMWORD
[32+r13
],xmm3
1924 movdqu XMMWORD
[48+r13
],xmm5
1927 movdqa xmm6
,XMMWORD
[64+rsp
]
1928 jmp NEAR $L$xts_enc_done
1937 call _bsaes_encrypt8
1939 pxor xmm15
,XMMWORD
[rsp
]
1940 pxor xmm0
,XMMWORD
[16+rsp
]
1941 movdqu XMMWORD
[r13
],xmm15
1942 pxor xmm3
,XMMWORD
[32+rsp
]
1943 movdqu XMMWORD
[16+r13
],xmm0
1944 movdqu XMMWORD
[32+r13
],xmm3
1947 movdqa xmm6
,XMMWORD
[48+rsp
]
1948 jmp NEAR $L$xts_enc_done
1957 call _bsaes_encrypt8
1959 pxor xmm15
,XMMWORD
[rsp
]
1960 pxor xmm0
,XMMWORD
[16+rsp
]
1961 movdqu XMMWORD
[r13
],xmm15
1962 movdqu XMMWORD
[16+r13
],xmm0
1965 movdqa xmm6
,XMMWORD
[32+rsp
]
1966 jmp NEAR $L$xts_enc_done
1971 movdqa XMMWORD
[32+rbp
],xmm7
1975 call asm_AES_encrypt
1976 pxor xmm15
,XMMWORD
[32+rbp
]
1982 movdqu XMMWORD
[r13
],xmm15
1985 movdqa xmm6
,XMMWORD
[16+rsp
]
1989 jz NEAR $L$xts_enc_ret
1994 movzx ecx,BYTE[((-16))+rdx
]
1996 mov BYTE[((-16))+rdx
],al
2000 jnz NEAR $L$xts_enc_steal
2002 movdqu xmm15
,XMMWORD
[((-16))+r13
]
2006 movdqa XMMWORD
[32+rbp
],xmm15
2008 call asm_AES_encrypt
2009 pxor xmm6
,XMMWORD
[32+rbp
]
2010 movdqu XMMWORD
[(-16)+r13
],xmm6
2016 movdqa XMMWORD
[rax
],xmm0
2017 movdqa XMMWORD
[16+rax
],xmm0
2020 ja NEAR $L$xts_enc_bzero
2023 movaps xmm6
,XMMWORD
[64+rbp
]
2024 movaps xmm7
,XMMWORD
[80+rbp
]
2025 movaps xmm8
,XMMWORD
[96+rbp
]
2026 movaps xmm9
,XMMWORD
[112+rbp
]
2027 movaps xmm10
,XMMWORD
[128+rbp
]
2028 movaps xmm11
,XMMWORD
[144+rbp
]
2029 movaps xmm12
,XMMWORD
[160+rbp
]
2030 movaps xmm13
,XMMWORD
[176+rbp
]
2031 movaps xmm14
,XMMWORD
[192+rbp
]
2032 movaps xmm15
,XMMWORD
[208+rbp
]
2034 mov r15
,QWORD[72+rsp
]
2035 mov r14
,QWORD[80+rsp
]
2036 mov r13
,QWORD[88+rsp
]
2037 mov r12
,QWORD[96+rsp
]
2038 mov rbx
,QWORD[104+rsp
]
2039 mov rax
,QWORD[112+rsp
]
2042 $L$
xts_enc_epilogue:
2043 DB 0F3h
,0C3h
;repret
2046 global bsaes_xts_decrypt
2051 $L$
xts_dec_prologue:
2058 lea rsp
,[((-72))+rsp
]
2059 mov r10
,QWORD[160+rsp
]
2060 mov r11
,QWORD[168+rsp
]
2061 lea rsp
,[((-160))+rsp
]
2062 movaps XMMWORD
[64+rsp
],xmm6
2063 movaps XMMWORD
[80+rsp
],xmm7
2064 movaps XMMWORD
[96+rsp
],xmm8
2065 movaps XMMWORD
[112+rsp
],xmm9
2066 movaps XMMWORD
[128+rsp
],xmm10
2067 movaps XMMWORD
[144+rsp
],xmm11
2068 movaps XMMWORD
[160+rsp
],xmm12
2069 movaps XMMWORD
[176+rsp
],xmm13
2070 movaps XMMWORD
[192+rsp
],xmm14
2071 movaps XMMWORD
[208+rsp
],xmm15
2082 call asm_AES_encrypt
2084 mov eax,DWORD[240+r15
]
2095 call _bsaes_key_convert
2096 pxor xmm7
,XMMWORD
[rsp
]
2097 movdqa XMMWORD
[rax
],xmm6
2098 movdqa XMMWORD
[rsp
],xmm7
2108 movdqa xmm6
,XMMWORD
[32+rbp
]
2111 movdqa xmm12
,XMMWORD
[$L$xts_magic
]
2115 jc NEAR $L$xts_dec_short
2116 jmp NEAR $L$xts_dec_loop
2120 pshufd xmm13
,xmm14
,0x13
2123 movdqa XMMWORD
[rsp
],xmm6
2128 pshufd xmm13
,xmm14
,0x13
2131 movdqa XMMWORD
[16+rsp
],xmm6
2136 movdqu xmm7
,XMMWORD
[r12
]
2137 pshufd xmm13
,xmm14
,0x13
2140 movdqa XMMWORD
[32+rsp
],xmm6
2145 movdqu xmm8
,XMMWORD
[16+r12
]
2147 pshufd xmm13
,xmm14
,0x13
2150 movdqa XMMWORD
[48+rsp
],xmm6
2155 movdqu xmm9
,XMMWORD
[32+r12
]
2157 pshufd xmm13
,xmm14
,0x13
2160 movdqa XMMWORD
[64+rsp
],xmm6
2165 movdqu xmm10
,XMMWORD
[48+r12
]
2167 pshufd xmm13
,xmm14
,0x13
2170 movdqa XMMWORD
[80+rsp
],xmm6
2175 movdqu xmm11
,XMMWORD
[64+r12
]
2177 pshufd xmm13
,xmm14
,0x13
2180 movdqa XMMWORD
[96+rsp
],xmm6
2185 movdqu xmm12
,XMMWORD
[80+r12
]
2187 movdqu xmm13
,XMMWORD
[96+r12
]
2189 movdqu xmm14
,XMMWORD
[112+r12
]
2191 movdqa XMMWORD
[112+rsp
],xmm6
2197 call _bsaes_decrypt8
2199 pxor xmm15
,XMMWORD
[rsp
]
2200 pxor xmm0
,XMMWORD
[16+rsp
]
2201 movdqu XMMWORD
[r13
],xmm15
2202 pxor xmm5
,XMMWORD
[32+rsp
]
2203 movdqu XMMWORD
[16+r13
],xmm0
2204 pxor xmm3
,XMMWORD
[48+rsp
]
2205 movdqu XMMWORD
[32+r13
],xmm5
2206 pxor xmm1
,XMMWORD
[64+rsp
]
2207 movdqu XMMWORD
[48+r13
],xmm3
2208 pxor xmm6
,XMMWORD
[80+rsp
]
2209 movdqu XMMWORD
[64+r13
],xmm1
2210 pxor xmm2
,XMMWORD
[96+rsp
]
2211 movdqu XMMWORD
[80+r13
],xmm6
2212 pxor xmm4
,XMMWORD
[112+rsp
]
2213 movdqu XMMWORD
[96+r13
],xmm2
2214 movdqu XMMWORD
[112+r13
],xmm4
2217 movdqa xmm6
,XMMWORD
[112+rsp
]
2219 movdqa xmm12
,XMMWORD
[$L$xts_magic
]
2221 pshufd xmm13
,xmm14
,0x13
2229 jnc NEAR $L$xts_dec_loop
2233 jz NEAR $L$xts_dec_done
2234 pshufd xmm13
,xmm14
,0x13
2237 movdqa XMMWORD
[rsp
],xmm6
2242 pshufd xmm13
,xmm14
,0x13
2245 movdqa XMMWORD
[16+rsp
],xmm6
2250 movdqu xmm7
,XMMWORD
[r12
]
2252 je NEAR $L$xts_dec_1
2253 pshufd xmm13
,xmm14
,0x13
2256 movdqa XMMWORD
[32+rsp
],xmm6
2261 movdqu xmm8
,XMMWORD
[16+r12
]
2263 je NEAR $L$xts_dec_2
2265 pshufd xmm13
,xmm14
,0x13
2268 movdqa XMMWORD
[48+rsp
],xmm6
2273 movdqu xmm9
,XMMWORD
[32+r12
]
2275 je NEAR $L$xts_dec_3
2277 pshufd xmm13
,xmm14
,0x13
2280 movdqa XMMWORD
[64+rsp
],xmm6
2285 movdqu xmm10
,XMMWORD
[48+r12
]
2287 je NEAR $L$xts_dec_4
2289 pshufd xmm13
,xmm14
,0x13
2292 movdqa XMMWORD
[80+rsp
],xmm6
2297 movdqu xmm11
,XMMWORD
[64+r12
]
2299 je NEAR $L$xts_dec_5
2301 pshufd xmm13
,xmm14
,0x13
2304 movdqa XMMWORD
[96+rsp
],xmm6
2309 movdqu xmm12
,XMMWORD
[80+r12
]
2311 je NEAR $L$xts_dec_6
2313 movdqu xmm13
,XMMWORD
[96+r12
]
2315 movdqa XMMWORD
[112+rsp
],xmm6
2321 call _bsaes_decrypt8
2323 pxor xmm15
,XMMWORD
[rsp
]
2324 pxor xmm0
,XMMWORD
[16+rsp
]
2325 movdqu XMMWORD
[r13
],xmm15
2326 pxor xmm5
,XMMWORD
[32+rsp
]
2327 movdqu XMMWORD
[16+r13
],xmm0
2328 pxor xmm3
,XMMWORD
[48+rsp
]
2329 movdqu XMMWORD
[32+r13
],xmm5
2330 pxor xmm1
,XMMWORD
[64+rsp
]
2331 movdqu XMMWORD
[48+r13
],xmm3
2332 pxor xmm6
,XMMWORD
[80+rsp
]
2333 movdqu XMMWORD
[64+r13
],xmm1
2334 pxor xmm2
,XMMWORD
[96+rsp
]
2335 movdqu XMMWORD
[80+r13
],xmm6
2336 movdqu XMMWORD
[96+r13
],xmm2
2339 movdqa xmm6
,XMMWORD
[112+rsp
]
2340 jmp NEAR $L$xts_dec_done
2349 call _bsaes_decrypt8
2351 pxor xmm15
,XMMWORD
[rsp
]
2352 pxor xmm0
,XMMWORD
[16+rsp
]
2353 movdqu XMMWORD
[r13
],xmm15
2354 pxor xmm5
,XMMWORD
[32+rsp
]
2355 movdqu XMMWORD
[16+r13
],xmm0
2356 pxor xmm3
,XMMWORD
[48+rsp
]
2357 movdqu XMMWORD
[32+r13
],xmm5
2358 pxor xmm1
,XMMWORD
[64+rsp
]
2359 movdqu XMMWORD
[48+r13
],xmm3
2360 pxor xmm6
,XMMWORD
[80+rsp
]
2361 movdqu XMMWORD
[64+r13
],xmm1
2362 movdqu XMMWORD
[80+r13
],xmm6
2365 movdqa xmm6
,XMMWORD
[96+rsp
]
2366 jmp NEAR $L$xts_dec_done
2375 call _bsaes_decrypt8
2377 pxor xmm15
,XMMWORD
[rsp
]
2378 pxor xmm0
,XMMWORD
[16+rsp
]
2379 movdqu XMMWORD
[r13
],xmm15
2380 pxor xmm5
,XMMWORD
[32+rsp
]
2381 movdqu XMMWORD
[16+r13
],xmm0
2382 pxor xmm3
,XMMWORD
[48+rsp
]
2383 movdqu XMMWORD
[32+r13
],xmm5
2384 pxor xmm1
,XMMWORD
[64+rsp
]
2385 movdqu XMMWORD
[48+r13
],xmm3
2386 movdqu XMMWORD
[64+r13
],xmm1
2389 movdqa xmm6
,XMMWORD
[80+rsp
]
2390 jmp NEAR $L$xts_dec_done
2399 call _bsaes_decrypt8
2401 pxor xmm15
,XMMWORD
[rsp
]
2402 pxor xmm0
,XMMWORD
[16+rsp
]
2403 movdqu XMMWORD
[r13
],xmm15
2404 pxor xmm5
,XMMWORD
[32+rsp
]
2405 movdqu XMMWORD
[16+r13
],xmm0
2406 pxor xmm3
,XMMWORD
[48+rsp
]
2407 movdqu XMMWORD
[32+r13
],xmm5
2408 movdqu XMMWORD
[48+r13
],xmm3
2411 movdqa xmm6
,XMMWORD
[64+rsp
]
2412 jmp NEAR $L$xts_dec_done
2421 call _bsaes_decrypt8
2423 pxor xmm15
,XMMWORD
[rsp
]
2424 pxor xmm0
,XMMWORD
[16+rsp
]
2425 movdqu XMMWORD
[r13
],xmm15
2426 pxor xmm5
,XMMWORD
[32+rsp
]
2427 movdqu XMMWORD
[16+r13
],xmm0
2428 movdqu XMMWORD
[32+r13
],xmm5
2431 movdqa xmm6
,XMMWORD
[48+rsp
]
2432 jmp NEAR $L$xts_dec_done
2441 call _bsaes_decrypt8
2443 pxor xmm15
,XMMWORD
[rsp
]
2444 pxor xmm0
,XMMWORD
[16+rsp
]
2445 movdqu XMMWORD
[r13
],xmm15
2446 movdqu XMMWORD
[16+r13
],xmm0
2449 movdqa xmm6
,XMMWORD
[32+rsp
]
2450 jmp NEAR $L$xts_dec_done
2455 movdqa XMMWORD
[32+rbp
],xmm7
2459 call asm_AES_decrypt
2460 pxor xmm15
,XMMWORD
[32+rbp
]
2466 movdqu XMMWORD
[r13
],xmm15
2469 movdqa xmm6
,XMMWORD
[16+rsp
]
2473 jz NEAR $L$xts_dec_ret
2476 movdqa xmm12
,XMMWORD
[$L$xts_magic
]
2478 pshufd xmm13
,xmm14
,0x13
2482 movdqu xmm15
,XMMWORD
[r12
]
2488 movdqa XMMWORD
[32+rbp
],xmm15
2490 call asm_AES_decrypt
2491 pxor xmm6
,XMMWORD
[32+rbp
]
2493 movdqu XMMWORD
[r13
],xmm6
2496 movzx eax,BYTE[16+r12
]
2503 jnz NEAR $L$xts_dec_steal
2505 movdqu xmm15
,XMMWORD
[r13
]
2509 movdqa XMMWORD
[32+rbp
],xmm15
2511 call asm_AES_decrypt
2512 pxor xmm5
,XMMWORD
[32+rbp
]
2513 movdqu XMMWORD
[r13
],xmm5
2519 movdqa XMMWORD
[rax
],xmm0
2520 movdqa XMMWORD
[16+rax
],xmm0
2523 ja NEAR $L$xts_dec_bzero
2526 movaps xmm6
,XMMWORD
[64+rbp
]
2527 movaps xmm7
,XMMWORD
[80+rbp
]
2528 movaps xmm8
,XMMWORD
[96+rbp
]
2529 movaps xmm9
,XMMWORD
[112+rbp
]
2530 movaps xmm10
,XMMWORD
[128+rbp
]
2531 movaps xmm11
,XMMWORD
[144+rbp
]
2532 movaps xmm12
,XMMWORD
[160+rbp
]
2533 movaps xmm13
,XMMWORD
[176+rbp
]
2534 movaps xmm14
,XMMWORD
[192+rbp
]
2535 movaps xmm15
,XMMWORD
[208+rbp
]
2537 mov r15
,QWORD[72+rsp
]
2538 mov r14
,QWORD[80+rsp
]
2539 mov r13
,QWORD[88+rsp
]
2540 mov r12
,QWORD[96+rsp
]
2541 mov rbx
,QWORD[104+rsp
]
2542 mov rax
,QWORD[112+rsp
]
2545 $L$
xts_dec_epilogue:
2546 DB 0F3h
,0C3h
;repret
2552 DQ 0x0a0e0206070b0f03,0x0004080c0d010509
2554 DQ 0x01040b0e0205080f,0x0306090c00070a0d
2556 DQ 0x0504070602010003,0x0f0e0d0c080b0a09
2558 DQ 0x5555555555555555,0x5555555555555555
2560 DQ 0x3333333333333333,0x3333333333333333
2562 DQ 0x0f0f0f0f0f0f0f0f,0x0f0f0f0f0f0f0f0f
2564 DQ 0x0504070600030201,0x0f0e0d0c0a09080b
2566 DQ 0x0304090e00050a0f,0x01060b0c0207080d
2568 DQ 0x0a0e02060f03070b,0x0004080c05090d01
2570 DQ 0x0706050403020100,0x0c0d0e0f0b0a0908
2572 DQ 0x0a0d02060c03070b,0x0004080f05090e01
2574 DQ 0x0000000000000000,0x0000000100000000
2576 DQ 0x0000000000000000,0x0000000200000000
2578 DQ 0x0000000000000000,0x0000000300000000
2580 DQ 0x0000000000000000,0x0000000400000000
2582 DQ 0x0000000000000000,0x0000000500000000
2584 DQ 0x0000000000000000,0x0000000600000000
2586 DQ 0x0000000000000000,0x0000000700000000
2588 DQ 0x0000000000000000,0x0000000800000000
2592 DQ 0x0101010101010101,0x0101010101010101
2593 DQ 0x0202020202020202,0x0202020202020202
2594 DQ 0x0404040404040404,0x0404040404040404
2595 DQ 0x0808080808080808,0x0808080808080808
2597 DQ 0x02060a0e03070b0f,0x0004080c0105090d
2599 DQ 0x6363636363636363,0x6363636363636363
2600 DB 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102
2601 DB 111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44
2602 DB 32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44
2603 DB 32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32
2604 DB 65,110,100,121,32,80,111,108,121,97,107,111,118,0
2607 EXTERN __imp_RtlVirtualUnwind
2622 mov rax
,QWORD[120+r8
]
2623 mov rbx
,QWORD[248+r8
]
2626 mov r11
,QWORD[56+r9
]
2631 jb NEAR $L$in_prologue
2633 mov rax
,QWORD[152+r8
]
2635 mov r10d
,DWORD[4+r11
]
2638 jae NEAR $L$in_prologue
2640 mov rax
,QWORD[160+r8
]
2648 mov rbp
,QWORD[112+rax
]
2649 mov rbx
,QWORD[104+rax
]
2650 mov r12
,QWORD[96+rax
]
2651 mov r13
,QWORD[88+rax
]
2652 mov r14
,QWORD[80+rax
]
2653 mov r15
,QWORD[72+rax
]
2655 mov QWORD[144+r8
],rbx
2656 mov QWORD[160+r8
],rbp
2657 mov QWORD[216+r8
],r12
2658 mov QWORD[224+r8
],r13
2659 mov QWORD[232+r8
],r14
2660 mov QWORD[240+r8
],r15
2663 mov QWORD[152+r8
],rax
2665 mov rdi
,QWORD[40+r9
]
2672 mov rdx
,QWORD[8+rsi
]
2674 mov r9
,QWORD[16+rsi
]
2675 mov r10
,QWORD[40+rsi
]
2678 mov QWORD[32+rsp
],r10
2679 mov QWORD[40+rsp
],r11
2680 mov QWORD[48+rsp
],r12
2681 mov QWORD[56+rsp
],rcx
2682 call QWORD[__imp_RtlVirtualUnwind
]
2695 DB 0F3h
,0C3h
;repret
2698 section .pdata rdata
align=4
2700 DD $L
$cbc_dec_prologue wrt ..imagebase
2701 DD $L
$cbc_dec_epilogue wrt ..imagebase
2702 DD $L
$cbc_dec_info wrt ..imagebase
2704 DD $L
$ctr_enc_prologue wrt ..imagebase
2705 DD $L
$ctr_enc_epilogue wrt ..imagebase
2706 DD $L
$ctr_enc_info wrt ..imagebase
2708 DD $L$xts_enc_prologue wrt ..imagebase
2709 DD $L$xts_enc_epilogue wrt ..imagebase
2710 DD $L$xts_enc_info wrt ..imagebase
2712 DD $L$xts_dec_prologue wrt ..imagebase
2713 DD $L$xts_dec_epilogue wrt ..imagebase
2714 DD $L$xts_dec_info wrt ..imagebase
2716 section .xdata rdata
align=8
2720 DD se_handler wrt ..imagebase
2721 DD $L
$cbc_dec_body wrt ..imagebase
,$L
$cbc_dec_epilogue wrt ..imagebase
2724 DD se_handler wrt ..imagebase
2725 DD $L
$ctr_enc_body wrt ..imagebase
,$L
$ctr_enc_epilogue wrt ..imagebase
2728 DD se_handler wrt ..imagebase
2729 DD $L$xts_enc_body wrt ..imagebase
,$L$xts_enc_epilogue wrt ..imagebase
2732 DD se_handler wrt ..imagebase
2733 DD $L$xts_dec_body wrt ..imagebase
,$L$xts_dec_epilogue wrt ..imagebase