OLD | NEW |
(Empty) | |
| 1 OPTION DOTNAME |
| 2 .text$ SEGMENT ALIGN(64) 'CODE' |
| 3 |
| 4 EXTERN asm_AES_encrypt:NEAR |
| 5 EXTERN asm_AES_decrypt:NEAR |
| 6 |
| 7 |
| 8 ALIGN 64 |
| 9 _bsaes_encrypt8 PROC PRIVATE |
| 10 lea r11,QWORD PTR[$L$BS0] |
| 11 |
| 12 movdqa xmm8,XMMWORD PTR[rax] |
| 13 lea rax,QWORD PTR[16+rax] |
| 14 movdqa xmm7,XMMWORD PTR[80+r11] |
| 15 pxor xmm15,xmm8 |
| 16 pxor xmm0,xmm8 |
| 17 pxor xmm1,xmm8 |
| 18 pxor xmm2,xmm8 |
| 19 DB 102,68,15,56,0,255 |
| 20 DB 102,15,56,0,199 |
| 21 pxor xmm3,xmm8 |
| 22 pxor xmm4,xmm8 |
| 23 DB 102,15,56,0,207 |
| 24 DB 102,15,56,0,215 |
| 25 pxor xmm5,xmm8 |
| 26 pxor xmm6,xmm8 |
| 27 DB 102,15,56,0,223 |
| 28 DB 102,15,56,0,231 |
| 29 DB 102,15,56,0,239 |
| 30 DB 102,15,56,0,247 |
| 31 _bsaes_encrypt8_bitslice:: |
| 32 movdqa xmm7,XMMWORD PTR[r11] |
| 33 movdqa xmm8,XMMWORD PTR[16+r11] |
| 34 movdqa xmm9,xmm5 |
| 35 psrlq xmm5,1 |
| 36 movdqa xmm10,xmm3 |
| 37 psrlq xmm3,1 |
| 38 pxor xmm5,xmm6 |
| 39 pxor xmm3,xmm4 |
| 40 pand xmm5,xmm7 |
| 41 pand xmm3,xmm7 |
| 42 pxor xmm6,xmm5 |
| 43 psllq xmm5,1 |
| 44 pxor xmm4,xmm3 |
| 45 psllq xmm3,1 |
| 46 pxor xmm5,xmm9 |
| 47 pxor xmm3,xmm10 |
| 48 movdqa xmm9,xmm1 |
| 49 psrlq xmm1,1 |
| 50 movdqa xmm10,xmm15 |
| 51 psrlq xmm15,1 |
| 52 pxor xmm1,xmm2 |
| 53 pxor xmm15,xmm0 |
| 54 pand xmm1,xmm7 |
| 55 pand xmm15,xmm7 |
| 56 pxor xmm2,xmm1 |
| 57 psllq xmm1,1 |
| 58 pxor xmm0,xmm15 |
| 59 psllq xmm15,1 |
| 60 pxor xmm1,xmm9 |
| 61 pxor xmm15,xmm10 |
| 62 movdqa xmm7,XMMWORD PTR[32+r11] |
| 63 movdqa xmm9,xmm4 |
| 64 psrlq xmm4,2 |
| 65 movdqa xmm10,xmm3 |
| 66 psrlq xmm3,2 |
| 67 pxor xmm4,xmm6 |
| 68 pxor xmm3,xmm5 |
| 69 pand xmm4,xmm8 |
| 70 pand xmm3,xmm8 |
| 71 pxor xmm6,xmm4 |
| 72 psllq xmm4,2 |
| 73 pxor xmm5,xmm3 |
| 74 psllq xmm3,2 |
| 75 pxor xmm4,xmm9 |
| 76 pxor xmm3,xmm10 |
| 77 movdqa xmm9,xmm0 |
| 78 psrlq xmm0,2 |
| 79 movdqa xmm10,xmm15 |
| 80 psrlq xmm15,2 |
| 81 pxor xmm0,xmm2 |
| 82 pxor xmm15,xmm1 |
| 83 pand xmm0,xmm8 |
| 84 pand xmm15,xmm8 |
| 85 pxor xmm2,xmm0 |
| 86 psllq xmm0,2 |
| 87 pxor xmm1,xmm15 |
| 88 psllq xmm15,2 |
| 89 pxor xmm0,xmm9 |
| 90 pxor xmm15,xmm10 |
| 91 movdqa xmm9,xmm2 |
| 92 psrlq xmm2,4 |
| 93 movdqa xmm10,xmm1 |
| 94 psrlq xmm1,4 |
| 95 pxor xmm2,xmm6 |
| 96 pxor xmm1,xmm5 |
| 97 pand xmm2,xmm7 |
| 98 pand xmm1,xmm7 |
| 99 pxor xmm6,xmm2 |
| 100 psllq xmm2,4 |
| 101 pxor xmm5,xmm1 |
| 102 psllq xmm1,4 |
| 103 pxor xmm2,xmm9 |
| 104 pxor xmm1,xmm10 |
| 105 movdqa xmm9,xmm0 |
| 106 psrlq xmm0,4 |
| 107 movdqa xmm10,xmm15 |
| 108 psrlq xmm15,4 |
| 109 pxor xmm0,xmm4 |
| 110 pxor xmm15,xmm3 |
| 111 pand xmm0,xmm7 |
| 112 pand xmm15,xmm7 |
| 113 pxor xmm4,xmm0 |
| 114 psllq xmm0,4 |
| 115 pxor xmm3,xmm15 |
| 116 psllq xmm15,4 |
| 117 pxor xmm0,xmm9 |
| 118 pxor xmm15,xmm10 |
| 119 dec r10d |
| 120 jmp $L$enc_sbox |
| 121 ALIGN 16 |
| 122 $L$enc_loop:: |
| 123 pxor xmm15,XMMWORD PTR[rax] |
| 124 pxor xmm0,XMMWORD PTR[16+rax] |
| 125 pxor xmm1,XMMWORD PTR[32+rax] |
| 126 pxor xmm2,XMMWORD PTR[48+rax] |
| 127 DB 102,68,15,56,0,255 |
| 128 DB 102,15,56,0,199 |
| 129 pxor xmm3,XMMWORD PTR[64+rax] |
| 130 pxor xmm4,XMMWORD PTR[80+rax] |
| 131 DB 102,15,56,0,207 |
| 132 DB 102,15,56,0,215 |
| 133 pxor xmm5,XMMWORD PTR[96+rax] |
| 134 pxor xmm6,XMMWORD PTR[112+rax] |
| 135 DB 102,15,56,0,223 |
| 136 DB 102,15,56,0,231 |
| 137 DB 102,15,56,0,239 |
| 138 DB 102,15,56,0,247 |
| 139 lea rax,QWORD PTR[128+rax] |
| 140 $L$enc_sbox:: |
| 141 pxor xmm4,xmm5 |
| 142 pxor xmm1,xmm0 |
| 143 pxor xmm2,xmm15 |
| 144 pxor xmm5,xmm1 |
| 145 pxor xmm4,xmm15 |
| 146 |
| 147 pxor xmm5,xmm2 |
| 148 pxor xmm2,xmm6 |
| 149 pxor xmm6,xmm4 |
| 150 pxor xmm2,xmm3 |
| 151 pxor xmm3,xmm4 |
| 152 pxor xmm2,xmm0 |
| 153 |
| 154 pxor xmm1,xmm6 |
| 155 pxor xmm0,xmm4 |
| 156 movdqa xmm10,xmm6 |
| 157 movdqa xmm9,xmm0 |
| 158 movdqa xmm8,xmm4 |
| 159 movdqa xmm12,xmm1 |
| 160 movdqa xmm11,xmm5 |
| 161 |
| 162 pxor xmm10,xmm3 |
| 163 pxor xmm9,xmm1 |
| 164 pxor xmm8,xmm2 |
| 165 movdqa xmm13,xmm10 |
| 166 pxor xmm12,xmm3 |
| 167 movdqa xmm7,xmm9 |
| 168 pxor xmm11,xmm15 |
| 169 movdqa xmm14,xmm10 |
| 170 |
| 171 por xmm9,xmm8 |
| 172 por xmm10,xmm11 |
| 173 pxor xmm14,xmm7 |
| 174 pand xmm13,xmm11 |
| 175 pxor xmm11,xmm8 |
| 176 pand xmm7,xmm8 |
| 177 pand xmm14,xmm11 |
| 178 movdqa xmm11,xmm2 |
| 179 pxor xmm11,xmm15 |
| 180 pand xmm12,xmm11 |
| 181 pxor xmm10,xmm12 |
| 182 pxor xmm9,xmm12 |
| 183 movdqa xmm12,xmm6 |
| 184 movdqa xmm11,xmm4 |
| 185 pxor xmm12,xmm0 |
| 186 pxor xmm11,xmm5 |
| 187 movdqa xmm8,xmm12 |
| 188 pand xmm12,xmm11 |
| 189 por xmm8,xmm11 |
| 190 pxor xmm7,xmm12 |
| 191 pxor xmm10,xmm14 |
| 192 pxor xmm9,xmm13 |
| 193 pxor xmm8,xmm14 |
| 194 movdqa xmm11,xmm1 |
| 195 pxor xmm7,xmm13 |
| 196 movdqa xmm12,xmm3 |
| 197 pxor xmm8,xmm13 |
| 198 movdqa xmm13,xmm0 |
| 199 pand xmm11,xmm2 |
| 200 movdqa xmm14,xmm6 |
| 201 pand xmm12,xmm15 |
| 202 pand xmm13,xmm4 |
| 203 por xmm14,xmm5 |
| 204 pxor xmm10,xmm11 |
| 205 pxor xmm9,xmm12 |
| 206 pxor xmm8,xmm13 |
| 207 pxor xmm7,xmm14 |
| 208 |
| 209 |
| 210 |
| 211 |
| 212 |
| 213 movdqa xmm11,xmm10 |
| 214 pand xmm10,xmm8 |
| 215 pxor xmm11,xmm9 |
| 216 |
| 217 movdqa xmm13,xmm7 |
| 218 movdqa xmm14,xmm11 |
| 219 pxor xmm13,xmm10 |
| 220 pand xmm14,xmm13 |
| 221 |
| 222 movdqa xmm12,xmm8 |
| 223 pxor xmm14,xmm9 |
| 224 pxor xmm12,xmm7 |
| 225 |
| 226 pxor xmm10,xmm9 |
| 227 |
| 228 pand xmm12,xmm10 |
| 229 |
| 230 movdqa xmm9,xmm13 |
| 231 pxor xmm12,xmm7 |
| 232 |
| 233 pxor xmm9,xmm12 |
| 234 pxor xmm8,xmm12 |
| 235 |
| 236 pand xmm9,xmm7 |
| 237 |
| 238 pxor xmm13,xmm9 |
| 239 pxor xmm8,xmm9 |
| 240 |
| 241 pand xmm13,xmm14 |
| 242 |
| 243 pxor xmm13,xmm11 |
| 244 movdqa xmm11,xmm5 |
| 245 movdqa xmm7,xmm4 |
| 246 movdqa xmm9,xmm14 |
| 247 pxor xmm9,xmm13 |
| 248 pand xmm9,xmm5 |
| 249 pxor xmm5,xmm4 |
| 250 pand xmm4,xmm14 |
| 251 pand xmm5,xmm13 |
| 252 pxor xmm5,xmm4 |
| 253 pxor xmm4,xmm9 |
| 254 pxor xmm11,xmm15 |
| 255 pxor xmm7,xmm2 |
| 256 pxor xmm14,xmm12 |
| 257 pxor xmm13,xmm8 |
| 258 movdqa xmm10,xmm14 |
| 259 movdqa xmm9,xmm12 |
| 260 pxor xmm10,xmm13 |
| 261 pxor xmm9,xmm8 |
| 262 pand xmm10,xmm11 |
| 263 pand xmm9,xmm15 |
| 264 pxor xmm11,xmm7 |
| 265 pxor xmm15,xmm2 |
| 266 pand xmm7,xmm14 |
| 267 pand xmm2,xmm12 |
| 268 pand xmm11,xmm13 |
| 269 pand xmm15,xmm8 |
| 270 pxor xmm7,xmm11 |
| 271 pxor xmm15,xmm2 |
| 272 pxor xmm11,xmm10 |
| 273 pxor xmm2,xmm9 |
| 274 pxor xmm5,xmm11 |
| 275 pxor xmm15,xmm11 |
| 276 pxor xmm4,xmm7 |
| 277 pxor xmm2,xmm7 |
| 278 |
| 279 movdqa xmm11,xmm6 |
| 280 movdqa xmm7,xmm0 |
| 281 pxor xmm11,xmm3 |
| 282 pxor xmm7,xmm1 |
| 283 movdqa xmm10,xmm14 |
| 284 movdqa xmm9,xmm12 |
| 285 pxor xmm10,xmm13 |
| 286 pxor xmm9,xmm8 |
| 287 pand xmm10,xmm11 |
| 288 pand xmm9,xmm3 |
| 289 pxor xmm11,xmm7 |
| 290 pxor xmm3,xmm1 |
| 291 pand xmm7,xmm14 |
| 292 pand xmm1,xmm12 |
| 293 pand xmm11,xmm13 |
| 294 pand xmm3,xmm8 |
| 295 pxor xmm7,xmm11 |
| 296 pxor xmm3,xmm1 |
| 297 pxor xmm11,xmm10 |
| 298 pxor xmm1,xmm9 |
| 299 pxor xmm14,xmm12 |
| 300 pxor xmm13,xmm8 |
| 301 movdqa xmm10,xmm14 |
| 302 pxor xmm10,xmm13 |
| 303 pand xmm10,xmm6 |
| 304 pxor xmm6,xmm0 |
| 305 pand xmm0,xmm14 |
| 306 pand xmm6,xmm13 |
| 307 pxor xmm6,xmm0 |
| 308 pxor xmm0,xmm10 |
| 309 pxor xmm6,xmm11 |
| 310 pxor xmm3,xmm11 |
| 311 pxor xmm0,xmm7 |
| 312 pxor xmm1,xmm7 |
| 313 pxor xmm6,xmm15 |
| 314 pxor xmm0,xmm5 |
| 315 pxor xmm3,xmm6 |
| 316 pxor xmm5,xmm15 |
| 317 pxor xmm15,xmm0 |
| 318 |
| 319 pxor xmm0,xmm4 |
| 320 pxor xmm4,xmm1 |
| 321 pxor xmm1,xmm2 |
| 322 pxor xmm2,xmm4 |
| 323 pxor xmm3,xmm4 |
| 324 |
| 325 pxor xmm5,xmm2 |
| 326 dec r10d |
| 327 jl $L$enc_done |
| 328 pshufd xmm7,xmm15,093h |
| 329 pshufd xmm8,xmm0,093h |
| 330 pxor xmm15,xmm7 |
| 331 pshufd xmm9,xmm3,093h |
| 332 pxor xmm0,xmm8 |
| 333 pshufd xmm10,xmm5,093h |
| 334 pxor xmm3,xmm9 |
| 335 pshufd xmm11,xmm2,093h |
| 336 pxor xmm5,xmm10 |
| 337 pshufd xmm12,xmm6,093h |
| 338 pxor xmm2,xmm11 |
| 339 pshufd xmm13,xmm1,093h |
| 340 pxor xmm6,xmm12 |
| 341 pshufd xmm14,xmm4,093h |
| 342 pxor xmm1,xmm13 |
| 343 pxor xmm4,xmm14 |
| 344 |
| 345 pxor xmm8,xmm15 |
| 346 pxor xmm7,xmm4 |
| 347 pxor xmm8,xmm4 |
| 348 pshufd xmm15,xmm15,04Eh |
| 349 pxor xmm9,xmm0 |
| 350 pshufd xmm0,xmm0,04Eh |
| 351 pxor xmm12,xmm2 |
| 352 pxor xmm15,xmm7 |
| 353 pxor xmm13,xmm6 |
| 354 pxor xmm0,xmm8 |
| 355 pxor xmm11,xmm5 |
| 356 pshufd xmm7,xmm2,04Eh |
| 357 pxor xmm14,xmm1 |
| 358 pshufd xmm8,xmm6,04Eh |
| 359 pxor xmm10,xmm3 |
| 360 pshufd xmm2,xmm5,04Eh |
| 361 pxor xmm10,xmm4 |
| 362 pshufd xmm6,xmm4,04Eh |
| 363 pxor xmm11,xmm4 |
| 364 pshufd xmm5,xmm1,04Eh |
| 365 pxor xmm7,xmm11 |
| 366 pshufd xmm1,xmm3,04Eh |
| 367 pxor xmm8,xmm12 |
| 368 pxor xmm2,xmm10 |
| 369 pxor xmm6,xmm14 |
| 370 pxor xmm5,xmm13 |
| 371 movdqa xmm3,xmm7 |
| 372 pxor xmm1,xmm9 |
| 373 movdqa xmm4,xmm8 |
| 374 movdqa xmm7,XMMWORD PTR[48+r11] |
| 375 jnz $L$enc_loop |
| 376 movdqa xmm7,XMMWORD PTR[64+r11] |
| 377 jmp $L$enc_loop |
| 378 ALIGN 16 |
| 379 $L$enc_done:: |
| 380 movdqa xmm7,XMMWORD PTR[r11] |
| 381 movdqa xmm8,XMMWORD PTR[16+r11] |
| 382 movdqa xmm9,xmm1 |
| 383 psrlq xmm1,1 |
| 384 movdqa xmm10,xmm2 |
| 385 psrlq xmm2,1 |
| 386 pxor xmm1,xmm4 |
| 387 pxor xmm2,xmm6 |
| 388 pand xmm1,xmm7 |
| 389 pand xmm2,xmm7 |
| 390 pxor xmm4,xmm1 |
| 391 psllq xmm1,1 |
| 392 pxor xmm6,xmm2 |
| 393 psllq xmm2,1 |
| 394 pxor xmm1,xmm9 |
| 395 pxor xmm2,xmm10 |
| 396 movdqa xmm9,xmm3 |
| 397 psrlq xmm3,1 |
| 398 movdqa xmm10,xmm15 |
| 399 psrlq xmm15,1 |
| 400 pxor xmm3,xmm5 |
| 401 pxor xmm15,xmm0 |
| 402 pand xmm3,xmm7 |
| 403 pand xmm15,xmm7 |
| 404 pxor xmm5,xmm3 |
| 405 psllq xmm3,1 |
| 406 pxor xmm0,xmm15 |
| 407 psllq xmm15,1 |
| 408 pxor xmm3,xmm9 |
| 409 pxor xmm15,xmm10 |
| 410 movdqa xmm7,XMMWORD PTR[32+r11] |
| 411 movdqa xmm9,xmm6 |
| 412 psrlq xmm6,2 |
| 413 movdqa xmm10,xmm2 |
| 414 psrlq xmm2,2 |
| 415 pxor xmm6,xmm4 |
| 416 pxor xmm2,xmm1 |
| 417 pand xmm6,xmm8 |
| 418 pand xmm2,xmm8 |
| 419 pxor xmm4,xmm6 |
| 420 psllq xmm6,2 |
| 421 pxor xmm1,xmm2 |
| 422 psllq xmm2,2 |
| 423 pxor xmm6,xmm9 |
| 424 pxor xmm2,xmm10 |
| 425 movdqa xmm9,xmm0 |
| 426 psrlq xmm0,2 |
| 427 movdqa xmm10,xmm15 |
| 428 psrlq xmm15,2 |
| 429 pxor xmm0,xmm5 |
| 430 pxor xmm15,xmm3 |
| 431 pand xmm0,xmm8 |
| 432 pand xmm15,xmm8 |
| 433 pxor xmm5,xmm0 |
| 434 psllq xmm0,2 |
| 435 pxor xmm3,xmm15 |
| 436 psllq xmm15,2 |
| 437 pxor xmm0,xmm9 |
| 438 pxor xmm15,xmm10 |
| 439 movdqa xmm9,xmm5 |
| 440 psrlq xmm5,4 |
| 441 movdqa xmm10,xmm3 |
| 442 psrlq xmm3,4 |
| 443 pxor xmm5,xmm4 |
| 444 pxor xmm3,xmm1 |
| 445 pand xmm5,xmm7 |
| 446 pand xmm3,xmm7 |
| 447 pxor xmm4,xmm5 |
| 448 psllq xmm5,4 |
| 449 pxor xmm1,xmm3 |
| 450 psllq xmm3,4 |
| 451 pxor xmm5,xmm9 |
| 452 pxor xmm3,xmm10 |
| 453 movdqa xmm9,xmm0 |
| 454 psrlq xmm0,4 |
| 455 movdqa xmm10,xmm15 |
| 456 psrlq xmm15,4 |
| 457 pxor xmm0,xmm6 |
| 458 pxor xmm15,xmm2 |
| 459 pand xmm0,xmm7 |
| 460 pand xmm15,xmm7 |
| 461 pxor xmm6,xmm0 |
| 462 psllq xmm0,4 |
| 463 pxor xmm2,xmm15 |
| 464 psllq xmm15,4 |
| 465 pxor xmm0,xmm9 |
| 466 pxor xmm15,xmm10 |
| 467 movdqa xmm7,XMMWORD PTR[rax] |
| 468 pxor xmm3,xmm7 |
| 469 pxor xmm5,xmm7 |
| 470 pxor xmm2,xmm7 |
| 471 pxor xmm6,xmm7 |
| 472 pxor xmm1,xmm7 |
| 473 pxor xmm4,xmm7 |
| 474 pxor xmm15,xmm7 |
| 475 pxor xmm0,xmm7 |
| 476 DB 0F3h,0C3h ;repret |
| 477 _bsaes_encrypt8 ENDP |
| 478 |
| 479 |
| 480 ALIGN 64 |
| 481 _bsaes_decrypt8 PROC PRIVATE |
| 482 lea r11,QWORD PTR[$L$BS0] |
| 483 |
| 484 movdqa xmm8,XMMWORD PTR[rax] |
| 485 lea rax,QWORD PTR[16+rax] |
| 486 movdqa xmm7,XMMWORD PTR[((-48))+r11] |
| 487 pxor xmm15,xmm8 |
| 488 pxor xmm0,xmm8 |
| 489 pxor xmm1,xmm8 |
| 490 pxor xmm2,xmm8 |
| 491 DB 102,68,15,56,0,255 |
| 492 DB 102,15,56,0,199 |
| 493 pxor xmm3,xmm8 |
| 494 pxor xmm4,xmm8 |
| 495 DB 102,15,56,0,207 |
| 496 DB 102,15,56,0,215 |
| 497 pxor xmm5,xmm8 |
| 498 pxor xmm6,xmm8 |
| 499 DB 102,15,56,0,223 |
| 500 DB 102,15,56,0,231 |
| 501 DB 102,15,56,0,239 |
| 502 DB 102,15,56,0,247 |
| 503 movdqa xmm7,XMMWORD PTR[r11] |
| 504 movdqa xmm8,XMMWORD PTR[16+r11] |
| 505 movdqa xmm9,xmm5 |
| 506 psrlq xmm5,1 |
| 507 movdqa xmm10,xmm3 |
| 508 psrlq xmm3,1 |
| 509 pxor xmm5,xmm6 |
| 510 pxor xmm3,xmm4 |
| 511 pand xmm5,xmm7 |
| 512 pand xmm3,xmm7 |
| 513 pxor xmm6,xmm5 |
| 514 psllq xmm5,1 |
| 515 pxor xmm4,xmm3 |
| 516 psllq xmm3,1 |
| 517 pxor xmm5,xmm9 |
| 518 pxor xmm3,xmm10 |
| 519 movdqa xmm9,xmm1 |
| 520 psrlq xmm1,1 |
| 521 movdqa xmm10,xmm15 |
| 522 psrlq xmm15,1 |
| 523 pxor xmm1,xmm2 |
| 524 pxor xmm15,xmm0 |
| 525 pand xmm1,xmm7 |
| 526 pand xmm15,xmm7 |
| 527 pxor xmm2,xmm1 |
| 528 psllq xmm1,1 |
| 529 pxor xmm0,xmm15 |
| 530 psllq xmm15,1 |
| 531 pxor xmm1,xmm9 |
| 532 pxor xmm15,xmm10 |
| 533 movdqa xmm7,XMMWORD PTR[32+r11] |
| 534 movdqa xmm9,xmm4 |
| 535 psrlq xmm4,2 |
| 536 movdqa xmm10,xmm3 |
| 537 psrlq xmm3,2 |
| 538 pxor xmm4,xmm6 |
| 539 pxor xmm3,xmm5 |
| 540 pand xmm4,xmm8 |
| 541 pand xmm3,xmm8 |
| 542 pxor xmm6,xmm4 |
| 543 psllq xmm4,2 |
| 544 pxor xmm5,xmm3 |
| 545 psllq xmm3,2 |
| 546 pxor xmm4,xmm9 |
| 547 pxor xmm3,xmm10 |
| 548 movdqa xmm9,xmm0 |
| 549 psrlq xmm0,2 |
| 550 movdqa xmm10,xmm15 |
| 551 psrlq xmm15,2 |
| 552 pxor xmm0,xmm2 |
| 553 pxor xmm15,xmm1 |
| 554 pand xmm0,xmm8 |
| 555 pand xmm15,xmm8 |
| 556 pxor xmm2,xmm0 |
| 557 psllq xmm0,2 |
| 558 pxor xmm1,xmm15 |
| 559 psllq xmm15,2 |
| 560 pxor xmm0,xmm9 |
| 561 pxor xmm15,xmm10 |
| 562 movdqa xmm9,xmm2 |
| 563 psrlq xmm2,4 |
| 564 movdqa xmm10,xmm1 |
| 565 psrlq xmm1,4 |
| 566 pxor xmm2,xmm6 |
| 567 pxor xmm1,xmm5 |
| 568 pand xmm2,xmm7 |
| 569 pand xmm1,xmm7 |
| 570 pxor xmm6,xmm2 |
| 571 psllq xmm2,4 |
| 572 pxor xmm5,xmm1 |
| 573 psllq xmm1,4 |
| 574 pxor xmm2,xmm9 |
| 575 pxor xmm1,xmm10 |
| 576 movdqa xmm9,xmm0 |
| 577 psrlq xmm0,4 |
| 578 movdqa xmm10,xmm15 |
| 579 psrlq xmm15,4 |
| 580 pxor xmm0,xmm4 |
| 581 pxor xmm15,xmm3 |
| 582 pand xmm0,xmm7 |
| 583 pand xmm15,xmm7 |
| 584 pxor xmm4,xmm0 |
| 585 psllq xmm0,4 |
| 586 pxor xmm3,xmm15 |
| 587 psllq xmm15,4 |
| 588 pxor xmm0,xmm9 |
| 589 pxor xmm15,xmm10 |
| 590 dec r10d |
| 591 jmp $L$dec_sbox |
| 592 ALIGN 16 |
| 593 $L$dec_loop:: |
| 594 pxor xmm15,XMMWORD PTR[rax] |
| 595 pxor xmm0,XMMWORD PTR[16+rax] |
| 596 pxor xmm1,XMMWORD PTR[32+rax] |
| 597 pxor xmm2,XMMWORD PTR[48+rax] |
| 598 DB 102,68,15,56,0,255 |
| 599 DB 102,15,56,0,199 |
| 600 pxor xmm3,XMMWORD PTR[64+rax] |
| 601 pxor xmm4,XMMWORD PTR[80+rax] |
| 602 DB 102,15,56,0,207 |
| 603 DB 102,15,56,0,215 |
| 604 pxor xmm5,XMMWORD PTR[96+rax] |
| 605 pxor xmm6,XMMWORD PTR[112+rax] |
| 606 DB 102,15,56,0,223 |
| 607 DB 102,15,56,0,231 |
| 608 DB 102,15,56,0,239 |
| 609 DB 102,15,56,0,247 |
| 610 lea rax,QWORD PTR[128+rax] |
| 611 $L$dec_sbox:: |
| 612 pxor xmm2,xmm3 |
| 613 |
| 614 pxor xmm3,xmm6 |
| 615 pxor xmm1,xmm6 |
| 616 pxor xmm5,xmm3 |
| 617 pxor xmm6,xmm5 |
| 618 pxor xmm0,xmm6 |
| 619 |
| 620 pxor xmm15,xmm0 |
| 621 pxor xmm1,xmm4 |
| 622 pxor xmm2,xmm15 |
| 623 pxor xmm4,xmm15 |
| 624 pxor xmm0,xmm2 |
| 625 movdqa xmm10,xmm2 |
| 626 movdqa xmm9,xmm6 |
| 627 movdqa xmm8,xmm0 |
| 628 movdqa xmm12,xmm3 |
| 629 movdqa xmm11,xmm4 |
| 630 |
| 631 pxor xmm10,xmm15 |
| 632 pxor xmm9,xmm3 |
| 633 pxor xmm8,xmm5 |
| 634 movdqa xmm13,xmm10 |
| 635 pxor xmm12,xmm15 |
| 636 movdqa xmm7,xmm9 |
| 637 pxor xmm11,xmm1 |
| 638 movdqa xmm14,xmm10 |
| 639 |
| 640 por xmm9,xmm8 |
| 641 por xmm10,xmm11 |
| 642 pxor xmm14,xmm7 |
| 643 pand xmm13,xmm11 |
| 644 pxor xmm11,xmm8 |
| 645 pand xmm7,xmm8 |
| 646 pand xmm14,xmm11 |
| 647 movdqa xmm11,xmm5 |
| 648 pxor xmm11,xmm1 |
| 649 pand xmm12,xmm11 |
| 650 pxor xmm10,xmm12 |
| 651 pxor xmm9,xmm12 |
| 652 movdqa xmm12,xmm2 |
| 653 movdqa xmm11,xmm0 |
| 654 pxor xmm12,xmm6 |
| 655 pxor xmm11,xmm4 |
| 656 movdqa xmm8,xmm12 |
| 657 pand xmm12,xmm11 |
| 658 por xmm8,xmm11 |
| 659 pxor xmm7,xmm12 |
| 660 pxor xmm10,xmm14 |
| 661 pxor xmm9,xmm13 |
| 662 pxor xmm8,xmm14 |
| 663 movdqa xmm11,xmm3 |
| 664 pxor xmm7,xmm13 |
| 665 movdqa xmm12,xmm15 |
| 666 pxor xmm8,xmm13 |
| 667 movdqa xmm13,xmm6 |
| 668 pand xmm11,xmm5 |
| 669 movdqa xmm14,xmm2 |
| 670 pand xmm12,xmm1 |
| 671 pand xmm13,xmm0 |
| 672 por xmm14,xmm4 |
| 673 pxor xmm10,xmm11 |
| 674 pxor xmm9,xmm12 |
| 675 pxor xmm8,xmm13 |
| 676 pxor xmm7,xmm14 |
| 677 |
| 678 |
| 679 |
| 680 |
| 681 |
| 682 movdqa xmm11,xmm10 |
| 683 pand xmm10,xmm8 |
| 684 pxor xmm11,xmm9 |
| 685 |
| 686 movdqa xmm13,xmm7 |
| 687 movdqa xmm14,xmm11 |
| 688 pxor xmm13,xmm10 |
| 689 pand xmm14,xmm13 |
| 690 |
| 691 movdqa xmm12,xmm8 |
| 692 pxor xmm14,xmm9 |
| 693 pxor xmm12,xmm7 |
| 694 |
| 695 pxor xmm10,xmm9 |
| 696 |
| 697 pand xmm12,xmm10 |
| 698 |
| 699 movdqa xmm9,xmm13 |
| 700 pxor xmm12,xmm7 |
| 701 |
| 702 pxor xmm9,xmm12 |
| 703 pxor xmm8,xmm12 |
| 704 |
| 705 pand xmm9,xmm7 |
| 706 |
| 707 pxor xmm13,xmm9 |
| 708 pxor xmm8,xmm9 |
| 709 |
| 710 pand xmm13,xmm14 |
| 711 |
| 712 pxor xmm13,xmm11 |
| 713 movdqa xmm11,xmm4 |
| 714 movdqa xmm7,xmm0 |
| 715 movdqa xmm9,xmm14 |
| 716 pxor xmm9,xmm13 |
| 717 pand xmm9,xmm4 |
| 718 pxor xmm4,xmm0 |
| 719 pand xmm0,xmm14 |
| 720 pand xmm4,xmm13 |
| 721 pxor xmm4,xmm0 |
| 722 pxor xmm0,xmm9 |
| 723 pxor xmm11,xmm1 |
| 724 pxor xmm7,xmm5 |
| 725 pxor xmm14,xmm12 |
| 726 pxor xmm13,xmm8 |
| 727 movdqa xmm10,xmm14 |
| 728 movdqa xmm9,xmm12 |
| 729 pxor xmm10,xmm13 |
| 730 pxor xmm9,xmm8 |
| 731 pand xmm10,xmm11 |
| 732 pand xmm9,xmm1 |
| 733 pxor xmm11,xmm7 |
| 734 pxor xmm1,xmm5 |
| 735 pand xmm7,xmm14 |
| 736 pand xmm5,xmm12 |
| 737 pand xmm11,xmm13 |
| 738 pand xmm1,xmm8 |
| 739 pxor xmm7,xmm11 |
| 740 pxor xmm1,xmm5 |
| 741 pxor xmm11,xmm10 |
| 742 pxor xmm5,xmm9 |
| 743 pxor xmm4,xmm11 |
| 744 pxor xmm1,xmm11 |
| 745 pxor xmm0,xmm7 |
| 746 pxor xmm5,xmm7 |
| 747 |
| 748 movdqa xmm11,xmm2 |
| 749 movdqa xmm7,xmm6 |
| 750 pxor xmm11,xmm15 |
| 751 pxor xmm7,xmm3 |
| 752 movdqa xmm10,xmm14 |
| 753 movdqa xmm9,xmm12 |
| 754 pxor xmm10,xmm13 |
| 755 pxor xmm9,xmm8 |
| 756 pand xmm10,xmm11 |
| 757 pand xmm9,xmm15 |
| 758 pxor xmm11,xmm7 |
| 759 pxor xmm15,xmm3 |
| 760 pand xmm7,xmm14 |
| 761 pand xmm3,xmm12 |
| 762 pand xmm11,xmm13 |
| 763 pand xmm15,xmm8 |
| 764 pxor xmm7,xmm11 |
| 765 pxor xmm15,xmm3 |
| 766 pxor xmm11,xmm10 |
| 767 pxor xmm3,xmm9 |
| 768 pxor xmm14,xmm12 |
| 769 pxor xmm13,xmm8 |
| 770 movdqa xmm10,xmm14 |
| 771 pxor xmm10,xmm13 |
| 772 pand xmm10,xmm2 |
| 773 pxor xmm2,xmm6 |
| 774 pand xmm6,xmm14 |
| 775 pand xmm2,xmm13 |
| 776 pxor xmm2,xmm6 |
| 777 pxor xmm6,xmm10 |
| 778 pxor xmm2,xmm11 |
| 779 pxor xmm15,xmm11 |
| 780 pxor xmm6,xmm7 |
| 781 pxor xmm3,xmm7 |
| 782 pxor xmm0,xmm6 |
| 783 pxor xmm5,xmm4 |
| 784 |
| 785 pxor xmm3,xmm0 |
| 786 pxor xmm1,xmm6 |
| 787 pxor xmm4,xmm6 |
| 788 pxor xmm3,xmm1 |
| 789 pxor xmm6,xmm15 |
| 790 pxor xmm3,xmm4 |
| 791 pxor xmm2,xmm5 |
| 792 pxor xmm5,xmm0 |
| 793 pxor xmm2,xmm3 |
| 794 |
| 795 pxor xmm3,xmm15 |
| 796 pxor xmm6,xmm2 |
| 797 dec r10d |
| 798 jl $L$dec_done |
| 799 |
| 800 pshufd xmm7,xmm15,04Eh |
| 801 pshufd xmm13,xmm2,04Eh |
| 802 pxor xmm7,xmm15 |
| 803 pshufd xmm14,xmm4,04Eh |
| 804 pxor xmm13,xmm2 |
| 805 pshufd xmm8,xmm0,04Eh |
| 806 pxor xmm14,xmm4 |
| 807 pshufd xmm9,xmm5,04Eh |
| 808 pxor xmm8,xmm0 |
| 809 pshufd xmm10,xmm3,04Eh |
| 810 pxor xmm9,xmm5 |
| 811 pxor xmm15,xmm13 |
| 812 pxor xmm0,xmm13 |
| 813 pshufd xmm11,xmm1,04Eh |
| 814 pxor xmm10,xmm3 |
| 815 pxor xmm5,xmm7 |
| 816 pxor xmm3,xmm8 |
| 817 pshufd xmm12,xmm6,04Eh |
| 818 pxor xmm11,xmm1 |
| 819 pxor xmm0,xmm14 |
| 820 pxor xmm1,xmm9 |
| 821 pxor xmm12,xmm6 |
| 822 |
| 823 pxor xmm5,xmm14 |
| 824 pxor xmm3,xmm13 |
| 825 pxor xmm1,xmm13 |
| 826 pxor xmm6,xmm10 |
| 827 pxor xmm2,xmm11 |
| 828 pxor xmm1,xmm14 |
| 829 pxor xmm6,xmm14 |
| 830 pxor xmm4,xmm12 |
| 831 pshufd xmm7,xmm15,093h |
| 832 pshufd xmm8,xmm0,093h |
| 833 pxor xmm15,xmm7 |
| 834 pshufd xmm9,xmm5,093h |
| 835 pxor xmm0,xmm8 |
| 836 pshufd xmm10,xmm3,093h |
| 837 pxor xmm5,xmm9 |
| 838 pshufd xmm11,xmm1,093h |
| 839 pxor xmm3,xmm10 |
| 840 pshufd xmm12,xmm6,093h |
| 841 pxor xmm1,xmm11 |
| 842 pshufd xmm13,xmm2,093h |
| 843 pxor xmm6,xmm12 |
| 844 pshufd xmm14,xmm4,093h |
| 845 pxor xmm2,xmm13 |
| 846 pxor xmm4,xmm14 |
| 847 |
| 848 pxor xmm8,xmm15 |
| 849 pxor xmm7,xmm4 |
| 850 pxor xmm8,xmm4 |
| 851 pshufd xmm15,xmm15,04Eh |
| 852 pxor xmm9,xmm0 |
| 853 pshufd xmm0,xmm0,04Eh |
| 854 pxor xmm12,xmm1 |
| 855 pxor xmm15,xmm7 |
| 856 pxor xmm13,xmm6 |
| 857 pxor xmm0,xmm8 |
| 858 pxor xmm11,xmm3 |
| 859 pshufd xmm7,xmm1,04Eh |
| 860 pxor xmm14,xmm2 |
| 861 pshufd xmm8,xmm6,04Eh |
| 862 pxor xmm10,xmm5 |
| 863 pshufd xmm1,xmm3,04Eh |
| 864 pxor xmm10,xmm4 |
| 865 pshufd xmm6,xmm4,04Eh |
| 866 pxor xmm11,xmm4 |
| 867 pshufd xmm3,xmm2,04Eh |
| 868 pxor xmm7,xmm11 |
| 869 pshufd xmm2,xmm5,04Eh |
| 870 pxor xmm8,xmm12 |
| 871 pxor xmm10,xmm1 |
| 872 pxor xmm6,xmm14 |
| 873 pxor xmm13,xmm3 |
| 874 movdqa xmm3,xmm7 |
| 875 pxor xmm2,xmm9 |
| 876 movdqa xmm5,xmm13 |
| 877 movdqa xmm4,xmm8 |
| 878 movdqa xmm1,xmm2 |
| 879 movdqa xmm2,xmm10 |
| 880 movdqa xmm7,XMMWORD PTR[((-16))+r11] |
| 881 jnz $L$dec_loop |
| 882 movdqa xmm7,XMMWORD PTR[((-32))+r11] |
| 883 jmp $L$dec_loop |
| 884 ALIGN 16 |
| 885 $L$dec_done:: |
| 886 movdqa xmm7,XMMWORD PTR[r11] |
| 887 movdqa xmm8,XMMWORD PTR[16+r11] |
| 888 movdqa xmm9,xmm2 |
| 889 psrlq xmm2,1 |
| 890 movdqa xmm10,xmm1 |
| 891 psrlq xmm1,1 |
| 892 pxor xmm2,xmm4 |
| 893 pxor xmm1,xmm6 |
| 894 pand xmm2,xmm7 |
| 895 pand xmm1,xmm7 |
| 896 pxor xmm4,xmm2 |
| 897 psllq xmm2,1 |
| 898 pxor xmm6,xmm1 |
| 899 psllq xmm1,1 |
| 900 pxor xmm2,xmm9 |
| 901 pxor xmm1,xmm10 |
| 902 movdqa xmm9,xmm5 |
| 903 psrlq xmm5,1 |
| 904 movdqa xmm10,xmm15 |
| 905 psrlq xmm15,1 |
| 906 pxor xmm5,xmm3 |
| 907 pxor xmm15,xmm0 |
| 908 pand xmm5,xmm7 |
| 909 pand xmm15,xmm7 |
| 910 pxor xmm3,xmm5 |
| 911 psllq xmm5,1 |
| 912 pxor xmm0,xmm15 |
| 913 psllq xmm15,1 |
| 914 pxor xmm5,xmm9 |
| 915 pxor xmm15,xmm10 |
| 916 movdqa xmm7,XMMWORD PTR[32+r11] |
| 917 movdqa xmm9,xmm6 |
| 918 psrlq xmm6,2 |
| 919 movdqa xmm10,xmm1 |
| 920 psrlq xmm1,2 |
| 921 pxor xmm6,xmm4 |
| 922 pxor xmm1,xmm2 |
| 923 pand xmm6,xmm8 |
| 924 pand xmm1,xmm8 |
| 925 pxor xmm4,xmm6 |
| 926 psllq xmm6,2 |
| 927 pxor xmm2,xmm1 |
| 928 psllq xmm1,2 |
| 929 pxor xmm6,xmm9 |
| 930 pxor xmm1,xmm10 |
| 931 movdqa xmm9,xmm0 |
| 932 psrlq xmm0,2 |
| 933 movdqa xmm10,xmm15 |
| 934 psrlq xmm15,2 |
| 935 pxor xmm0,xmm3 |
| 936 pxor xmm15,xmm5 |
| 937 pand xmm0,xmm8 |
| 938 pand xmm15,xmm8 |
| 939 pxor xmm3,xmm0 |
| 940 psllq xmm0,2 |
| 941 pxor xmm5,xmm15 |
| 942 psllq xmm15,2 |
| 943 pxor xmm0,xmm9 |
| 944 pxor xmm15,xmm10 |
| 945 movdqa xmm9,xmm3 |
| 946 psrlq xmm3,4 |
| 947 movdqa xmm10,xmm5 |
| 948 psrlq xmm5,4 |
| 949 pxor xmm3,xmm4 |
| 950 pxor xmm5,xmm2 |
| 951 pand xmm3,xmm7 |
| 952 pand xmm5,xmm7 |
| 953 pxor xmm4,xmm3 |
| 954 psllq xmm3,4 |
| 955 pxor xmm2,xmm5 |
| 956 psllq xmm5,4 |
| 957 pxor xmm3,xmm9 |
| 958 pxor xmm5,xmm10 |
| 959 movdqa xmm9,xmm0 |
| 960 psrlq xmm0,4 |
| 961 movdqa xmm10,xmm15 |
| 962 psrlq xmm15,4 |
| 963 pxor xmm0,xmm6 |
| 964 pxor xmm15,xmm1 |
| 965 pand xmm0,xmm7 |
| 966 pand xmm15,xmm7 |
| 967 pxor xmm6,xmm0 |
| 968 psllq xmm0,4 |
| 969 pxor xmm1,xmm15 |
| 970 psllq xmm15,4 |
| 971 pxor xmm0,xmm9 |
| 972 pxor xmm15,xmm10 |
| 973 movdqa xmm7,XMMWORD PTR[rax] |
| 974 pxor xmm5,xmm7 |
| 975 pxor xmm3,xmm7 |
| 976 pxor xmm1,xmm7 |
| 977 pxor xmm6,xmm7 |
| 978 pxor xmm2,xmm7 |
| 979 pxor xmm4,xmm7 |
| 980 pxor xmm15,xmm7 |
| 981 pxor xmm0,xmm7 |
| 982 DB 0F3h,0C3h ;repret |
| 983 _bsaes_decrypt8 ENDP |
| 984 |
| 985 ALIGN 16 |
| 986 _bsaes_key_convert PROC PRIVATE |
| 987 lea r11,QWORD PTR[$L$masks] |
| 988 movdqu xmm7,XMMWORD PTR[rcx] |
| 989 lea rcx,QWORD PTR[16+rcx] |
| 990 movdqa xmm0,XMMWORD PTR[r11] |
| 991 movdqa xmm1,XMMWORD PTR[16+r11] |
| 992 movdqa xmm2,XMMWORD PTR[32+r11] |
| 993 movdqa xmm3,XMMWORD PTR[48+r11] |
| 994 movdqa xmm4,XMMWORD PTR[64+r11] |
| 995 pcmpeqd xmm5,xmm5 |
| 996 |
| 997 movdqu xmm6,XMMWORD PTR[rcx] |
| 998 movdqa XMMWORD PTR[rax],xmm7 |
| 999 lea rax,QWORD PTR[16+rax] |
| 1000 dec r10d |
| 1001 jmp $L$key_loop |
| 1002 ALIGN 16 |
| 1003 $L$key_loop:: |
| 1004 DB 102,15,56,0,244 |
| 1005 |
| 1006 movdqa xmm8,xmm0 |
| 1007 movdqa xmm9,xmm1 |
| 1008 |
| 1009 pand xmm8,xmm6 |
| 1010 pand xmm9,xmm6 |
| 1011 movdqa xmm10,xmm2 |
| 1012 pcmpeqb xmm8,xmm0 |
| 1013 psllq xmm0,4 |
| 1014 movdqa xmm11,xmm3 |
| 1015 pcmpeqb xmm9,xmm1 |
| 1016 psllq xmm1,4 |
| 1017 |
| 1018 pand xmm10,xmm6 |
| 1019 pand xmm11,xmm6 |
| 1020 movdqa xmm12,xmm0 |
| 1021 pcmpeqb xmm10,xmm2 |
| 1022 psllq xmm2,4 |
| 1023 movdqa xmm13,xmm1 |
| 1024 pcmpeqb xmm11,xmm3 |
| 1025 psllq xmm3,4 |
| 1026 |
| 1027 movdqa xmm14,xmm2 |
| 1028 movdqa xmm15,xmm3 |
| 1029 pxor xmm8,xmm5 |
| 1030 pxor xmm9,xmm5 |
| 1031 |
| 1032 pand xmm12,xmm6 |
| 1033 pand xmm13,xmm6 |
| 1034 movdqa XMMWORD PTR[rax],xmm8 |
| 1035 pcmpeqb xmm12,xmm0 |
| 1036 psrlq xmm0,4 |
| 1037 movdqa XMMWORD PTR[16+rax],xmm9 |
| 1038 pcmpeqb xmm13,xmm1 |
| 1039 psrlq xmm1,4 |
| 1040 lea rcx,QWORD PTR[16+rcx] |
| 1041 |
| 1042 pand xmm14,xmm6 |
| 1043 pand xmm15,xmm6 |
| 1044 movdqa XMMWORD PTR[32+rax],xmm10 |
| 1045 pcmpeqb xmm14,xmm2 |
| 1046 psrlq xmm2,4 |
| 1047 movdqa XMMWORD PTR[48+rax],xmm11 |
| 1048 pcmpeqb xmm15,xmm3 |
| 1049 psrlq xmm3,4 |
| 1050 movdqu xmm6,XMMWORD PTR[rcx] |
| 1051 |
| 1052 pxor xmm13,xmm5 |
| 1053 pxor xmm14,xmm5 |
| 1054 movdqa XMMWORD PTR[64+rax],xmm12 |
| 1055 movdqa XMMWORD PTR[80+rax],xmm13 |
| 1056 movdqa XMMWORD PTR[96+rax],xmm14 |
| 1057 movdqa XMMWORD PTR[112+rax],xmm15 |
| 1058 lea rax,QWORD PTR[128+rax] |
| 1059 dec r10d |
| 1060 jnz $L$key_loop |
| 1061 |
| 1062 movdqa xmm7,XMMWORD PTR[80+r11] |
| 1063 |
| 1064 DB 0F3h,0C3h ;repret |
| 1065 _bsaes_key_convert ENDP |
| 1066 EXTERN asm_AES_cbc_encrypt:NEAR |
| 1067 PUBLIC bsaes_cbc_encrypt |
| 1068 |
| 1069 ALIGN 16 |
| 1070 bsaes_cbc_encrypt PROC PUBLIC |
| 1071 mov r11d,DWORD PTR[48+rsp] |
| 1072 cmp r11d,0 |
| 1073 jne asm_AES_cbc_encrypt |
| 1074 cmp r8,128 |
| 1075 jb asm_AES_cbc_encrypt |
| 1076 |
| 1077 mov rax,rsp |
| 1078 $L$cbc_dec_prologue:: |
| 1079 push rbp |
| 1080 push rbx |
| 1081 push r12 |
| 1082 push r13 |
| 1083 push r14 |
| 1084 push r15 |
| 1085 lea rsp,QWORD PTR[((-72))+rsp] |
| 1086 mov r10,QWORD PTR[160+rsp] |
| 1087 lea rsp,QWORD PTR[((-160))+rsp] |
| 1088 movaps XMMWORD PTR[64+rsp],xmm6 |
| 1089 movaps XMMWORD PTR[80+rsp],xmm7 |
| 1090 movaps XMMWORD PTR[96+rsp],xmm8 |
| 1091 movaps XMMWORD PTR[112+rsp],xmm9 |
| 1092 movaps XMMWORD PTR[128+rsp],xmm10 |
| 1093 movaps XMMWORD PTR[144+rsp],xmm11 |
| 1094 movaps XMMWORD PTR[160+rsp],xmm12 |
| 1095 movaps XMMWORD PTR[176+rsp],xmm13 |
| 1096 movaps XMMWORD PTR[192+rsp],xmm14 |
| 1097 movaps XMMWORD PTR[208+rsp],xmm15 |
| 1098 $L$cbc_dec_body:: |
| 1099 mov rbp,rsp |
| 1100 mov eax,DWORD PTR[240+r9] |
| 1101 mov r12,rcx |
| 1102 mov r13,rdx |
| 1103 mov r14,r8 |
| 1104 mov r15,r9 |
| 1105 mov rbx,r10 |
| 1106 shr r14,4 |
| 1107 |
| 1108 mov edx,eax |
| 1109 shl rax,7 |
| 1110 sub rax,96 |
| 1111 sub rsp,rax |
| 1112 |
| 1113 mov rax,rsp |
| 1114 mov rcx,r15 |
| 1115 mov r10d,edx |
| 1116 call _bsaes_key_convert |
| 1117 pxor xmm7,XMMWORD PTR[rsp] |
| 1118 movdqa XMMWORD PTR[rax],xmm6 |
| 1119 movdqa XMMWORD PTR[rsp],xmm7 |
| 1120 |
| 1121 movdqu xmm14,XMMWORD PTR[rbx] |
| 1122 sub r14,8 |
| 1123 $L$cbc_dec_loop:: |
| 1124 movdqu xmm15,XMMWORD PTR[r12] |
| 1125 movdqu xmm0,XMMWORD PTR[16+r12] |
| 1126 movdqu xmm1,XMMWORD PTR[32+r12] |
| 1127 movdqu xmm2,XMMWORD PTR[48+r12] |
| 1128 movdqu xmm3,XMMWORD PTR[64+r12] |
| 1129 movdqu xmm4,XMMWORD PTR[80+r12] |
| 1130 mov rax,rsp |
| 1131 movdqu xmm5,XMMWORD PTR[96+r12] |
| 1132 mov r10d,edx |
| 1133 movdqu xmm6,XMMWORD PTR[112+r12] |
| 1134 movdqa XMMWORD PTR[32+rbp],xmm14 |
| 1135 |
| 1136 call _bsaes_decrypt8 |
| 1137 |
| 1138 pxor xmm15,XMMWORD PTR[32+rbp] |
| 1139 movdqu xmm7,XMMWORD PTR[r12] |
| 1140 movdqu xmm8,XMMWORD PTR[16+r12] |
| 1141 pxor xmm0,xmm7 |
| 1142 movdqu xmm9,XMMWORD PTR[32+r12] |
| 1143 pxor xmm5,xmm8 |
| 1144 movdqu xmm10,XMMWORD PTR[48+r12] |
| 1145 pxor xmm3,xmm9 |
| 1146 movdqu xmm11,XMMWORD PTR[64+r12] |
| 1147 pxor xmm1,xmm10 |
| 1148 movdqu xmm12,XMMWORD PTR[80+r12] |
| 1149 pxor xmm6,xmm11 |
| 1150 movdqu xmm13,XMMWORD PTR[96+r12] |
| 1151 pxor xmm2,xmm12 |
| 1152 movdqu xmm14,XMMWORD PTR[112+r12] |
| 1153 pxor xmm4,xmm13 |
| 1154 movdqu XMMWORD PTR[r13],xmm15 |
| 1155 lea r12,QWORD PTR[128+r12] |
| 1156 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1157 movdqu XMMWORD PTR[32+r13],xmm5 |
| 1158 movdqu XMMWORD PTR[48+r13],xmm3 |
| 1159 movdqu XMMWORD PTR[64+r13],xmm1 |
| 1160 movdqu XMMWORD PTR[80+r13],xmm6 |
| 1161 movdqu XMMWORD PTR[96+r13],xmm2 |
| 1162 movdqu XMMWORD PTR[112+r13],xmm4 |
| 1163 lea r13,QWORD PTR[128+r13] |
| 1164 sub r14,8 |
| 1165 jnc $L$cbc_dec_loop |
| 1166 |
| 1167 add r14,8 |
| 1168 jz $L$cbc_dec_done |
| 1169 |
| 1170 movdqu xmm15,XMMWORD PTR[r12] |
| 1171 mov rax,rsp |
| 1172 mov r10d,edx |
| 1173 cmp r14,2 |
| 1174 jb $L$cbc_dec_one |
| 1175 movdqu xmm0,XMMWORD PTR[16+r12] |
| 1176 je $L$cbc_dec_two |
| 1177 movdqu xmm1,XMMWORD PTR[32+r12] |
| 1178 cmp r14,4 |
| 1179 jb $L$cbc_dec_three |
| 1180 movdqu xmm2,XMMWORD PTR[48+r12] |
| 1181 je $L$cbc_dec_four |
| 1182 movdqu xmm3,XMMWORD PTR[64+r12] |
| 1183 cmp r14,6 |
| 1184 jb $L$cbc_dec_five |
| 1185 movdqu xmm4,XMMWORD PTR[80+r12] |
| 1186 je $L$cbc_dec_six |
| 1187 movdqu xmm5,XMMWORD PTR[96+r12] |
| 1188 movdqa XMMWORD PTR[32+rbp],xmm14 |
| 1189 call _bsaes_decrypt8 |
| 1190 pxor xmm15,XMMWORD PTR[32+rbp] |
| 1191 movdqu xmm7,XMMWORD PTR[r12] |
| 1192 movdqu xmm8,XMMWORD PTR[16+r12] |
| 1193 pxor xmm0,xmm7 |
| 1194 movdqu xmm9,XMMWORD PTR[32+r12] |
| 1195 pxor xmm5,xmm8 |
| 1196 movdqu xmm10,XMMWORD PTR[48+r12] |
| 1197 pxor xmm3,xmm9 |
| 1198 movdqu xmm11,XMMWORD PTR[64+r12] |
| 1199 pxor xmm1,xmm10 |
| 1200 movdqu xmm12,XMMWORD PTR[80+r12] |
| 1201 pxor xmm6,xmm11 |
| 1202 movdqu xmm14,XMMWORD PTR[96+r12] |
| 1203 pxor xmm2,xmm12 |
| 1204 movdqu XMMWORD PTR[r13],xmm15 |
| 1205 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1206 movdqu XMMWORD PTR[32+r13],xmm5 |
| 1207 movdqu XMMWORD PTR[48+r13],xmm3 |
| 1208 movdqu XMMWORD PTR[64+r13],xmm1 |
| 1209 movdqu XMMWORD PTR[80+r13],xmm6 |
| 1210 movdqu XMMWORD PTR[96+r13],xmm2 |
| 1211 jmp $L$cbc_dec_done |
| 1212 ALIGN 16 |
| 1213 $L$cbc_dec_six:: |
| 1214 movdqa XMMWORD PTR[32+rbp],xmm14 |
| 1215 call _bsaes_decrypt8 |
| 1216 pxor xmm15,XMMWORD PTR[32+rbp] |
| 1217 movdqu xmm7,XMMWORD PTR[r12] |
| 1218 movdqu xmm8,XMMWORD PTR[16+r12] |
| 1219 pxor xmm0,xmm7 |
| 1220 movdqu xmm9,XMMWORD PTR[32+r12] |
| 1221 pxor xmm5,xmm8 |
| 1222 movdqu xmm10,XMMWORD PTR[48+r12] |
| 1223 pxor xmm3,xmm9 |
| 1224 movdqu xmm11,XMMWORD PTR[64+r12] |
| 1225 pxor xmm1,xmm10 |
| 1226 movdqu xmm14,XMMWORD PTR[80+r12] |
| 1227 pxor xmm6,xmm11 |
| 1228 movdqu XMMWORD PTR[r13],xmm15 |
| 1229 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1230 movdqu XMMWORD PTR[32+r13],xmm5 |
| 1231 movdqu XMMWORD PTR[48+r13],xmm3 |
| 1232 movdqu XMMWORD PTR[64+r13],xmm1 |
| 1233 movdqu XMMWORD PTR[80+r13],xmm6 |
| 1234 jmp $L$cbc_dec_done |
| 1235 ALIGN 16 |
| 1236 $L$cbc_dec_five:: |
| 1237 movdqa XMMWORD PTR[32+rbp],xmm14 |
| 1238 call _bsaes_decrypt8 |
| 1239 pxor xmm15,XMMWORD PTR[32+rbp] |
| 1240 movdqu xmm7,XMMWORD PTR[r12] |
| 1241 movdqu xmm8,XMMWORD PTR[16+r12] |
| 1242 pxor xmm0,xmm7 |
| 1243 movdqu xmm9,XMMWORD PTR[32+r12] |
| 1244 pxor xmm5,xmm8 |
| 1245 movdqu xmm10,XMMWORD PTR[48+r12] |
| 1246 pxor xmm3,xmm9 |
| 1247 movdqu xmm14,XMMWORD PTR[64+r12] |
| 1248 pxor xmm1,xmm10 |
| 1249 movdqu XMMWORD PTR[r13],xmm15 |
| 1250 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1251 movdqu XMMWORD PTR[32+r13],xmm5 |
| 1252 movdqu XMMWORD PTR[48+r13],xmm3 |
| 1253 movdqu XMMWORD PTR[64+r13],xmm1 |
| 1254 jmp $L$cbc_dec_done |
| 1255 ALIGN 16 |
| 1256 $L$cbc_dec_four:: |
| 1257 movdqa XMMWORD PTR[32+rbp],xmm14 |
| 1258 call _bsaes_decrypt8 |
| 1259 pxor xmm15,XMMWORD PTR[32+rbp] |
| 1260 movdqu xmm7,XMMWORD PTR[r12] |
| 1261 movdqu xmm8,XMMWORD PTR[16+r12] |
| 1262 pxor xmm0,xmm7 |
| 1263 movdqu xmm9,XMMWORD PTR[32+r12] |
| 1264 pxor xmm5,xmm8 |
| 1265 movdqu xmm14,XMMWORD PTR[48+r12] |
| 1266 pxor xmm3,xmm9 |
| 1267 movdqu XMMWORD PTR[r13],xmm15 |
| 1268 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1269 movdqu XMMWORD PTR[32+r13],xmm5 |
| 1270 movdqu XMMWORD PTR[48+r13],xmm3 |
| 1271 jmp $L$cbc_dec_done |
| 1272 ALIGN 16 |
| 1273 $L$cbc_dec_three:: |
| 1274 movdqa XMMWORD PTR[32+rbp],xmm14 |
| 1275 call _bsaes_decrypt8 |
| 1276 pxor xmm15,XMMWORD PTR[32+rbp] |
| 1277 movdqu xmm7,XMMWORD PTR[r12] |
| 1278 movdqu xmm8,XMMWORD PTR[16+r12] |
| 1279 pxor xmm0,xmm7 |
| 1280 movdqu xmm14,XMMWORD PTR[32+r12] |
| 1281 pxor xmm5,xmm8 |
| 1282 movdqu XMMWORD PTR[r13],xmm15 |
| 1283 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1284 movdqu XMMWORD PTR[32+r13],xmm5 |
| 1285 jmp $L$cbc_dec_done |
| 1286 ALIGN 16 |
| 1287 $L$cbc_dec_two:: |
| 1288 movdqa XMMWORD PTR[32+rbp],xmm14 |
| 1289 call _bsaes_decrypt8 |
| 1290 pxor xmm15,XMMWORD PTR[32+rbp] |
| 1291 movdqu xmm7,XMMWORD PTR[r12] |
| 1292 movdqu xmm14,XMMWORD PTR[16+r12] |
| 1293 pxor xmm0,xmm7 |
| 1294 movdqu XMMWORD PTR[r13],xmm15 |
| 1295 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1296 jmp $L$cbc_dec_done |
| 1297 ALIGN 16 |
| 1298 $L$cbc_dec_one:: |
| 1299 lea rcx,QWORD PTR[r12] |
| 1300 lea rdx,QWORD PTR[32+rbp] |
| 1301 lea r8,QWORD PTR[r15] |
| 1302 call asm_AES_decrypt |
| 1303 pxor xmm14,XMMWORD PTR[32+rbp] |
| 1304 movdqu XMMWORD PTR[r13],xmm14 |
| 1305 movdqa xmm14,xmm15 |
| 1306 |
| 1307 $L$cbc_dec_done:: |
| 1308 movdqu XMMWORD PTR[rbx],xmm14 |
| 1309 lea rax,QWORD PTR[rsp] |
| 1310 pxor xmm0,xmm0 |
| 1311 $L$cbc_dec_bzero:: |
| 1312 movdqa XMMWORD PTR[rax],xmm0 |
| 1313 movdqa XMMWORD PTR[16+rax],xmm0 |
| 1314 lea rax,QWORD PTR[32+rax] |
| 1315 cmp rbp,rax |
| 1316 ja $L$cbc_dec_bzero |
| 1317 |
| 1318 lea rsp,QWORD PTR[rbp] |
| 1319 movaps xmm6,XMMWORD PTR[64+rbp] |
| 1320 movaps xmm7,XMMWORD PTR[80+rbp] |
| 1321 movaps xmm8,XMMWORD PTR[96+rbp] |
| 1322 movaps xmm9,XMMWORD PTR[112+rbp] |
| 1323 movaps xmm10,XMMWORD PTR[128+rbp] |
| 1324 movaps xmm11,XMMWORD PTR[144+rbp] |
| 1325 movaps xmm12,XMMWORD PTR[160+rbp] |
| 1326 movaps xmm13,XMMWORD PTR[176+rbp] |
| 1327 movaps xmm14,XMMWORD PTR[192+rbp] |
| 1328 movaps xmm15,XMMWORD PTR[208+rbp] |
| 1329 lea rsp,QWORD PTR[160+rbp] |
| 1330 mov r15,QWORD PTR[72+rsp] |
| 1331 mov r14,QWORD PTR[80+rsp] |
| 1332 mov r13,QWORD PTR[88+rsp] |
| 1333 mov r12,QWORD PTR[96+rsp] |
| 1334 mov rbx,QWORD PTR[104+rsp] |
| 1335 mov rax,QWORD PTR[112+rsp] |
| 1336 lea rsp,QWORD PTR[120+rsp] |
| 1337 mov rbp,rax |
| 1338 $L$cbc_dec_epilogue:: |
| 1339 DB 0F3h,0C3h ;repret |
| 1340 bsaes_cbc_encrypt ENDP |
| 1341 |
| 1342 PUBLIC bsaes_ctr32_encrypt_blocks |
| 1343 |
| 1344 ALIGN 16 |
| 1345 bsaes_ctr32_encrypt_blocks PROC PUBLIC |
| 1346 mov rax,rsp |
| 1347 $L$ctr_enc_prologue:: |
| 1348 push rbp |
| 1349 push rbx |
| 1350 push r12 |
| 1351 push r13 |
| 1352 push r14 |
| 1353 push r15 |
| 1354 lea rsp,QWORD PTR[((-72))+rsp] |
| 1355 mov r10,QWORD PTR[160+rsp] |
| 1356 lea rsp,QWORD PTR[((-160))+rsp] |
| 1357 movaps XMMWORD PTR[64+rsp],xmm6 |
| 1358 movaps XMMWORD PTR[80+rsp],xmm7 |
| 1359 movaps XMMWORD PTR[96+rsp],xmm8 |
| 1360 movaps XMMWORD PTR[112+rsp],xmm9 |
| 1361 movaps XMMWORD PTR[128+rsp],xmm10 |
| 1362 movaps XMMWORD PTR[144+rsp],xmm11 |
| 1363 movaps XMMWORD PTR[160+rsp],xmm12 |
| 1364 movaps XMMWORD PTR[176+rsp],xmm13 |
| 1365 movaps XMMWORD PTR[192+rsp],xmm14 |
| 1366 movaps XMMWORD PTR[208+rsp],xmm15 |
| 1367 $L$ctr_enc_body:: |
| 1368 mov rbp,rsp |
| 1369 movdqu xmm0,XMMWORD PTR[r10] |
| 1370 mov eax,DWORD PTR[240+r9] |
| 1371 mov r12,rcx |
| 1372 mov r13,rdx |
| 1373 mov r14,r8 |
| 1374 mov r15,r9 |
| 1375 movdqa XMMWORD PTR[32+rbp],xmm0 |
| 1376 cmp r8,8 |
| 1377 jb $L$ctr_enc_short |
| 1378 |
| 1379 mov ebx,eax |
| 1380 shl rax,7 |
| 1381 sub rax,96 |
| 1382 sub rsp,rax |
| 1383 |
| 1384 mov rax,rsp |
| 1385 mov rcx,r15 |
| 1386 mov r10d,ebx |
| 1387 call _bsaes_key_convert |
| 1388 pxor xmm7,xmm6 |
| 1389 movdqa XMMWORD PTR[rax],xmm7 |
| 1390 |
| 1391 movdqa xmm8,XMMWORD PTR[rsp] |
| 1392 lea r11,QWORD PTR[$L$ADD1] |
| 1393 movdqa xmm15,XMMWORD PTR[32+rbp] |
| 1394 movdqa xmm7,XMMWORD PTR[((-32))+r11] |
| 1395 DB 102,68,15,56,0,199 |
| 1396 DB 102,68,15,56,0,255 |
| 1397 movdqa XMMWORD PTR[rsp],xmm8 |
| 1398 jmp $L$ctr_enc_loop |
| 1399 ALIGN 16 |
| 1400 $L$ctr_enc_loop:: |
| 1401 movdqa XMMWORD PTR[32+rbp],xmm15 |
| 1402 movdqa xmm0,xmm15 |
| 1403 movdqa xmm1,xmm15 |
| 1404 paddd xmm0,XMMWORD PTR[r11] |
| 1405 movdqa xmm2,xmm15 |
| 1406 paddd xmm1,XMMWORD PTR[16+r11] |
| 1407 movdqa xmm3,xmm15 |
| 1408 paddd xmm2,XMMWORD PTR[32+r11] |
| 1409 movdqa xmm4,xmm15 |
| 1410 paddd xmm3,XMMWORD PTR[48+r11] |
| 1411 movdqa xmm5,xmm15 |
| 1412 paddd xmm4,XMMWORD PTR[64+r11] |
| 1413 movdqa xmm6,xmm15 |
| 1414 paddd xmm5,XMMWORD PTR[80+r11] |
| 1415 paddd xmm6,XMMWORD PTR[96+r11] |
| 1416 |
| 1417 |
| 1418 |
| 1419 movdqa xmm8,XMMWORD PTR[rsp] |
| 1420 lea rax,QWORD PTR[16+rsp] |
| 1421 movdqa xmm7,XMMWORD PTR[((-16))+r11] |
| 1422 pxor xmm15,xmm8 |
| 1423 pxor xmm0,xmm8 |
| 1424 pxor xmm1,xmm8 |
| 1425 pxor xmm2,xmm8 |
| 1426 DB 102,68,15,56,0,255 |
| 1427 DB 102,15,56,0,199 |
| 1428 pxor xmm3,xmm8 |
| 1429 pxor xmm4,xmm8 |
| 1430 DB 102,15,56,0,207 |
| 1431 DB 102,15,56,0,215 |
| 1432 pxor xmm5,xmm8 |
| 1433 pxor xmm6,xmm8 |
| 1434 DB 102,15,56,0,223 |
| 1435 DB 102,15,56,0,231 |
| 1436 DB 102,15,56,0,239 |
| 1437 DB 102,15,56,0,247 |
| 1438 lea r11,QWORD PTR[$L$BS0] |
| 1439 mov r10d,ebx |
| 1440 |
| 1441 call _bsaes_encrypt8_bitslice |
| 1442 |
| 1443 sub r14,8 |
| 1444 jc $L$ctr_enc_loop_done |
| 1445 |
| 1446 movdqu xmm7,XMMWORD PTR[r12] |
| 1447 movdqu xmm8,XMMWORD PTR[16+r12] |
| 1448 movdqu xmm9,XMMWORD PTR[32+r12] |
| 1449 movdqu xmm10,XMMWORD PTR[48+r12] |
| 1450 movdqu xmm11,XMMWORD PTR[64+r12] |
| 1451 movdqu xmm12,XMMWORD PTR[80+r12] |
| 1452 movdqu xmm13,XMMWORD PTR[96+r12] |
| 1453 movdqu xmm14,XMMWORD PTR[112+r12] |
| 1454 lea r12,QWORD PTR[128+r12] |
| 1455 pxor xmm7,xmm15 |
| 1456 movdqa xmm15,XMMWORD PTR[32+rbp] |
| 1457 pxor xmm0,xmm8 |
| 1458 movdqu XMMWORD PTR[r13],xmm7 |
| 1459 pxor xmm3,xmm9 |
| 1460 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1461 pxor xmm5,xmm10 |
| 1462 movdqu XMMWORD PTR[32+r13],xmm3 |
| 1463 pxor xmm2,xmm11 |
| 1464 movdqu XMMWORD PTR[48+r13],xmm5 |
| 1465 pxor xmm6,xmm12 |
| 1466 movdqu XMMWORD PTR[64+r13],xmm2 |
| 1467 pxor xmm1,xmm13 |
| 1468 movdqu XMMWORD PTR[80+r13],xmm6 |
| 1469 pxor xmm4,xmm14 |
| 1470 movdqu XMMWORD PTR[96+r13],xmm1 |
| 1471 lea r11,QWORD PTR[$L$ADD1] |
| 1472 movdqu XMMWORD PTR[112+r13],xmm4 |
| 1473 lea r13,QWORD PTR[128+r13] |
| 1474 paddd xmm15,XMMWORD PTR[112+r11] |
| 1475 jnz $L$ctr_enc_loop |
| 1476 |
| 1477 jmp $L$ctr_enc_done |
| 1478 ALIGN 16 |
| 1479 $L$ctr_enc_loop_done:: |
| 1480 add r14,8 |
| 1481 movdqu xmm7,XMMWORD PTR[r12] |
| 1482 pxor xmm15,xmm7 |
| 1483 movdqu XMMWORD PTR[r13],xmm15 |
| 1484 cmp r14,2 |
| 1485 jb $L$ctr_enc_done |
| 1486 movdqu xmm8,XMMWORD PTR[16+r12] |
| 1487 pxor xmm0,xmm8 |
| 1488 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1489 je $L$ctr_enc_done |
| 1490 movdqu xmm9,XMMWORD PTR[32+r12] |
| 1491 pxor xmm3,xmm9 |
| 1492 movdqu XMMWORD PTR[32+r13],xmm3 |
| 1493 cmp r14,4 |
| 1494 jb $L$ctr_enc_done |
| 1495 movdqu xmm10,XMMWORD PTR[48+r12] |
| 1496 pxor xmm5,xmm10 |
| 1497 movdqu XMMWORD PTR[48+r13],xmm5 |
| 1498 je $L$ctr_enc_done |
| 1499 movdqu xmm11,XMMWORD PTR[64+r12] |
| 1500 pxor xmm2,xmm11 |
| 1501 movdqu XMMWORD PTR[64+r13],xmm2 |
| 1502 cmp r14,6 |
| 1503 jb $L$ctr_enc_done |
| 1504 movdqu xmm12,XMMWORD PTR[80+r12] |
| 1505 pxor xmm6,xmm12 |
| 1506 movdqu XMMWORD PTR[80+r13],xmm6 |
| 1507 je $L$ctr_enc_done |
| 1508 movdqu xmm13,XMMWORD PTR[96+r12] |
| 1509 pxor xmm1,xmm13 |
| 1510 movdqu XMMWORD PTR[96+r13],xmm1 |
| 1511 jmp $L$ctr_enc_done |
| 1512 |
| 1513 ALIGN 16 |
| 1514 $L$ctr_enc_short:: |
| 1515 lea rcx,QWORD PTR[32+rbp] |
| 1516 lea rdx,QWORD PTR[48+rbp] |
| 1517 lea r8,QWORD PTR[r15] |
| 1518 call asm_AES_encrypt |
| 1519 movdqu xmm0,XMMWORD PTR[r12] |
| 1520 lea r12,QWORD PTR[16+r12] |
| 1521 mov eax,DWORD PTR[44+rbp] |
| 1522 bswap eax |
| 1523 pxor xmm0,XMMWORD PTR[48+rbp] |
| 1524 inc eax |
| 1525 movdqu XMMWORD PTR[r13],xmm0 |
| 1526 bswap eax |
| 1527 lea r13,QWORD PTR[16+r13] |
| 1528 mov DWORD PTR[44+rsp],eax |
| 1529 dec r14 |
| 1530 jnz $L$ctr_enc_short |
| 1531 |
| 1532 $L$ctr_enc_done:: |
| 1533 lea rax,QWORD PTR[rsp] |
| 1534 pxor xmm0,xmm0 |
| 1535 $L$ctr_enc_bzero:: |
| 1536 movdqa XMMWORD PTR[rax],xmm0 |
| 1537 movdqa XMMWORD PTR[16+rax],xmm0 |
| 1538 lea rax,QWORD PTR[32+rax] |
| 1539 cmp rbp,rax |
| 1540 ja $L$ctr_enc_bzero |
| 1541 |
| 1542 lea rsp,QWORD PTR[rbp] |
| 1543 movaps xmm6,XMMWORD PTR[64+rbp] |
| 1544 movaps xmm7,XMMWORD PTR[80+rbp] |
| 1545 movaps xmm8,XMMWORD PTR[96+rbp] |
| 1546 movaps xmm9,XMMWORD PTR[112+rbp] |
| 1547 movaps xmm10,XMMWORD PTR[128+rbp] |
| 1548 movaps xmm11,XMMWORD PTR[144+rbp] |
| 1549 movaps xmm12,XMMWORD PTR[160+rbp] |
| 1550 movaps xmm13,XMMWORD PTR[176+rbp] |
| 1551 movaps xmm14,XMMWORD PTR[192+rbp] |
| 1552 movaps xmm15,XMMWORD PTR[208+rbp] |
| 1553 lea rsp,QWORD PTR[160+rbp] |
| 1554 mov r15,QWORD PTR[72+rsp] |
| 1555 mov r14,QWORD PTR[80+rsp] |
| 1556 mov r13,QWORD PTR[88+rsp] |
| 1557 mov r12,QWORD PTR[96+rsp] |
| 1558 mov rbx,QWORD PTR[104+rsp] |
| 1559 mov rax,QWORD PTR[112+rsp] |
| 1560 lea rsp,QWORD PTR[120+rsp] |
| 1561 mov rbp,rax |
| 1562 $L$ctr_enc_epilogue:: |
| 1563 DB 0F3h,0C3h ;repret |
| 1564 bsaes_ctr32_encrypt_blocks ENDP |
| 1565 PUBLIC bsaes_xts_encrypt |
| 1566 |
| 1567 ALIGN 16 |
| 1568 bsaes_xts_encrypt PROC PUBLIC |
| 1569 mov rax,rsp |
| 1570 $L$xts_enc_prologue:: |
| 1571 push rbp |
| 1572 push rbx |
| 1573 push r12 |
| 1574 push r13 |
| 1575 push r14 |
| 1576 push r15 |
| 1577 lea rsp,QWORD PTR[((-72))+rsp] |
| 1578 mov r10,QWORD PTR[160+rsp] |
| 1579 mov r11,QWORD PTR[168+rsp] |
| 1580 lea rsp,QWORD PTR[((-160))+rsp] |
| 1581 movaps XMMWORD PTR[64+rsp],xmm6 |
| 1582 movaps XMMWORD PTR[80+rsp],xmm7 |
| 1583 movaps XMMWORD PTR[96+rsp],xmm8 |
| 1584 movaps XMMWORD PTR[112+rsp],xmm9 |
| 1585 movaps XMMWORD PTR[128+rsp],xmm10 |
| 1586 movaps XMMWORD PTR[144+rsp],xmm11 |
| 1587 movaps XMMWORD PTR[160+rsp],xmm12 |
| 1588 movaps XMMWORD PTR[176+rsp],xmm13 |
| 1589 movaps XMMWORD PTR[192+rsp],xmm14 |
| 1590 movaps XMMWORD PTR[208+rsp],xmm15 |
| 1591 $L$xts_enc_body:: |
| 1592 mov rbp,rsp |
| 1593 mov r12,rcx |
| 1594 mov r13,rdx |
| 1595 mov r14,r8 |
| 1596 mov r15,r9 |
| 1597 |
| 1598 lea rcx,QWORD PTR[r11] |
| 1599 lea rdx,QWORD PTR[32+rbp] |
| 1600 lea r8,QWORD PTR[r10] |
| 1601 call asm_AES_encrypt |
| 1602 |
| 1603 mov eax,DWORD PTR[240+r15] |
| 1604 mov rbx,r14 |
| 1605 |
| 1606 mov edx,eax |
| 1607 shl rax,7 |
| 1608 sub rax,96 |
| 1609 sub rsp,rax |
| 1610 |
| 1611 mov rax,rsp |
| 1612 mov rcx,r15 |
| 1613 mov r10d,edx |
| 1614 call _bsaes_key_convert |
| 1615 pxor xmm7,xmm6 |
| 1616 movdqa XMMWORD PTR[rax],xmm7 |
| 1617 |
| 1618 and r14,-16 |
| 1619 sub rsp,080h |
| 1620 movdqa xmm6,XMMWORD PTR[32+rbp] |
| 1621 |
| 1622 pxor xmm14,xmm14 |
| 1623 movdqa xmm12,XMMWORD PTR[$L$xts_magic] |
| 1624 pcmpgtd xmm14,xmm6 |
| 1625 |
| 1626 sub r14,080h |
| 1627 jc $L$xts_enc_short |
| 1628 jmp $L$xts_enc_loop |
| 1629 |
| 1630 ALIGN 16 |
| 1631 $L$xts_enc_loop:: |
| 1632 pshufd xmm13,xmm14,013h |
| 1633 pxor xmm14,xmm14 |
| 1634 movdqa xmm15,xmm6 |
| 1635 movdqa XMMWORD PTR[rsp],xmm6 |
| 1636 paddq xmm6,xmm6 |
| 1637 pand xmm13,xmm12 |
| 1638 pcmpgtd xmm14,xmm6 |
| 1639 pxor xmm6,xmm13 |
| 1640 pshufd xmm13,xmm14,013h |
| 1641 pxor xmm14,xmm14 |
| 1642 movdqa xmm0,xmm6 |
| 1643 movdqa XMMWORD PTR[16+rsp],xmm6 |
| 1644 paddq xmm6,xmm6 |
| 1645 pand xmm13,xmm12 |
| 1646 pcmpgtd xmm14,xmm6 |
| 1647 pxor xmm6,xmm13 |
| 1648 movdqu xmm7,XMMWORD PTR[r12] |
| 1649 pshufd xmm13,xmm14,013h |
| 1650 pxor xmm14,xmm14 |
| 1651 movdqa xmm1,xmm6 |
| 1652 movdqa XMMWORD PTR[32+rsp],xmm6 |
| 1653 paddq xmm6,xmm6 |
| 1654 pand xmm13,xmm12 |
| 1655 pcmpgtd xmm14,xmm6 |
| 1656 pxor xmm6,xmm13 |
| 1657 movdqu xmm8,XMMWORD PTR[16+r12] |
| 1658 pxor xmm15,xmm7 |
| 1659 pshufd xmm13,xmm14,013h |
| 1660 pxor xmm14,xmm14 |
| 1661 movdqa xmm2,xmm6 |
| 1662 movdqa XMMWORD PTR[48+rsp],xmm6 |
| 1663 paddq xmm6,xmm6 |
| 1664 pand xmm13,xmm12 |
| 1665 pcmpgtd xmm14,xmm6 |
| 1666 pxor xmm6,xmm13 |
| 1667 movdqu xmm9,XMMWORD PTR[32+r12] |
| 1668 pxor xmm0,xmm8 |
| 1669 pshufd xmm13,xmm14,013h |
| 1670 pxor xmm14,xmm14 |
| 1671 movdqa xmm3,xmm6 |
| 1672 movdqa XMMWORD PTR[64+rsp],xmm6 |
| 1673 paddq xmm6,xmm6 |
| 1674 pand xmm13,xmm12 |
| 1675 pcmpgtd xmm14,xmm6 |
| 1676 pxor xmm6,xmm13 |
| 1677 movdqu xmm10,XMMWORD PTR[48+r12] |
| 1678 pxor xmm1,xmm9 |
| 1679 pshufd xmm13,xmm14,013h |
| 1680 pxor xmm14,xmm14 |
| 1681 movdqa xmm4,xmm6 |
| 1682 movdqa XMMWORD PTR[80+rsp],xmm6 |
| 1683 paddq xmm6,xmm6 |
| 1684 pand xmm13,xmm12 |
| 1685 pcmpgtd xmm14,xmm6 |
| 1686 pxor xmm6,xmm13 |
| 1687 movdqu xmm11,XMMWORD PTR[64+r12] |
| 1688 pxor xmm2,xmm10 |
| 1689 pshufd xmm13,xmm14,013h |
| 1690 pxor xmm14,xmm14 |
| 1691 movdqa xmm5,xmm6 |
| 1692 movdqa XMMWORD PTR[96+rsp],xmm6 |
| 1693 paddq xmm6,xmm6 |
| 1694 pand xmm13,xmm12 |
| 1695 pcmpgtd xmm14,xmm6 |
| 1696 pxor xmm6,xmm13 |
| 1697 movdqu xmm12,XMMWORD PTR[80+r12] |
| 1698 pxor xmm3,xmm11 |
| 1699 movdqu xmm13,XMMWORD PTR[96+r12] |
| 1700 pxor xmm4,xmm12 |
| 1701 movdqu xmm14,XMMWORD PTR[112+r12] |
| 1702 lea r12,QWORD PTR[128+r12] |
| 1703 movdqa XMMWORD PTR[112+rsp],xmm6 |
| 1704 pxor xmm5,xmm13 |
| 1705 lea rax,QWORD PTR[128+rsp] |
| 1706 pxor xmm6,xmm14 |
| 1707 mov r10d,edx |
| 1708 |
| 1709 call _bsaes_encrypt8 |
| 1710 |
| 1711 pxor xmm15,XMMWORD PTR[rsp] |
| 1712 pxor xmm0,XMMWORD PTR[16+rsp] |
| 1713 movdqu XMMWORD PTR[r13],xmm15 |
| 1714 pxor xmm3,XMMWORD PTR[32+rsp] |
| 1715 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1716 pxor xmm5,XMMWORD PTR[48+rsp] |
| 1717 movdqu XMMWORD PTR[32+r13],xmm3 |
| 1718 pxor xmm2,XMMWORD PTR[64+rsp] |
| 1719 movdqu XMMWORD PTR[48+r13],xmm5 |
| 1720 pxor xmm6,XMMWORD PTR[80+rsp] |
| 1721 movdqu XMMWORD PTR[64+r13],xmm2 |
| 1722 pxor xmm1,XMMWORD PTR[96+rsp] |
| 1723 movdqu XMMWORD PTR[80+r13],xmm6 |
| 1724 pxor xmm4,XMMWORD PTR[112+rsp] |
| 1725 movdqu XMMWORD PTR[96+r13],xmm1 |
| 1726 movdqu XMMWORD PTR[112+r13],xmm4 |
| 1727 lea r13,QWORD PTR[128+r13] |
| 1728 |
| 1729 movdqa xmm6,XMMWORD PTR[112+rsp] |
| 1730 pxor xmm14,xmm14 |
| 1731 movdqa xmm12,XMMWORD PTR[$L$xts_magic] |
| 1732 pcmpgtd xmm14,xmm6 |
| 1733 pshufd xmm13,xmm14,013h |
| 1734 pxor xmm14,xmm14 |
| 1735 paddq xmm6,xmm6 |
| 1736 pand xmm13,xmm12 |
| 1737 pcmpgtd xmm14,xmm6 |
| 1738 pxor xmm6,xmm13 |
| 1739 |
| 1740 sub r14,080h |
| 1741 jnc $L$xts_enc_loop |
| 1742 |
| 1743 $L$xts_enc_short:: |
| 1744 add r14,080h |
| 1745 jz $L$xts_enc_done |
| 1746 pshufd xmm13,xmm14,013h |
| 1747 pxor xmm14,xmm14 |
| 1748 movdqa xmm15,xmm6 |
| 1749 movdqa XMMWORD PTR[rsp],xmm6 |
| 1750 paddq xmm6,xmm6 |
| 1751 pand xmm13,xmm12 |
| 1752 pcmpgtd xmm14,xmm6 |
| 1753 pxor xmm6,xmm13 |
| 1754 pshufd xmm13,xmm14,013h |
| 1755 pxor xmm14,xmm14 |
| 1756 movdqa xmm0,xmm6 |
| 1757 movdqa XMMWORD PTR[16+rsp],xmm6 |
| 1758 paddq xmm6,xmm6 |
| 1759 pand xmm13,xmm12 |
| 1760 pcmpgtd xmm14,xmm6 |
| 1761 pxor xmm6,xmm13 |
| 1762 movdqu xmm7,XMMWORD PTR[r12] |
| 1763 cmp r14,16 |
| 1764 je $L$xts_enc_1 |
| 1765 pshufd xmm13,xmm14,013h |
| 1766 pxor xmm14,xmm14 |
| 1767 movdqa xmm1,xmm6 |
| 1768 movdqa XMMWORD PTR[32+rsp],xmm6 |
| 1769 paddq xmm6,xmm6 |
| 1770 pand xmm13,xmm12 |
| 1771 pcmpgtd xmm14,xmm6 |
| 1772 pxor xmm6,xmm13 |
| 1773 movdqu xmm8,XMMWORD PTR[16+r12] |
| 1774 cmp r14,32 |
| 1775 je $L$xts_enc_2 |
| 1776 pxor xmm15,xmm7 |
| 1777 pshufd xmm13,xmm14,013h |
| 1778 pxor xmm14,xmm14 |
| 1779 movdqa xmm2,xmm6 |
| 1780 movdqa XMMWORD PTR[48+rsp],xmm6 |
| 1781 paddq xmm6,xmm6 |
| 1782 pand xmm13,xmm12 |
| 1783 pcmpgtd xmm14,xmm6 |
| 1784 pxor xmm6,xmm13 |
| 1785 movdqu xmm9,XMMWORD PTR[32+r12] |
| 1786 cmp r14,48 |
| 1787 je $L$xts_enc_3 |
| 1788 pxor xmm0,xmm8 |
| 1789 pshufd xmm13,xmm14,013h |
| 1790 pxor xmm14,xmm14 |
| 1791 movdqa xmm3,xmm6 |
| 1792 movdqa XMMWORD PTR[64+rsp],xmm6 |
| 1793 paddq xmm6,xmm6 |
| 1794 pand xmm13,xmm12 |
| 1795 pcmpgtd xmm14,xmm6 |
| 1796 pxor xmm6,xmm13 |
| 1797 movdqu xmm10,XMMWORD PTR[48+r12] |
| 1798 cmp r14,64 |
| 1799 je $L$xts_enc_4 |
| 1800 pxor xmm1,xmm9 |
| 1801 pshufd xmm13,xmm14,013h |
| 1802 pxor xmm14,xmm14 |
| 1803 movdqa xmm4,xmm6 |
| 1804 movdqa XMMWORD PTR[80+rsp],xmm6 |
| 1805 paddq xmm6,xmm6 |
| 1806 pand xmm13,xmm12 |
| 1807 pcmpgtd xmm14,xmm6 |
| 1808 pxor xmm6,xmm13 |
| 1809 movdqu xmm11,XMMWORD PTR[64+r12] |
| 1810 cmp r14,80 |
| 1811 je $L$xts_enc_5 |
| 1812 pxor xmm2,xmm10 |
| 1813 pshufd xmm13,xmm14,013h |
| 1814 pxor xmm14,xmm14 |
| 1815 movdqa xmm5,xmm6 |
| 1816 movdqa XMMWORD PTR[96+rsp],xmm6 |
| 1817 paddq xmm6,xmm6 |
| 1818 pand xmm13,xmm12 |
| 1819 pcmpgtd xmm14,xmm6 |
| 1820 pxor xmm6,xmm13 |
| 1821 movdqu xmm12,XMMWORD PTR[80+r12] |
| 1822 cmp r14,96 |
| 1823 je $L$xts_enc_6 |
| 1824 pxor xmm3,xmm11 |
| 1825 movdqu xmm13,XMMWORD PTR[96+r12] |
| 1826 pxor xmm4,xmm12 |
| 1827 movdqa XMMWORD PTR[112+rsp],xmm6 |
| 1828 lea r12,QWORD PTR[112+r12] |
| 1829 pxor xmm5,xmm13 |
| 1830 lea rax,QWORD PTR[128+rsp] |
| 1831 mov r10d,edx |
| 1832 |
| 1833 call _bsaes_encrypt8 |
| 1834 |
| 1835 pxor xmm15,XMMWORD PTR[rsp] |
| 1836 pxor xmm0,XMMWORD PTR[16+rsp] |
| 1837 movdqu XMMWORD PTR[r13],xmm15 |
| 1838 pxor xmm3,XMMWORD PTR[32+rsp] |
| 1839 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1840 pxor xmm5,XMMWORD PTR[48+rsp] |
| 1841 movdqu XMMWORD PTR[32+r13],xmm3 |
| 1842 pxor xmm2,XMMWORD PTR[64+rsp] |
| 1843 movdqu XMMWORD PTR[48+r13],xmm5 |
| 1844 pxor xmm6,XMMWORD PTR[80+rsp] |
| 1845 movdqu XMMWORD PTR[64+r13],xmm2 |
| 1846 pxor xmm1,XMMWORD PTR[96+rsp] |
| 1847 movdqu XMMWORD PTR[80+r13],xmm6 |
| 1848 movdqu XMMWORD PTR[96+r13],xmm1 |
| 1849 lea r13,QWORD PTR[112+r13] |
| 1850 |
| 1851 movdqa xmm6,XMMWORD PTR[112+rsp] |
| 1852 jmp $L$xts_enc_done |
| 1853 ALIGN 16 |
| 1854 $L$xts_enc_6:: |
| 1855 pxor xmm3,xmm11 |
| 1856 lea r12,QWORD PTR[96+r12] |
| 1857 pxor xmm4,xmm12 |
| 1858 lea rax,QWORD PTR[128+rsp] |
| 1859 mov r10d,edx |
| 1860 |
| 1861 call _bsaes_encrypt8 |
| 1862 |
| 1863 pxor xmm15,XMMWORD PTR[rsp] |
| 1864 pxor xmm0,XMMWORD PTR[16+rsp] |
| 1865 movdqu XMMWORD PTR[r13],xmm15 |
| 1866 pxor xmm3,XMMWORD PTR[32+rsp] |
| 1867 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1868 pxor xmm5,XMMWORD PTR[48+rsp] |
| 1869 movdqu XMMWORD PTR[32+r13],xmm3 |
| 1870 pxor xmm2,XMMWORD PTR[64+rsp] |
| 1871 movdqu XMMWORD PTR[48+r13],xmm5 |
| 1872 pxor xmm6,XMMWORD PTR[80+rsp] |
| 1873 movdqu XMMWORD PTR[64+r13],xmm2 |
| 1874 movdqu XMMWORD PTR[80+r13],xmm6 |
| 1875 lea r13,QWORD PTR[96+r13] |
| 1876 |
| 1877 movdqa xmm6,XMMWORD PTR[96+rsp] |
| 1878 jmp $L$xts_enc_done |
| 1879 ALIGN 16 |
| 1880 $L$xts_enc_5:: |
| 1881 pxor xmm2,xmm10 |
| 1882 lea r12,QWORD PTR[80+r12] |
| 1883 pxor xmm3,xmm11 |
| 1884 lea rax,QWORD PTR[128+rsp] |
| 1885 mov r10d,edx |
| 1886 |
| 1887 call _bsaes_encrypt8 |
| 1888 |
| 1889 pxor xmm15,XMMWORD PTR[rsp] |
| 1890 pxor xmm0,XMMWORD PTR[16+rsp] |
| 1891 movdqu XMMWORD PTR[r13],xmm15 |
| 1892 pxor xmm3,XMMWORD PTR[32+rsp] |
| 1893 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1894 pxor xmm5,XMMWORD PTR[48+rsp] |
| 1895 movdqu XMMWORD PTR[32+r13],xmm3 |
| 1896 pxor xmm2,XMMWORD PTR[64+rsp] |
| 1897 movdqu XMMWORD PTR[48+r13],xmm5 |
| 1898 movdqu XMMWORD PTR[64+r13],xmm2 |
| 1899 lea r13,QWORD PTR[80+r13] |
| 1900 |
| 1901 movdqa xmm6,XMMWORD PTR[80+rsp] |
| 1902 jmp $L$xts_enc_done |
| 1903 ALIGN 16 |
| 1904 $L$xts_enc_4:: |
| 1905 pxor xmm1,xmm9 |
| 1906 lea r12,QWORD PTR[64+r12] |
| 1907 pxor xmm2,xmm10 |
| 1908 lea rax,QWORD PTR[128+rsp] |
| 1909 mov r10d,edx |
| 1910 |
| 1911 call _bsaes_encrypt8 |
| 1912 |
| 1913 pxor xmm15,XMMWORD PTR[rsp] |
| 1914 pxor xmm0,XMMWORD PTR[16+rsp] |
| 1915 movdqu XMMWORD PTR[r13],xmm15 |
| 1916 pxor xmm3,XMMWORD PTR[32+rsp] |
| 1917 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1918 pxor xmm5,XMMWORD PTR[48+rsp] |
| 1919 movdqu XMMWORD PTR[32+r13],xmm3 |
| 1920 movdqu XMMWORD PTR[48+r13],xmm5 |
| 1921 lea r13,QWORD PTR[64+r13] |
| 1922 |
| 1923 movdqa xmm6,XMMWORD PTR[64+rsp] |
| 1924 jmp $L$xts_enc_done |
| 1925 ALIGN 16 |
| 1926 $L$xts_enc_3:: |
| 1927 pxor xmm0,xmm8 |
| 1928 lea r12,QWORD PTR[48+r12] |
| 1929 pxor xmm1,xmm9 |
| 1930 lea rax,QWORD PTR[128+rsp] |
| 1931 mov r10d,edx |
| 1932 |
| 1933 call _bsaes_encrypt8 |
| 1934 |
| 1935 pxor xmm15,XMMWORD PTR[rsp] |
| 1936 pxor xmm0,XMMWORD PTR[16+rsp] |
| 1937 movdqu XMMWORD PTR[r13],xmm15 |
| 1938 pxor xmm3,XMMWORD PTR[32+rsp] |
| 1939 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1940 movdqu XMMWORD PTR[32+r13],xmm3 |
| 1941 lea r13,QWORD PTR[48+r13] |
| 1942 |
| 1943 movdqa xmm6,XMMWORD PTR[48+rsp] |
| 1944 jmp $L$xts_enc_done |
| 1945 ALIGN 16 |
| 1946 $L$xts_enc_2:: |
| 1947 pxor xmm15,xmm7 |
| 1948 lea r12,QWORD PTR[32+r12] |
| 1949 pxor xmm0,xmm8 |
| 1950 lea rax,QWORD PTR[128+rsp] |
| 1951 mov r10d,edx |
| 1952 |
| 1953 call _bsaes_encrypt8 |
| 1954 |
| 1955 pxor xmm15,XMMWORD PTR[rsp] |
| 1956 pxor xmm0,XMMWORD PTR[16+rsp] |
| 1957 movdqu XMMWORD PTR[r13],xmm15 |
| 1958 movdqu XMMWORD PTR[16+r13],xmm0 |
| 1959 lea r13,QWORD PTR[32+r13] |
| 1960 |
| 1961 movdqa xmm6,XMMWORD PTR[32+rsp] |
| 1962 jmp $L$xts_enc_done |
| 1963 ALIGN 16 |
| 1964 $L$xts_enc_1:: |
| 1965 pxor xmm7,xmm15 |
| 1966 lea r12,QWORD PTR[16+r12] |
| 1967 movdqa XMMWORD PTR[32+rbp],xmm7 |
| 1968 lea rcx,QWORD PTR[32+rbp] |
| 1969 lea rdx,QWORD PTR[32+rbp] |
| 1970 lea r8,QWORD PTR[r15] |
| 1971 call asm_AES_encrypt |
| 1972 pxor xmm15,XMMWORD PTR[32+rbp] |
| 1973 |
| 1974 |
| 1975 |
| 1976 |
| 1977 |
| 1978 movdqu XMMWORD PTR[r13],xmm15 |
| 1979 lea r13,QWORD PTR[16+r13] |
| 1980 |
| 1981 movdqa xmm6,XMMWORD PTR[16+rsp] |
| 1982 |
| 1983 $L$xts_enc_done:: |
| 1984 and ebx,15 |
| 1985 jz $L$xts_enc_ret |
| 1986 mov rdx,r13 |
| 1987 |
| 1988 $L$xts_enc_steal:: |
| 1989 movzx eax,BYTE PTR[r12] |
| 1990 movzx ecx,BYTE PTR[((-16))+rdx] |
| 1991 lea r12,QWORD PTR[1+r12] |
| 1992 mov BYTE PTR[((-16))+rdx],al |
| 1993 mov BYTE PTR[rdx],cl |
| 1994 lea rdx,QWORD PTR[1+rdx] |
| 1995 sub ebx,1 |
| 1996 jnz $L$xts_enc_steal |
| 1997 |
| 1998 movdqu xmm15,XMMWORD PTR[((-16))+r13] |
| 1999 lea rcx,QWORD PTR[32+rbp] |
| 2000 pxor xmm15,xmm6 |
| 2001 lea rdx,QWORD PTR[32+rbp] |
| 2002 movdqa XMMWORD PTR[32+rbp],xmm15 |
| 2003 lea r8,QWORD PTR[r15] |
| 2004 call asm_AES_encrypt |
| 2005 pxor xmm6,XMMWORD PTR[32+rbp] |
| 2006 movdqu XMMWORD PTR[(-16)+r13],xmm6 |
| 2007 |
| 2008 $L$xts_enc_ret:: |
| 2009 lea rax,QWORD PTR[rsp] |
| 2010 pxor xmm0,xmm0 |
| 2011 $L$xts_enc_bzero:: |
| 2012 movdqa XMMWORD PTR[rax],xmm0 |
| 2013 movdqa XMMWORD PTR[16+rax],xmm0 |
| 2014 lea rax,QWORD PTR[32+rax] |
| 2015 cmp rbp,rax |
| 2016 ja $L$xts_enc_bzero |
| 2017 |
| 2018 lea rsp,QWORD PTR[rbp] |
| 2019 movaps xmm6,XMMWORD PTR[64+rbp] |
| 2020 movaps xmm7,XMMWORD PTR[80+rbp] |
| 2021 movaps xmm8,XMMWORD PTR[96+rbp] |
| 2022 movaps xmm9,XMMWORD PTR[112+rbp] |
| 2023 movaps xmm10,XMMWORD PTR[128+rbp] |
| 2024 movaps xmm11,XMMWORD PTR[144+rbp] |
| 2025 movaps xmm12,XMMWORD PTR[160+rbp] |
| 2026 movaps xmm13,XMMWORD PTR[176+rbp] |
| 2027 movaps xmm14,XMMWORD PTR[192+rbp] |
| 2028 movaps xmm15,XMMWORD PTR[208+rbp] |
| 2029 lea rsp,QWORD PTR[160+rbp] |
| 2030 mov r15,QWORD PTR[72+rsp] |
| 2031 mov r14,QWORD PTR[80+rsp] |
| 2032 mov r13,QWORD PTR[88+rsp] |
| 2033 mov r12,QWORD PTR[96+rsp] |
| 2034 mov rbx,QWORD PTR[104+rsp] |
| 2035 mov rax,QWORD PTR[112+rsp] |
| 2036 lea rsp,QWORD PTR[120+rsp] |
| 2037 mov rbp,rax |
| 2038 $L$xts_enc_epilogue:: |
| 2039 DB 0F3h,0C3h ;repret |
| 2040 bsaes_xts_encrypt ENDP |
| 2041 |
| 2042 PUBLIC bsaes_xts_decrypt |
| 2043 |
| 2044 ALIGN 16 |
| 2045 bsaes_xts_decrypt PROC PUBLIC |
| 2046 mov rax,rsp |
| 2047 $L$xts_dec_prologue:: |
| 2048 push rbp |
| 2049 push rbx |
| 2050 push r12 |
| 2051 push r13 |
| 2052 push r14 |
| 2053 push r15 |
| 2054 lea rsp,QWORD PTR[((-72))+rsp] |
| 2055 mov r10,QWORD PTR[160+rsp] |
| 2056 mov r11,QWORD PTR[168+rsp] |
| 2057 lea rsp,QWORD PTR[((-160))+rsp] |
| 2058 movaps XMMWORD PTR[64+rsp],xmm6 |
| 2059 movaps XMMWORD PTR[80+rsp],xmm7 |
| 2060 movaps XMMWORD PTR[96+rsp],xmm8 |
| 2061 movaps XMMWORD PTR[112+rsp],xmm9 |
| 2062 movaps XMMWORD PTR[128+rsp],xmm10 |
| 2063 movaps XMMWORD PTR[144+rsp],xmm11 |
| 2064 movaps XMMWORD PTR[160+rsp],xmm12 |
| 2065 movaps XMMWORD PTR[176+rsp],xmm13 |
| 2066 movaps XMMWORD PTR[192+rsp],xmm14 |
| 2067 movaps XMMWORD PTR[208+rsp],xmm15 |
| 2068 $L$xts_dec_body:: |
| 2069 mov rbp,rsp |
| 2070 mov r12,rcx |
| 2071 mov r13,rdx |
| 2072 mov r14,r8 |
| 2073 mov r15,r9 |
| 2074 |
| 2075 lea rcx,QWORD PTR[r11] |
| 2076 lea rdx,QWORD PTR[32+rbp] |
| 2077 lea r8,QWORD PTR[r10] |
| 2078 call asm_AES_encrypt |
| 2079 |
| 2080 mov eax,DWORD PTR[240+r15] |
| 2081 mov rbx,r14 |
| 2082 |
| 2083 mov edx,eax |
| 2084 shl rax,7 |
| 2085 sub rax,96 |
| 2086 sub rsp,rax |
| 2087 |
| 2088 mov rax,rsp |
| 2089 mov rcx,r15 |
| 2090 mov r10d,edx |
| 2091 call _bsaes_key_convert |
| 2092 pxor xmm7,XMMWORD PTR[rsp] |
| 2093 movdqa XMMWORD PTR[rax],xmm6 |
| 2094 movdqa XMMWORD PTR[rsp],xmm7 |
| 2095 |
| 2096 xor eax,eax |
| 2097 and r14,-16 |
| 2098 test ebx,15 |
| 2099 setnz al |
| 2100 shl rax,4 |
| 2101 sub r14,rax |
| 2102 |
| 2103 sub rsp,080h |
| 2104 movdqa xmm6,XMMWORD PTR[32+rbp] |
| 2105 |
| 2106 pxor xmm14,xmm14 |
| 2107 movdqa xmm12,XMMWORD PTR[$L$xts_magic] |
| 2108 pcmpgtd xmm14,xmm6 |
| 2109 |
| 2110 sub r14,080h |
| 2111 jc $L$xts_dec_short |
| 2112 jmp $L$xts_dec_loop |
| 2113 |
| 2114 ALIGN 16 |
| 2115 $L$xts_dec_loop:: |
| 2116 pshufd xmm13,xmm14,013h |
| 2117 pxor xmm14,xmm14 |
| 2118 movdqa xmm15,xmm6 |
| 2119 movdqa XMMWORD PTR[rsp],xmm6 |
| 2120 paddq xmm6,xmm6 |
| 2121 pand xmm13,xmm12 |
| 2122 pcmpgtd xmm14,xmm6 |
| 2123 pxor xmm6,xmm13 |
| 2124 pshufd xmm13,xmm14,013h |
| 2125 pxor xmm14,xmm14 |
| 2126 movdqa xmm0,xmm6 |
| 2127 movdqa XMMWORD PTR[16+rsp],xmm6 |
| 2128 paddq xmm6,xmm6 |
| 2129 pand xmm13,xmm12 |
| 2130 pcmpgtd xmm14,xmm6 |
| 2131 pxor xmm6,xmm13 |
| 2132 movdqu xmm7,XMMWORD PTR[r12] |
| 2133 pshufd xmm13,xmm14,013h |
| 2134 pxor xmm14,xmm14 |
| 2135 movdqa xmm1,xmm6 |
| 2136 movdqa XMMWORD PTR[32+rsp],xmm6 |
| 2137 paddq xmm6,xmm6 |
| 2138 pand xmm13,xmm12 |
| 2139 pcmpgtd xmm14,xmm6 |
| 2140 pxor xmm6,xmm13 |
| 2141 movdqu xmm8,XMMWORD PTR[16+r12] |
| 2142 pxor xmm15,xmm7 |
| 2143 pshufd xmm13,xmm14,013h |
| 2144 pxor xmm14,xmm14 |
| 2145 movdqa xmm2,xmm6 |
| 2146 movdqa XMMWORD PTR[48+rsp],xmm6 |
| 2147 paddq xmm6,xmm6 |
| 2148 pand xmm13,xmm12 |
| 2149 pcmpgtd xmm14,xmm6 |
| 2150 pxor xmm6,xmm13 |
| 2151 movdqu xmm9,XMMWORD PTR[32+r12] |
| 2152 pxor xmm0,xmm8 |
| 2153 pshufd xmm13,xmm14,013h |
| 2154 pxor xmm14,xmm14 |
| 2155 movdqa xmm3,xmm6 |
| 2156 movdqa XMMWORD PTR[64+rsp],xmm6 |
| 2157 paddq xmm6,xmm6 |
| 2158 pand xmm13,xmm12 |
| 2159 pcmpgtd xmm14,xmm6 |
| 2160 pxor xmm6,xmm13 |
| 2161 movdqu xmm10,XMMWORD PTR[48+r12] |
| 2162 pxor xmm1,xmm9 |
| 2163 pshufd xmm13,xmm14,013h |
| 2164 pxor xmm14,xmm14 |
| 2165 movdqa xmm4,xmm6 |
| 2166 movdqa XMMWORD PTR[80+rsp],xmm6 |
| 2167 paddq xmm6,xmm6 |
| 2168 pand xmm13,xmm12 |
| 2169 pcmpgtd xmm14,xmm6 |
| 2170 pxor xmm6,xmm13 |
| 2171 movdqu xmm11,XMMWORD PTR[64+r12] |
| 2172 pxor xmm2,xmm10 |
| 2173 pshufd xmm13,xmm14,013h |
| 2174 pxor xmm14,xmm14 |
| 2175 movdqa xmm5,xmm6 |
| 2176 movdqa XMMWORD PTR[96+rsp],xmm6 |
| 2177 paddq xmm6,xmm6 |
| 2178 pand xmm13,xmm12 |
| 2179 pcmpgtd xmm14,xmm6 |
| 2180 pxor xmm6,xmm13 |
| 2181 movdqu xmm12,XMMWORD PTR[80+r12] |
| 2182 pxor xmm3,xmm11 |
| 2183 movdqu xmm13,XMMWORD PTR[96+r12] |
| 2184 pxor xmm4,xmm12 |
| 2185 movdqu xmm14,XMMWORD PTR[112+r12] |
| 2186 lea r12,QWORD PTR[128+r12] |
| 2187 movdqa XMMWORD PTR[112+rsp],xmm6 |
| 2188 pxor xmm5,xmm13 |
| 2189 lea rax,QWORD PTR[128+rsp] |
| 2190 pxor xmm6,xmm14 |
| 2191 mov r10d,edx |
| 2192 |
| 2193 call _bsaes_decrypt8 |
| 2194 |
| 2195 pxor xmm15,XMMWORD PTR[rsp] |
| 2196 pxor xmm0,XMMWORD PTR[16+rsp] |
| 2197 movdqu XMMWORD PTR[r13],xmm15 |
| 2198 pxor xmm5,XMMWORD PTR[32+rsp] |
| 2199 movdqu XMMWORD PTR[16+r13],xmm0 |
| 2200 pxor xmm3,XMMWORD PTR[48+rsp] |
| 2201 movdqu XMMWORD PTR[32+r13],xmm5 |
| 2202 pxor xmm1,XMMWORD PTR[64+rsp] |
| 2203 movdqu XMMWORD PTR[48+r13],xmm3 |
| 2204 pxor xmm6,XMMWORD PTR[80+rsp] |
| 2205 movdqu XMMWORD PTR[64+r13],xmm1 |
| 2206 pxor xmm2,XMMWORD PTR[96+rsp] |
| 2207 movdqu XMMWORD PTR[80+r13],xmm6 |
| 2208 pxor xmm4,XMMWORD PTR[112+rsp] |
| 2209 movdqu XMMWORD PTR[96+r13],xmm2 |
| 2210 movdqu XMMWORD PTR[112+r13],xmm4 |
| 2211 lea r13,QWORD PTR[128+r13] |
| 2212 |
| 2213 movdqa xmm6,XMMWORD PTR[112+rsp] |
| 2214 pxor xmm14,xmm14 |
| 2215 movdqa xmm12,XMMWORD PTR[$L$xts_magic] |
| 2216 pcmpgtd xmm14,xmm6 |
| 2217 pshufd xmm13,xmm14,013h |
| 2218 pxor xmm14,xmm14 |
| 2219 paddq xmm6,xmm6 |
| 2220 pand xmm13,xmm12 |
| 2221 pcmpgtd xmm14,xmm6 |
| 2222 pxor xmm6,xmm13 |
| 2223 |
| 2224 sub r14,080h |
| 2225 jnc $L$xts_dec_loop |
| 2226 |
| 2227 $L$xts_dec_short:: |
| 2228 add r14,080h |
| 2229 jz $L$xts_dec_done |
| 2230 pshufd xmm13,xmm14,013h |
| 2231 pxor xmm14,xmm14 |
| 2232 movdqa xmm15,xmm6 |
| 2233 movdqa XMMWORD PTR[rsp],xmm6 |
| 2234 paddq xmm6,xmm6 |
| 2235 pand xmm13,xmm12 |
| 2236 pcmpgtd xmm14,xmm6 |
| 2237 pxor xmm6,xmm13 |
| 2238 pshufd xmm13,xmm14,013h |
| 2239 pxor xmm14,xmm14 |
| 2240 movdqa xmm0,xmm6 |
| 2241 movdqa XMMWORD PTR[16+rsp],xmm6 |
| 2242 paddq xmm6,xmm6 |
| 2243 pand xmm13,xmm12 |
| 2244 pcmpgtd xmm14,xmm6 |
| 2245 pxor xmm6,xmm13 |
| 2246 movdqu xmm7,XMMWORD PTR[r12] |
| 2247 cmp r14,16 |
| 2248 je $L$xts_dec_1 |
| 2249 pshufd xmm13,xmm14,013h |
| 2250 pxor xmm14,xmm14 |
| 2251 movdqa xmm1,xmm6 |
| 2252 movdqa XMMWORD PTR[32+rsp],xmm6 |
| 2253 paddq xmm6,xmm6 |
| 2254 pand xmm13,xmm12 |
| 2255 pcmpgtd xmm14,xmm6 |
| 2256 pxor xmm6,xmm13 |
| 2257 movdqu xmm8,XMMWORD PTR[16+r12] |
| 2258 cmp r14,32 |
| 2259 je $L$xts_dec_2 |
| 2260 pxor xmm15,xmm7 |
| 2261 pshufd xmm13,xmm14,013h |
| 2262 pxor xmm14,xmm14 |
| 2263 movdqa xmm2,xmm6 |
| 2264 movdqa XMMWORD PTR[48+rsp],xmm6 |
| 2265 paddq xmm6,xmm6 |
| 2266 pand xmm13,xmm12 |
| 2267 pcmpgtd xmm14,xmm6 |
| 2268 pxor xmm6,xmm13 |
| 2269 movdqu xmm9,XMMWORD PTR[32+r12] |
| 2270 cmp r14,48 |
| 2271 je $L$xts_dec_3 |
| 2272 pxor xmm0,xmm8 |
| 2273 pshufd xmm13,xmm14,013h |
| 2274 pxor xmm14,xmm14 |
| 2275 movdqa xmm3,xmm6 |
| 2276 movdqa XMMWORD PTR[64+rsp],xmm6 |
| 2277 paddq xmm6,xmm6 |
| 2278 pand xmm13,xmm12 |
| 2279 pcmpgtd xmm14,xmm6 |
| 2280 pxor xmm6,xmm13 |
| 2281 movdqu xmm10,XMMWORD PTR[48+r12] |
| 2282 cmp r14,64 |
| 2283 je $L$xts_dec_4 |
| 2284 pxor xmm1,xmm9 |
| 2285 pshufd xmm13,xmm14,013h |
| 2286 pxor xmm14,xmm14 |
| 2287 movdqa xmm4,xmm6 |
| 2288 movdqa XMMWORD PTR[80+rsp],xmm6 |
| 2289 paddq xmm6,xmm6 |
| 2290 pand xmm13,xmm12 |
| 2291 pcmpgtd xmm14,xmm6 |
| 2292 pxor xmm6,xmm13 |
| 2293 movdqu xmm11,XMMWORD PTR[64+r12] |
| 2294 cmp r14,80 |
| 2295 je $L$xts_dec_5 |
| 2296 pxor xmm2,xmm10 |
| 2297 pshufd xmm13,xmm14,013h |
| 2298 pxor xmm14,xmm14 |
| 2299 movdqa xmm5,xmm6 |
| 2300 movdqa XMMWORD PTR[96+rsp],xmm6 |
| 2301 paddq xmm6,xmm6 |
| 2302 pand xmm13,xmm12 |
| 2303 pcmpgtd xmm14,xmm6 |
| 2304 pxor xmm6,xmm13 |
| 2305 movdqu xmm12,XMMWORD PTR[80+r12] |
| 2306 cmp r14,96 |
| 2307 je $L$xts_dec_6 |
| 2308 pxor xmm3,xmm11 |
| 2309 movdqu xmm13,XMMWORD PTR[96+r12] |
| 2310 pxor xmm4,xmm12 |
| 2311 movdqa XMMWORD PTR[112+rsp],xmm6 |
| 2312 lea r12,QWORD PTR[112+r12] |
| 2313 pxor xmm5,xmm13 |
| 2314 lea rax,QWORD PTR[128+rsp] |
| 2315 mov r10d,edx |
| 2316 |
| 2317 call _bsaes_decrypt8 |
| 2318 |
| 2319 pxor xmm15,XMMWORD PTR[rsp] |
| 2320 pxor xmm0,XMMWORD PTR[16+rsp] |
| 2321 movdqu XMMWORD PTR[r13],xmm15 |
| 2322 pxor xmm5,XMMWORD PTR[32+rsp] |
| 2323 movdqu XMMWORD PTR[16+r13],xmm0 |
| 2324 pxor xmm3,XMMWORD PTR[48+rsp] |
| 2325 movdqu XMMWORD PTR[32+r13],xmm5 |
| 2326 pxor xmm1,XMMWORD PTR[64+rsp] |
| 2327 movdqu XMMWORD PTR[48+r13],xmm3 |
| 2328 pxor xmm6,XMMWORD PTR[80+rsp] |
| 2329 movdqu XMMWORD PTR[64+r13],xmm1 |
| 2330 pxor xmm2,XMMWORD PTR[96+rsp] |
| 2331 movdqu XMMWORD PTR[80+r13],xmm6 |
| 2332 movdqu XMMWORD PTR[96+r13],xmm2 |
| 2333 lea r13,QWORD PTR[112+r13] |
| 2334 |
| 2335 movdqa xmm6,XMMWORD PTR[112+rsp] |
| 2336 jmp $L$xts_dec_done |
| 2337 ALIGN 16 |
| 2338 $L$xts_dec_6:: |
| 2339 pxor xmm3,xmm11 |
| 2340 lea r12,QWORD PTR[96+r12] |
| 2341 pxor xmm4,xmm12 |
| 2342 lea rax,QWORD PTR[128+rsp] |
| 2343 mov r10d,edx |
| 2344 |
| 2345 call _bsaes_decrypt8 |
| 2346 |
| 2347 pxor xmm15,XMMWORD PTR[rsp] |
| 2348 pxor xmm0,XMMWORD PTR[16+rsp] |
| 2349 movdqu XMMWORD PTR[r13],xmm15 |
| 2350 pxor xmm5,XMMWORD PTR[32+rsp] |
| 2351 movdqu XMMWORD PTR[16+r13],xmm0 |
| 2352 pxor xmm3,XMMWORD PTR[48+rsp] |
| 2353 movdqu XMMWORD PTR[32+r13],xmm5 |
| 2354 pxor xmm1,XMMWORD PTR[64+rsp] |
| 2355 movdqu XMMWORD PTR[48+r13],xmm3 |
| 2356 pxor xmm6,XMMWORD PTR[80+rsp] |
| 2357 movdqu XMMWORD PTR[64+r13],xmm1 |
| 2358 movdqu XMMWORD PTR[80+r13],xmm6 |
| 2359 lea r13,QWORD PTR[96+r13] |
| 2360 |
| 2361 movdqa xmm6,XMMWORD PTR[96+rsp] |
| 2362 jmp $L$xts_dec_done |
| 2363 ALIGN 16 |
| 2364 $L$xts_dec_5:: |
| 2365 pxor xmm2,xmm10 |
| 2366 lea r12,QWORD PTR[80+r12] |
| 2367 pxor xmm3,xmm11 |
| 2368 lea rax,QWORD PTR[128+rsp] |
| 2369 mov r10d,edx |
| 2370 |
| 2371 call _bsaes_decrypt8 |
| 2372 |
| 2373 pxor xmm15,XMMWORD PTR[rsp] |
| 2374 pxor xmm0,XMMWORD PTR[16+rsp] |
| 2375 movdqu XMMWORD PTR[r13],xmm15 |
| 2376 pxor xmm5,XMMWORD PTR[32+rsp] |
| 2377 movdqu XMMWORD PTR[16+r13],xmm0 |
| 2378 pxor xmm3,XMMWORD PTR[48+rsp] |
| 2379 movdqu XMMWORD PTR[32+r13],xmm5 |
| 2380 pxor xmm1,XMMWORD PTR[64+rsp] |
| 2381 movdqu XMMWORD PTR[48+r13],xmm3 |
| 2382 movdqu XMMWORD PTR[64+r13],xmm1 |
| 2383 lea r13,QWORD PTR[80+r13] |
| 2384 |
| 2385 movdqa xmm6,XMMWORD PTR[80+rsp] |
| 2386 jmp $L$xts_dec_done |
| 2387 ALIGN 16 |
| 2388 $L$xts_dec_4:: |
| 2389 pxor xmm1,xmm9 |
| 2390 lea r12,QWORD PTR[64+r12] |
| 2391 pxor xmm2,xmm10 |
| 2392 lea rax,QWORD PTR[128+rsp] |
| 2393 mov r10d,edx |
| 2394 |
| 2395 call _bsaes_decrypt8 |
| 2396 |
| 2397 pxor xmm15,XMMWORD PTR[rsp] |
| 2398 pxor xmm0,XMMWORD PTR[16+rsp] |
| 2399 movdqu XMMWORD PTR[r13],xmm15 |
| 2400 pxor xmm5,XMMWORD PTR[32+rsp] |
| 2401 movdqu XMMWORD PTR[16+r13],xmm0 |
| 2402 pxor xmm3,XMMWORD PTR[48+rsp] |
| 2403 movdqu XMMWORD PTR[32+r13],xmm5 |
| 2404 movdqu XMMWORD PTR[48+r13],xmm3 |
| 2405 lea r13,QWORD PTR[64+r13] |
| 2406 |
| 2407 movdqa xmm6,XMMWORD PTR[64+rsp] |
| 2408 jmp $L$xts_dec_done |
| 2409 ALIGN 16 |
| 2410 $L$xts_dec_3:: |
| 2411 pxor xmm0,xmm8 |
| 2412 lea r12,QWORD PTR[48+r12] |
| 2413 pxor xmm1,xmm9 |
| 2414 lea rax,QWORD PTR[128+rsp] |
| 2415 mov r10d,edx |
| 2416 |
| 2417 call _bsaes_decrypt8 |
| 2418 |
| 2419 pxor xmm15,XMMWORD PTR[rsp] |
| 2420 pxor xmm0,XMMWORD PTR[16+rsp] |
| 2421 movdqu XMMWORD PTR[r13],xmm15 |
| 2422 pxor xmm5,XMMWORD PTR[32+rsp] |
| 2423 movdqu XMMWORD PTR[16+r13],xmm0 |
| 2424 movdqu XMMWORD PTR[32+r13],xmm5 |
| 2425 lea r13,QWORD PTR[48+r13] |
| 2426 |
| 2427 movdqa xmm6,XMMWORD PTR[48+rsp] |
| 2428 jmp $L$xts_dec_done |
| 2429 ALIGN 16 |
| 2430 $L$xts_dec_2:: |
| 2431 pxor xmm15,xmm7 |
| 2432 lea r12,QWORD PTR[32+r12] |
| 2433 pxor xmm0,xmm8 |
| 2434 lea rax,QWORD PTR[128+rsp] |
| 2435 mov r10d,edx |
| 2436 |
| 2437 call _bsaes_decrypt8 |
| 2438 |
| 2439 pxor xmm15,XMMWORD PTR[rsp] |
| 2440 pxor xmm0,XMMWORD PTR[16+rsp] |
| 2441 movdqu XMMWORD PTR[r13],xmm15 |
| 2442 movdqu XMMWORD PTR[16+r13],xmm0 |
| 2443 lea r13,QWORD PTR[32+r13] |
| 2444 |
| 2445 movdqa xmm6,XMMWORD PTR[32+rsp] |
| 2446 jmp $L$xts_dec_done |
| 2447 ALIGN 16 |
| 2448 $L$xts_dec_1:: |
| 2449 pxor xmm7,xmm15 |
| 2450 lea r12,QWORD PTR[16+r12] |
| 2451 movdqa XMMWORD PTR[32+rbp],xmm7 |
| 2452 lea rcx,QWORD PTR[32+rbp] |
| 2453 lea rdx,QWORD PTR[32+rbp] |
| 2454 lea r8,QWORD PTR[r15] |
| 2455 call asm_AES_decrypt |
| 2456 pxor xmm15,XMMWORD PTR[32+rbp] |
| 2457 |
| 2458 |
| 2459 |
| 2460 |
| 2461 |
| 2462 movdqu XMMWORD PTR[r13],xmm15 |
| 2463 lea r13,QWORD PTR[16+r13] |
| 2464 |
| 2465 movdqa xmm6,XMMWORD PTR[16+rsp] |
| 2466 |
| 2467 $L$xts_dec_done:: |
| 2468 and ebx,15 |
| 2469 jz $L$xts_dec_ret |
| 2470 |
| 2471 pxor xmm14,xmm14 |
| 2472 movdqa xmm12,XMMWORD PTR[$L$xts_magic] |
| 2473 pcmpgtd xmm14,xmm6 |
| 2474 pshufd xmm13,xmm14,013h |
| 2475 movdqa xmm5,xmm6 |
| 2476 paddq xmm6,xmm6 |
| 2477 pand xmm13,xmm12 |
| 2478 movdqu xmm15,XMMWORD PTR[r12] |
| 2479 pxor xmm6,xmm13 |
| 2480 |
| 2481 lea rcx,QWORD PTR[32+rbp] |
| 2482 pxor xmm15,xmm6 |
| 2483 lea rdx,QWORD PTR[32+rbp] |
| 2484 movdqa XMMWORD PTR[32+rbp],xmm15 |
| 2485 lea r8,QWORD PTR[r15] |
| 2486 call asm_AES_decrypt |
| 2487 pxor xmm6,XMMWORD PTR[32+rbp] |
| 2488 mov rdx,r13 |
| 2489 movdqu XMMWORD PTR[r13],xmm6 |
| 2490 |
| 2491 $L$xts_dec_steal:: |
| 2492 movzx eax,BYTE PTR[16+r12] |
| 2493 movzx ecx,BYTE PTR[rdx] |
| 2494 lea r12,QWORD PTR[1+r12] |
| 2495 mov BYTE PTR[rdx],al |
| 2496 mov BYTE PTR[16+rdx],cl |
| 2497 lea rdx,QWORD PTR[1+rdx] |
| 2498 sub ebx,1 |
| 2499 jnz $L$xts_dec_steal |
| 2500 |
| 2501 movdqu xmm15,XMMWORD PTR[r13] |
| 2502 lea rcx,QWORD PTR[32+rbp] |
| 2503 pxor xmm15,xmm5 |
| 2504 lea rdx,QWORD PTR[32+rbp] |
| 2505 movdqa XMMWORD PTR[32+rbp],xmm15 |
| 2506 lea r8,QWORD PTR[r15] |
| 2507 call asm_AES_decrypt |
| 2508 pxor xmm5,XMMWORD PTR[32+rbp] |
| 2509 movdqu XMMWORD PTR[r13],xmm5 |
| 2510 |
| 2511 $L$xts_dec_ret:: |
| 2512 lea rax,QWORD PTR[rsp] |
| 2513 pxor xmm0,xmm0 |
| 2514 $L$xts_dec_bzero:: |
| 2515 movdqa XMMWORD PTR[rax],xmm0 |
| 2516 movdqa XMMWORD PTR[16+rax],xmm0 |
| 2517 lea rax,QWORD PTR[32+rax] |
| 2518 cmp rbp,rax |
| 2519 ja $L$xts_dec_bzero |
| 2520 |
| 2521 lea rsp,QWORD PTR[rbp] |
| 2522 movaps xmm6,XMMWORD PTR[64+rbp] |
| 2523 movaps xmm7,XMMWORD PTR[80+rbp] |
| 2524 movaps xmm8,XMMWORD PTR[96+rbp] |
| 2525 movaps xmm9,XMMWORD PTR[112+rbp] |
| 2526 movaps xmm10,XMMWORD PTR[128+rbp] |
| 2527 movaps xmm11,XMMWORD PTR[144+rbp] |
| 2528 movaps xmm12,XMMWORD PTR[160+rbp] |
| 2529 movaps xmm13,XMMWORD PTR[176+rbp] |
| 2530 movaps xmm14,XMMWORD PTR[192+rbp] |
| 2531 movaps xmm15,XMMWORD PTR[208+rbp] |
| 2532 lea rsp,QWORD PTR[160+rbp] |
| 2533 mov r15,QWORD PTR[72+rsp] |
| 2534 mov r14,QWORD PTR[80+rsp] |
| 2535 mov r13,QWORD PTR[88+rsp] |
| 2536 mov r12,QWORD PTR[96+rsp] |
| 2537 mov rbx,QWORD PTR[104+rsp] |
| 2538 mov rax,QWORD PTR[112+rsp] |
| 2539 lea rsp,QWORD PTR[120+rsp] |
| 2540 mov rbp,rax |
| 2541 $L$xts_dec_epilogue:: |
| 2542 DB 0F3h,0C3h ;repret |
| 2543 bsaes_xts_decrypt ENDP |
| 2544 |
| 2545 ALIGN 64 |
| 2546 _bsaes_const:: |
| 2547 $L$M0ISR:: |
| 2548 DQ 00a0e0206070b0f03h,00004080c0d010509h |
| 2549 $L$ISRM0:: |
| 2550 DQ 001040b0e0205080fh,00306090c00070a0dh |
| 2551 $L$ISR:: |
| 2552 DQ 00504070602010003h,00f0e0d0c080b0a09h |
| 2553 $L$BS0:: |
| 2554 DQ 05555555555555555h,05555555555555555h |
| 2555 $L$BS1:: |
| 2556 DQ 03333333333333333h,03333333333333333h |
| 2557 $L$BS2:: |
| 2558 DQ 00f0f0f0f0f0f0f0fh,00f0f0f0f0f0f0f0fh |
| 2559 $L$SR:: |
| 2560 DQ 00504070600030201h,00f0e0d0c0a09080bh |
| 2561 $L$SRM0:: |
| 2562 DQ 00304090e00050a0fh,001060b0c0207080dh |
| 2563 $L$M0SR:: |
| 2564 DQ 00a0e02060f03070bh,00004080c05090d01h |
| 2565 $L$SWPUP:: |
| 2566 DQ 00706050403020100h,00c0d0e0f0b0a0908h |
| 2567 $L$SWPUPM0SR:: |
| 2568 DQ 00a0d02060c03070bh,00004080f05090e01h |
| 2569 $L$ADD1:: |
| 2570 DQ 00000000000000000h,00000000100000000h |
| 2571 $L$ADD2:: |
| 2572 DQ 00000000000000000h,00000000200000000h |
| 2573 $L$ADD3:: |
| 2574 DQ 00000000000000000h,00000000300000000h |
| 2575 $L$ADD4:: |
| 2576 DQ 00000000000000000h,00000000400000000h |
| 2577 $L$ADD5:: |
| 2578 DQ 00000000000000000h,00000000500000000h |
| 2579 $L$ADD6:: |
| 2580 DQ 00000000000000000h,00000000600000000h |
| 2581 $L$ADD7:: |
| 2582 DQ 00000000000000000h,00000000700000000h |
| 2583 $L$ADD8:: |
| 2584 DQ 00000000000000000h,00000000800000000h |
| 2585 $L$xts_magic:: |
| 2586 DD 087h,0,1,0 |
| 2587 $L$masks:: |
| 2588 DQ 00101010101010101h,00101010101010101h |
| 2589 DQ 00202020202020202h,00202020202020202h |
| 2590 DQ 00404040404040404h,00404040404040404h |
| 2591 DQ 00808080808080808h,00808080808080808h |
| 2592 $L$M0:: |
| 2593 DQ 002060a0e03070b0fh,00004080c0105090dh |
| 2594 $L$63:: |
| 2595 DQ 06363636363636363h,06363636363636363h |
| 2596 DB 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102 |
| 2597 DB 111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44 |
| 2598 DB 32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44 |
| 2599 DB 32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32 |
| 2600 DB 65,110,100,121,32,80,111,108,121,97,107,111,118,0 |
| 2601 ALIGN 64 |
| 2602 |
| 2603 EXTERN __imp_RtlVirtualUnwind:NEAR |
| 2604 |
| 2605 ALIGN 16 |
| 2606 se_handler PROC PRIVATE |
| 2607 push rsi |
| 2608 push rdi |
| 2609 push rbx |
| 2610 push rbp |
| 2611 push r12 |
| 2612 push r13 |
| 2613 push r14 |
| 2614 push r15 |
| 2615 pushfq |
| 2616 sub rsp,64 |
| 2617 |
| 2618 mov rax,QWORD PTR[120+r8] |
| 2619 mov rbx,QWORD PTR[248+r8] |
| 2620 |
| 2621 mov rsi,QWORD PTR[8+r9] |
| 2622 mov r11,QWORD PTR[56+r9] |
| 2623 |
| 2624 mov r10d,DWORD PTR[r11] |
| 2625 lea r10,QWORD PTR[r10*1+rsi] |
| 2626 cmp rbx,r10 |
| 2627 jb $L$in_prologue |
| 2628 |
| 2629 mov rax,QWORD PTR[152+r8] |
| 2630 |
| 2631 mov r10d,DWORD PTR[4+r11] |
| 2632 lea r10,QWORD PTR[r10*1+rsi] |
| 2633 cmp rbx,r10 |
| 2634 jae $L$in_prologue |
| 2635 |
| 2636 mov rax,QWORD PTR[160+r8] |
| 2637 |
| 2638 lea rsi,QWORD PTR[64+rax] |
| 2639 lea rdi,QWORD PTR[512+r8] |
| 2640 mov ecx,20 |
| 2641 DD 0a548f3fch |
| 2642 lea rax,QWORD PTR[160+rax] |
| 2643 |
| 2644 mov rbp,QWORD PTR[112+rax] |
| 2645 mov rbx,QWORD PTR[104+rax] |
| 2646 mov r12,QWORD PTR[96+rax] |
| 2647 mov r13,QWORD PTR[88+rax] |
| 2648 mov r14,QWORD PTR[80+rax] |
| 2649 mov r15,QWORD PTR[72+rax] |
| 2650 lea rax,QWORD PTR[120+rax] |
| 2651 mov QWORD PTR[144+r8],rbx |
| 2652 mov QWORD PTR[160+r8],rbp |
| 2653 mov QWORD PTR[216+r8],r12 |
| 2654 mov QWORD PTR[224+r8],r13 |
| 2655 mov QWORD PTR[232+r8],r14 |
| 2656 mov QWORD PTR[240+r8],r15 |
| 2657 |
| 2658 $L$in_prologue:: |
| 2659 mov QWORD PTR[152+r8],rax |
| 2660 |
| 2661 mov rdi,QWORD PTR[40+r9] |
| 2662 mov rsi,r8 |
| 2663 mov ecx,154 |
| 2664 DD 0a548f3fch |
| 2665 |
| 2666 mov rsi,r9 |
| 2667 xor rcx,rcx |
| 2668 mov rdx,QWORD PTR[8+rsi] |
| 2669 mov r8,QWORD PTR[rsi] |
| 2670 mov r9,QWORD PTR[16+rsi] |
| 2671 mov r10,QWORD PTR[40+rsi] |
| 2672 lea r11,QWORD PTR[56+rsi] |
| 2673 lea r12,QWORD PTR[24+rsi] |
| 2674 mov QWORD PTR[32+rsp],r10 |
| 2675 mov QWORD PTR[40+rsp],r11 |
| 2676 mov QWORD PTR[48+rsp],r12 |
| 2677 mov QWORD PTR[56+rsp],rcx |
| 2678 call QWORD PTR[__imp_RtlVirtualUnwind] |
| 2679 |
| 2680 mov eax,1 |
| 2681 add rsp,64 |
| 2682 popfq |
| 2683 pop r15 |
| 2684 pop r14 |
| 2685 pop r13 |
| 2686 pop r12 |
| 2687 pop rbp |
| 2688 pop rbx |
| 2689 pop rdi |
| 2690 pop rsi |
| 2691 DB 0F3h,0C3h ;repret |
| 2692 se_handler ENDP |
| 2693 |
| 2694 .text$ ENDS |
| 2695 .pdata SEGMENT READONLY ALIGN(4) |
| 2696 ALIGN 4 |
| 2697 DD imagerel $L$cbc_dec_prologue |
| 2698 DD imagerel $L$cbc_dec_epilogue |
| 2699 DD imagerel $L$cbc_dec_info |
| 2700 |
| 2701 DD imagerel $L$ctr_enc_prologue |
| 2702 DD imagerel $L$ctr_enc_epilogue |
| 2703 DD imagerel $L$ctr_enc_info |
| 2704 |
| 2705 DD imagerel $L$xts_enc_prologue |
| 2706 DD imagerel $L$xts_enc_epilogue |
| 2707 DD imagerel $L$xts_enc_info |
| 2708 |
| 2709 DD imagerel $L$xts_dec_prologue |
| 2710 DD imagerel $L$xts_dec_epilogue |
| 2711 DD imagerel $L$xts_dec_info |
| 2712 |
| 2713 .pdata ENDS |
| 2714 .xdata SEGMENT READONLY ALIGN(8) |
| 2715 ALIGN 8 |
| 2716 $L$cbc_dec_info:: |
| 2717 DB 9,0,0,0 |
| 2718 DD imagerel se_handler |
| 2719 DD imagerel $L$cbc_dec_body,imagerel $L$cbc_dec_epilogue |
| 2720 $L$ctr_enc_info:: |
| 2721 DB 9,0,0,0 |
| 2722 DD imagerel se_handler |
| 2723 DD imagerel $L$ctr_enc_body,imagerel $L$ctr_enc_epilogue |
| 2724 $L$xts_enc_info:: |
| 2725 DB 9,0,0,0 |
| 2726 DD imagerel se_handler |
| 2727 DD imagerel $L$xts_enc_body,imagerel $L$xts_enc_epilogue |
| 2728 $L$xts_dec_info:: |
| 2729 DB 9,0,0,0 |
| 2730 DD imagerel se_handler |
| 2731 DD imagerel $L$xts_dec_body,imagerel $L$xts_dec_epilogue |
| 2732 |
| 2733 .xdata ENDS |
| 2734 END |
OLD | NEW |