popq %rbp
.byte 0xf3,0xc3
.size padlock_cbc_encrypt,.-padlock_cbc_encrypt
-.globl padlock_cfb_encrypt
-.type padlock_cfb_encrypt,@function
-.align 16
-padlock_cfb_encrypt:
- pushq %rbp
- pushq %rbx
-
- xorl %eax,%eax
- testq $15,%rdx
- jnz .Lcfb_abort
- testq $15,%rcx
- jnz .Lcfb_abort
- leaq .Lpadlock_saved_context(%rip),%rax
- pushf
- cld
- call _padlock_verify_ctx
- leaq 16(%rdx),%rdx
- xorl %eax,%eax
- xorl %ebx,%ebx
- testl $32,(%rdx)
- testq $15,%rdi
- setz %al
- testq $15,%rsi
- setz %bl
- testl %ebx,%eax
- jnz .Lcfb_aligned
- negq %rax
- movq $512,%rbx
- notq %rax
- leaq (%rsp),%rbp
- cmpq %rbx,%rcx
- cmovcq %rcx,%rbx
- andq %rbx,%rax
- movq %rcx,%rbx
- negq %rax
- andq $512-1,%rbx
- leaq (%rax,%rbp,1),%rsp
- jmp .Lcfb_loop
-.align 16
-.Lcfb_loop:
- movq %rdi,%r8
- movq %rsi,%r9
- movq %rcx,%r10
- movq %rbx,%rcx
- movq %rbx,%r11
- testq $15,%rdi
- cmovnzq %rsp,%rdi
- testq $15,%rsi
- jz .Lcfb_inp_aligned
- shrq $3,%rcx
-.byte 0xf3,0x48,0xa5
- subq %rbx,%rdi
- movq %rbx,%rcx
- movq %rdi,%rsi
-.Lcfb_inp_aligned:
- leaq -16(%rdx),%rax
- leaq 16(%rdx),%rbx
- shrq $4,%rcx
-.byte 0xf3,0x0f,0xa7,224
- movdqa (%rax),%xmm0
- movdqa %xmm0,-16(%rdx)
- movq %r8,%rdi
- movq %r11,%rbx
- testq $15,%rdi
- jz .Lcfb_out_aligned
- movq %rbx,%rcx
- shrq $3,%rcx
- leaq (%rsp),%rsi
-.byte 0xf3,0x48,0xa5
- subq %rbx,%rdi
-.Lcfb_out_aligned:
- movq %r9,%rsi
- movq %r10,%rcx
- addq %rbx,%rdi
- addq %rbx,%rsi
- subq %rbx,%rcx
- movq $512,%rbx
- jnz .Lcfb_loop
-
- testq $15,%rdi
- jz .Lcfb_done
-
- movq %rbp,%rcx
- movq %rsp,%rdi
- subq %rsp,%rcx
- xorq %rax,%rax
- shrq $3,%rcx
-.byte 0xf3,0x48,0xab
-.Lcfb_done:
- leaq (%rbp),%rsp
- jmp .Lcfb_exit
-
-.align 16
-.Lcfb_aligned:
- leaq -16(%rdx),%rax
- leaq 16(%rdx),%rbx
- shrq $4,%rcx
-.byte 0xf3,0x0f,0xa7,224
- movdqa (%rax),%xmm0
- movdqa %xmm0,-16(%rdx)
-.Lcfb_exit:
- movl $1,%eax
- leaq 8(%rsp),%rsp
-.Lcfb_abort:
- popq %rbx
- popq %rbp
- .byte 0xf3,0xc3
-.size padlock_cfb_encrypt,.-padlock_cfb_encrypt
-.globl padlock_ofb_encrypt
-.type padlock_ofb_encrypt,@function
-.align 16
-padlock_ofb_encrypt:
- pushq %rbp
- pushq %rbx
-
- xorl %eax,%eax
- testq $15,%rdx
- jnz .Lofb_abort
- testq $15,%rcx
- jnz .Lofb_abort
- leaq .Lpadlock_saved_context(%rip),%rax
- pushf
- cld
- call _padlock_verify_ctx
- leaq 16(%rdx),%rdx
- xorl %eax,%eax
- xorl %ebx,%ebx
- testl $32,(%rdx)
- testq $15,%rdi
- setz %al
- testq $15,%rsi
- setz %bl
- testl %ebx,%eax
- jnz .Lofb_aligned
- negq %rax
- movq $512,%rbx
- notq %rax
- leaq (%rsp),%rbp
- cmpq %rbx,%rcx
- cmovcq %rcx,%rbx
- andq %rbx,%rax
- movq %rcx,%rbx
- negq %rax
- andq $512-1,%rbx
- leaq (%rax,%rbp,1),%rsp
- jmp .Lofb_loop
-.align 16
-.Lofb_loop:
- movq %rdi,%r8
- movq %rsi,%r9
- movq %rcx,%r10
- movq %rbx,%rcx
- movq %rbx,%r11
- testq $15,%rdi
- cmovnzq %rsp,%rdi
- testq $15,%rsi
- jz .Lofb_inp_aligned
- shrq $3,%rcx
-.byte 0xf3,0x48,0xa5
- subq %rbx,%rdi
- movq %rbx,%rcx
- movq %rdi,%rsi
-.Lofb_inp_aligned:
- leaq -16(%rdx),%rax
- leaq 16(%rdx),%rbx
- shrq $4,%rcx
-.byte 0xf3,0x0f,0xa7,232
- movdqa (%rax),%xmm0
- movdqa %xmm0,-16(%rdx)
- movq %r8,%rdi
- movq %r11,%rbx
- testq $15,%rdi
- jz .Lofb_out_aligned
- movq %rbx,%rcx
- shrq $3,%rcx
- leaq (%rsp),%rsi
-.byte 0xf3,0x48,0xa5
- subq %rbx,%rdi
-.Lofb_out_aligned:
- movq %r9,%rsi
- movq %r10,%rcx
- addq %rbx,%rdi
- addq %rbx,%rsi
- subq %rbx,%rcx
- movq $512,%rbx
- jnz .Lofb_loop
-
- testq $15,%rdi
- jz .Lofb_done
-
- movq %rbp,%rcx
- movq %rsp,%rdi
- subq %rsp,%rcx
- xorq %rax,%rax
- shrq $3,%rcx
-.byte 0xf3,0x48,0xab
-.Lofb_done:
- leaq (%rbp),%rsp
- jmp .Lofb_exit
-
-.align 16
-.Lofb_aligned:
- leaq -16(%rdx),%rax
- leaq 16(%rdx),%rbx
- shrq $4,%rcx
-.byte 0xf3,0x0f,0xa7,232
- movdqa (%rax),%xmm0
- movdqa %xmm0,-16(%rdx)
-.Lofb_exit:
- movl $1,%eax
- leaq 8(%rsp),%rsp
-.Lofb_abort:
- popq %rbx
- popq %rbp
- .byte 0xf3,0xc3
-.size padlock_ofb_encrypt,.-padlock_ofb_encrypt
-.globl padlock_ctr16_encrypt
-.type padlock_ctr16_encrypt,@function
-.align 16
-padlock_ctr16_encrypt:
- pushq %rbp
- pushq %rbx
-
- xorl %eax,%eax
- testq $15,%rdx
- jnz .Lctr16_abort
- testq $15,%rcx
- jnz .Lctr16_abort
- leaq .Lpadlock_saved_context(%rip),%rax
- pushf
- cld
- call _padlock_verify_ctx
- leaq 16(%rdx),%rdx
- xorl %eax,%eax
- xorl %ebx,%ebx
- testl $32,(%rdx)
- testq $15,%rdi
- setz %al
- testq $15,%rsi
- setz %bl
- testl %ebx,%eax
- jnz .Lctr16_aligned
- negq %rax
- movq $512,%rbx
- notq %rax
- leaq (%rsp),%rbp
- cmpq %rbx,%rcx
- cmovcq %rcx,%rbx
- andq %rbx,%rax
- movq %rcx,%rbx
- negq %rax
- andq $512-1,%rbx
- leaq (%rax,%rbp,1),%rsp
- jmp .Lctr16_loop
-.align 16
-.Lctr16_loop:
- movq %rdi,%r8
- movq %rsi,%r9
- movq %rcx,%r10
- movq %rbx,%rcx
- movq %rbx,%r11
- testq $15,%rdi
- cmovnzq %rsp,%rdi
- testq $15,%rsi
- jz .Lctr16_inp_aligned
- shrq $3,%rcx
-.byte 0xf3,0x48,0xa5
- subq %rbx,%rdi
- movq %rbx,%rcx
- movq %rdi,%rsi
-.Lctr16_inp_aligned:
- leaq -16(%rdx),%rax
- leaq 16(%rdx),%rbx
- shrq $4,%rcx
-.byte 0xf3,0x0f,0xa7,216
- movq %r8,%rdi
- movq %r11,%rbx
- testq $15,%rdi
- jz .Lctr16_out_aligned
- movq %rbx,%rcx
- shrq $3,%rcx
- leaq (%rsp),%rsi
-.byte 0xf3,0x48,0xa5
- subq %rbx,%rdi
-.Lctr16_out_aligned:
- movq %r9,%rsi
- movq %r10,%rcx
- addq %rbx,%rdi
- addq %rbx,%rsi
- subq %rbx,%rcx
- movq $512,%rbx
- jnz .Lctr16_loop
-
- testq $15,%rdi
- jz .Lctr16_done
-
- movq %rbp,%rcx
- movq %rsp,%rdi
- subq %rsp,%rcx
- xorq %rax,%rax
- shrq $3,%rcx
-.byte 0xf3,0x48,0xab
-.Lctr16_done:
- leaq (%rbp),%rsp
- jmp .Lctr16_exit
-
-.align 16
-.Lctr16_aligned:
- leaq -16(%rdx),%rax
- leaq 16(%rdx),%rbx
- shrq $4,%rcx
-.byte 0xf3,0x0f,0xa7,216
-.Lctr16_exit:
- movl $1,%eax
- leaq 8(%rsp),%rsp
-.Lctr16_abort:
- popq %rbx
- popq %rbp
- .byte 0xf3,0xc3
-.size padlock_ctr16_encrypt,.-padlock_ctr16_encrypt
.byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,95,54,52,32,109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 16
.data
popl %edi
ret
.size padlock_aes_block,.-.L_padlock_aes_block_begin
-.globl padlock_ecb_encrypt
-.type padlock_ecb_encrypt,@function
-.align 16
-padlock_ecb_encrypt:
-.L_padlock_ecb_encrypt_begin:
- pushl %ebp
- pushl %ebx
- pushl %esi
- pushl %edi
- movl 20(%esp),%edi
- movl 24(%esp),%esi
- movl 28(%esp),%edx
- movl 32(%esp),%ecx
- testl $15,%edx
- jnz .L004ecb_abort
- testl $15,%ecx
- jnz .L004ecb_abort
- leal .Lpadlock_saved_context-.L005ecb_pic_point,%eax
- pushfl
- cld
- call _padlock_verify_ctx
-.L005ecb_pic_point:
- leal 16(%edx),%edx
- xorl %eax,%eax
- xorl %ebx,%ebx
- testl $32,(%edx)
- jnz .L006ecb_aligned
- testl $15,%edi
- setz %al
- testl $15,%esi
- setz %bl
- testl %ebx,%eax
- jnz .L006ecb_aligned
- negl %eax
- movl $512,%ebx
- notl %eax
- leal -24(%esp),%ebp
- cmpl %ebx,%ecx
- cmovcl %ecx,%ebx
- andl %ebx,%eax
- movl %ecx,%ebx
- negl %eax
- andl $511,%ebx
- leal (%eax,%ebp,1),%esp
- andl $-16,%esp
- jmp .L007ecb_loop
-.align 16
-.L007ecb_loop:
- movl %edi,(%ebp)
- movl %esi,4(%ebp)
- movl %ecx,8(%ebp)
- movl %ebx,%ecx
- movl %ebx,12(%ebp)
- testl $15,%edi
- cmovnzl %esp,%edi
- testl $15,%esi
- jz .L008ecb_inp_aligned
- shrl $2,%ecx
-.byte 243,165
- subl %ebx,%edi
- movl %ebx,%ecx
- movl %edi,%esi
-.L008ecb_inp_aligned:
- leal -16(%edx),%eax
- leal 16(%edx),%ebx
- shrl $4,%ecx
-.byte 243,15,167,200
- movl (%ebp),%edi
- movl 12(%ebp),%ebx
- testl $15,%edi
- jz .L009ecb_out_aligned
- movl %ebx,%ecx
- shrl $2,%ecx
- leal (%esp),%esi
-.byte 243,165
- subl %ebx,%edi
-.L009ecb_out_aligned:
- movl 4(%ebp),%esi
- movl 8(%ebp),%ecx
- addl %ebx,%edi
- addl %ebx,%esi
- subl %ebx,%ecx
- movl $512,%ebx
- jnz .L007ecb_loop
- testl $15,%edi
- jz .L010ecb_done
- movl %ebp,%ecx
- movl %esp,%edi
- subl %esp,%ecx
- xorl %eax,%eax
- shrl $2,%ecx
-.byte 243,171
-.L010ecb_done:
- leal 24(%ebp),%esp
- jmp .L011ecb_exit
-.align 16
-.L006ecb_aligned:
- leal -16(%edx),%eax
- leal 16(%edx),%ebx
- shrl $4,%ecx
-.byte 243,15,167,200
-.L011ecb_exit:
- movl $1,%eax
- leal 4(%esp),%esp
-.L004ecb_abort:
- popl %edi
- popl %esi
- popl %ebx
- popl %ebp
- ret
-.size padlock_ecb_encrypt,.-.L_padlock_ecb_encrypt_begin
.globl padlock_cbc_encrypt
.type padlock_cbc_encrypt,@function
.align 16
popl %ebp
ret
.size padlock_cbc_encrypt,.-.L_padlock_cbc_encrypt_begin
-.globl padlock_cfb_encrypt
-.type padlock_cfb_encrypt,@function
-.align 16
-padlock_cfb_encrypt:
-.L_padlock_cfb_encrypt_begin:
- pushl %ebp
- pushl %ebx
- pushl %esi
- pushl %edi
- movl 20(%esp),%edi
- movl 24(%esp),%esi
- movl 28(%esp),%edx
- movl 32(%esp),%ecx
- testl $15,%edx
- jnz .L020cfb_abort
- testl $15,%ecx
- jnz .L020cfb_abort
- leal .Lpadlock_saved_context-.L021cfb_pic_point,%eax
- pushfl
- cld
- call _padlock_verify_ctx
-.L021cfb_pic_point:
- leal 16(%edx),%edx
- xorl %eax,%eax
- xorl %ebx,%ebx
- testl $32,(%edx)
- jnz .L022cfb_aligned
- testl $15,%edi
- setz %al
- testl $15,%esi
- setz %bl
- testl %ebx,%eax
- jnz .L022cfb_aligned
- negl %eax
- movl $512,%ebx
- notl %eax
- leal -24(%esp),%ebp
- cmpl %ebx,%ecx
- cmovcl %ecx,%ebx
- andl %ebx,%eax
- movl %ecx,%ebx
- negl %eax
- andl $511,%ebx
- leal (%eax,%ebp,1),%esp
- andl $-16,%esp
- jmp .L023cfb_loop
-.align 16
-.L023cfb_loop:
- movl %edi,(%ebp)
- movl %esi,4(%ebp)
- movl %ecx,8(%ebp)
- movl %ebx,%ecx
- movl %ebx,12(%ebp)
- testl $15,%edi
- cmovnzl %esp,%edi
- testl $15,%esi
- jz .L024cfb_inp_aligned
- shrl $2,%ecx
-.byte 243,165
- subl %ebx,%edi
- movl %ebx,%ecx
- movl %edi,%esi
-.L024cfb_inp_aligned:
- leal -16(%edx),%eax
- leal 16(%edx),%ebx
- shrl $4,%ecx
-.byte 243,15,167,224
- movdqa (%eax),%xmm0
- movdqa %xmm0,-16(%edx)
- movl (%ebp),%edi
- movl 12(%ebp),%ebx
- testl $15,%edi
- jz .L025cfb_out_aligned
- movl %ebx,%ecx
- shrl $2,%ecx
- leal (%esp),%esi
-.byte 243,165
- subl %ebx,%edi
-.L025cfb_out_aligned:
- movl 4(%ebp),%esi
- movl 8(%ebp),%ecx
- addl %ebx,%edi
- addl %ebx,%esi
- subl %ebx,%ecx
- movl $512,%ebx
- jnz .L023cfb_loop
- testl $15,%edi
- jz .L026cfb_done
- movl %ebp,%ecx
- movl %esp,%edi
- subl %esp,%ecx
- xorl %eax,%eax
- shrl $2,%ecx
-.byte 243,171
-.L026cfb_done:
- leal 24(%ebp),%esp
- jmp .L027cfb_exit
-.align 16
-.L022cfb_aligned:
- leal -16(%edx),%eax
- leal 16(%edx),%ebx
- shrl $4,%ecx
-.byte 243,15,167,224
- movdqa (%eax),%xmm0
- movdqa %xmm0,-16(%edx)
-.L027cfb_exit:
- movl $1,%eax
- leal 4(%esp),%esp
-.L020cfb_abort:
- popl %edi
- popl %esi
- popl %ebx
- popl %ebp
- ret
-.size padlock_cfb_encrypt,.-.L_padlock_cfb_encrypt_begin
-.globl padlock_ofb_encrypt
-.type padlock_ofb_encrypt,@function
-.align 16
-padlock_ofb_encrypt:
-.L_padlock_ofb_encrypt_begin:
- pushl %ebp
- pushl %ebx
- pushl %esi
- pushl %edi
- movl 20(%esp),%edi
- movl 24(%esp),%esi
- movl 28(%esp),%edx
- movl 32(%esp),%ecx
- testl $15,%edx
- jnz .L028ofb_abort
- testl $15,%ecx
- jnz .L028ofb_abort
- leal .Lpadlock_saved_context-.L029ofb_pic_point,%eax
- pushfl
- cld
- call _padlock_verify_ctx
-.L029ofb_pic_point:
- leal 16(%edx),%edx
- xorl %eax,%eax
- xorl %ebx,%ebx
- testl $32,(%edx)
- jnz .L030ofb_aligned
- testl $15,%edi
- setz %al
- testl $15,%esi
- setz %bl
- testl %ebx,%eax
- jnz .L030ofb_aligned
- negl %eax
- movl $512,%ebx
- notl %eax
- leal -24(%esp),%ebp
- cmpl %ebx,%ecx
- cmovcl %ecx,%ebx
- andl %ebx,%eax
- movl %ecx,%ebx
- negl %eax
- andl $511,%ebx
- leal (%eax,%ebp,1),%esp
- andl $-16,%esp
- jmp .L031ofb_loop
-.align 16
-.L031ofb_loop:
- movl %edi,(%ebp)
- movl %esi,4(%ebp)
- movl %ecx,8(%ebp)
- movl %ebx,%ecx
- movl %ebx,12(%ebp)
- testl $15,%edi
- cmovnzl %esp,%edi
- testl $15,%esi
- jz .L032ofb_inp_aligned
- shrl $2,%ecx
-.byte 243,165
- subl %ebx,%edi
- movl %ebx,%ecx
- movl %edi,%esi
-.L032ofb_inp_aligned:
- leal -16(%edx),%eax
- leal 16(%edx),%ebx
- shrl $4,%ecx
-.byte 243,15,167,232
- movdqa (%eax),%xmm0
- movdqa %xmm0,-16(%edx)
- movl (%ebp),%edi
- movl 12(%ebp),%ebx
- testl $15,%edi
- jz .L033ofb_out_aligned
- movl %ebx,%ecx
- shrl $2,%ecx
- leal (%esp),%esi
-.byte 243,165
- subl %ebx,%edi
-.L033ofb_out_aligned:
- movl 4(%ebp),%esi
- movl 8(%ebp),%ecx
- addl %ebx,%edi
- addl %ebx,%esi
- subl %ebx,%ecx
- movl $512,%ebx
- jnz .L031ofb_loop
- testl $15,%edi
- jz .L034ofb_done
- movl %ebp,%ecx
- movl %esp,%edi
- subl %esp,%ecx
- xorl %eax,%eax
- shrl $2,%ecx
-.byte 243,171
-.L034ofb_done:
- leal 24(%ebp),%esp
- jmp .L035ofb_exit
-.align 16
-.L030ofb_aligned:
- leal -16(%edx),%eax
- leal 16(%edx),%ebx
- shrl $4,%ecx
-.byte 243,15,167,232
- movdqa (%eax),%xmm0
- movdqa %xmm0,-16(%edx)
-.L035ofb_exit:
- movl $1,%eax
- leal 4(%esp),%esp
-.L028ofb_abort:
- popl %edi
- popl %esi
- popl %ebx
- popl %ebp
- ret
-.size padlock_ofb_encrypt,.-.L_padlock_ofb_encrypt_begin
-.globl padlock_ctr16_encrypt
-.type padlock_ctr16_encrypt,@function
-.align 16
-padlock_ctr16_encrypt:
-.L_padlock_ctr16_encrypt_begin:
- pushl %ebp
- pushl %ebx
- pushl %esi
- pushl %edi
- movl 20(%esp),%edi
- movl 24(%esp),%esi
- movl 28(%esp),%edx
- movl 32(%esp),%ecx
- testl $15,%edx
- jnz .L036ctr16_abort
- testl $15,%ecx
- jnz .L036ctr16_abort
- leal .Lpadlock_saved_context-.L037ctr16_pic_point,%eax
- pushfl
- cld
- call _padlock_verify_ctx
-.L037ctr16_pic_point:
- leal 16(%edx),%edx
- xorl %eax,%eax
- movdqa -16(%edx),%xmm0
- movl $512,%ebx
- notl %eax
- leal -24(%esp),%ebp
- cmpl %ebx,%ecx
- cmovcl %ecx,%ebx
- andl %ebx,%eax
- movl %ecx,%ebx
- negl %eax
- andl $511,%ebx
- leal (%eax,%ebp,1),%esp
- andl $-16,%esp
- jmp .L038ctr16_loop
-.align 16
-.L038ctr16_loop:
- movl %edi,(%ebp)
- movl %esi,4(%ebp)
- movl %ecx,8(%ebp)
- movl %ebx,%ecx
- movl %ebx,12(%ebp)
- pextrw $7,%xmm0,%ecx
- movl $1,%esi
- xorl %edi,%edi
- xchgb %cl,%ch
-.L039ctr16_prepare:
- movdqa %xmm0,(%esp,%edi,1)
- leal (%ecx,%esi,1),%eax
- xchgb %al,%ah
- leal 16(%edi),%edi
- pinsrw $7,%eax,%xmm0
- leal 1(%esi),%esi
- cmpl %ebx,%edi
- jb .L039ctr16_prepare
- leal (%esp),%esi
- leal (%esp),%edi
- movl %ebx,%ecx
- leal -16(%edx),%eax
- leal 16(%edx),%ebx
- shrl $4,%ecx
-.byte 243,15,167,200
- movl (%ebp),%edi
- movl 12(%ebp),%ebx
- movl 4(%ebp),%esi
- xorl %ecx,%ecx
-.L040ctr16_xor:
- movdqu (%esi,%ecx,1),%xmm1
- leal 16(%ecx),%ecx
- pxor -16(%esp,%ecx,1),%xmm1
- movdqu %xmm1,-16(%edi,%ecx,1)
- cmpl %ebx,%ecx
- jb .L040ctr16_xor
- movl 8(%ebp),%ecx
- addl %ebx,%edi
- addl %ebx,%esi
- subl %ebx,%ecx
- movl $512,%ebx
- jnz .L038ctr16_loop
- movdqa %xmm0,-16(%edx)
- pxor %xmm0,%xmm0
- pxor %xmm1,%xmm1
- movl %ebp,%ecx
- movl %esp,%edi
- subl %esp,%ecx
- xorl %eax,%eax
- shrl $2,%ecx
-.byte 243,171
-.L041ctr16_done:
- leal 24(%ebp),%esp
- movl $1,%eax
- leal 4(%esp),%esp
-.L036ctr16_abort:
- popl %edi
- popl %esi
- popl %ebx
- popl %ebp
- ret
-.size padlock_ctr16_encrypt,.-.L_padlock_ctr16_encrypt_begin
.globl padlock_xstore
.type padlock_xstore,@function
.align 16