⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aes-armv4.pl

📁 OpenSSL 0.9.8k 最新版OpenSSL
💻 PL
📖 第 1 页 / 共 2 页
字号:
	ldr	$i1,[$key,#-32]	ldr	$i2,[$key,#-28]	eor	$i1,$i1,$s3			@ rk[10]=rk[4]^rk[9]	eor	$i3,$i2,$i1			@ rk[11]=rk[5]^rk[10]	str	$i1,[$key,#-8]	str	$i3,[$key,#-4]	b	.L192_loop.Lnot192:	ldrb	$i2,[$rounds,#27]	ldrb	$t1,[$rounds,#26]	ldrb	$t2,[$rounds,#25]	ldrb	$t3,[$rounds,#24]	orr	$i2,$i2,$t1,lsl#8	orr	$i2,$i2,$t2,lsl#16	orr	$i2,$i2,$t3,lsl#24	ldrb	$i3,[$rounds,#31]	ldrb	$t1,[$rounds,#30]	ldrb	$t2,[$rounds,#29]	ldrb	$t3,[$rounds,#28]	orr	$i3,$i3,$t1,lsl#8	orr	$i3,$i3,$t2,lsl#16	orr	$i3,$i3,$t3,lsl#24	str	$i2,[$key],#8	str	$i3,[$key,#-4]	mov	$rounds,#14	str	$rounds,[$key,#240-32]	add	$t3,$tbl,#256			@ rcon	mov	lr,#255	mov	$rounds,#7.L256_loop:	and	$t2,lr,$i3,lsr#24	and	$i1,lr,$i3,lsr#16	and	$i2,lr,$i3,lsr#8	and	$i3,lr,$i3	ldrb	$t2,[$tbl,$t2]	ldrb	$i1,[$tbl,$i1]	ldrb	$i2,[$tbl,$i2]	ldrb	$i3,[$tbl,$i3]	ldr	$t1,[$t3],#4			@ rcon[i++]	orr	$t2,$t2,$i1,lsl#24	orr	$t2,$t2,$i2,lsl#16	orr	$t2,$t2,$i3,lsl#8	eor	$i3,$t2,$t1	eor	$s0,$s0,$i3			@ rk[8]=rk[0]^...	eor	$s1,$s1,$s0			@ rk[9]=rk[1]^rk[8]	eor	$s2,$s2,$s1			@ rk[10]=rk[2]^rk[9]	eor	$s3,$s3,$s2			@ rk[11]=rk[3]^rk[10]	str	$s0,[$key],#32	str	$s1,[$key,#-28]	str	$s2,[$key,#-24]	str	$s3,[$key,#-20]	subs	$rounds,$rounds,#1	subeq	r2,$key,#256	beq	.Ldone	and	$t2,lr,$s3	and	$i1,lr,$s3,lsr#8	and	$i2,lr,$s3,lsr#16	and	$i3,lr,$s3,lsr#24	ldrb	$t2,[$tbl,$t2]	ldrb	$i1,[$tbl,$i1]	ldrb	$i2,[$tbl,$i2]	ldrb	$i3,[$tbl,$i3]	orr	$t2,$t2,$i1,lsl#8	orr	$t2,$t2,$i2,lsl#16	orr	$t2,$t2,$i3,lsl#24	ldr	$t1,[$key,#-48]	ldr	$i1,[$key,#-44]	ldr	$i2,[$key,#-40]	ldr	$i3,[$key,#-36]	eor	$t1,$t1,$t2			@ rk[12]=rk[4]^...	eor	$i1,$i1,$t1			@ rk[13]=rk[5]^rk[12]	eor	$i2,$i2,$i1			@ rk[14]=rk[6]^rk[13]	eor	$i3,$i3,$i2			@ rk[15]=rk[7]^rk[14]	str	$t1,[$key,#-16]	str	$i1,[$key,#-12]	str	$i2,[$key,#-8]	str	$i3,[$key,#-4]	b	.L256_loop.Ldone:	mov	r0,#0	ldmia   sp!,{r4-r12,lr}.Labrt:	tst	lr,#1	moveq	pc,lr			@ be binary compatible with V4, yet	bx	lr			@ interoperable with Thumb ISA:-).size	AES_set_encrypt_key,.-AES_set_encrypt_key.global AES_set_decrypt_key.type   AES_set_decrypt_key,%function.align	5AES_set_decrypt_key:	str	lr,[sp,#-4]!            @ push lr	bl	AES_set_encrypt_key	teq	r0,#0	ldrne	lr,[sp],#4              @ pop lr	bne	.Labrt	stmdb   sp!,{r4-r12}	ldr	$rounds,[r2,#240]	@ AES_set_encrypt_key preserves r2,	mov	$key,r2			@ which is AES_KEY *key	mov	$i1,r2	add	$i2,r2,$rounds,lsl#4.Linv:	ldr	$s0,[$i1]	ldr	$s1,[$i1,#4]	ldr	$s2,[$i1,#8]	ldr	$s3,[$i1,#12]	ldr	$t1,[$i2]	ldr	$t2,[$i2,#4]	ldr	$t3,[$i2,#8]	ldr	$i3,[$i2,#12]	str	$s0,[$i2],#-16	str	$s1,[$i2,#16+4]	str	$s2,[$i2,#16+8]	str	$s3,[$i2,#16+12]	str	$t1,[$i1],#16	str	$t2,[$i1,#-12]	str	$t3,[$i1,#-8]	str	$i3,[$i1,#-4]	teq	$i1,$i2	bne	.Linv___$mask80=$i1;$mask1b=$i2;$mask7f=$i3;$code.=<<___;	ldr	$s0,[$key,#16]!		@ prefetch tp1	mov	$mask80,#0x80	mov	$mask1b,#0x1b	orr	$mask80,$mask80,#0x8000	orr	$mask1b,$mask1b,#0x1b00	orr	$mask80,$mask80,$mask80,lsl#16	orr	$mask1b,$mask1b,$mask1b,lsl#16	sub	$rounds,$rounds,#1	mvn	$mask7f,$mask80	mov	$rounds,$rounds,lsl#2	@ (rounds-1)*4.Lmix:	and	$t1,$s0,$mask80	and	$s1,$s0,$mask7f	sub	$t1,$t1,$t1,lsr#7	and	$t1,$t1,$mask1b	eor	$s1,$t1,$s1,lsl#1	@ tp2	and	$t1,$s1,$mask80	and	$s2,$s1,$mask7f	sub	$t1,$t1,$t1,lsr#7	and	$t1,$t1,$mask1b	eor	$s2,$t1,$s2,lsl#1	@ tp4	and	$t1,$s2,$mask80	and	$s3,$s2,$mask7f	sub	$t1,$t1,$t1,lsr#7	and	$t1,$t1,$mask1b	eor	$s3,$t1,$s3,lsl#1	@ tp8	eor	$t1,$s1,$s2	eor	$t2,$s0,$s3		@ tp9	eor	$t1,$t1,$s3		@ tpe	eor	$t1,$t1,$s1,ror#24	eor	$t1,$t1,$t2,ror#24	@ ^= ROTATE(tpb=tp9^tp2,8)	eor	$t1,$t1,$s2,ror#16	eor	$t1,$t1,$t2,ror#16	@ ^= ROTATE(tpd=tp9^tp4,16)	eor	$t1,$t1,$t2,ror#8	@ ^= ROTATE(tp9,24)	ldr	$s0,[$key,#4]		@ prefetch tp1	str	$t1,[$key],#4	subs	$rounds,$rounds,#1	bne	.Lmix	mov	r0,#0	ldmia   sp!,{r4-r12,lr}	tst	lr,#1	moveq	pc,lr			@ be binary compatible with V4, yet	bx	lr			@ interoperable with Thumb ISA:-).size	AES_set_decrypt_key,.-AES_set_decrypt_key.type	AES_Td,%object.align	5AES_Td:.word	0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96.word	0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393.word	0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25.word	0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f.word	0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1.word	0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6.word	0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da.word	0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844.word	0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd.word	0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4.word	0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45.word	0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94.word	0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7.word	0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a.word	0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5.word	0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c.word	0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1.word	0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a.word	0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75.word	0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051.word	0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46.word	0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff.word	0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77.word	0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb.word	0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000.word	0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e.word	0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927.word	0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a.word	0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e.word	0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16.word	0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d.word	0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8.word	0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd.word	0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34.word	0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163.word	0xd731dcca, 0x42638510, 0x13972240, 0x84c61120.word	0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d.word	0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0.word	0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422.word	0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef.word	0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36.word	0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4.word	0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662.word	0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5.word	0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3.word	0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b.word	0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8.word	0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6.word	0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6.word	0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0.word	0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815.word	0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f.word	0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df.word	0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f.word	0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e.word	0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713.word	0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89.word	0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c.word	0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf.word	0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86.word	0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f.word	0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541.word	0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190.word	0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742@ Td4[256].byte	0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38.byte	0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb.byte	0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87.byte	0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb.byte	0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d.byte	0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e.byte	0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2.byte	0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25.byte	0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16.byte	0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92.byte	0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda.byte	0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84.byte	0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a.byte	0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06.byte	0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02.byte	0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b.byte	0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea.byte	0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73.byte	0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85.byte	0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e.byte	0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89.byte	0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b.byte	0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20.byte	0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4.byte	0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31.byte	0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f.byte	0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d.byte	0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef.byte	0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0.byte	0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61.byte	0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26.byte	0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d.size	AES_Td,.-AES_Td@ void AES_decrypt(const unsigned char *in, unsigned char *out,@ 		 const AES_KEY *key) {.global AES_decrypt.type   AES_decrypt,%function.align	5AES_decrypt:	sub	r3,pc,#8		@ AES_decrypt	stmdb   sp!,{r1,r4-r12,lr}	mov	$rounds,r0		@ inp	mov	$key,r2	sub	$tbl,r3,#AES_decrypt-AES_Td		@ Td	ldrb	$s0,[$rounds,#3]	@ load input data in endian-neutral	ldrb	$t1,[$rounds,#2]	@ manner...	ldrb	$t2,[$rounds,#1]	ldrb	$t3,[$rounds,#0]	orr	$s0,$s0,$t1,lsl#8	orr	$s0,$s0,$t2,lsl#16	orr	$s0,$s0,$t3,lsl#24	ldrb	$s1,[$rounds,#7]	ldrb	$t1,[$rounds,#6]	ldrb	$t2,[$rounds,#5]	ldrb	$t3,[$rounds,#4]	orr	$s1,$s1,$t1,lsl#8	orr	$s1,$s1,$t2,lsl#16	orr	$s1,$s1,$t3,lsl#24	ldrb	$s2,[$rounds,#11]	ldrb	$t1,[$rounds,#10]	ldrb	$t2,[$rounds,#9]	ldrb	$t3,[$rounds,#8]	orr	$s2,$s2,$t1,lsl#8	orr	$s2,$s2,$t2,lsl#16	orr	$s2,$s2,$t3,lsl#24	ldrb	$s3,[$rounds,#15]	ldrb	$t1,[$rounds,#14]	ldrb	$t2,[$rounds,#13]	ldrb	$t3,[$rounds,#12]	orr	$s3,$s3,$t1,lsl#8	orr	$s3,$s3,$t2,lsl#16	orr	$s3,$s3,$t3,lsl#24	bl	_armv4_AES_decrypt	ldr	$rounds,[sp],#4		@ pop out	mov	$t1,$s0,lsr#24		@ write output in endian-neutral	mov	$t2,$s0,lsr#16		@ manner...	mov	$t3,$s0,lsr#8	strb	$t1,[$rounds,#0]	strb	$t2,[$rounds,#1]	strb	$t3,[$rounds,#2]	strb	$s0,[$rounds,#3]	mov	$t1,$s1,lsr#24	mov	$t2,$s1,lsr#16	mov	$t3,$s1,lsr#8	strb	$t1,[$rounds,#4]	strb	$t2,[$rounds,#5]	strb	$t3,[$rounds,#6]	strb	$s1,[$rounds,#7]	mov	$t1,$s2,lsr#24	mov	$t2,$s2,lsr#16	mov	$t3,$s2,lsr#8	strb	$t1,[$rounds,#8]	strb	$t2,[$rounds,#9]	strb	$t3,[$rounds,#10]	strb	$s2,[$rounds,#11]	mov	$t1,$s3,lsr#24	mov	$t2,$s3,lsr#16	mov	$t3,$s3,lsr#8	strb	$t1,[$rounds,#12]	strb	$t2,[$rounds,#13]	strb	$t3,[$rounds,#14]	strb	$s3,[$rounds,#15]	ldmia   sp!,{r4-r12,lr}	tst	lr,#1	moveq	pc,lr			@ be binary compatible with V4, yet	bx	lr			@ interoperable with Thumb ISA:-).size	AES_decrypt,.-AES_decrypt.type   _armv4_AES_decrypt,%function.align	2_armv4_AES_decrypt:	str	lr,[sp,#-4]!		@ push lr	ldr	$t1,[$key],#16	ldr	$t2,[$key,#-12]	ldr	$t3,[$key,#-8]	ldr	$i1,[$key,#-4]	ldr	$rounds,[$key,#240-16]	eor	$s0,$s0,$t1	eor	$s1,$s1,$t2	eor	$s2,$s2,$t3	eor	$s3,$s3,$i1	sub	$rounds,$rounds,#1	mov	lr,#255.Ldec_loop:	and	$i1,lr,$s0,lsr#16	and	$i2,lr,$s0,lsr#8	and	$i3,lr,$s0	mov	$s0,$s0,lsr#24	ldr	$t1,[$tbl,$i1,lsl#2]	@ Td1[s0>>16]	ldr	$s0,[$tbl,$s0,lsl#2]	@ Td0[s0>>24]	ldr	$t2,[$tbl,$i2,lsl#2]	@ Td2[s0>>8]	ldr	$t3,[$tbl,$i3,lsl#2]	@ Td3[s0>>0]	and	$i1,lr,$s1		@ i0	and	$i2,lr,$s1,lsr#16	and	$i3,lr,$s1,lsr#8	mov	$s1,$s1,lsr#24	ldr	$i1,[$tbl,$i1,lsl#2]	@ Td3[s1>>0]	ldr	$s1,[$tbl,$s1,lsl#2]	@ Td0[s1>>24]	ldr	$i2,[$tbl,$i2,lsl#2]	@ Td1[s1>>16]	ldr	$i3,[$tbl,$i3,lsl#2]	@ Td2[s1>>8]	eor	$s0,$s0,$i1,ror#24	eor	$s1,$s1,$t1,ror#8	eor	$t2,$i2,$t2,ror#8	eor	$t3,$i3,$t3,ror#8	and	$i1,lr,$s2,lsr#8	@ i0	and	$i2,lr,$s2		@ i1	and	$i3,lr,$s2,lsr#16	mov	$s2,$s2,lsr#24	ldr	$i1,[$tbl,$i1,lsl#2]	@ Td2[s2>>8]	ldr	$i2,[$tbl,$i2,lsl#2]	@ Td3[s2>>0]	ldr	$s2,[$tbl,$s2,lsl#2]	@ Td0[s2>>24]	ldr	$i3,[$tbl,$i3,lsl#2]	@ Td1[s2>>16]	eor	$s0,$s0,$i1,ror#16	eor	$s1,$s1,$i2,ror#24	eor	$s2,$s2,$t2,ror#8	eor	$t3,$i3,$t3,ror#8	and	$i1,lr,$s3,lsr#16	@ i0	and	$i2,lr,$s3,lsr#8	@ i1	and	$i3,lr,$s3		@ i2	mov	$s3,$s3,lsr#24	ldr	$i1,[$tbl,$i1,lsl#2]	@ Td1[s3>>16]	ldr	$i2,[$tbl,$i2,lsl#2]	@ Td2[s3>>8]	ldr	$i3,[$tbl,$i3,lsl#2]	@ Td3[s3>>0]	ldr	$s3,[$tbl,$s3,lsl#2]	@ Td0[s3>>24]	eor	$s0,$s0,$i1,ror#8	eor	$s1,$s1,$i2,ror#16	eor	$s2,$s2,$i3,ror#24	eor	$s3,$s3,$t3,ror#8	ldr	$t1,[$key],#16	ldr	$t2,[$key,#-12]	ldr	$t3,[$key,#-8]	ldr	$i1,[$key,#-4]	eor	$s0,$s0,$t1	eor	$s1,$s1,$t2	eor	$s2,$s2,$t3	eor	$s3,$s3,$i1	subs	$rounds,$rounds,#1	bne	.Ldec_loop	add	$tbl,$tbl,#1024	ldr	$t1,[$tbl,#0]		@ prefetch Td4	ldr	$t2,[$tbl,#32]	ldr	$t3,[$tbl,#64]	ldr	$i1,[$tbl,#96]	ldr	$i2,[$tbl,#128]	ldr	$i3,[$tbl,#160]	ldr	$t1,[$tbl,#192]	ldr	$t2,[$tbl,#224]	and	$i1,lr,$s0,lsr#16	and	$i2,lr,$s0,lsr#8	and	$i3,lr,$s0	ldrb	$s0,[$tbl,$s0,lsr#24]	@ Td4[s0>>24]	ldrb	$t1,[$tbl,$i1]		@ Td4[s0>>16]	ldrb	$t2,[$tbl,$i2]		@ Td4[s0>>8]	ldrb	$t3,[$tbl,$i3]		@ Td4[s0>>0]	and	$i1,lr,$s1		@ i0	and	$i2,lr,$s1,lsr#16	and	$i3,lr,$s1,lsr#8	ldrb	$i1,[$tbl,$i1]		@ Td4[s1>>0]	ldrb	$s1,[$tbl,$s1,lsr#24]	@ Td4[s1>>24]	ldrb	$i2,[$tbl,$i2]		@ Td4[s1>>16]	ldrb	$i3,[$tbl,$i3]		@ Td4[s1>>8]	eor	$s0,$i1,$s0,lsl#24	eor	$s1,$t1,$s1,lsl#8	eor	$t2,$t2,$i2,lsl#8	eor	$t3,$t3,$i3,lsl#8	and	$i1,lr,$s2,lsr#8	@ i0	and	$i2,lr,$s2		@ i1	and	$i3,lr,$s2,lsr#16	ldrb	$i1,[$tbl,$i1]		@ Td4[s2>>8]	ldrb	$i2,[$tbl,$i2]		@ Td4[s2>>0]	ldrb	$s2,[$tbl,$s2,lsr#24]	@ Td4[s2>>24]	ldrb	$i3,[$tbl,$i3]		@ Td4[s2>>16]	eor	$s0,$s0,$i1,lsl#8	eor	$s1,$i2,$s1,lsl#16	eor	$s2,$t2,$s2,lsl#16	eor	$t3,$t3,$i3,lsl#16	and	$i1,lr,$s3,lsr#16	@ i0	and	$i2,lr,$s3,lsr#8	@ i1	and	$i3,lr,$s3		@ i2	ldrb	$i1,[$tbl,$i1]		@ Td4[s3>>16]	ldrb	$i2,[$tbl,$i2]		@ Td4[s3>>8]	ldrb	$i3,[$tbl,$i3]		@ Td4[s3>>0]	ldrb	$s3,[$tbl,$s3,lsr#24]	@ Td4[s3>>24]	eor	$s0,$s0,$i1,lsl#16	eor	$s1,$s1,$i2,lsl#8	eor	$s2,$i3,$s2,lsl#8	eor	$s3,$t3,$s3,lsl#24	ldr	lr,[sp],#4		@ pop lr	ldr	$t1,[$key,#0]	ldr	$t2,[$key,#4]	ldr	$t3,[$key,#8]	ldr	$i1,[$key,#12]	eor	$s0,$s0,$t1	eor	$s1,$s1,$t2	eor	$s2,$s2,$t3	eor	$s3,$s3,$i1	sub	$tbl,$tbl,#1024	mov	pc,lr			@ return.size	_armv4_AES_decrypt,.-_armv4_AES_decrypt.asciz	"AES for ARMv4, CRYPTOGAMS by <appro\@openssl.org>"___$code =~ s/\bbx\s+lr\b/.word\t0xe12fff1e/gm;	# make it possible to compile with -march=armv4print $code;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -