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 .private_extern __vpaes_preheat
65 movdqa -48(%ebp),%xmm7
66 movdqa -16(%ebp),%xmm6
68 .private_extern __vpaes_encrypt_core
96 movdqa -64(%ebx,%ecx,1),%xmm1
99 movdqa (%ebx,%ecx,1),%xmm4
100 .byte 102,15,56,0,211
103 .byte 102,15,56,0,193
106 .byte 102,15,56,0,220
109 .byte 102,15,56,0,193
115 movdqa -32(%ebp),%xmm5
119 .byte 102,15,56,0,232
122 .byte 102,15,56,0,217
125 .byte 102,15,56,0,224
128 .byte 102,15,56,0,211
131 .byte 102,15,56,0,220
135 movdqa 96(%ebp),%xmm4
136 movdqa 112(%ebp),%xmm0
137 .byte 102,15,56,0,226
139 .byte 102,15,56,0,195
140 movdqa 64(%ebx,%ecx,1),%xmm1
142 .byte 102,15,56,0,193
144 .private_extern __vpaes_decrypt_core
146 __vpaes_decrypt_core:
150 movdqa -64(%ebx),%xmm2
157 .byte 102,15,56,0,208
158 movdqa -48(%ebx),%xmm0
160 .byte 102,15,56,0,193
163 movdqa 176(%ebp),%xmm5
166 leal -352(%ebx,%ecx,1),%ecx
170 movdqa -32(%ebx),%xmm4
171 movdqa -16(%ebx),%xmm1
172 .byte 102,15,56,0,226
173 .byte 102,15,56,0,203
177 movdqa 16(%ebx),%xmm1
178 .byte 102,15,56,0,226
179 .byte 102,15,56,0,197
180 .byte 102,15,56,0,203
182 movdqa 32(%ebx),%xmm4
184 movdqa 48(%ebx),%xmm1
185 .byte 102,15,56,0,226
186 .byte 102,15,56,0,197
187 .byte 102,15,56,0,203
189 movdqa 64(%ebx),%xmm4
191 movdqa 80(%ebx),%xmm1
192 .byte 102,15,56,0,226
193 .byte 102,15,56,0,197
194 .byte 102,15,56,0,203
197 .byte 102,15,58,15,237,12
202 movdqa -32(%ebp),%xmm2
206 .byte 102,15,56,0,208
209 .byte 102,15,56,0,217
212 .byte 102,15,56,0,224
215 .byte 102,15,56,0,211
218 .byte 102,15,56,0,220
222 movdqa 96(%ebx),%xmm4
223 .byte 102,15,56,0,226
225 movdqa 112(%ebx),%xmm0
227 .byte 102,15,56,0,195
229 .byte 102,15,56,0,194
231 .private_extern __vpaes_schedule_core
233 __vpaes_schedule_core:
236 movdqa 320(%ebp),%xmm2
240 call __vpaes_schedule_transform
243 jnz L004schedule_am_decrypting
246 L004schedule_am_decrypting:
247 movdqa 256(%ebp,%ecx,1),%xmm1
248 .byte 102,15,56,0,217
257 L009loop_schedule_128:
258 call __vpaes_schedule_round
260 jz L010schedule_mangle_last
261 call __vpaes_schedule_mangle
262 jmp L009loop_schedule_128
266 call __vpaes_schedule_transform
271 L011loop_schedule_192:
272 call __vpaes_schedule_round
273 .byte 102,15,58,15,198,8
274 call __vpaes_schedule_mangle
275 call __vpaes_schedule_192_smear
276 call __vpaes_schedule_mangle
277 call __vpaes_schedule_round
279 jz L010schedule_mangle_last
280 call __vpaes_schedule_mangle
281 call __vpaes_schedule_192_smear
282 jmp L011loop_schedule_192
285 movdqu 16(%esi),%xmm0
286 call __vpaes_schedule_transform
288 L012loop_schedule_256:
289 call __vpaes_schedule_mangle
291 call __vpaes_schedule_round
293 jz L010schedule_mangle_last
294 call __vpaes_schedule_mangle
295 pshufd $255,%xmm0,%xmm0
296 movdqa %xmm7,20(%esp)
298 call L_vpaes_schedule_low_round
299 movdqa 20(%esp),%xmm7
300 jmp L012loop_schedule_256
302 L010schedule_mangle_last:
305 jnz L013schedule_mangle_last_dec
306 movdqa 256(%ebp,%ecx,1),%xmm1
307 .byte 102,15,56,0,193
310 L013schedule_mangle_last_dec:
313 call __vpaes_schedule_transform
324 .private_extern __vpaes_schedule_192_smear
326 __vpaes_schedule_192_smear:
327 pshufd $128,%xmm6,%xmm1
328 pshufd $254,%xmm7,%xmm0
335 .private_extern __vpaes_schedule_round
337 __vpaes_schedule_round:
340 .byte 102,15,58,15,202,15
341 .byte 102,15,58,15,210,15
343 pshufd $255,%xmm0,%xmm0
344 .byte 102,15,58,15,192,1
346 L_vpaes_schedule_low_round:
354 movdqa -16(%ebp),%xmm4
355 movdqa -48(%ebp),%xmm5
360 movdqa -32(%ebp),%xmm2
361 .byte 102,15,56,0,208
364 .byte 102,15,56,0,217
367 .byte 102,15,56,0,224
370 .byte 102,15,56,0,211
373 .byte 102,15,56,0,220
375 movdqa 32(%ebp),%xmm4
376 .byte 102,15,56,0,226
377 movdqa 48(%ebp),%xmm0
378 .byte 102,15,56,0,195
383 .private_extern __vpaes_schedule_transform
385 __vpaes_schedule_transform:
386 movdqa -16(%ebp),%xmm2
392 .byte 102,15,56,0,208
393 movdqa 16(%ebx),%xmm0
394 .byte 102,15,56,0,193
397 .private_extern __vpaes_schedule_mangle
399 __vpaes_schedule_mangle:
401 movdqa 128(%ebp),%xmm5
403 jnz L014schedule_mangle_dec
406 .byte 102,15,56,0,229
408 .byte 102,15,56,0,229
410 .byte 102,15,56,0,229
412 jmp L015schedule_mangle_both
414 L014schedule_mangle_dec:
415 movdqa -16(%ebp),%xmm2
422 .byte 102,15,56,0,212
423 movdqa 16(%esi),%xmm3
424 .byte 102,15,56,0,217
426 .byte 102,15,56,0,221
427 movdqa 32(%esi),%xmm2
428 .byte 102,15,56,0,212
430 movdqa 48(%esi),%xmm3
431 .byte 102,15,56,0,217
433 .byte 102,15,56,0,221
434 movdqa 64(%esi),%xmm2
435 .byte 102,15,56,0,212
437 movdqa 80(%esi),%xmm3
438 .byte 102,15,56,0,217
440 .byte 102,15,56,0,221
441 movdqa 96(%esi),%xmm2
442 .byte 102,15,56,0,212
444 movdqa 112(%esi),%xmm3
445 .byte 102,15,56,0,217
448 L015schedule_mangle_both:
449 movdqa 256(%ebp,%ecx,1),%xmm1
450 .byte 102,15,56,0,217
455 .globl _vpaes_set_encrypt_key
456 .private_extern _vpaes_set_encrypt_key
458 _vpaes_set_encrypt_key:
459 L_vpaes_set_encrypt_key_begin:
477 leal L_vpaes_consts+0x30-L016pic_point,%ebp
478 call __vpaes_schedule_core
487 .globl _vpaes_set_decrypt_key
488 .private_extern _vpaes_set_decrypt_key
490 _vpaes_set_decrypt_key:
491 L_vpaes_set_decrypt_key_begin:
508 leal 16(%edx,%ebx,1),%edx
514 leal L_vpaes_consts+0x30-L017pic_point,%ebp
515 call __vpaes_schedule_core
524 .globl _vpaes_encrypt
525 .private_extern _vpaes_encrypt
528 L_vpaes_encrypt_begin:
533 leal L_vpaes_consts+0x30-L018pic_point,%ebp
544 call __vpaes_encrypt_core
552 .globl _vpaes_decrypt
553 .private_extern _vpaes_decrypt
556 L_vpaes_decrypt_begin:
561 leal L_vpaes_consts+0x30-L019pic_point,%ebp
572 call __vpaes_decrypt_core
580 .globl _vpaes_cbc_encrypt
581 .private_extern _vpaes_cbc_encrypt
584 L_vpaes_cbc_encrypt_begin:
607 leal L_vpaes_consts+0x30-L021pic_point,%ebp
617 call __vpaes_encrypt_core
621 movdqu %xmm0,(%ebx,%esi,1)
629 movdqa %xmm1,16(%esp)
630 movdqa %xmm0,32(%esp)
631 call __vpaes_decrypt_core
635 movdqa 32(%esp),%xmm1
636 movdqu %xmm0,(%ebx,%esi,1)