6 .long 218628480,235210255,168496130,67568393
7 .long 252381056,17041926,33884169,51187212
8 .long 252645135,252645135,252645135,252645135
9 .long 1512730624,3266504856,1377990664,3401244816
10 .long 830229760,1275146365,2969422977,3447763452
11 .long 3411033600,2979783055,338359620,2782886510
12 .long 4209124096,907596821,221174255,1006095553
13 .long 191964160,3799684038,3164090317,1589111125
14 .long 182528256,1777043520,2877432650,3265356744
15 .long 1874708224,3503451415,3305285752,363511674
16 .long 1606117888,3487855781,1093350906,2384367825
17 .long 197121,67569157,134941193,202313229
18 .long 67569157,134941193,202313229,197121
19 .long 134941193,202313229,197121,67569157
20 .long 202313229,197121,67569157,134941193
21 .long 33619971,100992007,168364043,235736079
22 .long 235736079,33619971,100992007,168364043
23 .long 168364043,235736079,33619971,100992007
24 .long 100992007,168364043,235736079,33619971
25 .long 50462976,117835012,185207048,252579084
26 .long 252314880,51251460,117574920,184942860
27 .long 184682752,252054788,50987272,118359308
28 .long 118099200,185467140,251790600,50727180
29 .long 2946363062,528716217,1300004225,1881839624
30 .long 1532713819,1532713819,1532713819,1532713819
31 .long 3602276352,4288629033,3737020424,4153884961
32 .long 1354558464,32357713,2958822624,3775749553
33 .long 1201988352,132424512,1572796698,503232858
34 .long 2213177600,1597421020,4103937655,675398315
35 .long 2749646592,4273543773,1511898873,121693092
36 .long 3040248576,1103263732,2871565598,1608280554
37 .long 2236667136,2588920351,482954393,64377734
38 .long 3069987328,291237287,2117370568,3650299247
39 .long 533321216,3573750986,2572112006,1401264716
40 .long 1339849704,2721158661,548607111,3445553514
41 .long 2128193280,3054596040,2183486460,1257083700
42 .long 655635200,1165381986,3923443150,2344132524
43 .long 190078720,256924420,290342170,357187870
44 .long 1610966272,2263057382,4103205268,309794674
45 .long 2592527872,2233205587,1335446729,3402964816
46 .long 3973531904,3225098121,3002836325,1918774430
47 .long 3870401024,2102906079,2284471353,4117666579
48 .long 617007872,1021508343,366931923,691083277
49 .long 2528395776,3491914898,2968704004,1613121270
50 .long 3445188352,3247741094,844474987,4093578302
51 .long 651481088,1190302358,1689581232,574775300
52 .long 4289380608,206939853,2555985458,2489840491
53 .long 2130264064,327674451,3566485037,3349835193
54 .long 2470714624,316102159,3636825756,3393945945
55 .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
56 .byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
57 .byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
58 .byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
59 .byte 118,101,114,115,105,116,121,41,0
61 .hidden _vpaes_preheat
62 .type _vpaes_preheat,@function
66 movdqa -48(%ebp),%xmm7
67 movdqa -16(%ebp),%xmm6
69 .size _vpaes_preheat,.-_vpaes_preheat
70 .hidden _vpaes_encrypt_core
71 .type _vpaes_encrypt_core,@function
99 movdqa -64(%ebx,%ecx,1),%xmm1
100 .byte 102,15,56,0,234
101 movdqa 80(%ebp),%xmm2
102 movdqa (%ebx,%ecx,1),%xmm4
103 .byte 102,15,56,0,211
106 .byte 102,15,56,0,193
109 .byte 102,15,56,0,220
112 .byte 102,15,56,0,193
118 movdqa -32(%ebp),%xmm5
122 .byte 102,15,56,0,232
125 .byte 102,15,56,0,217
128 .byte 102,15,56,0,224
131 .byte 102,15,56,0,211
134 .byte 102,15,56,0,220
138 movdqa 96(%ebp),%xmm4
139 movdqa 112(%ebp),%xmm0
140 .byte 102,15,56,0,226
142 .byte 102,15,56,0,195
143 movdqa 64(%ebx,%ecx,1),%xmm1
145 .byte 102,15,56,0,193
147 .size _vpaes_encrypt_core,.-_vpaes_encrypt_core
148 .hidden _vpaes_decrypt_core
149 .type _vpaes_decrypt_core,@function
155 movdqa -64(%ebx),%xmm2
162 .byte 102,15,56,0,208
163 movdqa -48(%ebx),%xmm0
165 .byte 102,15,56,0,193
168 movdqa 176(%ebp),%xmm5
171 leal -352(%ebx,%ecx,1),%ecx
175 movdqa -32(%ebx),%xmm4
176 movdqa -16(%ebx),%xmm1
177 .byte 102,15,56,0,226
178 .byte 102,15,56,0,203
182 movdqa 16(%ebx),%xmm1
183 .byte 102,15,56,0,226
184 .byte 102,15,56,0,197
185 .byte 102,15,56,0,203
187 movdqa 32(%ebx),%xmm4
189 movdqa 48(%ebx),%xmm1
190 .byte 102,15,56,0,226
191 .byte 102,15,56,0,197
192 .byte 102,15,56,0,203
194 movdqa 64(%ebx),%xmm4
196 movdqa 80(%ebx),%xmm1
197 .byte 102,15,56,0,226
198 .byte 102,15,56,0,197
199 .byte 102,15,56,0,203
202 .byte 102,15,58,15,237,12
207 movdqa -32(%ebp),%xmm2
211 .byte 102,15,56,0,208
214 .byte 102,15,56,0,217
217 .byte 102,15,56,0,224
220 .byte 102,15,56,0,211
223 .byte 102,15,56,0,220
227 movdqa 96(%ebx),%xmm4
228 .byte 102,15,56,0,226
230 movdqa 112(%ebx),%xmm0
232 .byte 102,15,56,0,195
234 .byte 102,15,56,0,194
236 .size _vpaes_decrypt_core,.-_vpaes_decrypt_core
237 .hidden _vpaes_schedule_core
238 .type _vpaes_schedule_core,@function
240 _vpaes_schedule_core:
243 movdqa 320(%ebp),%xmm2
247 call _vpaes_schedule_transform
250 jnz .L004schedule_am_decrypting
253 .L004schedule_am_decrypting:
254 movdqa 256(%ebp,%ecx,1),%xmm1
255 .byte 102,15,56,0,217
264 .L009loop_schedule_128:
265 call _vpaes_schedule_round
267 jz .L010schedule_mangle_last
268 call _vpaes_schedule_mangle
269 jmp .L009loop_schedule_128
273 call _vpaes_schedule_transform
278 .L011loop_schedule_192:
279 call _vpaes_schedule_round
280 .byte 102,15,58,15,198,8
281 call _vpaes_schedule_mangle
282 call _vpaes_schedule_192_smear
283 call _vpaes_schedule_mangle
284 call _vpaes_schedule_round
286 jz .L010schedule_mangle_last
287 call _vpaes_schedule_mangle
288 call _vpaes_schedule_192_smear
289 jmp .L011loop_schedule_192
292 movdqu 16(%esi),%xmm0
293 call _vpaes_schedule_transform
295 .L012loop_schedule_256:
296 call _vpaes_schedule_mangle
298 call _vpaes_schedule_round
300 jz .L010schedule_mangle_last
301 call _vpaes_schedule_mangle
302 pshufd $255,%xmm0,%xmm0
303 movdqa %xmm7,20(%esp)
305 call .L_vpaes_schedule_low_round
306 movdqa 20(%esp),%xmm7
307 jmp .L012loop_schedule_256
309 .L010schedule_mangle_last:
312 jnz .L013schedule_mangle_last_dec
313 movdqa 256(%ebp,%ecx,1),%xmm1
314 .byte 102,15,56,0,193
317 .L013schedule_mangle_last_dec:
320 call _vpaes_schedule_transform
331 .size _vpaes_schedule_core,.-_vpaes_schedule_core
332 .hidden _vpaes_schedule_192_smear
333 .type _vpaes_schedule_192_smear,@function
335 _vpaes_schedule_192_smear:
336 pshufd $128,%xmm6,%xmm1
337 pshufd $254,%xmm7,%xmm0
344 .size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
345 .hidden _vpaes_schedule_round
346 .type _vpaes_schedule_round,@function
348 _vpaes_schedule_round:
351 .byte 102,15,58,15,202,15
352 .byte 102,15,58,15,210,15
354 pshufd $255,%xmm0,%xmm0
355 .byte 102,15,58,15,192,1
357 .L_vpaes_schedule_low_round:
365 movdqa -16(%ebp),%xmm4
366 movdqa -48(%ebp),%xmm5
371 movdqa -32(%ebp),%xmm2
372 .byte 102,15,56,0,208
375 .byte 102,15,56,0,217
378 .byte 102,15,56,0,224
381 .byte 102,15,56,0,211
384 .byte 102,15,56,0,220
386 movdqa 32(%ebp),%xmm4
387 .byte 102,15,56,0,226
388 movdqa 48(%ebp),%xmm0
389 .byte 102,15,56,0,195
394 .size _vpaes_schedule_round,.-_vpaes_schedule_round
395 .hidden _vpaes_schedule_transform
396 .type _vpaes_schedule_transform,@function
398 _vpaes_schedule_transform:
399 movdqa -16(%ebp),%xmm2
405 .byte 102,15,56,0,208
406 movdqa 16(%ebx),%xmm0
407 .byte 102,15,56,0,193
410 .size _vpaes_schedule_transform,.-_vpaes_schedule_transform
411 .hidden _vpaes_schedule_mangle
412 .type _vpaes_schedule_mangle,@function
414 _vpaes_schedule_mangle:
416 movdqa 128(%ebp),%xmm5
418 jnz .L014schedule_mangle_dec
421 .byte 102,15,56,0,229
423 .byte 102,15,56,0,229
425 .byte 102,15,56,0,229
427 jmp .L015schedule_mangle_both
429 .L014schedule_mangle_dec:
430 movdqa -16(%ebp),%xmm2
437 .byte 102,15,56,0,212
438 movdqa 16(%esi),%xmm3
439 .byte 102,15,56,0,217
441 .byte 102,15,56,0,221
442 movdqa 32(%esi),%xmm2
443 .byte 102,15,56,0,212
445 movdqa 48(%esi),%xmm3
446 .byte 102,15,56,0,217
448 .byte 102,15,56,0,221
449 movdqa 64(%esi),%xmm2
450 .byte 102,15,56,0,212
452 movdqa 80(%esi),%xmm3
453 .byte 102,15,56,0,217
455 .byte 102,15,56,0,221
456 movdqa 96(%esi),%xmm2
457 .byte 102,15,56,0,212
459 movdqa 112(%esi),%xmm3
460 .byte 102,15,56,0,217
463 .L015schedule_mangle_both:
464 movdqa 256(%ebp,%ecx,1),%xmm1
465 .byte 102,15,56,0,217
470 .size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
471 .globl vpaes_set_encrypt_key
472 .hidden vpaes_set_encrypt_key
473 .type vpaes_set_encrypt_key,@function
475 vpaes_set_encrypt_key:
476 .L_vpaes_set_encrypt_key_begin:
494 leal .L_vpaes_consts+0x30-.L016pic_point,%ebp
495 call _vpaes_schedule_core
504 .size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin
505 .globl vpaes_set_decrypt_key
506 .hidden vpaes_set_decrypt_key
507 .type vpaes_set_decrypt_key,@function
509 vpaes_set_decrypt_key:
510 .L_vpaes_set_decrypt_key_begin:
527 leal 16(%edx,%ebx,1),%edx
533 leal .L_vpaes_consts+0x30-.L017pic_point,%ebp
534 call _vpaes_schedule_core
543 .size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin
545 .hidden vpaes_encrypt
546 .type vpaes_encrypt,@function
549 .L_vpaes_encrypt_begin:
554 leal .L_vpaes_consts+0x30-.L018pic_point,%ebp
565 call _vpaes_encrypt_core
573 .size vpaes_encrypt,.-.L_vpaes_encrypt_begin
575 .hidden vpaes_decrypt
576 .type vpaes_decrypt,@function
579 .L_vpaes_decrypt_begin:
584 leal .L_vpaes_consts+0x30-.L019pic_point,%ebp
595 call _vpaes_decrypt_core
603 .size vpaes_decrypt,.-.L_vpaes_decrypt_begin
604 .globl vpaes_cbc_encrypt
605 .hidden vpaes_cbc_encrypt
606 .type vpaes_cbc_encrypt,@function
609 .L_vpaes_cbc_encrypt_begin:
632 leal .L_vpaes_consts+0x30-.L021pic_point,%ebp
637 jmp .L023cbc_enc_loop
642 call _vpaes_encrypt_core
646 movdqu %xmm0,(%ebx,%esi,1)
649 jnc .L023cbc_enc_loop
654 movdqa %xmm1,16(%esp)
655 movdqa %xmm0,32(%esp)
656 call _vpaes_decrypt_core
660 movdqa 32(%esp),%xmm1
661 movdqu %xmm0,(%ebx,%esi,1)
664 jnc .L022cbc_dec_loop
675 .size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin