mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-21 07:27:30 +00:00
1838 lines
35 KiB
ArmAsm
1838 lines
35 KiB
ArmAsm
|
.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
|