You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1838 lines
35 KiB

.file "des-586.s"
.text
.globl DES_SPtrans
.type _x86_DES_encrypt,@function
.align 16
_x86_DES_encrypt:
pushl %ecx
movl (%ecx),%eax
xorl %ebx,%ebx
movl 4(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 8(%ecx),%eax
xorl %ebx,%ebx
movl 12(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 16(%ecx),%eax
xorl %ebx,%ebx
movl 20(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 24(%ecx),%eax
xorl %ebx,%ebx
movl 28(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 32(%ecx),%eax
xorl %ebx,%ebx
movl 36(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 40(%ecx),%eax
xorl %ebx,%ebx
movl 44(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 48(%ecx),%eax
xorl %ebx,%ebx
movl 52(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 56(%ecx),%eax
xorl %ebx,%ebx
movl 60(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 64(%ecx),%eax
xorl %ebx,%ebx
movl 68(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 72(%ecx),%eax
xorl %ebx,%ebx
movl 76(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 80(%ecx),%eax
xorl %ebx,%ebx
movl 84(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 88(%ecx),%eax
xorl %ebx,%ebx
movl 92(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 96(%ecx),%eax
xorl %ebx,%ebx
movl 100(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 104(%ecx),%eax
xorl %ebx,%ebx
movl 108(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 112(%ecx),%eax
xorl %ebx,%ebx
movl 116(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 120(%ecx),%eax
xorl %ebx,%ebx
movl 124(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
addl $4,%esp
ret
.size _x86_DES_encrypt,.-_x86_DES_encrypt
.type _x86_DES_decrypt,@function
.align 16
_x86_DES_decrypt:
pushl %ecx
movl 120(%ecx),%eax
xorl %ebx,%ebx
movl 124(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 112(%ecx),%eax
xorl %ebx,%ebx
movl 116(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 104(%ecx),%eax
xorl %ebx,%ebx
movl 108(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 96(%ecx),%eax
xorl %ebx,%ebx
movl 100(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 88(%ecx),%eax
xorl %ebx,%ebx
movl 92(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 80(%ecx),%eax
xorl %ebx,%ebx
movl 84(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 72(%ecx),%eax
xorl %ebx,%ebx
movl 76(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 64(%ecx),%eax
xorl %ebx,%ebx
movl 68(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 56(%ecx),%eax
xorl %ebx,%ebx
movl 60(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 48(%ecx),%eax
xorl %ebx,%ebx
movl 52(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 40(%ecx),%eax
xorl %ebx,%ebx
movl 44(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 32(%ecx),%eax
xorl %ebx,%ebx
movl 36(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 24(%ecx),%eax
xorl %ebx,%ebx
movl 28(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl 16(%ecx),%eax
xorl %ebx,%ebx
movl 20(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
movl 8(%ecx),%eax
xorl %ebx,%ebx
movl 12(%ecx),%edx
xorl %esi,%eax
xorl %ecx,%ecx
xorl %esi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%edi
xorl 0x700(%ebp,%ecx,1),%edi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%edi
xorl 0x500(%ebp,%edx,1),%edi
movl (%ecx),%eax
xorl %ebx,%ebx
movl 4(%ecx),%edx
xorl %edi,%eax
xorl %ecx,%ecx
xorl %edi,%edx
andl $0xfcfcfcfc,%eax
andl $0xcfcfcfcf,%edx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
xorl 0x600(%ebp,%ebx,1),%esi
xorl 0x700(%ebp,%ecx,1),%esi
movl (%esp),%ecx
xorl 0x400(%ebp,%eax,1),%esi
xorl 0x500(%ebp,%edx,1),%esi
addl $4,%esp
ret
.size _x86_DES_decrypt,.-_x86_DES_decrypt
.globl DES_encrypt1
.type DES_encrypt1,@function
.align 16
DES_encrypt1:
.L_DES_encrypt1_begin:
pushl %esi
pushl %edi
movl 12(%esp),%esi
xorl %ecx,%ecx
pushl %ebx
pushl %ebp
movl (%esi),%eax
movl 28(%esp),%ebx
movl 4(%esi),%edi
roll $4,%eax
movl %eax,%esi
xorl %edi,%eax
andl $0xf0f0f0f0,%eax
xorl %eax,%esi
xorl %eax,%edi
roll $20,%edi
movl %edi,%eax
xorl %esi,%edi
andl $0xfff0000f,%edi
xorl %edi,%eax
xorl %edi,%esi
roll $14,%eax
movl %eax,%edi
xorl %esi,%eax
andl $0x33333333,%eax
xorl %eax,%edi
xorl %eax,%esi
roll $22,%esi
movl %esi,%eax
xorl %edi,%esi
andl $0x03fc03fc,%esi
xorl %esi,%eax
xorl %esi,%edi
roll $9,%eax
movl %eax,%esi
xorl %edi,%eax
andl $0xaaaaaaaa,%eax
xorl %eax,%esi
xorl %eax,%edi
roll $1,%edi
call .L000pic_point
.L000pic_point:
popl %ebp
leal DES_SPtrans-.L000pic_point(%ebp),%ebp
movl 24(%esp),%ecx
cmpl $0,%ebx
je .L001decrypt
call _x86_DES_encrypt
jmp .L002done
.L001decrypt:
call _x86_DES_decrypt
.L002done:
movl 20(%esp),%edx
rorl $1,%esi
movl %edi,%eax
xorl %esi,%edi
andl $0xaaaaaaaa,%edi
xorl %edi,%eax
xorl %edi,%esi
roll $23,%eax
movl %eax,%edi
xorl %esi,%eax
andl $0x03fc03fc,%eax
xorl %eax,%edi
xorl %eax,%esi
roll $10,%edi
movl %edi,%eax
xorl %esi,%edi
andl $0x33333333,%edi
xorl %edi,%eax
xorl %edi,%esi
roll $18,%esi
movl %esi,%edi
xorl %eax,%esi
andl $0xfff0000f,%esi
xorl %esi,%edi
xorl %esi,%eax
roll $12,%edi
movl %edi,%esi
xorl %eax,%edi
andl $0xf0f0f0f0,%edi
xorl %edi,%esi
xorl %edi,%eax
rorl $4,%eax
movl %eax,(%edx)
movl %esi,4(%edx)
popl %ebp
popl %ebx
popl %edi
popl %esi
ret
.size DES_encrypt1,.-.L_DES_encrypt1_begin
.globl DES_encrypt2
.type DES_encrypt2,@function
.align 16
DES_encrypt2:
.L_DES_encrypt2_begin:
pushl %esi
pushl %edi
movl 12(%esp),%eax
xorl %ecx,%ecx
pushl %ebx
pushl %ebp
movl (%eax),%esi
movl 28(%esp),%ebx
roll $3,%esi
movl 4(%eax),%edi
roll $3,%edi
call .L003pic_point
.L003pic_point:
popl %ebp
leal DES_SPtrans-.L003pic_point(%ebp),%ebp
movl 24(%esp),%ecx
cmpl $0,%ebx
je .L004decrypt
call _x86_DES_encrypt
jmp .L005done
.L004decrypt:
call _x86_DES_decrypt
.L005done:
rorl $3,%edi
movl 20(%esp),%eax
rorl $3,%esi
movl %edi,(%eax)
movl %esi,4(%eax)
popl %ebp
popl %ebx
popl %edi
popl %esi
ret
.size DES_encrypt2,.-.L_DES_encrypt2_begin
.globl DES_encrypt3
.type DES_encrypt3,@function
.align 16
DES_encrypt3:
.L_DES_encrypt3_begin:
pushl %ebx
movl 8(%esp),%ebx
pushl %ebp
pushl %esi
pushl %edi
movl (%ebx),%edi
movl 4(%ebx),%esi
subl $12,%esp
roll $4,%edi
movl %edi,%edx
xorl %esi,%edi
andl $0xf0f0f0f0,%edi
xorl %edi,%edx
xorl %edi,%esi
roll $20,%esi
movl %esi,%edi
xorl %edx,%esi
andl $0xfff0000f,%esi
xorl %esi,%edi
xorl %esi,%edx
roll $14,%edi
movl %edi,%esi
xorl %edx,%edi
andl $0x33333333,%edi
xorl %edi,%esi
xorl %edi,%edx
roll $22,%edx
movl %edx,%edi
xorl %esi,%edx
andl $0x03fc03fc,%edx
xorl %edx,%edi
xorl %edx,%esi
roll $9,%edi
movl %edi,%edx
xorl %esi,%edi
andl $0xaaaaaaaa,%edi
xorl %edi,%edx
xorl %edi,%esi
rorl $3,%edx
rorl $2,%esi
movl %esi,4(%ebx)
movl 36(%esp),%eax
movl %edx,(%ebx)
movl 40(%esp),%edi
movl 44(%esp),%esi
movl $1,8(%esp)
movl %eax,4(%esp)
movl %ebx,(%esp)
call .L_DES_encrypt2_begin
movl $0,8(%esp)
movl %edi,4(%esp)
movl %ebx,(%esp)
call .L_DES_encrypt2_begin
movl $1,8(%esp)
movl %esi,4(%esp)
movl %ebx,(%esp)
call .L_DES_encrypt2_begin
addl $12,%esp
movl (%ebx),%edi
movl 4(%ebx),%esi
roll $2,%esi
roll $3,%edi
movl %edi,%eax
xorl %esi,%edi
andl $0xaaaaaaaa,%edi
xorl %edi,%eax
xorl %edi,%esi
roll $23,%eax
movl %eax,%edi
xorl %esi,%eax
andl $0x03fc03fc,%eax
xorl %eax,%edi
xorl %eax,%esi
roll $10,%edi
movl %edi,%eax
xorl %esi,%edi
andl $0x33333333,%edi
xorl %edi,%eax
xorl %edi,%esi
roll $18,%esi
movl %esi,%edi
xorl %eax,%esi
andl $0xfff0000f,%esi
xorl %esi,%edi
xorl %esi,%eax
roll $12,%edi
movl %edi,%esi
xorl %eax,%edi
andl $0xf0f0f0f0,%edi
xorl %edi,%esi
xorl %edi,%eax
rorl $4,%eax
movl %eax,(%ebx)
movl %esi,4(%ebx)
popl %edi
popl %esi
popl %ebp
popl %ebx
ret
.size DES_encrypt3,.-.L_DES_encrypt3_begin
.globl DES_decrypt3
.type DES_decrypt3,@function
.align 16
DES_decrypt3:
.L_DES_decrypt3_begin:
pushl %ebx
movl 8(%esp),%ebx
pushl %ebp
pushl %esi
pushl %edi
movl (%ebx),%edi
movl 4(%ebx),%esi
subl $12,%esp
roll $4,%edi
movl %edi,%edx
xorl %esi,%edi
andl $0xf0f0f0f0,%edi
xorl %edi,%edx
xorl %edi,%esi
roll $20,%esi
movl %esi,%edi
xorl %edx,%esi
andl $0xfff0000f,%esi
xorl %esi,%edi
xorl %esi,%edx
roll $14,%edi
movl %edi,%esi
xorl %edx,%edi
andl $0x33333333,%edi
xorl %edi,%esi
xorl %edi,%edx
roll $22,%edx
movl %edx,%edi
xorl %esi,%edx
andl $0x03fc03fc,%edx
xorl %edx,%edi
xorl %edx,%esi
roll $9,%edi
movl %edi,%edx
xorl %esi,%edi
andl $0xaaaaaaaa,%edi
xorl %edi,%edx
xorl %edi,%esi
rorl $3,%edx
rorl $2,%esi
movl %esi,4(%ebx)
movl 36(%esp),%esi
movl %edx,(%ebx)
movl 40(%esp),%edi
movl 44(%esp),%eax
movl $0,8(%esp)
movl %eax,4(%esp)
movl %ebx,(%esp)
call .L_DES_encrypt2_begin
movl $1,8(%esp)
movl %edi,4(%esp)
movl %ebx,(%esp)
call .L_DES_encrypt2_begin
movl $0,8(%esp)
movl %esi,4(%esp)
movl %ebx,(%esp)
call .L_DES_encrypt2_begin
addl $12,%esp
movl (%ebx),%edi
movl 4(%ebx),%esi
roll $2,%esi
roll $3,%edi
movl %edi,%eax
xorl %esi,%edi
andl $0xaaaaaaaa,%edi
xorl %edi,%eax
xorl %edi,%esi
roll $23,%eax
movl %eax,%edi
xorl %esi,%eax
andl $0x03fc03fc,%eax
xorl %eax,%edi
xorl %eax,%esi
roll $10,%edi
movl %edi,%eax
xorl %esi,%edi
andl $0x33333333,%edi
xorl %edi,%eax
xorl %edi,%esi
roll $18,%esi
movl %esi,%edi
xorl %eax,%esi
andl $0xfff0000f,%esi
xorl %esi,%edi
xorl %esi,%eax
roll $12,%edi
movl %edi,%esi
xorl %eax,%edi
andl $0xf0f0f0f0,%edi
xorl %edi,%esi
xorl %edi,%eax
rorl $4,%eax
movl %eax,(%ebx)
movl %esi,4(%ebx)
popl %edi
popl %esi
popl %ebp
popl %ebx
ret
.size DES_decrypt3,.-.L_DES_decrypt3_begin
.globl DES_ncbc_encrypt
.type DES_ncbc_encrypt,@function
.align 16
DES_ncbc_encrypt:
.L_DES_ncbc_encrypt_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 28(%esp),%ebp
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
movl 56(%esp),%ecx
pushl %ecx
movl 52(%esp),%eax
pushl %eax
pushl %ebx
cmpl $0,%ecx
jz .L006decrypt
andl $4294967288,%ebp
movl 12(%esp),%eax
movl 16(%esp),%ebx
jz .L007encrypt_finish
.L008encrypt_loop:
movl (%esi),%ecx
movl 4(%esi),%edx
xorl %ecx,%eax
xorl %edx,%ebx
movl %eax,12(%esp)
movl %ebx,16(%esp)
call .L_DES_encrypt1_begin
movl 12(%esp),%eax
movl 16(%esp),%ebx
movl %eax,(%edi)
movl %ebx,4(%edi)
addl $8,%esi
addl $8,%edi
subl $8,%ebp
jnz .L008encrypt_loop
.L007encrypt_finish:
movl 56(%esp),%ebp
andl $7,%ebp
jz .L009finish
call .L010PIC_point
.L010PIC_point:
popl %edx
leal .L011cbc_enc_jmp_table-.L010PIC_point(%edx),%ecx
movl (%ecx,%ebp,4),%ebp
addl %edx,%ebp
xorl %ecx,%ecx
xorl %edx,%edx
jmp *%ebp
.L012ej7:
movb 6(%esi),%dh
shll $8,%edx
.L013ej6:
movb 5(%esi),%dh
.L014ej5:
movb 4(%esi),%dl
.L015ej4:
movl (%esi),%ecx
jmp .L016ejend
.L017ej3:
movb 2(%esi),%ch
shll $8,%ecx
.L018ej2:
movb 1(%esi),%ch
.L019ej1:
movb (%esi),%cl
.L016ejend:
xorl %ecx,%eax
xorl %edx,%ebx
movl %eax,12(%esp)
movl %ebx,16(%esp)
call .L_DES_encrypt1_begin
movl 12(%esp),%eax
movl 16(%esp),%ebx
movl %eax,(%edi)
movl %ebx,4(%edi)
jmp .L009finish
.L006decrypt:
andl $4294967288,%ebp
movl 20(%esp),%eax
movl 24(%esp),%ebx
jz .L020decrypt_finish
.L021decrypt_loop:
movl (%esi),%eax
movl 4(%esi),%ebx
movl %eax,12(%esp)
movl %ebx,16(%esp)
call .L_DES_encrypt1_begin
movl 12(%esp),%eax
movl 16(%esp),%ebx
movl 20(%esp),%ecx
movl 24(%esp),%edx
xorl %eax,%ecx
xorl %ebx,%edx
movl (%esi),%eax
movl 4(%esi),%ebx
movl %ecx,(%edi)
movl %edx,4(%edi)
movl %eax,20(%esp)
movl %ebx,24(%esp)
addl $8,%esi
addl $8,%edi
subl $8,%ebp
jnz .L021decrypt_loop
.L020decrypt_finish:
movl 56(%esp),%ebp
andl $7,%ebp
jz .L009finish
movl (%esi),%eax
movl 4(%esi),%ebx
movl %eax,12(%esp)
movl %ebx,16(%esp)
call .L_DES_encrypt1_begin
movl 12(%esp),%eax
movl 16(%esp),%ebx
movl 20(%esp),%ecx
movl 24(%esp),%edx
xorl %eax,%ecx
xorl %ebx,%edx
movl (%esi),%eax
movl 4(%esi),%ebx
.L022dj7:
rorl $16,%edx
movb %dl,6(%edi)
shrl $16,%edx
.L023dj6:
movb %dh,5(%edi)
.L024dj5:
movb %dl,4(%edi)
.L025dj4:
movl %ecx,(%edi)
jmp .L026djend
.L027dj3:
rorl $16,%ecx
movb %cl,2(%edi)
shll $16,%ecx
.L028dj2:
movb %ch,1(%esi)
.L029dj1:
movb %cl,(%esi)
.L026djend:
jmp .L009finish
.L009finish:
movl 64(%esp),%ecx
addl $28,%esp
movl %eax,(%ecx)
movl %ebx,4(%ecx)
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.align 64
.L011cbc_enc_jmp_table:
.long 0
.long .L019ej1-.L010PIC_point
.long .L018ej2-.L010PIC_point
.long .L017ej3-.L010PIC_point
.long .L015ej4-.L010PIC_point
.long .L014ej5-.L010PIC_point
.long .L013ej6-.L010PIC_point
.long .L012ej7-.L010PIC_point
.align 64
.size DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin
.globl DES_ede3_cbc_encrypt
.type DES_ede3_cbc_encrypt,@function
.align 16
DES_ede3_cbc_encrypt:
.L_DES_ede3_cbc_encrypt_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 28(%esp),%ebp
movl 44(%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
movl 64(%esp),%ecx
movl 56(%esp),%eax
pushl %eax
movl 56(%esp),%eax
pushl %eax
movl 56(%esp),%eax
pushl %eax
pushl %ebx
cmpl $0,%ecx
jz .L030decrypt
andl $4294967288,%ebp
movl 16(%esp),%eax
movl 20(%esp),%ebx
jz .L031encrypt_finish
.L032encrypt_loop:
movl (%esi),%ecx
movl 4(%esi),%edx
xorl %ecx,%eax
xorl %edx,%ebx
movl %eax,16(%esp)
movl %ebx,20(%esp)
call .L_DES_encrypt3_begin
movl 16(%esp),%eax
movl 20(%esp),%ebx
movl %eax,(%edi)
movl %ebx,4(%edi)
addl $8,%esi
addl $8,%edi
subl $8,%ebp
jnz .L032encrypt_loop
.L031encrypt_finish:
movl 60(%esp),%ebp
andl $7,%ebp
jz .L033finish
call .L034PIC_point
.L034PIC_point:
popl %edx
leal .L035cbc_enc_jmp_table-.L034PIC_point(%edx),%ecx
movl (%ecx,%ebp,4),%ebp
addl %edx,%ebp
xorl %ecx,%ecx
xorl %edx,%edx
jmp *%ebp
.L036ej7:
movb 6(%esi),%dh
shll $8,%edx
.L037ej6:
movb 5(%esi),%dh
.L038ej5:
movb 4(%esi),%dl
.L039ej4:
movl (%esi),%ecx
jmp .L040ejend
.L041ej3:
movb 2(%esi),%ch
shll $8,%ecx
.L042ej2:
movb 1(%esi),%ch
.L043ej1:
movb (%esi),%cl
.L040ejend:
xorl %ecx,%eax
xorl %edx,%ebx
movl %eax,16(%esp)
movl %ebx,20(%esp)
call .L_DES_encrypt3_begin
movl 16(%esp),%eax
movl 20(%esp),%ebx
movl %eax,(%edi)
movl %ebx,4(%edi)
jmp .L033finish
.L030decrypt:
andl $4294967288,%ebp
movl 24(%esp),%eax
movl 28(%esp),%ebx
jz .L044decrypt_finish
.L045decrypt_loop:
movl (%esi),%eax
movl 4(%esi),%ebx
movl %eax,16(%esp)
movl %ebx,20(%esp)
call .L_DES_decrypt3_begin
movl 16(%esp),%eax
movl 20(%esp),%ebx
movl 24(%esp),%ecx
movl 28(%esp),%edx
xorl %eax,%ecx
xorl %ebx,%edx
movl (%esi),%eax
movl 4(%esi),%ebx
movl %ecx,(%edi)
movl %edx,4(%edi)
movl %eax,24(%esp)
movl %ebx,28(%esp)
addl $8,%esi
addl $8,%edi
subl $8,%ebp
jnz .L045decrypt_loop
.L044decrypt_finish:
movl 60(%esp),%ebp
andl $7,%ebp
jz .L033finish
movl (%esi),%eax
movl 4(%esi),%ebx
movl %eax,16(%esp)
movl %ebx,20(%esp)
call .L_DES_decrypt3_begin
movl 16(%esp),%eax
movl 20(%esp),%ebx
movl 24(%esp),%ecx
movl 28(%esp),%edx
xorl %eax,%ecx
xorl %ebx,%edx
movl (%esi),%eax
movl 4(%esi),%ebx
.L046dj7:
rorl $16,%edx
movb %dl,6(%edi)
shrl $16,%edx
.L047dj6:
movb %dh,5(%edi)
.L048dj5:
movb %dl,4(%edi)
.L049dj4:
movl %ecx,(%edi)
jmp .L050djend
.L051dj3:
rorl $16,%ecx
movb %cl,2(%edi)
shll $16,%ecx
.L052dj2:
movb %ch,1(%esi)
.L053dj1:
movb %cl,(%esi)
.L050djend:
jmp .L033finish
.L033finish:
movl 76(%esp),%ecx
addl $32,%esp
movl %eax,(%ecx)
movl %ebx,4(%ecx)
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.align 64
.L035cbc_enc_jmp_table:
.long 0
.long .L043ej1-.L034PIC_point
.long .L042ej2-.L034PIC_point
.long .L041ej3-.L034PIC_point
.long .L039ej4-.L034PIC_point
.long .L038ej5-.L034PIC_point
.long .L037ej6-.L034PIC_point
.long .L036ej7-.L034PIC_point
.align 64
.size DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin
.align 64
DES_SPtrans:
.long 34080768,524288,33554434,34080770
.long 33554432,526338,524290,33554434
.long 526338,34080768,34078720,2050
.long 33556482,33554432,0,524290
.long 524288,2,33556480,526336
.long 34080770,34078720,2050,33556480
.long 2,2048,526336,34078722
.long 2048,33556482,34078722,0
.long 0,34080770,33556480,524290
.long 34080768,524288,2050,33556480
.long 34078722,2048,526336,33554434
.long 526338,2,33554434,34078720
.long 34080770,526336,34078720,33556482
.long 33554432,2050,524290,0
.long 524288,33554432,33556482,34080768
.long 2,34078722,2048,526338
.long 1074823184,0,1081344,1074790400
.long 1073741840,32784,1073774592,1081344
.long 32768,1074790416,16,1073774592
.long 1048592,1074823168,1074790400,16
.long 1048576,1073774608,1074790416,32768
.long 1081360,1073741824,0,1048592
.long 1073774608,1081360,1074823168,1073741840
.long 1073741824,1048576,32784,1074823184
.long 1048592,1074823168,1073774592,1081360
.long 1074823184,1048592,1073741840,0
.long 1073741824,32784,1048576,1074790416
.long 32768,1073741824,1081360,1073774608
.long 1074823168,32768,0,1073741840
.long 16,1074823184,1081344,1074790400
.long 1074790416,1048576,32784,1073774592
.long 1073774608,16,1074790400,1081344
.long 67108865,67371264,256,67109121
.long 262145,67108864,67109121,262400
.long 67109120,262144,67371008,1
.long 67371265,257,1,67371009
.long 0,262145,67371264,256
.long 257,67371265,262144,67108865
.long 67371009,67109120,262401,67371008
.long 262400,0,67108864,262401
.long 67371264,256,1,262144
.long 257,262145,67371008,67109121
.long 0,67371264,262400,67371009
.long 262145,67108864,67371265,1
.long 262401,67108865,67108864,67371265
.long 262144,67109120,67109121,262400
.long 67109120,0,67371009,257
.long 67108865,262401,256,67371008
.long 4198408,268439552,8,272633864
.long 0,272629760,268439560,4194312
.long 272633856,268435464,268435456,4104
.long 268435464,4198408,4194304,268435456
.long 272629768,4198400,4096,8
.long 4198400,268439560,272629760,4096
.long 4104,0,4194312,272633856
.long 268439552,272629768,272633864,4194304
.long 272629768,4104,4194304,268435464
.long 4198400,268439552,8,272629760
.long 268439560,0,4096,4194312
.long 0,272629768,272633856,4096
.long 268435456,272633864,4198408,4194304
.long 272633864,8,268439552,4198408
.long 4194312,4198400,272629760,268439560
.long 4104,268435456,268435464,272633856
.long 134217728,65536,1024,134284320
.long 134283296,134218752,66592,134283264
.long 65536,32,134217760,66560
.long 134218784,134283296,134284288,0
.long 66560,134217728,65568,1056
.long 134218752,66592,0,134217760
.long 32,134218784,134284320,65568
.long 134283264,1024,1056,134284288
.long 134284288,134218784,65568,134283264
.long 65536,32,134217760,134218752
.long 134217728,66560,134284320,0
.long 66592,134217728,1024,65568
.long 134218784,1024,0,134284320
.long 134283296,134284288,1056,65536
.long 66560,134283296,134218752,1056
.long 32,66592,134283264,134217760
.long 2147483712,2097216,0,2149588992
.long 2097216,8192,2147491904,2097152
.long 8256,2149589056,2105344,2147483648
.long 2147491840,2147483712,2149580800,2105408
.long 2097152,2147491904,2149580864,0
.long 8192,64,2149588992,2149580864
.long 2149589056,2149580800,2147483648,8256
.long 64,2105344,2105408,2147491840
.long 8256,2147483648,2147491840,2105408
.long 2149588992,2097216,0,2147491840
.long 2147483648,8192,2149580864,2097152
.long 2097216,2149589056,2105344,64
.long 2149589056,2105344,2097152,2147491904
.long 2147483712,2149580800,2105408,0
.long 8192,2147483712,2147491904,2149588992
.long 2149580800,8256,64,2149580864
.long 16384,512,16777728,16777220
.long 16794116,16388,16896,0
.long 16777216,16777732,516,16793600
.long 4,16794112,16793600,516
.long 16777732,16384,16388,16794116
.long 0,16777728,16777220,16896
.long 16793604,16900,16794112,4
.long 16900,16793604,512,16777216
.long 16900,16793600,16793604,516
.long 16384,512,16777216,16793604
.long 16777732,16900,16896,0
.long 512,16777220,4,16777728
.long 0,16777732,16777728,16896
.long 516,16384,16794116,16777216
.long 16794112,4,16388,16794116
.long 16777220,16794112,16793600,16388
.long 545259648,545390592,131200,0
.long 537001984,8388736,545259520,545390720
.long 128,536870912,8519680,131200
.long 8519808,537002112,536871040,545259520
.long 131072,8519808,8388736,537001984
.long 545390720,536871040,0,8519680
.long 536870912,8388608,537002112,545259648
.long 8388608,131072,545390592,128
.long 8388608,131072,536871040,545390720
.long 131200,536870912,0,8519680
.long 545259648,537002112,537001984,8388736
.long 545390592,128,8388736,537001984
.long 545390720,8388608,545259520,536871040
.long 8519680,131200,537002112,545259520
.long 128,545390592,8519808,0
.long 536870912,545259648,131072,8519808