fips-ax86-elf.s

来自「openssl包含TLS」· S 代码 · 共 1,712 行 · 第 1/3 页

S
1,712
字号
	je	.L012enc_in_place.align	4	.long	4136215795	jmp	.L013enc_skip_in_place.L012enc_in_place:	leal	(%edi,%ecx),	%edi.L013enc_skip_in_place:	movl	%ebx,		%ecx	xorl	%eax,		%eax.align	4	.long	4136217331	popl	%edi	movl	24(%esp),	%esi	movl	(%edi),		%eax	movl	4(%edi),	%ebx	movl	$16,		28(%esp)	jmp	.L011enc_loop.align	4.L006DECRYPT:	leal	AES_Td-.L005pic_point(%ebp),%ebp	leal	-308(%esp),	%edi	andl	$-64,		%edi	movl	%ebp,		%eax	leal	3072(%ebp),	%ebx	movl	%edi,		%edx	andl	$4095,		%eax	andl	$4095,		%ebx	andl	$4095,		%edx	cmpl	%ebx,		%edx	jb	.L014td_break_out	subl	%ebx,		%edx	subl	%edx,		%edi	jmp	.L015td_ok.L014td_break_out:	subl	%eax,		%edx	andl	$4095,		%edx	addl	$320,		%edx	subl	%edx,		%edi.align	4.L015td_ok:	movl	24(%esp),	%eax	movl	28(%esp),	%ebx	movl	36(%esp),	%edx	movl	40(%esp),	%esi	xchgl	%edi,		%esp	addl	$4,		%esp	movl	%edi,		16(%esp)	movl	%eax,		20(%esp)	movl	%ebx,		24(%esp)	movl	%ecx,		28(%esp)	movl	%edx,		32(%esp)	movl	%esi,		36(%esp)	movl	$61,		%ecx	movl	%edx,		%esi	leal	60(%esp),	%edi	movl	%edi,		32(%esp).align	4	.long	4136216051	movl	%eax,		%esi	movl	$24,		%edi.align	4.L016prefetch_td:	movl	(%ebp),		%eax	movl	32(%ebp),	%ebx	movl	64(%ebp),	%ecx	movl	96(%ebp),	%edx	leal	128(%ebp),	%ebp	decl	%edi	jnz	.L016prefetch_td	subl	$3072,		%ebp	cmpl	24(%esp),	%esi	je	.L017dec_in_place	movl	36(%esp),	%edi	movl	%edi,		40(%esp).align	4.L018dec_loop:	movl	(%esi),		%eax	movl	4(%esi),	%ebx	movl	8(%esi),	%ecx	movl	12(%esi),	%edx	movl	32(%esp),	%edi	call	_x86_AES_decrypt	movl	40(%esp),	%edi	movl	28(%esp),	%esi	xorl	(%edi),		%eax	xorl	4(%edi),	%ebx	xorl	8(%edi),	%ecx	xorl	12(%edi),	%edx	subl	$16,		%esi	jc	.L019dec_partial	movl	%esi,		28(%esp)	movl	20(%esp),	%esi	movl	24(%esp),	%edi	movl	%eax,		(%edi)	movl	%ebx,		4(%edi)	movl	%ecx,		8(%edi)	movl	%edx,		12(%edi)	movl	%esi,		40(%esp)	leal	16(%esi),	%esi	movl	%esi,		20(%esp)	leal	16(%edi),	%edi	movl	%edi,		24(%esp)	jnz	.L018dec_loop	movl	40(%esp),	%edi.L020dec_end:	movl	36(%esp),	%esi	movl	(%edi),		%eax	movl	4(%edi),	%ebx	movl	8(%edi),	%ecx	movl	12(%edi),	%edx	movl	%eax,		(%esi)	movl	%ebx,		4(%esi)	movl	%ecx,		8(%esi)	movl	%edx,		12(%esi)	jmp	.L021dec_out.align	4.L019dec_partial:	leal	44(%esp),	%edi	movl	%eax,		(%edi)	movl	%ebx,		4(%edi)	movl	%ecx,		8(%edi)	movl	%edx,		12(%edi)	leal	16(%esi),	%ecx	movl	%edi,		%esi	movl	24(%esp),	%edi	.long	4136215795	movl	20(%esp),	%edi	jmp	.L020dec_end.align	4.L017dec_in_place:.L022dec_in_place_loop:	leal	44(%esp),	%edi	movl	(%esi),		%eax	movl	4(%esi),	%ebx	movl	8(%esi),	%ecx	movl	12(%esi),	%edx	movl	%eax,		(%edi)	movl	%ebx,		4(%edi)	movl	%ecx,		8(%edi)	movl	%edx,		12(%edi)	movl	32(%esp),	%edi	call	_x86_AES_decrypt	movl	36(%esp),	%edi	movl	24(%esp),	%esi	xorl	(%edi),		%eax	xorl	4(%edi),	%ebx	xorl	8(%edi),	%ecx	xorl	12(%edi),	%edx	movl	%eax,		(%esi)	movl	%ebx,		4(%esi)	movl	%ecx,		8(%esi)	movl	%edx,		12(%esi)	leal	16(%esi),	%esi	movl	%esi,		24(%esp)	leal	44(%esp),	%esi	movl	(%esi),		%eax	movl	4(%esi),	%ebx	movl	8(%esi),	%ecx	movl	12(%esi),	%edx	movl	%eax,		(%edi)	movl	%ebx,		4(%edi)	movl	%ecx,		8(%edi)	movl	%edx,		12(%edi)	movl	20(%esp),	%esi	leal	16(%esi),	%esi	movl	%esi,		20(%esp)	movl	28(%esp),	%ecx	subl	$16,		%ecx	jc	.L023dec_in_place_partial	movl	%ecx,		28(%esp)	jnz	.L022dec_in_place_loop	jmp	.L021dec_out.align	4.L023dec_in_place_partial:	movl	24(%esp),	%edi	leal	44(%esp),	%esi	leal	(%edi,%ecx),	%edi	leal	16(%esi,%ecx),	%esi	negl	%ecx	.long	4136215795.align	4.L021dec_out:	movl	32(%esp),	%edi	movl	16(%esp),	%esp	movl	$60,		%ecx	xorl	%eax,		%eax.align	4	.long	4136217587	popfl	popl	%edi	popl	%esi	popl	%ebx	popl	%ebp	ret.L_AES_cbc_encrypt_end:.size	AES_cbc_encrypt,.L_AES_cbc_encrypt_end-AES_cbc_encrypt.ident	"AES_cbc_encrypt".globl	AES_Te.text.globl	AES_set_encrypt_key.type	AES_set_encrypt_key,@function.align	16AES_set_encrypt_key:	pushl	%ebp	pushl	%ebx	pushl	%esi	pushl	%edi	call	FIPS_selftest_failed	cmpl	$0,%eax	mov	$-3,%eax	jne	.L029exit	movl	20(%esp),	%esi	movl	28(%esp),	%edi	testl	$-1,		%esi	jz	.L024badpointer	testl	$-1,		%edi	jz	.L024badpointer	call	.L025pic_point.L025pic_point:	popl	%ebp	leal	AES_Te-.L025pic_point(%ebp),%ebp	movl	24(%esp),	%ecx	cmpl	$128,		%ecx	je	.L02610rounds	cmpl	$192,		%ecx	je	.L02712rounds	cmpl	$256,		%ecx	je	.L02814rounds	movl	$-2,		%eax	jmp	.L029exit.L02610rounds:	movl	(%esi),		%eax	movl	4(%esi),	%ebx	movl	8(%esi),	%ecx	movl	12(%esi),	%edx	movl	%eax,		(%edi)	movl	%ebx,		4(%edi)	movl	%ecx,		8(%edi)	movl	%edx,		12(%edi)	xorl	%ecx,		%ecx	jmp	.L03010shortcut.align	4.L03110loop:	movl	(%edi),		%eax	movl	12(%edi),	%edx.L03010shortcut:	movzbl	%dl,		%esi	movl	2(%ebp,%esi,8),	%ebx	movzbl	%dh,		%esi	andl	$4278190080,	%ebx	xorl	%ebx,		%eax	movl	2(%ebp,%esi,8),	%ebx	shrl	$16,		%edx	andl	$255,		%ebx	movzbl	%dl,		%esi	xorl	%ebx,		%eax	movl	(%ebp,%esi,8),	%ebx	movzbl	%dh,		%esi	andl	$65280,		%ebx	xorl	%ebx,		%eax	movl	(%ebp,%esi,8),	%ebx	andl	$16711680,	%ebx	xorl	%ebx,		%eax	xorl	2048(%ebp,%ecx,4),%eax	movl	%eax,		16(%edi)	xorl	4(%edi),	%eax	movl	%eax,		20(%edi)	xorl	8(%edi),	%eax	movl	%eax,		24(%edi)	xorl	12(%edi),	%eax	movl	%eax,		28(%edi)	incl	%ecx	addl	$16,		%edi	cmpl	$10,		%ecx	jl	.L03110loop	movl	$10,		80(%edi)	xorl	%eax,		%eax	jmp	.L029exit.L02712rounds:	movl	(%esi),		%eax	movl	4(%esi),	%ebx	movl	8(%esi),	%ecx	movl	12(%esi),	%edx	movl	%eax,		(%edi)	movl	%ebx,		4(%edi)	movl	%ecx,		8(%edi)	movl	%edx,		12(%edi)	movl	16(%esi),	%ecx	movl	20(%esi),	%edx	movl	%ecx,		16(%edi)	movl	%edx,		20(%edi)	xorl	%ecx,		%ecx	jmp	.L03212shortcut.align	4.L03312loop:	movl	(%edi),		%eax	movl	20(%edi),	%edx.L03212shortcut:	movzbl	%dl,		%esi	movl	2(%ebp,%esi,8),	%ebx	movzbl	%dh,		%esi	andl	$4278190080,	%ebx	xorl	%ebx,		%eax	movl	2(%ebp,%esi,8),	%ebx	shrl	$16,		%edx	andl	$255,		%ebx	movzbl	%dl,		%esi	xorl	%ebx,		%eax	movl	(%ebp,%esi,8),	%ebx	movzbl	%dh,		%esi	andl	$65280,		%ebx	xorl	%ebx,		%eax	movl	(%ebp,%esi,8),	%ebx	andl	$16711680,	%ebx	xorl	%ebx,		%eax	xorl	2048(%ebp,%ecx,4),%eax	movl	%eax,		24(%edi)	xorl	4(%edi),	%eax	movl	%eax,		28(%edi)	xorl	8(%edi),	%eax	movl	%eax,		32(%edi)	xorl	12(%edi),	%eax	movl	%eax,		36(%edi)	cmpl	$7,		%ecx	je	.L03412break	incl	%ecx	xorl	16(%edi),	%eax	movl	%eax,		40(%edi)	xorl	20(%edi),	%eax	movl	%eax,		44(%edi)	addl	$24,		%edi	jmp	.L03312loop.L03412break:	movl	$12,		72(%edi)	xorl	%eax,		%eax	jmp	.L029exit.L02814rounds:	movl	(%esi),		%eax	movl	4(%esi),	%ebx	movl	8(%esi),	%ecx	movl	12(%esi),	%edx	movl	%eax,		(%edi)	movl	%ebx,		4(%edi)	movl	%ecx,		8(%edi)	movl	%edx,		12(%edi)	movl	16(%esi),	%eax	movl	20(%esi),	%ebx	movl	24(%esi),	%ecx	movl	28(%esi),	%edx	movl	%eax,		16(%edi)	movl	%ebx,		20(%edi)	movl	%ecx,		24(%edi)	movl	%edx,		28(%edi)	xorl	%ecx,		%ecx	jmp	.L03514shortcut.align	4.L03614loop:	movl	28(%edi),	%edx.L03514shortcut:	movl	(%edi),		%eax	movzbl	%dl,		%esi	movl	2(%ebp,%esi,8),	%ebx	movzbl	%dh,		%esi	andl	$4278190080,	%ebx	xorl	%ebx,		%eax	movl	2(%ebp,%esi,8),	%ebx	shrl	$16,		%edx	andl	$255,		%ebx	movzbl	%dl,		%esi	xorl	%ebx,		%eax	movl	(%ebp,%esi,8),	%ebx	movzbl	%dh,		%esi	andl	$65280,		%ebx	xorl	%ebx,		%eax	movl	(%ebp,%esi,8),	%ebx	andl	$16711680,	%ebx	xorl	%ebx,		%eax	xorl	2048(%ebp,%ecx,4),%eax	movl	%eax,		32(%edi)	xorl	4(%edi),	%eax	movl	%eax,		36(%edi)	xorl	8(%edi),	%eax	movl	%eax,		40(%edi)	xorl	12(%edi),	%eax	movl	%eax,		44(%edi)	cmpl	$6,		%ecx	je	.L03714break	incl	%ecx	movl	%eax,		%edx	movl	16(%edi),	%eax	movzbl	%dl,		%esi	movl	2(%ebp,%esi,8),	%ebx	movzbl	%dh,		%esi	andl	$255,		%ebx	xorl	%ebx,		%eax	movl	(%ebp,%esi,8),	%ebx	shrl	$16,		%edx	andl	$65280,		%ebx	movzbl	%dl,		%esi	xorl	%ebx,		%eax	movl	(%ebp,%esi,8),	%ebx	movzbl	%dh,		%esi	andl	$16711680,	%ebx	xorl	%ebx,		%eax	movl	2(%ebp,%esi,8),	%ebx	andl	$4278190080,	%ebx	xorl	%ebx,		%eax	movl	%eax,		48(%edi)	xorl	20(%edi),	%eax	movl	%eax,		52(%edi)	xorl	24(%edi),	%eax	movl	%eax,		56(%edi)	xorl	28(%edi),	%eax	movl	%eax,		60(%edi)	addl	$32,		%edi	jmp	.L03614loop.L03714break:	movl	$14,		48(%edi)	xorl	%eax,		%eax	jmp	.L029exit.L024badpointer:	movl	$-1,		%eax.L029exit:	popl	%edi	popl	%esi	popl	%ebx	popl	%ebp	ret.L_AES_set_encrypt_key_end:.size	AES_set_encrypt_key,.L_AES_set_encrypt_key_end-AES_set_encrypt_key.ident	"AES_set_encrypt_key".globl	AES_Td.globl	AES_Te.text.globl	AES_set_decrypt_key.type	AES_set_decrypt_key,@function.align	16AES_set_decrypt_key:	movl	4(%esp),	%eax	movl	8(%esp),	%ecx	movl	12(%esp),	%edx	subl	$12,		%esp	movl	%eax,		(%esp)	movl	%ecx,		4(%esp)	movl	%edx,		8(%esp)	call	AES_set_encrypt_key	addl	$12,		%esp	cmpl	$0,		%eax	je	.L038proceed	ret.L038proceed:	pushl	%ebp	pushl	%ebx	pushl	%esi	pushl	%edi	movl	28(%esp),	%esi	movl	240(%esi),	%ecx	leal	(,%ecx,4),	%ecx	leal	(%esi,%ecx,4),	%edi.align	4.L039invert:	movl	(%esi),		%eax	movl	4(%esi),	%ebx	movl	(%edi),		%ecx	movl	4(%edi),	%edx	movl	%eax,		(%edi)	movl	%ebx,		4(%edi)	movl	%ecx,		(%esi)	movl	%edx,		4(%esi)	movl	8(%esi),	%eax	movl	12(%esi),	%ebx	movl	8(%edi),	%ecx	movl	12(%edi),	%edx	movl	%eax,		8(%edi)	movl	%ebx,		12(%edi)	movl	%ecx,		8(%esi)	movl	%edx,		12(%esi)	addl	$16,		%esi	subl	$16,		%edi	cmpl	%edi,		%esi	jne	.L039invert	call	.L040pic_point.L040pic_point:	popl	%ebp	leal	AES_Td-.L040pic_point(%ebp),%edi	leal	AES_Te-.L040pic_point(%ebp),%ebp	movl	28(%esp),	%esi	movl	240(%esi),	%ecx	decl	%ecx.align	4.L041permute:	addl	$16,		%esi	movl	(%esi),		%eax	movl	%eax,		%edx	movzbl	%ah,		%ebx	shrl	$16,		%edx	andl	$255,		%eax	movzbl	2(%ebp,%eax,8),	%eax	movzbl	2(%ebp,%ebx,8),	%ebx	movl	(%edi,%eax,8),	%eax	xorl	3(%edi,%ebx,8),	%eax	movzbl	%dh,		%ebx	andl	$255,		%edx	movzbl	2(%ebp,%edx,8),	%edx	movzbl	2(%ebp,%ebx,8),	%ebx	xorl	2(%edi,%edx,8),	%eax	xorl	1(%edi,%ebx,8),	%eax	movl	%eax,		(%esi)	movl	4(%esi),	%eax	movl	%eax,		%edx	movzbl	%ah,		%ebx	shrl	$16,		%edx	andl	$255,		%eax	movzbl	2(%ebp,%eax,8),	%eax	movzbl	2(%ebp,%ebx,8),	%ebx	movl	(%edi,%eax,8),	%eax	xorl	3(%edi,%ebx,8),	%eax	movzbl	%dh,		%ebx	andl	$255,		%edx	movzbl	2(%ebp,%edx,8),	%edx	movzbl	2(%ebp,%ebx,8),	%ebx	xorl	2(%edi,%edx,8),	%eax	xorl	1(%edi,%ebx,8),	%eax	movl	%eax,		4(%esi)	movl	8(%esi),	%eax	movl	%eax,		%edx	movzbl	%ah,		%ebx	shrl	$16,		%edx	andl	$255,		%eax	movzbl	2(%ebp,%eax,8),	%eax	movzbl	2(%ebp,%ebx,8),	%ebx	movl	(%edi,%eax,8),	%eax	xorl	3(%edi,%ebx,8),	%eax	movzbl	%dh,		%ebx	andl	$255,		%edx	movzbl	2(%ebp,%edx,8),	%edx	movzbl	2(%ebp,%ebx,8),	%ebx	xorl	2(%edi,%edx,8),	%eax	xorl	1(%edi,%ebx,8),	%eax	movl	%eax,		8(%esi)	movl	12(%esi),	%eax	movl	%eax,		%edx	movzbl	%ah,		%ebx	shrl	$16,		%edx	andl	$255,		%eax	movzbl	2(%ebp,%eax,8),	%eax	movzbl	2(%ebp,%ebx,8),	%ebx	movl	(%edi,%eax,8),	%eax	xorl	3(%edi,%ebx,8),	%eax	movzbl	%dh,		%ebx	andl	$255,		%edx	movzbl	2(%ebp,%edx,8),	%edx	movzbl	2(%ebp,%ebx,8),	%ebx	xorl	2(%edi,%edx,8),	%eax	xorl	1(%edi,%ebx,8),	%eax	movl	%eax,		12(%esi)	decl	%ecx	jnz	.L041permute	xorl	%eax,		%eax	popl	%edi	popl	%esi	popl	%ebx	popl	%ebp	ret.L_AES_set_decrypt_key_end:.size	AES_set_decrypt_key,.L_AES_set_decrypt_key_end-AES_set_decrypt_key.ident	"AES_set_decrypt_key"

⌨️ 快捷键说明

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