629 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			629 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* Run the C pre-processor over this file with one of the following defined
 | |
|  * ELF - elf object files,
 | |
|  * OUT - a.out object files,
 | |
|  * BSDI - BSDI style a.out object files
 | |
|  * SOL - Solaris style elf
 | |
|  */
 | |
| 
 | |
| #define TYPE(a,b)       .type   a,b
 | |
| #define SIZE(a,b)       .size   a,b
 | |
| 
 | |
| #if defined(OUT) || defined(BSDI)
 | |
| #define RC5_32_encrypt _RC5_32_encrypt
 | |
| #define RC5_32_decrypt _RC5_32_decrypt
 | |
| #define RC5_32_cbc_encrypt _RC5_32_cbc_encrypt
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #ifdef OUT
 | |
| #define OK	1
 | |
| #define ALIGN	4
 | |
| #endif
 | |
| 
 | |
| #ifdef BSDI
 | |
| #define OK              1
 | |
| #define ALIGN           4
 | |
| #undef SIZE
 | |
| #undef TYPE
 | |
| #define SIZE(a,b)
 | |
| #define TYPE(a,b)
 | |
| #endif
 | |
| 
 | |
| #if defined(ELF) || defined(SOL)
 | |
| #define OK              1
 | |
| #define ALIGN           16
 | |
| #endif
 | |
| 
 | |
| #ifndef OK
 | |
| You need to define one of
 | |
| ELF - elf systems - linux-elf, NetBSD and DG-UX
 | |
| OUT - a.out systems - linux-a.out and FreeBSD
 | |
| SOL - solaris systems, which are elf with strange comment lines
 | |
| BSDI - a.out with a very primative version of as.
 | |
| #endif
 | |
| 
 | |
| /* Let the Assembler begin :-) */
 | |
| 	/* Don't even think of reading this code */
 | |
| 	/* It was automatically generated by rc5-586.pl */
 | |
| 	/* Which is a perl program used to generate the x86 assember for */
 | |
| 	/* any of elf, a.out, BSDI,Win32, or Solaris */
 | |
| 	/* eric <eay@cryptsoft.com> */
 | |
| 
 | |
| 	.file	"rc5-586.s"
 | |
| 	.version	"01.01"
 | |
| gcc2_compiled.:
 | |
| .text
 | |
| 	.align ALIGN
 | |
| .globl RC5_32_encrypt
 | |
| 	TYPE(RC5_32_encrypt,@function)
 | |
| RC5_32_encrypt:
 | |
| 
 | |
| 	pushl	%ebp
 | |
| 	pushl	%esi
 | |
| 	pushl	%edi
 | |
| 	movl	16(%esp),	%edx
 | |
| 	movl	20(%esp),	%ebp
 | |
| 	/* Load the 2 words */
 | |
| 	movl	(%edx),		%edi
 | |
| 	movl	4(%edx),	%esi
 | |
| 	pushl	%ebx
 | |
| 	movl	(%ebp),		%ebx
 | |
| 	addl	4(%ebp),	%edi
 | |
| 	addl	8(%ebp),	%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	12(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	16(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	20(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	24(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	28(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	32(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	36(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	40(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	44(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	48(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	52(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	56(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	60(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	64(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	68(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	72(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	cmpl	$8,		%ebx
 | |
| 	je	.L000rc5_exit
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	76(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	80(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	84(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	88(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	92(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	96(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	100(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	104(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	cmpl	$12,		%ebx
 | |
| 	je	.L000rc5_exit
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	108(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	112(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	116(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	120(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	124(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	128(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	132(%ebp),	%eax
 | |
| 	movl	%esi,		%ecx
 | |
| 	roll	%cl,		%edi
 | |
| 	addl	%eax,		%edi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	136(%ebp),	%eax
 | |
| 	movl	%edi,		%ecx
 | |
| 	roll	%cl,		%esi
 | |
| 	addl	%eax,		%esi
 | |
| .L000rc5_exit:
 | |
| 	movl	%edi,		(%edx)
 | |
| 	movl	%esi,		4(%edx)
 | |
| 	popl	%ebx
 | |
| 	popl	%edi
 | |
| 	popl	%esi
 | |
| 	popl	%ebp
 | |
| 	ret
 | |
| .RC5_32_encrypt_end:
 | |
| 	SIZE(RC5_32_encrypt,.RC5_32_encrypt_end-RC5_32_encrypt)
 | |
| .ident	"desasm.pl"
 | |
| .text
 | |
| 	.align ALIGN
 | |
| .globl RC5_32_decrypt
 | |
| 	TYPE(RC5_32_decrypt,@function)
 | |
| RC5_32_decrypt:
 | |
| 
 | |
| 	pushl	%ebp
 | |
| 	pushl	%esi
 | |
| 	pushl	%edi
 | |
| 	movl	16(%esp),	%edx
 | |
| 	movl	20(%esp),	%ebp
 | |
| 	/* Load the 2 words */
 | |
| 	movl	(%edx),		%edi
 | |
| 	movl	4(%edx),	%esi
 | |
| 	pushl	%ebx
 | |
| 	movl	(%ebp),		%ebx
 | |
| 	cmpl	$12,		%ebx
 | |
| 	je	.L001rc5_dec_12
 | |
| 	cmpl	$8,		%ebx
 | |
| 	je	.L002rc5_dec_8
 | |
| 	movl	136(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	132(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	128(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	124(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	120(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	116(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	112(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	108(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| .L001rc5_dec_12:
 | |
| 	movl	104(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	100(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	96(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	92(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	88(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	84(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	80(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	76(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| .L002rc5_dec_8:
 | |
| 	movl	72(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	68(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	64(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	60(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	56(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	52(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	48(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	44(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	40(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	36(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	32(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	28(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	24(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	20(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	movl	16(%ebp),	%eax
 | |
| 	subl	%eax,		%esi
 | |
| 	movl	%edi,		%ecx
 | |
| 	rorl	%cl,		%esi
 | |
| 	xorl	%edi,		%esi
 | |
| 	movl	12(%ebp),	%eax
 | |
| 	subl	%eax,		%edi
 | |
| 	movl	%esi,		%ecx
 | |
| 	rorl	%cl,		%edi
 | |
| 	xorl	%esi,		%edi
 | |
| 	subl	8(%ebp),	%esi
 | |
| 	subl	4(%ebp),	%edi
 | |
| .L003rc5_exit:
 | |
| 	movl	%edi,		(%edx)
 | |
| 	movl	%esi,		4(%edx)
 | |
| 	popl	%ebx
 | |
| 	popl	%edi
 | |
| 	popl	%esi
 | |
| 	popl	%ebp
 | |
| 	ret
 | |
| .RC5_32_decrypt_end:
 | |
| 	SIZE(RC5_32_decrypt,.RC5_32_decrypt_end-RC5_32_decrypt)
 | |
| .ident	"desasm.pl"
 | |
| .text
 | |
| 	.align ALIGN
 | |
| .globl RC5_32_cbc_encrypt
 | |
| 	TYPE(RC5_32_cbc_encrypt,@function)
 | |
| RC5_32_cbc_encrypt:
 | |
| 
 | |
| 	pushl	%ebp
 | |
| 	pushl	%ebx
 | |
| 	pushl	%esi
 | |
| 	pushl	%edi
 | |
| 	movl	28(%esp),	%ebp
 | |
| 	/* getting iv ptr from parameter 4 */
 | |
| 	movl	36(%esp),	%ebx
 | |
| 	movl	(%ebx),		%esi
 | |
| 	movl	4(%ebx),	%edi
 | |
| 	pushl	%edi
 | |
| 	pushl	%esi
 | |
| 	pushl	%edi
 | |
| 	pushl	%esi
 | |
| 	movl	%esp,		%ebx
 | |
| 	movl	36(%esp),	%esi
 | |
| 	movl	40(%esp),	%edi
 | |
| 	/* getting encrypt flag from parameter 5 */
 | |
| 	movl	56(%esp),	%ecx
 | |
| 	/* get and push parameter 3 */
 | |
| 	movl	48(%esp),	%eax
 | |
| 	pushl	%eax
 | |
| 	pushl	%ebx
 | |
| 	cmpl	$0,		%ecx
 | |
| 	jz	.L004decrypt
 | |
| 	andl	$4294967288,	%ebp
 | |
| 	movl	8(%esp),	%eax
 | |
| 	movl	12(%esp),	%ebx
 | |
| 	jz	.L005encrypt_finish
 | |
| .L006encrypt_loop:
 | |
| 	movl	(%esi),		%ecx
 | |
| 	movl	4(%esi),	%edx
 | |
| 	xorl	%ecx,		%eax
 | |
| 	xorl	%edx,		%ebx
 | |
| 	movl	%eax,		8(%esp)
 | |
| 	movl	%ebx,		12(%esp)
 | |
| 	call	RC5_32_encrypt
 | |
| 	movl	8(%esp),	%eax
 | |
| 	movl	12(%esp),	%ebx
 | |
| 	movl	%eax,		(%edi)
 | |
| 	movl	%ebx,		4(%edi)
 | |
| 	addl	$8,		%esi
 | |
| 	addl	$8,		%edi
 | |
| 	subl	$8,		%ebp
 | |
| 	jnz	.L006encrypt_loop
 | |
| .L005encrypt_finish:
 | |
| 	movl	52(%esp),	%ebp
 | |
| 	andl	$7,		%ebp
 | |
| 	jz	.L007finish
 | |
| 	xorl	%ecx,		%ecx
 | |
| 	xorl	%edx,		%edx
 | |
| 	movl	.L008cbc_enc_jmp_table(,%ebp,4),%ebp
 | |
| 	jmp	*%ebp
 | |
| .L009ej7:
 | |
| 	movb	6(%esi),	%dh
 | |
| 	sall	$8,		%edx
 | |
| .L010ej6:
 | |
| 	movb	5(%esi),	%dh
 | |
| .L011ej5:
 | |
| 	movb	4(%esi),	%dl
 | |
| .L012ej4:
 | |
| 	movl	(%esi),		%ecx
 | |
| 	jmp	.L013ejend
 | |
| .L014ej3:
 | |
| 	movb	2(%esi),	%ch
 | |
| 	sall	$8,		%ecx
 | |
| .L015ej2:
 | |
| 	movb	1(%esi),	%ch
 | |
| .L016ej1:
 | |
| 	movb	(%esi),		%cl
 | |
| .L013ejend:
 | |
| 	xorl	%ecx,		%eax
 | |
| 	xorl	%edx,		%ebx
 | |
| 	movl	%eax,		8(%esp)
 | |
| 	movl	%ebx,		12(%esp)
 | |
| 	call	RC5_32_encrypt
 | |
| 	movl	8(%esp),	%eax
 | |
| 	movl	12(%esp),	%ebx
 | |
| 	movl	%eax,		(%edi)
 | |
| 	movl	%ebx,		4(%edi)
 | |
| 	jmp	.L007finish
 | |
| .align ALIGN
 | |
| .L004decrypt:
 | |
| 	andl	$4294967288,	%ebp
 | |
| 	movl	16(%esp),	%eax
 | |
| 	movl	20(%esp),	%ebx
 | |
| 	jz	.L017decrypt_finish
 | |
| .L018decrypt_loop:
 | |
| 	movl	(%esi),		%eax
 | |
| 	movl	4(%esi),	%ebx
 | |
| 	movl	%eax,		8(%esp)
 | |
| 	movl	%ebx,		12(%esp)
 | |
| 	call	RC5_32_decrypt
 | |
| 	movl	8(%esp),	%eax
 | |
| 	movl	12(%esp),	%ebx
 | |
| 	movl	16(%esp),	%ecx
 | |
| 	movl	20(%esp),	%edx
 | |
| 	xorl	%eax,		%ecx
 | |
| 	xorl	%ebx,		%edx
 | |
| 	movl	(%esi),		%eax
 | |
| 	movl	4(%esi),	%ebx
 | |
| 	movl	%ecx,		(%edi)
 | |
| 	movl	%edx,		4(%edi)
 | |
| 	movl	%eax,		16(%esp)
 | |
| 	movl	%ebx,		20(%esp)
 | |
| 	addl	$8,		%esi
 | |
| 	addl	$8,		%edi
 | |
| 	subl	$8,		%ebp
 | |
| 	jnz	.L018decrypt_loop
 | |
| .L017decrypt_finish:
 | |
| 	movl	52(%esp),	%ebp
 | |
| 	andl	$7,		%ebp
 | |
| 	jz	.L007finish
 | |
| 	movl	(%esi),		%eax
 | |
| 	movl	4(%esi),	%ebx
 | |
| 	movl	%eax,		8(%esp)
 | |
| 	movl	%ebx,		12(%esp)
 | |
| 	call	RC5_32_decrypt
 | |
| 	movl	8(%esp),	%eax
 | |
| 	movl	12(%esp),	%ebx
 | |
| 	movl	16(%esp),	%ecx
 | |
| 	movl	20(%esp),	%edx
 | |
| 	xorl	%eax,		%ecx
 | |
| 	xorl	%ebx,		%edx
 | |
| 	movl	(%esi),		%eax
 | |
| 	movl	4(%esi),	%ebx
 | |
| .L019dj7:
 | |
| 	rorl	$16,		%edx
 | |
| 	movb	%dl,		6(%edi)
 | |
| 	shrl	$16,		%edx
 | |
| .L020dj6:
 | |
| 	movb	%dh,		5(%edi)
 | |
| .L021dj5:
 | |
| 	movb	%dl,		4(%edi)
 | |
| .L022dj4:
 | |
| 	movl	%ecx,		(%edi)
 | |
| 	jmp	.L023djend
 | |
| .L024dj3:
 | |
| 	rorl	$16,		%ecx
 | |
| 	movb	%cl,		2(%edi)
 | |
| 	sall	$16,		%ecx
 | |
| .L025dj2:
 | |
| 	movb	%ch,		1(%esi)
 | |
| .L026dj1:
 | |
| 	movb	%cl,		(%esi)
 | |
| .L023djend:
 | |
| 	jmp	.L007finish
 | |
| .align ALIGN
 | |
| .L007finish:
 | |
| 	movl	60(%esp),	%ecx
 | |
| 	addl	$24,		%esp
 | |
| 	movl	%eax,		(%ecx)
 | |
| 	movl	%ebx,		4(%ecx)
 | |
| 	popl	%edi
 | |
| 	popl	%esi
 | |
| 	popl	%ebx
 | |
| 	popl	%ebp
 | |
| 	ret
 | |
| .align ALIGN
 | |
| .L008cbc_enc_jmp_table:
 | |
| 	.long 0
 | |
| 	.long .L016ej1
 | |
| 	.long .L015ej2
 | |
| 	.long .L014ej3
 | |
| 	.long .L012ej4
 | |
| 	.long .L011ej5
 | |
| 	.long .L010ej6
 | |
| 	.long .L009ej7
 | |
| .align ALIGN
 | |
| .L027cbc_dec_jmp_table:
 | |
| 	.long 0
 | |
| 	.long .L026dj1
 | |
| 	.long .L025dj2
 | |
| 	.long .L024dj3
 | |
| 	.long .L022dj4
 | |
| 	.long .L021dj5
 | |
| 	.long .L020dj6
 | |
| 	.long .L019dj7
 | |
| .RC5_32_cbc_encrypt_end:
 | |
| 	SIZE(RC5_32_cbc_encrypt,.RC5_32_cbc_encrypt_end-RC5_32_cbc_encrypt)
 | |
| .ident	"desasm.pl"
 | 
