Home | History | Annotate | Download | only in fipsmodule
      1 # This file is generated from a similarly-named Perl script in the BoringSSL
      2 # source tree. Do not edit by hand.
      3 
      4 #if defined(__i386__)
      5 #if defined(BORINGSSL_PREFIX)
      6 #include <boringssl_prefix_symbols_asm.h>
      7 #endif
      8 .text
      9 #ifndef NDEBUG
     10 #endif
     11 .align	64
     12 .L_vpaes_consts:
     13 .long	218628480,235210255,168496130,67568393
     14 .long	252381056,17041926,33884169,51187212
     15 .long	252645135,252645135,252645135,252645135
     16 .long	1512730624,3266504856,1377990664,3401244816
     17 .long	830229760,1275146365,2969422977,3447763452
     18 .long	3411033600,2979783055,338359620,2782886510
     19 .long	4209124096,907596821,221174255,1006095553
     20 .long	191964160,3799684038,3164090317,1589111125
     21 .long	182528256,1777043520,2877432650,3265356744
     22 .long	1874708224,3503451415,3305285752,363511674
     23 .long	1606117888,3487855781,1093350906,2384367825
     24 .long	197121,67569157,134941193,202313229
     25 .long	67569157,134941193,202313229,197121
     26 .long	134941193,202313229,197121,67569157
     27 .long	202313229,197121,67569157,134941193
     28 .long	33619971,100992007,168364043,235736079
     29 .long	235736079,33619971,100992007,168364043
     30 .long	168364043,235736079,33619971,100992007
     31 .long	100992007,168364043,235736079,33619971
     32 .long	50462976,117835012,185207048,252579084
     33 .long	252314880,51251460,117574920,184942860
     34 .long	184682752,252054788,50987272,118359308
     35 .long	118099200,185467140,251790600,50727180
     36 .long	2946363062,528716217,1300004225,1881839624
     37 .long	1532713819,1532713819,1532713819,1532713819
     38 .long	3602276352,4288629033,3737020424,4153884961
     39 .long	1354558464,32357713,2958822624,3775749553
     40 .long	1201988352,132424512,1572796698,503232858
     41 .long	2213177600,1597421020,4103937655,675398315
     42 .long	2749646592,4273543773,1511898873,121693092
     43 .long	3040248576,1103263732,2871565598,1608280554
     44 .long	2236667136,2588920351,482954393,64377734
     45 .long	3069987328,291237287,2117370568,3650299247
     46 .long	533321216,3573750986,2572112006,1401264716
     47 .long	1339849704,2721158661,548607111,3445553514
     48 .long	2128193280,3054596040,2183486460,1257083700
     49 .long	655635200,1165381986,3923443150,2344132524
     50 .long	190078720,256924420,290342170,357187870
     51 .long	1610966272,2263057382,4103205268,309794674
     52 .long	2592527872,2233205587,1335446729,3402964816
     53 .long	3973531904,3225098121,3002836325,1918774430
     54 .long	3870401024,2102906079,2284471353,4117666579
     55 .long	617007872,1021508343,366931923,691083277
     56 .long	2528395776,3491914898,2968704004,1613121270
     57 .long	3445188352,3247741094,844474987,4093578302
     58 .long	651481088,1190302358,1689581232,574775300
     59 .long	4289380608,206939853,2555985458,2489840491
     60 .long	2130264064,327674451,3566485037,3349835193
     61 .long	2470714624,316102159,3636825756,3393945945
     62 .byte	86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
     63 .byte	111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
     64 .byte	83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
     65 .byte	114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
     66 .byte	118,101,114,115,105,116,121,41,0
     67 .align	64
     68 .hidden	_vpaes_preheat
     69 .type	_vpaes_preheat,@function
     70 .align	16
     71 _vpaes_preheat:
     72 	addl	(%esp),%ebp
     73 	movdqa	-48(%ebp),%xmm7
     74 	movdqa	-16(%ebp),%xmm6
     75 	ret
     76 .size	_vpaes_preheat,.-_vpaes_preheat
     77 .hidden	_vpaes_encrypt_core
     78 .type	_vpaes_encrypt_core,@function
     79 .align	16
     80 _vpaes_encrypt_core:
     81 	movl	$16,%ecx
     82 	movl	240(%edx),%eax
     83 	movdqa	%xmm6,%xmm1
     84 	movdqa	(%ebp),%xmm2
     85 	pandn	%xmm0,%xmm1
     86 	pand	%xmm6,%xmm0
     87 	movdqu	(%edx),%xmm5
     88 .byte	102,15,56,0,208
     89 	movdqa	16(%ebp),%xmm0
     90 	pxor	%xmm5,%xmm2
     91 	psrld	$4,%xmm1
     92 	addl	$16,%edx
     93 .byte	102,15,56,0,193
     94 	leal	192(%ebp),%ebx
     95 	pxor	%xmm2,%xmm0
     96 	jmp	.L000enc_entry
     97 .align	16
     98 .L001enc_loop:
     99 	movdqa	32(%ebp),%xmm4
    100 	movdqa	48(%ebp),%xmm0
    101 .byte	102,15,56,0,226
    102 .byte	102,15,56,0,195
    103 	pxor	%xmm5,%xmm4
    104 	movdqa	64(%ebp),%xmm5
    105 	pxor	%xmm4,%xmm0
    106 	movdqa	-64(%ebx,%ecx,1),%xmm1
    107 .byte	102,15,56,0,234
    108 	movdqa	80(%ebp),%xmm2
    109 	movdqa	(%ebx,%ecx,1),%xmm4
    110 .byte	102,15,56,0,211
    111 	movdqa	%xmm0,%xmm3
    112 	pxor	%xmm5,%xmm2
    113 .byte	102,15,56,0,193
    114 	addl	$16,%edx
    115 	pxor	%xmm2,%xmm0
    116 .byte	102,15,56,0,220
    117 	addl	$16,%ecx
    118 	pxor	%xmm0,%xmm3
    119 .byte	102,15,56,0,193
    120 	andl	$48,%ecx
    121 	subl	$1,%eax
    122 	pxor	%xmm3,%xmm0
    123 .L000enc_entry:
    124 	movdqa	%xmm6,%xmm1
    125 	movdqa	-32(%ebp),%xmm5
    126 	pandn	%xmm0,%xmm1
    127 	psrld	$4,%xmm1
    128 	pand	%xmm6,%xmm0
    129 .byte	102,15,56,0,232
    130 	movdqa	%xmm7,%xmm3
    131 	pxor	%xmm1,%xmm0
    132 .byte	102,15,56,0,217
    133 	movdqa	%xmm7,%xmm4
    134 	pxor	%xmm5,%xmm3
    135 .byte	102,15,56,0,224
    136 	movdqa	%xmm7,%xmm2
    137 	pxor	%xmm5,%xmm4
    138 .byte	102,15,56,0,211
    139 	movdqa	%xmm7,%xmm3
    140 	pxor	%xmm0,%xmm2
    141 .byte	102,15,56,0,220
    142 	movdqu	(%edx),%xmm5
    143 	pxor	%xmm1,%xmm3
    144 	jnz	.L001enc_loop
    145 	movdqa	96(%ebp),%xmm4
    146 	movdqa	112(%ebp),%xmm0
    147 .byte	102,15,56,0,226
    148 	pxor	%xmm5,%xmm4
    149 .byte	102,15,56,0,195
    150 	movdqa	64(%ebx,%ecx,1),%xmm1
    151 	pxor	%xmm4,%xmm0
    152 .byte	102,15,56,0,193
    153 	ret
    154 .size	_vpaes_encrypt_core,.-_vpaes_encrypt_core
    155 .hidden	_vpaes_decrypt_core
    156 .type	_vpaes_decrypt_core,@function
    157 .align	16
    158 _vpaes_decrypt_core:
    159 	leal	608(%ebp),%ebx
    160 	movl	240(%edx),%eax
    161 	movdqa	%xmm6,%xmm1
    162 	movdqa	-64(%ebx),%xmm2
    163 	pandn	%xmm0,%xmm1
    164 	movl	%eax,%ecx
    165 	psrld	$4,%xmm1
    166 	movdqu	(%edx),%xmm5
    167 	shll	$4,%ecx
    168 	pand	%xmm6,%xmm0
    169 .byte	102,15,56,0,208
    170 	movdqa	-48(%ebx),%xmm0
    171 	xorl	$48,%ecx
    172 .byte	102,15,56,0,193
    173 	andl	$48,%ecx
    174 	pxor	%xmm5,%xmm2
    175 	movdqa	176(%ebp),%xmm5
    176 	pxor	%xmm2,%xmm0
    177 	addl	$16,%edx
    178 	leal	-352(%ebx,%ecx,1),%ecx
    179 	jmp	.L002dec_entry
    180 .align	16
    181 .L003dec_loop:
    182 	movdqa	-32(%ebx),%xmm4
    183 	movdqa	-16(%ebx),%xmm1
    184 .byte	102,15,56,0,226
    185 .byte	102,15,56,0,203
    186 	pxor	%xmm4,%xmm0
    187 	movdqa	(%ebx),%xmm4
    188 	pxor	%xmm1,%xmm0
    189 	movdqa	16(%ebx),%xmm1
    190 .byte	102,15,56,0,226
    191 .byte	102,15,56,0,197
    192 .byte	102,15,56,0,203
    193 	pxor	%xmm4,%xmm0
    194 	movdqa	32(%ebx),%xmm4
    195 	pxor	%xmm1,%xmm0
    196 	movdqa	48(%ebx),%xmm1
    197 .byte	102,15,56,0,226
    198 .byte	102,15,56,0,197
    199 .byte	102,15,56,0,203
    200 	pxor	%xmm4,%xmm0
    201 	movdqa	64(%ebx),%xmm4
    202 	pxor	%xmm1,%xmm0
    203 	movdqa	80(%ebx),%xmm1
    204 .byte	102,15,56,0,226
    205 .byte	102,15,56,0,197
    206 .byte	102,15,56,0,203
    207 	pxor	%xmm4,%xmm0
    208 	addl	$16,%edx
    209 .byte	102,15,58,15,237,12
    210 	pxor	%xmm1,%xmm0
    211 	subl	$1,%eax
    212 .L002dec_entry:
    213 	movdqa	%xmm6,%xmm1
    214 	movdqa	-32(%ebp),%xmm2
    215 	pandn	%xmm0,%xmm1
    216 	pand	%xmm6,%xmm0
    217 	psrld	$4,%xmm1
    218 .byte	102,15,56,0,208
    219 	movdqa	%xmm7,%xmm3
    220 	pxor	%xmm1,%xmm0
    221 .byte	102,15,56,0,217
    222 	movdqa	%xmm7,%xmm4
    223 	pxor	%xmm2,%xmm3
    224 .byte	102,15,56,0,224
    225 	pxor	%xmm2,%xmm4
    226 	movdqa	%xmm7,%xmm2
    227 .byte	102,15,56,0,211
    228 	movdqa	%xmm7,%xmm3
    229 	pxor	%xmm0,%xmm2
    230 .byte	102,15,56,0,220
    231 	movdqu	(%edx),%xmm0
    232 	pxor	%xmm1,%xmm3
    233 	jnz	.L003dec_loop
    234 	movdqa	96(%ebx),%xmm4
    235 .byte	102,15,56,0,226
    236 	pxor	%xmm0,%xmm4
    237 	movdqa	112(%ebx),%xmm0
    238 	movdqa	(%ecx),%xmm2
    239 .byte	102,15,56,0,195
    240 	pxor	%xmm4,%xmm0
    241 .byte	102,15,56,0,194
    242 	ret
    243 .size	_vpaes_decrypt_core,.-_vpaes_decrypt_core
    244 .hidden	_vpaes_schedule_core
    245 .type	_vpaes_schedule_core,@function
    246 .align	16
    247 _vpaes_schedule_core:
    248 	addl	(%esp),%ebp
    249 	movdqu	(%esi),%xmm0
    250 	movdqa	320(%ebp),%xmm2
    251 	movdqa	%xmm0,%xmm3
    252 	leal	(%ebp),%ebx
    253 	movdqa	%xmm2,4(%esp)
    254 	call	_vpaes_schedule_transform
    255 	movdqa	%xmm0,%xmm7
    256 	testl	%edi,%edi
    257 	jnz	.L004schedule_am_decrypting
    258 	movdqu	%xmm0,(%edx)
    259 	jmp	.L005schedule_go
    260 .L004schedule_am_decrypting:
    261 	movdqa	256(%ebp,%ecx,1),%xmm1
    262 .byte	102,15,56,0,217
    263 	movdqu	%xmm3,(%edx)
    264 	xorl	$48,%ecx
    265 .L005schedule_go:
    266 	cmpl	$192,%eax
    267 	ja	.L006schedule_256
    268 	je	.L007schedule_192
    269 .L008schedule_128:
    270 	movl	$10,%eax
    271 .L009loop_schedule_128:
    272 	call	_vpaes_schedule_round
    273 	decl	%eax
    274 	jz	.L010schedule_mangle_last
    275 	call	_vpaes_schedule_mangle
    276 	jmp	.L009loop_schedule_128
    277 .align	16
    278 .L007schedule_192:
    279 	movdqu	8(%esi),%xmm0
    280 	call	_vpaes_schedule_transform
    281 	movdqa	%xmm0,%xmm6
    282 	pxor	%xmm4,%xmm4
    283 	movhlps	%xmm4,%xmm6
    284 	movl	$4,%eax
    285 .L011loop_schedule_192:
    286 	call	_vpaes_schedule_round
    287 .byte	102,15,58,15,198,8
    288 	call	_vpaes_schedule_mangle
    289 	call	_vpaes_schedule_192_smear
    290 	call	_vpaes_schedule_mangle
    291 	call	_vpaes_schedule_round
    292 	decl	%eax
    293 	jz	.L010schedule_mangle_last
    294 	call	_vpaes_schedule_mangle
    295 	call	_vpaes_schedule_192_smear
    296 	jmp	.L011loop_schedule_192
    297 .align	16
    298 .L006schedule_256:
    299 	movdqu	16(%esi),%xmm0
    300 	call	_vpaes_schedule_transform
    301 	movl	$7,%eax
    302 .L012loop_schedule_256:
    303 	call	_vpaes_schedule_mangle
    304 	movdqa	%xmm0,%xmm6
    305 	call	_vpaes_schedule_round
    306 	decl	%eax
    307 	jz	.L010schedule_mangle_last
    308 	call	_vpaes_schedule_mangle
    309 	pshufd	$255,%xmm0,%xmm0
    310 	movdqa	%xmm7,20(%esp)
    311 	movdqa	%xmm6,%xmm7
    312 	call	.L_vpaes_schedule_low_round
    313 	movdqa	20(%esp),%xmm7
    314 	jmp	.L012loop_schedule_256
    315 .align	16
    316 .L010schedule_mangle_last:
    317 	leal	384(%ebp),%ebx
    318 	testl	%edi,%edi
    319 	jnz	.L013schedule_mangle_last_dec
    320 	movdqa	256(%ebp,%ecx,1),%xmm1
    321 .byte	102,15,56,0,193
    322 	leal	352(%ebp),%ebx
    323 	addl	$32,%edx
    324 .L013schedule_mangle_last_dec:
    325 	addl	$-16,%edx
    326 	pxor	336(%ebp),%xmm0
    327 	call	_vpaes_schedule_transform
    328 	movdqu	%xmm0,(%edx)
    329 	pxor	%xmm0,%xmm0
    330 	pxor	%xmm1,%xmm1
    331 	pxor	%xmm2,%xmm2
    332 	pxor	%xmm3,%xmm3
    333 	pxor	%xmm4,%xmm4
    334 	pxor	%xmm5,%xmm5
    335 	pxor	%xmm6,%xmm6
    336 	pxor	%xmm7,%xmm7
    337 	ret
    338 .size	_vpaes_schedule_core,.-_vpaes_schedule_core
    339 .hidden	_vpaes_schedule_192_smear
    340 .type	_vpaes_schedule_192_smear,@function
    341 .align	16
    342 _vpaes_schedule_192_smear:
    343 	pshufd	$128,%xmm6,%xmm1
    344 	pshufd	$254,%xmm7,%xmm0
    345 	pxor	%xmm1,%xmm6
    346 	pxor	%xmm1,%xmm1
    347 	pxor	%xmm0,%xmm6
    348 	movdqa	%xmm6,%xmm0
    349 	movhlps	%xmm1,%xmm6
    350 	ret
    351 .size	_vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
    352 .hidden	_vpaes_schedule_round
    353 .type	_vpaes_schedule_round,@function
    354 .align	16
    355 _vpaes_schedule_round:
    356 	movdqa	8(%esp),%xmm2
    357 	pxor	%xmm1,%xmm1
    358 .byte	102,15,58,15,202,15
    359 .byte	102,15,58,15,210,15
    360 	pxor	%xmm1,%xmm7
    361 	pshufd	$255,%xmm0,%xmm0
    362 .byte	102,15,58,15,192,1
    363 	movdqa	%xmm2,8(%esp)
    364 .L_vpaes_schedule_low_round:
    365 	movdqa	%xmm7,%xmm1
    366 	pslldq	$4,%xmm7
    367 	pxor	%xmm1,%xmm7
    368 	movdqa	%xmm7,%xmm1
    369 	pslldq	$8,%xmm7
    370 	pxor	%xmm1,%xmm7
    371 	pxor	336(%ebp),%xmm7
    372 	movdqa	-16(%ebp),%xmm4
    373 	movdqa	-48(%ebp),%xmm5
    374 	movdqa	%xmm4,%xmm1
    375 	pandn	%xmm0,%xmm1
    376 	psrld	$4,%xmm1
    377 	pand	%xmm4,%xmm0
    378 	movdqa	-32(%ebp),%xmm2
    379 .byte	102,15,56,0,208
    380 	pxor	%xmm1,%xmm0
    381 	movdqa	%xmm5,%xmm3
    382 .byte	102,15,56,0,217
    383 	pxor	%xmm2,%xmm3
    384 	movdqa	%xmm5,%xmm4
    385 .byte	102,15,56,0,224
    386 	pxor	%xmm2,%xmm4
    387 	movdqa	%xmm5,%xmm2
    388 .byte	102,15,56,0,211
    389 	pxor	%xmm0,%xmm2
    390 	movdqa	%xmm5,%xmm3
    391 .byte	102,15,56,0,220
    392 	pxor	%xmm1,%xmm3
    393 	movdqa	32(%ebp),%xmm4
    394 .byte	102,15,56,0,226
    395 	movdqa	48(%ebp),%xmm0
    396 .byte	102,15,56,0,195
    397 	pxor	%xmm4,%xmm0
    398 	pxor	%xmm7,%xmm0
    399 	movdqa	%xmm0,%xmm7
    400 	ret
    401 .size	_vpaes_schedule_round,.-_vpaes_schedule_round
    402 .hidden	_vpaes_schedule_transform
    403 .type	_vpaes_schedule_transform,@function
    404 .align	16
    405 _vpaes_schedule_transform:
    406 	movdqa	-16(%ebp),%xmm2
    407 	movdqa	%xmm2,%xmm1
    408 	pandn	%xmm0,%xmm1
    409 	psrld	$4,%xmm1
    410 	pand	%xmm2,%xmm0
    411 	movdqa	(%ebx),%xmm2
    412 .byte	102,15,56,0,208
    413 	movdqa	16(%ebx),%xmm0
    414 .byte	102,15,56,0,193
    415 	pxor	%xmm2,%xmm0
    416 	ret
    417 .size	_vpaes_schedule_transform,.-_vpaes_schedule_transform
    418 .hidden	_vpaes_schedule_mangle
    419 .type	_vpaes_schedule_mangle,@function
    420 .align	16
    421 _vpaes_schedule_mangle:
    422 	movdqa	%xmm0,%xmm4
    423 	movdqa	128(%ebp),%xmm5
    424 	testl	%edi,%edi
    425 	jnz	.L014schedule_mangle_dec
    426 	addl	$16,%edx
    427 	pxor	336(%ebp),%xmm4
    428 .byte	102,15,56,0,229
    429 	movdqa	%xmm4,%xmm3
    430 .byte	102,15,56,0,229
    431 	pxor	%xmm4,%xmm3
    432 .byte	102,15,56,0,229
    433 	pxor	%xmm4,%xmm3
    434 	jmp	.L015schedule_mangle_both
    435 .align	16
    436 .L014schedule_mangle_dec:
    437 	movdqa	-16(%ebp),%xmm2
    438 	leal	416(%ebp),%esi
    439 	movdqa	%xmm2,%xmm1
    440 	pandn	%xmm4,%xmm1
    441 	psrld	$4,%xmm1
    442 	pand	%xmm2,%xmm4
    443 	movdqa	(%esi),%xmm2
    444 .byte	102,15,56,0,212
    445 	movdqa	16(%esi),%xmm3
    446 .byte	102,15,56,0,217
    447 	pxor	%xmm2,%xmm3
    448 .byte	102,15,56,0,221
    449 	movdqa	32(%esi),%xmm2
    450 .byte	102,15,56,0,212
    451 	pxor	%xmm3,%xmm2
    452 	movdqa	48(%esi),%xmm3
    453 .byte	102,15,56,0,217
    454 	pxor	%xmm2,%xmm3
    455 .byte	102,15,56,0,221
    456 	movdqa	64(%esi),%xmm2
    457 .byte	102,15,56,0,212
    458 	pxor	%xmm3,%xmm2
    459 	movdqa	80(%esi),%xmm3
    460 .byte	102,15,56,0,217
    461 	pxor	%xmm2,%xmm3
    462 .byte	102,15,56,0,221
    463 	movdqa	96(%esi),%xmm2
    464 .byte	102,15,56,0,212
    465 	pxor	%xmm3,%xmm2
    466 	movdqa	112(%esi),%xmm3
    467 .byte	102,15,56,0,217
    468 	pxor	%xmm2,%xmm3
    469 	addl	$-16,%edx
    470 .L015schedule_mangle_both:
    471 	movdqa	256(%ebp,%ecx,1),%xmm1
    472 .byte	102,15,56,0,217
    473 	addl	$-16,%ecx
    474 	andl	$48,%ecx
    475 	movdqu	%xmm3,(%edx)
    476 	ret
    477 .size	_vpaes_schedule_mangle,.-_vpaes_schedule_mangle
    478 .globl	vpaes_set_encrypt_key
    479 .hidden	vpaes_set_encrypt_key
    480 .type	vpaes_set_encrypt_key,@function
    481 .align	16
    482 vpaes_set_encrypt_key:
    483 .L_vpaes_set_encrypt_key_begin:
    484 	pushl	%ebp
    485 	pushl	%ebx
    486 	pushl	%esi
    487 	pushl	%edi
    488 #ifndef NDEBUG
    489 	pushl	%ebx
    490 	pushl	%edx
    491 	call	.L016pic
    492 .L016pic:
    493 	popl	%ebx
    494 	leal	BORINGSSL_function_hit+5-.L016pic(%ebx),%ebx
    495 	movl	$1,%edx
    496 	movb	%dl,(%ebx)
    497 	popl	%edx
    498 	popl	%ebx
    499 #endif
    500 	movl	20(%esp),%esi
    501 	leal	-56(%esp),%ebx
    502 	movl	24(%esp),%eax
    503 	andl	$-16,%ebx
    504 	movl	28(%esp),%edx
    505 	xchgl	%esp,%ebx
    506 	movl	%ebx,48(%esp)
    507 	movl	%eax,%ebx
    508 	shrl	$5,%ebx
    509 	addl	$5,%ebx
    510 	movl	%ebx,240(%edx)
    511 	movl	$48,%ecx
    512 	movl	$0,%edi
    513 	leal	.L_vpaes_consts+0x30-.L017pic_point,%ebp
    514 	call	_vpaes_schedule_core
    515 .L017pic_point:
    516 	movl	48(%esp),%esp
    517 	xorl	%eax,%eax
    518 	popl	%edi
    519 	popl	%esi
    520 	popl	%ebx
    521 	popl	%ebp
    522 	ret
    523 .size	vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin
    524 .globl	vpaes_set_decrypt_key
    525 .hidden	vpaes_set_decrypt_key
    526 .type	vpaes_set_decrypt_key,@function
    527 .align	16
    528 vpaes_set_decrypt_key:
    529 .L_vpaes_set_decrypt_key_begin:
    530 	pushl	%ebp
    531 	pushl	%ebx
    532 	pushl	%esi
    533 	pushl	%edi
    534 	movl	20(%esp),%esi
    535 	leal	-56(%esp),%ebx
    536 	movl	24(%esp),%eax
    537 	andl	$-16,%ebx
    538 	movl	28(%esp),%edx
    539 	xchgl	%esp,%ebx
    540 	movl	%ebx,48(%esp)
    541 	movl	%eax,%ebx
    542 	shrl	$5,%ebx
    543 	addl	$5,%ebx
    544 	movl	%ebx,240(%edx)
    545 	shll	$4,%ebx
    546 	leal	16(%edx,%ebx,1),%edx
    547 	movl	$1,%edi
    548 	movl	%eax,%ecx
    549 	shrl	$1,%ecx
    550 	andl	$32,%ecx
    551 	xorl	$32,%ecx
    552 	leal	.L_vpaes_consts+0x30-.L018pic_point,%ebp
    553 	call	_vpaes_schedule_core
    554 .L018pic_point:
    555 	movl	48(%esp),%esp
    556 	xorl	%eax,%eax
    557 	popl	%edi
    558 	popl	%esi
    559 	popl	%ebx
    560 	popl	%ebp
    561 	ret
    562 .size	vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin
    563 .globl	vpaes_encrypt
    564 .hidden	vpaes_encrypt
    565 .type	vpaes_encrypt,@function
    566 .align	16
    567 vpaes_encrypt:
    568 .L_vpaes_encrypt_begin:
    569 	pushl	%ebp
    570 	pushl	%ebx
    571 	pushl	%esi
    572 	pushl	%edi
    573 #ifndef NDEBUG
    574 	pushl	%ebx
    575 	pushl	%edx
    576 	call	.L019pic
    577 .L019pic:
    578 	popl	%ebx
    579 	leal	BORINGSSL_function_hit+4-.L019pic(%ebx),%ebx
    580 	movl	$1,%edx
    581 	movb	%dl,(%ebx)
    582 	popl	%edx
    583 	popl	%ebx
    584 #endif
    585 	leal	.L_vpaes_consts+0x30-.L020pic_point,%ebp
    586 	call	_vpaes_preheat
    587 .L020pic_point:
    588 	movl	20(%esp),%esi
    589 	leal	-56(%esp),%ebx
    590 	movl	24(%esp),%edi
    591 	andl	$-16,%ebx
    592 	movl	28(%esp),%edx
    593 	xchgl	%esp,%ebx
    594 	movl	%ebx,48(%esp)
    595 	movdqu	(%esi),%xmm0
    596 	call	_vpaes_encrypt_core
    597 	movdqu	%xmm0,(%edi)
    598 	movl	48(%esp),%esp
    599 	popl	%edi
    600 	popl	%esi
    601 	popl	%ebx
    602 	popl	%ebp
    603 	ret
    604 .size	vpaes_encrypt,.-.L_vpaes_encrypt_begin
    605 .globl	vpaes_decrypt
    606 .hidden	vpaes_decrypt
    607 .type	vpaes_decrypt,@function
    608 .align	16
    609 vpaes_decrypt:
    610 .L_vpaes_decrypt_begin:
    611 	pushl	%ebp
    612 	pushl	%ebx
    613 	pushl	%esi
    614 	pushl	%edi
    615 	leal	.L_vpaes_consts+0x30-.L021pic_point,%ebp
    616 	call	_vpaes_preheat
    617 .L021pic_point:
    618 	movl	20(%esp),%esi
    619 	leal	-56(%esp),%ebx
    620 	movl	24(%esp),%edi
    621 	andl	$-16,%ebx
    622 	movl	28(%esp),%edx
    623 	xchgl	%esp,%ebx
    624 	movl	%ebx,48(%esp)
    625 	movdqu	(%esi),%xmm0
    626 	call	_vpaes_decrypt_core
    627 	movdqu	%xmm0,(%edi)
    628 	movl	48(%esp),%esp
    629 	popl	%edi
    630 	popl	%esi
    631 	popl	%ebx
    632 	popl	%ebp
    633 	ret
    634 .size	vpaes_decrypt,.-.L_vpaes_decrypt_begin
    635 .globl	vpaes_cbc_encrypt
    636 .hidden	vpaes_cbc_encrypt
    637 .type	vpaes_cbc_encrypt,@function
    638 .align	16
    639 vpaes_cbc_encrypt:
    640 .L_vpaes_cbc_encrypt_begin:
    641 	pushl	%ebp
    642 	pushl	%ebx
    643 	pushl	%esi
    644 	pushl	%edi
    645 	movl	20(%esp),%esi
    646 	movl	24(%esp),%edi
    647 	movl	28(%esp),%eax
    648 	movl	32(%esp),%edx
    649 	subl	$16,%eax
    650 	jc	.L022cbc_abort
    651 	leal	-56(%esp),%ebx
    652 	movl	36(%esp),%ebp
    653 	andl	$-16,%ebx
    654 	movl	40(%esp),%ecx
    655 	xchgl	%esp,%ebx
    656 	movdqu	(%ebp),%xmm1
    657 	subl	%esi,%edi
    658 	movl	%ebx,48(%esp)
    659 	movl	%edi,(%esp)
    660 	movl	%edx,4(%esp)
    661 	movl	%ebp,8(%esp)
    662 	movl	%eax,%edi
    663 	leal	.L_vpaes_consts+0x30-.L023pic_point,%ebp
    664 	call	_vpaes_preheat
    665 .L023pic_point:
    666 	cmpl	$0,%ecx
    667 	je	.L024cbc_dec_loop
    668 	jmp	.L025cbc_enc_loop
    669 .align	16
    670 .L025cbc_enc_loop:
    671 	movdqu	(%esi),%xmm0
    672 	pxor	%xmm1,%xmm0
    673 	call	_vpaes_encrypt_core
    674 	movl	(%esp),%ebx
    675 	movl	4(%esp),%edx
    676 	movdqa	%xmm0,%xmm1
    677 	movdqu	%xmm0,(%ebx,%esi,1)
    678 	leal	16(%esi),%esi
    679 	subl	$16,%edi
    680 	jnc	.L025cbc_enc_loop
    681 	jmp	.L026cbc_done
    682 .align	16
    683 .L024cbc_dec_loop:
    684 	movdqu	(%esi),%xmm0
    685 	movdqa	%xmm1,16(%esp)
    686 	movdqa	%xmm0,32(%esp)
    687 	call	_vpaes_decrypt_core
    688 	movl	(%esp),%ebx
    689 	movl	4(%esp),%edx
    690 	pxor	16(%esp),%xmm0
    691 	movdqa	32(%esp),%xmm1
    692 	movdqu	%xmm0,(%ebx,%esi,1)
    693 	leal	16(%esi),%esi
    694 	subl	$16,%edi
    695 	jnc	.L024cbc_dec_loop
    696 .L026cbc_done:
    697 	movl	8(%esp),%ebx
    698 	movl	48(%esp),%esp
    699 	movdqu	%xmm1,(%ebx)
    700 .L022cbc_abort:
    701 	popl	%edi
    702 	popl	%esi
    703 	popl	%ebx
    704 	popl	%ebp
    705 	ret
    706 .size	vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin
    707 #endif
    708