Commit 745e7f1d by Enrico Pozzobon

deleted bit-sliced avr versions from Rhys

parent 19932b3b
#if defined(__AVR__)
#include <avr/io.h>
/* Automatically generated - do not edit */
.section .progmem.data,"a",@progbits
.p2align 8
.type table_0, @object
.size table_0, 40
table_0:
.byte 1
.byte 3
.byte 7
.byte 15
.byte 31
.byte 62
.byte 61
.byte 59
.byte 55
.byte 47
.byte 30
.byte 60
.byte 57
.byte 51
.byte 39
.byte 14
.byte 29
.byte 58
.byte 53
.byte 43
.byte 22
.byte 44
.byte 24
.byte 48
.byte 33
.byte 2
.byte 5
.byte 11
.byte 23
.byte 46
.byte 28
.byte 56
.byte 49
.byte 35
.byte 6
.byte 13
.byte 27
.byte 54
.byte 45
.byte 26
.text
.global gift128n_init
.type gift128n_init, @function
gift128n_init:
movw r30,r24
movw r26,r22
.L__stack_usage = 2
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
std Z+12,r18
std Z+13,r19
std Z+14,r20
std Z+15,r21
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
std Z+8,r18
std Z+9,r19
std Z+10,r20
std Z+11,r21
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
std Z+4,r18
std Z+5,r19
std Z+6,r20
std Z+7,r21
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
st Z,r18
std Z+1,r19
std Z+2,r20
std Z+3,r21
ret
.size gift128n_init, .-gift128n_init
.text
.global gift128n_encrypt
.type gift128n_encrypt, @function
gift128n_encrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r22,0
bst r18,1
bld r4,0
bst r18,2
bld r8,0
bst r18,3
bld r12,0
bst r18,4
bld r22,1
bst r18,5
bld r4,1
bst r18,6
bld r8,1
bst r18,7
bld r12,1
bst r19,0
bld r22,2
bst r19,1
bld r4,2
bst r19,2
bld r8,2
bst r19,3
bld r12,2
bst r19,4
bld r22,3
bst r19,5
bld r4,3
bst r19,6
bld r8,3
bst r19,7
bld r12,3
bst r20,0
bld r22,4
bst r20,1
bld r4,4
bst r20,2
bld r8,4
bst r20,3
bld r12,4
bst r20,4
bld r22,5
bst r20,5
bld r4,5
bst r20,6
bld r8,5
bst r20,7
bld r12,5
bst r21,0
bld r22,6
bst r21,1
bld r4,6
bst r21,2
bld r8,6
bst r21,3
bld r12,6
bst r21,4
bld r22,7
bst r21,5
bld r4,7
bst r21,6
bld r8,7
bst r21,7
bld r12,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r23,0
bst r18,1
bld r5,0
bst r18,2
bld r9,0
bst r18,3
bld r13,0
bst r18,4
bld r23,1
bst r18,5
bld r5,1
bst r18,6
bld r9,1
bst r18,7
bld r13,1
bst r19,0
bld r23,2
bst r19,1
bld r5,2
bst r19,2
bld r9,2
bst r19,3
bld r13,2
bst r19,4
bld r23,3
bst r19,5
bld r5,3
bst r19,6
bld r9,3
bst r19,7
bld r13,3
bst r20,0
bld r23,4
bst r20,1
bld r5,4
bst r20,2
bld r9,4
bst r20,3
bld r13,4
bst r20,4
bld r23,5
bst r20,5
bld r5,5
bst r20,6
bld r9,5
bst r20,7
bld r13,5
bst r21,0
bld r23,6
bst r21,1
bld r5,6
bst r21,2
bld r9,6
bst r21,3
bld r13,6
bst r21,4
bld r23,7
bst r21,5
bld r5,7
bst r21,6
bld r9,7
bst r21,7
bld r13,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r2,0
bst r18,1
bld r6,0
bst r18,2
bld r10,0
bst r18,3
bld r14,0
bst r18,4
bld r2,1
bst r18,5
bld r6,1
bst r18,6
bld r10,1
bst r18,7
bld r14,1
bst r19,0
bld r2,2
bst r19,1
bld r6,2
bst r19,2
bld r10,2
bst r19,3
bld r14,2
bst r19,4
bld r2,3
bst r19,5
bld r6,3
bst r19,6
bld r10,3
bst r19,7
bld r14,3
bst r20,0
bld r2,4
bst r20,1
bld r6,4
bst r20,2
bld r10,4
bst r20,3
bld r14,4
bst r20,4
bld r2,5
bst r20,5
bld r6,5
bst r20,6
bld r10,5
bst r20,7
bld r14,5
bst r21,0
bld r2,6
bst r21,1
bld r6,6
bst r21,2
bld r10,6
bst r21,3
bld r14,6
bst r21,4
bld r2,7
bst r21,5
bld r6,7
bst r21,6
bld r10,7
bst r21,7
bld r14,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r3,0
bst r18,1
bld r7,0
bst r18,2
bld r11,0
bst r18,3
bld r15,0
bst r18,4
bld r3,1
bst r18,5
bld r7,1
bst r18,6
bld r11,1
bst r18,7
bld r15,1
bst r19,0
bld r3,2
bst r19,1
bld r7,2
bst r19,2
bld r11,2
bst r19,3
bld r15,2
bst r19,4
bld r3,3
bst r19,5
bld r7,3
bst r19,6
bld r11,3
bst r19,7
bld r15,3
bst r20,0
bld r3,4
bst r20,1
bld r7,4
bst r20,2
bld r11,4
bst r20,3
bld r15,4
bst r20,4
bld r3,5
bst r20,5
bld r7,5
bst r20,6
bld r11,5
bst r20,7
bld r15,5
bst r21,0
bld r3,6
bst r21,1
bld r7,6
bst r21,2
bld r11,6
bst r21,3
bld r15,6
bst r21,4
bld r3,7
bst r21,5
bld r7,7
bst r21,6
bld r11,7
bst r21,7
bld r15,7
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
302:
rcall 455f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 455f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 455f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 455f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 302b
rjmp 804f
455:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
804:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
bst r22,0
bld r18,0
bst r4,0
bld r18,1
bst r8,0
bld r18,2
bst r12,0
bld r18,3
bst r22,1
bld r18,4
bst r4,1
bld r18,5
bst r8,1
bld r18,6
bst r12,1
bld r18,7
bst r22,2
bld r19,0
bst r4,2
bld r19,1
bst r8,2
bld r19,2
bst r12,2
bld r19,3
bst r22,3
bld r19,4
bst r4,3
bld r19,5
bst r8,3
bld r19,6
bst r12,3
bld r19,7
bst r22,4
bld r20,0
bst r4,4
bld r20,1
bst r8,4
bld r20,2
bst r12,4
bld r20,3
bst r22,5
bld r20,4
bst r4,5
bld r20,5
bst r8,5
bld r20,6
bst r12,5
bld r20,7
bst r22,6
bld r21,0
bst r4,6
bld r21,1
bst r8,6
bld r21,2
bst r12,6
bld r21,3
bst r22,7
bld r21,4
bst r4,7
bld r21,5
bst r8,7
bld r21,6
bst r12,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r23,0
bld r18,0
bst r5,0
bld r18,1
bst r9,0
bld r18,2
bst r13,0
bld r18,3
bst r23,1
bld r18,4
bst r5,1
bld r18,5
bst r9,1
bld r18,6
bst r13,1
bld r18,7
bst r23,2
bld r19,0
bst r5,2
bld r19,1
bst r9,2
bld r19,2
bst r13,2
bld r19,3
bst r23,3
bld r19,4
bst r5,3
bld r19,5
bst r9,3
bld r19,6
bst r13,3
bld r19,7
bst r23,4
bld r20,0
bst r5,4
bld r20,1
bst r9,4
bld r20,2
bst r13,4
bld r20,3
bst r23,5
bld r20,4
bst r5,5
bld r20,5
bst r9,5
bld r20,6
bst r13,5
bld r20,7
bst r23,6
bld r21,0
bst r5,6
bld r21,1
bst r9,6
bld r21,2
bst r13,6
bld r21,3
bst r23,7
bld r21,4
bst r5,7
bld r21,5
bst r9,7
bld r21,6
bst r13,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r2,0
bld r18,0
bst r6,0
bld r18,1
bst r10,0
bld r18,2
bst r14,0
bld r18,3
bst r2,1
bld r18,4
bst r6,1
bld r18,5
bst r10,1
bld r18,6
bst r14,1
bld r18,7
bst r2,2
bld r19,0
bst r6,2
bld r19,1
bst r10,2
bld r19,2
bst r14,2
bld r19,3
bst r2,3
bld r19,4
bst r6,3
bld r19,5
bst r10,3
bld r19,6
bst r14,3
bld r19,7
bst r2,4
bld r20,0
bst r6,4
bld r20,1
bst r10,4
bld r20,2
bst r14,4
bld r20,3
bst r2,5
bld r20,4
bst r6,5
bld r20,5
bst r10,5
bld r20,6
bst r14,5
bld r20,7
bst r2,6
bld r21,0
bst r6,6
bld r21,1
bst r10,6
bld r21,2
bst r14,6
bld r21,3
bst r2,7
bld r21,4
bst r6,7
bld r21,5
bst r10,7
bld r21,6
bst r14,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r3,0
bld r18,0
bst r7,0
bld r18,1
bst r11,0
bld r18,2
bst r15,0
bld r18,3
bst r3,1
bld r18,4
bst r7,1
bld r18,5
bst r11,1
bld r18,6
bst r15,1
bld r18,7
bst r3,2
bld r19,0
bst r7,2
bld r19,1
bst r11,2
bld r19,2
bst r15,2
bld r19,3
bst r3,3
bld r19,4
bst r7,3
bld r19,5
bst r11,3
bld r19,6
bst r15,3
bld r19,7
bst r3,4
bld r20,0
bst r7,4
bld r20,1
bst r11,4
bld r20,2
bst r15,4
bld r20,3
bst r3,5
bld r20,4
bst r7,5
bld r20,5
bst r11,5
bld r20,6
bst r15,5
bld r20,7
bst r3,6
bld r21,0
bst r7,6
bld r21,1
bst r11,6
bld r21,2
bst r15,6
bld r21,3
bst r3,7
bld r21,4
bst r7,7
bld r21,5
bst r11,7
bld r21,6
bst r15,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128n_encrypt, .-gift128n_encrypt
.text
.global gift128n_decrypt
.type gift128n_decrypt, @function
gift128n_decrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 35
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r22,0
bst r18,1
bld r4,0
bst r18,2
bld r8,0
bst r18,3
bld r12,0
bst r18,4
bld r22,1
bst r18,5
bld r4,1
bst r18,6
bld r8,1
bst r18,7
bld r12,1
bst r19,0
bld r22,2
bst r19,1
bld r4,2
bst r19,2
bld r8,2
bst r19,3
bld r12,2
bst r19,4
bld r22,3
bst r19,5
bld r4,3
bst r19,6
bld r8,3
bst r19,7
bld r12,3
bst r20,0
bld r22,4
bst r20,1
bld r4,4
bst r20,2
bld r8,4
bst r20,3
bld r12,4
bst r20,4
bld r22,5
bst r20,5
bld r4,5
bst r20,6
bld r8,5
bst r20,7
bld r12,5
bst r21,0
bld r22,6
bst r21,1
bld r4,6
bst r21,2
bld r8,6
bst r21,3
bld r12,6
bst r21,4
bld r22,7
bst r21,5
bld r4,7
bst r21,6
bld r8,7
bst r21,7
bld r12,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r23,0
bst r18,1
bld r5,0
bst r18,2
bld r9,0
bst r18,3
bld r13,0
bst r18,4
bld r23,1
bst r18,5
bld r5,1
bst r18,6
bld r9,1
bst r18,7
bld r13,1
bst r19,0
bld r23,2
bst r19,1
bld r5,2
bst r19,2
bld r9,2
bst r19,3
bld r13,2
bst r19,4
bld r23,3
bst r19,5
bld r5,3
bst r19,6
bld r9,3
bst r19,7
bld r13,3
bst r20,0
bld r23,4
bst r20,1
bld r5,4
bst r20,2
bld r9,4
bst r20,3
bld r13,4
bst r20,4
bld r23,5
bst r20,5
bld r5,5
bst r20,6
bld r9,5
bst r20,7
bld r13,5
bst r21,0
bld r23,6
bst r21,1
bld r5,6
bst r21,2
bld r9,6
bst r21,3
bld r13,6
bst r21,4
bld r23,7
bst r21,5
bld r5,7
bst r21,6
bld r9,7
bst r21,7
bld r13,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r2,0
bst r18,1
bld r6,0
bst r18,2
bld r10,0
bst r18,3
bld r14,0
bst r18,4
bld r2,1
bst r18,5
bld r6,1
bst r18,6
bld r10,1
bst r18,7
bld r14,1
bst r19,0
bld r2,2
bst r19,1
bld r6,2
bst r19,2
bld r10,2
bst r19,3
bld r14,2
bst r19,4
bld r2,3
bst r19,5
bld r6,3
bst r19,6
bld r10,3
bst r19,7
bld r14,3
bst r20,0
bld r2,4
bst r20,1
bld r6,4
bst r20,2
bld r10,4
bst r20,3
bld r14,4
bst r20,4
bld r2,5
bst r20,5
bld r6,5
bst r20,6
bld r10,5
bst r20,7
bld r14,5
bst r21,0
bld r2,6
bst r21,1
bld r6,6
bst r21,2
bld r10,6
bst r21,3
bld r14,6
bst r21,4
bld r2,7
bst r21,5
bld r6,7
bst r21,6
bld r10,7
bst r21,7
bld r14,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r3,0
bst r18,1
bld r7,0
bst r18,2
bld r11,0
bst r18,3
bld r15,0
bst r18,4
bld r3,1
bst r18,5
bld r7,1
bst r18,6
bld r11,1
bst r18,7
bld r15,1
bst r19,0
bld r3,2
bst r19,1
bld r7,2
bst r19,2
bld r11,2
bst r19,3
bld r15,2
bst r19,4
bld r3,3
bst r19,5
bld r7,3
bst r19,6
bld r11,3
bst r19,7
bld r15,3
bst r20,0
bld r3,4
bst r20,1
bld r7,4
bst r20,2
bld r11,4
bst r20,3
bld r15,4
bst r20,4
bld r3,5
bst r20,5
bld r7,5
bst r20,6
bld r11,5
bst r20,7
bld r15,5
bst r21,0
bld r3,6
bst r21,1
bld r7,6
bst r21,2
bld r11,6
bst r21,3
bld r15,6
bst r21,4
bld r3,7
bst r21,5
bld r7,7
bst r21,6
bld r11,7
bst r21,7
bld r15,7
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
ldi r16,40
370:
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 522f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 522f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 522f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 522f
cpse r16,r1
rjmp 370b
rjmp 867f
522:
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
dec r16
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
bst r22,1
bld r0,0
bst r3,0
bld r22,1
bst r22,6
bld r3,0
bst r2,1
bld r22,6
bst r3,4
bld r2,1
bst r22,7
bld r3,4
bst r23,1
bld r22,7
bst r3,2
bld r23,1
bst r2,6
bld r3,2
bst r2,5
bld r2,6
bst r3,5
bld r2,5
bst r3,7
bld r3,5
bst r23,7
bld r3,7
bst r23,3
bld r23,7
bst r23,2
bld r23,3
bst r2,2
bld r23,2
bst r2,4
bld r2,2
bst r22,5
bld r2,4
bst r3,1
bld r22,5
bst r3,6
bld r3,1
bst r2,7
bld r3,6
bst r23,5
bld r2,7
bst r3,3
bld r23,5
bst r23,6
bld r3,3
bst r2,3
bld r23,6
bst r23,4
bld r2,3
bst r22,3
bld r23,4
bst r23,0
bld r22,3
bst r22,2
bld r23,0
bst r2,0
bld r22,2
bst r22,4
bld r2,0
bst r0,0
bld r22,4
bst r4,0
bld r0,0
bst r5,0
bld r4,0
bst r5,2
bld r5,0
bst r7,2
bld r5,2
bst r7,6
bld r7,2
bst r7,7
bld r7,6
bst r6,7
bld r7,7
bst r6,5
bld r6,7
bst r4,5
bld r6,5
bst r4,1
bld r4,5
bst r0,0
bld r4,1
bst r4,2
bld r0,0
bst r7,0
bld r4,2
bst r5,6
bld r7,0
bst r7,3
bld r5,6
bst r6,6
bld r7,3
bst r7,5
bld r6,6
bst r4,7
bld r7,5
bst r6,1
bld r4,7
bst r4,4
bld r6,1
bst r5,1
bld r4,4
bst r0,0
bld r5,1
bst r4,3
bld r0,0
bst r6,0
bld r4,3
bst r5,4
bld r6,0
bst r5,3
bld r5,4
bst r6,2
bld r5,3
bst r7,4
bld r6,2
bst r5,7
bld r7,4
bst r6,3
bld r5,7
bst r6,4
bld r6,3
bst r5,5
bld r6,4
bst r0,0
bld r5,5
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r10,0
bld r8,0
bst r10,4
bld r10,0
bst r10,5
bld r10,4
bst r9,5
bld r10,5
bst r9,3
bld r9,5
bst r11,2
bld r9,3
bst r8,6
bld r11,2
bst r8,1
bld r8,6
bst r9,0
bld r8,1
bst r10,2
bld r9,0
bst r8,4
bld r10,2
bst r10,1
bld r8,4
bst r9,4
bld r10,1
bst r10,3
bld r9,4
bst r11,4
bld r10,3
bst r10,7
bld r11,4
bst r11,5
bld r10,7
bst r9,7
bld r11,5
bst r11,3
bld r9,7
bst r11,6
bld r11,3
bst r8,7
bld r11,6
bst r11,1
bld r8,7
bst r9,6
bld r11,1
bst r8,3
bld r9,6
bst r11,0
bld r8,3
bst r10,6
bld r11,0
bst r8,5
bld r10,6
bst r9,1
bld r8,5
bst r9,2
bld r9,1
bst r8,2
bld r9,2
bst r0,0
bld r8,2
bst r12,0
bld r0,0
bst r15,0
bld r12,0
bst r15,6
bld r15,0
bst r13,7
bld r15,6
bst r12,3
bld r13,7
bst r0,0
bld r12,3
bst r12,1
bld r0,0
bst r14,0
bld r12,1
bst r15,4
bld r14,0
bst r15,7
bld r15,4
bst r12,7
bld r15,7
bst r0,0
bld r12,7
bst r12,2
bld r0,0
bst r13,0
bld r12,2
bst r15,2
bld r13,0
bst r13,6
bld r15,2
bst r13,3
bld r13,6
bst r0,0
bld r13,3
bst r12,4
bld r0,0
bst r15,1
bld r12,4
bst r14,6
bld r15,1
bst r13,5
bld r14,6
bst r14,3
bld r13,5
bst r0,0
bld r14,3
bst r12,5
bld r0,0
bst r14,1
bld r12,5
bst r14,4
bld r14,1
bst r15,5
bld r14,4
bst r14,7
bld r15,5
bst r0,0
bld r14,7
bst r12,6
bld r0,0
bst r13,1
bld r12,6
bst r14,2
bld r13,1
bst r13,4
bld r14,2
bst r15,3
bld r13,4
bst r0,0
bld r15,3
movw r18,r12
movw r20,r14
movw r12,r22
movw r14,r2
movw r22,r18
movw r2,r20
and r18,r4
and r19,r5
and r20,r6
and r21,r7
eor r8,r18
eor r9,r19
eor r10,r20
eor r11,r21
com r12
com r13
com r14
com r15
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
ret
867:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
bst r22,0
bld r18,0
bst r4,0
bld r18,1
bst r8,0
bld r18,2
bst r12,0
bld r18,3
bst r22,1
bld r18,4
bst r4,1
bld r18,5
bst r8,1
bld r18,6
bst r12,1
bld r18,7
bst r22,2
bld r19,0
bst r4,2
bld r19,1
bst r8,2
bld r19,2
bst r12,2
bld r19,3
bst r22,3
bld r19,4
bst r4,3
bld r19,5
bst r8,3
bld r19,6
bst r12,3
bld r19,7
bst r22,4
bld r20,0
bst r4,4
bld r20,1
bst r8,4
bld r20,2
bst r12,4
bld r20,3
bst r22,5
bld r20,4
bst r4,5
bld r20,5
bst r8,5
bld r20,6
bst r12,5
bld r20,7
bst r22,6
bld r21,0
bst r4,6
bld r21,1
bst r8,6
bld r21,2
bst r12,6
bld r21,3
bst r22,7
bld r21,4
bst r4,7
bld r21,5
bst r8,7
bld r21,6
bst r12,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r23,0
bld r18,0
bst r5,0
bld r18,1
bst r9,0
bld r18,2
bst r13,0
bld r18,3
bst r23,1
bld r18,4
bst r5,1
bld r18,5
bst r9,1
bld r18,6
bst r13,1
bld r18,7
bst r23,2
bld r19,0
bst r5,2
bld r19,1
bst r9,2
bld r19,2
bst r13,2
bld r19,3
bst r23,3
bld r19,4
bst r5,3
bld r19,5
bst r9,3
bld r19,6
bst r13,3
bld r19,7
bst r23,4
bld r20,0
bst r5,4
bld r20,1
bst r9,4
bld r20,2
bst r13,4
bld r20,3
bst r23,5
bld r20,4
bst r5,5
bld r20,5
bst r9,5
bld r20,6
bst r13,5
bld r20,7
bst r23,6
bld r21,0
bst r5,6
bld r21,1
bst r9,6
bld r21,2
bst r13,6
bld r21,3
bst r23,7
bld r21,4
bst r5,7
bld r21,5
bst r9,7
bld r21,6
bst r13,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r2,0
bld r18,0
bst r6,0
bld r18,1
bst r10,0
bld r18,2
bst r14,0
bld r18,3
bst r2,1
bld r18,4
bst r6,1
bld r18,5
bst r10,1
bld r18,6
bst r14,1
bld r18,7
bst r2,2
bld r19,0
bst r6,2
bld r19,1
bst r10,2
bld r19,2
bst r14,2
bld r19,3
bst r2,3
bld r19,4
bst r6,3
bld r19,5
bst r10,3
bld r19,6
bst r14,3
bld r19,7
bst r2,4
bld r20,0
bst r6,4
bld r20,1
bst r10,4
bld r20,2
bst r14,4
bld r20,3
bst r2,5
bld r20,4
bst r6,5
bld r20,5
bst r10,5
bld r20,6
bst r14,5
bld r20,7
bst r2,6
bld r21,0
bst r6,6
bld r21,1
bst r10,6
bld r21,2
bst r14,6
bld r21,3
bst r2,7
bld r21,4
bst r6,7
bld r21,5
bst r10,7
bld r21,6
bst r14,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r3,0
bld r18,0
bst r7,0
bld r18,1
bst r11,0
bld r18,2
bst r15,0
bld r18,3
bst r3,1
bld r18,4
bst r7,1
bld r18,5
bst r11,1
bld r18,6
bst r15,1
bld r18,7
bst r3,2
bld r19,0
bst r7,2
bld r19,1
bst r11,2
bld r19,2
bst r15,2
bld r19,3
bst r3,3
bld r19,4
bst r7,3
bld r19,5
bst r11,3
bld r19,6
bst r15,3
bld r19,7
bst r3,4
bld r20,0
bst r7,4
bld r20,1
bst r11,4
bld r20,2
bst r15,4
bld r20,3
bst r3,5
bld r20,4
bst r7,5
bld r20,5
bst r11,5
bld r20,6
bst r15,5
bld r20,7
bst r3,6
bld r21,0
bst r7,6
bld r21,1
bst r11,6
bld r21,2
bst r15,6
bld r21,3
bst r3,7
bld r21,4
bst r7,7
bld r21,5
bst r11,7
bld r21,6
bst r15,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128n_decrypt, .-gift128n_decrypt
.text
.global gift128t_encrypt
.type gift128t_encrypt, @function
gift128t_encrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r2,0
bst r20,1
bld r6,0
bst r20,2
bld r10,0
bst r20,3
bld r14,0
bst r20,4
bld r2,1
bst r20,5
bld r6,1
bst r20,6
bld r10,1
bst r20,7
bld r14,1
bst r21,0
bld r2,2
bst r21,1
bld r6,2
bst r21,2
bld r10,2
bst r21,3
bld r14,2
bst r21,4
bld r2,3
bst r21,5
bld r6,3
bst r21,6
bld r10,3
bst r21,7
bld r14,3
bst r22,0
bld r2,4
bst r22,1
bld r6,4
bst r22,2
bld r10,4
bst r22,3
bld r14,4
bst r22,4
bld r2,5
bst r22,5
bld r6,5
bst r22,6
bld r10,5
bst r22,7
bld r14,5
bst r23,0
bld r2,6
bst r23,1
bld r6,6
bst r23,2
bld r10,6
bst r23,3
bld r14,6
bst r23,4
bld r2,7
bst r23,5
bld r6,7
bst r23,6
bld r10,7
bst r23,7
bld r14,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r3,0
bst r20,1
bld r7,0
bst r20,2
bld r11,0
bst r20,3
bld r15,0
bst r20,4
bld r3,1
bst r20,5
bld r7,1
bst r20,6
bld r11,1
bst r20,7
bld r15,1
bst r21,0
bld r3,2
bst r21,1
bld r7,2
bst r21,2
bld r11,2
bst r21,3
bld r15,2
bst r21,4
bld r3,3
bst r21,5
bld r7,3
bst r21,6
bld r11,3
bst r21,7
bld r15,3
bst r22,0
bld r3,4
bst r22,1
bld r7,4
bst r22,2
bld r11,4
bst r22,3
bld r15,4
bst r22,4
bld r3,5
bst r22,5
bld r7,5
bst r22,6
bld r11,5
bst r22,7
bld r15,5
bst r23,0
bld r3,6
bst r23,1
bld r7,6
bst r23,2
bld r11,6
bst r23,3
bld r15,6
bst r23,4
bld r3,7
bst r23,5
bld r7,7
bst r23,6
bld r11,7
bst r23,7
bld r15,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r4,0
bst r20,1
bld r8,0
bst r20,2
bld r12,0
bst r20,3
bld r24,0
bst r20,4
bld r4,1
bst r20,5
bld r8,1
bst r20,6
bld r12,1
bst r20,7
bld r24,1
bst r21,0
bld r4,2
bst r21,1
bld r8,2
bst r21,2
bld r12,2
bst r21,3
bld r24,2
bst r21,4
bld r4,3
bst r21,5
bld r8,3
bst r21,6
bld r12,3
bst r21,7
bld r24,3
bst r22,0
bld r4,4
bst r22,1
bld r8,4
bst r22,2
bld r12,4
bst r22,3
bld r24,4
bst r22,4
bld r4,5
bst r22,5
bld r8,5
bst r22,6
bld r12,5
bst r22,7
bld r24,5
bst r23,0
bld r4,6
bst r23,1
bld r8,6
bst r23,2
bld r12,6
bst r23,3
bld r24,6
bst r23,4
bld r4,7
bst r23,5
bld r8,7
bst r23,6
bld r12,7
bst r23,7
bld r24,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r5,0
bst r20,1
bld r9,0
bst r20,2
bld r13,0
bst r20,3
bld r25,0
bst r20,4
bld r5,1
bst r20,5
bld r9,1
bst r20,6
bld r13,1
bst r20,7
bld r25,1
bst r21,0
bld r5,2
bst r21,1
bld r9,2
bst r21,2
bld r13,2
bst r21,3
bld r25,2
bst r21,4
bld r5,3
bst r21,5
bld r9,3
bst r21,6
bld r13,3
bst r21,7
bld r25,3
bst r22,0
bld r5,4
bst r22,1
bld r9,4
bst r22,2
bld r13,4
bst r22,3
bld r25,4
bst r22,4
bld r5,5
bst r22,5
bld r9,5
bst r22,6
bld r13,5
bst r22,7
bld r25,5
bst r23,0
bld r5,6
bst r23,1
bld r9,6
bst r23,2
bld r13,6
bst r23,3
bld r25,6
bst r23,4
bld r5,7
bst r23,5
bld r9,7
bst r23,6
bld r13,7
bst r23,7
bld r25,7
ld r26,Z
ldd r27,Z+1
ldd r16,Z+2
ldd r17,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r16
std Y+4,r17
ldd r26,Z+4
ldd r27,Z+5
ldd r16,Z+6
ldd r17,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r16
std Y+8,r17
ldd r26,Z+8
ldd r27,Z+9
ldd r16,Z+10
ldd r17,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r16
std Y+12,r17
ldd r26,Z+12
ldd r27,Z+13
ldd r16,Z+14
ldd r17,Z+15
std Y+13,r26
std Y+14,r27
std Y+15,r16
std Y+16,r17
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r26,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r26
#endif
mov r19,r1
mov r26,r1
307:
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r8,r0
mov r0,r5
and r0,r13
eor r9,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r8
and r0,r24
eor r4,r0
mov r0,r9
and r0,r25
eor r5,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
mov r0,r4
or r0,r8
eor r12,r0
mov r0,r5
or r0,r9
eor r13,r0
eor r14,r10
eor r15,r11
eor r24,r12
eor r25,r13
eor r6,r14
eor r7,r15
eor r8,r24
eor r9,r25
com r14
com r15
com r24
com r25
movw r20,r2
movw r22,r4
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
mov r0,r8
and r0,r22
eor r12,r0
mov r0,r9
and r0,r23
eor r13,r0
movw r2,r14
movw r4,r24
movw r14,r20
movw r24,r22
bst r2,1
bld r0,0
bst r2,4
bld r2,1
bst r4,0
bld r2,4
bst r2,2
bld r4,0
bst r3,0
bld r2,2
bst r2,3
bld r3,0
bst r3,4
bld r2,3
bst r4,3
bld r3,4
bst r3,6
bld r4,3
bst r5,3
bld r3,6
bst r3,5
bld r5,3
bst r4,7
bld r3,5
bst r5,6
bld r4,7
bst r5,1
bld r5,6
bst r2,5
bld r5,1
bst r4,4
bld r2,5
bst r4,2
bld r4,4
bst r3,2
bld r4,2
bst r3,3
bld r3,2
bst r3,7
bld r3,3
bst r5,7
bld r3,7
bst r5,5
bld r5,7
bst r4,5
bld r5,5
bst r4,6
bld r4,5
bst r5,2
bld r4,6
bst r3,1
bld r5,2
bst r2,7
bld r3,1
bst r5,4
bld r2,7
bst r4,1
bld r5,4
bst r2,6
bld r4,1
bst r5,0
bld r2,6
bst r0,0
bld r5,0
bst r6,0
bld r0,0
bst r6,1
bld r6,0
bst r6,5
bld r6,1
bst r8,5
bld r6,5
bst r8,7
bld r8,5
bst r9,7
bld r8,7
bst r9,6
bld r9,7
bst r9,2
bld r9,6
bst r7,2
bld r9,2
bst r7,0
bld r7,2
bst r0,0
bld r7,0
bst r6,2
bld r0,0
bst r7,1
bld r6,2
bst r6,4
bld r7,1
bst r8,1
bld r6,4
bst r6,7
bld r8,1
bst r9,5
bld r6,7
bst r8,6
bld r9,5
bst r9,3
bld r8,6
bst r7,6
bld r9,3
bst r9,0
bld r7,6
bst r0,0
bld r9,0
bst r6,3
bld r0,0
bst r7,5
bld r6,3
bst r8,4
bld r7,5
bst r8,3
bld r8,4
bst r7,7
bld r8,3
bst r9,4
bld r7,7
bst r8,2
bld r9,4
bst r7,3
bld r8,2
bst r7,4
bld r7,3
bst r8,0
bld r7,4
bst r0,0
bld r8,0
bst r6,6
bld r0,0
bst r9,1
bld r6,6
bst r0,0
bld r9,1
bst r10,0
bld r0,0
bst r10,2
bld r10,0
bst r11,2
bld r10,2
bst r11,1
bld r11,2
bst r10,5
bld r11,1
bst r12,6
bld r10,5
bst r13,0
bld r12,6
bst r10,3
bld r13,0
bst r11,6
bld r10,3
bst r13,1
bld r11,6
bst r10,7
bld r13,1
bst r13,6
bld r10,7
bst r13,3
bld r13,6
bst r11,7
bld r13,3
bst r13,5
bld r11,7
bst r12,7
bld r13,5
bst r13,4
bld r12,7
bst r12,3
bld r13,4
bst r11,4
bld r12,3
bst r12,1
bld r11,4
bst r10,4
bld r12,1
bst r12,2
bld r10,4
bst r11,0
bld r12,2
bst r10,1
bld r11,0
bst r10,6
bld r10,1
bst r13,2
bld r10,6
bst r11,3
bld r13,2
bst r11,5
bld r11,3
bst r12,5
bld r11,5
bst r12,4
bld r12,5
bst r12,0
bld r12,4
bst r0,0
bld r12,0
bst r14,0
bld r0,0
bst r14,3
bld r14,0
bst r15,7
bld r14,3
bst r25,6
bld r15,7
bst r25,0
bld r25,6
bst r0,0
bld r25,0
bst r14,1
bld r0,0
bst r14,7
bld r14,1
bst r25,7
bld r14,7
bst r25,4
bld r25,7
bst r24,0
bld r25,4
bst r0,0
bld r24,0
bst r14,2
bld r0,0
bst r15,3
bld r14,2
bst r15,6
bld r15,3
bst r25,2
bld r15,6
bst r15,0
bld r25,2
bst r0,0
bld r15,0
bst r14,4
bld r0,0
bst r24,3
bld r14,4
bst r15,5
bld r24,3
bst r24,6
bld r15,5
bst r25,1
bld r24,6
bst r0,0
bld r25,1
bst r14,5
bld r0,0
bst r24,7
bld r14,5
bst r25,5
bld r24,7
bst r24,4
bld r25,5
bst r24,1
bld r24,4
bst r0,0
bld r24,1
bst r14,6
bld r0,0
bst r25,3
bld r14,6
bst r15,4
bld r25,3
bst r24,2
bld r15,4
bst r15,1
bld r24,2
bst r0,0
bld r15,1
ldd r0,Y+5
eor r10,r0
ldd r0,Y+6
eor r11,r0
ldd r0,Y+7
eor r12,r0
ldd r0,Y+8
eor r13,r0
ldd r20,Y+13
ldd r21,Y+14
ldd r22,Y+15
ldd r23,Y+16
eor r6,r20
eor r7,r21
eor r8,r22
eor r9,r23
lsl r20
rol r21
adc r20,r1
lsl r20
rol r21
adc r20,r1
lsl r20
rol r21
adc r20,r1
lsl r20
rol r21
adc r20,r1
mov r0,r1
lsr r23
ror r22
ror r0
lsr r23
ror r22
ror r0
or r23,r0
ldd r0,Y+1
std Y+1,r20
ldd r20,Y+5
std Y+5,r0
ldd r0,Y+9
std Y+9,r20
std Y+13,r0
ldd r0,Y+2
std Y+2,r21
ldd r21,Y+6
std Y+6,r0
ldd r0,Y+10
std Y+10,r21
std Y+14,r0
ldd r0,Y+3
std Y+3,r22
ldd r22,Y+7
std Y+7,r0
ldd r0,Y+11
std Y+11,r22
std Y+15,r0
ldd r0,Y+4
std Y+4,r23
ldd r23,Y+8
std Y+8,r0
ldd r0,Y+12
std Y+12,r23
std Y+16,r0
ldi r20,128
eor r25,r20
mov r30,r19
#if defined(RAMPZ)
elpm r20,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r20,Z
#elif defined(__AVR_TINY__)
ld r20,Z
#else
lpm
mov r20,r0
#endif
eor r14,r20
inc r19
cpi r19,40
breq 727f
inc r26
ldi r27,5
cpse r26,r27
rjmp 307b
mov r26,r1
eor r2,r18
eor r3,r18
eor r4,r18
eor r5,r18
rjmp 307b
727:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
bst r2,0
bld r20,0
bst r6,0
bld r20,1
bst r10,0
bld r20,2
bst r14,0
bld r20,3
bst r2,1
bld r20,4
bst r6,1
bld r20,5
bst r10,1
bld r20,6
bst r14,1
bld r20,7
bst r2,2
bld r21,0
bst r6,2
bld r21,1
bst r10,2
bld r21,2
bst r14,2
bld r21,3
bst r2,3
bld r21,4
bst r6,3
bld r21,5
bst r10,3
bld r21,6
bst r14,3
bld r21,7
bst r2,4
bld r22,0
bst r6,4
bld r22,1
bst r10,4
bld r22,2
bst r14,4
bld r22,3
bst r2,5
bld r22,4
bst r6,5
bld r22,5
bst r10,5
bld r22,6
bst r14,5
bld r22,7
bst r2,6
bld r23,0
bst r6,6
bld r23,1
bst r10,6
bld r23,2
bst r14,6
bld r23,3
bst r2,7
bld r23,4
bst r6,7
bld r23,5
bst r10,7
bld r23,6
bst r14,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r3,0
bld r20,0
bst r7,0
bld r20,1
bst r11,0
bld r20,2
bst r15,0
bld r20,3
bst r3,1
bld r20,4
bst r7,1
bld r20,5
bst r11,1
bld r20,6
bst r15,1
bld r20,7
bst r3,2
bld r21,0
bst r7,2
bld r21,1
bst r11,2
bld r21,2
bst r15,2
bld r21,3
bst r3,3
bld r21,4
bst r7,3
bld r21,5
bst r11,3
bld r21,6
bst r15,3
bld r21,7
bst r3,4
bld r22,0
bst r7,4
bld r22,1
bst r11,4
bld r22,2
bst r15,4
bld r22,3
bst r3,5
bld r22,4
bst r7,5
bld r22,5
bst r11,5
bld r22,6
bst r15,5
bld r22,7
bst r3,6
bld r23,0
bst r7,6
bld r23,1
bst r11,6
bld r23,2
bst r15,6
bld r23,3
bst r3,7
bld r23,4
bst r7,7
bld r23,5
bst r11,7
bld r23,6
bst r15,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r4,0
bld r20,0
bst r8,0
bld r20,1
bst r12,0
bld r20,2
bst r24,0
bld r20,3
bst r4,1
bld r20,4
bst r8,1
bld r20,5
bst r12,1
bld r20,6
bst r24,1
bld r20,7
bst r4,2
bld r21,0
bst r8,2
bld r21,1
bst r12,2
bld r21,2
bst r24,2
bld r21,3
bst r4,3
bld r21,4
bst r8,3
bld r21,5
bst r12,3
bld r21,6
bst r24,3
bld r21,7
bst r4,4
bld r22,0
bst r8,4
bld r22,1
bst r12,4
bld r22,2
bst r24,4
bld r22,3
bst r4,5
bld r22,4
bst r8,5
bld r22,5
bst r12,5
bld r22,6
bst r24,5
bld r22,7
bst r4,6
bld r23,0
bst r8,6
bld r23,1
bst r12,6
bld r23,2
bst r24,6
bld r23,3
bst r4,7
bld r23,4
bst r8,7
bld r23,5
bst r12,7
bld r23,6
bst r24,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r5,0
bld r20,0
bst r9,0
bld r20,1
bst r13,0
bld r20,2
bst r25,0
bld r20,3
bst r5,1
bld r20,4
bst r9,1
bld r20,5
bst r13,1
bld r20,6
bst r25,1
bld r20,7
bst r5,2
bld r21,0
bst r9,2
bld r21,1
bst r13,2
bld r21,2
bst r25,2
bld r21,3
bst r5,3
bld r21,4
bst r9,3
bld r21,5
bst r13,3
bld r21,6
bst r25,3
bld r21,7
bst r5,4
bld r22,0
bst r9,4
bld r22,1
bst r13,4
bld r22,2
bst r25,4
bld r22,3
bst r5,5
bld r22,4
bst r9,5
bld r22,5
bst r13,5
bld r22,6
bst r25,5
bld r22,7
bst r5,6
bld r23,0
bst r9,6
bld r23,1
bst r13,6
bld r23,2
bst r25,6
bld r23,3
bst r5,7
bld r23,4
bst r9,7
bld r23,5
bst r13,7
bld r23,6
bst r25,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128t_encrypt, .-gift128t_encrypt
.text
.global gift128t_decrypt
.type gift128t_decrypt, @function
gift128t_decrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r2,0
bst r20,1
bld r6,0
bst r20,2
bld r10,0
bst r20,3
bld r14,0
bst r20,4
bld r2,1
bst r20,5
bld r6,1
bst r20,6
bld r10,1
bst r20,7
bld r14,1
bst r21,0
bld r2,2
bst r21,1
bld r6,2
bst r21,2
bld r10,2
bst r21,3
bld r14,2
bst r21,4
bld r2,3
bst r21,5
bld r6,3
bst r21,6
bld r10,3
bst r21,7
bld r14,3
bst r22,0
bld r2,4
bst r22,1
bld r6,4
bst r22,2
bld r10,4
bst r22,3
bld r14,4
bst r22,4
bld r2,5
bst r22,5
bld r6,5
bst r22,6
bld r10,5
bst r22,7
bld r14,5
bst r23,0
bld r2,6
bst r23,1
bld r6,6
bst r23,2
bld r10,6
bst r23,3
bld r14,6
bst r23,4
bld r2,7
bst r23,5
bld r6,7
bst r23,6
bld r10,7
bst r23,7
bld r14,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r3,0
bst r20,1
bld r7,0
bst r20,2
bld r11,0
bst r20,3
bld r15,0
bst r20,4
bld r3,1
bst r20,5
bld r7,1
bst r20,6
bld r11,1
bst r20,7
bld r15,1
bst r21,0
bld r3,2
bst r21,1
bld r7,2
bst r21,2
bld r11,2
bst r21,3
bld r15,2
bst r21,4
bld r3,3
bst r21,5
bld r7,3
bst r21,6
bld r11,3
bst r21,7
bld r15,3
bst r22,0
bld r3,4
bst r22,1
bld r7,4
bst r22,2
bld r11,4
bst r22,3
bld r15,4
bst r22,4
bld r3,5
bst r22,5
bld r7,5
bst r22,6
bld r11,5
bst r22,7
bld r15,5
bst r23,0
bld r3,6
bst r23,1
bld r7,6
bst r23,2
bld r11,6
bst r23,3
bld r15,6
bst r23,4
bld r3,7
bst r23,5
bld r7,7
bst r23,6
bld r11,7
bst r23,7
bld r15,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r4,0
bst r20,1
bld r8,0
bst r20,2
bld r12,0
bst r20,3
bld r24,0
bst r20,4
bld r4,1
bst r20,5
bld r8,1
bst r20,6
bld r12,1
bst r20,7
bld r24,1
bst r21,0
bld r4,2
bst r21,1
bld r8,2
bst r21,2
bld r12,2
bst r21,3
bld r24,2
bst r21,4
bld r4,3
bst r21,5
bld r8,3
bst r21,6
bld r12,3
bst r21,7
bld r24,3
bst r22,0
bld r4,4
bst r22,1
bld r8,4
bst r22,2
bld r12,4
bst r22,3
bld r24,4
bst r22,4
bld r4,5
bst r22,5
bld r8,5
bst r22,6
bld r12,5
bst r22,7
bld r24,5
bst r23,0
bld r4,6
bst r23,1
bld r8,6
bst r23,2
bld r12,6
bst r23,3
bld r24,6
bst r23,4
bld r4,7
bst r23,5
bld r8,7
bst r23,6
bld r12,7
bst r23,7
bld r24,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r5,0
bst r20,1
bld r9,0
bst r20,2
bld r13,0
bst r20,3
bld r25,0
bst r20,4
bld r5,1
bst r20,5
bld r9,1
bst r20,6
bld r13,1
bst r20,7
bld r25,1
bst r21,0
bld r5,2
bst r21,1
bld r9,2
bst r21,2
bld r13,2
bst r21,3
bld r25,2
bst r21,4
bld r5,3
bst r21,5
bld r9,3
bst r21,6
bld r13,3
bst r21,7
bld r25,3
bst r22,0
bld r5,4
bst r22,1
bld r9,4
bst r22,2
bld r13,4
bst r22,3
bld r25,4
bst r22,4
bld r5,5
bst r22,5
bld r9,5
bst r22,6
bld r13,5
bst r22,7
bld r25,5
bst r23,0
bld r5,6
bst r23,1
bld r9,6
bst r23,2
bld r13,6
bst r23,3
bld r25,6
bst r23,4
bld r5,7
bst r23,5
bld r9,7
bst r23,6
bld r13,7
bst r23,7
bld r25,7
ld r26,Z
ldd r27,Z+1
ldd r16,Z+2
ldd r17,Z+3
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
or r17,r0
std Y+1,r26
std Y+2,r27
std Y+3,r16
std Y+4,r17
ldd r26,Z+4
ldd r27,Z+5
ldd r16,Z+6
ldd r17,Z+7
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
or r17,r0
std Y+5,r26
std Y+6,r27
std Y+7,r16
std Y+8,r17
ldd r26,Z+8
ldd r27,Z+9
ldd r16,Z+10
ldd r17,Z+11
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
or r17,r0
std Y+9,r26
std Y+10,r27
std Y+11,r16
std Y+12,r17
ldd r26,Z+12
ldd r27,Z+13
ldd r16,Z+14
ldd r17,Z+15
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
or r17,r0
std Y+13,r26
std Y+14,r27
std Y+15,r16
std Y+16,r17
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r26,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r26
#endif
ldi r19,40
mov r26,r1
375:
ldd r0,Y+13
ldd r20,Y+9
std Y+9,r0
ldd r0,Y+5
std Y+5,r20
ldd r20,Y+1
std Y+1,r0
ldd r0,Y+14
ldd r21,Y+10
std Y+10,r0
ldd r0,Y+6
std Y+6,r21
ldd r21,Y+2
std Y+2,r0
ldd r0,Y+15
ldd r22,Y+11
std Y+11,r0
ldd r0,Y+7
std Y+7,r22
ldd r22,Y+3
std Y+3,r0
ldd r0,Y+16
ldd r23,Y+12
std Y+12,r0
ldd r0,Y+8
std Y+8,r23
ldd r23,Y+4
std Y+4,r0
mov r0,r1
lsr r21
ror r20
ror r0
lsr r21
ror r20
ror r0
lsr r21
ror r20
ror r0
lsr r21
ror r20
ror r0
or r21,r0
lsl r22
rol r23
adc r22,r1
lsl r22
rol r23
adc r22,r1
std Y+13,r20
std Y+14,r21
std Y+15,r22
std Y+16,r23
eor r6,r20
eor r7,r21
eor r8,r22
eor r9,r23
ldd r0,Y+5
eor r10,r0
ldd r0,Y+6
eor r11,r0
ldd r0,Y+7
eor r12,r0
ldd r0,Y+8
eor r13,r0
ldi r20,128
eor r25,r20
dec r19
mov r30,r19
#if defined(RAMPZ)
elpm r20,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r20,Z
#elif defined(__AVR_TINY__)
ld r20,Z
#else
lpm
mov r20,r0
#endif
eor r14,r20
bst r2,1
bld r0,0
bst r5,0
bld r2,1
bst r2,6
bld r5,0
bst r4,1
bld r2,6
bst r5,4
bld r4,1
bst r2,7
bld r5,4
bst r3,1
bld r2,7
bst r5,2
bld r3,1
bst r4,6
bld r5,2
bst r4,5
bld r4,6
bst r5,5
bld r4,5
bst r5,7
bld r5,5
bst r3,7
bld r5,7
bst r3,3
bld r3,7
bst r3,2
bld r3,3
bst r4,2
bld r3,2
bst r4,4
bld r4,2
bst r2,5
bld r4,4
bst r5,1
bld r2,5
bst r5,6
bld r5,1
bst r4,7
bld r5,6
bst r3,5
bld r4,7
bst r5,3
bld r3,5
bst r3,6
bld r5,3
bst r4,3
bld r3,6
bst r3,4
bld r4,3
bst r2,3
bld r3,4
bst r3,0
bld r2,3
bst r2,2
bld r3,0
bst r4,0
bld r2,2
bst r2,4
bld r4,0
bst r0,0
bld r2,4
bst r6,0
bld r0,0
bst r7,0
bld r6,0
bst r7,2
bld r7,0
bst r9,2
bld r7,2
bst r9,6
bld r9,2
bst r9,7
bld r9,6
bst r8,7
bld r9,7
bst r8,5
bld r8,7
bst r6,5
bld r8,5
bst r6,1
bld r6,5
bst r0,0
bld r6,1
bst r6,2
bld r0,0
bst r9,0
bld r6,2
bst r7,6
bld r9,0
bst r9,3
bld r7,6
bst r8,6
bld r9,3
bst r9,5
bld r8,6
bst r6,7
bld r9,5
bst r8,1
bld r6,7
bst r6,4
bld r8,1
bst r7,1
bld r6,4
bst r0,0
bld r7,1
bst r6,3
bld r0,0
bst r8,0
bld r6,3
bst r7,4
bld r8,0
bst r7,3
bld r7,4
bst r8,2
bld r7,3
bst r9,4
bld r8,2
bst r7,7
bld r9,4
bst r8,3
bld r7,7
bst r8,4
bld r8,3
bst r7,5
bld r8,4
bst r0,0
bld r7,5
bst r6,6
bld r0,0
bst r9,1
bld r6,6
bst r0,0
bld r9,1
bst r10,0
bld r0,0
bst r12,0
bld r10,0
bst r12,4
bld r12,0
bst r12,5
bld r12,4
bst r11,5
bld r12,5
bst r11,3
bld r11,5
bst r13,2
bld r11,3
bst r10,6
bld r13,2
bst r10,1
bld r10,6
bst r11,0
bld r10,1
bst r12,2
bld r11,0
bst r10,4
bld r12,2
bst r12,1
bld r10,4
bst r11,4
bld r12,1
bst r12,3
bld r11,4
bst r13,4
bld r12,3
bst r12,7
bld r13,4
bst r13,5
bld r12,7
bst r11,7
bld r13,5
bst r13,3
bld r11,7
bst r13,6
bld r13,3
bst r10,7
bld r13,6
bst r13,1
bld r10,7
bst r11,6
bld r13,1
bst r10,3
bld r11,6
bst r13,0
bld r10,3
bst r12,6
bld r13,0
bst r10,5
bld r12,6
bst r11,1
bld r10,5
bst r11,2
bld r11,1
bst r10,2
bld r11,2
bst r0,0
bld r10,2
bst r14,0
bld r0,0
bst r25,0
bld r14,0
bst r25,6
bld r25,0
bst r15,7
bld r25,6
bst r14,3
bld r15,7
bst r0,0
bld r14,3
bst r14,1
bld r0,0
bst r24,0
bld r14,1
bst r25,4
bld r24,0
bst r25,7
bld r25,4
bst r14,7
bld r25,7
bst r0,0
bld r14,7
bst r14,2
bld r0,0
bst r15,0
bld r14,2
bst r25,2
bld r15,0
bst r15,6
bld r25,2
bst r15,3
bld r15,6
bst r0,0
bld r15,3
bst r14,4
bld r0,0
bst r25,1
bld r14,4
bst r24,6
bld r25,1
bst r15,5
bld r24,6
bst r24,3
bld r15,5
bst r0,0
bld r24,3
bst r14,5
bld r0,0
bst r24,1
bld r14,5
bst r24,4
bld r24,1
bst r25,5
bld r24,4
bst r24,7
bld r25,5
bst r0,0
bld r24,7
bst r14,6
bld r0,0
bst r15,1
bld r14,6
bst r24,2
bld r15,1
bst r15,4
bld r24,2
bst r25,3
bld r15,4
bst r0,0
bld r25,3
movw r20,r14
movw r22,r24
movw r14,r2
movw r24,r4
movw r2,r20
movw r4,r22
and r20,r6
and r21,r7
and r22,r8
and r23,r9
eor r10,r20
eor r11,r21
eor r12,r22
eor r13,r23
com r14
com r15
com r24
com r25
eor r6,r14
eor r7,r15
eor r8,r24
eor r9,r25
eor r14,r10
eor r15,r11
eor r24,r12
eor r25,r13
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
mov r0,r4
or r0,r8
eor r12,r0
mov r0,r5
or r0,r9
eor r13,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r8
and r0,r24
eor r4,r0
mov r0,r9
and r0,r25
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r8,r0
mov r0,r5
and r0,r13
eor r9,r0
cp r19,r1
breq 791f
inc r26
ldi r27,5
cpse r26,r27
rjmp 375b
mov r26,r1
eor r2,r18
eor r3,r18
eor r4,r18
eor r5,r18
rjmp 375b
791:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
bst r2,0
bld r20,0
bst r6,0
bld r20,1
bst r10,0
bld r20,2
bst r14,0
bld r20,3
bst r2,1
bld r20,4
bst r6,1
bld r20,5
bst r10,1
bld r20,6
bst r14,1
bld r20,7
bst r2,2
bld r21,0
bst r6,2
bld r21,1
bst r10,2
bld r21,2
bst r14,2
bld r21,3
bst r2,3
bld r21,4
bst r6,3
bld r21,5
bst r10,3
bld r21,6
bst r14,3
bld r21,7
bst r2,4
bld r22,0
bst r6,4
bld r22,1
bst r10,4
bld r22,2
bst r14,4
bld r22,3
bst r2,5
bld r22,4
bst r6,5
bld r22,5
bst r10,5
bld r22,6
bst r14,5
bld r22,7
bst r2,6
bld r23,0
bst r6,6
bld r23,1
bst r10,6
bld r23,2
bst r14,6
bld r23,3
bst r2,7
bld r23,4
bst r6,7
bld r23,5
bst r10,7
bld r23,6
bst r14,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r3,0
bld r20,0
bst r7,0
bld r20,1
bst r11,0
bld r20,2
bst r15,0
bld r20,3
bst r3,1
bld r20,4
bst r7,1
bld r20,5
bst r11,1
bld r20,6
bst r15,1
bld r20,7
bst r3,2
bld r21,0
bst r7,2
bld r21,1
bst r11,2
bld r21,2
bst r15,2
bld r21,3
bst r3,3
bld r21,4
bst r7,3
bld r21,5
bst r11,3
bld r21,6
bst r15,3
bld r21,7
bst r3,4
bld r22,0
bst r7,4
bld r22,1
bst r11,4
bld r22,2
bst r15,4
bld r22,3
bst r3,5
bld r22,4
bst r7,5
bld r22,5
bst r11,5
bld r22,6
bst r15,5
bld r22,7
bst r3,6
bld r23,0
bst r7,6
bld r23,1
bst r11,6
bld r23,2
bst r15,6
bld r23,3
bst r3,7
bld r23,4
bst r7,7
bld r23,5
bst r11,7
bld r23,6
bst r15,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r4,0
bld r20,0
bst r8,0
bld r20,1
bst r12,0
bld r20,2
bst r24,0
bld r20,3
bst r4,1
bld r20,4
bst r8,1
bld r20,5
bst r12,1
bld r20,6
bst r24,1
bld r20,7
bst r4,2
bld r21,0
bst r8,2
bld r21,1
bst r12,2
bld r21,2
bst r24,2
bld r21,3
bst r4,3
bld r21,4
bst r8,3
bld r21,5
bst r12,3
bld r21,6
bst r24,3
bld r21,7
bst r4,4
bld r22,0
bst r8,4
bld r22,1
bst r12,4
bld r22,2
bst r24,4
bld r22,3
bst r4,5
bld r22,4
bst r8,5
bld r22,5
bst r12,5
bld r22,6
bst r24,5
bld r22,7
bst r4,6
bld r23,0
bst r8,6
bld r23,1
bst r12,6
bld r23,2
bst r24,6
bld r23,3
bst r4,7
bld r23,4
bst r8,7
bld r23,5
bst r12,7
bld r23,6
bst r24,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r5,0
bld r20,0
bst r9,0
bld r20,1
bst r13,0
bld r20,2
bst r25,0
bld r20,3
bst r5,1
bld r20,4
bst r9,1
bld r20,5
bst r13,1
bld r20,6
bst r25,1
bld r20,7
bst r5,2
bld r21,0
bst r9,2
bld r21,1
bst r13,2
bld r21,2
bst r25,2
bld r21,3
bst r5,3
bld r21,4
bst r9,3
bld r21,5
bst r13,3
bld r21,6
bst r25,3
bld r21,7
bst r5,4
bld r22,0
bst r9,4
bld r22,1
bst r13,4
bld r22,2
bst r25,4
bld r22,3
bst r5,5
bld r22,4
bst r9,5
bld r22,5
bst r13,5
bld r22,6
bst r25,5
bld r22,7
bst r5,6
bld r23,0
bst r9,6
bld r23,1
bst r13,6
bld r23,2
bst r25,6
bld r23,3
bst r5,7
bld r23,4
bst r9,7
bld r23,5
bst r13,7
bld r23,6
bst r25,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128t_decrypt, .-gift128t_decrypt
#endif
#if defined(__AVR__)
#include <avr/io.h>
/* Automatically generated - do not edit */
.section .progmem.data,"a",@progbits
.p2align 8
.type table_0, @object
.size table_0, 40
table_0:
.byte 1
.byte 3
.byte 7
.byte 15
.byte 31
.byte 62
.byte 61
.byte 59
.byte 55
.byte 47
.byte 30
.byte 60
.byte 57
.byte 51
.byte 39
.byte 14
.byte 29
.byte 58
.byte 53
.byte 43
.byte 22
.byte 44
.byte 24
.byte 48
.byte 33
.byte 2
.byte 5
.byte 11
.byte 23
.byte 46
.byte 28
.byte 56
.byte 49
.byte 35
.byte 6
.byte 13
.byte 27
.byte 54
.byte 45
.byte 26
.text
.global gift128b_init
.type gift128b_init, @function
gift128b_init:
movw r30,r24
movw r26,r22
.L__stack_usage = 2
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
st Z,r18
std Z+1,r19
std Z+2,r20
std Z+3,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+4,r18
std Z+5,r19
std Z+6,r20
std Z+7,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+8,r18
std Z+9,r19
std Z+10,r20
std Z+11,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+12,r18
std Z+13,r19
std Z+14,r20
std Z+15,r21
ret
.size gift128b_init, .-gift128b_init
.text
.global gift128b_encrypt
.type gift128b_encrypt, @function
gift128b_encrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r3,X+
ld r2,X+
ld r23,X+
ld r22,X+
ld r7,X+
ld r6,X+
ld r5,X+
ld r4,X+
ld r11,X+
ld r10,X+
ld r9,X+
ld r8,X+
ld r15,X+
ld r14,X+
ld r13,X+
ld r12,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
46:
rcall 199f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 199f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 199f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 199f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 46b
rjmp 548f
199:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
548:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r3
st X+,r2
st X+,r23
st X+,r22
st X+,r7
st X+,r6
st X+,r5
st X+,r4
st X+,r11
st X+,r10
st X+,r9
st X+,r8
st X+,r15
st X+,r14
st X+,r13
st X+,r12
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_encrypt, .-gift128b_encrypt
.text
.global gift128b_encrypt_preloaded
.type gift128b_encrypt_preloaded, @function
gift128b_encrypt_preloaded:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r22,X+
ld r23,X+
ld r2,X+
ld r3,X+
ld r4,X+
ld r5,X+
ld r6,X+
ld r7,X+
ld r8,X+
ld r9,X+
ld r10,X+
ld r11,X+
ld r12,X+
ld r13,X+
ld r14,X+
ld r15,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
46:
rcall 199f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 199f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 199f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 199f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 46b
rjmp 548f
199:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
548:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r22
st X+,r23
st X+,r2
st X+,r3
st X+,r4
st X+,r5
st X+,r6
st X+,r7
st X+,r8
st X+,r9
st X+,r10
st X+,r11
st X+,r12
st X+,r13
st X+,r14
st X+,r15
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_encrypt_preloaded, .-gift128b_encrypt_preloaded
.text
.global gift128b_decrypt
.type gift128b_decrypt, @function
gift128b_decrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 35
ld r3,X+
ld r2,X+
ld r23,X+
ld r22,X+
ld r7,X+
ld r6,X+
ld r5,X+
ld r4,X+
ld r11,X+
ld r10,X+
ld r9,X+
ld r8,X+
ld r15,X+
ld r14,X+
ld r13,X+
ld r12,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
ldi r16,40
114:
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
cpse r16,r1
rjmp 114b
rjmp 611f
266:
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
dec r16
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
bst r22,1
bld r0,0
bst r3,0
bld r22,1
bst r22,6
bld r3,0
bst r2,1
bld r22,6
bst r3,4
bld r2,1
bst r22,7
bld r3,4
bst r23,1
bld r22,7
bst r3,2
bld r23,1
bst r2,6
bld r3,2
bst r2,5
bld r2,6
bst r3,5
bld r2,5
bst r3,7
bld r3,5
bst r23,7
bld r3,7
bst r23,3
bld r23,7
bst r23,2
bld r23,3
bst r2,2
bld r23,2
bst r2,4
bld r2,2
bst r22,5
bld r2,4
bst r3,1
bld r22,5
bst r3,6
bld r3,1
bst r2,7
bld r3,6
bst r23,5
bld r2,7
bst r3,3
bld r23,5
bst r23,6
bld r3,3
bst r2,3
bld r23,6
bst r23,4
bld r2,3
bst r22,3
bld r23,4
bst r23,0
bld r22,3
bst r22,2
bld r23,0
bst r2,0
bld r22,2
bst r22,4
bld r2,0
bst r0,0
bld r22,4
bst r4,0
bld r0,0
bst r5,0
bld r4,0
bst r5,2
bld r5,0
bst r7,2
bld r5,2
bst r7,6
bld r7,2
bst r7,7
bld r7,6
bst r6,7
bld r7,7
bst r6,5
bld r6,7
bst r4,5
bld r6,5
bst r4,1
bld r4,5
bst r0,0
bld r4,1
bst r4,2
bld r0,0
bst r7,0
bld r4,2
bst r5,6
bld r7,0
bst r7,3
bld r5,6
bst r6,6
bld r7,3
bst r7,5
bld r6,6
bst r4,7
bld r7,5
bst r6,1
bld r4,7
bst r4,4
bld r6,1
bst r5,1
bld r4,4
bst r0,0
bld r5,1
bst r4,3
bld r0,0
bst r6,0
bld r4,3
bst r5,4
bld r6,0
bst r5,3
bld r5,4
bst r6,2
bld r5,3
bst r7,4
bld r6,2
bst r5,7
bld r7,4
bst r6,3
bld r5,7
bst r6,4
bld r6,3
bst r5,5
bld r6,4
bst r0,0
bld r5,5
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r10,0
bld r8,0
bst r10,4
bld r10,0
bst r10,5
bld r10,4
bst r9,5
bld r10,5
bst r9,3
bld r9,5
bst r11,2
bld r9,3
bst r8,6
bld r11,2
bst r8,1
bld r8,6
bst r9,0
bld r8,1
bst r10,2
bld r9,0
bst r8,4
bld r10,2
bst r10,1
bld r8,4
bst r9,4
bld r10,1
bst r10,3
bld r9,4
bst r11,4
bld r10,3
bst r10,7
bld r11,4
bst r11,5
bld r10,7
bst r9,7
bld r11,5
bst r11,3
bld r9,7
bst r11,6
bld r11,3
bst r8,7
bld r11,6
bst r11,1
bld r8,7
bst r9,6
bld r11,1
bst r8,3
bld r9,6
bst r11,0
bld r8,3
bst r10,6
bld r11,0
bst r8,5
bld r10,6
bst r9,1
bld r8,5
bst r9,2
bld r9,1
bst r8,2
bld r9,2
bst r0,0
bld r8,2
bst r12,0
bld r0,0
bst r15,0
bld r12,0
bst r15,6
bld r15,0
bst r13,7
bld r15,6
bst r12,3
bld r13,7
bst r0,0
bld r12,3
bst r12,1
bld r0,0
bst r14,0
bld r12,1
bst r15,4
bld r14,0
bst r15,7
bld r15,4
bst r12,7
bld r15,7
bst r0,0
bld r12,7
bst r12,2
bld r0,0
bst r13,0
bld r12,2
bst r15,2
bld r13,0
bst r13,6
bld r15,2
bst r13,3
bld r13,6
bst r0,0
bld r13,3
bst r12,4
bld r0,0
bst r15,1
bld r12,4
bst r14,6
bld r15,1
bst r13,5
bld r14,6
bst r14,3
bld r13,5
bst r0,0
bld r14,3
bst r12,5
bld r0,0
bst r14,1
bld r12,5
bst r14,4
bld r14,1
bst r15,5
bld r14,4
bst r14,7
bld r15,5
bst r0,0
bld r14,7
bst r12,6
bld r0,0
bst r13,1
bld r12,6
bst r14,2
bld r13,1
bst r13,4
bld r14,2
bst r15,3
bld r13,4
bst r0,0
bld r15,3
movw r18,r12
movw r20,r14
movw r12,r22
movw r14,r2
movw r22,r18
movw r2,r20
and r18,r4
and r19,r5
and r20,r6
and r21,r7
eor r8,r18
eor r9,r19
eor r10,r20
eor r11,r21
com r12
com r13
com r14
com r15
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
ret
611:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r3
st X+,r2
st X+,r23
st X+,r22
st X+,r7
st X+,r6
st X+,r5
st X+,r4
st X+,r11
st X+,r10
st X+,r9
st X+,r8
st X+,r15
st X+,r14
st X+,r13
st X+,r12
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_decrypt, .-gift128b_decrypt
#endif
#if defined(__AVR__)
#include <avr/io.h>
/* Automatically generated - do not edit */
.section .progmem.data,"a",@progbits
.p2align 8
.type table_0, @object
.size table_0, 40
table_0:
.byte 1
.byte 3
.byte 7
.byte 15
.byte 31
.byte 62
.byte 61
.byte 59
.byte 55
.byte 47
.byte 30
.byte 60
.byte 57
.byte 51
.byte 39
.byte 14
.byte 29
.byte 58
.byte 53
.byte 43
.byte 22
.byte 44
.byte 24
.byte 48
.byte 33
.byte 2
.byte 5
.byte 11
.byte 23
.byte 46
.byte 28
.byte 56
.byte 49
.byte 35
.byte 6
.byte 13
.byte 27
.byte 54
.byte 45
.byte 26
.text
.global gift128n_init
.type gift128n_init, @function
gift128n_init:
movw r30,r24
movw r26,r22
.L__stack_usage = 2
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
std Z+12,r18
std Z+13,r19
std Z+14,r20
std Z+15,r21
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
std Z+8,r18
std Z+9,r19
std Z+10,r20
std Z+11,r21
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
std Z+4,r18
std Z+5,r19
std Z+6,r20
std Z+7,r21
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
st Z,r18
std Z+1,r19
std Z+2,r20
std Z+3,r21
ret
.size gift128n_init, .-gift128n_init
.text
.global gift128n_encrypt
.type gift128n_encrypt, @function
gift128n_encrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r22,0
bst r18,1
bld r4,0
bst r18,2
bld r8,0
bst r18,3
bld r12,0
bst r18,4
bld r22,1
bst r18,5
bld r4,1
bst r18,6
bld r8,1
bst r18,7
bld r12,1
bst r19,0
bld r22,2
bst r19,1
bld r4,2
bst r19,2
bld r8,2
bst r19,3
bld r12,2
bst r19,4
bld r22,3
bst r19,5
bld r4,3
bst r19,6
bld r8,3
bst r19,7
bld r12,3
bst r20,0
bld r22,4
bst r20,1
bld r4,4
bst r20,2
bld r8,4
bst r20,3
bld r12,4
bst r20,4
bld r22,5
bst r20,5
bld r4,5
bst r20,6
bld r8,5
bst r20,7
bld r12,5
bst r21,0
bld r22,6
bst r21,1
bld r4,6
bst r21,2
bld r8,6
bst r21,3
bld r12,6
bst r21,4
bld r22,7
bst r21,5
bld r4,7
bst r21,6
bld r8,7
bst r21,7
bld r12,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r23,0
bst r18,1
bld r5,0
bst r18,2
bld r9,0
bst r18,3
bld r13,0
bst r18,4
bld r23,1
bst r18,5
bld r5,1
bst r18,6
bld r9,1
bst r18,7
bld r13,1
bst r19,0
bld r23,2
bst r19,1
bld r5,2
bst r19,2
bld r9,2
bst r19,3
bld r13,2
bst r19,4
bld r23,3
bst r19,5
bld r5,3
bst r19,6
bld r9,3
bst r19,7
bld r13,3
bst r20,0
bld r23,4
bst r20,1
bld r5,4
bst r20,2
bld r9,4
bst r20,3
bld r13,4
bst r20,4
bld r23,5
bst r20,5
bld r5,5
bst r20,6
bld r9,5
bst r20,7
bld r13,5
bst r21,0
bld r23,6
bst r21,1
bld r5,6
bst r21,2
bld r9,6
bst r21,3
bld r13,6
bst r21,4
bld r23,7
bst r21,5
bld r5,7
bst r21,6
bld r9,7
bst r21,7
bld r13,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r2,0
bst r18,1
bld r6,0
bst r18,2
bld r10,0
bst r18,3
bld r14,0
bst r18,4
bld r2,1
bst r18,5
bld r6,1
bst r18,6
bld r10,1
bst r18,7
bld r14,1
bst r19,0
bld r2,2
bst r19,1
bld r6,2
bst r19,2
bld r10,2
bst r19,3
bld r14,2
bst r19,4
bld r2,3
bst r19,5
bld r6,3
bst r19,6
bld r10,3
bst r19,7
bld r14,3
bst r20,0
bld r2,4
bst r20,1
bld r6,4
bst r20,2
bld r10,4
bst r20,3
bld r14,4
bst r20,4
bld r2,5
bst r20,5
bld r6,5
bst r20,6
bld r10,5
bst r20,7
bld r14,5
bst r21,0
bld r2,6
bst r21,1
bld r6,6
bst r21,2
bld r10,6
bst r21,3
bld r14,6
bst r21,4
bld r2,7
bst r21,5
bld r6,7
bst r21,6
bld r10,7
bst r21,7
bld r14,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r3,0
bst r18,1
bld r7,0
bst r18,2
bld r11,0
bst r18,3
bld r15,0
bst r18,4
bld r3,1
bst r18,5
bld r7,1
bst r18,6
bld r11,1
bst r18,7
bld r15,1
bst r19,0
bld r3,2
bst r19,1
bld r7,2
bst r19,2
bld r11,2
bst r19,3
bld r15,2
bst r19,4
bld r3,3
bst r19,5
bld r7,3
bst r19,6
bld r11,3
bst r19,7
bld r15,3
bst r20,0
bld r3,4
bst r20,1
bld r7,4
bst r20,2
bld r11,4
bst r20,3
bld r15,4
bst r20,4
bld r3,5
bst r20,5
bld r7,5
bst r20,6
bld r11,5
bst r20,7
bld r15,5
bst r21,0
bld r3,6
bst r21,1
bld r7,6
bst r21,2
bld r11,6
bst r21,3
bld r15,6
bst r21,4
bld r3,7
bst r21,5
bld r7,7
bst r21,6
bld r11,7
bst r21,7
bld r15,7
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
302:
rcall 455f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 455f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 455f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 455f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 302b
rjmp 804f
455:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
804:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
bst r22,0
bld r18,0
bst r4,0
bld r18,1
bst r8,0
bld r18,2
bst r12,0
bld r18,3
bst r22,1
bld r18,4
bst r4,1
bld r18,5
bst r8,1
bld r18,6
bst r12,1
bld r18,7
bst r22,2
bld r19,0
bst r4,2
bld r19,1
bst r8,2
bld r19,2
bst r12,2
bld r19,3
bst r22,3
bld r19,4
bst r4,3
bld r19,5
bst r8,3
bld r19,6
bst r12,3
bld r19,7
bst r22,4
bld r20,0
bst r4,4
bld r20,1
bst r8,4
bld r20,2
bst r12,4
bld r20,3
bst r22,5
bld r20,4
bst r4,5
bld r20,5
bst r8,5
bld r20,6
bst r12,5
bld r20,7
bst r22,6
bld r21,0
bst r4,6
bld r21,1
bst r8,6
bld r21,2
bst r12,6
bld r21,3
bst r22,7
bld r21,4
bst r4,7
bld r21,5
bst r8,7
bld r21,6
bst r12,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r23,0
bld r18,0
bst r5,0
bld r18,1
bst r9,0
bld r18,2
bst r13,0
bld r18,3
bst r23,1
bld r18,4
bst r5,1
bld r18,5
bst r9,1
bld r18,6
bst r13,1
bld r18,7
bst r23,2
bld r19,0
bst r5,2
bld r19,1
bst r9,2
bld r19,2
bst r13,2
bld r19,3
bst r23,3
bld r19,4
bst r5,3
bld r19,5
bst r9,3
bld r19,6
bst r13,3
bld r19,7
bst r23,4
bld r20,0
bst r5,4
bld r20,1
bst r9,4
bld r20,2
bst r13,4
bld r20,3
bst r23,5
bld r20,4
bst r5,5
bld r20,5
bst r9,5
bld r20,6
bst r13,5
bld r20,7
bst r23,6
bld r21,0
bst r5,6
bld r21,1
bst r9,6
bld r21,2
bst r13,6
bld r21,3
bst r23,7
bld r21,4
bst r5,7
bld r21,5
bst r9,7
bld r21,6
bst r13,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r2,0
bld r18,0
bst r6,0
bld r18,1
bst r10,0
bld r18,2
bst r14,0
bld r18,3
bst r2,1
bld r18,4
bst r6,1
bld r18,5
bst r10,1
bld r18,6
bst r14,1
bld r18,7
bst r2,2
bld r19,0
bst r6,2
bld r19,1
bst r10,2
bld r19,2
bst r14,2
bld r19,3
bst r2,3
bld r19,4
bst r6,3
bld r19,5
bst r10,3
bld r19,6
bst r14,3
bld r19,7
bst r2,4
bld r20,0
bst r6,4
bld r20,1
bst r10,4
bld r20,2
bst r14,4
bld r20,3
bst r2,5
bld r20,4
bst r6,5
bld r20,5
bst r10,5
bld r20,6
bst r14,5
bld r20,7
bst r2,6
bld r21,0
bst r6,6
bld r21,1
bst r10,6
bld r21,2
bst r14,6
bld r21,3
bst r2,7
bld r21,4
bst r6,7
bld r21,5
bst r10,7
bld r21,6
bst r14,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r3,0
bld r18,0
bst r7,0
bld r18,1
bst r11,0
bld r18,2
bst r15,0
bld r18,3
bst r3,1
bld r18,4
bst r7,1
bld r18,5
bst r11,1
bld r18,6
bst r15,1
bld r18,7
bst r3,2
bld r19,0
bst r7,2
bld r19,1
bst r11,2
bld r19,2
bst r15,2
bld r19,3
bst r3,3
bld r19,4
bst r7,3
bld r19,5
bst r11,3
bld r19,6
bst r15,3
bld r19,7
bst r3,4
bld r20,0
bst r7,4
bld r20,1
bst r11,4
bld r20,2
bst r15,4
bld r20,3
bst r3,5
bld r20,4
bst r7,5
bld r20,5
bst r11,5
bld r20,6
bst r15,5
bld r20,7
bst r3,6
bld r21,0
bst r7,6
bld r21,1
bst r11,6
bld r21,2
bst r15,6
bld r21,3
bst r3,7
bld r21,4
bst r7,7
bld r21,5
bst r11,7
bld r21,6
bst r15,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128n_encrypt, .-gift128n_encrypt
.text
.global gift128n_decrypt
.type gift128n_decrypt, @function
gift128n_decrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 35
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r22,0
bst r18,1
bld r4,0
bst r18,2
bld r8,0
bst r18,3
bld r12,0
bst r18,4
bld r22,1
bst r18,5
bld r4,1
bst r18,6
bld r8,1
bst r18,7
bld r12,1
bst r19,0
bld r22,2
bst r19,1
bld r4,2
bst r19,2
bld r8,2
bst r19,3
bld r12,2
bst r19,4
bld r22,3
bst r19,5
bld r4,3
bst r19,6
bld r8,3
bst r19,7
bld r12,3
bst r20,0
bld r22,4
bst r20,1
bld r4,4
bst r20,2
bld r8,4
bst r20,3
bld r12,4
bst r20,4
bld r22,5
bst r20,5
bld r4,5
bst r20,6
bld r8,5
bst r20,7
bld r12,5
bst r21,0
bld r22,6
bst r21,1
bld r4,6
bst r21,2
bld r8,6
bst r21,3
bld r12,6
bst r21,4
bld r22,7
bst r21,5
bld r4,7
bst r21,6
bld r8,7
bst r21,7
bld r12,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r23,0
bst r18,1
bld r5,0
bst r18,2
bld r9,0
bst r18,3
bld r13,0
bst r18,4
bld r23,1
bst r18,5
bld r5,1
bst r18,6
bld r9,1
bst r18,7
bld r13,1
bst r19,0
bld r23,2
bst r19,1
bld r5,2
bst r19,2
bld r9,2
bst r19,3
bld r13,2
bst r19,4
bld r23,3
bst r19,5
bld r5,3
bst r19,6
bld r9,3
bst r19,7
bld r13,3
bst r20,0
bld r23,4
bst r20,1
bld r5,4
bst r20,2
bld r9,4
bst r20,3
bld r13,4
bst r20,4
bld r23,5
bst r20,5
bld r5,5
bst r20,6
bld r9,5
bst r20,7
bld r13,5
bst r21,0
bld r23,6
bst r21,1
bld r5,6
bst r21,2
bld r9,6
bst r21,3
bld r13,6
bst r21,4
bld r23,7
bst r21,5
bld r5,7
bst r21,6
bld r9,7
bst r21,7
bld r13,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r2,0
bst r18,1
bld r6,0
bst r18,2
bld r10,0
bst r18,3
bld r14,0
bst r18,4
bld r2,1
bst r18,5
bld r6,1
bst r18,6
bld r10,1
bst r18,7
bld r14,1
bst r19,0
bld r2,2
bst r19,1
bld r6,2
bst r19,2
bld r10,2
bst r19,3
bld r14,2
bst r19,4
bld r2,3
bst r19,5
bld r6,3
bst r19,6
bld r10,3
bst r19,7
bld r14,3
bst r20,0
bld r2,4
bst r20,1
bld r6,4
bst r20,2
bld r10,4
bst r20,3
bld r14,4
bst r20,4
bld r2,5
bst r20,5
bld r6,5
bst r20,6
bld r10,5
bst r20,7
bld r14,5
bst r21,0
bld r2,6
bst r21,1
bld r6,6
bst r21,2
bld r10,6
bst r21,3
bld r14,6
bst r21,4
bld r2,7
bst r21,5
bld r6,7
bst r21,6
bld r10,7
bst r21,7
bld r14,7
ld r18,X+
ld r19,X+
ld r20,X+
ld r21,X+
bst r18,0
bld r3,0
bst r18,1
bld r7,0
bst r18,2
bld r11,0
bst r18,3
bld r15,0
bst r18,4
bld r3,1
bst r18,5
bld r7,1
bst r18,6
bld r11,1
bst r18,7
bld r15,1
bst r19,0
bld r3,2
bst r19,1
bld r7,2
bst r19,2
bld r11,2
bst r19,3
bld r15,2
bst r19,4
bld r3,3
bst r19,5
bld r7,3
bst r19,6
bld r11,3
bst r19,7
bld r15,3
bst r20,0
bld r3,4
bst r20,1
bld r7,4
bst r20,2
bld r11,4
bst r20,3
bld r15,4
bst r20,4
bld r3,5
bst r20,5
bld r7,5
bst r20,6
bld r11,5
bst r20,7
bld r15,5
bst r21,0
bld r3,6
bst r21,1
bld r7,6
bst r21,2
bld r11,6
bst r21,3
bld r15,6
bst r21,4
bld r3,7
bst r21,5
bld r7,7
bst r21,6
bld r11,7
bst r21,7
bld r15,7
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
ldi r16,40
370:
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 522f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 522f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 522f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 522f
cpse r16,r1
rjmp 370b
rjmp 867f
522:
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
dec r16
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
bst r22,1
bld r0,0
bst r3,0
bld r22,1
bst r22,6
bld r3,0
bst r2,1
bld r22,6
bst r3,4
bld r2,1
bst r22,7
bld r3,4
bst r23,1
bld r22,7
bst r3,2
bld r23,1
bst r2,6
bld r3,2
bst r2,5
bld r2,6
bst r3,5
bld r2,5
bst r3,7
bld r3,5
bst r23,7
bld r3,7
bst r23,3
bld r23,7
bst r23,2
bld r23,3
bst r2,2
bld r23,2
bst r2,4
bld r2,2
bst r22,5
bld r2,4
bst r3,1
bld r22,5
bst r3,6
bld r3,1
bst r2,7
bld r3,6
bst r23,5
bld r2,7
bst r3,3
bld r23,5
bst r23,6
bld r3,3
bst r2,3
bld r23,6
bst r23,4
bld r2,3
bst r22,3
bld r23,4
bst r23,0
bld r22,3
bst r22,2
bld r23,0
bst r2,0
bld r22,2
bst r22,4
bld r2,0
bst r0,0
bld r22,4
bst r4,0
bld r0,0
bst r5,0
bld r4,0
bst r5,2
bld r5,0
bst r7,2
bld r5,2
bst r7,6
bld r7,2
bst r7,7
bld r7,6
bst r6,7
bld r7,7
bst r6,5
bld r6,7
bst r4,5
bld r6,5
bst r4,1
bld r4,5
bst r0,0
bld r4,1
bst r4,2
bld r0,0
bst r7,0
bld r4,2
bst r5,6
bld r7,0
bst r7,3
bld r5,6
bst r6,6
bld r7,3
bst r7,5
bld r6,6
bst r4,7
bld r7,5
bst r6,1
bld r4,7
bst r4,4
bld r6,1
bst r5,1
bld r4,4
bst r0,0
bld r5,1
bst r4,3
bld r0,0
bst r6,0
bld r4,3
bst r5,4
bld r6,0
bst r5,3
bld r5,4
bst r6,2
bld r5,3
bst r7,4
bld r6,2
bst r5,7
bld r7,4
bst r6,3
bld r5,7
bst r6,4
bld r6,3
bst r5,5
bld r6,4
bst r0,0
bld r5,5
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r10,0
bld r8,0
bst r10,4
bld r10,0
bst r10,5
bld r10,4
bst r9,5
bld r10,5
bst r9,3
bld r9,5
bst r11,2
bld r9,3
bst r8,6
bld r11,2
bst r8,1
bld r8,6
bst r9,0
bld r8,1
bst r10,2
bld r9,0
bst r8,4
bld r10,2
bst r10,1
bld r8,4
bst r9,4
bld r10,1
bst r10,3
bld r9,4
bst r11,4
bld r10,3
bst r10,7
bld r11,4
bst r11,5
bld r10,7
bst r9,7
bld r11,5
bst r11,3
bld r9,7
bst r11,6
bld r11,3
bst r8,7
bld r11,6
bst r11,1
bld r8,7
bst r9,6
bld r11,1
bst r8,3
bld r9,6
bst r11,0
bld r8,3
bst r10,6
bld r11,0
bst r8,5
bld r10,6
bst r9,1
bld r8,5
bst r9,2
bld r9,1
bst r8,2
bld r9,2
bst r0,0
bld r8,2
bst r12,0
bld r0,0
bst r15,0
bld r12,0
bst r15,6
bld r15,0
bst r13,7
bld r15,6
bst r12,3
bld r13,7
bst r0,0
bld r12,3
bst r12,1
bld r0,0
bst r14,0
bld r12,1
bst r15,4
bld r14,0
bst r15,7
bld r15,4
bst r12,7
bld r15,7
bst r0,0
bld r12,7
bst r12,2
bld r0,0
bst r13,0
bld r12,2
bst r15,2
bld r13,0
bst r13,6
bld r15,2
bst r13,3
bld r13,6
bst r0,0
bld r13,3
bst r12,4
bld r0,0
bst r15,1
bld r12,4
bst r14,6
bld r15,1
bst r13,5
bld r14,6
bst r14,3
bld r13,5
bst r0,0
bld r14,3
bst r12,5
bld r0,0
bst r14,1
bld r12,5
bst r14,4
bld r14,1
bst r15,5
bld r14,4
bst r14,7
bld r15,5
bst r0,0
bld r14,7
bst r12,6
bld r0,0
bst r13,1
bld r12,6
bst r14,2
bld r13,1
bst r13,4
bld r14,2
bst r15,3
bld r13,4
bst r0,0
bld r15,3
movw r18,r12
movw r20,r14
movw r12,r22
movw r14,r2
movw r22,r18
movw r2,r20
and r18,r4
and r19,r5
and r20,r6
and r21,r7
eor r8,r18
eor r9,r19
eor r10,r20
eor r11,r21
com r12
com r13
com r14
com r15
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
ret
867:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
bst r22,0
bld r18,0
bst r4,0
bld r18,1
bst r8,0
bld r18,2
bst r12,0
bld r18,3
bst r22,1
bld r18,4
bst r4,1
bld r18,5
bst r8,1
bld r18,6
bst r12,1
bld r18,7
bst r22,2
bld r19,0
bst r4,2
bld r19,1
bst r8,2
bld r19,2
bst r12,2
bld r19,3
bst r22,3
bld r19,4
bst r4,3
bld r19,5
bst r8,3
bld r19,6
bst r12,3
bld r19,7
bst r22,4
bld r20,0
bst r4,4
bld r20,1
bst r8,4
bld r20,2
bst r12,4
bld r20,3
bst r22,5
bld r20,4
bst r4,5
bld r20,5
bst r8,5
bld r20,6
bst r12,5
bld r20,7
bst r22,6
bld r21,0
bst r4,6
bld r21,1
bst r8,6
bld r21,2
bst r12,6
bld r21,3
bst r22,7
bld r21,4
bst r4,7
bld r21,5
bst r8,7
bld r21,6
bst r12,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r23,0
bld r18,0
bst r5,0
bld r18,1
bst r9,0
bld r18,2
bst r13,0
bld r18,3
bst r23,1
bld r18,4
bst r5,1
bld r18,5
bst r9,1
bld r18,6
bst r13,1
bld r18,7
bst r23,2
bld r19,0
bst r5,2
bld r19,1
bst r9,2
bld r19,2
bst r13,2
bld r19,3
bst r23,3
bld r19,4
bst r5,3
bld r19,5
bst r9,3
bld r19,6
bst r13,3
bld r19,7
bst r23,4
bld r20,0
bst r5,4
bld r20,1
bst r9,4
bld r20,2
bst r13,4
bld r20,3
bst r23,5
bld r20,4
bst r5,5
bld r20,5
bst r9,5
bld r20,6
bst r13,5
bld r20,7
bst r23,6
bld r21,0
bst r5,6
bld r21,1
bst r9,6
bld r21,2
bst r13,6
bld r21,3
bst r23,7
bld r21,4
bst r5,7
bld r21,5
bst r9,7
bld r21,6
bst r13,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r2,0
bld r18,0
bst r6,0
bld r18,1
bst r10,0
bld r18,2
bst r14,0
bld r18,3
bst r2,1
bld r18,4
bst r6,1
bld r18,5
bst r10,1
bld r18,6
bst r14,1
bld r18,7
bst r2,2
bld r19,0
bst r6,2
bld r19,1
bst r10,2
bld r19,2
bst r14,2
bld r19,3
bst r2,3
bld r19,4
bst r6,3
bld r19,5
bst r10,3
bld r19,6
bst r14,3
bld r19,7
bst r2,4
bld r20,0
bst r6,4
bld r20,1
bst r10,4
bld r20,2
bst r14,4
bld r20,3
bst r2,5
bld r20,4
bst r6,5
bld r20,5
bst r10,5
bld r20,6
bst r14,5
bld r20,7
bst r2,6
bld r21,0
bst r6,6
bld r21,1
bst r10,6
bld r21,2
bst r14,6
bld r21,3
bst r2,7
bld r21,4
bst r6,7
bld r21,5
bst r10,7
bld r21,6
bst r14,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
bst r3,0
bld r18,0
bst r7,0
bld r18,1
bst r11,0
bld r18,2
bst r15,0
bld r18,3
bst r3,1
bld r18,4
bst r7,1
bld r18,5
bst r11,1
bld r18,6
bst r15,1
bld r18,7
bst r3,2
bld r19,0
bst r7,2
bld r19,1
bst r11,2
bld r19,2
bst r15,2
bld r19,3
bst r3,3
bld r19,4
bst r7,3
bld r19,5
bst r11,3
bld r19,6
bst r15,3
bld r19,7
bst r3,4
bld r20,0
bst r7,4
bld r20,1
bst r11,4
bld r20,2
bst r15,4
bld r20,3
bst r3,5
bld r20,4
bst r7,5
bld r20,5
bst r11,5
bld r20,6
bst r15,5
bld r20,7
bst r3,6
bld r21,0
bst r7,6
bld r21,1
bst r11,6
bld r21,2
bst r15,6
bld r21,3
bst r3,7
bld r21,4
bst r7,7
bld r21,5
bst r11,7
bld r21,6
bst r15,7
bld r21,7
st X+,r18
st X+,r19
st X+,r20
st X+,r21
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128n_decrypt, .-gift128n_decrypt
.text
.global gift128t_encrypt
.type gift128t_encrypt, @function
gift128t_encrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r2,0
bst r20,1
bld r6,0
bst r20,2
bld r10,0
bst r20,3
bld r14,0
bst r20,4
bld r2,1
bst r20,5
bld r6,1
bst r20,6
bld r10,1
bst r20,7
bld r14,1
bst r21,0
bld r2,2
bst r21,1
bld r6,2
bst r21,2
bld r10,2
bst r21,3
bld r14,2
bst r21,4
bld r2,3
bst r21,5
bld r6,3
bst r21,6
bld r10,3
bst r21,7
bld r14,3
bst r22,0
bld r2,4
bst r22,1
bld r6,4
bst r22,2
bld r10,4
bst r22,3
bld r14,4
bst r22,4
bld r2,5
bst r22,5
bld r6,5
bst r22,6
bld r10,5
bst r22,7
bld r14,5
bst r23,0
bld r2,6
bst r23,1
bld r6,6
bst r23,2
bld r10,6
bst r23,3
bld r14,6
bst r23,4
bld r2,7
bst r23,5
bld r6,7
bst r23,6
bld r10,7
bst r23,7
bld r14,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r3,0
bst r20,1
bld r7,0
bst r20,2
bld r11,0
bst r20,3
bld r15,0
bst r20,4
bld r3,1
bst r20,5
bld r7,1
bst r20,6
bld r11,1
bst r20,7
bld r15,1
bst r21,0
bld r3,2
bst r21,1
bld r7,2
bst r21,2
bld r11,2
bst r21,3
bld r15,2
bst r21,4
bld r3,3
bst r21,5
bld r7,3
bst r21,6
bld r11,3
bst r21,7
bld r15,3
bst r22,0
bld r3,4
bst r22,1
bld r7,4
bst r22,2
bld r11,4
bst r22,3
bld r15,4
bst r22,4
bld r3,5
bst r22,5
bld r7,5
bst r22,6
bld r11,5
bst r22,7
bld r15,5
bst r23,0
bld r3,6
bst r23,1
bld r7,6
bst r23,2
bld r11,6
bst r23,3
bld r15,6
bst r23,4
bld r3,7
bst r23,5
bld r7,7
bst r23,6
bld r11,7
bst r23,7
bld r15,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r4,0
bst r20,1
bld r8,0
bst r20,2
bld r12,0
bst r20,3
bld r24,0
bst r20,4
bld r4,1
bst r20,5
bld r8,1
bst r20,6
bld r12,1
bst r20,7
bld r24,1
bst r21,0
bld r4,2
bst r21,1
bld r8,2
bst r21,2
bld r12,2
bst r21,3
bld r24,2
bst r21,4
bld r4,3
bst r21,5
bld r8,3
bst r21,6
bld r12,3
bst r21,7
bld r24,3
bst r22,0
bld r4,4
bst r22,1
bld r8,4
bst r22,2
bld r12,4
bst r22,3
bld r24,4
bst r22,4
bld r4,5
bst r22,5
bld r8,5
bst r22,6
bld r12,5
bst r22,7
bld r24,5
bst r23,0
bld r4,6
bst r23,1
bld r8,6
bst r23,2
bld r12,6
bst r23,3
bld r24,6
bst r23,4
bld r4,7
bst r23,5
bld r8,7
bst r23,6
bld r12,7
bst r23,7
bld r24,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r5,0
bst r20,1
bld r9,0
bst r20,2
bld r13,0
bst r20,3
bld r25,0
bst r20,4
bld r5,1
bst r20,5
bld r9,1
bst r20,6
bld r13,1
bst r20,7
bld r25,1
bst r21,0
bld r5,2
bst r21,1
bld r9,2
bst r21,2
bld r13,2
bst r21,3
bld r25,2
bst r21,4
bld r5,3
bst r21,5
bld r9,3
bst r21,6
bld r13,3
bst r21,7
bld r25,3
bst r22,0
bld r5,4
bst r22,1
bld r9,4
bst r22,2
bld r13,4
bst r22,3
bld r25,4
bst r22,4
bld r5,5
bst r22,5
bld r9,5
bst r22,6
bld r13,5
bst r22,7
bld r25,5
bst r23,0
bld r5,6
bst r23,1
bld r9,6
bst r23,2
bld r13,6
bst r23,3
bld r25,6
bst r23,4
bld r5,7
bst r23,5
bld r9,7
bst r23,6
bld r13,7
bst r23,7
bld r25,7
ld r26,Z
ldd r27,Z+1
ldd r16,Z+2
ldd r17,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r16
std Y+4,r17
ldd r26,Z+4
ldd r27,Z+5
ldd r16,Z+6
ldd r17,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r16
std Y+8,r17
ldd r26,Z+8
ldd r27,Z+9
ldd r16,Z+10
ldd r17,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r16
std Y+12,r17
ldd r26,Z+12
ldd r27,Z+13
ldd r16,Z+14
ldd r17,Z+15
std Y+13,r26
std Y+14,r27
std Y+15,r16
std Y+16,r17
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r26,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r26
#endif
mov r19,r1
mov r26,r1
307:
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r8,r0
mov r0,r5
and r0,r13
eor r9,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r8
and r0,r24
eor r4,r0
mov r0,r9
and r0,r25
eor r5,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
mov r0,r4
or r0,r8
eor r12,r0
mov r0,r5
or r0,r9
eor r13,r0
eor r14,r10
eor r15,r11
eor r24,r12
eor r25,r13
eor r6,r14
eor r7,r15
eor r8,r24
eor r9,r25
com r14
com r15
com r24
com r25
movw r20,r2
movw r22,r4
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
mov r0,r8
and r0,r22
eor r12,r0
mov r0,r9
and r0,r23
eor r13,r0
movw r2,r14
movw r4,r24
movw r14,r20
movw r24,r22
bst r2,1
bld r0,0
bst r2,4
bld r2,1
bst r4,0
bld r2,4
bst r2,2
bld r4,0
bst r3,0
bld r2,2
bst r2,3
bld r3,0
bst r3,4
bld r2,3
bst r4,3
bld r3,4
bst r3,6
bld r4,3
bst r5,3
bld r3,6
bst r3,5
bld r5,3
bst r4,7
bld r3,5
bst r5,6
bld r4,7
bst r5,1
bld r5,6
bst r2,5
bld r5,1
bst r4,4
bld r2,5
bst r4,2
bld r4,4
bst r3,2
bld r4,2
bst r3,3
bld r3,2
bst r3,7
bld r3,3
bst r5,7
bld r3,7
bst r5,5
bld r5,7
bst r4,5
bld r5,5
bst r4,6
bld r4,5
bst r5,2
bld r4,6
bst r3,1
bld r5,2
bst r2,7
bld r3,1
bst r5,4
bld r2,7
bst r4,1
bld r5,4
bst r2,6
bld r4,1
bst r5,0
bld r2,6
bst r0,0
bld r5,0
bst r6,0
bld r0,0
bst r6,1
bld r6,0
bst r6,5
bld r6,1
bst r8,5
bld r6,5
bst r8,7
bld r8,5
bst r9,7
bld r8,7
bst r9,6
bld r9,7
bst r9,2
bld r9,6
bst r7,2
bld r9,2
bst r7,0
bld r7,2
bst r0,0
bld r7,0
bst r6,2
bld r0,0
bst r7,1
bld r6,2
bst r6,4
bld r7,1
bst r8,1
bld r6,4
bst r6,7
bld r8,1
bst r9,5
bld r6,7
bst r8,6
bld r9,5
bst r9,3
bld r8,6
bst r7,6
bld r9,3
bst r9,0
bld r7,6
bst r0,0
bld r9,0
bst r6,3
bld r0,0
bst r7,5
bld r6,3
bst r8,4
bld r7,5
bst r8,3
bld r8,4
bst r7,7
bld r8,3
bst r9,4
bld r7,7
bst r8,2
bld r9,4
bst r7,3
bld r8,2
bst r7,4
bld r7,3
bst r8,0
bld r7,4
bst r0,0
bld r8,0
bst r6,6
bld r0,0
bst r9,1
bld r6,6
bst r0,0
bld r9,1
bst r10,0
bld r0,0
bst r10,2
bld r10,0
bst r11,2
bld r10,2
bst r11,1
bld r11,2
bst r10,5
bld r11,1
bst r12,6
bld r10,5
bst r13,0
bld r12,6
bst r10,3
bld r13,0
bst r11,6
bld r10,3
bst r13,1
bld r11,6
bst r10,7
bld r13,1
bst r13,6
bld r10,7
bst r13,3
bld r13,6
bst r11,7
bld r13,3
bst r13,5
bld r11,7
bst r12,7
bld r13,5
bst r13,4
bld r12,7
bst r12,3
bld r13,4
bst r11,4
bld r12,3
bst r12,1
bld r11,4
bst r10,4
bld r12,1
bst r12,2
bld r10,4
bst r11,0
bld r12,2
bst r10,1
bld r11,0
bst r10,6
bld r10,1
bst r13,2
bld r10,6
bst r11,3
bld r13,2
bst r11,5
bld r11,3
bst r12,5
bld r11,5
bst r12,4
bld r12,5
bst r12,0
bld r12,4
bst r0,0
bld r12,0
bst r14,0
bld r0,0
bst r14,3
bld r14,0
bst r15,7
bld r14,3
bst r25,6
bld r15,7
bst r25,0
bld r25,6
bst r0,0
bld r25,0
bst r14,1
bld r0,0
bst r14,7
bld r14,1
bst r25,7
bld r14,7
bst r25,4
bld r25,7
bst r24,0
bld r25,4
bst r0,0
bld r24,0
bst r14,2
bld r0,0
bst r15,3
bld r14,2
bst r15,6
bld r15,3
bst r25,2
bld r15,6
bst r15,0
bld r25,2
bst r0,0
bld r15,0
bst r14,4
bld r0,0
bst r24,3
bld r14,4
bst r15,5
bld r24,3
bst r24,6
bld r15,5
bst r25,1
bld r24,6
bst r0,0
bld r25,1
bst r14,5
bld r0,0
bst r24,7
bld r14,5
bst r25,5
bld r24,7
bst r24,4
bld r25,5
bst r24,1
bld r24,4
bst r0,0
bld r24,1
bst r14,6
bld r0,0
bst r25,3
bld r14,6
bst r15,4
bld r25,3
bst r24,2
bld r15,4
bst r15,1
bld r24,2
bst r0,0
bld r15,1
ldd r0,Y+5
eor r10,r0
ldd r0,Y+6
eor r11,r0
ldd r0,Y+7
eor r12,r0
ldd r0,Y+8
eor r13,r0
ldd r20,Y+13
ldd r21,Y+14
ldd r22,Y+15
ldd r23,Y+16
eor r6,r20
eor r7,r21
eor r8,r22
eor r9,r23
lsl r20
rol r21
adc r20,r1
lsl r20
rol r21
adc r20,r1
lsl r20
rol r21
adc r20,r1
lsl r20
rol r21
adc r20,r1
mov r0,r1
lsr r23
ror r22
ror r0
lsr r23
ror r22
ror r0
or r23,r0
ldd r0,Y+1
std Y+1,r20
ldd r20,Y+5
std Y+5,r0
ldd r0,Y+9
std Y+9,r20
std Y+13,r0
ldd r0,Y+2
std Y+2,r21
ldd r21,Y+6
std Y+6,r0
ldd r0,Y+10
std Y+10,r21
std Y+14,r0
ldd r0,Y+3
std Y+3,r22
ldd r22,Y+7
std Y+7,r0
ldd r0,Y+11
std Y+11,r22
std Y+15,r0
ldd r0,Y+4
std Y+4,r23
ldd r23,Y+8
std Y+8,r0
ldd r0,Y+12
std Y+12,r23
std Y+16,r0
ldi r20,128
eor r25,r20
mov r30,r19
#if defined(RAMPZ)
elpm r20,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r20,Z
#elif defined(__AVR_TINY__)
ld r20,Z
#else
lpm
mov r20,r0
#endif
eor r14,r20
inc r19
cpi r19,40
breq 727f
inc r26
ldi r27,5
cpse r26,r27
rjmp 307b
mov r26,r1
eor r2,r18
eor r3,r18
eor r4,r18
eor r5,r18
rjmp 307b
727:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
bst r2,0
bld r20,0
bst r6,0
bld r20,1
bst r10,0
bld r20,2
bst r14,0
bld r20,3
bst r2,1
bld r20,4
bst r6,1
bld r20,5
bst r10,1
bld r20,6
bst r14,1
bld r20,7
bst r2,2
bld r21,0
bst r6,2
bld r21,1
bst r10,2
bld r21,2
bst r14,2
bld r21,3
bst r2,3
bld r21,4
bst r6,3
bld r21,5
bst r10,3
bld r21,6
bst r14,3
bld r21,7
bst r2,4
bld r22,0
bst r6,4
bld r22,1
bst r10,4
bld r22,2
bst r14,4
bld r22,3
bst r2,5
bld r22,4
bst r6,5
bld r22,5
bst r10,5
bld r22,6
bst r14,5
bld r22,7
bst r2,6
bld r23,0
bst r6,6
bld r23,1
bst r10,6
bld r23,2
bst r14,6
bld r23,3
bst r2,7
bld r23,4
bst r6,7
bld r23,5
bst r10,7
bld r23,6
bst r14,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r3,0
bld r20,0
bst r7,0
bld r20,1
bst r11,0
bld r20,2
bst r15,0
bld r20,3
bst r3,1
bld r20,4
bst r7,1
bld r20,5
bst r11,1
bld r20,6
bst r15,1
bld r20,7
bst r3,2
bld r21,0
bst r7,2
bld r21,1
bst r11,2
bld r21,2
bst r15,2
bld r21,3
bst r3,3
bld r21,4
bst r7,3
bld r21,5
bst r11,3
bld r21,6
bst r15,3
bld r21,7
bst r3,4
bld r22,0
bst r7,4
bld r22,1
bst r11,4
bld r22,2
bst r15,4
bld r22,3
bst r3,5
bld r22,4
bst r7,5
bld r22,5
bst r11,5
bld r22,6
bst r15,5
bld r22,7
bst r3,6
bld r23,0
bst r7,6
bld r23,1
bst r11,6
bld r23,2
bst r15,6
bld r23,3
bst r3,7
bld r23,4
bst r7,7
bld r23,5
bst r11,7
bld r23,6
bst r15,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r4,0
bld r20,0
bst r8,0
bld r20,1
bst r12,0
bld r20,2
bst r24,0
bld r20,3
bst r4,1
bld r20,4
bst r8,1
bld r20,5
bst r12,1
bld r20,6
bst r24,1
bld r20,7
bst r4,2
bld r21,0
bst r8,2
bld r21,1
bst r12,2
bld r21,2
bst r24,2
bld r21,3
bst r4,3
bld r21,4
bst r8,3
bld r21,5
bst r12,3
bld r21,6
bst r24,3
bld r21,7
bst r4,4
bld r22,0
bst r8,4
bld r22,1
bst r12,4
bld r22,2
bst r24,4
bld r22,3
bst r4,5
bld r22,4
bst r8,5
bld r22,5
bst r12,5
bld r22,6
bst r24,5
bld r22,7
bst r4,6
bld r23,0
bst r8,6
bld r23,1
bst r12,6
bld r23,2
bst r24,6
bld r23,3
bst r4,7
bld r23,4
bst r8,7
bld r23,5
bst r12,7
bld r23,6
bst r24,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r5,0
bld r20,0
bst r9,0
bld r20,1
bst r13,0
bld r20,2
bst r25,0
bld r20,3
bst r5,1
bld r20,4
bst r9,1
bld r20,5
bst r13,1
bld r20,6
bst r25,1
bld r20,7
bst r5,2
bld r21,0
bst r9,2
bld r21,1
bst r13,2
bld r21,2
bst r25,2
bld r21,3
bst r5,3
bld r21,4
bst r9,3
bld r21,5
bst r13,3
bld r21,6
bst r25,3
bld r21,7
bst r5,4
bld r22,0
bst r9,4
bld r22,1
bst r13,4
bld r22,2
bst r25,4
bld r22,3
bst r5,5
bld r22,4
bst r9,5
bld r22,5
bst r13,5
bld r22,6
bst r25,5
bld r22,7
bst r5,6
bld r23,0
bst r9,6
bld r23,1
bst r13,6
bld r23,2
bst r25,6
bld r23,3
bst r5,7
bld r23,4
bst r9,7
bld r23,5
bst r13,7
bld r23,6
bst r25,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128t_encrypt, .-gift128t_encrypt
.text
.global gift128t_decrypt
.type gift128t_decrypt, @function
gift128t_decrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r2,0
bst r20,1
bld r6,0
bst r20,2
bld r10,0
bst r20,3
bld r14,0
bst r20,4
bld r2,1
bst r20,5
bld r6,1
bst r20,6
bld r10,1
bst r20,7
bld r14,1
bst r21,0
bld r2,2
bst r21,1
bld r6,2
bst r21,2
bld r10,2
bst r21,3
bld r14,2
bst r21,4
bld r2,3
bst r21,5
bld r6,3
bst r21,6
bld r10,3
bst r21,7
bld r14,3
bst r22,0
bld r2,4
bst r22,1
bld r6,4
bst r22,2
bld r10,4
bst r22,3
bld r14,4
bst r22,4
bld r2,5
bst r22,5
bld r6,5
bst r22,6
bld r10,5
bst r22,7
bld r14,5
bst r23,0
bld r2,6
bst r23,1
bld r6,6
bst r23,2
bld r10,6
bst r23,3
bld r14,6
bst r23,4
bld r2,7
bst r23,5
bld r6,7
bst r23,6
bld r10,7
bst r23,7
bld r14,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r3,0
bst r20,1
bld r7,0
bst r20,2
bld r11,0
bst r20,3
bld r15,0
bst r20,4
bld r3,1
bst r20,5
bld r7,1
bst r20,6
bld r11,1
bst r20,7
bld r15,1
bst r21,0
bld r3,2
bst r21,1
bld r7,2
bst r21,2
bld r11,2
bst r21,3
bld r15,2
bst r21,4
bld r3,3
bst r21,5
bld r7,3
bst r21,6
bld r11,3
bst r21,7
bld r15,3
bst r22,0
bld r3,4
bst r22,1
bld r7,4
bst r22,2
bld r11,4
bst r22,3
bld r15,4
bst r22,4
bld r3,5
bst r22,5
bld r7,5
bst r22,6
bld r11,5
bst r22,7
bld r15,5
bst r23,0
bld r3,6
bst r23,1
bld r7,6
bst r23,2
bld r11,6
bst r23,3
bld r15,6
bst r23,4
bld r3,7
bst r23,5
bld r7,7
bst r23,6
bld r11,7
bst r23,7
bld r15,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r4,0
bst r20,1
bld r8,0
bst r20,2
bld r12,0
bst r20,3
bld r24,0
bst r20,4
bld r4,1
bst r20,5
bld r8,1
bst r20,6
bld r12,1
bst r20,7
bld r24,1
bst r21,0
bld r4,2
bst r21,1
bld r8,2
bst r21,2
bld r12,2
bst r21,3
bld r24,2
bst r21,4
bld r4,3
bst r21,5
bld r8,3
bst r21,6
bld r12,3
bst r21,7
bld r24,3
bst r22,0
bld r4,4
bst r22,1
bld r8,4
bst r22,2
bld r12,4
bst r22,3
bld r24,4
bst r22,4
bld r4,5
bst r22,5
bld r8,5
bst r22,6
bld r12,5
bst r22,7
bld r24,5
bst r23,0
bld r4,6
bst r23,1
bld r8,6
bst r23,2
bld r12,6
bst r23,3
bld r24,6
bst r23,4
bld r4,7
bst r23,5
bld r8,7
bst r23,6
bld r12,7
bst r23,7
bld r24,7
ld r20,X+
ld r21,X+
ld r22,X+
ld r23,X+
bst r20,0
bld r5,0
bst r20,1
bld r9,0
bst r20,2
bld r13,0
bst r20,3
bld r25,0
bst r20,4
bld r5,1
bst r20,5
bld r9,1
bst r20,6
bld r13,1
bst r20,7
bld r25,1
bst r21,0
bld r5,2
bst r21,1
bld r9,2
bst r21,2
bld r13,2
bst r21,3
bld r25,2
bst r21,4
bld r5,3
bst r21,5
bld r9,3
bst r21,6
bld r13,3
bst r21,7
bld r25,3
bst r22,0
bld r5,4
bst r22,1
bld r9,4
bst r22,2
bld r13,4
bst r22,3
bld r25,4
bst r22,4
bld r5,5
bst r22,5
bld r9,5
bst r22,6
bld r13,5
bst r22,7
bld r25,5
bst r23,0
bld r5,6
bst r23,1
bld r9,6
bst r23,2
bld r13,6
bst r23,3
bld r25,6
bst r23,4
bld r5,7
bst r23,5
bld r9,7
bst r23,6
bld r13,7
bst r23,7
bld r25,7
ld r26,Z
ldd r27,Z+1
ldd r16,Z+2
ldd r17,Z+3
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
or r17,r0
std Y+1,r26
std Y+2,r27
std Y+3,r16
std Y+4,r17
ldd r26,Z+4
ldd r27,Z+5
ldd r16,Z+6
ldd r17,Z+7
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
or r17,r0
std Y+5,r26
std Y+6,r27
std Y+7,r16
std Y+8,r17
ldd r26,Z+8
ldd r27,Z+9
ldd r16,Z+10
ldd r17,Z+11
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
or r17,r0
std Y+9,r26
std Y+10,r27
std Y+11,r16
std Y+12,r17
ldd r26,Z+12
ldd r27,Z+13
ldd r16,Z+14
ldd r17,Z+15
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
lsr r17
ror r16
ror r0
or r17,r0
std Y+13,r26
std Y+14,r27
std Y+15,r16
std Y+16,r17
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r26,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r26
#endif
ldi r19,40
mov r26,r1
375:
ldd r0,Y+13
ldd r20,Y+9
std Y+9,r0
ldd r0,Y+5
std Y+5,r20
ldd r20,Y+1
std Y+1,r0
ldd r0,Y+14
ldd r21,Y+10
std Y+10,r0
ldd r0,Y+6
std Y+6,r21
ldd r21,Y+2
std Y+2,r0
ldd r0,Y+15
ldd r22,Y+11
std Y+11,r0
ldd r0,Y+7
std Y+7,r22
ldd r22,Y+3
std Y+3,r0
ldd r0,Y+16
ldd r23,Y+12
std Y+12,r0
ldd r0,Y+8
std Y+8,r23
ldd r23,Y+4
std Y+4,r0
mov r0,r1
lsr r21
ror r20
ror r0
lsr r21
ror r20
ror r0
lsr r21
ror r20
ror r0
lsr r21
ror r20
ror r0
or r21,r0
lsl r22
rol r23
adc r22,r1
lsl r22
rol r23
adc r22,r1
std Y+13,r20
std Y+14,r21
std Y+15,r22
std Y+16,r23
eor r6,r20
eor r7,r21
eor r8,r22
eor r9,r23
ldd r0,Y+5
eor r10,r0
ldd r0,Y+6
eor r11,r0
ldd r0,Y+7
eor r12,r0
ldd r0,Y+8
eor r13,r0
ldi r20,128
eor r25,r20
dec r19
mov r30,r19
#if defined(RAMPZ)
elpm r20,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r20,Z
#elif defined(__AVR_TINY__)
ld r20,Z
#else
lpm
mov r20,r0
#endif
eor r14,r20
bst r2,1
bld r0,0
bst r5,0
bld r2,1
bst r2,6
bld r5,0
bst r4,1
bld r2,6
bst r5,4
bld r4,1
bst r2,7
bld r5,4
bst r3,1
bld r2,7
bst r5,2
bld r3,1
bst r4,6
bld r5,2
bst r4,5
bld r4,6
bst r5,5
bld r4,5
bst r5,7
bld r5,5
bst r3,7
bld r5,7
bst r3,3
bld r3,7
bst r3,2
bld r3,3
bst r4,2
bld r3,2
bst r4,4
bld r4,2
bst r2,5
bld r4,4
bst r5,1
bld r2,5
bst r5,6
bld r5,1
bst r4,7
bld r5,6
bst r3,5
bld r4,7
bst r5,3
bld r3,5
bst r3,6
bld r5,3
bst r4,3
bld r3,6
bst r3,4
bld r4,3
bst r2,3
bld r3,4
bst r3,0
bld r2,3
bst r2,2
bld r3,0
bst r4,0
bld r2,2
bst r2,4
bld r4,0
bst r0,0
bld r2,4
bst r6,0
bld r0,0
bst r7,0
bld r6,0
bst r7,2
bld r7,0
bst r9,2
bld r7,2
bst r9,6
bld r9,2
bst r9,7
bld r9,6
bst r8,7
bld r9,7
bst r8,5
bld r8,7
bst r6,5
bld r8,5
bst r6,1
bld r6,5
bst r0,0
bld r6,1
bst r6,2
bld r0,0
bst r9,0
bld r6,2
bst r7,6
bld r9,0
bst r9,3
bld r7,6
bst r8,6
bld r9,3
bst r9,5
bld r8,6
bst r6,7
bld r9,5
bst r8,1
bld r6,7
bst r6,4
bld r8,1
bst r7,1
bld r6,4
bst r0,0
bld r7,1
bst r6,3
bld r0,0
bst r8,0
bld r6,3
bst r7,4
bld r8,0
bst r7,3
bld r7,4
bst r8,2
bld r7,3
bst r9,4
bld r8,2
bst r7,7
bld r9,4
bst r8,3
bld r7,7
bst r8,4
bld r8,3
bst r7,5
bld r8,4
bst r0,0
bld r7,5
bst r6,6
bld r0,0
bst r9,1
bld r6,6
bst r0,0
bld r9,1
bst r10,0
bld r0,0
bst r12,0
bld r10,0
bst r12,4
bld r12,0
bst r12,5
bld r12,4
bst r11,5
bld r12,5
bst r11,3
bld r11,5
bst r13,2
bld r11,3
bst r10,6
bld r13,2
bst r10,1
bld r10,6
bst r11,0
bld r10,1
bst r12,2
bld r11,0
bst r10,4
bld r12,2
bst r12,1
bld r10,4
bst r11,4
bld r12,1
bst r12,3
bld r11,4
bst r13,4
bld r12,3
bst r12,7
bld r13,4
bst r13,5
bld r12,7
bst r11,7
bld r13,5
bst r13,3
bld r11,7
bst r13,6
bld r13,3
bst r10,7
bld r13,6
bst r13,1
bld r10,7
bst r11,6
bld r13,1
bst r10,3
bld r11,6
bst r13,0
bld r10,3
bst r12,6
bld r13,0
bst r10,5
bld r12,6
bst r11,1
bld r10,5
bst r11,2
bld r11,1
bst r10,2
bld r11,2
bst r0,0
bld r10,2
bst r14,0
bld r0,0
bst r25,0
bld r14,0
bst r25,6
bld r25,0
bst r15,7
bld r25,6
bst r14,3
bld r15,7
bst r0,0
bld r14,3
bst r14,1
bld r0,0
bst r24,0
bld r14,1
bst r25,4
bld r24,0
bst r25,7
bld r25,4
bst r14,7
bld r25,7
bst r0,0
bld r14,7
bst r14,2
bld r0,0
bst r15,0
bld r14,2
bst r25,2
bld r15,0
bst r15,6
bld r25,2
bst r15,3
bld r15,6
bst r0,0
bld r15,3
bst r14,4
bld r0,0
bst r25,1
bld r14,4
bst r24,6
bld r25,1
bst r15,5
bld r24,6
bst r24,3
bld r15,5
bst r0,0
bld r24,3
bst r14,5
bld r0,0
bst r24,1
bld r14,5
bst r24,4
bld r24,1
bst r25,5
bld r24,4
bst r24,7
bld r25,5
bst r0,0
bld r24,7
bst r14,6
bld r0,0
bst r15,1
bld r14,6
bst r24,2
bld r15,1
bst r15,4
bld r24,2
bst r25,3
bld r15,4
bst r0,0
bld r25,3
movw r20,r14
movw r22,r24
movw r14,r2
movw r24,r4
movw r2,r20
movw r4,r22
and r20,r6
and r21,r7
and r22,r8
and r23,r9
eor r10,r20
eor r11,r21
eor r12,r22
eor r13,r23
com r14
com r15
com r24
com r25
eor r6,r14
eor r7,r15
eor r8,r24
eor r9,r25
eor r14,r10
eor r15,r11
eor r24,r12
eor r25,r13
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
mov r0,r4
or r0,r8
eor r12,r0
mov r0,r5
or r0,r9
eor r13,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r8
and r0,r24
eor r4,r0
mov r0,r9
and r0,r25
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r8,r0
mov r0,r5
and r0,r13
eor r9,r0
cp r19,r1
breq 791f
inc r26
ldi r27,5
cpse r26,r27
rjmp 375b
mov r26,r1
eor r2,r18
eor r3,r18
eor r4,r18
eor r5,r18
rjmp 375b
791:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
bst r2,0
bld r20,0
bst r6,0
bld r20,1
bst r10,0
bld r20,2
bst r14,0
bld r20,3
bst r2,1
bld r20,4
bst r6,1
bld r20,5
bst r10,1
bld r20,6
bst r14,1
bld r20,7
bst r2,2
bld r21,0
bst r6,2
bld r21,1
bst r10,2
bld r21,2
bst r14,2
bld r21,3
bst r2,3
bld r21,4
bst r6,3
bld r21,5
bst r10,3
bld r21,6
bst r14,3
bld r21,7
bst r2,4
bld r22,0
bst r6,4
bld r22,1
bst r10,4
bld r22,2
bst r14,4
bld r22,3
bst r2,5
bld r22,4
bst r6,5
bld r22,5
bst r10,5
bld r22,6
bst r14,5
bld r22,7
bst r2,6
bld r23,0
bst r6,6
bld r23,1
bst r10,6
bld r23,2
bst r14,6
bld r23,3
bst r2,7
bld r23,4
bst r6,7
bld r23,5
bst r10,7
bld r23,6
bst r14,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r3,0
bld r20,0
bst r7,0
bld r20,1
bst r11,0
bld r20,2
bst r15,0
bld r20,3
bst r3,1
bld r20,4
bst r7,1
bld r20,5
bst r11,1
bld r20,6
bst r15,1
bld r20,7
bst r3,2
bld r21,0
bst r7,2
bld r21,1
bst r11,2
bld r21,2
bst r15,2
bld r21,3
bst r3,3
bld r21,4
bst r7,3
bld r21,5
bst r11,3
bld r21,6
bst r15,3
bld r21,7
bst r3,4
bld r22,0
bst r7,4
bld r22,1
bst r11,4
bld r22,2
bst r15,4
bld r22,3
bst r3,5
bld r22,4
bst r7,5
bld r22,5
bst r11,5
bld r22,6
bst r15,5
bld r22,7
bst r3,6
bld r23,0
bst r7,6
bld r23,1
bst r11,6
bld r23,2
bst r15,6
bld r23,3
bst r3,7
bld r23,4
bst r7,7
bld r23,5
bst r11,7
bld r23,6
bst r15,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r4,0
bld r20,0
bst r8,0
bld r20,1
bst r12,0
bld r20,2
bst r24,0
bld r20,3
bst r4,1
bld r20,4
bst r8,1
bld r20,5
bst r12,1
bld r20,6
bst r24,1
bld r20,7
bst r4,2
bld r21,0
bst r8,2
bld r21,1
bst r12,2
bld r21,2
bst r24,2
bld r21,3
bst r4,3
bld r21,4
bst r8,3
bld r21,5
bst r12,3
bld r21,6
bst r24,3
bld r21,7
bst r4,4
bld r22,0
bst r8,4
bld r22,1
bst r12,4
bld r22,2
bst r24,4
bld r22,3
bst r4,5
bld r22,4
bst r8,5
bld r22,5
bst r12,5
bld r22,6
bst r24,5
bld r22,7
bst r4,6
bld r23,0
bst r8,6
bld r23,1
bst r12,6
bld r23,2
bst r24,6
bld r23,3
bst r4,7
bld r23,4
bst r8,7
bld r23,5
bst r12,7
bld r23,6
bst r24,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
bst r5,0
bld r20,0
bst r9,0
bld r20,1
bst r13,0
bld r20,2
bst r25,0
bld r20,3
bst r5,1
bld r20,4
bst r9,1
bld r20,5
bst r13,1
bld r20,6
bst r25,1
bld r20,7
bst r5,2
bld r21,0
bst r9,2
bld r21,1
bst r13,2
bld r21,2
bst r25,2
bld r21,3
bst r5,3
bld r21,4
bst r9,3
bld r21,5
bst r13,3
bld r21,6
bst r25,3
bld r21,7
bst r5,4
bld r22,0
bst r9,4
bld r22,1
bst r13,4
bld r22,2
bst r25,4
bld r22,3
bst r5,5
bld r22,4
bst r9,5
bld r22,5
bst r13,5
bld r22,6
bst r25,5
bld r22,7
bst r5,6
bld r23,0
bst r9,6
bld r23,1
bst r13,6
bld r23,2
bst r25,6
bld r23,3
bst r5,7
bld r23,4
bst r9,7
bld r23,5
bst r13,7
bld r23,6
bst r25,7
bld r23,7
st X+,r20
st X+,r21
st X+,r22
st X+,r23
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128t_decrypt, .-gift128t_decrypt
#endif
#if defined(__AVR__)
#include <avr/io.h>
/* Automatically generated - do not edit */
.section .progmem.data,"a",@progbits
.p2align 8
.type table_0, @object
.size table_0, 40
table_0:
.byte 1
.byte 3
.byte 7
.byte 15
.byte 31
.byte 62
.byte 61
.byte 59
.byte 55
.byte 47
.byte 30
.byte 60
.byte 57
.byte 51
.byte 39
.byte 14
.byte 29
.byte 58
.byte 53
.byte 43
.byte 22
.byte 44
.byte 24
.byte 48
.byte 33
.byte 2
.byte 5
.byte 11
.byte 23
.byte 46
.byte 28
.byte 56
.byte 49
.byte 35
.byte 6
.byte 13
.byte 27
.byte 54
.byte 45
.byte 26
.text
.global gift128b_init
.type gift128b_init, @function
gift128b_init:
movw r30,r24
movw r26,r22
.L__stack_usage = 2
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
st Z,r18
std Z+1,r19
std Z+2,r20
std Z+3,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+4,r18
std Z+5,r19
std Z+6,r20
std Z+7,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+8,r18
std Z+9,r19
std Z+10,r20
std Z+11,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+12,r18
std Z+13,r19
std Z+14,r20
std Z+15,r21
ret
.size gift128b_init, .-gift128b_init
.text
.global gift128b_encrypt
.type gift128b_encrypt, @function
gift128b_encrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r3,X+
ld r2,X+
ld r23,X+
ld r22,X+
ld r7,X+
ld r6,X+
ld r5,X+
ld r4,X+
ld r11,X+
ld r10,X+
ld r9,X+
ld r8,X+
ld r15,X+
ld r14,X+
ld r13,X+
ld r12,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
46:
rcall 199f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 199f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 199f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 199f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 46b
rjmp 548f
199:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
548:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r3
st X+,r2
st X+,r23
st X+,r22
st X+,r7
st X+,r6
st X+,r5
st X+,r4
st X+,r11
st X+,r10
st X+,r9
st X+,r8
st X+,r15
st X+,r14
st X+,r13
st X+,r12
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_encrypt, .-gift128b_encrypt
.text
.global gift128b_encrypt_preloaded
.type gift128b_encrypt_preloaded, @function
gift128b_encrypt_preloaded:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r22,X+
ld r23,X+
ld r2,X+
ld r3,X+
ld r4,X+
ld r5,X+
ld r6,X+
ld r7,X+
ld r8,X+
ld r9,X+
ld r10,X+
ld r11,X+
ld r12,X+
ld r13,X+
ld r14,X+
ld r15,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
46:
rcall 199f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 199f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 199f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 199f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 46b
rjmp 548f
199:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
548:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r22
st X+,r23
st X+,r2
st X+,r3
st X+,r4
st X+,r5
st X+,r6
st X+,r7
st X+,r8
st X+,r9
st X+,r10
st X+,r11
st X+,r12
st X+,r13
st X+,r14
st X+,r15
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_encrypt_preloaded, .-gift128b_encrypt_preloaded
.text
.global gift128b_decrypt
.type gift128b_decrypt, @function
gift128b_decrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 35
ld r3,X+
ld r2,X+
ld r23,X+
ld r22,X+
ld r7,X+
ld r6,X+
ld r5,X+
ld r4,X+
ld r11,X+
ld r10,X+
ld r9,X+
ld r8,X+
ld r15,X+
ld r14,X+
ld r13,X+
ld r12,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
ldi r16,40
114:
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
cpse r16,r1
rjmp 114b
rjmp 611f
266:
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
dec r16
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
bst r22,1
bld r0,0
bst r3,0
bld r22,1
bst r22,6
bld r3,0
bst r2,1
bld r22,6
bst r3,4
bld r2,1
bst r22,7
bld r3,4
bst r23,1
bld r22,7
bst r3,2
bld r23,1
bst r2,6
bld r3,2
bst r2,5
bld r2,6
bst r3,5
bld r2,5
bst r3,7
bld r3,5
bst r23,7
bld r3,7
bst r23,3
bld r23,7
bst r23,2
bld r23,3
bst r2,2
bld r23,2
bst r2,4
bld r2,2
bst r22,5
bld r2,4
bst r3,1
bld r22,5
bst r3,6
bld r3,1
bst r2,7
bld r3,6
bst r23,5
bld r2,7
bst r3,3
bld r23,5
bst r23,6
bld r3,3
bst r2,3
bld r23,6
bst r23,4
bld r2,3
bst r22,3
bld r23,4
bst r23,0
bld r22,3
bst r22,2
bld r23,0
bst r2,0
bld r22,2
bst r22,4
bld r2,0
bst r0,0
bld r22,4
bst r4,0
bld r0,0
bst r5,0
bld r4,0
bst r5,2
bld r5,0
bst r7,2
bld r5,2
bst r7,6
bld r7,2
bst r7,7
bld r7,6
bst r6,7
bld r7,7
bst r6,5
bld r6,7
bst r4,5
bld r6,5
bst r4,1
bld r4,5
bst r0,0
bld r4,1
bst r4,2
bld r0,0
bst r7,0
bld r4,2
bst r5,6
bld r7,0
bst r7,3
bld r5,6
bst r6,6
bld r7,3
bst r7,5
bld r6,6
bst r4,7
bld r7,5
bst r6,1
bld r4,7
bst r4,4
bld r6,1
bst r5,1
bld r4,4
bst r0,0
bld r5,1
bst r4,3
bld r0,0
bst r6,0
bld r4,3
bst r5,4
bld r6,0
bst r5,3
bld r5,4
bst r6,2
bld r5,3
bst r7,4
bld r6,2
bst r5,7
bld r7,4
bst r6,3
bld r5,7
bst r6,4
bld r6,3
bst r5,5
bld r6,4
bst r0,0
bld r5,5
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r10,0
bld r8,0
bst r10,4
bld r10,0
bst r10,5
bld r10,4
bst r9,5
bld r10,5
bst r9,3
bld r9,5
bst r11,2
bld r9,3
bst r8,6
bld r11,2
bst r8,1
bld r8,6
bst r9,0
bld r8,1
bst r10,2
bld r9,0
bst r8,4
bld r10,2
bst r10,1
bld r8,4
bst r9,4
bld r10,1
bst r10,3
bld r9,4
bst r11,4
bld r10,3
bst r10,7
bld r11,4
bst r11,5
bld r10,7
bst r9,7
bld r11,5
bst r11,3
bld r9,7
bst r11,6
bld r11,3
bst r8,7
bld r11,6
bst r11,1
bld r8,7
bst r9,6
bld r11,1
bst r8,3
bld r9,6
bst r11,0
bld r8,3
bst r10,6
bld r11,0
bst r8,5
bld r10,6
bst r9,1
bld r8,5
bst r9,2
bld r9,1
bst r8,2
bld r9,2
bst r0,0
bld r8,2
bst r12,0
bld r0,0
bst r15,0
bld r12,0
bst r15,6
bld r15,0
bst r13,7
bld r15,6
bst r12,3
bld r13,7
bst r0,0
bld r12,3
bst r12,1
bld r0,0
bst r14,0
bld r12,1
bst r15,4
bld r14,0
bst r15,7
bld r15,4
bst r12,7
bld r15,7
bst r0,0
bld r12,7
bst r12,2
bld r0,0
bst r13,0
bld r12,2
bst r15,2
bld r13,0
bst r13,6
bld r15,2
bst r13,3
bld r13,6
bst r0,0
bld r13,3
bst r12,4
bld r0,0
bst r15,1
bld r12,4
bst r14,6
bld r15,1
bst r13,5
bld r14,6
bst r14,3
bld r13,5
bst r0,0
bld r14,3
bst r12,5
bld r0,0
bst r14,1
bld r12,5
bst r14,4
bld r14,1
bst r15,5
bld r14,4
bst r14,7
bld r15,5
bst r0,0
bld r14,7
bst r12,6
bld r0,0
bst r13,1
bld r12,6
bst r14,2
bld r13,1
bst r13,4
bld r14,2
bst r15,3
bld r13,4
bst r0,0
bld r15,3
movw r18,r12
movw r20,r14
movw r12,r22
movw r14,r2
movw r22,r18
movw r2,r20
and r18,r4
and r19,r5
and r20,r6
and r21,r7
eor r8,r18
eor r9,r19
eor r10,r20
eor r11,r21
com r12
com r13
com r14
com r15
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
ret
611:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r3
st X+,r2
st X+,r23
st X+,r22
st X+,r7
st X+,r6
st X+,r5
st X+,r4
st X+,r11
st X+,r10
st X+,r9
st X+,r8
st X+,r15
st X+,r14
st X+,r13
st X+,r12
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_decrypt, .-gift128b_decrypt
#endif
#if defined(__AVR__)
#include <avr/io.h>
/* Automatically generated - do not edit */
.section .progmem.data,"a",@progbits
.p2align 8
.type table_0, @object
.size table_0, 40
table_0:
.byte 1
.byte 3
.byte 7
.byte 15
.byte 31
.byte 62
.byte 61
.byte 59
.byte 55
.byte 47
.byte 30
.byte 60
.byte 57
.byte 51
.byte 39
.byte 14
.byte 29
.byte 58
.byte 53
.byte 43
.byte 22
.byte 44
.byte 24
.byte 48
.byte 33
.byte 2
.byte 5
.byte 11
.byte 23
.byte 46
.byte 28
.byte 56
.byte 49
.byte 35
.byte 6
.byte 13
.byte 27
.byte 54
.byte 45
.byte 26
.text
.global gift128b_init
.type gift128b_init, @function
gift128b_init:
movw r30,r24
movw r26,r22
.L__stack_usage = 2
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
st Z,r18
std Z+1,r19
std Z+2,r20
std Z+3,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+4,r18
std Z+5,r19
std Z+6,r20
std Z+7,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+8,r18
std Z+9,r19
std Z+10,r20
std Z+11,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+12,r18
std Z+13,r19
std Z+14,r20
std Z+15,r21
ret
.size gift128b_init, .-gift128b_init
.text
.global gift128b_encrypt
.type gift128b_encrypt, @function
gift128b_encrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r3,X+
ld r2,X+
ld r23,X+
ld r22,X+
ld r7,X+
ld r6,X+
ld r5,X+
ld r4,X+
ld r11,X+
ld r10,X+
ld r9,X+
ld r8,X+
ld r15,X+
ld r14,X+
ld r13,X+
ld r12,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
46:
rcall 199f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 199f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 199f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 199f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 46b
rjmp 548f
199:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
548:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r3
st X+,r2
st X+,r23
st X+,r22
st X+,r7
st X+,r6
st X+,r5
st X+,r4
st X+,r11
st X+,r10
st X+,r9
st X+,r8
st X+,r15
st X+,r14
st X+,r13
st X+,r12
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_encrypt, .-gift128b_encrypt
.text
.global gift128b_encrypt_preloaded
.type gift128b_encrypt_preloaded, @function
gift128b_encrypt_preloaded:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r22,X+
ld r23,X+
ld r2,X+
ld r3,X+
ld r4,X+
ld r5,X+
ld r6,X+
ld r7,X+
ld r8,X+
ld r9,X+
ld r10,X+
ld r11,X+
ld r12,X+
ld r13,X+
ld r14,X+
ld r15,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
46:
rcall 199f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 199f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 199f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 199f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 46b
rjmp 548f
199:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
548:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r22
st X+,r23
st X+,r2
st X+,r3
st X+,r4
st X+,r5
st X+,r6
st X+,r7
st X+,r8
st X+,r9
st X+,r10
st X+,r11
st X+,r12
st X+,r13
st X+,r14
st X+,r15
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_encrypt_preloaded, .-gift128b_encrypt_preloaded
.text
.global gift128b_decrypt
.type gift128b_decrypt, @function
gift128b_decrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 35
ld r3,X+
ld r2,X+
ld r23,X+
ld r22,X+
ld r7,X+
ld r6,X+
ld r5,X+
ld r4,X+
ld r11,X+
ld r10,X+
ld r9,X+
ld r8,X+
ld r15,X+
ld r14,X+
ld r13,X+
ld r12,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
ldi r16,40
114:
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
cpse r16,r1
rjmp 114b
rjmp 611f
266:
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
dec r16
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
bst r22,1
bld r0,0
bst r3,0
bld r22,1
bst r22,6
bld r3,0
bst r2,1
bld r22,6
bst r3,4
bld r2,1
bst r22,7
bld r3,4
bst r23,1
bld r22,7
bst r3,2
bld r23,1
bst r2,6
bld r3,2
bst r2,5
bld r2,6
bst r3,5
bld r2,5
bst r3,7
bld r3,5
bst r23,7
bld r3,7
bst r23,3
bld r23,7
bst r23,2
bld r23,3
bst r2,2
bld r23,2
bst r2,4
bld r2,2
bst r22,5
bld r2,4
bst r3,1
bld r22,5
bst r3,6
bld r3,1
bst r2,7
bld r3,6
bst r23,5
bld r2,7
bst r3,3
bld r23,5
bst r23,6
bld r3,3
bst r2,3
bld r23,6
bst r23,4
bld r2,3
bst r22,3
bld r23,4
bst r23,0
bld r22,3
bst r22,2
bld r23,0
bst r2,0
bld r22,2
bst r22,4
bld r2,0
bst r0,0
bld r22,4
bst r4,0
bld r0,0
bst r5,0
bld r4,0
bst r5,2
bld r5,0
bst r7,2
bld r5,2
bst r7,6
bld r7,2
bst r7,7
bld r7,6
bst r6,7
bld r7,7
bst r6,5
bld r6,7
bst r4,5
bld r6,5
bst r4,1
bld r4,5
bst r0,0
bld r4,1
bst r4,2
bld r0,0
bst r7,0
bld r4,2
bst r5,6
bld r7,0
bst r7,3
bld r5,6
bst r6,6
bld r7,3
bst r7,5
bld r6,6
bst r4,7
bld r7,5
bst r6,1
bld r4,7
bst r4,4
bld r6,1
bst r5,1
bld r4,4
bst r0,0
bld r5,1
bst r4,3
bld r0,0
bst r6,0
bld r4,3
bst r5,4
bld r6,0
bst r5,3
bld r5,4
bst r6,2
bld r5,3
bst r7,4
bld r6,2
bst r5,7
bld r7,4
bst r6,3
bld r5,7
bst r6,4
bld r6,3
bst r5,5
bld r6,4
bst r0,0
bld r5,5
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r10,0
bld r8,0
bst r10,4
bld r10,0
bst r10,5
bld r10,4
bst r9,5
bld r10,5
bst r9,3
bld r9,5
bst r11,2
bld r9,3
bst r8,6
bld r11,2
bst r8,1
bld r8,6
bst r9,0
bld r8,1
bst r10,2
bld r9,0
bst r8,4
bld r10,2
bst r10,1
bld r8,4
bst r9,4
bld r10,1
bst r10,3
bld r9,4
bst r11,4
bld r10,3
bst r10,7
bld r11,4
bst r11,5
bld r10,7
bst r9,7
bld r11,5
bst r11,3
bld r9,7
bst r11,6
bld r11,3
bst r8,7
bld r11,6
bst r11,1
bld r8,7
bst r9,6
bld r11,1
bst r8,3
bld r9,6
bst r11,0
bld r8,3
bst r10,6
bld r11,0
bst r8,5
bld r10,6
bst r9,1
bld r8,5
bst r9,2
bld r9,1
bst r8,2
bld r9,2
bst r0,0
bld r8,2
bst r12,0
bld r0,0
bst r15,0
bld r12,0
bst r15,6
bld r15,0
bst r13,7
bld r15,6
bst r12,3
bld r13,7
bst r0,0
bld r12,3
bst r12,1
bld r0,0
bst r14,0
bld r12,1
bst r15,4
bld r14,0
bst r15,7
bld r15,4
bst r12,7
bld r15,7
bst r0,0
bld r12,7
bst r12,2
bld r0,0
bst r13,0
bld r12,2
bst r15,2
bld r13,0
bst r13,6
bld r15,2
bst r13,3
bld r13,6
bst r0,0
bld r13,3
bst r12,4
bld r0,0
bst r15,1
bld r12,4
bst r14,6
bld r15,1
bst r13,5
bld r14,6
bst r14,3
bld r13,5
bst r0,0
bld r14,3
bst r12,5
bld r0,0
bst r14,1
bld r12,5
bst r14,4
bld r14,1
bst r15,5
bld r14,4
bst r14,7
bld r15,5
bst r0,0
bld r14,7
bst r12,6
bld r0,0
bst r13,1
bld r12,6
bst r14,2
bld r13,1
bst r13,4
bld r14,2
bst r15,3
bld r13,4
bst r0,0
bld r15,3
movw r18,r12
movw r20,r14
movw r12,r22
movw r14,r2
movw r22,r18
movw r2,r20
and r18,r4
and r19,r5
and r20,r6
and r21,r7
eor r8,r18
eor r9,r19
eor r10,r20
eor r11,r21
com r12
com r13
com r14
com r15
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
ret
611:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r3
st X+,r2
st X+,r23
st X+,r22
st X+,r7
st X+,r6
st X+,r5
st X+,r4
st X+,r11
st X+,r10
st X+,r9
st X+,r8
st X+,r15
st X+,r14
st X+,r13
st X+,r12
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_decrypt, .-gift128b_decrypt
#endif
#if defined(__AVR__)
#include <avr/io.h>
/* Automatically generated - do not edit */
.section .progmem.data,"a",@progbits
.p2align 8
.type table_0, @object
.size table_0, 40
table_0:
.byte 1
.byte 3
.byte 7
.byte 15
.byte 31
.byte 62
.byte 61
.byte 59
.byte 55
.byte 47
.byte 30
.byte 60
.byte 57
.byte 51
.byte 39
.byte 14
.byte 29
.byte 58
.byte 53
.byte 43
.byte 22
.byte 44
.byte 24
.byte 48
.byte 33
.byte 2
.byte 5
.byte 11
.byte 23
.byte 46
.byte 28
.byte 56
.byte 49
.byte 35
.byte 6
.byte 13
.byte 27
.byte 54
.byte 45
.byte 26
.text
.global gift128b_init
.type gift128b_init, @function
gift128b_init:
movw r30,r24
movw r26,r22
.L__stack_usage = 2
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
st Z,r18
std Z+1,r19
std Z+2,r20
std Z+3,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+4,r18
std Z+5,r19
std Z+6,r20
std Z+7,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+8,r18
std Z+9,r19
std Z+10,r20
std Z+11,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+12,r18
std Z+13,r19
std Z+14,r20
std Z+15,r21
ret
.size gift128b_init, .-gift128b_init
.text
.global gift128b_encrypt
.type gift128b_encrypt, @function
gift128b_encrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r3,X+
ld r2,X+
ld r23,X+
ld r22,X+
ld r7,X+
ld r6,X+
ld r5,X+
ld r4,X+
ld r11,X+
ld r10,X+
ld r9,X+
ld r8,X+
ld r15,X+
ld r14,X+
ld r13,X+
ld r12,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
46:
rcall 199f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 199f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 199f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 199f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 46b
rjmp 548f
199:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
548:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r3
st X+,r2
st X+,r23
st X+,r22
st X+,r7
st X+,r6
st X+,r5
st X+,r4
st X+,r11
st X+,r10
st X+,r9
st X+,r8
st X+,r15
st X+,r14
st X+,r13
st X+,r12
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_encrypt, .-gift128b_encrypt
.text
.global gift128b_encrypt_preloaded
.type gift128b_encrypt_preloaded, @function
gift128b_encrypt_preloaded:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r22,X+
ld r23,X+
ld r2,X+
ld r3,X+
ld r4,X+
ld r5,X+
ld r6,X+
ld r7,X+
ld r8,X+
ld r9,X+
ld r10,X+
ld r11,X+
ld r12,X+
ld r13,X+
ld r14,X+
ld r15,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
46:
rcall 199f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 199f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 199f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 199f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 46b
rjmp 548f
199:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
548:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r22
st X+,r23
st X+,r2
st X+,r3
st X+,r4
st X+,r5
st X+,r6
st X+,r7
st X+,r8
st X+,r9
st X+,r10
st X+,r11
st X+,r12
st X+,r13
st X+,r14
st X+,r15
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_encrypt_preloaded, .-gift128b_encrypt_preloaded
.text
.global gift128b_decrypt
.type gift128b_decrypt, @function
gift128b_decrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 35
ld r3,X+
ld r2,X+
ld r23,X+
ld r22,X+
ld r7,X+
ld r6,X+
ld r5,X+
ld r4,X+
ld r11,X+
ld r10,X+
ld r9,X+
ld r8,X+
ld r15,X+
ld r14,X+
ld r13,X+
ld r12,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
ldi r16,40
114:
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
cpse r16,r1
rjmp 114b
rjmp 611f
266:
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
dec r16
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
bst r22,1
bld r0,0
bst r3,0
bld r22,1
bst r22,6
bld r3,0
bst r2,1
bld r22,6
bst r3,4
bld r2,1
bst r22,7
bld r3,4
bst r23,1
bld r22,7
bst r3,2
bld r23,1
bst r2,6
bld r3,2
bst r2,5
bld r2,6
bst r3,5
bld r2,5
bst r3,7
bld r3,5
bst r23,7
bld r3,7
bst r23,3
bld r23,7
bst r23,2
bld r23,3
bst r2,2
bld r23,2
bst r2,4
bld r2,2
bst r22,5
bld r2,4
bst r3,1
bld r22,5
bst r3,6
bld r3,1
bst r2,7
bld r3,6
bst r23,5
bld r2,7
bst r3,3
bld r23,5
bst r23,6
bld r3,3
bst r2,3
bld r23,6
bst r23,4
bld r2,3
bst r22,3
bld r23,4
bst r23,0
bld r22,3
bst r22,2
bld r23,0
bst r2,0
bld r22,2
bst r22,4
bld r2,0
bst r0,0
bld r22,4
bst r4,0
bld r0,0
bst r5,0
bld r4,0
bst r5,2
bld r5,0
bst r7,2
bld r5,2
bst r7,6
bld r7,2
bst r7,7
bld r7,6
bst r6,7
bld r7,7
bst r6,5
bld r6,7
bst r4,5
bld r6,5
bst r4,1
bld r4,5
bst r0,0
bld r4,1
bst r4,2
bld r0,0
bst r7,0
bld r4,2
bst r5,6
bld r7,0
bst r7,3
bld r5,6
bst r6,6
bld r7,3
bst r7,5
bld r6,6
bst r4,7
bld r7,5
bst r6,1
bld r4,7
bst r4,4
bld r6,1
bst r5,1
bld r4,4
bst r0,0
bld r5,1
bst r4,3
bld r0,0
bst r6,0
bld r4,3
bst r5,4
bld r6,0
bst r5,3
bld r5,4
bst r6,2
bld r5,3
bst r7,4
bld r6,2
bst r5,7
bld r7,4
bst r6,3
bld r5,7
bst r6,4
bld r6,3
bst r5,5
bld r6,4
bst r0,0
bld r5,5
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r10,0
bld r8,0
bst r10,4
bld r10,0
bst r10,5
bld r10,4
bst r9,5
bld r10,5
bst r9,3
bld r9,5
bst r11,2
bld r9,3
bst r8,6
bld r11,2
bst r8,1
bld r8,6
bst r9,0
bld r8,1
bst r10,2
bld r9,0
bst r8,4
bld r10,2
bst r10,1
bld r8,4
bst r9,4
bld r10,1
bst r10,3
bld r9,4
bst r11,4
bld r10,3
bst r10,7
bld r11,4
bst r11,5
bld r10,7
bst r9,7
bld r11,5
bst r11,3
bld r9,7
bst r11,6
bld r11,3
bst r8,7
bld r11,6
bst r11,1
bld r8,7
bst r9,6
bld r11,1
bst r8,3
bld r9,6
bst r11,0
bld r8,3
bst r10,6
bld r11,0
bst r8,5
bld r10,6
bst r9,1
bld r8,5
bst r9,2
bld r9,1
bst r8,2
bld r9,2
bst r0,0
bld r8,2
bst r12,0
bld r0,0
bst r15,0
bld r12,0
bst r15,6
bld r15,0
bst r13,7
bld r15,6
bst r12,3
bld r13,7
bst r0,0
bld r12,3
bst r12,1
bld r0,0
bst r14,0
bld r12,1
bst r15,4
bld r14,0
bst r15,7
bld r15,4
bst r12,7
bld r15,7
bst r0,0
bld r12,7
bst r12,2
bld r0,0
bst r13,0
bld r12,2
bst r15,2
bld r13,0
bst r13,6
bld r15,2
bst r13,3
bld r13,6
bst r0,0
bld r13,3
bst r12,4
bld r0,0
bst r15,1
bld r12,4
bst r14,6
bld r15,1
bst r13,5
bld r14,6
bst r14,3
bld r13,5
bst r0,0
bld r14,3
bst r12,5
bld r0,0
bst r14,1
bld r12,5
bst r14,4
bld r14,1
bst r15,5
bld r14,4
bst r14,7
bld r15,5
bst r0,0
bld r14,7
bst r12,6
bld r0,0
bst r13,1
bld r12,6
bst r14,2
bld r13,1
bst r13,4
bld r14,2
bst r15,3
bld r13,4
bst r0,0
bld r15,3
movw r18,r12
movw r20,r14
movw r12,r22
movw r14,r2
movw r22,r18
movw r2,r20
and r18,r4
and r19,r5
and r20,r6
and r21,r7
eor r8,r18
eor r9,r19
eor r10,r20
eor r11,r21
com r12
com r13
com r14
com r15
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
ret
611:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r3
st X+,r2
st X+,r23
st X+,r22
st X+,r7
st X+,r6
st X+,r5
st X+,r4
st X+,r11
st X+,r10
st X+,r9
st X+,r8
st X+,r15
st X+,r14
st X+,r13
st X+,r12
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_decrypt, .-gift128b_decrypt
#endif
#if defined(__AVR__)
#include <avr/io.h>
/* Automatically generated - do not edit */
.section .progmem.data,"a",@progbits
.p2align 8
.type table_0, @object
.size table_0, 40
table_0:
.byte 1
.byte 3
.byte 7
.byte 15
.byte 31
.byte 62
.byte 61
.byte 59
.byte 55
.byte 47
.byte 30
.byte 60
.byte 57
.byte 51
.byte 39
.byte 14
.byte 29
.byte 58
.byte 53
.byte 43
.byte 22
.byte 44
.byte 24
.byte 48
.byte 33
.byte 2
.byte 5
.byte 11
.byte 23
.byte 46
.byte 28
.byte 56
.byte 49
.byte 35
.byte 6
.byte 13
.byte 27
.byte 54
.byte 45
.byte 26
.text
.global gift128b_init
.type gift128b_init, @function
gift128b_init:
movw r30,r24
movw r26,r22
.L__stack_usage = 2
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
st Z,r18
std Z+1,r19
std Z+2,r20
std Z+3,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+4,r18
std Z+5,r19
std Z+6,r20
std Z+7,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+8,r18
std Z+9,r19
std Z+10,r20
std Z+11,r21
ld r21,X+
ld r20,X+
ld r19,X+
ld r18,X+
std Z+12,r18
std Z+13,r19
std Z+14,r20
std Z+15,r21
ret
.size gift128b_init, .-gift128b_init
.text
.global gift128b_encrypt
.type gift128b_encrypt, @function
gift128b_encrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r3,X+
ld r2,X+
ld r23,X+
ld r22,X+
ld r7,X+
ld r6,X+
ld r5,X+
ld r4,X+
ld r11,X+
ld r10,X+
ld r9,X+
ld r8,X+
ld r15,X+
ld r14,X+
ld r13,X+
ld r12,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
46:
rcall 199f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 199f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 199f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 199f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 46b
rjmp 548f
199:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
548:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r3
st X+,r2
st X+,r23
st X+,r22
st X+,r7
st X+,r6
st X+,r5
st X+,r4
st X+,r11
st X+,r10
st X+,r9
st X+,r8
st X+,r15
st X+,r14
st X+,r13
st X+,r12
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_encrypt, .-gift128b_encrypt
.text
.global gift128b_encrypt_preloaded
.type gift128b_encrypt_preloaded, @function
gift128b_encrypt_preloaded:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 36
ld r22,X+
ld r23,X+
ld r2,X+
ld r3,X+
ld r4,X+
ld r5,X+
ld r6,X+
ld r7,X+
ld r8,X+
ld r9,X+
ld r10,X+
ld r11,X+
ld r12,X+
ld r13,X+
ld r14,X+
ld r15,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
mov r16,r1
46:
rcall 199f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
rcall 199f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
rcall 199f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
rcall 199f
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
lsl r26
rol r27
adc r26,r1
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
ldi r17,40
cpse r16,r17
rjmp 46b
rjmp 548f
199:
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
com r12
com r13
com r14
com r15
movw r18,r22
movw r20,r2
mov r0,r4
and r0,r18
eor r8,r0
mov r0,r5
and r0,r19
eor r9,r0
mov r0,r6
and r0,r20
eor r10,r0
mov r0,r7
and r0,r21
eor r11,r0
movw r22,r12
movw r2,r14
movw r12,r18
movw r14,r20
bst r22,1
bld r0,0
bst r22,4
bld r22,1
bst r2,0
bld r22,4
bst r22,2
bld r2,0
bst r23,0
bld r22,2
bst r22,3
bld r23,0
bst r23,4
bld r22,3
bst r2,3
bld r23,4
bst r23,6
bld r2,3
bst r3,3
bld r23,6
bst r23,5
bld r3,3
bst r2,7
bld r23,5
bst r3,6
bld r2,7
bst r3,1
bld r3,6
bst r22,5
bld r3,1
bst r2,4
bld r22,5
bst r2,2
bld r2,4
bst r23,2
bld r2,2
bst r23,3
bld r23,2
bst r23,7
bld r23,3
bst r3,7
bld r23,7
bst r3,5
bld r3,7
bst r2,5
bld r3,5
bst r2,6
bld r2,5
bst r3,2
bld r2,6
bst r23,1
bld r3,2
bst r22,7
bld r23,1
bst r3,4
bld r22,7
bst r2,1
bld r3,4
bst r22,6
bld r2,1
bst r3,0
bld r22,6
bst r0,0
bld r3,0
bst r4,0
bld r0,0
bst r4,1
bld r4,0
bst r4,5
bld r4,1
bst r6,5
bld r4,5
bst r6,7
bld r6,5
bst r7,7
bld r6,7
bst r7,6
bld r7,7
bst r7,2
bld r7,6
bst r5,2
bld r7,2
bst r5,0
bld r5,2
bst r0,0
bld r5,0
bst r4,2
bld r0,0
bst r5,1
bld r4,2
bst r4,4
bld r5,1
bst r6,1
bld r4,4
bst r4,7
bld r6,1
bst r7,5
bld r4,7
bst r6,6
bld r7,5
bst r7,3
bld r6,6
bst r5,6
bld r7,3
bst r7,0
bld r5,6
bst r0,0
bld r7,0
bst r4,3
bld r0,0
bst r5,5
bld r4,3
bst r6,4
bld r5,5
bst r6,3
bld r6,4
bst r5,7
bld r6,3
bst r7,4
bld r5,7
bst r6,2
bld r7,4
bst r5,3
bld r6,2
bst r5,4
bld r5,3
bst r6,0
bld r5,4
bst r0,0
bld r6,0
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r8,2
bld r8,0
bst r9,2
bld r8,2
bst r9,1
bld r9,2
bst r8,5
bld r9,1
bst r10,6
bld r8,5
bst r11,0
bld r10,6
bst r8,3
bld r11,0
bst r9,6
bld r8,3
bst r11,1
bld r9,6
bst r8,7
bld r11,1
bst r11,6
bld r8,7
bst r11,3
bld r11,6
bst r9,7
bld r11,3
bst r11,5
bld r9,7
bst r10,7
bld r11,5
bst r11,4
bld r10,7
bst r10,3
bld r11,4
bst r9,4
bld r10,3
bst r10,1
bld r9,4
bst r8,4
bld r10,1
bst r10,2
bld r8,4
bst r9,0
bld r10,2
bst r8,1
bld r9,0
bst r8,6
bld r8,1
bst r11,2
bld r8,6
bst r9,3
bld r11,2
bst r9,5
bld r9,3
bst r10,5
bld r9,5
bst r10,4
bld r10,5
bst r10,0
bld r10,4
bst r0,0
bld r10,0
bst r12,0
bld r0,0
bst r12,3
bld r12,0
bst r13,7
bld r12,3
bst r15,6
bld r13,7
bst r15,0
bld r15,6
bst r0,0
bld r15,0
bst r12,1
bld r0,0
bst r12,7
bld r12,1
bst r15,7
bld r12,7
bst r15,4
bld r15,7
bst r14,0
bld r15,4
bst r0,0
bld r14,0
bst r12,2
bld r0,0
bst r13,3
bld r12,2
bst r13,6
bld r13,3
bst r15,2
bld r13,6
bst r13,0
bld r15,2
bst r0,0
bld r13,0
bst r12,4
bld r0,0
bst r14,3
bld r12,4
bst r13,5
bld r14,3
bst r14,6
bld r13,5
bst r15,1
bld r14,6
bst r0,0
bld r15,1
bst r12,5
bld r0,0
bst r14,7
bld r12,5
bst r15,5
bld r14,7
bst r14,4
bld r15,5
bst r14,1
bld r14,4
bst r0,0
bld r14,1
bst r12,6
bld r0,0
bst r15,3
bld r12,6
bst r13,4
bld r15,3
bst r14,2
bld r13,4
bst r13,1
bld r14,2
bst r0,0
bld r13,1
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
inc r16
ret
548:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r22
st X+,r23
st X+,r2
st X+,r3
st X+,r4
st X+,r5
st X+,r6
st X+,r7
st X+,r8
st X+,r9
st X+,r10
st X+,r11
st X+,r12
st X+,r13
st X+,r14
st X+,r15
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_encrypt_preloaded, .-gift128b_encrypt_preloaded
.text
.global gift128b_decrypt
.type gift128b_decrypt, @function
gift128b_decrypt:
push r28
push r29
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r23
push r22
movw r30,r24
movw r26,r20
in r28,0x3d
in r29,0x3e
sbiw r28,16
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
.L__stack_usage = 35
ld r3,X+
ld r2,X+
ld r23,X+
ld r22,X+
ld r7,X+
ld r6,X+
ld r5,X+
ld r4,X+
ld r11,X+
ld r10,X+
ld r9,X+
ld r8,X+
ld r15,X+
ld r14,X+
ld r13,X+
ld r12,X+
ld r26,Z
ldd r27,Z+1
ldd r24,Z+2
ldd r25,Z+3
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Z+4
ldd r27,Z+5
ldd r24,Z+6
ldd r25,Z+7
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Z+8
ldd r27,Z+9
ldd r24,Z+10
ldd r25,Z+11
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Z+12
ldd r27,Z+13
ldd r24,Z+14
ldd r25,Z+15
mov r0,r27
mov r27,r26
mov r26,r0
mov r0,r1
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
lsr r25
ror r24
ror r0
or r25,r0
ldi r30,lo8(table_0)
ldi r31,hi8(table_0)
#if defined(RAMPZ)
ldi r17,hh8(table_0)
in r0,_SFR_IO_ADDR(RAMPZ)
push r0
out _SFR_IO_ADDR(RAMPZ),r17
#endif
ldi r16,40
114:
ldd r0,Y+9
eor r8,r0
ldd r0,Y+10
eor r9,r0
ldd r0,Y+11
eor r10,r0
ldd r0,Y+12
eor r11,r0
std Y+13,r26
std Y+14,r27
std Y+15,r24
std Y+16,r25
ldd r26,Y+1
ldd r27,Y+2
ldd r24,Y+3
ldd r25,Y+4
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+13
eor r8,r0
ldd r0,Y+14
eor r9,r0
ldd r0,Y+15
eor r10,r0
ldd r0,Y+16
eor r11,r0
std Y+1,r26
std Y+2,r27
std Y+3,r24
std Y+4,r25
ldd r26,Y+5
ldd r27,Y+6
ldd r24,Y+7
ldd r25,Y+8
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+1
eor r8,r0
ldd r0,Y+2
eor r9,r0
ldd r0,Y+3
eor r10,r0
ldd r0,Y+4
eor r11,r0
std Y+5,r26
std Y+6,r27
std Y+7,r24
std Y+8,r25
ldd r26,Y+9
ldd r27,Y+10
ldd r24,Y+11
ldd r25,Y+12
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
ldd r0,Y+5
eor r8,r0
ldd r0,Y+6
eor r9,r0
ldd r0,Y+7
eor r10,r0
ldd r0,Y+8
eor r11,r0
std Y+9,r26
std Y+10,r27
std Y+11,r24
std Y+12,r25
ldd r26,Y+13
ldd r27,Y+14
ldd r24,Y+15
ldd r25,Y+16
mov r0,r1
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
lsr r27
ror r26
ror r0
or r27,r0
lsl r24
rol r25
adc r24,r1
lsl r24
rol r25
adc r24,r1
rcall 266f
cpse r16,r1
rjmp 114b
rjmp 611f
266:
eor r4,r26
eor r5,r27
eor r6,r24
eor r7,r25
ldi r18,128
eor r15,r18
dec r16
mov r30,r16
#if defined(RAMPZ)
elpm r18,Z
#elif defined(__AVR_HAVE_LPMX__)
lpm r18,Z
#elif defined(__AVR_TINY__)
ld r18,Z
#else
lpm
mov r18,r0
#endif
eor r12,r18
bst r22,1
bld r0,0
bst r3,0
bld r22,1
bst r22,6
bld r3,0
bst r2,1
bld r22,6
bst r3,4
bld r2,1
bst r22,7
bld r3,4
bst r23,1
bld r22,7
bst r3,2
bld r23,1
bst r2,6
bld r3,2
bst r2,5
bld r2,6
bst r3,5
bld r2,5
bst r3,7
bld r3,5
bst r23,7
bld r3,7
bst r23,3
bld r23,7
bst r23,2
bld r23,3
bst r2,2
bld r23,2
bst r2,4
bld r2,2
bst r22,5
bld r2,4
bst r3,1
bld r22,5
bst r3,6
bld r3,1
bst r2,7
bld r3,6
bst r23,5
bld r2,7
bst r3,3
bld r23,5
bst r23,6
bld r3,3
bst r2,3
bld r23,6
bst r23,4
bld r2,3
bst r22,3
bld r23,4
bst r23,0
bld r22,3
bst r22,2
bld r23,0
bst r2,0
bld r22,2
bst r22,4
bld r2,0
bst r0,0
bld r22,4
bst r4,0
bld r0,0
bst r5,0
bld r4,0
bst r5,2
bld r5,0
bst r7,2
bld r5,2
bst r7,6
bld r7,2
bst r7,7
bld r7,6
bst r6,7
bld r7,7
bst r6,5
bld r6,7
bst r4,5
bld r6,5
bst r4,1
bld r4,5
bst r0,0
bld r4,1
bst r4,2
bld r0,0
bst r7,0
bld r4,2
bst r5,6
bld r7,0
bst r7,3
bld r5,6
bst r6,6
bld r7,3
bst r7,5
bld r6,6
bst r4,7
bld r7,5
bst r6,1
bld r4,7
bst r4,4
bld r6,1
bst r5,1
bld r4,4
bst r0,0
bld r5,1
bst r4,3
bld r0,0
bst r6,0
bld r4,3
bst r5,4
bld r6,0
bst r5,3
bld r5,4
bst r6,2
bld r5,3
bst r7,4
bld r6,2
bst r5,7
bld r7,4
bst r6,3
bld r5,7
bst r6,4
bld r6,3
bst r5,5
bld r6,4
bst r0,0
bld r5,5
bst r4,6
bld r0,0
bst r7,1
bld r4,6
bst r0,0
bld r7,1
bst r8,0
bld r0,0
bst r10,0
bld r8,0
bst r10,4
bld r10,0
bst r10,5
bld r10,4
bst r9,5
bld r10,5
bst r9,3
bld r9,5
bst r11,2
bld r9,3
bst r8,6
bld r11,2
bst r8,1
bld r8,6
bst r9,0
bld r8,1
bst r10,2
bld r9,0
bst r8,4
bld r10,2
bst r10,1
bld r8,4
bst r9,4
bld r10,1
bst r10,3
bld r9,4
bst r11,4
bld r10,3
bst r10,7
bld r11,4
bst r11,5
bld r10,7
bst r9,7
bld r11,5
bst r11,3
bld r9,7
bst r11,6
bld r11,3
bst r8,7
bld r11,6
bst r11,1
bld r8,7
bst r9,6
bld r11,1
bst r8,3
bld r9,6
bst r11,0
bld r8,3
bst r10,6
bld r11,0
bst r8,5
bld r10,6
bst r9,1
bld r8,5
bst r9,2
bld r9,1
bst r8,2
bld r9,2
bst r0,0
bld r8,2
bst r12,0
bld r0,0
bst r15,0
bld r12,0
bst r15,6
bld r15,0
bst r13,7
bld r15,6
bst r12,3
bld r13,7
bst r0,0
bld r12,3
bst r12,1
bld r0,0
bst r14,0
bld r12,1
bst r15,4
bld r14,0
bst r15,7
bld r15,4
bst r12,7
bld r15,7
bst r0,0
bld r12,7
bst r12,2
bld r0,0
bst r13,0
bld r12,2
bst r15,2
bld r13,0
bst r13,6
bld r15,2
bst r13,3
bld r13,6
bst r0,0
bld r13,3
bst r12,4
bld r0,0
bst r15,1
bld r12,4
bst r14,6
bld r15,1
bst r13,5
bld r14,6
bst r14,3
bld r13,5
bst r0,0
bld r14,3
bst r12,5
bld r0,0
bst r14,1
bld r12,5
bst r14,4
bld r14,1
bst r15,5
bld r14,4
bst r14,7
bld r15,5
bst r0,0
bld r14,7
bst r12,6
bld r0,0
bst r13,1
bld r12,6
bst r14,2
bld r13,1
bst r13,4
bld r14,2
bst r15,3
bld r13,4
bst r0,0
bld r15,3
movw r18,r12
movw r20,r14
movw r12,r22
movw r14,r2
movw r22,r18
movw r2,r20
and r18,r4
and r19,r5
and r20,r6
and r21,r7
eor r8,r18
eor r9,r19
eor r10,r20
eor r11,r21
com r12
com r13
com r14
com r15
eor r4,r12
eor r5,r13
eor r6,r14
eor r7,r15
eor r12,r8
eor r13,r9
eor r14,r10
eor r15,r11
mov r0,r22
or r0,r4
eor r8,r0
mov r0,r23
or r0,r5
eor r9,r0
mov r0,r2
or r0,r6
eor r10,r0
mov r0,r3
or r0,r7
eor r11,r0
mov r0,r4
and r0,r12
eor r22,r0
mov r0,r5
and r0,r13
eor r23,r0
mov r0,r6
and r0,r14
eor r2,r0
mov r0,r7
and r0,r15
eor r3,r0
mov r0,r22
and r0,r8
eor r4,r0
mov r0,r23
and r0,r9
eor r5,r0
mov r0,r2
and r0,r10
eor r6,r0
mov r0,r3
and r0,r11
eor r7,r0
ret
611:
#if defined(RAMPZ)
pop r0
out _SFR_IO_ADDR(RAMPZ),r0
#endif
ldd r26,Y+17
ldd r27,Y+18
st X+,r3
st X+,r2
st X+,r23
st X+,r22
st X+,r7
st X+,r6
st X+,r5
st X+,r4
st X+,r11
st X+,r10
st X+,r9
st X+,r8
st X+,r15
st X+,r14
st X+,r13
st X+,r12
adiw r28,18
in r0,0x3f
cli
out 0x3e,r29
out 0x3f,r0
out 0x3d,r28
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
pop r29
pop r28
ret
.size gift128b_decrypt, .-gift128b_decrypt
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment