Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: third_party/boringssl/win-x86/crypto/aes/aesni-x86.asm

Issue 1128293004: Revert of Roll src/third_party/boringssl/src 68de407:de12d6c (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Thanks Rietveld, Thietveld. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 %ifidn __OUTPUT_FORMAT__,obj 1 %ifidn __OUTPUT_FORMAT__,obj
2 section code use32 class=code align=64 2 section code use32 class=code align=64
3 %elifidn __OUTPUT_FORMAT__,win32 3 %elifidn __OUTPUT_FORMAT__,win32
4 %ifdef __YASM_VERSION_ID__ 4 %ifdef __YASM_VERSION_ID__
5 %if __YASM_VERSION_ID__ < 01010000h 5 %if __YASM_VERSION_ID__ < 01010000h
6 %error yasm version 1.1.0 or later needed. 6 %error yasm version 1.1.0 or later needed.
7 %endif 7 %endif
8 ; Yasm automatically includes .00 and complains about redefining it. 8 ; Yasm automatically includes .00 and complains about redefining it.
9 ; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html 9 ; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
10 %else 10 %else
11 $@feat.00 equ 1 11 $@feat.00 equ 1
12 %endif 12 %endif
13 section .text code align=64 13 section .text code align=64
14 %else 14 %else
15 section .text code 15 section .text code
16 %endif 16 %endif
17 ;extern _OPENSSL_ia32cap_P
18 global _aesni_encrypt 17 global _aesni_encrypt
19 align 16 18 align 16
20 _aesni_encrypt: 19 _aesni_encrypt:
21 L$_aesni_encrypt_begin: 20 L$_aesni_encrypt_begin:
22 mov eax,DWORD [4+esp] 21 mov eax,DWORD [4+esp]
23 mov edx,DWORD [12+esp] 22 mov edx,DWORD [12+esp]
24 movups xmm2,[eax] 23 movups xmm2,[eax]
25 mov ecx,DWORD [240+edx] 24 mov ecx,DWORD [240+edx]
26 mov eax,DWORD [8+esp] 25 mov eax,DWORD [8+esp]
27 movups xmm0,[edx] 26 movups xmm0,[edx]
28 movups xmm1,[16+edx] 27 movups xmm1,[16+edx]
29 lea edx,[32+edx] 28 lea edx,[32+edx]
30 xorps xmm2,xmm0 29 xorps xmm2,xmm0
31 L$000enc1_loop_1: 30 L$000enc1_loop_1:
32 db 102,15,56,220,209 31 db 102,15,56,220,209
33 dec ecx 32 dec ecx
34 movups xmm1,[edx] 33 movups xmm1,[edx]
35 lea edx,[16+edx] 34 lea edx,[16+edx]
36 jnz NEAR L$000enc1_loop_1 35 jnz NEAR L$000enc1_loop_1
37 db 102,15,56,221,209 36 db 102,15,56,221,209
38 pxor xmm0,xmm0
39 pxor xmm1,xmm1
40 movups [eax],xmm2 37 movups [eax],xmm2
41 pxor xmm2,xmm2
42 ret 38 ret
43 global _aesni_decrypt 39 global _aesni_decrypt
44 align 16 40 align 16
45 _aesni_decrypt: 41 _aesni_decrypt:
46 L$_aesni_decrypt_begin: 42 L$_aesni_decrypt_begin:
47 mov eax,DWORD [4+esp] 43 mov eax,DWORD [4+esp]
48 mov edx,DWORD [12+esp] 44 mov edx,DWORD [12+esp]
49 movups xmm2,[eax] 45 movups xmm2,[eax]
50 mov ecx,DWORD [240+edx] 46 mov ecx,DWORD [240+edx]
51 mov eax,DWORD [8+esp] 47 mov eax,DWORD [8+esp]
52 movups xmm0,[edx] 48 movups xmm0,[edx]
53 movups xmm1,[16+edx] 49 movups xmm1,[16+edx]
54 lea edx,[32+edx] 50 lea edx,[32+edx]
55 xorps xmm2,xmm0 51 xorps xmm2,xmm0
56 L$001dec1_loop_2: 52 L$001dec1_loop_2:
57 db 102,15,56,222,209 53 db 102,15,56,222,209
58 dec ecx 54 dec ecx
59 movups xmm1,[edx] 55 movups xmm1,[edx]
60 lea edx,[16+edx] 56 lea edx,[16+edx]
61 jnz NEAR L$001dec1_loop_2 57 jnz NEAR L$001dec1_loop_2
62 db 102,15,56,223,209 58 db 102,15,56,223,209
63 pxor xmm0,xmm0
64 pxor xmm1,xmm1
65 movups [eax],xmm2 59 movups [eax],xmm2
66 pxor xmm2,xmm2
67 ret 60 ret
68 align 16 61 align 16
69 __aesni_encrypt2: 62 __aesni_encrypt2:
70 movups xmm0,[edx] 63 movups xmm0,[edx]
71 shl ecx,4 64 shl ecx,4
72 movups xmm1,[16+edx] 65 movups xmm1,[16+edx]
73 xorps xmm2,xmm0 66 xorps xmm2,xmm0
74 pxor xmm3,xmm0 67 pxor xmm3,xmm0
75 movups xmm0,[32+edx] 68 movups xmm0,[32+edx]
76 lea edx,[32+ecx*1+edx] 69 lea edx,[32+ecx*1+edx]
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 pxor xmm3,xmm0 249 pxor xmm3,xmm0
257 pxor xmm4,xmm0 250 pxor xmm4,xmm0
258 db 102,15,56,220,209 251 db 102,15,56,220,209
259 pxor xmm5,xmm0 252 pxor xmm5,xmm0
260 pxor xmm6,xmm0 253 pxor xmm6,xmm0
261 db 102,15,56,220,217 254 db 102,15,56,220,217
262 lea edx,[32+ecx*1+edx] 255 lea edx,[32+ecx*1+edx]
263 neg ecx 256 neg ecx
264 db 102,15,56,220,225 257 db 102,15,56,220,225
265 pxor xmm7,xmm0 258 pxor xmm7,xmm0
266 movups xmm0,[ecx*1+edx]
267 add ecx,16 259 add ecx,16
268 » jmp» NEAR L$008_aesni_encrypt6_inner 260 db» 102,15,56,220,233
261 db» 102,15,56,220,241
262 db» 102,15,56,220,249
263 » movups» xmm0,[ecx*1+edx-16]
264 » jmp» NEAR L$_aesni_encrypt6_enter
269 align 16 265 align 16
270 L$009enc6_loop: 266 L$008enc6_loop:
271 db 102,15,56,220,209 267 db 102,15,56,220,209
272 db 102,15,56,220,217 268 db 102,15,56,220,217
273 db 102,15,56,220,225 269 db 102,15,56,220,225
274 L$008_aesni_encrypt6_inner:
275 db 102,15,56,220,233 270 db 102,15,56,220,233
276 db 102,15,56,220,241 271 db 102,15,56,220,241
277 db 102,15,56,220,249 272 db 102,15,56,220,249
278 L$_aesni_encrypt6_enter: 273 L$_aesni_encrypt6_enter:
279 movups xmm1,[ecx*1+edx] 274 movups xmm1,[ecx*1+edx]
280 add ecx,32 275 add ecx,32
281 db 102,15,56,220,208 276 db 102,15,56,220,208
282 db 102,15,56,220,216 277 db 102,15,56,220,216
283 db 102,15,56,220,224 278 db 102,15,56,220,224
284 db 102,15,56,220,232 279 db 102,15,56,220,232
285 db 102,15,56,220,240 280 db 102,15,56,220,240
286 db 102,15,56,220,248 281 db 102,15,56,220,248
287 movups xmm0,[ecx*1+edx-16] 282 movups xmm0,[ecx*1+edx-16]
288 » jnz» NEAR L$009enc6_loop 283 » jnz» NEAR L$008enc6_loop
289 db 102,15,56,220,209 284 db 102,15,56,220,209
290 db 102,15,56,220,217 285 db 102,15,56,220,217
291 db 102,15,56,220,225 286 db 102,15,56,220,225
292 db 102,15,56,220,233 287 db 102,15,56,220,233
293 db 102,15,56,220,241 288 db 102,15,56,220,241
294 db 102,15,56,220,249 289 db 102,15,56,220,249
295 db 102,15,56,221,208 290 db 102,15,56,221,208
296 db 102,15,56,221,216 291 db 102,15,56,221,216
297 db 102,15,56,221,224 292 db 102,15,56,221,224
298 db 102,15,56,221,232 293 db 102,15,56,221,232
299 db 102,15,56,221,240 294 db 102,15,56,221,240
300 db 102,15,56,221,248 295 db 102,15,56,221,248
301 ret 296 ret
302 align 16 297 align 16
303 __aesni_decrypt6: 298 __aesni_decrypt6:
304 movups xmm0,[edx] 299 movups xmm0,[edx]
305 shl ecx,4 300 shl ecx,4
306 movups xmm1,[16+edx] 301 movups xmm1,[16+edx]
307 xorps xmm2,xmm0 302 xorps xmm2,xmm0
308 pxor xmm3,xmm0 303 pxor xmm3,xmm0
309 pxor xmm4,xmm0 304 pxor xmm4,xmm0
310 db 102,15,56,222,209 305 db 102,15,56,222,209
311 pxor xmm5,xmm0 306 pxor xmm5,xmm0
312 pxor xmm6,xmm0 307 pxor xmm6,xmm0
313 db 102,15,56,222,217 308 db 102,15,56,222,217
314 lea edx,[32+ecx*1+edx] 309 lea edx,[32+ecx*1+edx]
315 neg ecx 310 neg ecx
316 db 102,15,56,222,225 311 db 102,15,56,222,225
317 pxor xmm7,xmm0 312 pxor xmm7,xmm0
318 movups xmm0,[ecx*1+edx]
319 add ecx,16 313 add ecx,16
320 » jmp» NEAR L$010_aesni_decrypt6_inner 314 db» 102,15,56,222,233
315 db» 102,15,56,222,241
316 db» 102,15,56,222,249
317 » movups» xmm0,[ecx*1+edx-16]
318 » jmp» NEAR L$_aesni_decrypt6_enter
321 align 16 319 align 16
322 L$011dec6_loop: 320 L$009dec6_loop:
323 db 102,15,56,222,209 321 db 102,15,56,222,209
324 db 102,15,56,222,217 322 db 102,15,56,222,217
325 db 102,15,56,222,225 323 db 102,15,56,222,225
326 L$010_aesni_decrypt6_inner:
327 db 102,15,56,222,233 324 db 102,15,56,222,233
328 db 102,15,56,222,241 325 db 102,15,56,222,241
329 db 102,15,56,222,249 326 db 102,15,56,222,249
330 L$_aesni_decrypt6_enter: 327 L$_aesni_decrypt6_enter:
331 movups xmm1,[ecx*1+edx] 328 movups xmm1,[ecx*1+edx]
332 add ecx,32 329 add ecx,32
333 db 102,15,56,222,208 330 db 102,15,56,222,208
334 db 102,15,56,222,216 331 db 102,15,56,222,216
335 db 102,15,56,222,224 332 db 102,15,56,222,224
336 db 102,15,56,222,232 333 db 102,15,56,222,232
337 db 102,15,56,222,240 334 db 102,15,56,222,240
338 db 102,15,56,222,248 335 db 102,15,56,222,248
339 movups xmm0,[ecx*1+edx-16] 336 movups xmm0,[ecx*1+edx-16]
340 » jnz» NEAR L$011dec6_loop 337 » jnz» NEAR L$009dec6_loop
341 db 102,15,56,222,209 338 db 102,15,56,222,209
342 db 102,15,56,222,217 339 db 102,15,56,222,217
343 db 102,15,56,222,225 340 db 102,15,56,222,225
344 db 102,15,56,222,233 341 db 102,15,56,222,233
345 db 102,15,56,222,241 342 db 102,15,56,222,241
346 db 102,15,56,222,249 343 db 102,15,56,222,249
347 db 102,15,56,223,208 344 db 102,15,56,223,208
348 db 102,15,56,223,216 345 db 102,15,56,223,216
349 db 102,15,56,223,224 346 db 102,15,56,223,224
350 db 102,15,56,223,232 347 db 102,15,56,223,232
351 db 102,15,56,223,240 348 db 102,15,56,223,240
352 db 102,15,56,223,248 349 db 102,15,56,223,248
353 ret 350 ret
354 global _aesni_ecb_encrypt 351 global _aesni_ecb_encrypt
355 align 16 352 align 16
356 _aesni_ecb_encrypt: 353 _aesni_ecb_encrypt:
357 L$_aesni_ecb_encrypt_begin: 354 L$_aesni_ecb_encrypt_begin:
358 push ebp 355 push ebp
359 push ebx 356 push ebx
360 push esi 357 push esi
361 push edi 358 push edi
362 mov esi,DWORD [20+esp] 359 mov esi,DWORD [20+esp]
363 mov edi,DWORD [24+esp] 360 mov edi,DWORD [24+esp]
364 mov eax,DWORD [28+esp] 361 mov eax,DWORD [28+esp]
365 mov edx,DWORD [32+esp] 362 mov edx,DWORD [32+esp]
366 mov ebx,DWORD [36+esp] 363 mov ebx,DWORD [36+esp]
367 and eax,-16 364 and eax,-16
368 » jz» NEAR L$012ecb_ret 365 » jz» NEAR L$010ecb_ret
369 mov ecx,DWORD [240+edx] 366 mov ecx,DWORD [240+edx]
370 test ebx,ebx 367 test ebx,ebx
371 » jz» NEAR L$013ecb_decrypt 368 » jz» NEAR L$011ecb_decrypt
372 mov ebp,edx 369 mov ebp,edx
373 mov ebx,ecx 370 mov ebx,ecx
374 cmp eax,96 371 cmp eax,96
375 » jb» NEAR L$014ecb_enc_tail 372 » jb» NEAR L$012ecb_enc_tail
376 movdqu xmm2,[esi] 373 movdqu xmm2,[esi]
377 movdqu xmm3,[16+esi] 374 movdqu xmm3,[16+esi]
378 movdqu xmm4,[32+esi] 375 movdqu xmm4,[32+esi]
379 movdqu xmm5,[48+esi] 376 movdqu xmm5,[48+esi]
380 movdqu xmm6,[64+esi] 377 movdqu xmm6,[64+esi]
381 movdqu xmm7,[80+esi] 378 movdqu xmm7,[80+esi]
382 lea esi,[96+esi] 379 lea esi,[96+esi]
383 sub eax,96 380 sub eax,96
384 » jmp» NEAR L$015ecb_enc_loop6_enter 381 » jmp» NEAR L$013ecb_enc_loop6_enter
385 align 16 382 align 16
386 L$016ecb_enc_loop6: 383 L$014ecb_enc_loop6:
387 movups [edi],xmm2 384 movups [edi],xmm2
388 movdqu xmm2,[esi] 385 movdqu xmm2,[esi]
389 movups [16+edi],xmm3 386 movups [16+edi],xmm3
390 movdqu xmm3,[16+esi] 387 movdqu xmm3,[16+esi]
391 movups [32+edi],xmm4 388 movups [32+edi],xmm4
392 movdqu xmm4,[32+esi] 389 movdqu xmm4,[32+esi]
393 movups [48+edi],xmm5 390 movups [48+edi],xmm5
394 movdqu xmm5,[48+esi] 391 movdqu xmm5,[48+esi]
395 movups [64+edi],xmm6 392 movups [64+edi],xmm6
396 movdqu xmm6,[64+esi] 393 movdqu xmm6,[64+esi]
397 movups [80+edi],xmm7 394 movups [80+edi],xmm7
398 lea edi,[96+edi] 395 lea edi,[96+edi]
399 movdqu xmm7,[80+esi] 396 movdqu xmm7,[80+esi]
400 lea esi,[96+esi] 397 lea esi,[96+esi]
401 L$015ecb_enc_loop6_enter: 398 L$013ecb_enc_loop6_enter:
402 call __aesni_encrypt6 399 call __aesni_encrypt6
403 mov edx,ebp 400 mov edx,ebp
404 mov ecx,ebx 401 mov ecx,ebx
405 sub eax,96 402 sub eax,96
406 » jnc» NEAR L$016ecb_enc_loop6 403 » jnc» NEAR L$014ecb_enc_loop6
407 movups [edi],xmm2 404 movups [edi],xmm2
408 movups [16+edi],xmm3 405 movups [16+edi],xmm3
409 movups [32+edi],xmm4 406 movups [32+edi],xmm4
410 movups [48+edi],xmm5 407 movups [48+edi],xmm5
411 movups [64+edi],xmm6 408 movups [64+edi],xmm6
412 movups [80+edi],xmm7 409 movups [80+edi],xmm7
413 lea edi,[96+edi] 410 lea edi,[96+edi]
414 add eax,96 411 add eax,96
415 » jz» NEAR L$012ecb_ret 412 » jz» NEAR L$010ecb_ret
416 L$014ecb_enc_tail: 413 L$012ecb_enc_tail:
417 movups xmm2,[esi] 414 movups xmm2,[esi]
418 cmp eax,32 415 cmp eax,32
419 » jb» NEAR L$017ecb_enc_one 416 » jb» NEAR L$015ecb_enc_one
420 movups xmm3,[16+esi] 417 movups xmm3,[16+esi]
421 » je» NEAR L$018ecb_enc_two 418 » je» NEAR L$016ecb_enc_two
422 movups xmm4,[32+esi] 419 movups xmm4,[32+esi]
423 cmp eax,64 420 cmp eax,64
424 » jb» NEAR L$019ecb_enc_three 421 » jb» NEAR L$017ecb_enc_three
425 movups xmm5,[48+esi] 422 movups xmm5,[48+esi]
426 » je» NEAR L$020ecb_enc_four 423 » je» NEAR L$018ecb_enc_four
427 movups xmm6,[64+esi] 424 movups xmm6,[64+esi]
428 xorps xmm7,xmm7 425 xorps xmm7,xmm7
429 call __aesni_encrypt6 426 call __aesni_encrypt6
430 movups [edi],xmm2 427 movups [edi],xmm2
431 movups [16+edi],xmm3 428 movups [16+edi],xmm3
432 movups [32+edi],xmm4 429 movups [32+edi],xmm4
433 movups [48+edi],xmm5 430 movups [48+edi],xmm5
434 movups [64+edi],xmm6 431 movups [64+edi],xmm6
435 » jmp» NEAR L$012ecb_ret 432 » jmp» NEAR L$010ecb_ret
436 align 16 433 align 16
437 L$017ecb_enc_one: 434 L$015ecb_enc_one:
438 movups xmm0,[edx] 435 movups xmm0,[edx]
439 movups xmm1,[16+edx] 436 movups xmm1,[16+edx]
440 lea edx,[32+edx] 437 lea edx,[32+edx]
441 xorps xmm2,xmm0 438 xorps xmm2,xmm0
442 L$021enc1_loop_3: 439 L$019enc1_loop_3:
443 db 102,15,56,220,209 440 db 102,15,56,220,209
444 dec ecx 441 dec ecx
445 movups xmm1,[edx] 442 movups xmm1,[edx]
446 lea edx,[16+edx] 443 lea edx,[16+edx]
447 » jnz» NEAR L$021enc1_loop_3 444 » jnz» NEAR L$019enc1_loop_3
448 db 102,15,56,221,209 445 db 102,15,56,221,209
449 movups [edi],xmm2 446 movups [edi],xmm2
450 » jmp» NEAR L$012ecb_ret 447 » jmp» NEAR L$010ecb_ret
451 align 16 448 align 16
452 L$018ecb_enc_two: 449 L$016ecb_enc_two:
453 call __aesni_encrypt2 450 call __aesni_encrypt2
454 movups [edi],xmm2 451 movups [edi],xmm2
455 movups [16+edi],xmm3 452 movups [16+edi],xmm3
456 » jmp» NEAR L$012ecb_ret 453 » jmp» NEAR L$010ecb_ret
457 align 16 454 align 16
458 L$019ecb_enc_three: 455 L$017ecb_enc_three:
459 call __aesni_encrypt3 456 call __aesni_encrypt3
460 movups [edi],xmm2 457 movups [edi],xmm2
461 movups [16+edi],xmm3 458 movups [16+edi],xmm3
462 movups [32+edi],xmm4 459 movups [32+edi],xmm4
463 » jmp» NEAR L$012ecb_ret 460 » jmp» NEAR L$010ecb_ret
464 align 16 461 align 16
465 L$020ecb_enc_four: 462 L$018ecb_enc_four:
466 call __aesni_encrypt4 463 call __aesni_encrypt4
467 movups [edi],xmm2 464 movups [edi],xmm2
468 movups [16+edi],xmm3 465 movups [16+edi],xmm3
469 movups [32+edi],xmm4 466 movups [32+edi],xmm4
470 movups [48+edi],xmm5 467 movups [48+edi],xmm5
471 » jmp» NEAR L$012ecb_ret 468 » jmp» NEAR L$010ecb_ret
472 align 16 469 align 16
473 L$013ecb_decrypt: 470 L$011ecb_decrypt:
474 mov ebp,edx 471 mov ebp,edx
475 mov ebx,ecx 472 mov ebx,ecx
476 cmp eax,96 473 cmp eax,96
477 » jb» NEAR L$022ecb_dec_tail 474 » jb» NEAR L$020ecb_dec_tail
478 movdqu xmm2,[esi] 475 movdqu xmm2,[esi]
479 movdqu xmm3,[16+esi] 476 movdqu xmm3,[16+esi]
480 movdqu xmm4,[32+esi] 477 movdqu xmm4,[32+esi]
481 movdqu xmm5,[48+esi] 478 movdqu xmm5,[48+esi]
482 movdqu xmm6,[64+esi] 479 movdqu xmm6,[64+esi]
483 movdqu xmm7,[80+esi] 480 movdqu xmm7,[80+esi]
484 lea esi,[96+esi] 481 lea esi,[96+esi]
485 sub eax,96 482 sub eax,96
486 » jmp» NEAR L$023ecb_dec_loop6_enter 483 » jmp» NEAR L$021ecb_dec_loop6_enter
487 align 16 484 align 16
488 L$024ecb_dec_loop6: 485 L$022ecb_dec_loop6:
489 movups [edi],xmm2 486 movups [edi],xmm2
490 movdqu xmm2,[esi] 487 movdqu xmm2,[esi]
491 movups [16+edi],xmm3 488 movups [16+edi],xmm3
492 movdqu xmm3,[16+esi] 489 movdqu xmm3,[16+esi]
493 movups [32+edi],xmm4 490 movups [32+edi],xmm4
494 movdqu xmm4,[32+esi] 491 movdqu xmm4,[32+esi]
495 movups [48+edi],xmm5 492 movups [48+edi],xmm5
496 movdqu xmm5,[48+esi] 493 movdqu xmm5,[48+esi]
497 movups [64+edi],xmm6 494 movups [64+edi],xmm6
498 movdqu xmm6,[64+esi] 495 movdqu xmm6,[64+esi]
499 movups [80+edi],xmm7 496 movups [80+edi],xmm7
500 lea edi,[96+edi] 497 lea edi,[96+edi]
501 movdqu xmm7,[80+esi] 498 movdqu xmm7,[80+esi]
502 lea esi,[96+esi] 499 lea esi,[96+esi]
503 L$023ecb_dec_loop6_enter: 500 L$021ecb_dec_loop6_enter:
504 call __aesni_decrypt6 501 call __aesni_decrypt6
505 mov edx,ebp 502 mov edx,ebp
506 mov ecx,ebx 503 mov ecx,ebx
507 sub eax,96 504 sub eax,96
508 » jnc» NEAR L$024ecb_dec_loop6 505 » jnc» NEAR L$022ecb_dec_loop6
509 movups [edi],xmm2 506 movups [edi],xmm2
510 movups [16+edi],xmm3 507 movups [16+edi],xmm3
511 movups [32+edi],xmm4 508 movups [32+edi],xmm4
512 movups [48+edi],xmm5 509 movups [48+edi],xmm5
513 movups [64+edi],xmm6 510 movups [64+edi],xmm6
514 movups [80+edi],xmm7 511 movups [80+edi],xmm7
515 lea edi,[96+edi] 512 lea edi,[96+edi]
516 add eax,96 513 add eax,96
517 » jz» NEAR L$012ecb_ret 514 » jz» NEAR L$010ecb_ret
518 L$022ecb_dec_tail: 515 L$020ecb_dec_tail:
519 movups xmm2,[esi] 516 movups xmm2,[esi]
520 cmp eax,32 517 cmp eax,32
521 » jb» NEAR L$025ecb_dec_one 518 » jb» NEAR L$023ecb_dec_one
522 movups xmm3,[16+esi] 519 movups xmm3,[16+esi]
523 » je» NEAR L$026ecb_dec_two 520 » je» NEAR L$024ecb_dec_two
524 movups xmm4,[32+esi] 521 movups xmm4,[32+esi]
525 cmp eax,64 522 cmp eax,64
526 » jb» NEAR L$027ecb_dec_three 523 » jb» NEAR L$025ecb_dec_three
527 movups xmm5,[48+esi] 524 movups xmm5,[48+esi]
528 » je» NEAR L$028ecb_dec_four 525 » je» NEAR L$026ecb_dec_four
529 movups xmm6,[64+esi] 526 movups xmm6,[64+esi]
530 xorps xmm7,xmm7 527 xorps xmm7,xmm7
531 call __aesni_decrypt6 528 call __aesni_decrypt6
532 movups [edi],xmm2 529 movups [edi],xmm2
533 movups [16+edi],xmm3 530 movups [16+edi],xmm3
534 movups [32+edi],xmm4 531 movups [32+edi],xmm4
535 movups [48+edi],xmm5 532 movups [48+edi],xmm5
536 movups [64+edi],xmm6 533 movups [64+edi],xmm6
537 » jmp» NEAR L$012ecb_ret 534 » jmp» NEAR L$010ecb_ret
538 align 16 535 align 16
539 L$025ecb_dec_one: 536 L$023ecb_dec_one:
540 movups xmm0,[edx] 537 movups xmm0,[edx]
541 movups xmm1,[16+edx] 538 movups xmm1,[16+edx]
542 lea edx,[32+edx] 539 lea edx,[32+edx]
543 xorps xmm2,xmm0 540 xorps xmm2,xmm0
544 L$029dec1_loop_4: 541 L$027dec1_loop_4:
545 db 102,15,56,222,209 542 db 102,15,56,222,209
546 dec ecx 543 dec ecx
547 movups xmm1,[edx] 544 movups xmm1,[edx]
548 lea edx,[16+edx] 545 lea edx,[16+edx]
549 » jnz» NEAR L$029dec1_loop_4 546 » jnz» NEAR L$027dec1_loop_4
550 db 102,15,56,223,209 547 db 102,15,56,223,209
551 movups [edi],xmm2 548 movups [edi],xmm2
552 » jmp» NEAR L$012ecb_ret 549 » jmp» NEAR L$010ecb_ret
553 align 16 550 align 16
554 L$026ecb_dec_two: 551 L$024ecb_dec_two:
555 call __aesni_decrypt2 552 call __aesni_decrypt2
556 movups [edi],xmm2 553 movups [edi],xmm2
557 movups [16+edi],xmm3 554 movups [16+edi],xmm3
558 » jmp» NEAR L$012ecb_ret 555 » jmp» NEAR L$010ecb_ret
559 align 16 556 align 16
560 L$027ecb_dec_three: 557 L$025ecb_dec_three:
561 call __aesni_decrypt3 558 call __aesni_decrypt3
562 movups [edi],xmm2 559 movups [edi],xmm2
563 movups [16+edi],xmm3 560 movups [16+edi],xmm3
564 movups [32+edi],xmm4 561 movups [32+edi],xmm4
565 » jmp» NEAR L$012ecb_ret 562 » jmp» NEAR L$010ecb_ret
566 align 16 563 align 16
567 L$028ecb_dec_four: 564 L$026ecb_dec_four:
568 call __aesni_decrypt4 565 call __aesni_decrypt4
569 movups [edi],xmm2 566 movups [edi],xmm2
570 movups [16+edi],xmm3 567 movups [16+edi],xmm3
571 movups [32+edi],xmm4 568 movups [32+edi],xmm4
572 movups [48+edi],xmm5 569 movups [48+edi],xmm5
573 L$012ecb_ret: 570 L$010ecb_ret:
574 » pxor» xmm0,xmm0
575 » pxor» xmm1,xmm1
576 » pxor» xmm2,xmm2
577 » pxor» xmm3,xmm3
578 » pxor» xmm4,xmm4
579 » pxor» xmm5,xmm5
580 » pxor» xmm6,xmm6
581 » pxor» xmm7,xmm7
582 pop edi 571 pop edi
583 pop esi 572 pop esi
584 pop ebx 573 pop ebx
585 pop ebp 574 pop ebp
586 ret 575 ret
587 global _aesni_ccm64_encrypt_blocks 576 global _aesni_ccm64_encrypt_blocks
588 align 16 577 align 16
589 _aesni_ccm64_encrypt_blocks: 578 _aesni_ccm64_encrypt_blocks:
590 L$_aesni_ccm64_encrypt_blocks_begin: 579 L$_aesni_ccm64_encrypt_blocks_begin:
591 push ebp 580 push ebp
(...skipping 24 matching lines...) Expand all
616 mov DWORD [24+esp],ebp 605 mov DWORD [24+esp],ebp
617 mov DWORD [28+esp],ebp 606 mov DWORD [28+esp],ebp
618 shl ecx,4 607 shl ecx,4
619 mov ebx,16 608 mov ebx,16
620 lea ebp,[edx] 609 lea ebp,[edx]
621 movdqa xmm5,[esp] 610 movdqa xmm5,[esp]
622 movdqa xmm2,xmm7 611 movdqa xmm2,xmm7
623 lea edx,[32+ecx*1+edx] 612 lea edx,[32+ecx*1+edx]
624 sub ebx,ecx 613 sub ebx,ecx
625 db 102,15,56,0,253 614 db 102,15,56,0,253
626 L$030ccm64_enc_outer: 615 L$028ccm64_enc_outer:
627 movups xmm0,[ebp] 616 movups xmm0,[ebp]
628 mov ecx,ebx 617 mov ecx,ebx
629 movups xmm6,[esi] 618 movups xmm6,[esi]
630 xorps xmm2,xmm0 619 xorps xmm2,xmm0
631 movups xmm1,[16+ebp] 620 movups xmm1,[16+ebp]
632 xorps xmm0,xmm6 621 xorps xmm0,xmm6
633 xorps xmm3,xmm0 622 xorps xmm3,xmm0
634 movups xmm0,[32+ebp] 623 movups xmm0,[32+ebp]
635 L$031ccm64_enc2_loop: 624 L$029ccm64_enc2_loop:
636 db 102,15,56,220,209 625 db 102,15,56,220,209
637 db 102,15,56,220,217 626 db 102,15,56,220,217
638 movups xmm1,[ecx*1+edx] 627 movups xmm1,[ecx*1+edx]
639 add ecx,32 628 add ecx,32
640 db 102,15,56,220,208 629 db 102,15,56,220,208
641 db 102,15,56,220,216 630 db 102,15,56,220,216
642 movups xmm0,[ecx*1+edx-16] 631 movups xmm0,[ecx*1+edx-16]
643 » jnz» NEAR L$031ccm64_enc2_loop 632 » jnz» NEAR L$029ccm64_enc2_loop
644 db 102,15,56,220,209 633 db 102,15,56,220,209
645 db 102,15,56,220,217 634 db 102,15,56,220,217
646 paddq xmm7,[16+esp] 635 paddq xmm7,[16+esp]
647 dec eax 636 dec eax
648 db 102,15,56,221,208 637 db 102,15,56,221,208
649 db 102,15,56,221,216 638 db 102,15,56,221,216
650 lea esi,[16+esi] 639 lea esi,[16+esi]
651 xorps xmm6,xmm2 640 xorps xmm6,xmm2
652 movdqa xmm2,xmm7 641 movdqa xmm2,xmm7
653 movups [edi],xmm6 642 movups [edi],xmm6
654 db 102,15,56,0,213 643 db 102,15,56,0,213
655 lea edi,[16+edi] 644 lea edi,[16+edi]
656 » jnz» NEAR L$030ccm64_enc_outer 645 » jnz» NEAR L$028ccm64_enc_outer
657 mov esp,DWORD [48+esp] 646 mov esp,DWORD [48+esp]
658 mov edi,DWORD [40+esp] 647 mov edi,DWORD [40+esp]
659 movups [edi],xmm3 648 movups [edi],xmm3
660 pxor xmm0,xmm0
661 pxor xmm1,xmm1
662 pxor xmm2,xmm2
663 pxor xmm3,xmm3
664 pxor xmm4,xmm4
665 pxor xmm5,xmm5
666 pxor xmm6,xmm6
667 pxor xmm7,xmm7
668 pop edi 649 pop edi
669 pop esi 650 pop esi
670 pop ebx 651 pop ebx
671 pop ebp 652 pop ebp
672 ret 653 ret
673 global _aesni_ccm64_decrypt_blocks 654 global _aesni_ccm64_decrypt_blocks
674 align 16 655 align 16
675 _aesni_ccm64_decrypt_blocks: 656 _aesni_ccm64_decrypt_blocks:
676 L$_aesni_ccm64_decrypt_blocks_begin: 657 L$_aesni_ccm64_decrypt_blocks_begin:
677 push ebp 658 push ebp
(...skipping 25 matching lines...) Expand all
703 mov DWORD [28+esp],ebp 684 mov DWORD [28+esp],ebp
704 movdqa xmm5,[esp] 685 movdqa xmm5,[esp]
705 movdqa xmm2,xmm7 686 movdqa xmm2,xmm7
706 mov ebp,edx 687 mov ebp,edx
707 mov ebx,ecx 688 mov ebx,ecx
708 db 102,15,56,0,253 689 db 102,15,56,0,253
709 movups xmm0,[edx] 690 movups xmm0,[edx]
710 movups xmm1,[16+edx] 691 movups xmm1,[16+edx]
711 lea edx,[32+edx] 692 lea edx,[32+edx]
712 xorps xmm2,xmm0 693 xorps xmm2,xmm0
713 L$032enc1_loop_5: 694 L$030enc1_loop_5:
714 db 102,15,56,220,209 695 db 102,15,56,220,209
715 dec ecx 696 dec ecx
716 movups xmm1,[edx] 697 movups xmm1,[edx]
717 lea edx,[16+edx] 698 lea edx,[16+edx]
718 » jnz» NEAR L$032enc1_loop_5 699 » jnz» NEAR L$030enc1_loop_5
719 db 102,15,56,221,209 700 db 102,15,56,221,209
720 shl ebx,4 701 shl ebx,4
721 mov ecx,16 702 mov ecx,16
722 movups xmm6,[esi] 703 movups xmm6,[esi]
723 paddq xmm7,[16+esp] 704 paddq xmm7,[16+esp]
724 lea esi,[16+esi] 705 lea esi,[16+esi]
725 sub ecx,ebx 706 sub ecx,ebx
726 lea edx,[32+ebx*1+ebp] 707 lea edx,[32+ebx*1+ebp]
727 mov ebx,ecx 708 mov ebx,ecx
728 » jmp» NEAR L$033ccm64_dec_outer 709 » jmp» NEAR L$031ccm64_dec_outer
729 align 16 710 align 16
730 L$033ccm64_dec_outer: 711 L$031ccm64_dec_outer:
731 xorps xmm6,xmm2 712 xorps xmm6,xmm2
732 movdqa xmm2,xmm7 713 movdqa xmm2,xmm7
733 movups [edi],xmm6 714 movups [edi],xmm6
734 lea edi,[16+edi] 715 lea edi,[16+edi]
735 db 102,15,56,0,213 716 db 102,15,56,0,213
736 sub eax,1 717 sub eax,1
737 » jz» NEAR L$034ccm64_dec_break 718 » jz» NEAR L$032ccm64_dec_break
738 movups xmm0,[ebp] 719 movups xmm0,[ebp]
739 mov ecx,ebx 720 mov ecx,ebx
740 movups xmm1,[16+ebp] 721 movups xmm1,[16+ebp]
741 xorps xmm6,xmm0 722 xorps xmm6,xmm0
742 xorps xmm2,xmm0 723 xorps xmm2,xmm0
743 xorps xmm3,xmm6 724 xorps xmm3,xmm6
744 movups xmm0,[32+ebp] 725 movups xmm0,[32+ebp]
745 L$035ccm64_dec2_loop: 726 L$033ccm64_dec2_loop:
746 db 102,15,56,220,209 727 db 102,15,56,220,209
747 db 102,15,56,220,217 728 db 102,15,56,220,217
748 movups xmm1,[ecx*1+edx] 729 movups xmm1,[ecx*1+edx]
749 add ecx,32 730 add ecx,32
750 db 102,15,56,220,208 731 db 102,15,56,220,208
751 db 102,15,56,220,216 732 db 102,15,56,220,216
752 movups xmm0,[ecx*1+edx-16] 733 movups xmm0,[ecx*1+edx-16]
753 » jnz» NEAR L$035ccm64_dec2_loop 734 » jnz» NEAR L$033ccm64_dec2_loop
754 movups xmm6,[esi] 735 movups xmm6,[esi]
755 paddq xmm7,[16+esp] 736 paddq xmm7,[16+esp]
756 db 102,15,56,220,209 737 db 102,15,56,220,209
757 db 102,15,56,220,217 738 db 102,15,56,220,217
758 db 102,15,56,221,208 739 db 102,15,56,221,208
759 db 102,15,56,221,216 740 db 102,15,56,221,216
760 lea esi,[16+esi] 741 lea esi,[16+esi]
761 » jmp» NEAR L$033ccm64_dec_outer 742 » jmp» NEAR L$031ccm64_dec_outer
762 align 16 743 align 16
763 L$034ccm64_dec_break: 744 L$032ccm64_dec_break:
764 mov ecx,DWORD [240+ebp] 745 mov ecx,DWORD [240+ebp]
765 mov edx,ebp 746 mov edx,ebp
766 movups xmm0,[edx] 747 movups xmm0,[edx]
767 movups xmm1,[16+edx] 748 movups xmm1,[16+edx]
768 xorps xmm6,xmm0 749 xorps xmm6,xmm0
769 lea edx,[32+edx] 750 lea edx,[32+edx]
770 xorps xmm3,xmm6 751 xorps xmm3,xmm6
771 L$036enc1_loop_6: 752 L$034enc1_loop_6:
772 db 102,15,56,220,217 753 db 102,15,56,220,217
773 dec ecx 754 dec ecx
774 movups xmm1,[edx] 755 movups xmm1,[edx]
775 lea edx,[16+edx] 756 lea edx,[16+edx]
776 » jnz» NEAR L$036enc1_loop_6 757 » jnz» NEAR L$034enc1_loop_6
777 db 102,15,56,221,217 758 db 102,15,56,221,217
778 mov esp,DWORD [48+esp] 759 mov esp,DWORD [48+esp]
779 mov edi,DWORD [40+esp] 760 mov edi,DWORD [40+esp]
780 movups [edi],xmm3 761 movups [edi],xmm3
781 pxor xmm0,xmm0
782 pxor xmm1,xmm1
783 pxor xmm2,xmm2
784 pxor xmm3,xmm3
785 pxor xmm4,xmm4
786 pxor xmm5,xmm5
787 pxor xmm6,xmm6
788 pxor xmm7,xmm7
789 pop edi 762 pop edi
790 pop esi 763 pop esi
791 pop ebx 764 pop ebx
792 pop ebp 765 pop ebp
793 ret 766 ret
794 global _aesni_ctr32_encrypt_blocks 767 global _aesni_ctr32_encrypt_blocks
795 align 16 768 align 16
796 _aesni_ctr32_encrypt_blocks: 769 _aesni_ctr32_encrypt_blocks:
797 L$_aesni_ctr32_encrypt_blocks_begin: 770 L$_aesni_ctr32_encrypt_blocks_begin:
798 push ebp 771 push ebp
799 push ebx 772 push ebx
800 push esi 773 push esi
801 push edi 774 push edi
802 mov esi,DWORD [20+esp] 775 mov esi,DWORD [20+esp]
803 mov edi,DWORD [24+esp] 776 mov edi,DWORD [24+esp]
804 mov eax,DWORD [28+esp] 777 mov eax,DWORD [28+esp]
805 mov edx,DWORD [32+esp] 778 mov edx,DWORD [32+esp]
806 mov ebx,DWORD [36+esp] 779 mov ebx,DWORD [36+esp]
807 mov ebp,esp 780 mov ebp,esp
808 sub esp,88 781 sub esp,88
809 and esp,-16 782 and esp,-16
810 mov DWORD [80+esp],ebp 783 mov DWORD [80+esp],ebp
811 cmp eax,1 784 cmp eax,1
812 » je» NEAR L$037ctr32_one_shortcut 785 » je» NEAR L$035ctr32_one_shortcut
813 movdqu xmm7,[ebx] 786 movdqu xmm7,[ebx]
814 mov DWORD [esp],202182159 787 mov DWORD [esp],202182159
815 mov DWORD [4+esp],134810123 788 mov DWORD [4+esp],134810123
816 mov DWORD [8+esp],67438087 789 mov DWORD [8+esp],67438087
817 mov DWORD [12+esp],66051 790 mov DWORD [12+esp],66051
818 mov ecx,6 791 mov ecx,6
819 xor ebp,ebp 792 xor ebp,ebp
820 mov DWORD [16+esp],ecx 793 mov DWORD [16+esp],ecx
821 mov DWORD [20+esp],ecx 794 mov DWORD [20+esp],ecx
822 mov DWORD [24+esp],ecx 795 mov DWORD [24+esp],ecx
(...skipping 17 matching lines...) Expand all
840 inc ebp 813 inc ebp
841 db 102,15,58,34,205,2 814 db 102,15,58,34,205,2
842 movdqa [48+esp],xmm0 815 movdqa [48+esp],xmm0
843 db 102,15,56,0,194 816 db 102,15,56,0,194
844 movdqu xmm6,[edx] 817 movdqu xmm6,[edx]
845 movdqa [64+esp],xmm1 818 movdqa [64+esp],xmm1
846 db 102,15,56,0,202 819 db 102,15,56,0,202
847 pshufd xmm2,xmm0,192 820 pshufd xmm2,xmm0,192
848 pshufd xmm3,xmm0,128 821 pshufd xmm3,xmm0,128
849 cmp eax,6 822 cmp eax,6
850 » jb» NEAR L$038ctr32_tail 823 » jb» NEAR L$036ctr32_tail
851 pxor xmm7,xmm6 824 pxor xmm7,xmm6
852 shl ecx,4 825 shl ecx,4
853 mov ebx,16 826 mov ebx,16
854 movdqa [32+esp],xmm7 827 movdqa [32+esp],xmm7
855 mov ebp,edx 828 mov ebp,edx
856 sub ebx,ecx 829 sub ebx,ecx
857 lea edx,[32+ecx*1+edx] 830 lea edx,[32+ecx*1+edx]
858 sub eax,6 831 sub eax,6
859 » jmp» NEAR L$039ctr32_loop6 832 » jmp» NEAR L$037ctr32_loop6
860 align 16 833 align 16
861 L$039ctr32_loop6: 834 L$037ctr32_loop6:
862 pshufd xmm4,xmm0,64 835 pshufd xmm4,xmm0,64
863 movdqa xmm0,[32+esp] 836 movdqa xmm0,[32+esp]
864 pshufd xmm5,xmm1,192 837 pshufd xmm5,xmm1,192
865 pxor xmm2,xmm0 838 pxor xmm2,xmm0
866 pshufd xmm6,xmm1,128 839 pshufd xmm6,xmm1,128
867 pxor xmm3,xmm0 840 pxor xmm3,xmm0
868 pshufd xmm7,xmm1,64 841 pshufd xmm7,xmm1,64
869 movups xmm1,[16+ebp] 842 movups xmm1,[16+ebp]
870 pxor xmm4,xmm0 843 pxor xmm4,xmm0
871 pxor xmm5,xmm0 844 pxor xmm5,xmm0
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 movups [48+edi],xmm5 878 movups [48+edi],xmm5
906 xorps xmm7,xmm3 879 xorps xmm7,xmm3
907 movdqa [64+esp],xmm1 880 movdqa [64+esp],xmm1
908 db 102,15,56,0,202 881 db 102,15,56,0,202
909 movups [64+edi],xmm6 882 movups [64+edi],xmm6
910 pshufd xmm2,xmm0,192 883 pshufd xmm2,xmm0,192
911 movups [80+edi],xmm7 884 movups [80+edi],xmm7
912 lea edi,[96+edi] 885 lea edi,[96+edi]
913 pshufd xmm3,xmm0,128 886 pshufd xmm3,xmm0,128
914 sub eax,6 887 sub eax,6
915 » jnc» NEAR L$039ctr32_loop6 888 » jnc» NEAR L$037ctr32_loop6
916 add eax,6 889 add eax,6
917 » jz» NEAR L$040ctr32_ret 890 » jz» NEAR L$038ctr32_ret
918 movdqu xmm7,[ebp] 891 movdqu xmm7,[ebp]
919 mov edx,ebp 892 mov edx,ebp
920 pxor xmm7,[32+esp] 893 pxor xmm7,[32+esp]
921 mov ecx,DWORD [240+ebp] 894 mov ecx,DWORD [240+ebp]
922 L$038ctr32_tail: 895 L$036ctr32_tail:
923 por xmm2,xmm7 896 por xmm2,xmm7
924 cmp eax,2 897 cmp eax,2
925 » jb» NEAR L$041ctr32_one 898 » jb» NEAR L$039ctr32_one
926 pshufd xmm4,xmm0,64 899 pshufd xmm4,xmm0,64
927 por xmm3,xmm7 900 por xmm3,xmm7
928 » je» NEAR L$042ctr32_two 901 » je» NEAR L$040ctr32_two
929 pshufd xmm5,xmm1,192 902 pshufd xmm5,xmm1,192
930 por xmm4,xmm7 903 por xmm4,xmm7
931 cmp eax,4 904 cmp eax,4
932 » jb» NEAR L$043ctr32_three 905 » jb» NEAR L$041ctr32_three
933 pshufd xmm6,xmm1,128 906 pshufd xmm6,xmm1,128
934 por xmm5,xmm7 907 por xmm5,xmm7
935 » je» NEAR L$044ctr32_four 908 » je» NEAR L$042ctr32_four
936 por xmm6,xmm7 909 por xmm6,xmm7
937 call __aesni_encrypt6 910 call __aesni_encrypt6
938 movups xmm1,[esi] 911 movups xmm1,[esi]
939 movups xmm0,[16+esi] 912 movups xmm0,[16+esi]
940 xorps xmm2,xmm1 913 xorps xmm2,xmm1
941 movups xmm1,[32+esi] 914 movups xmm1,[32+esi]
942 xorps xmm3,xmm0 915 xorps xmm3,xmm0
943 movups xmm0,[48+esi] 916 movups xmm0,[48+esi]
944 xorps xmm4,xmm1 917 xorps xmm4,xmm1
945 movups xmm1,[64+esi] 918 movups xmm1,[64+esi]
946 xorps xmm5,xmm0 919 xorps xmm5,xmm0
947 movups [edi],xmm2 920 movups [edi],xmm2
948 xorps xmm6,xmm1 921 xorps xmm6,xmm1
949 movups [16+edi],xmm3 922 movups [16+edi],xmm3
950 movups [32+edi],xmm4 923 movups [32+edi],xmm4
951 movups [48+edi],xmm5 924 movups [48+edi],xmm5
952 movups [64+edi],xmm6 925 movups [64+edi],xmm6
953 » jmp» NEAR L$040ctr32_ret 926 » jmp» NEAR L$038ctr32_ret
954 align 16 927 align 16
955 L$037ctr32_one_shortcut: 928 L$035ctr32_one_shortcut:
956 movups xmm2,[ebx] 929 movups xmm2,[ebx]
957 mov ecx,DWORD [240+edx] 930 mov ecx,DWORD [240+edx]
958 L$041ctr32_one: 931 L$039ctr32_one:
959 movups xmm0,[edx] 932 movups xmm0,[edx]
960 movups xmm1,[16+edx] 933 movups xmm1,[16+edx]
961 lea edx,[32+edx] 934 lea edx,[32+edx]
962 xorps xmm2,xmm0 935 xorps xmm2,xmm0
963 L$045enc1_loop_7: 936 L$043enc1_loop_7:
964 db 102,15,56,220,209 937 db 102,15,56,220,209
965 dec ecx 938 dec ecx
966 movups xmm1,[edx] 939 movups xmm1,[edx]
967 lea edx,[16+edx] 940 lea edx,[16+edx]
968 » jnz» NEAR L$045enc1_loop_7 941 » jnz» NEAR L$043enc1_loop_7
969 db 102,15,56,221,209 942 db 102,15,56,221,209
970 movups xmm6,[esi] 943 movups xmm6,[esi]
971 xorps xmm6,xmm2 944 xorps xmm6,xmm2
972 movups [edi],xmm6 945 movups [edi],xmm6
973 » jmp» NEAR L$040ctr32_ret 946 » jmp» NEAR L$038ctr32_ret
974 align 16 947 align 16
975 L$042ctr32_two: 948 L$040ctr32_two:
976 call __aesni_encrypt2 949 call __aesni_encrypt2
977 movups xmm5,[esi] 950 movups xmm5,[esi]
978 movups xmm6,[16+esi] 951 movups xmm6,[16+esi]
979 xorps xmm2,xmm5 952 xorps xmm2,xmm5
980 xorps xmm3,xmm6 953 xorps xmm3,xmm6
981 movups [edi],xmm2 954 movups [edi],xmm2
982 movups [16+edi],xmm3 955 movups [16+edi],xmm3
983 » jmp» NEAR L$040ctr32_ret 956 » jmp» NEAR L$038ctr32_ret
984 align 16 957 align 16
985 L$043ctr32_three: 958 L$041ctr32_three:
986 call __aesni_encrypt3 959 call __aesni_encrypt3
987 movups xmm5,[esi] 960 movups xmm5,[esi]
988 movups xmm6,[16+esi] 961 movups xmm6,[16+esi]
989 xorps xmm2,xmm5 962 xorps xmm2,xmm5
990 movups xmm7,[32+esi] 963 movups xmm7,[32+esi]
991 xorps xmm3,xmm6 964 xorps xmm3,xmm6
992 movups [edi],xmm2 965 movups [edi],xmm2
993 xorps xmm4,xmm7 966 xorps xmm4,xmm7
994 movups [16+edi],xmm3 967 movups [16+edi],xmm3
995 movups [32+edi],xmm4 968 movups [32+edi],xmm4
996 » jmp» NEAR L$040ctr32_ret 969 » jmp» NEAR L$038ctr32_ret
997 align 16 970 align 16
998 L$044ctr32_four: 971 L$042ctr32_four:
999 call __aesni_encrypt4 972 call __aesni_encrypt4
1000 movups xmm6,[esi] 973 movups xmm6,[esi]
1001 movups xmm7,[16+esi] 974 movups xmm7,[16+esi]
1002 movups xmm1,[32+esi] 975 movups xmm1,[32+esi]
1003 xorps xmm2,xmm6 976 xorps xmm2,xmm6
1004 movups xmm0,[48+esi] 977 movups xmm0,[48+esi]
1005 xorps xmm3,xmm7 978 xorps xmm3,xmm7
1006 movups [edi],xmm2 979 movups [edi],xmm2
1007 xorps xmm4,xmm1 980 xorps xmm4,xmm1
1008 movups [16+edi],xmm3 981 movups [16+edi],xmm3
1009 xorps xmm5,xmm0 982 xorps xmm5,xmm0
1010 movups [32+edi],xmm4 983 movups [32+edi],xmm4
1011 movups [48+edi],xmm5 984 movups [48+edi],xmm5
1012 L$040ctr32_ret: 985 L$038ctr32_ret:
1013 » pxor» xmm0,xmm0
1014 » pxor» xmm1,xmm1
1015 » pxor» xmm2,xmm2
1016 » pxor» xmm3,xmm3
1017 » pxor» xmm4,xmm4
1018 » movdqa» [32+esp],xmm0
1019 » pxor» xmm5,xmm5
1020 » movdqa» [48+esp],xmm0
1021 » pxor» xmm6,xmm6
1022 » movdqa» [64+esp],xmm0
1023 » pxor» xmm7,xmm7
1024 mov esp,DWORD [80+esp] 986 mov esp,DWORD [80+esp]
1025 pop edi 987 pop edi
1026 pop esi 988 pop esi
1027 pop ebx 989 pop ebx
1028 pop ebp 990 pop ebp
1029 ret 991 ret
1030 global _aesni_xts_encrypt 992 global _aesni_xts_encrypt
1031 align 16 993 align 16
1032 _aesni_xts_encrypt: 994 _aesni_xts_encrypt:
1033 L$_aesni_xts_encrypt_begin: 995 L$_aesni_xts_encrypt_begin:
1034 push ebp 996 push ebp
1035 push ebx 997 push ebx
1036 push esi 998 push esi
1037 push edi 999 push edi
1038 mov edx,DWORD [36+esp] 1000 mov edx,DWORD [36+esp]
1039 mov esi,DWORD [40+esp] 1001 mov esi,DWORD [40+esp]
1040 mov ecx,DWORD [240+edx] 1002 mov ecx,DWORD [240+edx]
1041 movups xmm2,[esi] 1003 movups xmm2,[esi]
1042 movups xmm0,[edx] 1004 movups xmm0,[edx]
1043 movups xmm1,[16+edx] 1005 movups xmm1,[16+edx]
1044 lea edx,[32+edx] 1006 lea edx,[32+edx]
1045 xorps xmm2,xmm0 1007 xorps xmm2,xmm0
1046 L$046enc1_loop_8: 1008 L$044enc1_loop_8:
1047 db 102,15,56,220,209 1009 db 102,15,56,220,209
1048 dec ecx 1010 dec ecx
1049 movups xmm1,[edx] 1011 movups xmm1,[edx]
1050 lea edx,[16+edx] 1012 lea edx,[16+edx]
1051 » jnz» NEAR L$046enc1_loop_8 1013 » jnz» NEAR L$044enc1_loop_8
1052 db 102,15,56,221,209 1014 db 102,15,56,221,209
1053 mov esi,DWORD [20+esp] 1015 mov esi,DWORD [20+esp]
1054 mov edi,DWORD [24+esp] 1016 mov edi,DWORD [24+esp]
1055 mov eax,DWORD [28+esp] 1017 mov eax,DWORD [28+esp]
1056 mov edx,DWORD [32+esp] 1018 mov edx,DWORD [32+esp]
1057 mov ebp,esp 1019 mov ebp,esp
1058 sub esp,120 1020 sub esp,120
1059 mov ecx,DWORD [240+edx] 1021 mov ecx,DWORD [240+edx]
1060 and esp,-16 1022 and esp,-16
1061 mov DWORD [96+esp],135 1023 mov DWORD [96+esp],135
1062 mov DWORD [100+esp],0 1024 mov DWORD [100+esp],0
1063 mov DWORD [104+esp],1 1025 mov DWORD [104+esp],1
1064 mov DWORD [108+esp],0 1026 mov DWORD [108+esp],0
1065 mov DWORD [112+esp],eax 1027 mov DWORD [112+esp],eax
1066 mov DWORD [116+esp],ebp 1028 mov DWORD [116+esp],ebp
1067 movdqa xmm1,xmm2 1029 movdqa xmm1,xmm2
1068 pxor xmm0,xmm0 1030 pxor xmm0,xmm0
1069 movdqa xmm3,[96+esp] 1031 movdqa xmm3,[96+esp]
1070 pcmpgtd xmm0,xmm1 1032 pcmpgtd xmm0,xmm1
1071 and eax,-16 1033 and eax,-16
1072 mov ebp,edx 1034 mov ebp,edx
1073 mov ebx,ecx 1035 mov ebx,ecx
1074 sub eax,96 1036 sub eax,96
1075 » jc» NEAR L$047xts_enc_short 1037 » jc» NEAR L$045xts_enc_short
1076 shl ecx,4 1038 shl ecx,4
1077 mov ebx,16 1039 mov ebx,16
1078 sub ebx,ecx 1040 sub ebx,ecx
1079 lea edx,[32+ecx*1+edx] 1041 lea edx,[32+ecx*1+edx]
1080 » jmp» NEAR L$048xts_enc_loop6 1042 » jmp» NEAR L$046xts_enc_loop6
1081 align 16 1043 align 16
1082 L$048xts_enc_loop6: 1044 L$046xts_enc_loop6:
1083 pshufd xmm2,xmm0,19 1045 pshufd xmm2,xmm0,19
1084 pxor xmm0,xmm0 1046 pxor xmm0,xmm0
1085 movdqa [esp],xmm1 1047 movdqa [esp],xmm1
1086 paddq xmm1,xmm1 1048 paddq xmm1,xmm1
1087 pand xmm2,xmm3 1049 pand xmm2,xmm3
1088 pcmpgtd xmm0,xmm1 1050 pcmpgtd xmm0,xmm1
1089 pxor xmm1,xmm2 1051 pxor xmm1,xmm2
1090 pshufd xmm2,xmm0,19 1052 pshufd xmm2,xmm0,19
1091 pxor xmm0,xmm0 1053 pxor xmm0,xmm0
1092 movdqa [16+esp],xmm1 1054 movdqa [16+esp],xmm1
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1161 pshufd xmm2,xmm0,19 1123 pshufd xmm2,xmm0,19
1162 movups [80+edi],xmm7 1124 movups [80+edi],xmm7
1163 lea edi,[96+edi] 1125 lea edi,[96+edi]
1164 movdqa xmm3,[96+esp] 1126 movdqa xmm3,[96+esp]
1165 pxor xmm0,xmm0 1127 pxor xmm0,xmm0
1166 paddq xmm1,xmm1 1128 paddq xmm1,xmm1
1167 pand xmm2,xmm3 1129 pand xmm2,xmm3
1168 pcmpgtd xmm0,xmm1 1130 pcmpgtd xmm0,xmm1
1169 pxor xmm1,xmm2 1131 pxor xmm1,xmm2
1170 sub eax,96 1132 sub eax,96
1171 » jnc» NEAR L$048xts_enc_loop6 1133 » jnc» NEAR L$046xts_enc_loop6
1172 mov ecx,DWORD [240+ebp] 1134 mov ecx,DWORD [240+ebp]
1173 mov edx,ebp 1135 mov edx,ebp
1174 mov ebx,ecx 1136 mov ebx,ecx
1175 L$047xts_enc_short: 1137 L$045xts_enc_short:
1176 add eax,96 1138 add eax,96
1177 » jz» NEAR L$049xts_enc_done6x 1139 » jz» NEAR L$047xts_enc_done6x
1178 movdqa xmm5,xmm1 1140 movdqa xmm5,xmm1
1179 cmp eax,32 1141 cmp eax,32
1180 » jb» NEAR L$050xts_enc_one 1142 » jb» NEAR L$048xts_enc_one
1181 pshufd xmm2,xmm0,19 1143 pshufd xmm2,xmm0,19
1182 pxor xmm0,xmm0 1144 pxor xmm0,xmm0
1183 paddq xmm1,xmm1 1145 paddq xmm1,xmm1
1184 pand xmm2,xmm3 1146 pand xmm2,xmm3
1185 pcmpgtd xmm0,xmm1 1147 pcmpgtd xmm0,xmm1
1186 pxor xmm1,xmm2 1148 pxor xmm1,xmm2
1187 » je» NEAR L$051xts_enc_two 1149 » je» NEAR L$049xts_enc_two
1188 pshufd xmm2,xmm0,19 1150 pshufd xmm2,xmm0,19
1189 pxor xmm0,xmm0 1151 pxor xmm0,xmm0
1190 movdqa xmm6,xmm1 1152 movdqa xmm6,xmm1
1191 paddq xmm1,xmm1 1153 paddq xmm1,xmm1
1192 pand xmm2,xmm3 1154 pand xmm2,xmm3
1193 pcmpgtd xmm0,xmm1 1155 pcmpgtd xmm0,xmm1
1194 pxor xmm1,xmm2 1156 pxor xmm1,xmm2
1195 cmp eax,64 1157 cmp eax,64
1196 » jb» NEAR L$052xts_enc_three 1158 » jb» NEAR L$050xts_enc_three
1197 pshufd xmm2,xmm0,19 1159 pshufd xmm2,xmm0,19
1198 pxor xmm0,xmm0 1160 pxor xmm0,xmm0
1199 movdqa xmm7,xmm1 1161 movdqa xmm7,xmm1
1200 paddq xmm1,xmm1 1162 paddq xmm1,xmm1
1201 pand xmm2,xmm3 1163 pand xmm2,xmm3
1202 pcmpgtd xmm0,xmm1 1164 pcmpgtd xmm0,xmm1
1203 pxor xmm1,xmm2 1165 pxor xmm1,xmm2
1204 movdqa [esp],xmm5 1166 movdqa [esp],xmm5
1205 movdqa [16+esp],xmm6 1167 movdqa [16+esp],xmm6
1206 » je» NEAR L$053xts_enc_four 1168 » je» NEAR L$051xts_enc_four
1207 movdqa [32+esp],xmm7 1169 movdqa [32+esp],xmm7
1208 pshufd xmm7,xmm0,19 1170 pshufd xmm7,xmm0,19
1209 movdqa [48+esp],xmm1 1171 movdqa [48+esp],xmm1
1210 paddq xmm1,xmm1 1172 paddq xmm1,xmm1
1211 pand xmm7,xmm3 1173 pand xmm7,xmm3
1212 pxor xmm7,xmm1 1174 pxor xmm7,xmm1
1213 movdqu xmm2,[esi] 1175 movdqu xmm2,[esi]
1214 movdqu xmm3,[16+esi] 1176 movdqu xmm3,[16+esi]
1215 movdqu xmm4,[32+esi] 1177 movdqu xmm4,[32+esi]
1216 pxor xmm2,[esp] 1178 pxor xmm2,[esp]
(...skipping 11 matching lines...) Expand all
1228 xorps xmm3,[16+esp] 1190 xorps xmm3,[16+esp]
1229 xorps xmm4,[32+esp] 1191 xorps xmm4,[32+esp]
1230 movups [edi],xmm2 1192 movups [edi],xmm2
1231 xorps xmm5,[48+esp] 1193 xorps xmm5,[48+esp]
1232 movups [16+edi],xmm3 1194 movups [16+edi],xmm3
1233 xorps xmm6,xmm1 1195 xorps xmm6,xmm1
1234 movups [32+edi],xmm4 1196 movups [32+edi],xmm4
1235 movups [48+edi],xmm5 1197 movups [48+edi],xmm5
1236 movups [64+edi],xmm6 1198 movups [64+edi],xmm6
1237 lea edi,[80+edi] 1199 lea edi,[80+edi]
1238 » jmp» NEAR L$054xts_enc_done 1200 » jmp» NEAR L$052xts_enc_done
1239 align 16 1201 align 16
1240 L$050xts_enc_one: 1202 L$048xts_enc_one:
1241 movups xmm2,[esi] 1203 movups xmm2,[esi]
1242 lea esi,[16+esi] 1204 lea esi,[16+esi]
1243 xorps xmm2,xmm5 1205 xorps xmm2,xmm5
1244 movups xmm0,[edx] 1206 movups xmm0,[edx]
1245 movups xmm1,[16+edx] 1207 movups xmm1,[16+edx]
1246 lea edx,[32+edx] 1208 lea edx,[32+edx]
1247 xorps xmm2,xmm0 1209 xorps xmm2,xmm0
1248 L$055enc1_loop_9: 1210 L$053enc1_loop_9:
1249 db 102,15,56,220,209 1211 db 102,15,56,220,209
1250 dec ecx 1212 dec ecx
1251 movups xmm1,[edx] 1213 movups xmm1,[edx]
1252 lea edx,[16+edx] 1214 lea edx,[16+edx]
1253 » jnz» NEAR L$055enc1_loop_9 1215 » jnz» NEAR L$053enc1_loop_9
1254 db 102,15,56,221,209 1216 db 102,15,56,221,209
1255 xorps xmm2,xmm5 1217 xorps xmm2,xmm5
1256 movups [edi],xmm2 1218 movups [edi],xmm2
1257 lea edi,[16+edi] 1219 lea edi,[16+edi]
1258 movdqa xmm1,xmm5 1220 movdqa xmm1,xmm5
1259 » jmp» NEAR L$054xts_enc_done 1221 » jmp» NEAR L$052xts_enc_done
1260 align 16 1222 align 16
1261 L$051xts_enc_two: 1223 L$049xts_enc_two:
1262 movaps xmm6,xmm1 1224 movaps xmm6,xmm1
1263 movups xmm2,[esi] 1225 movups xmm2,[esi]
1264 movups xmm3,[16+esi] 1226 movups xmm3,[16+esi]
1265 lea esi,[32+esi] 1227 lea esi,[32+esi]
1266 xorps xmm2,xmm5 1228 xorps xmm2,xmm5
1267 xorps xmm3,xmm6 1229 xorps xmm3,xmm6
1268 call __aesni_encrypt2 1230 call __aesni_encrypt2
1269 xorps xmm2,xmm5 1231 xorps xmm2,xmm5
1270 xorps xmm3,xmm6 1232 xorps xmm3,xmm6
1271 movups [edi],xmm2 1233 movups [edi],xmm2
1272 movups [16+edi],xmm3 1234 movups [16+edi],xmm3
1273 lea edi,[32+edi] 1235 lea edi,[32+edi]
1274 movdqa xmm1,xmm6 1236 movdqa xmm1,xmm6
1275 » jmp» NEAR L$054xts_enc_done 1237 » jmp» NEAR L$052xts_enc_done
1276 align 16 1238 align 16
1277 L$052xts_enc_three: 1239 L$050xts_enc_three:
1278 movaps xmm7,xmm1 1240 movaps xmm7,xmm1
1279 movups xmm2,[esi] 1241 movups xmm2,[esi]
1280 movups xmm3,[16+esi] 1242 movups xmm3,[16+esi]
1281 movups xmm4,[32+esi] 1243 movups xmm4,[32+esi]
1282 lea esi,[48+esi] 1244 lea esi,[48+esi]
1283 xorps xmm2,xmm5 1245 xorps xmm2,xmm5
1284 xorps xmm3,xmm6 1246 xorps xmm3,xmm6
1285 xorps xmm4,xmm7 1247 xorps xmm4,xmm7
1286 call __aesni_encrypt3 1248 call __aesni_encrypt3
1287 xorps xmm2,xmm5 1249 xorps xmm2,xmm5
1288 xorps xmm3,xmm6 1250 xorps xmm3,xmm6
1289 xorps xmm4,xmm7 1251 xorps xmm4,xmm7
1290 movups [edi],xmm2 1252 movups [edi],xmm2
1291 movups [16+edi],xmm3 1253 movups [16+edi],xmm3
1292 movups [32+edi],xmm4 1254 movups [32+edi],xmm4
1293 lea edi,[48+edi] 1255 lea edi,[48+edi]
1294 movdqa xmm1,xmm7 1256 movdqa xmm1,xmm7
1295 » jmp» NEAR L$054xts_enc_done 1257 » jmp» NEAR L$052xts_enc_done
1296 align 16 1258 align 16
1297 L$053xts_enc_four: 1259 L$051xts_enc_four:
1298 movaps xmm6,xmm1 1260 movaps xmm6,xmm1
1299 movups xmm2,[esi] 1261 movups xmm2,[esi]
1300 movups xmm3,[16+esi] 1262 movups xmm3,[16+esi]
1301 movups xmm4,[32+esi] 1263 movups xmm4,[32+esi]
1302 xorps xmm2,[esp] 1264 xorps xmm2,[esp]
1303 movups xmm5,[48+esi] 1265 movups xmm5,[48+esi]
1304 lea esi,[64+esi] 1266 lea esi,[64+esi]
1305 xorps xmm3,[16+esp] 1267 xorps xmm3,[16+esp]
1306 xorps xmm4,xmm7 1268 xorps xmm4,xmm7
1307 xorps xmm5,xmm6 1269 xorps xmm5,xmm6
1308 call __aesni_encrypt4 1270 call __aesni_encrypt4
1309 xorps xmm2,[esp] 1271 xorps xmm2,[esp]
1310 xorps xmm3,[16+esp] 1272 xorps xmm3,[16+esp]
1311 xorps xmm4,xmm7 1273 xorps xmm4,xmm7
1312 movups [edi],xmm2 1274 movups [edi],xmm2
1313 xorps xmm5,xmm6 1275 xorps xmm5,xmm6
1314 movups [16+edi],xmm3 1276 movups [16+edi],xmm3
1315 movups [32+edi],xmm4 1277 movups [32+edi],xmm4
1316 movups [48+edi],xmm5 1278 movups [48+edi],xmm5
1317 lea edi,[64+edi] 1279 lea edi,[64+edi]
1318 movdqa xmm1,xmm6 1280 movdqa xmm1,xmm6
1319 » jmp» NEAR L$054xts_enc_done 1281 » jmp» NEAR L$052xts_enc_done
1320 align 16 1282 align 16
1321 L$049xts_enc_done6x: 1283 L$047xts_enc_done6x:
1322 mov eax,DWORD [112+esp] 1284 mov eax,DWORD [112+esp]
1323 and eax,15 1285 and eax,15
1324 » jz» NEAR L$056xts_enc_ret 1286 » jz» NEAR L$054xts_enc_ret
1325 movdqa xmm5,xmm1 1287 movdqa xmm5,xmm1
1326 mov DWORD [112+esp],eax 1288 mov DWORD [112+esp],eax
1327 » jmp» NEAR L$057xts_enc_steal 1289 » jmp» NEAR L$055xts_enc_steal
1328 align 16 1290 align 16
1329 L$054xts_enc_done: 1291 L$052xts_enc_done:
1330 mov eax,DWORD [112+esp] 1292 mov eax,DWORD [112+esp]
1331 pxor xmm0,xmm0 1293 pxor xmm0,xmm0
1332 and eax,15 1294 and eax,15
1333 » jz» NEAR L$056xts_enc_ret 1295 » jz» NEAR L$054xts_enc_ret
1334 pcmpgtd xmm0,xmm1 1296 pcmpgtd xmm0,xmm1
1335 mov DWORD [112+esp],eax 1297 mov DWORD [112+esp],eax
1336 pshufd xmm5,xmm0,19 1298 pshufd xmm5,xmm0,19
1337 paddq xmm1,xmm1 1299 paddq xmm1,xmm1
1338 pand xmm5,[96+esp] 1300 pand xmm5,[96+esp]
1339 pxor xmm5,xmm1 1301 pxor xmm5,xmm1
1340 L$057xts_enc_steal: 1302 L$055xts_enc_steal:
1341 movzx ecx,BYTE [esi] 1303 movzx ecx,BYTE [esi]
1342 movzx edx,BYTE [edi-16] 1304 movzx edx,BYTE [edi-16]
1343 lea esi,[1+esi] 1305 lea esi,[1+esi]
1344 mov BYTE [edi-16],cl 1306 mov BYTE [edi-16],cl
1345 mov BYTE [edi],dl 1307 mov BYTE [edi],dl
1346 lea edi,[1+edi] 1308 lea edi,[1+edi]
1347 sub eax,1 1309 sub eax,1
1348 » jnz» NEAR L$057xts_enc_steal 1310 » jnz» NEAR L$055xts_enc_steal
1349 sub edi,DWORD [112+esp] 1311 sub edi,DWORD [112+esp]
1350 mov edx,ebp 1312 mov edx,ebp
1351 mov ecx,ebx 1313 mov ecx,ebx
1352 movups xmm2,[edi-16] 1314 movups xmm2,[edi-16]
1353 xorps xmm2,xmm5 1315 xorps xmm2,xmm5
1354 movups xmm0,[edx] 1316 movups xmm0,[edx]
1355 movups xmm1,[16+edx] 1317 movups xmm1,[16+edx]
1356 lea edx,[32+edx] 1318 lea edx,[32+edx]
1357 xorps xmm2,xmm0 1319 xorps xmm2,xmm0
1358 L$058enc1_loop_10: 1320 L$056enc1_loop_10:
1359 db 102,15,56,220,209 1321 db 102,15,56,220,209
1360 dec ecx 1322 dec ecx
1361 movups xmm1,[edx] 1323 movups xmm1,[edx]
1362 lea edx,[16+edx] 1324 lea edx,[16+edx]
1363 » jnz» NEAR L$058enc1_loop_10 1325 » jnz» NEAR L$056enc1_loop_10
1364 db 102,15,56,221,209 1326 db 102,15,56,221,209
1365 xorps xmm2,xmm5 1327 xorps xmm2,xmm5
1366 movups [edi-16],xmm2 1328 movups [edi-16],xmm2
1367 L$056xts_enc_ret: 1329 L$054xts_enc_ret:
1368 » pxor» xmm0,xmm0
1369 » pxor» xmm1,xmm1
1370 » pxor» xmm2,xmm2
1371 » movdqa» [esp],xmm0
1372 » pxor» xmm3,xmm3
1373 » movdqa» [16+esp],xmm0
1374 » pxor» xmm4,xmm4
1375 » movdqa» [32+esp],xmm0
1376 » pxor» xmm5,xmm5
1377 » movdqa» [48+esp],xmm0
1378 » pxor» xmm6,xmm6
1379 » movdqa» [64+esp],xmm0
1380 » pxor» xmm7,xmm7
1381 » movdqa» [80+esp],xmm0
1382 mov esp,DWORD [116+esp] 1330 mov esp,DWORD [116+esp]
1383 pop edi 1331 pop edi
1384 pop esi 1332 pop esi
1385 pop ebx 1333 pop ebx
1386 pop ebp 1334 pop ebp
1387 ret 1335 ret
1388 global _aesni_xts_decrypt 1336 global _aesni_xts_decrypt
1389 align 16 1337 align 16
1390 _aesni_xts_decrypt: 1338 _aesni_xts_decrypt:
1391 L$_aesni_xts_decrypt_begin: 1339 L$_aesni_xts_decrypt_begin:
1392 push ebp 1340 push ebp
1393 push ebx 1341 push ebx
1394 push esi 1342 push esi
1395 push edi 1343 push edi
1396 mov edx,DWORD [36+esp] 1344 mov edx,DWORD [36+esp]
1397 mov esi,DWORD [40+esp] 1345 mov esi,DWORD [40+esp]
1398 mov ecx,DWORD [240+edx] 1346 mov ecx,DWORD [240+edx]
1399 movups xmm2,[esi] 1347 movups xmm2,[esi]
1400 movups xmm0,[edx] 1348 movups xmm0,[edx]
1401 movups xmm1,[16+edx] 1349 movups xmm1,[16+edx]
1402 lea edx,[32+edx] 1350 lea edx,[32+edx]
1403 xorps xmm2,xmm0 1351 xorps xmm2,xmm0
1404 L$059enc1_loop_11: 1352 L$057enc1_loop_11:
1405 db 102,15,56,220,209 1353 db 102,15,56,220,209
1406 dec ecx 1354 dec ecx
1407 movups xmm1,[edx] 1355 movups xmm1,[edx]
1408 lea edx,[16+edx] 1356 lea edx,[16+edx]
1409 » jnz» NEAR L$059enc1_loop_11 1357 » jnz» NEAR L$057enc1_loop_11
1410 db 102,15,56,221,209 1358 db 102,15,56,221,209
1411 mov esi,DWORD [20+esp] 1359 mov esi,DWORD [20+esp]
1412 mov edi,DWORD [24+esp] 1360 mov edi,DWORD [24+esp]
1413 mov eax,DWORD [28+esp] 1361 mov eax,DWORD [28+esp]
1414 mov edx,DWORD [32+esp] 1362 mov edx,DWORD [32+esp]
1415 mov ebp,esp 1363 mov ebp,esp
1416 sub esp,120 1364 sub esp,120
1417 and esp,-16 1365 and esp,-16
1418 xor ebx,ebx 1366 xor ebx,ebx
1419 test eax,15 1367 test eax,15
1420 setnz bl 1368 setnz bl
1421 shl ebx,4 1369 shl ebx,4
1422 sub eax,ebx 1370 sub eax,ebx
1423 mov DWORD [96+esp],135 1371 mov DWORD [96+esp],135
1424 mov DWORD [100+esp],0 1372 mov DWORD [100+esp],0
1425 mov DWORD [104+esp],1 1373 mov DWORD [104+esp],1
1426 mov DWORD [108+esp],0 1374 mov DWORD [108+esp],0
1427 mov DWORD [112+esp],eax 1375 mov DWORD [112+esp],eax
1428 mov DWORD [116+esp],ebp 1376 mov DWORD [116+esp],ebp
1429 mov ecx,DWORD [240+edx] 1377 mov ecx,DWORD [240+edx]
1430 mov ebp,edx 1378 mov ebp,edx
1431 mov ebx,ecx 1379 mov ebx,ecx
1432 movdqa xmm1,xmm2 1380 movdqa xmm1,xmm2
1433 pxor xmm0,xmm0 1381 pxor xmm0,xmm0
1434 movdqa xmm3,[96+esp] 1382 movdqa xmm3,[96+esp]
1435 pcmpgtd xmm0,xmm1 1383 pcmpgtd xmm0,xmm1
1436 and eax,-16 1384 and eax,-16
1437 sub eax,96 1385 sub eax,96
1438 » jc» NEAR L$060xts_dec_short 1386 » jc» NEAR L$058xts_dec_short
1439 shl ecx,4 1387 shl ecx,4
1440 mov ebx,16 1388 mov ebx,16
1441 sub ebx,ecx 1389 sub ebx,ecx
1442 lea edx,[32+ecx*1+edx] 1390 lea edx,[32+ecx*1+edx]
1443 » jmp» NEAR L$061xts_dec_loop6 1391 » jmp» NEAR L$059xts_dec_loop6
1444 align 16 1392 align 16
1445 L$061xts_dec_loop6: 1393 L$059xts_dec_loop6:
1446 pshufd xmm2,xmm0,19 1394 pshufd xmm2,xmm0,19
1447 pxor xmm0,xmm0 1395 pxor xmm0,xmm0
1448 movdqa [esp],xmm1 1396 movdqa [esp],xmm1
1449 paddq xmm1,xmm1 1397 paddq xmm1,xmm1
1450 pand xmm2,xmm3 1398 pand xmm2,xmm3
1451 pcmpgtd xmm0,xmm1 1399 pcmpgtd xmm0,xmm1
1452 pxor xmm1,xmm2 1400 pxor xmm1,xmm2
1453 pshufd xmm2,xmm0,19 1401 pshufd xmm2,xmm0,19
1454 pxor xmm0,xmm0 1402 pxor xmm0,xmm0
1455 movdqa [16+esp],xmm1 1403 movdqa [16+esp],xmm1
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1524 pshufd xmm2,xmm0,19 1472 pshufd xmm2,xmm0,19
1525 movups [80+edi],xmm7 1473 movups [80+edi],xmm7
1526 lea edi,[96+edi] 1474 lea edi,[96+edi]
1527 movdqa xmm3,[96+esp] 1475 movdqa xmm3,[96+esp]
1528 pxor xmm0,xmm0 1476 pxor xmm0,xmm0
1529 paddq xmm1,xmm1 1477 paddq xmm1,xmm1
1530 pand xmm2,xmm3 1478 pand xmm2,xmm3
1531 pcmpgtd xmm0,xmm1 1479 pcmpgtd xmm0,xmm1
1532 pxor xmm1,xmm2 1480 pxor xmm1,xmm2
1533 sub eax,96 1481 sub eax,96
1534 » jnc» NEAR L$061xts_dec_loop6 1482 » jnc» NEAR L$059xts_dec_loop6
1535 mov ecx,DWORD [240+ebp] 1483 mov ecx,DWORD [240+ebp]
1536 mov edx,ebp 1484 mov edx,ebp
1537 mov ebx,ecx 1485 mov ebx,ecx
1538 L$060xts_dec_short: 1486 L$058xts_dec_short:
1539 add eax,96 1487 add eax,96
1540 » jz» NEAR L$062xts_dec_done6x 1488 » jz» NEAR L$060xts_dec_done6x
1541 movdqa xmm5,xmm1 1489 movdqa xmm5,xmm1
1542 cmp eax,32 1490 cmp eax,32
1543 » jb» NEAR L$063xts_dec_one 1491 » jb» NEAR L$061xts_dec_one
1544 pshufd xmm2,xmm0,19 1492 pshufd xmm2,xmm0,19
1545 pxor xmm0,xmm0 1493 pxor xmm0,xmm0
1546 paddq xmm1,xmm1 1494 paddq xmm1,xmm1
1547 pand xmm2,xmm3 1495 pand xmm2,xmm3
1548 pcmpgtd xmm0,xmm1 1496 pcmpgtd xmm0,xmm1
1549 pxor xmm1,xmm2 1497 pxor xmm1,xmm2
1550 » je» NEAR L$064xts_dec_two 1498 » je» NEAR L$062xts_dec_two
1551 pshufd xmm2,xmm0,19 1499 pshufd xmm2,xmm0,19
1552 pxor xmm0,xmm0 1500 pxor xmm0,xmm0
1553 movdqa xmm6,xmm1 1501 movdqa xmm6,xmm1
1554 paddq xmm1,xmm1 1502 paddq xmm1,xmm1
1555 pand xmm2,xmm3 1503 pand xmm2,xmm3
1556 pcmpgtd xmm0,xmm1 1504 pcmpgtd xmm0,xmm1
1557 pxor xmm1,xmm2 1505 pxor xmm1,xmm2
1558 cmp eax,64 1506 cmp eax,64
1559 » jb» NEAR L$065xts_dec_three 1507 » jb» NEAR L$063xts_dec_three
1560 pshufd xmm2,xmm0,19 1508 pshufd xmm2,xmm0,19
1561 pxor xmm0,xmm0 1509 pxor xmm0,xmm0
1562 movdqa xmm7,xmm1 1510 movdqa xmm7,xmm1
1563 paddq xmm1,xmm1 1511 paddq xmm1,xmm1
1564 pand xmm2,xmm3 1512 pand xmm2,xmm3
1565 pcmpgtd xmm0,xmm1 1513 pcmpgtd xmm0,xmm1
1566 pxor xmm1,xmm2 1514 pxor xmm1,xmm2
1567 movdqa [esp],xmm5 1515 movdqa [esp],xmm5
1568 movdqa [16+esp],xmm6 1516 movdqa [16+esp],xmm6
1569 » je» NEAR L$066xts_dec_four 1517 » je» NEAR L$064xts_dec_four
1570 movdqa [32+esp],xmm7 1518 movdqa [32+esp],xmm7
1571 pshufd xmm7,xmm0,19 1519 pshufd xmm7,xmm0,19
1572 movdqa [48+esp],xmm1 1520 movdqa [48+esp],xmm1
1573 paddq xmm1,xmm1 1521 paddq xmm1,xmm1
1574 pand xmm7,xmm3 1522 pand xmm7,xmm3
1575 pxor xmm7,xmm1 1523 pxor xmm7,xmm1
1576 movdqu xmm2,[esi] 1524 movdqu xmm2,[esi]
1577 movdqu xmm3,[16+esi] 1525 movdqu xmm3,[16+esi]
1578 movdqu xmm4,[32+esi] 1526 movdqu xmm4,[32+esi]
1579 pxor xmm2,[esp] 1527 pxor xmm2,[esp]
(...skipping 11 matching lines...) Expand all
1591 xorps xmm3,[16+esp] 1539 xorps xmm3,[16+esp]
1592 xorps xmm4,[32+esp] 1540 xorps xmm4,[32+esp]
1593 movups [edi],xmm2 1541 movups [edi],xmm2
1594 xorps xmm5,[48+esp] 1542 xorps xmm5,[48+esp]
1595 movups [16+edi],xmm3 1543 movups [16+edi],xmm3
1596 xorps xmm6,xmm1 1544 xorps xmm6,xmm1
1597 movups [32+edi],xmm4 1545 movups [32+edi],xmm4
1598 movups [48+edi],xmm5 1546 movups [48+edi],xmm5
1599 movups [64+edi],xmm6 1547 movups [64+edi],xmm6
1600 lea edi,[80+edi] 1548 lea edi,[80+edi]
1601 » jmp» NEAR L$067xts_dec_done 1549 » jmp» NEAR L$065xts_dec_done
1602 align 16 1550 align 16
1603 L$063xts_dec_one: 1551 L$061xts_dec_one:
1604 movups xmm2,[esi] 1552 movups xmm2,[esi]
1605 lea esi,[16+esi] 1553 lea esi,[16+esi]
1606 xorps xmm2,xmm5 1554 xorps xmm2,xmm5
1607 movups xmm0,[edx] 1555 movups xmm0,[edx]
1608 movups xmm1,[16+edx] 1556 movups xmm1,[16+edx]
1609 lea edx,[32+edx] 1557 lea edx,[32+edx]
1610 xorps xmm2,xmm0 1558 xorps xmm2,xmm0
1611 L$068dec1_loop_12: 1559 L$066dec1_loop_12:
1612 db 102,15,56,222,209 1560 db 102,15,56,222,209
1613 dec ecx 1561 dec ecx
1614 movups xmm1,[edx] 1562 movups xmm1,[edx]
1615 lea edx,[16+edx] 1563 lea edx,[16+edx]
1616 » jnz» NEAR L$068dec1_loop_12 1564 » jnz» NEAR L$066dec1_loop_12
1617 db 102,15,56,223,209 1565 db 102,15,56,223,209
1618 xorps xmm2,xmm5 1566 xorps xmm2,xmm5
1619 movups [edi],xmm2 1567 movups [edi],xmm2
1620 lea edi,[16+edi] 1568 lea edi,[16+edi]
1621 movdqa xmm1,xmm5 1569 movdqa xmm1,xmm5
1622 » jmp» NEAR L$067xts_dec_done 1570 » jmp» NEAR L$065xts_dec_done
1623 align 16 1571 align 16
1624 L$064xts_dec_two: 1572 L$062xts_dec_two:
1625 movaps xmm6,xmm1 1573 movaps xmm6,xmm1
1626 movups xmm2,[esi] 1574 movups xmm2,[esi]
1627 movups xmm3,[16+esi] 1575 movups xmm3,[16+esi]
1628 lea esi,[32+esi] 1576 lea esi,[32+esi]
1629 xorps xmm2,xmm5 1577 xorps xmm2,xmm5
1630 xorps xmm3,xmm6 1578 xorps xmm3,xmm6
1631 call __aesni_decrypt2 1579 call __aesni_decrypt2
1632 xorps xmm2,xmm5 1580 xorps xmm2,xmm5
1633 xorps xmm3,xmm6 1581 xorps xmm3,xmm6
1634 movups [edi],xmm2 1582 movups [edi],xmm2
1635 movups [16+edi],xmm3 1583 movups [16+edi],xmm3
1636 lea edi,[32+edi] 1584 lea edi,[32+edi]
1637 movdqa xmm1,xmm6 1585 movdqa xmm1,xmm6
1638 » jmp» NEAR L$067xts_dec_done 1586 » jmp» NEAR L$065xts_dec_done
1639 align 16 1587 align 16
1640 L$065xts_dec_three: 1588 L$063xts_dec_three:
1641 movaps xmm7,xmm1 1589 movaps xmm7,xmm1
1642 movups xmm2,[esi] 1590 movups xmm2,[esi]
1643 movups xmm3,[16+esi] 1591 movups xmm3,[16+esi]
1644 movups xmm4,[32+esi] 1592 movups xmm4,[32+esi]
1645 lea esi,[48+esi] 1593 lea esi,[48+esi]
1646 xorps xmm2,xmm5 1594 xorps xmm2,xmm5
1647 xorps xmm3,xmm6 1595 xorps xmm3,xmm6
1648 xorps xmm4,xmm7 1596 xorps xmm4,xmm7
1649 call __aesni_decrypt3 1597 call __aesni_decrypt3
1650 xorps xmm2,xmm5 1598 xorps xmm2,xmm5
1651 xorps xmm3,xmm6 1599 xorps xmm3,xmm6
1652 xorps xmm4,xmm7 1600 xorps xmm4,xmm7
1653 movups [edi],xmm2 1601 movups [edi],xmm2
1654 movups [16+edi],xmm3 1602 movups [16+edi],xmm3
1655 movups [32+edi],xmm4 1603 movups [32+edi],xmm4
1656 lea edi,[48+edi] 1604 lea edi,[48+edi]
1657 movdqa xmm1,xmm7 1605 movdqa xmm1,xmm7
1658 » jmp» NEAR L$067xts_dec_done 1606 » jmp» NEAR L$065xts_dec_done
1659 align 16 1607 align 16
1660 L$066xts_dec_four: 1608 L$064xts_dec_four:
1661 movaps xmm6,xmm1 1609 movaps xmm6,xmm1
1662 movups xmm2,[esi] 1610 movups xmm2,[esi]
1663 movups xmm3,[16+esi] 1611 movups xmm3,[16+esi]
1664 movups xmm4,[32+esi] 1612 movups xmm4,[32+esi]
1665 xorps xmm2,[esp] 1613 xorps xmm2,[esp]
1666 movups xmm5,[48+esi] 1614 movups xmm5,[48+esi]
1667 lea esi,[64+esi] 1615 lea esi,[64+esi]
1668 xorps xmm3,[16+esp] 1616 xorps xmm3,[16+esp]
1669 xorps xmm4,xmm7 1617 xorps xmm4,xmm7
1670 xorps xmm5,xmm6 1618 xorps xmm5,xmm6
1671 call __aesni_decrypt4 1619 call __aesni_decrypt4
1672 xorps xmm2,[esp] 1620 xorps xmm2,[esp]
1673 xorps xmm3,[16+esp] 1621 xorps xmm3,[16+esp]
1674 xorps xmm4,xmm7 1622 xorps xmm4,xmm7
1675 movups [edi],xmm2 1623 movups [edi],xmm2
1676 xorps xmm5,xmm6 1624 xorps xmm5,xmm6
1677 movups [16+edi],xmm3 1625 movups [16+edi],xmm3
1678 movups [32+edi],xmm4 1626 movups [32+edi],xmm4
1679 movups [48+edi],xmm5 1627 movups [48+edi],xmm5
1680 lea edi,[64+edi] 1628 lea edi,[64+edi]
1681 movdqa xmm1,xmm6 1629 movdqa xmm1,xmm6
1682 » jmp» NEAR L$067xts_dec_done 1630 » jmp» NEAR L$065xts_dec_done
1683 align 16 1631 align 16
1684 L$062xts_dec_done6x: 1632 L$060xts_dec_done6x:
1685 mov eax,DWORD [112+esp] 1633 mov eax,DWORD [112+esp]
1686 and eax,15 1634 and eax,15
1687 » jz» NEAR L$069xts_dec_ret 1635 » jz» NEAR L$067xts_dec_ret
1688 mov DWORD [112+esp],eax 1636 mov DWORD [112+esp],eax
1689 » jmp» NEAR L$070xts_dec_only_one_more 1637 » jmp» NEAR L$068xts_dec_only_one_more
1690 align 16 1638 align 16
1691 L$067xts_dec_done: 1639 L$065xts_dec_done:
1692 mov eax,DWORD [112+esp] 1640 mov eax,DWORD [112+esp]
1693 pxor xmm0,xmm0 1641 pxor xmm0,xmm0
1694 and eax,15 1642 and eax,15
1695 » jz» NEAR L$069xts_dec_ret 1643 » jz» NEAR L$067xts_dec_ret
1696 pcmpgtd xmm0,xmm1 1644 pcmpgtd xmm0,xmm1
1697 mov DWORD [112+esp],eax 1645 mov DWORD [112+esp],eax
1698 pshufd xmm2,xmm0,19 1646 pshufd xmm2,xmm0,19
1699 pxor xmm0,xmm0 1647 pxor xmm0,xmm0
1700 movdqa xmm3,[96+esp] 1648 movdqa xmm3,[96+esp]
1701 paddq xmm1,xmm1 1649 paddq xmm1,xmm1
1702 pand xmm2,xmm3 1650 pand xmm2,xmm3
1703 pcmpgtd xmm0,xmm1 1651 pcmpgtd xmm0,xmm1
1704 pxor xmm1,xmm2 1652 pxor xmm1,xmm2
1705 L$070xts_dec_only_one_more: 1653 L$068xts_dec_only_one_more:
1706 pshufd xmm5,xmm0,19 1654 pshufd xmm5,xmm0,19
1707 movdqa xmm6,xmm1 1655 movdqa xmm6,xmm1
1708 paddq xmm1,xmm1 1656 paddq xmm1,xmm1
1709 pand xmm5,xmm3 1657 pand xmm5,xmm3
1710 pxor xmm5,xmm1 1658 pxor xmm5,xmm1
1711 mov edx,ebp 1659 mov edx,ebp
1712 mov ecx,ebx 1660 mov ecx,ebx
1713 movups xmm2,[esi] 1661 movups xmm2,[esi]
1714 xorps xmm2,xmm5 1662 xorps xmm2,xmm5
1715 movups xmm0,[edx] 1663 movups xmm0,[edx]
1716 movups xmm1,[16+edx] 1664 movups xmm1,[16+edx]
1717 lea edx,[32+edx] 1665 lea edx,[32+edx]
1718 xorps xmm2,xmm0 1666 xorps xmm2,xmm0
1719 L$071dec1_loop_13: 1667 L$069dec1_loop_13:
1720 db 102,15,56,222,209 1668 db 102,15,56,222,209
1721 dec ecx 1669 dec ecx
1722 movups xmm1,[edx] 1670 movups xmm1,[edx]
1723 lea edx,[16+edx] 1671 lea edx,[16+edx]
1724 » jnz» NEAR L$071dec1_loop_13 1672 » jnz» NEAR L$069dec1_loop_13
1725 db 102,15,56,223,209 1673 db 102,15,56,223,209
1726 xorps xmm2,xmm5 1674 xorps xmm2,xmm5
1727 movups [edi],xmm2 1675 movups [edi],xmm2
1728 L$072xts_dec_steal: 1676 L$070xts_dec_steal:
1729 movzx ecx,BYTE [16+esi] 1677 movzx ecx,BYTE [16+esi]
1730 movzx edx,BYTE [edi] 1678 movzx edx,BYTE [edi]
1731 lea esi,[1+esi] 1679 lea esi,[1+esi]
1732 mov BYTE [edi],cl 1680 mov BYTE [edi],cl
1733 mov BYTE [16+edi],dl 1681 mov BYTE [16+edi],dl
1734 lea edi,[1+edi] 1682 lea edi,[1+edi]
1735 sub eax,1 1683 sub eax,1
1736 » jnz» NEAR L$072xts_dec_steal 1684 » jnz» NEAR L$070xts_dec_steal
1737 sub edi,DWORD [112+esp] 1685 sub edi,DWORD [112+esp]
1738 mov edx,ebp 1686 mov edx,ebp
1739 mov ecx,ebx 1687 mov ecx,ebx
1740 movups xmm2,[edi] 1688 movups xmm2,[edi]
1741 xorps xmm2,xmm6 1689 xorps xmm2,xmm6
1742 movups xmm0,[edx] 1690 movups xmm0,[edx]
1743 movups xmm1,[16+edx] 1691 movups xmm1,[16+edx]
1744 lea edx,[32+edx] 1692 lea edx,[32+edx]
1745 xorps xmm2,xmm0 1693 xorps xmm2,xmm0
1746 L$073dec1_loop_14: 1694 L$071dec1_loop_14:
1747 db 102,15,56,222,209 1695 db 102,15,56,222,209
1748 dec ecx 1696 dec ecx
1749 movups xmm1,[edx] 1697 movups xmm1,[edx]
1750 lea edx,[16+edx] 1698 lea edx,[16+edx]
1751 » jnz» NEAR L$073dec1_loop_14 1699 » jnz» NEAR L$071dec1_loop_14
1752 db 102,15,56,223,209 1700 db 102,15,56,223,209
1753 xorps xmm2,xmm6 1701 xorps xmm2,xmm6
1754 movups [edi],xmm2 1702 movups [edi],xmm2
1755 L$069xts_dec_ret: 1703 L$067xts_dec_ret:
1756 » pxor» xmm0,xmm0
1757 » pxor» xmm1,xmm1
1758 » pxor» xmm2,xmm2
1759 » movdqa» [esp],xmm0
1760 » pxor» xmm3,xmm3
1761 » movdqa» [16+esp],xmm0
1762 » pxor» xmm4,xmm4
1763 » movdqa» [32+esp],xmm0
1764 » pxor» xmm5,xmm5
1765 » movdqa» [48+esp],xmm0
1766 » pxor» xmm6,xmm6
1767 » movdqa» [64+esp],xmm0
1768 » pxor» xmm7,xmm7
1769 » movdqa» [80+esp],xmm0
1770 mov esp,DWORD [116+esp] 1704 mov esp,DWORD [116+esp]
1771 pop edi 1705 pop edi
1772 pop esi 1706 pop esi
1773 pop ebx 1707 pop ebx
1774 pop ebp 1708 pop ebp
1775 ret 1709 ret
1776 global _aesni_cbc_encrypt 1710 global _aesni_cbc_encrypt
1777 align 16 1711 align 16
1778 _aesni_cbc_encrypt: 1712 _aesni_cbc_encrypt:
1779 L$_aesni_cbc_encrypt_begin: 1713 L$_aesni_cbc_encrypt_begin:
1780 push ebp 1714 push ebp
1781 push ebx 1715 push ebx
1782 push esi 1716 push esi
1783 push edi 1717 push edi
1784 mov esi,DWORD [20+esp] 1718 mov esi,DWORD [20+esp]
1785 mov ebx,esp 1719 mov ebx,esp
1786 mov edi,DWORD [24+esp] 1720 mov edi,DWORD [24+esp]
1787 sub ebx,24 1721 sub ebx,24
1788 mov eax,DWORD [28+esp] 1722 mov eax,DWORD [28+esp]
1789 and ebx,-16 1723 and ebx,-16
1790 mov edx,DWORD [32+esp] 1724 mov edx,DWORD [32+esp]
1791 mov ebp,DWORD [36+esp] 1725 mov ebp,DWORD [36+esp]
1792 test eax,eax 1726 test eax,eax
1793 » jz» NEAR L$074cbc_abort 1727 » jz» NEAR L$072cbc_abort
1794 cmp DWORD [40+esp],0 1728 cmp DWORD [40+esp],0
1795 xchg ebx,esp 1729 xchg ebx,esp
1796 movups xmm7,[ebp] 1730 movups xmm7,[ebp]
1797 mov ecx,DWORD [240+edx] 1731 mov ecx,DWORD [240+edx]
1798 mov ebp,edx 1732 mov ebp,edx
1799 mov DWORD [16+esp],ebx 1733 mov DWORD [16+esp],ebx
1800 mov ebx,ecx 1734 mov ebx,ecx
1801 » je» NEAR L$075cbc_decrypt 1735 » je» NEAR L$073cbc_decrypt
1802 movaps xmm2,xmm7 1736 movaps xmm2,xmm7
1803 cmp eax,16 1737 cmp eax,16
1804 » jb» NEAR L$076cbc_enc_tail 1738 » jb» NEAR L$074cbc_enc_tail
1805 sub eax,16 1739 sub eax,16
1806 » jmp» NEAR L$077cbc_enc_loop 1740 » jmp» NEAR L$075cbc_enc_loop
1807 align 16 1741 align 16
1808 L$077cbc_enc_loop: 1742 L$075cbc_enc_loop:
1809 movups xmm7,[esi] 1743 movups xmm7,[esi]
1810 lea esi,[16+esi] 1744 lea esi,[16+esi]
1811 movups xmm0,[edx] 1745 movups xmm0,[edx]
1812 movups xmm1,[16+edx] 1746 movups xmm1,[16+edx]
1813 xorps xmm7,xmm0 1747 xorps xmm7,xmm0
1814 lea edx,[32+edx] 1748 lea edx,[32+edx]
1815 xorps xmm2,xmm7 1749 xorps xmm2,xmm7
1816 L$078enc1_loop_15: 1750 L$076enc1_loop_15:
1817 db 102,15,56,220,209 1751 db 102,15,56,220,209
1818 dec ecx 1752 dec ecx
1819 movups xmm1,[edx] 1753 movups xmm1,[edx]
1820 lea edx,[16+edx] 1754 lea edx,[16+edx]
1821 » jnz» NEAR L$078enc1_loop_15 1755 » jnz» NEAR L$076enc1_loop_15
1822 db 102,15,56,221,209 1756 db 102,15,56,221,209
1823 mov ecx,ebx 1757 mov ecx,ebx
1824 mov edx,ebp 1758 mov edx,ebp
1825 movups [edi],xmm2 1759 movups [edi],xmm2
1826 lea edi,[16+edi] 1760 lea edi,[16+edi]
1827 sub eax,16 1761 sub eax,16
1828 » jnc» NEAR L$077cbc_enc_loop 1762 » jnc» NEAR L$075cbc_enc_loop
1829 add eax,16 1763 add eax,16
1830 » jnz» NEAR L$076cbc_enc_tail 1764 » jnz» NEAR L$074cbc_enc_tail
1831 movaps xmm7,xmm2 1765 movaps xmm7,xmm2
1832 » pxor» xmm2,xmm2 1766 » jmp» NEAR L$077cbc_ret
1833 » jmp» NEAR L$079cbc_ret 1767 L$074cbc_enc_tail:
1834 L$076cbc_enc_tail:
1835 mov ecx,eax 1768 mov ecx,eax
1836 dd 2767451785 1769 dd 2767451785
1837 mov ecx,16 1770 mov ecx,16
1838 sub ecx,eax 1771 sub ecx,eax
1839 xor eax,eax 1772 xor eax,eax
1840 dd 2868115081 1773 dd 2868115081
1841 lea edi,[edi-16] 1774 lea edi,[edi-16]
1842 mov ecx,ebx 1775 mov ecx,ebx
1843 mov esi,edi 1776 mov esi,edi
1844 mov edx,ebp 1777 mov edx,ebp
1845 » jmp» NEAR L$077cbc_enc_loop 1778 » jmp» NEAR L$075cbc_enc_loop
1846 align 16 1779 align 16
1847 L$075cbc_decrypt: 1780 L$073cbc_decrypt:
1848 cmp eax,80 1781 cmp eax,80
1849 » jbe» NEAR L$080cbc_dec_tail 1782 » jbe» NEAR L$078cbc_dec_tail
1850 movaps [esp],xmm7 1783 movaps [esp],xmm7
1851 sub eax,80 1784 sub eax,80
1852 » jmp» NEAR L$081cbc_dec_loop6_enter 1785 » jmp» NEAR L$079cbc_dec_loop6_enter
1853 align 16 1786 align 16
1854 L$082cbc_dec_loop6: 1787 L$080cbc_dec_loop6:
1855 movaps [esp],xmm0 1788 movaps [esp],xmm0
1856 movups [edi],xmm7 1789 movups [edi],xmm7
1857 lea edi,[16+edi] 1790 lea edi,[16+edi]
1858 L$081cbc_dec_loop6_enter: 1791 L$079cbc_dec_loop6_enter:
1859 movdqu xmm2,[esi] 1792 movdqu xmm2,[esi]
1860 movdqu xmm3,[16+esi] 1793 movdqu xmm3,[16+esi]
1861 movdqu xmm4,[32+esi] 1794 movdqu xmm4,[32+esi]
1862 movdqu xmm5,[48+esi] 1795 movdqu xmm5,[48+esi]
1863 movdqu xmm6,[64+esi] 1796 movdqu xmm6,[64+esi]
1864 movdqu xmm7,[80+esi] 1797 movdqu xmm7,[80+esi]
1865 call __aesni_decrypt6 1798 call __aesni_decrypt6
1866 movups xmm1,[esi] 1799 movups xmm1,[esi]
1867 movups xmm0,[16+esi] 1800 movups xmm0,[16+esi]
1868 xorps xmm2,[esp] 1801 xorps xmm2,[esp]
1869 xorps xmm3,xmm1 1802 xorps xmm3,xmm1
1870 movups xmm1,[32+esi] 1803 movups xmm1,[32+esi]
1871 xorps xmm4,xmm0 1804 xorps xmm4,xmm0
1872 movups xmm0,[48+esi] 1805 movups xmm0,[48+esi]
1873 xorps xmm5,xmm1 1806 xorps xmm5,xmm1
1874 movups xmm1,[64+esi] 1807 movups xmm1,[64+esi]
1875 xorps xmm6,xmm0 1808 xorps xmm6,xmm0
1876 movups xmm0,[80+esi] 1809 movups xmm0,[80+esi]
1877 xorps xmm7,xmm1 1810 xorps xmm7,xmm1
1878 movups [edi],xmm2 1811 movups [edi],xmm2
1879 movups [16+edi],xmm3 1812 movups [16+edi],xmm3
1880 lea esi,[96+esi] 1813 lea esi,[96+esi]
1881 movups [32+edi],xmm4 1814 movups [32+edi],xmm4
1882 mov ecx,ebx 1815 mov ecx,ebx
1883 movups [48+edi],xmm5 1816 movups [48+edi],xmm5
1884 mov edx,ebp 1817 mov edx,ebp
1885 movups [64+edi],xmm6 1818 movups [64+edi],xmm6
1886 lea edi,[80+edi] 1819 lea edi,[80+edi]
1887 sub eax,96 1820 sub eax,96
1888 » ja» NEAR L$082cbc_dec_loop6 1821 » ja» NEAR L$080cbc_dec_loop6
1889 movaps xmm2,xmm7 1822 movaps xmm2,xmm7
1890 movaps xmm7,xmm0 1823 movaps xmm7,xmm0
1891 add eax,80 1824 add eax,80
1892 » jle» NEAR L$083cbc_dec_clear_tail_collected 1825 » jle» NEAR L$081cbc_dec_tail_collected
1893 movups [edi],xmm2 1826 movups [edi],xmm2
1894 lea edi,[16+edi] 1827 lea edi,[16+edi]
1895 L$080cbc_dec_tail: 1828 L$078cbc_dec_tail:
1896 movups xmm2,[esi] 1829 movups xmm2,[esi]
1897 movaps xmm6,xmm2 1830 movaps xmm6,xmm2
1898 cmp eax,16 1831 cmp eax,16
1899 » jbe» NEAR L$084cbc_dec_one 1832 » jbe» NEAR L$082cbc_dec_one
1900 movups xmm3,[16+esi] 1833 movups xmm3,[16+esi]
1901 movaps xmm5,xmm3 1834 movaps xmm5,xmm3
1902 cmp eax,32 1835 cmp eax,32
1903 » jbe» NEAR L$085cbc_dec_two 1836 » jbe» NEAR L$083cbc_dec_two
1904 movups xmm4,[32+esi] 1837 movups xmm4,[32+esi]
1905 cmp eax,48 1838 cmp eax,48
1906 » jbe» NEAR L$086cbc_dec_three 1839 » jbe» NEAR L$084cbc_dec_three
1907 movups xmm5,[48+esi] 1840 movups xmm5,[48+esi]
1908 cmp eax,64 1841 cmp eax,64
1909 » jbe» NEAR L$087cbc_dec_four 1842 » jbe» NEAR L$085cbc_dec_four
1910 movups xmm6,[64+esi] 1843 movups xmm6,[64+esi]
1911 movaps [esp],xmm7 1844 movaps [esp],xmm7
1912 movups xmm2,[esi] 1845 movups xmm2,[esi]
1913 xorps xmm7,xmm7 1846 xorps xmm7,xmm7
1914 call __aesni_decrypt6 1847 call __aesni_decrypt6
1915 movups xmm1,[esi] 1848 movups xmm1,[esi]
1916 movups xmm0,[16+esi] 1849 movups xmm0,[16+esi]
1917 xorps xmm2,[esp] 1850 xorps xmm2,[esp]
1918 xorps xmm3,xmm1 1851 xorps xmm3,xmm1
1919 movups xmm1,[32+esi] 1852 movups xmm1,[32+esi]
1920 xorps xmm4,xmm0 1853 xorps xmm4,xmm0
1921 movups xmm0,[48+esi] 1854 movups xmm0,[48+esi]
1922 xorps xmm5,xmm1 1855 xorps xmm5,xmm1
1923 movups xmm7,[64+esi] 1856 movups xmm7,[64+esi]
1924 xorps xmm6,xmm0 1857 xorps xmm6,xmm0
1925 movups [edi],xmm2 1858 movups [edi],xmm2
1926 movups [16+edi],xmm3 1859 movups [16+edi],xmm3
1927 pxor xmm3,xmm3
1928 movups [32+edi],xmm4 1860 movups [32+edi],xmm4
1929 pxor xmm4,xmm4
1930 movups [48+edi],xmm5 1861 movups [48+edi],xmm5
1931 pxor xmm5,xmm5
1932 lea edi,[64+edi] 1862 lea edi,[64+edi]
1933 movaps xmm2,xmm6 1863 movaps xmm2,xmm6
1934 pxor xmm6,xmm6
1935 sub eax,80 1864 sub eax,80
1936 » jmp» NEAR L$088cbc_dec_tail_collected 1865 » jmp» NEAR L$081cbc_dec_tail_collected
1937 align 16 1866 align 16
1938 L$084cbc_dec_one: 1867 L$082cbc_dec_one:
1939 movups xmm0,[edx] 1868 movups xmm0,[edx]
1940 movups xmm1,[16+edx] 1869 movups xmm1,[16+edx]
1941 lea edx,[32+edx] 1870 lea edx,[32+edx]
1942 xorps xmm2,xmm0 1871 xorps xmm2,xmm0
1943 L$089dec1_loop_16: 1872 L$086dec1_loop_16:
1944 db 102,15,56,222,209 1873 db 102,15,56,222,209
1945 dec ecx 1874 dec ecx
1946 movups xmm1,[edx] 1875 movups xmm1,[edx]
1947 lea edx,[16+edx] 1876 lea edx,[16+edx]
1948 » jnz» NEAR L$089dec1_loop_16 1877 » jnz» NEAR L$086dec1_loop_16
1949 db 102,15,56,223,209 1878 db 102,15,56,223,209
1950 xorps xmm2,xmm7 1879 xorps xmm2,xmm7
1951 movaps xmm7,xmm6 1880 movaps xmm7,xmm6
1952 sub eax,16 1881 sub eax,16
1953 » jmp» NEAR L$088cbc_dec_tail_collected 1882 » jmp» NEAR L$081cbc_dec_tail_collected
1954 align 16 1883 align 16
1955 L$085cbc_dec_two: 1884 L$083cbc_dec_two:
1956 call __aesni_decrypt2 1885 call __aesni_decrypt2
1957 xorps xmm2,xmm7 1886 xorps xmm2,xmm7
1958 xorps xmm3,xmm6 1887 xorps xmm3,xmm6
1959 movups [edi],xmm2 1888 movups [edi],xmm2
1960 movaps xmm2,xmm3 1889 movaps xmm2,xmm3
1961 pxor xmm3,xmm3
1962 lea edi,[16+edi] 1890 lea edi,[16+edi]
1963 movaps xmm7,xmm5 1891 movaps xmm7,xmm5
1964 sub eax,32 1892 sub eax,32
1965 » jmp» NEAR L$088cbc_dec_tail_collected 1893 » jmp» NEAR L$081cbc_dec_tail_collected
1966 align 16 1894 align 16
1967 L$086cbc_dec_three: 1895 L$084cbc_dec_three:
1968 call __aesni_decrypt3 1896 call __aesni_decrypt3
1969 xorps xmm2,xmm7 1897 xorps xmm2,xmm7
1970 xorps xmm3,xmm6 1898 xorps xmm3,xmm6
1971 xorps xmm4,xmm5 1899 xorps xmm4,xmm5
1972 movups [edi],xmm2 1900 movups [edi],xmm2
1973 movaps xmm2,xmm4 1901 movaps xmm2,xmm4
1974 pxor xmm4,xmm4
1975 movups [16+edi],xmm3 1902 movups [16+edi],xmm3
1976 pxor xmm3,xmm3
1977 lea edi,[32+edi] 1903 lea edi,[32+edi]
1978 movups xmm7,[32+esi] 1904 movups xmm7,[32+esi]
1979 sub eax,48 1905 sub eax,48
1980 » jmp» NEAR L$088cbc_dec_tail_collected 1906 » jmp» NEAR L$081cbc_dec_tail_collected
1981 align 16 1907 align 16
1982 L$087cbc_dec_four: 1908 L$085cbc_dec_four:
1983 call __aesni_decrypt4 1909 call __aesni_decrypt4
1984 movups xmm1,[16+esi] 1910 movups xmm1,[16+esi]
1985 movups xmm0,[32+esi] 1911 movups xmm0,[32+esi]
1986 xorps xmm2,xmm7 1912 xorps xmm2,xmm7
1987 movups xmm7,[48+esi] 1913 movups xmm7,[48+esi]
1988 xorps xmm3,xmm6 1914 xorps xmm3,xmm6
1989 movups [edi],xmm2 1915 movups [edi],xmm2
1990 xorps xmm4,xmm1 1916 xorps xmm4,xmm1
1991 movups [16+edi],xmm3 1917 movups [16+edi],xmm3
1992 pxor xmm3,xmm3
1993 xorps xmm5,xmm0 1918 xorps xmm5,xmm0
1994 movups [32+edi],xmm4 1919 movups [32+edi],xmm4
1995 pxor xmm4,xmm4
1996 lea edi,[48+edi] 1920 lea edi,[48+edi]
1997 movaps xmm2,xmm5 1921 movaps xmm2,xmm5
1998 pxor xmm5,xmm5
1999 sub eax,64 1922 sub eax,64
2000 » jmp» NEAR L$088cbc_dec_tail_collected 1923 L$081cbc_dec_tail_collected:
1924 » and» eax,15
1925 » jnz» NEAR L$087cbc_dec_tail_partial
1926 » movups» [edi],xmm2
1927 » jmp» NEAR L$077cbc_ret
2001 align 16 1928 align 16
2002 L$083cbc_dec_clear_tail_collected: 1929 L$087cbc_dec_tail_partial:
2003 » pxor» xmm3,xmm3
2004 » pxor» xmm4,xmm4
2005 » pxor» xmm5,xmm5
2006 » pxor» xmm6,xmm6
2007 L$088cbc_dec_tail_collected:
2008 » and» eax,15
2009 » jnz» NEAR L$090cbc_dec_tail_partial
2010 » movups» [edi],xmm2
2011 » pxor» xmm0,xmm0
2012 » jmp» NEAR L$079cbc_ret
2013 align» 16
2014 L$090cbc_dec_tail_partial:
2015 movaps [esp],xmm2 1930 movaps [esp],xmm2
2016 pxor xmm0,xmm0
2017 mov ecx,16 1931 mov ecx,16
2018 mov esi,esp 1932 mov esi,esp
2019 sub ecx,eax 1933 sub ecx,eax
2020 dd 2767451785 1934 dd 2767451785
2021 » movdqa» [esp],xmm2 1935 L$077cbc_ret:
2022 L$079cbc_ret:
2023 mov esp,DWORD [16+esp] 1936 mov esp,DWORD [16+esp]
2024 mov ebp,DWORD [36+esp] 1937 mov ebp,DWORD [36+esp]
2025 pxor xmm2,xmm2
2026 pxor xmm1,xmm1
2027 movups [ebp],xmm7 1938 movups [ebp],xmm7
2028 » pxor» xmm7,xmm7 1939 L$072cbc_abort:
2029 L$074cbc_abort:
2030 pop edi 1940 pop edi
2031 pop esi 1941 pop esi
2032 pop ebx 1942 pop ebx
2033 pop ebp 1943 pop ebp
2034 ret 1944 ret
2035 align 16 1945 align 16
2036 __aesni_set_encrypt_key: 1946 __aesni_set_encrypt_key:
2037 push ebp
2038 push ebx
2039 test eax,eax 1947 test eax,eax
2040 » jz» NEAR L$091bad_pointer 1948 » jz» NEAR L$088bad_pointer
2041 test edx,edx 1949 test edx,edx
2042 » jz» NEAR L$091bad_pointer 1950 » jz» NEAR L$088bad_pointer
2043 » call» L$092pic
2044 L$092pic:
2045 » pop» ebx
2046 » lea» ebx,[(L$key_const-L$092pic)+ebx]
2047 » lea» ebp,[_OPENSSL_ia32cap_P]
2048 movups xmm0,[eax] 1951 movups xmm0,[eax]
2049 xorps xmm4,xmm4 1952 xorps xmm4,xmm4
2050 mov ebp,DWORD [4+ebp]
2051 lea edx,[16+edx] 1953 lea edx,[16+edx]
2052 and ebp,268437504
2053 cmp ecx,256 1954 cmp ecx,256
2054 » je» NEAR L$09314rounds 1955 » je» NEAR L$08914rounds
2055 cmp ecx,192 1956 cmp ecx,192
2056 » je» NEAR L$09412rounds 1957 » je» NEAR L$09012rounds
2057 cmp ecx,128 1958 cmp ecx,128
2058 » jne» NEAR L$095bad_keybits 1959 » jne» NEAR L$091bad_keybits
2059 align 16 1960 align 16
2060 L$09610rounds: 1961 L$09210rounds:
2061 » cmp» ebp,268435456
2062 » je» NEAR L$09710rounds_alt
2063 mov ecx,9 1962 mov ecx,9
2064 movups [edx-16],xmm0 1963 movups [edx-16],xmm0
2065 db 102,15,58,223,200,1 1964 db 102,15,58,223,200,1
2066 » call» L$098key_128_cold 1965 » call» L$093key_128_cold
2067 db 102,15,58,223,200,2 1966 db 102,15,58,223,200,2
2068 » call» L$099key_128 1967 » call» L$094key_128
2069 db 102,15,58,223,200,4 1968 db 102,15,58,223,200,4
2070 » call» L$099key_128 1969 » call» L$094key_128
2071 db 102,15,58,223,200,8 1970 db 102,15,58,223,200,8
2072 » call» L$099key_128 1971 » call» L$094key_128
2073 db 102,15,58,223,200,16 1972 db 102,15,58,223,200,16
2074 » call» L$099key_128 1973 » call» L$094key_128
2075 db 102,15,58,223,200,32 1974 db 102,15,58,223,200,32
2076 » call» L$099key_128 1975 » call» L$094key_128
2077 db 102,15,58,223,200,64 1976 db 102,15,58,223,200,64
2078 » call» L$099key_128 1977 » call» L$094key_128
2079 db 102,15,58,223,200,128 1978 db 102,15,58,223,200,128
2080 » call» L$099key_128 1979 » call» L$094key_128
2081 db 102,15,58,223,200,27 1980 db 102,15,58,223,200,27
2082 » call» L$099key_128 1981 » call» L$094key_128
2083 db 102,15,58,223,200,54 1982 db 102,15,58,223,200,54
2084 » call» L$099key_128 1983 » call» L$094key_128
2085 movups [edx],xmm0 1984 movups [edx],xmm0
2086 mov DWORD [80+edx],ecx 1985 mov DWORD [80+edx],ecx
2087 » jmp» NEAR L$100good_key 1986 » xor» eax,eax
1987 » ret
2088 align 16 1988 align 16
2089 L$099key_128: 1989 L$094key_128:
2090 movups [edx],xmm0 1990 movups [edx],xmm0
2091 lea edx,[16+edx] 1991 lea edx,[16+edx]
2092 L$098key_128_cold: 1992 L$093key_128_cold:
2093 shufps xmm4,xmm0,16 1993 shufps xmm4,xmm0,16
2094 xorps xmm0,xmm4 1994 xorps xmm0,xmm4
2095 shufps xmm4,xmm0,140 1995 shufps xmm4,xmm0,140
2096 xorps xmm0,xmm4 1996 xorps xmm0,xmm4
2097 shufps xmm1,xmm1,255 1997 shufps xmm1,xmm1,255
2098 xorps xmm0,xmm1 1998 xorps xmm0,xmm1
2099 ret 1999 ret
2100 align 16 2000 align 16
2101 L$09710rounds_alt: 2001 L$09012rounds:
2102 » movdqa» xmm5,[ebx]
2103 » mov» ecx,8
2104 » movdqa» xmm4,[32+ebx]
2105 » movdqa» xmm2,xmm0
2106 » movdqu» [edx-16],xmm0
2107 L$101loop_key128:
2108 db» 102,15,56,0,197
2109 db» 102,15,56,221,196
2110 » pslld» xmm4,1
2111 » lea» edx,[16+edx]
2112 » movdqa» xmm3,xmm2
2113 » pslldq» xmm2,4
2114 » pxor» xmm3,xmm2
2115 » pslldq» xmm2,4
2116 » pxor» xmm3,xmm2
2117 » pslldq» xmm2,4
2118 » pxor» xmm2,xmm3
2119 » pxor» xmm0,xmm2
2120 » movdqu» [edx-16],xmm0
2121 » movdqa» xmm2,xmm0
2122 » dec» ecx
2123 » jnz» NEAR L$101loop_key128
2124 » movdqa» xmm4,[48+ebx]
2125 db» 102,15,56,0,197
2126 db» 102,15,56,221,196
2127 » pslld» xmm4,1
2128 » movdqa» xmm3,xmm2
2129 » pslldq» xmm2,4
2130 » pxor» xmm3,xmm2
2131 » pslldq» xmm2,4
2132 » pxor» xmm3,xmm2
2133 » pslldq» xmm2,4
2134 » pxor» xmm2,xmm3
2135 » pxor» xmm0,xmm2
2136 » movdqu» [edx],xmm0
2137 » movdqa» xmm2,xmm0
2138 db» 102,15,56,0,197
2139 db» 102,15,56,221,196
2140 » movdqa» xmm3,xmm2
2141 » pslldq» xmm2,4
2142 » pxor» xmm3,xmm2
2143 » pslldq» xmm2,4
2144 » pxor» xmm3,xmm2
2145 » pslldq» xmm2,4
2146 » pxor» xmm2,xmm3
2147 » pxor» xmm0,xmm2
2148 » movdqu» [16+edx],xmm0
2149 » mov» ecx,9
2150 » mov» DWORD [96+edx],ecx
2151 » jmp» NEAR L$100good_key
2152 align» 16
2153 L$09412rounds:
2154 movq xmm2,[16+eax] 2002 movq xmm2,[16+eax]
2155 cmp ebp,268435456
2156 je NEAR L$10212rounds_alt
2157 mov ecx,11 2003 mov ecx,11
2158 movups [edx-16],xmm0 2004 movups [edx-16],xmm0
2159 db 102,15,58,223,202,1 2005 db 102,15,58,223,202,1
2160 » call» L$103key_192a_cold 2006 » call» L$095key_192a_cold
2161 db 102,15,58,223,202,2 2007 db 102,15,58,223,202,2
2162 » call» L$104key_192b 2008 » call» L$096key_192b
2163 db 102,15,58,223,202,4 2009 db 102,15,58,223,202,4
2164 » call» L$105key_192a 2010 » call» L$097key_192a
2165 db 102,15,58,223,202,8 2011 db 102,15,58,223,202,8
2166 » call» L$104key_192b 2012 » call» L$096key_192b
2167 db 102,15,58,223,202,16 2013 db 102,15,58,223,202,16
2168 » call» L$105key_192a 2014 » call» L$097key_192a
2169 db 102,15,58,223,202,32 2015 db 102,15,58,223,202,32
2170 » call» L$104key_192b 2016 » call» L$096key_192b
2171 db 102,15,58,223,202,64 2017 db 102,15,58,223,202,64
2172 » call» L$105key_192a 2018 » call» L$097key_192a
2173 db 102,15,58,223,202,128 2019 db 102,15,58,223,202,128
2174 » call» L$104key_192b 2020 » call» L$096key_192b
2175 movups [edx],xmm0 2021 movups [edx],xmm0
2176 mov DWORD [48+edx],ecx 2022 mov DWORD [48+edx],ecx
2177 » jmp» NEAR L$100good_key 2023 » xor» eax,eax
2024 » ret
2178 align 16 2025 align 16
2179 L$105key_192a: 2026 L$097key_192a:
2180 movups [edx],xmm0 2027 movups [edx],xmm0
2181 lea edx,[16+edx] 2028 lea edx,[16+edx]
2182 align 16 2029 align 16
2183 L$103key_192a_cold: 2030 L$095key_192a_cold:
2184 movaps xmm5,xmm2 2031 movaps xmm5,xmm2
2185 L$106key_192b_warm: 2032 L$098key_192b_warm:
2186 shufps xmm4,xmm0,16 2033 shufps xmm4,xmm0,16
2187 movdqa xmm3,xmm2 2034 movdqa xmm3,xmm2
2188 xorps xmm0,xmm4 2035 xorps xmm0,xmm4
2189 shufps xmm4,xmm0,140 2036 shufps xmm4,xmm0,140
2190 pslldq xmm3,4 2037 pslldq xmm3,4
2191 xorps xmm0,xmm4 2038 xorps xmm0,xmm4
2192 pshufd xmm1,xmm1,85 2039 pshufd xmm1,xmm1,85
2193 pxor xmm2,xmm3 2040 pxor xmm2,xmm3
2194 pxor xmm0,xmm1 2041 pxor xmm0,xmm1
2195 pshufd xmm3,xmm0,255 2042 pshufd xmm3,xmm0,255
2196 pxor xmm2,xmm3 2043 pxor xmm2,xmm3
2197 ret 2044 ret
2198 align 16 2045 align 16
2199 L$104key_192b: 2046 L$096key_192b:
2200 movaps xmm3,xmm0 2047 movaps xmm3,xmm0
2201 shufps xmm5,xmm0,68 2048 shufps xmm5,xmm0,68
2202 movups [edx],xmm5 2049 movups [edx],xmm5
2203 shufps xmm3,xmm2,78 2050 shufps xmm3,xmm2,78
2204 movups [16+edx],xmm3 2051 movups [16+edx],xmm3
2205 lea edx,[32+edx] 2052 lea edx,[32+edx]
2206 » jmp» NEAR L$106key_192b_warm 2053 » jmp» NEAR L$098key_192b_warm
2207 align 16 2054 align 16
2208 L$10212rounds_alt: 2055 L$08914rounds:
2209 » movdqa» xmm5,[16+ebx]
2210 » movdqa» xmm4,[32+ebx]
2211 » mov» ecx,8
2212 » movdqu» [edx-16],xmm0
2213 L$107loop_key192:
2214 » movq» [edx],xmm2
2215 » movdqa» xmm1,xmm2
2216 db» 102,15,56,0,213
2217 db» 102,15,56,221,212
2218 » pslld» xmm4,1
2219 » lea» edx,[24+edx]
2220 » movdqa» xmm3,xmm0
2221 » pslldq» xmm0,4
2222 » pxor» xmm3,xmm0
2223 » pslldq» xmm0,4
2224 » pxor» xmm3,xmm0
2225 » pslldq» xmm0,4
2226 » pxor» xmm0,xmm3
2227 » pshufd» xmm3,xmm0,255
2228 » pxor» xmm3,xmm1
2229 » pslldq» xmm1,4
2230 » pxor» xmm3,xmm1
2231 » pxor» xmm0,xmm2
2232 » pxor» xmm2,xmm3
2233 » movdqu» [edx-16],xmm0
2234 » dec» ecx
2235 » jnz» NEAR L$107loop_key192
2236 » mov» ecx,11
2237 » mov» DWORD [32+edx],ecx
2238 » jmp» NEAR L$100good_key
2239 align» 16
2240 L$09314rounds:
2241 movups xmm2,[16+eax] 2056 movups xmm2,[16+eax]
2057 mov ecx,13
2242 lea edx,[16+edx] 2058 lea edx,[16+edx]
2243 cmp ebp,268435456
2244 je NEAR L$10814rounds_alt
2245 mov ecx,13
2246 movups [edx-32],xmm0 2059 movups [edx-32],xmm0
2247 movups [edx-16],xmm2 2060 movups [edx-16],xmm2
2248 db 102,15,58,223,202,1 2061 db 102,15,58,223,202,1
2249 » call» L$109key_256a_cold 2062 » call» L$099key_256a_cold
2250 db 102,15,58,223,200,1 2063 db 102,15,58,223,200,1
2251 » call» L$110key_256b 2064 » call» L$100key_256b
2252 db 102,15,58,223,202,2 2065 db 102,15,58,223,202,2
2253 » call» L$111key_256a 2066 » call» L$101key_256a
2254 db 102,15,58,223,200,2 2067 db 102,15,58,223,200,2
2255 » call» L$110key_256b 2068 » call» L$100key_256b
2256 db 102,15,58,223,202,4 2069 db 102,15,58,223,202,4
2257 » call» L$111key_256a 2070 » call» L$101key_256a
2258 db 102,15,58,223,200,4 2071 db 102,15,58,223,200,4
2259 » call» L$110key_256b 2072 » call» L$100key_256b
2260 db 102,15,58,223,202,8 2073 db 102,15,58,223,202,8
2261 » call» L$111key_256a 2074 » call» L$101key_256a
2262 db 102,15,58,223,200,8 2075 db 102,15,58,223,200,8
2263 » call» L$110key_256b 2076 » call» L$100key_256b
2264 db 102,15,58,223,202,16 2077 db 102,15,58,223,202,16
2265 » call» L$111key_256a 2078 » call» L$101key_256a
2266 db 102,15,58,223,200,16 2079 db 102,15,58,223,200,16
2267 » call» L$110key_256b 2080 » call» L$100key_256b
2268 db 102,15,58,223,202,32 2081 db 102,15,58,223,202,32
2269 » call» L$111key_256a 2082 » call» L$101key_256a
2270 db 102,15,58,223,200,32 2083 db 102,15,58,223,200,32
2271 » call» L$110key_256b 2084 » call» L$100key_256b
2272 db 102,15,58,223,202,64 2085 db 102,15,58,223,202,64
2273 » call» L$111key_256a 2086 » call» L$101key_256a
2274 movups [edx],xmm0 2087 movups [edx],xmm0
2275 mov DWORD [16+edx],ecx 2088 mov DWORD [16+edx],ecx
2276 xor eax,eax 2089 xor eax,eax
2277 » jmp» NEAR L$100good_key 2090 » ret
2278 align 16 2091 align 16
2279 L$111key_256a: 2092 L$101key_256a:
2280 movups [edx],xmm2 2093 movups [edx],xmm2
2281 lea edx,[16+edx] 2094 lea edx,[16+edx]
2282 L$109key_256a_cold: 2095 L$099key_256a_cold:
2283 shufps xmm4,xmm0,16 2096 shufps xmm4,xmm0,16
2284 xorps xmm0,xmm4 2097 xorps xmm0,xmm4
2285 shufps xmm4,xmm0,140 2098 shufps xmm4,xmm0,140
2286 xorps xmm0,xmm4 2099 xorps xmm0,xmm4
2287 shufps xmm1,xmm1,255 2100 shufps xmm1,xmm1,255
2288 xorps xmm0,xmm1 2101 xorps xmm0,xmm1
2289 ret 2102 ret
2290 align 16 2103 align 16
2291 L$110key_256b: 2104 L$100key_256b:
2292 movups [edx],xmm0 2105 movups [edx],xmm0
2293 lea edx,[16+edx] 2106 lea edx,[16+edx]
2294 shufps xmm4,xmm2,16 2107 shufps xmm4,xmm2,16
2295 xorps xmm2,xmm4 2108 xorps xmm2,xmm4
2296 shufps xmm4,xmm2,140 2109 shufps xmm4,xmm2,140
2297 xorps xmm2,xmm4 2110 xorps xmm2,xmm4
2298 shufps xmm1,xmm1,170 2111 shufps xmm1,xmm1,170
2299 xorps xmm2,xmm1 2112 xorps xmm2,xmm1
2300 ret 2113 ret
2301 align» 16 2114 align» 4
2302 L$10814rounds_alt: 2115 L$088bad_pointer:
2303 » movdqa» xmm5,[ebx] 2116 » mov» eax,-1
2304 » movdqa» xmm4,[32+ebx]
2305 » mov» ecx,7
2306 » movdqu» [edx-32],xmm0
2307 » movdqa» xmm1,xmm2
2308 » movdqu» [edx-16],xmm2
2309 L$112loop_key256:
2310 db» 102,15,56,0,213
2311 db» 102,15,56,221,212
2312 » movdqa» xmm3,xmm0
2313 » pslldq» xmm0,4
2314 » pxor» xmm3,xmm0
2315 » pslldq» xmm0,4
2316 » pxor» xmm3,xmm0
2317 » pslldq» xmm0,4
2318 » pxor» xmm0,xmm3
2319 » pslld» xmm4,1
2320 » pxor» xmm0,xmm2
2321 » movdqu» [edx],xmm0
2322 » dec» ecx
2323 » jz» NEAR L$113done_key256
2324 » pshufd» xmm2,xmm0,255
2325 » pxor» xmm3,xmm3
2326 db» 102,15,56,221,211
2327 » movdqa» xmm3,xmm1
2328 » pslldq» xmm1,4
2329 » pxor» xmm3,xmm1
2330 » pslldq» xmm1,4
2331 » pxor» xmm3,xmm1
2332 » pslldq» xmm1,4
2333 » pxor» xmm1,xmm3
2334 » pxor» xmm2,xmm1
2335 » movdqu» [16+edx],xmm2
2336 » lea» edx,[32+edx]
2337 » movdqa» xmm1,xmm2
2338 » jmp» NEAR L$112loop_key256
2339 L$113done_key256:
2340 » mov» ecx,13
2341 » mov» DWORD [16+edx],ecx
2342 L$100good_key:
2343 » pxor» xmm0,xmm0
2344 » pxor» xmm1,xmm1
2345 » pxor» xmm2,xmm2
2346 » pxor» xmm3,xmm3
2347 » pxor» xmm4,xmm4
2348 » pxor» xmm5,xmm5
2349 » xor» eax,eax
2350 » pop» ebx
2351 » pop» ebp
2352 ret 2117 ret
2353 align 4 2118 align 4
2354 L$091bad_pointer: 2119 L$091bad_keybits:
2355 » mov» eax,-1
2356 » pop» ebx
2357 » pop» ebp
2358 » ret
2359 align» 4
2360 L$095bad_keybits:
2361 » pxor» xmm0,xmm0
2362 mov eax,-2 2120 mov eax,-2
2363 pop ebx
2364 pop ebp
2365 ret 2121 ret
2366 global _aesni_set_encrypt_key 2122 global _aesni_set_encrypt_key
2367 align 16 2123 align 16
2368 _aesni_set_encrypt_key: 2124 _aesni_set_encrypt_key:
2369 L$_aesni_set_encrypt_key_begin: 2125 L$_aesni_set_encrypt_key_begin:
2370 mov eax,DWORD [4+esp] 2126 mov eax,DWORD [4+esp]
2371 mov ecx,DWORD [8+esp] 2127 mov ecx,DWORD [8+esp]
2372 mov edx,DWORD [12+esp] 2128 mov edx,DWORD [12+esp]
2373 call __aesni_set_encrypt_key 2129 call __aesni_set_encrypt_key
2374 ret 2130 ret
2375 global _aesni_set_decrypt_key 2131 global _aesni_set_decrypt_key
2376 align 16 2132 align 16
2377 _aesni_set_decrypt_key: 2133 _aesni_set_decrypt_key:
2378 L$_aesni_set_decrypt_key_begin: 2134 L$_aesni_set_decrypt_key_begin:
2379 mov eax,DWORD [4+esp] 2135 mov eax,DWORD [4+esp]
2380 mov ecx,DWORD [8+esp] 2136 mov ecx,DWORD [8+esp]
2381 mov edx,DWORD [12+esp] 2137 mov edx,DWORD [12+esp]
2382 call __aesni_set_encrypt_key 2138 call __aesni_set_encrypt_key
2383 mov edx,DWORD [12+esp] 2139 mov edx,DWORD [12+esp]
2384 shl ecx,4 2140 shl ecx,4
2385 test eax,eax 2141 test eax,eax
2386 » jnz» NEAR L$114dec_key_ret 2142 » jnz» NEAR L$102dec_key_ret
2387 lea eax,[16+ecx*1+edx] 2143 lea eax,[16+ecx*1+edx]
2388 movups xmm0,[edx] 2144 movups xmm0,[edx]
2389 movups xmm1,[eax] 2145 movups xmm1,[eax]
2390 movups [eax],xmm0 2146 movups [eax],xmm0
2391 movups [edx],xmm1 2147 movups [edx],xmm1
2392 lea edx,[16+edx] 2148 lea edx,[16+edx]
2393 lea eax,[eax-16] 2149 lea eax,[eax-16]
2394 L$115dec_key_inverse: 2150 L$103dec_key_inverse:
2395 movups xmm0,[edx] 2151 movups xmm0,[edx]
2396 movups xmm1,[eax] 2152 movups xmm1,[eax]
2397 db 102,15,56,219,192 2153 db 102,15,56,219,192
2398 db 102,15,56,219,201 2154 db 102,15,56,219,201
2399 lea edx,[16+edx] 2155 lea edx,[16+edx]
2400 lea eax,[eax-16] 2156 lea eax,[eax-16]
2401 movups [16+eax],xmm0 2157 movups [16+eax],xmm0
2402 movups [edx-16],xmm1 2158 movups [edx-16],xmm1
2403 cmp eax,edx 2159 cmp eax,edx
2404 » ja» NEAR L$115dec_key_inverse 2160 » ja» NEAR L$103dec_key_inverse
2405 movups xmm0,[edx] 2161 movups xmm0,[edx]
2406 db 102,15,56,219,192 2162 db 102,15,56,219,192
2407 movups [edx],xmm0 2163 movups [edx],xmm0
2408 pxor xmm0,xmm0
2409 pxor xmm1,xmm1
2410 xor eax,eax 2164 xor eax,eax
2411 L$114dec_key_ret: 2165 L$102dec_key_ret:
2412 ret 2166 ret
2413 align 64
2414 L$key_const:
2415 dd 202313229,202313229,202313229,202313229
2416 dd 67569157,67569157,67569157,67569157
2417 dd 1,1,1,1
2418 dd 27,27,27,27
2419 db 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 2167 db 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
2420 db 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 2168 db 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
2421 db 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 2169 db 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2422 db 115,108,46,111,114,103,62,0 2170 db 115,108,46,111,114,103,62,0
2423 segment .bss
2424 common _OPENSSL_ia32cap_P 16
OLDNEW
« no previous file with comments | « third_party/boringssl/update_gypi_and_asm.py ('k') | third_party/boringssl/win-x86_64/crypto/aes/aesni-x86_64.asm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698