5 .long 218628480,235210255,168496130,67568393
6 .long 252381056,17041926,33884169,51187212
7 .long 252645135,252645135,252645135,252645135
8 .long 1512730624,3266504856,1377990664,3401244816
9 .long 830229760,1275146365,2969422977,3447763452
10 .long 3411033600,2979783055,338359620,2782886510
11 .long 4209124096,907596821,221174255,1006095553
12 .long 191964160,3799684038,3164090317,1589111125
13 .long 182528256,1777043520,2877432650,3265356744
14 .long 1874708224,3503451415,3305285752,363511674
15 .long 1606117888,3487855781,1093350906,2384367825
16 .long 197121,67569157,134941193,202313229
17 .long 67569157,134941193,202313229,197121
18 .long 134941193,202313229,197121,67569157
19 .long 202313229,197121,67569157,134941193
20 .long 33619971,100992007,168364043,235736079
21 .long 235736079,33619971,100992007,168364043
22 .long 168364043,235736079,33619971,100992007
23 .long 100992007,168364043,235736079,33619971
24 .long 50462976,117835012,185207048,252579084
25 .long 252314880,51251460,117574920,184942860
26 .long 184682752,252054788,50987272,118359308
27 .long 118099200,185467140,251790600,50727180
28 .long 2946363062,528716217,1300004225,1881839624
29 .long 1532713819,1532713819,1532713819,1532713819
30 .long 3602276352,4288629033,3737020424,4153884961
31 .long 1354558464,32357713,2958822624,3775749553
32 .long 1201988352,132424512,1572796698,503232858
33 .long 2213177600,1597421020,4103937655,675398315
34 .long 2749646592,4273543773,1511898873,121693092
35 .long 3040248576,1103263732,2871565598,1608280554
36 .long 2236667136,2588920351,482954393,64377734
37 .long 3069987328,291237287,2117370568,3650299247
38 .long 533321216,3573750986,2572112006,1401264716
39 .long 1339849704,2721158661,548607111,3445553514
40 .long 2128193280,3054596040,2183486460,1257083700
41 .long 655635200,1165381986,3923443150,2344132524
42 .long 190078720,256924420,290342170,357187870
43 .long 1610966272,2263057382,4103205268,309794674
44 .long 2592527872,2233205587,1335446729,3402964816
45 .long 3973531904,3225098121,3002836325,1918774430
46 .long 3870401024,2102906079,2284471353,4117666579
47 .long 617007872,1021508343,366931923,691083277
48 .long 2528395776,3491914898,2968704004,1613121270
49 .long 3445188352,3247741094,844474987,4093578302
50 .long 651481088,1190302358,1689581232,574775300
51 .long 4289380608,206939853,2555985458,2489840491
52 .long 2130264064,327674451,3566485037,3349835193
53 .long 2470714624,316102159,3636825756,3393945945
54 .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
55 .byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
56 .byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
57 .byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
58 .byte 118,101,114,115,105,116,121,41,0
63 movdqa -48(%ebp),%xmm7
64 movdqa -16(%ebp),%xmm6
94 movdqa -64(%ebx,%ecx,1),%xmm1
98 movdqa (%ebx,%ecx,1),%xmm4
100 .byte 102,15,56,0,193
103 .byte 102,15,56,0,220
106 .byte 102,15,56,0,193
115 movdqa -32(%ebp),%xmm5
116 .byte 102,15,56,0,232
119 .byte 102,15,56,0,217
122 .byte 102,15,56,0,224
125 .byte 102,15,56,0,211
129 .byte 102,15,56,0,220
132 movdqa 96(%ebp),%xmm4
133 movdqa 112(%ebp),%xmm0
134 .byte 102,15,56,0,226
136 .byte 102,15,56,0,195
137 movdqa 64(%ebx,%ecx,1),%xmm1
139 .byte 102,15,56,0,193
142 __vpaes_decrypt_core:
146 movdqa -64(%ebx),%xmm2
153 .byte 102,15,56,0,208
154 movdqa -48(%ebx),%xmm0
156 .byte 102,15,56,0,193
159 movdqa 176(%ebp),%xmm5
162 leal -352(%ebx,%ecx,1),%ecx
166 movdqa -32(%ebx),%xmm4
167 .byte 102,15,56,0,226
169 movdqa -16(%ebx),%xmm0
170 .byte 102,15,56,0,195
173 .byte 102,15,56,0,197
175 .byte 102,15,56,0,226
177 movdqa 16(%ebx),%xmm0
178 .byte 102,15,56,0,195
181 .byte 102,15,56,0,197
182 movdqa 32(%ebx),%xmm4
183 .byte 102,15,56,0,226
185 movdqa 48(%ebx),%xmm0
186 .byte 102,15,56,0,195
188 .byte 102,15,56,0,197
189 movdqa 64(%ebx),%xmm4
190 .byte 102,15,56,0,226
192 movdqa 80(%ebx),%xmm0
193 .byte 102,15,56,0,195
195 .byte 102,15,58,15,237,12
201 movdqa -32(%ebp),%xmm2
202 .byte 102,15,56,0,208
205 .byte 102,15,56,0,217
208 .byte 102,15,56,0,224
211 .byte 102,15,56,0,211
214 .byte 102,15,56,0,220
218 movdqa 96(%ebx),%xmm4
219 .byte 102,15,56,0,226
221 movdqa 112(%ebx),%xmm0
223 .byte 102,15,56,0,195
225 .byte 102,15,56,0,194
228 __vpaes_schedule_core:
231 movdqa 320(%ebp),%xmm2
235 call __vpaes_schedule_transform
238 jnz L004schedule_am_decrypting
241 L004schedule_am_decrypting:
242 movdqa 256(%ebp,%ecx,1),%xmm1
243 .byte 102,15,56,0,217
252 L009loop_schedule_128:
253 call __vpaes_schedule_round
255 jz L010schedule_mangle_last
256 call __vpaes_schedule_mangle
257 jmp L009loop_schedule_128
261 call __vpaes_schedule_transform
266 L011loop_schedule_192:
267 call __vpaes_schedule_round
268 .byte 102,15,58,15,198,8
269 call __vpaes_schedule_mangle
270 call __vpaes_schedule_192_smear
271 call __vpaes_schedule_mangle
272 call __vpaes_schedule_round
274 jz L010schedule_mangle_last
275 call __vpaes_schedule_mangle
276 call __vpaes_schedule_192_smear
277 jmp L011loop_schedule_192
280 movdqu 16(%esi),%xmm0
281 call __vpaes_schedule_transform
283 L012loop_schedule_256:
284 call __vpaes_schedule_mangle
286 call __vpaes_schedule_round
288 jz L010schedule_mangle_last
289 call __vpaes_schedule_mangle
290 pshufd $255,%xmm0,%xmm0
291 movdqa %xmm7,20(%esp)
293 call L_vpaes_schedule_low_round
294 movdqa 20(%esp),%xmm7
295 jmp L012loop_schedule_256
297 L010schedule_mangle_last:
300 jnz L013schedule_mangle_last_dec
301 movdqa 256(%ebp,%ecx,1),%xmm1
302 .byte 102,15,56,0,193
305 L013schedule_mangle_last_dec:
308 call __vpaes_schedule_transform
320 __vpaes_schedule_192_smear:
321 pshufd $128,%xmm6,%xmm0
323 pshufd $254,%xmm7,%xmm0
330 __vpaes_schedule_round:
333 .byte 102,15,58,15,202,15
334 .byte 102,15,58,15,210,15
336 pshufd $255,%xmm0,%xmm0
337 .byte 102,15,58,15,192,1
339 L_vpaes_schedule_low_round:
347 movdqa -16(%ebp),%xmm4
348 movdqa -48(%ebp),%xmm5
353 movdqa -32(%ebp),%xmm2
354 .byte 102,15,56,0,208
357 .byte 102,15,56,0,217
360 .byte 102,15,56,0,224
363 .byte 102,15,56,0,211
366 .byte 102,15,56,0,220
368 movdqa 32(%ebp),%xmm4
369 .byte 102,15,56,0,226
370 movdqa 48(%ebp),%xmm0
371 .byte 102,15,56,0,195
377 __vpaes_schedule_transform:
378 movdqa -16(%ebp),%xmm2
384 .byte 102,15,56,0,208
385 movdqa 16(%ebx),%xmm0
386 .byte 102,15,56,0,193
390 __vpaes_schedule_mangle:
392 movdqa 128(%ebp),%xmm5
394 jnz L014schedule_mangle_dec
397 .byte 102,15,56,0,229
399 .byte 102,15,56,0,229
401 .byte 102,15,56,0,229
403 jmp L015schedule_mangle_both
405 L014schedule_mangle_dec:
406 movdqa -16(%ebp),%xmm2
413 .byte 102,15,56,0,212
414 movdqa 16(%esi),%xmm3
415 .byte 102,15,56,0,217
417 .byte 102,15,56,0,221
418 movdqa 32(%esi),%xmm2
419 .byte 102,15,56,0,212
421 movdqa 48(%esi),%xmm3
422 .byte 102,15,56,0,217
424 .byte 102,15,56,0,221
425 movdqa 64(%esi),%xmm2
426 .byte 102,15,56,0,212
428 movdqa 80(%esi),%xmm3
429 .byte 102,15,56,0,217
431 .byte 102,15,56,0,221
432 movdqa 96(%esi),%xmm2
433 .byte 102,15,56,0,212
435 movdqa 112(%esi),%xmm3
436 .byte 102,15,56,0,217
439 L015schedule_mangle_both:
440 movdqa 256(%ebp,%ecx,1),%xmm1
441 .byte 102,15,56,0,217
446 .globl _vpaes_set_encrypt_key
448 _vpaes_set_encrypt_key:
449 L_vpaes_set_encrypt_key_begin:
467 leal L_vpaes_consts+0x30-L016pic_point,%ebp
468 call __vpaes_schedule_core
477 .globl _vpaes_set_decrypt_key
479 _vpaes_set_decrypt_key:
480 L_vpaes_set_decrypt_key_begin:
497 leal 16(%edx,%ebx,1),%edx
503 leal L_vpaes_consts+0x30-L017pic_point,%ebp
504 call __vpaes_schedule_core
513 .globl _vpaes_encrypt
516 L_vpaes_encrypt_begin:
521 leal L_vpaes_consts+0x30-L018pic_point,%ebp
532 call __vpaes_encrypt_core
540 .globl _vpaes_decrypt
543 L_vpaes_decrypt_begin:
548 leal L_vpaes_consts+0x30-L019pic_point,%ebp
559 call __vpaes_decrypt_core
567 .globl _vpaes_cbc_encrypt
570 L_vpaes_cbc_encrypt_begin:
593 leal L_vpaes_consts+0x30-L021pic_point,%ebp
603 call __vpaes_encrypt_core
607 movdqu %xmm0,(%ebx,%esi,1)
615 movdqa %xmm1,16(%esp)
616 movdqa %xmm0,32(%esp)
617 call __vpaes_decrypt_core
621 movdqa 32(%esp),%xmm1
622 movdqu %xmm0,(%ebx,%esi,1)