Home | History | Annotate | Download | only in asm
      1 .text
      2 #ifdef OPENSSL_FIPSCANISTER
      3 # include <openssl/fipssyms.h>
      4 #endif
      5 
      6 #if !defined(__vxworks) || defined(__pic__)
      7 .option	pic2
      8 #endif
      9 .set	noat
     10 .align	5
     11 .ent	_mips_AES_encrypt
     12 _mips_AES_encrypt:
     13 	.frame	$29,0,$31
     14 	.set	reorder
     15 	lw	$12,0($6)
     16 	lw	$13,4($6)
     17 	lw	$14,8($6)
     18 	lw	$15,12($6)
     19 	lw	$30,240($6)
     20 	add $3,$6,16
     21 
     22 	xor	$8,$12
     23 	xor	$9,$13
     24 	xor	$10,$14
     25 	xor	$11,$15
     26 
     27 	sub	$30,1
     28 	srl	$1,$9,6
     29 .Loop_enc:
     30 	srl	$2,$10,6
     31 	srl	$24,$11,6
     32 	srl	$25,$8,6
     33 	and	$1,0x3fc
     34 	and	$2,0x3fc
     35 	and	$24,0x3fc
     36 	and	$25,0x3fc
     37 	add $1,$7
     38 	add $2,$7
     39 	add $24,$7
     40 	add $25,$7
     41 	lwl	$12,2($1)		# Te1[s1>>16]
     42 	lwl	$13,2($2)		# Te1[s2>>16]
     43 	lwl	$14,2($24)		# Te1[s3>>16]
     44 	lwl	$15,2($25)		# Te1[s0>>16]
     45 	lwr	$12,3($1)		# Te1[s1>>16]
     46 	lwr	$13,3($2)		# Te1[s2>>16]
     47 	lwr	$14,3($24)		# Te1[s3>>16]
     48 	lwr	$15,3($25)		# Te1[s0>>16]
     49 
     50 	srl	$1,$10,14
     51 	srl	$2,$11,14
     52 	srl	$24,$8,14
     53 	srl	$25,$9,14
     54 	and	$1,0x3fc
     55 	and	$2,0x3fc
     56 	and	$24,0x3fc
     57 	and	$25,0x3fc
     58 	add $1,$7
     59 	add $2,$7
     60 	add $24,$7
     61 	add $25,$7
     62 	lwl	$16,1($1)		# Te2[s2>>8]
     63 	lwl	$17,1($2)		# Te2[s3>>8]
     64 	lwl	$18,1($24)		# Te2[s0>>8]
     65 	lwl	$19,1($25)		# Te2[s1>>8]
     66 	lwr	$16,2($1)		# Te2[s2>>8]
     67 	lwr	$17,2($2)		# Te2[s3>>8]
     68 	lwr	$18,2($24)		# Te2[s0>>8]
     69 	lwr	$19,2($25)		# Te2[s1>>8]
     70 
     71 	srl	$1,$11,22
     72 	srl	$2,$8,22
     73 	srl	$24,$9,22
     74 	srl	$25,$10,22
     75 	and	$1,0x3fc
     76 	and	$2,0x3fc
     77 	and	$24,0x3fc
     78 	and	$25,0x3fc
     79 	add $1,$7
     80 	add $2,$7
     81 	add $24,$7
     82 	add $25,$7
     83 	lwl	$20,0($1)		# Te3[s3]
     84 	lwl	$21,0($2)		# Te3[s0]
     85 	lwl	$22,0($24)		# Te3[s1]
     86 	lwl	$23,0($25)		# Te3[s2]
     87 	lwr	$20,1($1)		# Te3[s3]
     88 	lwr	$21,1($2)		# Te3[s0]
     89 	lwr	$22,1($24)		# Te3[s1]
     90 	lwr	$23,1($25)		# Te3[s2]
     91 
     92 	sll	$1,$8,2
     93 	sll	$2,$9,2
     94 	sll	$24,$10,2
     95 	sll	$25,$11,2
     96 	and	$1,0x3fc
     97 	and	$2,0x3fc
     98 	and	$24,0x3fc
     99 	and	$25,0x3fc
    100 	add $1,$7
    101 	add $2,$7
    102 	add $24,$7
    103 	add $25,$7
    104 	xor	$12,$16
    105 	xor	$13,$17
    106 	xor	$14,$18
    107 	xor	$15,$19
    108 	lw	$16,0($1)		# Te0[s0>>24]
    109 	lw	$17,0($2)		# Te0[s1>>24]
    110 	lw	$18,0($24)		# Te0[s2>>24]
    111 	lw	$19,0($25)		# Te0[s3>>24]
    112 
    113 	lw	$8,0($3)
    114 	lw	$9,4($3)
    115 	lw	$10,8($3)
    116 	lw	$11,12($3)
    117 
    118 	xor	$12,$20
    119 	xor	$13,$21
    120 	xor	$14,$22
    121 	xor	$15,$23
    122 
    123 	xor	$12,$16
    124 	xor	$13,$17
    125 	xor	$14,$18
    126 	xor	$15,$19
    127 
    128 	sub	$30,1
    129 	add $3,16
    130 	xor	$8,$12
    131 	xor	$9,$13
    132 	xor	$10,$14
    133 	xor	$11,$15
    134 	.set	noreorder
    135 	bnez	$30,.Loop_enc
    136 	srl	$1,$9,6
    137 
    138 	.set	reorder
    139 	srl	$2,$10,6
    140 	srl	$24,$11,6
    141 	srl	$25,$8,6
    142 	and	$1,0x3fc
    143 	and	$2,0x3fc
    144 	and	$24,0x3fc
    145 	and	$25,0x3fc
    146 	add $1,$7
    147 	add $2,$7
    148 	add $24,$7
    149 	add $25,$7
    150 	lbu	$12,2($1)		# Te4[s1>>16]
    151 	lbu	$13,2($2)		# Te4[s2>>16]
    152 	lbu	$14,2($24)		# Te4[s3>>16]
    153 	lbu	$15,2($25)		# Te4[s0>>16]
    154 
    155 	srl	$1,$10,14
    156 	srl	$2,$11,14
    157 	srl	$24,$8,14
    158 	srl	$25,$9,14
    159 	and	$1,0x3fc
    160 	and	$2,0x3fc
    161 	and	$24,0x3fc
    162 	and	$25,0x3fc
    163 	add $1,$7
    164 	add $2,$7
    165 	add $24,$7
    166 	add $25,$7
    167 	lbu	$16,2($1)		# Te4[s2>>8]
    168 	lbu	$17,2($2)		# Te4[s3>>8]
    169 	lbu	$18,2($24)		# Te4[s0>>8]
    170 	lbu	$19,2($25)		# Te4[s1>>8]
    171 
    172 	sll	$1,$8,2
    173 	sll	$2,$9,2
    174 	sll	$24,$10,2
    175 	sll	$25,$11,2
    176 	and	$1,0x3fc
    177 	and	$2,0x3fc
    178 	and	$24,0x3fc
    179 	and	$25,0x3fc
    180 	add $1,$7
    181 	add $2,$7
    182 	add $24,$7
    183 	add $25,$7
    184 	lbu	$20,2($1)		# Te4[s0>>24]
    185 	lbu	$21,2($2)		# Te4[s1>>24]
    186 	lbu	$22,2($24)		# Te4[s2>>24]
    187 	lbu	$23,2($25)		# Te4[s3>>24]
    188 
    189 	srl	$1,$11,22
    190 	srl	$2,$8,22
    191 	srl	$24,$9,22
    192 	srl	$25,$10,22
    193 	and	$1,0x3fc
    194 	and	$2,0x3fc
    195 	and	$24,0x3fc
    196 	and	$25,0x3fc
    197 
    198 	sll	$12,$12,8
    199 	sll	$13,$13,8
    200 	sll	$14,$14,8
    201 	sll	$15,$15,8
    202 
    203 	sll	$16,$16,16
    204 	sll	$17,$17,16
    205 	sll	$18,$18,16
    206 	sll	$19,$19,16
    207 
    208 	xor	$12,$16
    209 	xor	$13,$17
    210 	xor	$14,$18
    211 	xor	$15,$19
    212 
    213 	add $1,$7
    214 	add $2,$7
    215 	add $24,$7
    216 	add $25,$7
    217 	lbu	$16,2($1)		# Te4[s3]
    218 	lbu	$17,2($2)		# Te4[s0]
    219 	lbu	$18,2($24)		# Te4[s1]
    220 	lbu	$19,2($25)		# Te4[s2]
    221 
    222 	#sll	$20,$20,0
    223 	#sll	$21,$21,0
    224 	#sll	$22,$22,0
    225 	#sll	$23,$23,0
    226 
    227 	lw	$8,0($3)
    228 	lw	$9,4($3)
    229 	lw	$10,8($3)
    230 	lw	$11,12($3)
    231 
    232 	xor	$12,$20
    233 	xor	$13,$21
    234 	xor	$14,$22
    235 	xor	$15,$23
    236 
    237 	sll	$16,$16,24
    238 	sll	$17,$17,24
    239 	sll	$18,$18,24
    240 	sll	$19,$19,24
    241 
    242 	xor	$12,$16
    243 	xor	$13,$17
    244 	xor	$14,$18
    245 	xor	$15,$19
    246 
    247 	xor	$8,$12
    248 	xor	$9,$13
    249 	xor	$10,$14
    250 	xor	$11,$15
    251 
    252 	jr	$31
    253 .end	_mips_AES_encrypt
    254 
    255 .align	5
    256 .globl	AES_encrypt
    257 .ent	AES_encrypt
    258 AES_encrypt:
    259 	.frame	$29,64,$31
    260 	.mask	3237937152,-4
    261 	.set	noreorder
    262 	.cpload	$25
    263 	sub $29,64
    264 	sw	$31,64-1*4($29)
    265 	sw	$30,64-2*4($29)
    266 	sw	$23,64-3*4($29)
    267 	sw	$22,64-4*4($29)
    268 	sw	$21,64-5*4($29)
    269 	sw	$20,64-6*4($29)
    270 	sw	$19,64-7*4($29)
    271 	sw	$18,64-8*4($29)
    272 	sw	$17,64-9*4($29)
    273 	sw	$16,64-10*4($29)
    274 	.set	reorder
    275 	la	$7,AES_Te		# PIC-ified 'load address'
    276 
    277 	lwl	$8,0+3($4)
    278 	lwl	$9,4+3($4)
    279 	lwl	$10,8+3($4)
    280 	lwl	$11,12+3($4)
    281 	lwr	$8,0+0($4)
    282 	lwr	$9,4+0($4)
    283 	lwr	$10,8+0($4)
    284 	lwr	$11,12+0($4)
    285 
    286 	bal	_mips_AES_encrypt
    287 
    288 	swr	$8,0+0($5)
    289 	swr	$9,4+0($5)
    290 	swr	$10,8+0($5)
    291 	swr	$11,12+0($5)
    292 	swl	$8,0+3($5)
    293 	swl	$9,4+3($5)
    294 	swl	$10,8+3($5)
    295 	swl	$11,12+3($5)
    296 
    297 	.set	noreorder
    298 	lw	$31,64-1*4($29)
    299 	lw	$30,64-2*4($29)
    300 	lw	$23,64-3*4($29)
    301 	lw	$22,64-4*4($29)
    302 	lw	$21,64-5*4($29)
    303 	lw	$20,64-6*4($29)
    304 	lw	$19,64-7*4($29)
    305 	lw	$18,64-8*4($29)
    306 	lw	$17,64-9*4($29)
    307 	lw	$16,64-10*4($29)
    308 	jr	$31
    309 	add $29,64
    310 .end	AES_encrypt
    311 .align	5
    312 .ent	_mips_AES_decrypt
    313 _mips_AES_decrypt:
    314 	.frame	$29,0,$31
    315 	.set	reorder
    316 	lw	$12,0($6)
    317 	lw	$13,4($6)
    318 	lw	$14,8($6)
    319 	lw	$15,12($6)
    320 	lw	$30,240($6)
    321 	add $3,$6,16
    322 
    323 	xor	$8,$12
    324 	xor	$9,$13
    325 	xor	$10,$14
    326 	xor	$11,$15
    327 
    328 	sub	$30,1
    329 	srl	$1,$11,6
    330 .Loop_dec:
    331 	srl	$2,$8,6
    332 	srl	$24,$9,6
    333 	srl	$25,$10,6
    334 	and	$1,0x3fc
    335 	and	$2,0x3fc
    336 	and	$24,0x3fc
    337 	and	$25,0x3fc
    338 	add $1,$7
    339 	add $2,$7
    340 	add $24,$7
    341 	add $25,$7
    342 	lwl	$12,2($1)		# Td1[s3>>16]
    343 	lwl	$13,2($2)		# Td1[s0>>16]
    344 	lwl	$14,2($24)		# Td1[s1>>16]
    345 	lwl	$15,2($25)		# Td1[s2>>16]
    346 	lwr	$12,3($1)		# Td1[s3>>16]
    347 	lwr	$13,3($2)		# Td1[s0>>16]
    348 	lwr	$14,3($24)		# Td1[s1>>16]
    349 	lwr	$15,3($25)		# Td1[s2>>16]
    350 
    351 	srl	$1,$10,14
    352 	srl	$2,$11,14
    353 	srl	$24,$8,14
    354 	srl	$25,$9,14
    355 	and	$1,0x3fc
    356 	and	$2,0x3fc
    357 	and	$24,0x3fc
    358 	and	$25,0x3fc
    359 	add $1,$7
    360 	add $2,$7
    361 	add $24,$7
    362 	add $25,$7
    363 	lwl	$16,1($1)		# Td2[s2>>8]
    364 	lwl	$17,1($2)		# Td2[s3>>8]
    365 	lwl	$18,1($24)		# Td2[s0>>8]
    366 	lwl	$19,1($25)		# Td2[s1>>8]
    367 	lwr	$16,2($1)		# Td2[s2>>8]
    368 	lwr	$17,2($2)		# Td2[s3>>8]
    369 	lwr	$18,2($24)		# Td2[s0>>8]
    370 	lwr	$19,2($25)		# Td2[s1>>8]
    371 
    372 	srl	$1,$9,22
    373 	srl	$2,$10,22
    374 	srl	$24,$11,22
    375 	srl	$25,$8,22
    376 	and	$1,0x3fc
    377 	and	$2,0x3fc
    378 	and	$24,0x3fc
    379 	and	$25,0x3fc
    380 	add $1,$7
    381 	add $2,$7
    382 	add $24,$7
    383 	add $25,$7
    384 	lwl	$20,0($1)		# Td3[s1]
    385 	lwl	$21,0($2)		# Td3[s2]
    386 	lwl	$22,0($24)		# Td3[s3]
    387 	lwl	$23,0($25)		# Td3[s0]
    388 	lwr	$20,1($1)		# Td3[s1]
    389 	lwr	$21,1($2)		# Td3[s2]
    390 	lwr	$22,1($24)		# Td3[s3]
    391 	lwr	$23,1($25)		# Td3[s0]
    392 
    393 	sll	$1,$8,2
    394 	sll	$2,$9,2
    395 	sll	$24,$10,2
    396 	sll	$25,$11,2
    397 	and	$1,0x3fc
    398 	and	$2,0x3fc
    399 	and	$24,0x3fc
    400 	and	$25,0x3fc
    401 	add $1,$7
    402 	add $2,$7
    403 	add $24,$7
    404 	add $25,$7
    405 
    406 	xor	$12,$16
    407 	xor	$13,$17
    408 	xor	$14,$18
    409 	xor	$15,$19
    410 
    411 
    412 	lw	$16,0($1)		# Td0[s0>>24]
    413 	lw	$17,0($2)		# Td0[s1>>24]
    414 	lw	$18,0($24)		# Td0[s2>>24]
    415 	lw	$19,0($25)		# Td0[s3>>24]
    416 
    417 	lw	$8,0($3)
    418 	lw	$9,4($3)
    419 	lw	$10,8($3)
    420 	lw	$11,12($3)
    421 
    422 	xor	$12,$20
    423 	xor	$13,$21
    424 	xor	$14,$22
    425 	xor	$15,$23
    426 
    427 	xor	$12,$16
    428 	xor	$13,$17
    429 	xor	$14,$18
    430 	xor	$15,$19
    431 
    432 	sub	$30,1
    433 	add $3,16
    434 	xor	$8,$12
    435 	xor	$9,$13
    436 	xor	$10,$14
    437 	xor	$11,$15
    438 	.set	noreorder
    439 	bnez	$30,.Loop_dec
    440 	srl	$1,$11,6
    441 
    442 	.set	reorder
    443 	lw	$16,1024($7)		# prefetch Td4
    444 	lw	$17,1024+32($7)
    445 	lw	$18,1024+64($7)
    446 	lw	$19,1024+96($7)
    447 	lw	$20,1024+128($7)
    448 	lw	$21,1024+160($7)
    449 	lw	$22,1024+192($7)
    450 	lw	$23,1024+224($7)
    451 
    452 	srl	$1,$11,8
    453 	srl	$2,$8,8
    454 	srl	$24,$9,8
    455 	srl	$25,$10,8
    456 	and	$1,0xff
    457 	and	$2,0xff
    458 	and	$24,0xff
    459 	and	$25,0xff
    460 	add $1,$7
    461 	add $2,$7
    462 	add $24,$7
    463 	add $25,$7
    464 	lbu	$12,1024($1)		# Td4[s3>>16]
    465 	lbu	$13,1024($2)		# Td4[s0>>16]
    466 	lbu	$14,1024($24)		# Td4[s1>>16]
    467 	lbu	$15,1024($25)		# Td4[s2>>16]
    468 
    469 	srl	$1,$10,16
    470 	srl	$2,$11,16
    471 	srl	$24,$8,16
    472 	srl	$25,$9,16
    473 	and	$1,0xff
    474 	and	$2,0xff
    475 	and	$24,0xff
    476 	and	$25,0xff
    477 	add $1,$7
    478 	add $2,$7
    479 	add $24,$7
    480 	add $25,$7
    481 	lbu	$16,1024($1)		# Td4[s2>>8]
    482 	lbu	$17,1024($2)		# Td4[s3>>8]
    483 	lbu	$18,1024($24)		# Td4[s0>>8]
    484 	lbu	$19,1024($25)		# Td4[s1>>8]
    485 
    486 	and	$1,$8,0xff
    487 	and	$2,$9,0xff
    488 	and	$24,$10,0xff
    489 	and	$25,$11,0xff
    490 	add $1,$7
    491 	add $2,$7
    492 	add $24,$7
    493 	add $25,$7
    494 	lbu	$20,1024($1)		# Td4[s0>>24]
    495 	lbu	$21,1024($2)		# Td4[s1>>24]
    496 	lbu	$22,1024($24)		# Td4[s2>>24]
    497 	lbu	$23,1024($25)		# Td4[s3>>24]
    498 
    499 	srl	$1,$9,24
    500 	srl	$2,$10,24
    501 	srl	$24,$11,24
    502 	srl	$25,$8,24
    503 
    504 	sll	$12,$12,8
    505 	sll	$13,$13,8
    506 	sll	$14,$14,8
    507 	sll	$15,$15,8
    508 
    509 	sll	$16,$16,16
    510 	sll	$17,$17,16
    511 	sll	$18,$18,16
    512 	sll	$19,$19,16
    513 
    514 	xor	$12,$16
    515 	xor	$13,$17
    516 	xor	$14,$18
    517 	xor	$15,$19
    518 
    519 	add $1,$7
    520 	add $2,$7
    521 	add $24,$7
    522 	add $25,$7
    523 	lbu	$16,1024($1)		# Td4[s1]
    524 	lbu	$17,1024($2)		# Td4[s2]
    525 	lbu	$18,1024($24)		# Td4[s3]
    526 	lbu	$19,1024($25)		# Td4[s0]
    527 
    528 	#sll	$20,$20,0
    529 	#sll	$21,$21,0
    530 	#sll	$22,$22,0
    531 	#sll	$23,$23,0
    532 
    533 	lw	$8,0($3)
    534 	lw	$9,4($3)
    535 	lw	$10,8($3)
    536 	lw	$11,12($3)
    537 
    538 	sll	$16,$16,24
    539 	sll	$17,$17,24
    540 	sll	$18,$18,24
    541 	sll	$19,$19,24
    542 
    543 
    544 	xor	$12,$20
    545 	xor	$13,$21
    546 	xor	$14,$22
    547 	xor	$15,$23
    548 
    549 	xor	$12,$16
    550 	xor	$13,$17
    551 	xor	$14,$18
    552 	xor	$15,$19
    553 
    554 	xor	$8,$12
    555 	xor	$9,$13
    556 	xor	$10,$14
    557 	xor	$11,$15
    558 
    559 	jr	$31
    560 .end	_mips_AES_decrypt
    561 
    562 .align	5
    563 .globl	AES_decrypt
    564 .ent	AES_decrypt
    565 AES_decrypt:
    566 	.frame	$29,64,$31
    567 	.mask	3237937152,-4
    568 	.set	noreorder
    569 	.cpload	$25
    570 	sub $29,64
    571 	sw	$31,64-1*4($29)
    572 	sw	$30,64-2*4($29)
    573 	sw	$23,64-3*4($29)
    574 	sw	$22,64-4*4($29)
    575 	sw	$21,64-5*4($29)
    576 	sw	$20,64-6*4($29)
    577 	sw	$19,64-7*4($29)
    578 	sw	$18,64-8*4($29)
    579 	sw	$17,64-9*4($29)
    580 	sw	$16,64-10*4($29)
    581 	.set	reorder
    582 	la	$7,AES_Td		# PIC-ified 'load address'
    583 
    584 	lwl	$8,0+3($4)
    585 	lwl	$9,4+3($4)
    586 	lwl	$10,8+3($4)
    587 	lwl	$11,12+3($4)
    588 	lwr	$8,0+0($4)
    589 	lwr	$9,4+0($4)
    590 	lwr	$10,8+0($4)
    591 	lwr	$11,12+0($4)
    592 
    593 	bal	_mips_AES_decrypt
    594 
    595 	swr	$8,0+0($5)
    596 	swr	$9,4+0($5)
    597 	swr	$10,8+0($5)
    598 	swr	$11,12+0($5)
    599 	swl	$8,0+3($5)
    600 	swl	$9,4+3($5)
    601 	swl	$10,8+3($5)
    602 	swl	$11,12+3($5)
    603 
    604 	.set	noreorder
    605 	lw	$31,64-1*4($29)
    606 	lw	$30,64-2*4($29)
    607 	lw	$23,64-3*4($29)
    608 	lw	$22,64-4*4($29)
    609 	lw	$21,64-5*4($29)
    610 	lw	$20,64-6*4($29)
    611 	lw	$19,64-7*4($29)
    612 	lw	$18,64-8*4($29)
    613 	lw	$17,64-9*4($29)
    614 	lw	$16,64-10*4($29)
    615 	jr	$31
    616 	add $29,64
    617 .end	AES_decrypt
    618 .align	5
    619 .ent	_mips_AES_set_encrypt_key
    620 _mips_AES_set_encrypt_key:
    621 	.frame	$29,0,$31
    622 	.set	noreorder
    623 	beqz	$4,.Lekey_done
    624 	li	$2,-1
    625 	beqz	$6,.Lekey_done
    626 	add $3,$7,1024+256
    627 
    628 	.set	reorder
    629 	lwl	$8,0+3($4)	# load 128 bits
    630 	lwl	$9,4+3($4)
    631 	lwl	$10,8+3($4)
    632 	lwl	$11,12+3($4)
    633 	li	$1,128
    634 	lwr	$8,0+0($4)
    635 	lwr	$9,4+0($4)
    636 	lwr	$10,8+0($4)
    637 	lwr	$11,12+0($4)
    638 	.set	noreorder
    639 	beq	$5,$1,.L128bits
    640 	li	$30,10
    641 
    642 	.set	reorder
    643 	lwl	$12,16+3($4)	# load 192 bits
    644 	lwl	$13,20+3($4)
    645 	li	$1,192
    646 	lwr	$12,16+0($4)
    647 	lwr	$13,20+0($4)
    648 	.set	noreorder
    649 	beq	$5,$1,.L192bits
    650 	li	$30,8
    651 
    652 	.set	reorder
    653 	lwl	$14,24+3($4)	# load 256 bits
    654 	lwl	$15,28+3($4)
    655 	li	$1,256
    656 	lwr	$14,24+0($4)
    657 	lwr	$15,28+0($4)
    658 	.set	noreorder
    659 	beq	$5,$1,.L256bits
    660 	li	$30,7
    661 
    662 	b	.Lekey_done
    663 	li	$2,-2
    664 
    665 .align	4
    666 .L128bits:
    667 	.set	reorder
    668 	srl	$1,$11,16
    669 	srl	$2,$11,8
    670 	and	$1,0xff
    671 	and	$2,0xff
    672 	and	$24,$11,0xff
    673 	srl	$25,$11,24
    674 	add $1,$7
    675 	add $2,$7
    676 	add $24,$7
    677 	add $25,$7
    678 	lbu	$1,1024($1)
    679 	lbu	$2,1024($2)
    680 	lbu	$24,1024($24)
    681 	lbu	$25,1024($25)
    682 
    683 	sw	$8,0($6)
    684 	sw	$9,4($6)
    685 	sw	$10,8($6)
    686 	sw	$11,12($6)
    687 	sub	$30,1
    688 	add $6,16
    689 
    690 	sll	$1,$1,8
    691 	#sll	$2,$2,0
    692 	sll	$24,$24,24
    693 	sll	$25,$25,16
    694 
    695 	xor	$8,$1
    696 	lw	$1,0($3)
    697 	xor	$8,$2
    698 	xor	$8,$24
    699 	xor	$8,$25
    700 	xor	$8,$1
    701 
    702 	xor	$9,$8
    703 	xor	$10,$9
    704 	xor	$11,$10
    705 
    706 	.set	noreorder
    707 	bnez	$30,.L128bits
    708 	add $3,4
    709 
    710 	sw	$8,0($6)
    711 	sw	$9,4($6)
    712 	sw	$10,8($6)
    713 	li	$30,10
    714 	sw	$11,12($6)
    715 	li	$2,0
    716 	sw	$30,80($6)
    717 	b	.Lekey_done
    718 	sub $6,10*16
    719 
    720 .align	4
    721 .L192bits:
    722 	.set	reorder
    723 	srl	$1,$13,16
    724 	srl	$2,$13,8
    725 	and	$1,0xff
    726 	and	$2,0xff
    727 	and	$24,$13,0xff
    728 	srl	$25,$13,24
    729 	add $1,$7
    730 	add $2,$7
    731 	add $24,$7
    732 	add $25,$7
    733 	lbu	$1,1024($1)
    734 	lbu	$2,1024($2)
    735 	lbu	$24,1024($24)
    736 	lbu	$25,1024($25)
    737 
    738 	sw	$8,0($6)
    739 	sw	$9,4($6)
    740 	sw	$10,8($6)
    741 	sw	$11,12($6)
    742 	sw	$12,16($6)
    743 	sw	$13,20($6)
    744 	sub	$30,1
    745 	add $6,24
    746 
    747 	sll	$1,$1,8
    748 	#sll	$2,$2,0
    749 	sll	$24,$24,24
    750 	sll	$25,$25,16
    751 
    752 	xor	$8,$1
    753 	lw	$1,0($3)
    754 	xor	$8,$2
    755 	xor	$8,$24
    756 	xor	$8,$25
    757 	xor	$8,$1
    758 
    759 	xor	$9,$8
    760 	xor	$10,$9
    761 	xor	$11,$10
    762 	xor	$12,$11
    763 	xor	$13,$12
    764 
    765 	.set	noreorder
    766 	bnez	$30,.L192bits
    767 	add $3,4
    768 
    769 	sw	$8,0($6)
    770 	sw	$9,4($6)
    771 	sw	$10,8($6)
    772 	li	$30,12
    773 	sw	$11,12($6)
    774 	li	$2,0
    775 	sw	$30,48($6)
    776 	b	.Lekey_done
    777 	sub $6,12*16
    778 
    779 .align	4
    780 .L256bits:
    781 	.set	reorder
    782 	srl	$1,$15,16
    783 	srl	$2,$15,8
    784 	and	$1,0xff
    785 	and	$2,0xff
    786 	and	$24,$15,0xff
    787 	srl	$25,$15,24
    788 	add $1,$7
    789 	add $2,$7
    790 	add $24,$7
    791 	add $25,$7
    792 	lbu	$1,1024($1)
    793 	lbu	$2,1024($2)
    794 	lbu	$24,1024($24)
    795 	lbu	$25,1024($25)
    796 
    797 	sw	$8,0($6)
    798 	sw	$9,4($6)
    799 	sw	$10,8($6)
    800 	sw	$11,12($6)
    801 	sw	$12,16($6)
    802 	sw	$13,20($6)
    803 	sw	$14,24($6)
    804 	sw	$15,28($6)
    805 	sub	$30,1
    806 
    807 	sll	$1,$1,8
    808 	#sll	$2,$2,0
    809 	sll	$24,$24,24
    810 	sll	$25,$25,16
    811 
    812 	xor	$8,$1
    813 	lw	$1,0($3)
    814 	xor	$8,$2
    815 	xor	$8,$24
    816 	xor	$8,$25
    817 	xor	$8,$1
    818 
    819 	xor	$9,$8
    820 	xor	$10,$9
    821 	xor	$11,$10
    822 	beqz	$30,.L256bits_done
    823 
    824 	srl	$1,$11,24
    825 	srl	$2,$11,16
    826 	srl	$24,$11,8
    827 	and	$25,$11,0xff
    828 	and	$2,0xff
    829 	and	$24,0xff
    830 	add $1,$7
    831 	add $2,$7
    832 	add $24,$7
    833 	add $25,$7
    834 	lbu	$1,1024($1)
    835 	lbu	$2,1024($2)
    836 	lbu	$24,1024($24)
    837 	lbu	$25,1024($25)
    838 	sll	$1,24
    839 	sll	$2,16
    840 	sll	$24,8
    841 
    842 	xor	$12,$1
    843 	xor	$12,$2
    844 	xor	$12,$24
    845 	xor	$12,$25
    846 
    847 	xor	$13,$12
    848 	xor	$14,$13
    849 	xor	$15,$14
    850 
    851 	add $6,32
    852 	.set	noreorder
    853 	b	.L256bits
    854 	add $3,4
    855 
    856 .L256bits_done:
    857 	sw	$8,32($6)
    858 	sw	$9,36($6)
    859 	sw	$10,40($6)
    860 	li	$30,14
    861 	sw	$11,44($6)
    862 	li	$2,0
    863 	sw	$30,48($6)
    864 	sub $6,12*16
    865 
    866 .Lekey_done:
    867 	jr	$31
    868 	nop
    869 .end	_mips_AES_set_encrypt_key
    870 
    871 .globl	private_AES_set_encrypt_key
    872 .ent	private_AES_set_encrypt_key
    873 private_AES_set_encrypt_key:
    874 	.frame	$29,32,$31
    875 	.mask	3221225472,-4
    876 	.set	noreorder
    877 	.cpload	$25
    878 	sub $29,32
    879 	sw	$31,32-1*4($29)
    880 	sw	$30,32-2*4($29)
    881 	.set	reorder
    882 	la	$7,AES_Te		# PIC-ified 'load address'
    883 
    884 	bal	_mips_AES_set_encrypt_key
    885 
    886 	.set	noreorder
    887 	move	$4,$2
    888 	lw	$31,32-1*4($29)
    889 	lw	$30,32-2*4($29)
    890 	jr	$31
    891 	add $29,32
    892 .end	private_AES_set_encrypt_key
    893 .align	5
    894 .globl	private_AES_set_decrypt_key
    895 .ent	private_AES_set_decrypt_key
    896 private_AES_set_decrypt_key:
    897 	.frame	$29,32,$31
    898 	.mask	3221225472,-4
    899 	.set	noreorder
    900 	.cpload	$25
    901 	sub $29,32
    902 	sw	$31,32-1*4($29)
    903 	sw	$30,32-2*4($29)
    904 	.set	reorder
    905 	la	$7,AES_Te		# PIC-ified 'load address'
    906 
    907 	bal	_mips_AES_set_encrypt_key
    908 
    909 	bltz	$2,.Ldkey_done
    910 
    911 	sll	$1,$30,4
    912 	add $4,$6,0
    913 	add $5,$6,$1
    914 .align	4
    915 .Lswap:
    916 	lw	$8,0($4)
    917 	lw	$9,4($4)
    918 	lw	$10,8($4)
    919 	lw	$11,12($4)
    920 	lw	$12,0($5)
    921 	lw	$13,4($5)
    922 	lw	$14,8($5)
    923 	lw	$15,12($5)
    924 	sw	$8,0($5)
    925 	sw	$9,4($5)
    926 	sw	$10,8($5)
    927 	sw	$11,12($5)
    928 	add $4,16
    929 	sub $5,16
    930 	sw	$12,-16($4)
    931 	sw	$13,-12($4)
    932 	sw	$14,-8($4)
    933 	sw	$15,-4($4)
    934 	bne	$4,$5,.Lswap
    935 
    936 	lw	$8,16($6)		# modulo-scheduled
    937 	lui	$2,0x8080
    938 	sub	$30,1
    939 	or	$2,0x8080
    940 	sll	$30,2
    941 	add $6,16
    942 	lui	$25,0x1b1b
    943 	nor	$24,$0,$2
    944 	or	$25,0x1b1b
    945 .align	4
    946 .Lmix:
    947 	and	$1,$8,$2
    948 	and	$9,$8,$24
    949 	srl	$10,$1,7
    950 	addu	$9,$9		# tp2<<1
    951 	subu	$1,$10
    952 	and	$1,$25
    953 	xor	$9,$1
    954 
    955 	and	$1,$9,$2
    956 	and	$10,$9,$24
    957 	srl	$11,$1,7
    958 	addu	$10,$10		# tp4<<1
    959 	subu	$1,$11
    960 	and	$1,$25
    961 	xor	$10,$1
    962 
    963 	and	$1,$10,$2
    964 	and	$11,$10,$24
    965 	srl	$12,$1,7
    966 	addu	$11,$11		# tp8<<1
    967 	subu	$1,$12
    968 	and	$1,$25
    969 	xor	$11,$1
    970 
    971 	xor	$12,$11,$8
    972 	xor	$15,$11,$10
    973 	xor	$13,$12,$9
    974 	xor	$14,$12,$10
    975 
    976 	sll	$8,$14,16
    977 	 xor	$15,$9
    978 	srl	$9,$14,16
    979 	xor	$15,$8
    980 	sll	$8,$12,8
    981 	xor	$15,$9
    982 	srl	$9,$12,24
    983 	xor	$15,$8
    984 	sll	$8,$13,24
    985 	xor	$15,$9
    986 	srl	$9,$13,8
    987 	xor	$15,$8
    988 	lw	$8,4($6)		# modulo-scheduled
    989 	xor	$15,$9
    990 	sub	$30,1
    991 	sw	$15,0($6)
    992 	add $6,4
    993 	bnez	$30,.Lmix
    994 
    995 	li	$2,0
    996 .Ldkey_done:
    997 	.set	noreorder
    998 	move	$4,$2
    999 	lw	$31,32-1*4($29)
   1000 	lw	$30,32-2*4($29)
   1001 	jr	$31
   1002 	add $29,32
   1003 .end	private_AES_set_decrypt_key
   1004 .rdata
   1005 .align	6
   1006 AES_Te:
   1007 .byte	0xc6,0x63,0x63,0xa5,	0xf8,0x7c,0x7c,0x84	# Te0
   1008 .byte	0xee,0x77,0x77,0x99,	0xf6,0x7b,0x7b,0x8d
   1009 .byte	0xff,0xf2,0xf2,0x0d,	0xd6,0x6b,0x6b,0xbd
   1010 .byte	0xde,0x6f,0x6f,0xb1,	0x91,0xc5,0xc5,0x54
   1011 .byte	0x60,0x30,0x30,0x50,	0x02,0x01,0x01,0x03
   1012 .byte	0xce,0x67,0x67,0xa9,	0x56,0x2b,0x2b,0x7d
   1013 .byte	0xe7,0xfe,0xfe,0x19,	0xb5,0xd7,0xd7,0x62
   1014 .byte	0x4d,0xab,0xab,0xe6,	0xec,0x76,0x76,0x9a
   1015 .byte	0x8f,0xca,0xca,0x45,	0x1f,0x82,0x82,0x9d
   1016 .byte	0x89,0xc9,0xc9,0x40,	0xfa,0x7d,0x7d,0x87
   1017 .byte	0xef,0xfa,0xfa,0x15,	0xb2,0x59,0x59,0xeb
   1018 .byte	0x8e,0x47,0x47,0xc9,	0xfb,0xf0,0xf0,0x0b
   1019 .byte	0x41,0xad,0xad,0xec,	0xb3,0xd4,0xd4,0x67
   1020 .byte	0x5f,0xa2,0xa2,0xfd,	0x45,0xaf,0xaf,0xea
   1021 .byte	0x23,0x9c,0x9c,0xbf,	0x53,0xa4,0xa4,0xf7
   1022 .byte	0xe4,0x72,0x72,0x96,	0x9b,0xc0,0xc0,0x5b
   1023 .byte	0x75,0xb7,0xb7,0xc2,	0xe1,0xfd,0xfd,0x1c
   1024 .byte	0x3d,0x93,0x93,0xae,	0x4c,0x26,0x26,0x6a
   1025 .byte	0x6c,0x36,0x36,0x5a,	0x7e,0x3f,0x3f,0x41
   1026 .byte	0xf5,0xf7,0xf7,0x02,	0x83,0xcc,0xcc,0x4f
   1027 .byte	0x68,0x34,0x34,0x5c,	0x51,0xa5,0xa5,0xf4
   1028 .byte	0xd1,0xe5,0xe5,0x34,	0xf9,0xf1,0xf1,0x08
   1029 .byte	0xe2,0x71,0x71,0x93,	0xab,0xd8,0xd8,0x73
   1030 .byte	0x62,0x31,0x31,0x53,	0x2a,0x15,0x15,0x3f
   1031 .byte	0x08,0x04,0x04,0x0c,	0x95,0xc7,0xc7,0x52
   1032 .byte	0x46,0x23,0x23,0x65,	0x9d,0xc3,0xc3,0x5e
   1033 .byte	0x30,0x18,0x18,0x28,	0x37,0x96,0x96,0xa1
   1034 .byte	0x0a,0x05,0x05,0x0f,	0x2f,0x9a,0x9a,0xb5
   1035 .byte	0x0e,0x07,0x07,0x09,	0x24,0x12,0x12,0x36
   1036 .byte	0x1b,0x80,0x80,0x9b,	0xdf,0xe2,0xe2,0x3d
   1037 .byte	0xcd,0xeb,0xeb,0x26,	0x4e,0x27,0x27,0x69
   1038 .byte	0x7f,0xb2,0xb2,0xcd,	0xea,0x75,0x75,0x9f
   1039 .byte	0x12,0x09,0x09,0x1b,	0x1d,0x83,0x83,0x9e
   1040 .byte	0x58,0x2c,0x2c,0x74,	0x34,0x1a,0x1a,0x2e
   1041 .byte	0x36,0x1b,0x1b,0x2d,	0xdc,0x6e,0x6e,0xb2
   1042 .byte	0xb4,0x5a,0x5a,0xee,	0x5b,0xa0,0xa0,0xfb
   1043 .byte	0xa4,0x52,0x52,0xf6,	0x76,0x3b,0x3b,0x4d
   1044 .byte	0xb7,0xd6,0xd6,0x61,	0x7d,0xb3,0xb3,0xce
   1045 .byte	0x52,0x29,0x29,0x7b,	0xdd,0xe3,0xe3,0x3e
   1046 .byte	0x5e,0x2f,0x2f,0x71,	0x13,0x84,0x84,0x97
   1047 .byte	0xa6,0x53,0x53,0xf5,	0xb9,0xd1,0xd1,0x68
   1048 .byte	0x00,0x00,0x00,0x00,	0xc1,0xed,0xed,0x2c
   1049 .byte	0x40,0x20,0x20,0x60,	0xe3,0xfc,0xfc,0x1f
   1050 .byte	0x79,0xb1,0xb1,0xc8,	0xb6,0x5b,0x5b,0xed
   1051 .byte	0xd4,0x6a,0x6a,0xbe,	0x8d,0xcb,0xcb,0x46
   1052 .byte	0x67,0xbe,0xbe,0xd9,	0x72,0x39,0x39,0x4b
   1053 .byte	0x94,0x4a,0x4a,0xde,	0x98,0x4c,0x4c,0xd4
   1054 .byte	0xb0,0x58,0x58,0xe8,	0x85,0xcf,0xcf,0x4a
   1055 .byte	0xbb,0xd0,0xd0,0x6b,	0xc5,0xef,0xef,0x2a
   1056 .byte	0x4f,0xaa,0xaa,0xe5,	0xed,0xfb,0xfb,0x16
   1057 .byte	0x86,0x43,0x43,0xc5,	0x9a,0x4d,0x4d,0xd7
   1058 .byte	0x66,0x33,0x33,0x55,	0x11,0x85,0x85,0x94
   1059 .byte	0x8a,0x45,0x45,0xcf,	0xe9,0xf9,0xf9,0x10
   1060 .byte	0x04,0x02,0x02,0x06,	0xfe,0x7f,0x7f,0x81
   1061 .byte	0xa0,0x50,0x50,0xf0,	0x78,0x3c,0x3c,0x44
   1062 .byte	0x25,0x9f,0x9f,0xba,	0x4b,0xa8,0xa8,0xe3
   1063 .byte	0xa2,0x51,0x51,0xf3,	0x5d,0xa3,0xa3,0xfe
   1064 .byte	0x80,0x40,0x40,0xc0,	0x05,0x8f,0x8f,0x8a
   1065 .byte	0x3f,0x92,0x92,0xad,	0x21,0x9d,0x9d,0xbc
   1066 .byte	0x70,0x38,0x38,0x48,	0xf1,0xf5,0xf5,0x04
   1067 .byte	0x63,0xbc,0xbc,0xdf,	0x77,0xb6,0xb6,0xc1
   1068 .byte	0xaf,0xda,0xda,0x75,	0x42,0x21,0x21,0x63
   1069 .byte	0x20,0x10,0x10,0x30,	0xe5,0xff,0xff,0x1a
   1070 .byte	0xfd,0xf3,0xf3,0x0e,	0xbf,0xd2,0xd2,0x6d
   1071 .byte	0x81,0xcd,0xcd,0x4c,	0x18,0x0c,0x0c,0x14
   1072 .byte	0x26,0x13,0x13,0x35,	0xc3,0xec,0xec,0x2f
   1073 .byte	0xbe,0x5f,0x5f,0xe1,	0x35,0x97,0x97,0xa2
   1074 .byte	0x88,0x44,0x44,0xcc,	0x2e,0x17,0x17,0x39
   1075 .byte	0x93,0xc4,0xc4,0x57,	0x55,0xa7,0xa7,0xf2
   1076 .byte	0xfc,0x7e,0x7e,0x82,	0x7a,0x3d,0x3d,0x47
   1077 .byte	0xc8,0x64,0x64,0xac,	0xba,0x5d,0x5d,0xe7
   1078 .byte	0x32,0x19,0x19,0x2b,	0xe6,0x73,0x73,0x95
   1079 .byte	0xc0,0x60,0x60,0xa0,	0x19,0x81,0x81,0x98
   1080 .byte	0x9e,0x4f,0x4f,0xd1,	0xa3,0xdc,0xdc,0x7f
   1081 .byte	0x44,0x22,0x22,0x66,	0x54,0x2a,0x2a,0x7e
   1082 .byte	0x3b,0x90,0x90,0xab,	0x0b,0x88,0x88,0x83
   1083 .byte	0x8c,0x46,0x46,0xca,	0xc7,0xee,0xee,0x29
   1084 .byte	0x6b,0xb8,0xb8,0xd3,	0x28,0x14,0x14,0x3c
   1085 .byte	0xa7,0xde,0xde,0x79,	0xbc,0x5e,0x5e,0xe2
   1086 .byte	0x16,0x0b,0x0b,0x1d,	0xad,0xdb,0xdb,0x76
   1087 .byte	0xdb,0xe0,0xe0,0x3b,	0x64,0x32,0x32,0x56
   1088 .byte	0x74,0x3a,0x3a,0x4e,	0x14,0x0a,0x0a,0x1e
   1089 .byte	0x92,0x49,0x49,0xdb,	0x0c,0x06,0x06,0x0a
   1090 .byte	0x48,0x24,0x24,0x6c,	0xb8,0x5c,0x5c,0xe4
   1091 .byte	0x9f,0xc2,0xc2,0x5d,	0xbd,0xd3,0xd3,0x6e
   1092 .byte	0x43,0xac,0xac,0xef,	0xc4,0x62,0x62,0xa6
   1093 .byte	0x39,0x91,0x91,0xa8,	0x31,0x95,0x95,0xa4
   1094 .byte	0xd3,0xe4,0xe4,0x37,	0xf2,0x79,0x79,0x8b
   1095 .byte	0xd5,0xe7,0xe7,0x32,	0x8b,0xc8,0xc8,0x43
   1096 .byte	0x6e,0x37,0x37,0x59,	0xda,0x6d,0x6d,0xb7
   1097 .byte	0x01,0x8d,0x8d,0x8c,	0xb1,0xd5,0xd5,0x64
   1098 .byte	0x9c,0x4e,0x4e,0xd2,	0x49,0xa9,0xa9,0xe0
   1099 .byte	0xd8,0x6c,0x6c,0xb4,	0xac,0x56,0x56,0xfa
   1100 .byte	0xf3,0xf4,0xf4,0x07,	0xcf,0xea,0xea,0x25
   1101 .byte	0xca,0x65,0x65,0xaf,	0xf4,0x7a,0x7a,0x8e
   1102 .byte	0x47,0xae,0xae,0xe9,	0x10,0x08,0x08,0x18
   1103 .byte	0x6f,0xba,0xba,0xd5,	0xf0,0x78,0x78,0x88
   1104 .byte	0x4a,0x25,0x25,0x6f,	0x5c,0x2e,0x2e,0x72
   1105 .byte	0x38,0x1c,0x1c,0x24,	0x57,0xa6,0xa6,0xf1
   1106 .byte	0x73,0xb4,0xb4,0xc7,	0x97,0xc6,0xc6,0x51
   1107 .byte	0xcb,0xe8,0xe8,0x23,	0xa1,0xdd,0xdd,0x7c
   1108 .byte	0xe8,0x74,0x74,0x9c,	0x3e,0x1f,0x1f,0x21
   1109 .byte	0x96,0x4b,0x4b,0xdd,	0x61,0xbd,0xbd,0xdc
   1110 .byte	0x0d,0x8b,0x8b,0x86,	0x0f,0x8a,0x8a,0x85
   1111 .byte	0xe0,0x70,0x70,0x90,	0x7c,0x3e,0x3e,0x42
   1112 .byte	0x71,0xb5,0xb5,0xc4,	0xcc,0x66,0x66,0xaa
   1113 .byte	0x90,0x48,0x48,0xd8,	0x06,0x03,0x03,0x05
   1114 .byte	0xf7,0xf6,0xf6,0x01,	0x1c,0x0e,0x0e,0x12
   1115 .byte	0xc2,0x61,0x61,0xa3,	0x6a,0x35,0x35,0x5f
   1116 .byte	0xae,0x57,0x57,0xf9,	0x69,0xb9,0xb9,0xd0
   1117 .byte	0x17,0x86,0x86,0x91,	0x99,0xc1,0xc1,0x58
   1118 .byte	0x3a,0x1d,0x1d,0x27,	0x27,0x9e,0x9e,0xb9
   1119 .byte	0xd9,0xe1,0xe1,0x38,	0xeb,0xf8,0xf8,0x13
   1120 .byte	0x2b,0x98,0x98,0xb3,	0x22,0x11,0x11,0x33
   1121 .byte	0xd2,0x69,0x69,0xbb,	0xa9,0xd9,0xd9,0x70
   1122 .byte	0x07,0x8e,0x8e,0x89,	0x33,0x94,0x94,0xa7
   1123 .byte	0x2d,0x9b,0x9b,0xb6,	0x3c,0x1e,0x1e,0x22
   1124 .byte	0x15,0x87,0x87,0x92,	0xc9,0xe9,0xe9,0x20
   1125 .byte	0x87,0xce,0xce,0x49,	0xaa,0x55,0x55,0xff
   1126 .byte	0x50,0x28,0x28,0x78,	0xa5,0xdf,0xdf,0x7a
   1127 .byte	0x03,0x8c,0x8c,0x8f,	0x59,0xa1,0xa1,0xf8
   1128 .byte	0x09,0x89,0x89,0x80,	0x1a,0x0d,0x0d,0x17
   1129 .byte	0x65,0xbf,0xbf,0xda,	0xd7,0xe6,0xe6,0x31
   1130 .byte	0x84,0x42,0x42,0xc6,	0xd0,0x68,0x68,0xb8
   1131 .byte	0x82,0x41,0x41,0xc3,	0x29,0x99,0x99,0xb0
   1132 .byte	0x5a,0x2d,0x2d,0x77,	0x1e,0x0f,0x0f,0x11
   1133 .byte	0x7b,0xb0,0xb0,0xcb,	0xa8,0x54,0x54,0xfc
   1134 .byte	0x6d,0xbb,0xbb,0xd6,	0x2c,0x16,0x16,0x3a
   1135 
   1136 .byte	0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5	# Te4
   1137 .byte	0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76
   1138 .byte	0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0
   1139 .byte	0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0
   1140 .byte	0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc
   1141 .byte	0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15
   1142 .byte	0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a
   1143 .byte	0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75
   1144 .byte	0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0
   1145 .byte	0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84
   1146 .byte	0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b
   1147 .byte	0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf
   1148 .byte	0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85
   1149 .byte	0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8
   1150 .byte	0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5
   1151 .byte	0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2
   1152 .byte	0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17
   1153 .byte	0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73
   1154 .byte	0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88
   1155 .byte	0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb
   1156 .byte	0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c
   1157 .byte	0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79
   1158 .byte	0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9
   1159 .byte	0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08
   1160 .byte	0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6
   1161 .byte	0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a
   1162 .byte	0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e
   1163 .byte	0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e
   1164 .byte	0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94
   1165 .byte	0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf
   1166 .byte	0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68
   1167 .byte	0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
   1168 
   1169 .byte	0x01,0x00,0x00,0x00,	0x02,0x00,0x00,0x00	# rcon
   1170 .byte	0x04,0x00,0x00,0x00,	0x08,0x00,0x00,0x00
   1171 .byte	0x10,0x00,0x00,0x00,	0x20,0x00,0x00,0x00
   1172 .byte	0x40,0x00,0x00,0x00,	0x80,0x00,0x00,0x00
   1173 .byte	0x1B,0x00,0x00,0x00,	0x36,0x00,0x00,0x00
   1174 
   1175 .align	6
   1176 AES_Td:
   1177 .byte	0x51,0xf4,0xa7,0x50,	0x7e,0x41,0x65,0x53	# Td0
   1178 .byte	0x1a,0x17,0xa4,0xc3,	0x3a,0x27,0x5e,0x96
   1179 .byte	0x3b,0xab,0x6b,0xcb,	0x1f,0x9d,0x45,0xf1
   1180 .byte	0xac,0xfa,0x58,0xab,	0x4b,0xe3,0x03,0x93
   1181 .byte	0x20,0x30,0xfa,0x55,	0xad,0x76,0x6d,0xf6
   1182 .byte	0x88,0xcc,0x76,0x91,	0xf5,0x02,0x4c,0x25
   1183 .byte	0x4f,0xe5,0xd7,0xfc,	0xc5,0x2a,0xcb,0xd7
   1184 .byte	0x26,0x35,0x44,0x80,	0xb5,0x62,0xa3,0x8f
   1185 .byte	0xde,0xb1,0x5a,0x49,	0x25,0xba,0x1b,0x67
   1186 .byte	0x45,0xea,0x0e,0x98,	0x5d,0xfe,0xc0,0xe1
   1187 .byte	0xc3,0x2f,0x75,0x02,	0x81,0x4c,0xf0,0x12
   1188 .byte	0x8d,0x46,0x97,0xa3,	0x6b,0xd3,0xf9,0xc6
   1189 .byte	0x03,0x8f,0x5f,0xe7,	0x15,0x92,0x9c,0x95
   1190 .byte	0xbf,0x6d,0x7a,0xeb,	0x95,0x52,0x59,0xda
   1191 .byte	0xd4,0xbe,0x83,0x2d,	0x58,0x74,0x21,0xd3
   1192 .byte	0x49,0xe0,0x69,0x29,	0x8e,0xc9,0xc8,0x44
   1193 .byte	0x75,0xc2,0x89,0x6a,	0xf4,0x8e,0x79,0x78
   1194 .byte	0x99,0x58,0x3e,0x6b,	0x27,0xb9,0x71,0xdd
   1195 .byte	0xbe,0xe1,0x4f,0xb6,	0xf0,0x88,0xad,0x17
   1196 .byte	0xc9,0x20,0xac,0x66,	0x7d,0xce,0x3a,0xb4
   1197 .byte	0x63,0xdf,0x4a,0x18,	0xe5,0x1a,0x31,0x82
   1198 .byte	0x97,0x51,0x33,0x60,	0x62,0x53,0x7f,0x45
   1199 .byte	0xb1,0x64,0x77,0xe0,	0xbb,0x6b,0xae,0x84
   1200 .byte	0xfe,0x81,0xa0,0x1c,	0xf9,0x08,0x2b,0x94
   1201 .byte	0x70,0x48,0x68,0x58,	0x8f,0x45,0xfd,0x19
   1202 .byte	0x94,0xde,0x6c,0x87,	0x52,0x7b,0xf8,0xb7
   1203 .byte	0xab,0x73,0xd3,0x23,	0x72,0x4b,0x02,0xe2
   1204 .byte	0xe3,0x1f,0x8f,0x57,	0x66,0x55,0xab,0x2a
   1205 .byte	0xb2,0xeb,0x28,0x07,	0x2f,0xb5,0xc2,0x03
   1206 .byte	0x86,0xc5,0x7b,0x9a,	0xd3,0x37,0x08,0xa5
   1207 .byte	0x30,0x28,0x87,0xf2,	0x23,0xbf,0xa5,0xb2
   1208 .byte	0x02,0x03,0x6a,0xba,	0xed,0x16,0x82,0x5c
   1209 .byte	0x8a,0xcf,0x1c,0x2b,	0xa7,0x79,0xb4,0x92
   1210 .byte	0xf3,0x07,0xf2,0xf0,	0x4e,0x69,0xe2,0xa1
   1211 .byte	0x65,0xda,0xf4,0xcd,	0x06,0x05,0xbe,0xd5
   1212 .byte	0xd1,0x34,0x62,0x1f,	0xc4,0xa6,0xfe,0x8a
   1213 .byte	0x34,0x2e,0x53,0x9d,	0xa2,0xf3,0x55,0xa0
   1214 .byte	0x05,0x8a,0xe1,0x32,	0xa4,0xf6,0xeb,0x75
   1215 .byte	0x0b,0x83,0xec,0x39,	0x40,0x60,0xef,0xaa
   1216 .byte	0x5e,0x71,0x9f,0x06,	0xbd,0x6e,0x10,0x51
   1217 .byte	0x3e,0x21,0x8a,0xf9,	0x96,0xdd,0x06,0x3d
   1218 .byte	0xdd,0x3e,0x05,0xae,	0x4d,0xe6,0xbd,0x46
   1219 .byte	0x91,0x54,0x8d,0xb5,	0x71,0xc4,0x5d,0x05
   1220 .byte	0x04,0x06,0xd4,0x6f,	0x60,0x50,0x15,0xff
   1221 .byte	0x19,0x98,0xfb,0x24,	0xd6,0xbd,0xe9,0x97
   1222 .byte	0x89,0x40,0x43,0xcc,	0x67,0xd9,0x9e,0x77
   1223 .byte	0xb0,0xe8,0x42,0xbd,	0x07,0x89,0x8b,0x88
   1224 .byte	0xe7,0x19,0x5b,0x38,	0x79,0xc8,0xee,0xdb
   1225 .byte	0xa1,0x7c,0x0a,0x47,	0x7c,0x42,0x0f,0xe9
   1226 .byte	0xf8,0x84,0x1e,0xc9,	0x00,0x00,0x00,0x00
   1227 .byte	0x09,0x80,0x86,0x83,	0x32,0x2b,0xed,0x48
   1228 .byte	0x1e,0x11,0x70,0xac,	0x6c,0x5a,0x72,0x4e
   1229 .byte	0xfd,0x0e,0xff,0xfb,	0x0f,0x85,0x38,0x56
   1230 .byte	0x3d,0xae,0xd5,0x1e,	0x36,0x2d,0x39,0x27
   1231 .byte	0x0a,0x0f,0xd9,0x64,	0x68,0x5c,0xa6,0x21
   1232 .byte	0x9b,0x5b,0x54,0xd1,	0x24,0x36,0x2e,0x3a
   1233 .byte	0x0c,0x0a,0x67,0xb1,	0x93,0x57,0xe7,0x0f
   1234 .byte	0xb4,0xee,0x96,0xd2,	0x1b,0x9b,0x91,0x9e
   1235 .byte	0x80,0xc0,0xc5,0x4f,	0x61,0xdc,0x20,0xa2
   1236 .byte	0x5a,0x77,0x4b,0x69,	0x1c,0x12,0x1a,0x16
   1237 .byte	0xe2,0x93,0xba,0x0a,	0xc0,0xa0,0x2a,0xe5
   1238 .byte	0x3c,0x22,0xe0,0x43,	0x12,0x1b,0x17,0x1d
   1239 .byte	0x0e,0x09,0x0d,0x0b,	0xf2,0x8b,0xc7,0xad
   1240 .byte	0x2d,0xb6,0xa8,0xb9,	0x14,0x1e,0xa9,0xc8
   1241 .byte	0x57,0xf1,0x19,0x85,	0xaf,0x75,0x07,0x4c
   1242 .byte	0xee,0x99,0xdd,0xbb,	0xa3,0x7f,0x60,0xfd
   1243 .byte	0xf7,0x01,0x26,0x9f,	0x5c,0x72,0xf5,0xbc
   1244 .byte	0x44,0x66,0x3b,0xc5,	0x5b,0xfb,0x7e,0x34
   1245 .byte	0x8b,0x43,0x29,0x76,	0xcb,0x23,0xc6,0xdc
   1246 .byte	0xb6,0xed,0xfc,0x68,	0xb8,0xe4,0xf1,0x63
   1247 .byte	0xd7,0x31,0xdc,0xca,	0x42,0x63,0x85,0x10
   1248 .byte	0x13,0x97,0x22,0x40,	0x84,0xc6,0x11,0x20
   1249 .byte	0x85,0x4a,0x24,0x7d,	0xd2,0xbb,0x3d,0xf8
   1250 .byte	0xae,0xf9,0x32,0x11,	0xc7,0x29,0xa1,0x6d
   1251 .byte	0x1d,0x9e,0x2f,0x4b,	0xdc,0xb2,0x30,0xf3
   1252 .byte	0x0d,0x86,0x52,0xec,	0x77,0xc1,0xe3,0xd0
   1253 .byte	0x2b,0xb3,0x16,0x6c,	0xa9,0x70,0xb9,0x99
   1254 .byte	0x11,0x94,0x48,0xfa,	0x47,0xe9,0x64,0x22
   1255 .byte	0xa8,0xfc,0x8c,0xc4,	0xa0,0xf0,0x3f,0x1a
   1256 .byte	0x56,0x7d,0x2c,0xd8,	0x22,0x33,0x90,0xef
   1257 .byte	0x87,0x49,0x4e,0xc7,	0xd9,0x38,0xd1,0xc1
   1258 .byte	0x8c,0xca,0xa2,0xfe,	0x98,0xd4,0x0b,0x36
   1259 .byte	0xa6,0xf5,0x81,0xcf,	0xa5,0x7a,0xde,0x28
   1260 .byte	0xda,0xb7,0x8e,0x26,	0x3f,0xad,0xbf,0xa4
   1261 .byte	0x2c,0x3a,0x9d,0xe4,	0x50,0x78,0x92,0x0d
   1262 .byte	0x6a,0x5f,0xcc,0x9b,	0x54,0x7e,0x46,0x62
   1263 .byte	0xf6,0x8d,0x13,0xc2,	0x90,0xd8,0xb8,0xe8
   1264 .byte	0x2e,0x39,0xf7,0x5e,	0x82,0xc3,0xaf,0xf5
   1265 .byte	0x9f,0x5d,0x80,0xbe,	0x69,0xd0,0x93,0x7c
   1266 .byte	0x6f,0xd5,0x2d,0xa9,	0xcf,0x25,0x12,0xb3
   1267 .byte	0xc8,0xac,0x99,0x3b,	0x10,0x18,0x7d,0xa7
   1268 .byte	0xe8,0x9c,0x63,0x6e,	0xdb,0x3b,0xbb,0x7b
   1269 .byte	0xcd,0x26,0x78,0x09,	0x6e,0x59,0x18,0xf4
   1270 .byte	0xec,0x9a,0xb7,0x01,	0x83,0x4f,0x9a,0xa8
   1271 .byte	0xe6,0x95,0x6e,0x65,	0xaa,0xff,0xe6,0x7e
   1272 .byte	0x21,0xbc,0xcf,0x08,	0xef,0x15,0xe8,0xe6
   1273 .byte	0xba,0xe7,0x9b,0xd9,	0x4a,0x6f,0x36,0xce
   1274 .byte	0xea,0x9f,0x09,0xd4,	0x29,0xb0,0x7c,0xd6
   1275 .byte	0x31,0xa4,0xb2,0xaf,	0x2a,0x3f,0x23,0x31
   1276 .byte	0xc6,0xa5,0x94,0x30,	0x35,0xa2,0x66,0xc0
   1277 .byte	0x74,0x4e,0xbc,0x37,	0xfc,0x82,0xca,0xa6
   1278 .byte	0xe0,0x90,0xd0,0xb0,	0x33,0xa7,0xd8,0x15
   1279 .byte	0xf1,0x04,0x98,0x4a,	0x41,0xec,0xda,0xf7
   1280 .byte	0x7f,0xcd,0x50,0x0e,	0x17,0x91,0xf6,0x2f
   1281 .byte	0x76,0x4d,0xd6,0x8d,	0x43,0xef,0xb0,0x4d
   1282 .byte	0xcc,0xaa,0x4d,0x54,	0xe4,0x96,0x04,0xdf
   1283 .byte	0x9e,0xd1,0xb5,0xe3,	0x4c,0x6a,0x88,0x1b
   1284 .byte	0xc1,0x2c,0x1f,0xb8,	0x46,0x65,0x51,0x7f
   1285 .byte	0x9d,0x5e,0xea,0x04,	0x01,0x8c,0x35,0x5d
   1286 .byte	0xfa,0x87,0x74,0x73,	0xfb,0x0b,0x41,0x2e
   1287 .byte	0xb3,0x67,0x1d,0x5a,	0x92,0xdb,0xd2,0x52
   1288 .byte	0xe9,0x10,0x56,0x33,	0x6d,0xd6,0x47,0x13
   1289 .byte	0x9a,0xd7,0x61,0x8c,	0x37,0xa1,0x0c,0x7a
   1290 .byte	0x59,0xf8,0x14,0x8e,	0xeb,0x13,0x3c,0x89
   1291 .byte	0xce,0xa9,0x27,0xee,	0xb7,0x61,0xc9,0x35
   1292 .byte	0xe1,0x1c,0xe5,0xed,	0x7a,0x47,0xb1,0x3c
   1293 .byte	0x9c,0xd2,0xdf,0x59,	0x55,0xf2,0x73,0x3f
   1294 .byte	0x18,0x14,0xce,0x79,	0x73,0xc7,0x37,0xbf
   1295 .byte	0x53,0xf7,0xcd,0xea,	0x5f,0xfd,0xaa,0x5b
   1296 .byte	0xdf,0x3d,0x6f,0x14,	0x78,0x44,0xdb,0x86
   1297 .byte	0xca,0xaf,0xf3,0x81,	0xb9,0x68,0xc4,0x3e
   1298 .byte	0x38,0x24,0x34,0x2c,	0xc2,0xa3,0x40,0x5f
   1299 .byte	0x16,0x1d,0xc3,0x72,	0xbc,0xe2,0x25,0x0c
   1300 .byte	0x28,0x3c,0x49,0x8b,	0xff,0x0d,0x95,0x41
   1301 .byte	0x39,0xa8,0x01,0x71,	0x08,0x0c,0xb3,0xde
   1302 .byte	0xd8,0xb4,0xe4,0x9c,	0x64,0x56,0xc1,0x90
   1303 .byte	0x7b,0xcb,0x84,0x61,	0xd5,0x32,0xb6,0x70
   1304 .byte	0x48,0x6c,0x5c,0x74,	0xd0,0xb8,0x57,0x42
   1305 
   1306 .byte	0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38	# Td4
   1307 .byte	0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb
   1308 .byte	0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87
   1309 .byte	0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb
   1310 .byte	0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d
   1311 .byte	0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e
   1312 .byte	0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2
   1313 .byte	0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25
   1314 .byte	0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16
   1315 .byte	0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92
   1316 .byte	0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda
   1317 .byte	0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84
   1318 .byte	0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a
   1319 .byte	0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06
   1320 .byte	0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02
   1321 .byte	0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b
   1322 .byte	0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea
   1323 .byte	0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73
   1324 .byte	0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85
   1325 .byte	0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e
   1326 .byte	0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89
   1327 .byte	0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b
   1328 .byte	0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20
   1329 .byte	0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4
   1330 .byte	0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31
   1331 .byte	0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f
   1332 .byte	0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d
   1333 .byte	0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef
   1334 .byte	0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0
   1335 .byte	0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61
   1336 .byte	0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26
   1337 .byte	0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
   1338