#if defined(__AVR__) #include /* Automatically generated - do not edit */ #include "internal-gift128-config.h" #if GIFT128_VARIANT == GIFT128_VARIANT_FULL .section .progmem.data,"a",@progbits .p2align 8 .type table_0, @object .size table_0, 160 table_0: .byte 8 .byte 0 .byte 0 .byte 16 .byte 0 .byte 128 .byte 1 .byte 128 .byte 2 .byte 0 .byte 0 .byte 84 .byte 129 .byte 1 .byte 1 .byte 1 .byte 31 .byte 0 .byte 0 .byte 128 .byte 128 .byte 136 .byte 136 .byte 16 .byte 0 .byte 224 .byte 1 .byte 96 .byte 2 .byte 0 .byte 80 .byte 81 .byte 128 .byte 1 .byte 3 .byte 3 .byte 47 .byte 0 .byte 0 .byte 128 .byte 128 .byte 136 .byte 8 .byte 16 .byte 0 .byte 96 .byte 1 .byte 96 .byte 2 .byte 0 .byte 80 .byte 65 .byte 128 .byte 0 .byte 3 .byte 3 .byte 39 .byte 0 .byte 0 .byte 128 .byte 128 .byte 136 .byte 0 .byte 16 .byte 0 .byte 224 .byte 1 .byte 64 .byte 2 .byte 0 .byte 80 .byte 17 .byte 128 .byte 1 .byte 2 .byte 3 .byte 43 .byte 0 .byte 0 .byte 128 .byte 128 .byte 8 .byte 8 .byte 16 .byte 0 .byte 64 .byte 1 .byte 96 .byte 2 .byte 0 .byte 64 .byte 1 .byte 128 .byte 0 .byte 2 .byte 2 .byte 33 .byte 0 .byte 0 .byte 128 .byte 128 .byte 0 .byte 0 .byte 16 .byte 0 .byte 192 .byte 1 .byte 0 .byte 2 .byte 0 .byte 0 .byte 81 .byte 128 .byte 1 .byte 1 .byte 3 .byte 46 .byte 0 .byte 0 .byte 128 .byte 0 .byte 136 .byte 8 .byte 16 .byte 0 .byte 32 .byte 1 .byte 96 .byte 2 .byte 0 .byte 80 .byte 64 .byte 128 .byte 0 .byte 3 .byte 1 .byte 6 .byte 0 .byte 0 .byte 128 .byte 8 .byte 136 .byte 0 .byte 16 .byte 0 .byte 160 .byte 1 .byte 192 .byte 2 .byte 0 .byte 80 .byte 20 .byte 129 .byte 1 .byte 2 .byte 1 .byte 26 .byte 0 .byte 0 .byte 128 .text .global gift128n_init .type gift128n_init, @function gift128n_init: 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 movw r30,r24 movw r26,r22 .L__stack_usage = 18 ld r22,X+ ld r23,X+ ld r28,X+ ld r29,X+ ld r6,X+ ld r7,X+ ld r8,X+ ld r9,X+ ld r2,X+ ld r3,X+ ld r4,X+ ld r5,X+ ld r10,X+ ld r11,X+ ld r12,X+ ld r13,X+ st Z+,r22 st Z+,r23 st Z+,r28 st Z+,r29 st Z+,r2 st Z+,r3 st Z+,r4 st Z+,r5 st Z+,r6 st Z+,r7 st Z+,r8 st Z+,r9 st Z+,r10 st Z+,r11 st Z+,r12 st Z+,r13 ldi r24,4 33: st Z+,r2 st Z+,r3 st Z+,r4 st Z+,r5 lsl r22 rol r23 adc r22,r1 lsl r22 rol r23 adc r22,r1 lsl r22 rol r23 adc r22,r1 lsl r22 rol r23 adc r22,r1 mov r0,r1 lsr r29 ror r28 ror r0 lsr r29 ror r28 ror r0 or r29,r0 st Z+,r22 st Z+,r23 st Z+,r28 st Z+,r29 mov r0,r22 mov r22,r2 mov r2,r0 mov r0,r23 mov r23,r3 mov r3,r0 mov r0,r28 mov r28,r4 mov r4,r0 mov r0,r29 mov r29,r5 mov r5,r0 st Z+,r10 st Z+,r11 st Z+,r12 st Z+,r13 lsl r6 rol r7 adc r6,r1 lsl r6 rol r7 adc r6,r1 lsl r6 rol r7 adc r6,r1 lsl r6 rol r7 adc r6,r1 mov r0,r1 lsr r9 ror r8 ror r0 lsr r9 ror r8 ror r0 or r9,r0 st Z+,r6 st Z+,r7 st Z+,r8 st Z+,r9 mov r0,r6 mov r6,r10 mov r10,r0 mov r0,r7 mov r7,r11 mov r11,r0 mov r0,r8 mov r8,r12 mov r12,r0 mov r0,r9 mov r9,r13 mov r13,r0 dec r24 breq 5115f rjmp 33b 5115: subi r30,80 sbc r31,r1 ldi r24,2 119: ld r22,Z ldd r23,Z+1 ldd r28,Z+2 ldd r29,Z+3 movw r18,r22 movw r20,r28 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,85 mov r19,r1 andi r20,85 mov r21,r1 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r1 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,15 mov r19,r1 andi r20,15 mov r21,r1 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 movw r18,r20 mov r20,r1 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 andi r18,51 andi r19,51 eor r22,r18 eor r23,r19 mov r20,r1 mov r21,r1 movw r20,r18 mov r18,r1 mov r19,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 st Z,r29 std Z+1,r23 std Z+2,r28 std Z+3,r22 ldd r22,Z+4 ldd r23,Z+5 ldd r28,Z+6 ldd r29,Z+7 movw r18,r22 movw r20,r28 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,85 mov r19,r1 andi r20,85 mov r21,r1 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r1 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,15 mov r19,r1 andi r20,15 mov r21,r1 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 movw r18,r20 mov r20,r1 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 andi r18,51 andi r19,51 eor r22,r18 eor r23,r19 mov r20,r1 mov r21,r1 movw r20,r18 mov r18,r1 mov r19,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 std Z+4,r29 std Z+5,r23 std Z+6,r28 std Z+7,r22 ldd r22,Z+8 ldd r23,Z+9 ldd r28,Z+10 ldd r29,Z+11 movw r18,r22 movw r20,r28 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,17 andi r19,17 andi r20,17 andi r21,17 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r0,r1 lsl r18 rol r19 rol r20 rol r21 rol r0 lsl r18 rol r19 rol r20 rol r21 rol r0 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r0 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,3 andi r19,3 andi r20,3 andi r21,3 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 mov r0,r1 lsr r21 ror r20 ror r19 ror r18 ror r0 lsr r21 ror r20 ror r19 ror r18 ror r0 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r0 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,15 mov r19,r1 andi r20,15 mov r21,r1 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 std Z+8,r29 std Z+9,r23 std Z+10,r28 std Z+11,r22 ldd r22,Z+12 ldd r23,Z+13 ldd r28,Z+14 ldd r29,Z+15 movw r18,r22 movw r20,r28 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,17 andi r19,17 andi r20,17 andi r21,17 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r0,r1 lsl r18 rol r19 rol r20 rol r21 rol r0 lsl r18 rol r19 rol r20 rol r21 rol r0 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r0 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,3 andi r19,3 andi r20,3 andi r21,3 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 mov r0,r1 lsr r21 ror r20 ror r19 ror r18 ror r0 lsr r21 ror r20 ror r19 ror r18 ror r0 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r0 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,15 mov r19,r1 andi r20,15 mov r21,r1 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 std Z+12,r29 std Z+13,r23 std Z+14,r28 std Z+15,r22 ldd r22,Z+16 ldd r23,Z+17 ldd r28,Z+18 ldd r29,Z+19 movw r18,r22 movw r20,r28 mov r0,r1 lsl r19 rol r20 rol r21 rol r0 movw r18,r20 mov r20,r0 mov r21,r1 eor r18,r22 eor r19,r23 andi r18,170 andi r19,170 eor r22,r18 eor r23,r19 mov r20,r1 mov r21,r1 mov r0,r1 lsr r20 ror r19 ror r18 ror r0 movw r20,r18 mov r19,r0 mov r18,r1 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 movw r18,r20 mov r20,r1 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 andi r18,51 andi r19,51 eor r22,r18 eor r23,r19 mov r20,r1 mov r21,r1 movw r20,r18 mov r18,r1 mov r19,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 andi r18,240 andi r19,240 eor r22,r18 eor r23,r19 mov r20,r1 mov r21,r1 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 std Z+16,r29 std Z+17,r23 std Z+18,r28 std Z+19,r22 ldd r22,Z+20 ldd r23,Z+21 ldd r28,Z+22 ldd r29,Z+23 movw r18,r22 movw r20,r28 mov r0,r1 lsl r19 rol r20 rol r21 rol r0 movw r18,r20 mov r20,r0 mov r21,r1 eor r18,r22 eor r19,r23 andi r18,170 andi r19,170 eor r22,r18 eor r23,r19 mov r20,r1 mov r21,r1 mov r0,r1 lsr r20 ror r19 ror r18 ror r0 movw r20,r18 mov r19,r0 mov r18,r1 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 movw r18,r20 mov r20,r1 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 andi r18,51 andi r19,51 eor r22,r18 eor r23,r19 mov r20,r1 mov r21,r1 movw r20,r18 mov r18,r1 mov r19,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 andi r18,240 andi r19,240 eor r22,r18 eor r23,r19 mov r20,r1 mov r21,r1 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 std Z+20,r29 std Z+21,r23 std Z+22,r28 std Z+23,r22 ldd r22,Z+24 ldd r23,Z+25 ldd r28,Z+26 ldd r29,Z+27 movw r18,r22 movw r20,r28 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,10 andi r19,10 andi r20,10 andi r21,10 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r0,r1 lsl r18 rol r19 rol r20 rol r21 rol r0 lsl r18 rol r19 rol r20 rol r21 rol r0 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r0 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,204 mov r19,r1 andi r20,204 mov r21,r1 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 mov r0,r1 lsr r21 ror r20 ror r19 ror r18 ror r0 lsr r21 ror r20 ror r19 ror r18 ror r0 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r0 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 andi r18,240 andi r19,240 eor r22,r18 eor r23,r19 mov r20,r1 mov r21,r1 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 std Z+24,r29 std Z+25,r23 std Z+26,r28 std Z+27,r22 ldd r22,Z+28 ldd r23,Z+29 ldd r28,Z+30 ldd r29,Z+31 movw r18,r22 movw r20,r28 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,10 andi r19,10 andi r20,10 andi r21,10 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r0,r1 lsl r18 rol r19 rol r20 rol r21 rol r0 lsl r18 rol r19 rol r20 rol r21 rol r0 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r0 eor r18,r22 eor r19,r23 eor r20,r28 eor r21,r29 andi r18,204 mov r19,r1 andi r20,204 mov r21,r1 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 mov r0,r1 lsr r21 ror r20 ror r19 ror r18 ror r0 lsr r21 ror r20 ror r19 ror r18 ror r0 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r0 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 movw r18,r22 movw r20,r28 mov r18,r19 mov r19,r20 mov r20,r21 mov r21,r1 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r22 eor r19,r23 andi r18,240 andi r19,240 eor r22,r18 eor r23,r19 mov r20,r1 mov r21,r1 mov r21,r20 mov r20,r19 mov r19,r18 mov r18,r1 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r22,r18 eor r23,r19 eor r28,r20 eor r29,r21 std Z+28,r29 std Z+29,r23 std Z+30,r28 std Z+31,r22 dec r24 breq 1268f adiw r30,40 rjmp 119b 1268: adiw r30,40 movw r26,r30 subi r26,80 sbc r27,r1 ldi r24,6 1274: ld r22,X+ ld r23,X+ ld r28,X+ ld r29,X+ ld r2,X+ ld r3,X+ ld r4,X+ ld r5,X+ movw r18,r2 movw r20,r4 movw r18,r20 mov r20,r1 mov r21,r1 eor r18,r2 eor r19,r3 andi r18,51 andi r19,51 eor r2,r18 eor r3,r19 mov r20,r1 mov r21,r1 movw r20,r18 mov r18,r1 mov r19,r1 eor r2,r18 eor r3,r19 eor r4,r20 eor r5,r21 movw r18,r2 movw r20,r4 lsr r21 ror r20 ror r19 ror r18 eor r18,r2 eor r19,r3 eor r20,r4 eor r21,r5 andi r18,68 andi r19,68 andi r20,85 andi r21,85 eor r2,r18 eor r3,r19 eor r4,r20 eor r5,r21 lsl r18 rol r19 rol r20 rol r21 eor r2,r18 eor r3,r19 eor r4,r20 eor r5,r21 st Z,r2 std Z+1,r3 std Z+2,r4 std Z+3,r5 movw r18,r22 movw r20,r28 andi r18,51 andi r19,51 andi r20,51 andi r21,51 andi r22,204 andi r23,204 andi r28,204 andi r29,204 or r28,r21 or r29,r18 or r22,r19 or r23,r20 movw r18,r28 movw r20,r22 lsr r21 ror r20 ror r19 ror r18 eor r18,r28 eor r19,r29 eor r20,r22 eor r21,r23 mov r18,r1 andi r19,17 andi r20,85 andi r21,85 eor r28,r18 eor r29,r19 eor r22,r20 eor r23,r21 lsl r18 rol r19 rol r20 rol r21 eor r28,r18 eor r29,r19 eor r22,r20 eor r23,r21 std Z+4,r28 std Z+5,r29 std Z+6,r22 std Z+7,r23 ld r22,X+ ld r23,X+ ld r28,X+ ld r29,X+ ld r2,X+ ld r3,X+ ld r4,X+ ld r5,X+ lsl r2 adc r2,r1 lsl r2 adc r2,r1 swap r3 lsl r4 adc r4,r1 lsl r4 adc r4,r1 swap r5 std Z+8,r2 std Z+9,r3 std Z+10,r4 std Z+11,r5 lsl r22 adc r22,r1 lsl r22 adc r22,r1 lsl r22 adc r22,r1 lsl r23 adc r23,r1 lsl r23 adc r23,r1 lsl r28 adc r28,r1 lsl r28 adc r28,r1 lsl r28 adc r28,r1 lsl r29 adc r29,r1 lsl r29 adc r29,r1 std Z+12,r22 std Z+13,r23 std Z+14,r28 std Z+15,r29 ld r22,X+ ld r23,X+ ld r28,X+ ld r29,X+ ld r2,X+ ld r3,X+ ld r4,X+ ld r5,X+ movw r18,r2 movw r20,r4 andi r18,170 andi r19,170 andi r20,170 andi r21,170 ldi r25,85 and r2,r25 and r3,r25 and r4,r25 and r5,r25 or r2,r19 or r3,r20 or r4,r21 or r5,r18 std Z+16,r4 std Z+17,r5 std Z+18,r2 std Z+19,r3 movw r18,r22 movw r20,r28 andi r18,85 andi r19,85 andi r20,85 andi r21,85 andi r22,170 andi r23,170 andi r28,170 andi r29,170 lsl r22 rol r23 rol r28 rol r29 adc r22,r1 lsl r22 rol r23 rol r28 rol r29 adc r22,r1 lsl r22 rol r23 rol r28 rol r29 adc r22,r1 lsl r22 rol r23 rol r28 rol r29 adc r22,r1 or r22,r18 or r23,r19 or r28,r20 or r29,r21 std Z+20,r29 std Z+21,r22 std Z+22,r23 std Z+23,r28 ld r22,X+ ld r23,X+ ld r28,X+ ld r29,X+ ld r2,X+ ld r3,X+ ld r4,X+ ld r5,X+ movw r18,r2 movw r20,r4 lsr r21 ror r20 ror r19 ror r18 lsr r21 ror r20 ror r19 ror r18 eor r18,r2 eor r19,r3 eor r20,r4 eor r21,r5 andi r18,3 andi r19,3 andi r20,3 andi r21,3 eor r2,r18 eor r3,r19 eor r4,r20 eor r5,r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 eor r2,r18 eor r3,r19 eor r4,r20 eor r5,r21 movw r18,r2 movw r20,r4 lsr r21 ror r20 ror r19 ror r18 andi r18,120 andi r19,120 andi r20,120 andi r21,120 movw r14,r18 movw r16,r20 lsr r17 ror r16 ror r15 ror r14 lsr r17 ror r16 ror r15 ror r14 lsr r17 ror r16 ror r15 ror r14 lsr r17 ror r16 ror r15 ror r14 eor r14,r18 eor r15,r19 eor r16,r20 eor r17,r21 ldi r25,8 and r14,r25 and r15,r25 andi r16,8 andi r17,8 eor r18,r14 eor r19,r15 eor r20,r16 eor r21,r17 lsl r14 rol r15 rol r16 rol r17 lsl r14 rol r15 rol r16 rol r17 lsl r14 rol r15 rol r16 rol r17 lsl r14 rol r15 rol r16 rol r17 eor r18,r14 eor r19,r15 eor r20,r16 eor r21,r17 ldi r17,15 and r2,r17 and r3,r17 and r4,r17 and r5,r17 or r2,r18 or r3,r19 or r4,r20 or r5,r21 std Z+24,r2 std Z+25,r3 std Z+26,r4 std Z+27,r5 movw r18,r28 lsr r19 ror r18 lsr r19 ror r18 andi r18,48 andi r19,48 movw r2,r22 movw r4,r28 ldi r16,1 and r2,r16 and r3,r16 and r4,r16 and r5,r16 lsl r2 rol r3 rol r4 rol r5 lsl r2 rol r3 rol r4 rol r5 lsl r2 rol r3 rol r4 rol r5 or r2,r18 or r3,r19 movw r18,r28 lsl r18 rol r19 lsl r18 rol r19 andi r18,192 andi r19,192 or r2,r18 or r3,r19 movw r18,r22 andi r18,224 andi r19,224 lsr r19 ror r18 or r4,r18 or r5,r19 movw r18,r22 movw r20,r28 lsr r21 ror r20 ror r19 ror r18 andi r18,7 andi r19,7 andi r20,7 andi r21,7 or r2,r18 or r3,r19 or r4,r20 or r5,r21 andi r22,16 andi r23,16 lsl r22 rol r23 lsl r22 rol r23 lsl r22 rol r23 or r4,r22 or r5,r23 std Z+28,r2 std Z+29,r3 std Z+30,r4 std Z+31,r5 ld r22,X+ ld r23,X+ ld r28,X+ ld r29,X+ ld r2,X+ ld r3,X+ ld r4,X+ ld r5,X+ mov r0,r1 lsr r5 ror r4 ror r0 lsr r5 ror r4 ror r0 lsr r5 ror r4 ror r0 lsr r5 ror r4 ror r0 or r5,r0 std Z+32,r3 std Z+33,r2 std Z+34,r4 std Z+35,r5 mov r0,r1 lsr r23 ror r22 ror r0 lsr r23 ror r22 ror r0 lsr r23 ror r22 ror r0 lsr r23 ror r22 ror r0 or r23,r0 mov r0,r28 mov r28,r29 mov r29,r0 lsl r28 rol r29 adc r28,r1 lsl r28 rol r29 adc r28,r1 std Z+36,r22 std Z+37,r23 std Z+38,r28 std Z+39,r29 dec r24 breq 1733f adiw r30,40 rjmp 1274b 1733: 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_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 r17 push r23 push r22 movw r30,r24 movw r26,r20 in r28,0x3d in r29,0x3e .L__stack_usage = 19 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 movw r26,r30 ldi r30,lo8(table_0) ldi r31,hi8(table_0) #if defined(RAMPZ) ldi r24,hh8(table_0) in r0,_SFR_IO_ADDR(RAMPZ) push r0 out _SFR_IO_ADDR(RAMPZ),r24 #endif rcall 283f rcall 283f rcall 283f rcall 283f rcall 283f rcall 283f rcall 283f rcall 283f rjmp 1021f 283: 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 mov r0,r22 and r0,r4 eor r8,r0 mov r0,r23 and r0,r5 eor r9,r0 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 movw r18,r4 movw r20,r6 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 andi r18,204 andi r19,204 andi r20,204 andi r21,204 lsr r7 ror r6 ror r5 ror r4 lsr r7 ror r6 ror r5 ror r4 ldi r25,51 and r4,r25 and r5,r25 and r6,r25 and r7,r25 or r4,r18 or r5,r19 or r6,r20 or r7,r21 movw r18,r8 movw r20,r10 lsl r18 rol r19 rol r20 rol r21 andi r18,238 andi r19,238 andi r20,238 andi r21,238 lsr r11 ror r10 ror r9 ror r8 lsr r11 ror r10 ror r9 ror r8 lsr r11 ror r10 ror r9 ror r8 ldi r24,17 and r8,r24 and r9,r24 and r10,r24 and r11,r24 or r8,r18 or r9,r19 or r10,r20 or r11,r21 movw r18,r12 movw r20,r14 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 andi r18,136 andi r19,136 andi r20,136 andi r21,136 lsr r15 ror r14 ror r13 ror r12 ldi r17,119 and r12,r17 and r13,r17 and r14,r17 and r15,r17 or r12,r18 or r13,r19 or r14,r20 or r15,r21 ld r18,X+ ld r19,X+ ld r20,X+ ld r21,X+ eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 ld r18,X+ ld r19,X+ ld r20,X+ ld r21,X+ eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 #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 inc r30 #if defined(RAMPZ) elpm r19,Z #elif defined(__AVR_HAVE_LPMX__) lpm r19,Z #elif defined(__AVR_TINY__) ld r19,Z #else lpm mov r19,r0 #endif inc r30 #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 inc r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif inc r30 eor r22,r18 eor r23,r19 eor r2,r20 eor r3,r21 mov r0,r12 and r0,r8 eor r4,r0 mov r0,r13 and r0,r9 eor r5,r0 mov r0,r14 and r0,r10 eor r6,r0 mov r0,r15 and r0,r11 eor r7,r0 mov r0,r4 and r0,r22 eor r12,r0 mov r0,r5 and r0,r23 eor r13,r0 mov r0,r6 and r0,r2 eor r14,r0 mov r0,r7 and r0,r3 eor r15,r0 mov r0,r12 or r0,r4 eor r8,r0 mov r0,r13 or r0,r5 eor r9,r0 mov r0,r14 or r0,r6 eor r10,r0 mov r0,r15 or r0,r7 eor r11,r0 eor r22,r8 eor r23,r9 eor r2,r10 eor r3,r11 eor r4,r22 eor r5,r23 eor r6,r2 eor r7,r3 com r22 com r23 com r2 com r3 mov r0,r12 and r0,r4 eor r8,r0 mov r0,r13 and r0,r5 eor r9,r0 mov r0,r14 and r0,r6 eor r10,r0 mov r0,r15 and r0,r7 eor r11,r0 mov r0,r1 lsr r23 ror r22 ror r0 lsr r23 ror r22 ror r0 lsr r23 ror r22 ror r0 lsr r23 ror r22 ror r0 or r23,r0 mov r0,r1 lsr r3 ror r2 ror r0 lsr r3 ror r2 ror r0 lsr r3 ror r2 ror r0 lsr r3 ror r2 ror r0 or r3,r0 mov r0,r5 mov r5,r4 mov r4,r0 mov r0,r7 mov r7,r6 mov r6,r0 lsl r8 rol r9 adc r8,r1 lsl r8 rol r9 adc r8,r1 lsl r8 rol r9 adc r8,r1 lsl r8 rol r9 adc r8,r1 lsl r10 rol r11 adc r10,r1 lsl r10 rol r11 adc r10,r1 lsl r10 rol r11 adc r10,r1 lsl r10 rol r11 adc r10,r1 ld r18,X+ ld r19,X+ ld r20,X+ ld r21,X+ eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 ld r18,X+ ld r19,X+ ld r20,X+ ld r21,X+ eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 #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 inc r30 #if defined(RAMPZ) elpm r19,Z #elif defined(__AVR_HAVE_LPMX__) lpm r19,Z #elif defined(__AVR_TINY__) ld r19,Z #else lpm mov r19,r0 #endif inc r30 #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 inc r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif inc r30 eor r12,r18 eor r13,r19 eor r14,r20 eor r15,r21 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 mov r0,r22 and r0,r4 eor r8,r0 mov r0,r23 and r0,r5 eor r9,r0 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 movw r18,r4 movw r20,r6 lsr r21 ror r20 ror r19 ror r18 eor r18,r4 eor r19,r5 eor r20,r6 eor r21,r7 andi r18,85 andi r19,85 andi r20,85 andi r21,85 eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 lsl r18 rol r19 rol r20 rol r21 eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 mov r0,r10 mov r10,r8 mov r8,r0 mov r0,r11 mov r11,r9 mov r9,r0 movw r18,r8 movw r20,r10 lsr r21 ror r20 ror r19 ror r18 eor r18,r8 eor r19,r9 andi r18,85 andi r19,85 eor r8,r18 eor r9,r19 mov r20,r1 mov r21,r1 lsl r18 rol r19 rol r20 rol r21 eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 mov r0,r14 mov r14,r12 mov r12,r0 mov r0,r15 mov r15,r13 mov r13,r0 movw r18,r14 lsr r19 ror r18 eor r18,r14 eor r19,r15 andi r18,85 andi r19,85 eor r14,r18 eor r15,r19 lsl r18 rol r19 eor r14,r18 eor r15,r19 ld r18,X+ ld r19,X+ ld r20,X+ ld r21,X+ eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 ld r18,X+ ld r19,X+ ld r20,X+ ld r21,X+ eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 #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 inc r30 #if defined(RAMPZ) elpm r19,Z #elif defined(__AVR_HAVE_LPMX__) lpm r19,Z #elif defined(__AVR_TINY__) ld r19,Z #else lpm mov r19,r0 #endif inc r30 #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 inc r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif inc r30 eor r22,r18 eor r23,r19 eor r2,r20 eor r3,r21 mov r0,r12 and r0,r8 eor r4,r0 mov r0,r13 and r0,r9 eor r5,r0 mov r0,r14 and r0,r10 eor r6,r0 mov r0,r15 and r0,r11 eor r7,r0 mov r0,r4 and r0,r22 eor r12,r0 mov r0,r5 and r0,r23 eor r13,r0 mov r0,r6 and r0,r2 eor r14,r0 mov r0,r7 and r0,r3 eor r15,r0 mov r0,r12 or r0,r4 eor r8,r0 mov r0,r13 or r0,r5 eor r9,r0 mov r0,r14 or r0,r6 eor r10,r0 mov r0,r15 or r0,r7 eor r11,r0 eor r22,r8 eor r23,r9 eor r2,r10 eor r3,r11 eor r4,r22 eor r5,r23 eor r6,r2 eor r7,r3 com r22 com r23 com r2 com r3 mov r0,r12 and r0,r4 eor r8,r0 mov r0,r13 and r0,r5 eor r9,r0 mov r0,r14 and r0,r6 eor r10,r0 mov r0,r15 and r0,r7 eor r11,r0 lsl r22 adc r22,r1 lsl r22 adc r22,r1 lsl r23 adc r23,r1 lsl r23 adc r23,r1 lsl r2 adc r2,r1 lsl r2 adc r2,r1 lsl r3 adc r3,r1 lsl r3 adc r3,r1 swap r4 swap r5 swap r6 swap r7 mov r0,r1 lsr r8 ror r0 lsr r8 ror r0 or r8,r0 mov r0,r1 lsr r9 ror r0 lsr r9 ror r0 or r9,r0 mov r0,r1 lsr r10 ror r0 lsr r10 ror r0 or r10,r0 mov r0,r1 lsr r11 ror r0 lsr r11 ror r0 or r11,r0 ld r18,X+ ld r19,X+ ld r20,X+ ld r21,X+ eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 ld r18,X+ ld r19,X+ ld r20,X+ ld r21,X+ eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 #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 inc r30 #if defined(RAMPZ) elpm r19,Z #elif defined(__AVR_HAVE_LPMX__) lpm r19,Z #elif defined(__AVR_TINY__) ld r19,Z #else lpm mov r19,r0 #endif inc r30 #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 inc r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif inc r30 eor r12,r18 eor r13,r19 eor r14,r20 eor r15,r21 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 mov r0,r22 and r0,r4 eor r8,r0 mov r0,r23 and r0,r5 eor r9,r0 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 mov r0,r6 mov r6,r4 mov r4,r0 mov r0,r7 mov r7,r5 mov r5,r0 mov r0,r8 mov r8,r9 mov r9,r10 mov r10,r11 mov r11,r0 mov r0,r15 mov r15,r14 mov r14,r13 mov r13,r12 mov r12,r0 ld r18,X+ ld r19,X+ ld r20,X+ ld r21,X+ eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 ld r18,X+ ld r19,X+ ld r20,X+ ld r21,X+ eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 #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 inc r30 #if defined(RAMPZ) elpm r19,Z #elif defined(__AVR_HAVE_LPMX__) lpm r19,Z #elif defined(__AVR_TINY__) ld r19,Z #else lpm mov r19,r0 #endif inc r30 #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 inc r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif inc r30 eor r22,r18 eor r23,r19 eor r2,r20 eor r3,r21 eor r22,r12 eor r23,r13 eor r2,r14 eor r3,r15 eor r12,r22 eor r13,r23 eor r14,r2 eor r15,r3 eor r22,r12 eor r23,r13 eor r2,r14 eor r3,r15 ret 1021: #if defined(RAMPZ) pop r0 out _SFR_IO_ADDR(RAMPZ),r0 #endif ldd r26,Y+1 ldd r27,Y+2 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 pop r0 pop r0 pop r17 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 r17 push r23 push r22 movw r30,r24 movw r26,r20 in r28,0x3d in r29,0x3e .L__stack_usage = 19 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 movw r26,r30 subi r26,192 sbci r27,254 ldi r30,lo8(table_0) ldi r31,hi8(table_0) #if defined(RAMPZ) ldi r24,hh8(table_0) in r0,_SFR_IO_ADDR(RAMPZ) push r0 out _SFR_IO_ADDR(RAMPZ),r24 #endif ldi r30,160 rcall 286f rcall 286f rcall 286f rcall 286f rcall 286f rcall 286f rcall 286f rcall 286f rjmp 1024f 286: eor r22,r12 eor r23,r13 eor r2,r14 eor r3,r15 eor r12,r22 eor r13,r23 eor r14,r2 eor r15,r3 eor r22,r12 eor r23,r13 eor r2,r14 eor r3,r15 dec r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif dec r30 #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 dec r30 #if defined(RAMPZ) elpm r19,Z #elif defined(__AVR_HAVE_LPMX__) lpm r19,Z #elif defined(__AVR_TINY__) ld r19,Z #else lpm mov r19,r0 #endif dec r30 #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 r22,r18 eor r23,r19 eor r2,r20 eor r3,r21 ld r21,-X ld r20,-X ld r19,-X ld r18,-X eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 ld r21,-X ld r20,-X ld r19,-X ld r18,-X eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 mov r0,r6 mov r6,r4 mov r4,r0 mov r0,r7 mov r7,r5 mov r5,r0 mov r0,r11 mov r11,r10 mov r10,r9 mov r9,r8 mov r8,r0 mov r0,r12 mov r12,r13 mov r13,r14 mov r14,r15 mov r15,r0 mov r0,r22 and r0,r4 eor r8,r0 mov r0,r23 and r0,r5 eor r9,r0 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 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 dec r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif dec r30 #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 dec r30 #if defined(RAMPZ) elpm r19,Z #elif defined(__AVR_HAVE_LPMX__) lpm r19,Z #elif defined(__AVR_TINY__) ld r19,Z #else lpm mov r19,r0 #endif dec r30 #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 eor r13,r19 eor r14,r20 eor r15,r21 ld r21,-X ld r20,-X ld r19,-X ld r18,-X eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 ld r21,-X ld r20,-X ld r19,-X ld r18,-X eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 mov r0,r1 lsr r22 ror r0 lsr r22 ror r0 or r22,r0 mov r0,r1 lsr r23 ror r0 lsr r23 ror r0 or r23,r0 mov r0,r1 lsr r2 ror r0 lsr r2 ror r0 or r2,r0 mov r0,r1 lsr r3 ror r0 lsr r3 ror r0 or r3,r0 swap r4 swap r5 swap r6 swap r7 lsl r8 adc r8,r1 lsl r8 adc r8,r1 lsl r9 adc r9,r1 lsl r9 adc r9,r1 lsl r10 adc r10,r1 lsl r10 adc r10,r1 lsl r11 adc r11,r1 lsl r11 adc r11,r1 mov r0,r12 and r0,r4 eor r8,r0 mov r0,r13 and r0,r5 eor r9,r0 mov r0,r14 and r0,r6 eor r10,r0 mov r0,r15 and r0,r7 eor r11,r0 com r22 com r23 com r2 com r3 eor r4,r22 eor r5,r23 eor r6,r2 eor r7,r3 eor r22,r8 eor r23,r9 eor r2,r10 eor r3,r11 mov r0,r12 or r0,r4 eor r8,r0 mov r0,r13 or r0,r5 eor r9,r0 mov r0,r14 or r0,r6 eor r10,r0 mov r0,r15 or r0,r7 eor r11,r0 mov r0,r4 and r0,r22 eor r12,r0 mov r0,r5 and r0,r23 eor r13,r0 mov r0,r6 and r0,r2 eor r14,r0 mov r0,r7 and r0,r3 eor r15,r0 mov r0,r12 and r0,r8 eor r4,r0 mov r0,r13 and r0,r9 eor r5,r0 mov r0,r14 and r0,r10 eor r6,r0 mov r0,r15 and r0,r11 eor r7,r0 dec r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif dec r30 #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 dec r30 #if defined(RAMPZ) elpm r19,Z #elif defined(__AVR_HAVE_LPMX__) lpm r19,Z #elif defined(__AVR_TINY__) ld r19,Z #else lpm mov r19,r0 #endif dec r30 #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 r22,r18 eor r23,r19 eor r2,r20 eor r3,r21 ld r21,-X ld r20,-X ld r19,-X ld r18,-X eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 ld r21,-X ld r20,-X ld r19,-X ld r18,-X eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 movw r18,r4 movw r20,r6 lsr r21 ror r20 ror r19 ror r18 eor r18,r4 eor r19,r5 eor r20,r6 eor r21,r7 andi r18,85 andi r19,85 andi r20,85 andi r21,85 eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 lsl r18 rol r19 rol r20 rol r21 eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 movw r18,r8 movw r20,r10 lsr r21 ror r20 ror r19 ror r18 eor r18,r8 eor r19,r9 andi r18,85 andi r19,85 eor r8,r18 eor r9,r19 mov r20,r1 mov r21,r1 lsl r18 rol r19 rol r20 rol r21 eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 mov r0,r10 mov r10,r8 mov r8,r0 mov r0,r11 mov r11,r9 mov r9,r0 movw r18,r14 lsr r19 ror r18 eor r18,r14 eor r19,r15 andi r18,85 andi r19,85 eor r14,r18 eor r15,r19 lsl r18 rol r19 eor r14,r18 eor r15,r19 mov r0,r14 mov r14,r12 mov r12,r0 mov r0,r15 mov r15,r13 mov r13,r0 mov r0,r22 and r0,r4 eor r8,r0 mov r0,r23 and r0,r5 eor r9,r0 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 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 dec r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif dec r30 #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 dec r30 #if defined(RAMPZ) elpm r19,Z #elif defined(__AVR_HAVE_LPMX__) lpm r19,Z #elif defined(__AVR_TINY__) ld r19,Z #else lpm mov r19,r0 #endif dec r30 #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 eor r13,r19 eor r14,r20 eor r15,r21 ld r21,-X ld r20,-X ld r19,-X ld r18,-X eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 ld r21,-X ld r20,-X ld r19,-X ld r18,-X eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 lsl r22 rol r23 adc r22,r1 lsl r22 rol r23 adc r22,r1 lsl r22 rol r23 adc r22,r1 lsl r22 rol r23 adc r22,r1 lsl r2 rol r3 adc r2,r1 lsl r2 rol r3 adc r2,r1 lsl r2 rol r3 adc r2,r1 lsl r2 rol r3 adc r2,r1 mov r0,r5 mov r5,r4 mov r4,r0 mov r0,r7 mov r7,r6 mov r6,r0 mov r0,r1 lsr r9 ror r8 ror r0 lsr r9 ror r8 ror r0 lsr r9 ror r8 ror r0 lsr r9 ror r8 ror r0 or r9,r0 mov r0,r1 lsr r11 ror r10 ror r0 lsr r11 ror r10 ror r0 lsr r11 ror r10 ror r0 lsr r11 ror r10 ror r0 or r11,r0 mov r0,r12 and r0,r4 eor r8,r0 mov r0,r13 and r0,r5 eor r9,r0 mov r0,r14 and r0,r6 eor r10,r0 mov r0,r15 and r0,r7 eor r11,r0 com r22 com r23 com r2 com r3 eor r4,r22 eor r5,r23 eor r6,r2 eor r7,r3 eor r22,r8 eor r23,r9 eor r2,r10 eor r3,r11 mov r0,r12 or r0,r4 eor r8,r0 mov r0,r13 or r0,r5 eor r9,r0 mov r0,r14 or r0,r6 eor r10,r0 mov r0,r15 or r0,r7 eor r11,r0 mov r0,r4 and r0,r22 eor r12,r0 mov r0,r5 and r0,r23 eor r13,r0 mov r0,r6 and r0,r2 eor r14,r0 mov r0,r7 and r0,r3 eor r15,r0 mov r0,r12 and r0,r8 eor r4,r0 mov r0,r13 and r0,r9 eor r5,r0 mov r0,r14 and r0,r10 eor r6,r0 mov r0,r15 and r0,r11 eor r7,r0 dec r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif dec r30 #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 dec r30 #if defined(RAMPZ) elpm r19,Z #elif defined(__AVR_HAVE_LPMX__) lpm r19,Z #elif defined(__AVR_TINY__) ld r19,Z #else lpm mov r19,r0 #endif dec r30 #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 r22,r18 eor r23,r19 eor r2,r20 eor r3,r21 ld r21,-X ld r20,-X ld r19,-X ld r18,-X eor r8,r18 eor r9,r19 eor r10,r20 eor r11,r21 ld r21,-X ld r20,-X ld r19,-X ld r18,-X eor r4,r18 eor r5,r19 eor r6,r20 eor r7,r21 movw r18,r4 movw r20,r6 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 andi r18,204 andi r19,204 andi r20,204 andi r21,204 lsr r7 ror r6 ror r5 ror r4 lsr r7 ror r6 ror r5 ror r4 ldi r25,51 and r4,r25 and r5,r25 and r6,r25 and r7,r25 or r4,r18 or r5,r19 or r6,r20 or r7,r21 movw r18,r8 movw r20,r10 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 lsl r18 rol r19 rol r20 rol r21 andi r18,136 andi r19,136 andi r20,136 andi r21,136 lsr r11 ror r10 ror r9 ror r8 ldi r24,119 and r8,r24 and r9,r24 and r10,r24 and r11,r24 or r8,r18 or r9,r19 or r10,r20 or r11,r21 movw r18,r12 movw r20,r14 lsl r18 rol r19 rol r20 rol r21 andi r18,238 andi r19,238 andi r20,238 andi r21,238 lsr r15 ror r14 ror r13 ror r12 lsr r15 ror r14 ror r13 ror r12 lsr r15 ror r14 ror r13 ror r12 ldi r17,17 and r12,r17 and r13,r17 and r14,r17 and r15,r17 or r12,r18 or r13,r19 or r14,r20 or r15,r21 mov r0,r22 and r0,r4 eor r8,r0 mov r0,r23 and r0,r5 eor r9,r0 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 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 1024: #if defined(RAMPZ) pop r0 out _SFR_IO_ADDR(RAMPZ),r0 #endif ldd r26,Y+1 ldd r27,Y+2 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 pop r0 pop r0 pop r17 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 .L__stack_usage = 20 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 movw r26,r30 ldi r30,lo8(table_0) ldi r31,hi8(table_0) #if defined(RAMPZ) ldi r19,hh8(table_0) in r0,_SFR_IO_ADDR(RAMPZ) push r0 out _SFR_IO_ADDR(RAMPZ),r19 #endif rcall 311f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 311f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 311f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 311f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 311f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 311f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 311f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 311f rjmp 1049f 311: 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 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 mov r0,r4 and r0,r8 eor r12,r0 mov r0,r5 and r0,r9 eor r13,r0 movw r20,r6 movw r22,r8 lsl r20 rol r21 rol r22 rol r23 lsl r20 rol r21 rol r22 rol r23 andi r20,204 andi r21,204 andi r22,204 andi r23,204 lsr r9 ror r8 ror r7 ror r6 lsr r9 ror r8 ror r7 ror r6 ldi r19,51 and r6,r19 and r7,r19 and r8,r19 and r9,r19 or r6,r20 or r7,r21 or r8,r22 or r9,r23 movw r20,r10 movw r22,r12 lsl r20 rol r21 rol r22 rol r23 andi r20,238 andi r21,238 andi r22,238 andi r23,238 lsr r13 ror r12 ror r11 ror r10 lsr r13 ror r12 ror r11 ror r10 lsr r13 ror r12 ror r11 ror r10 ldi r17,17 and r10,r17 and r11,r17 and r12,r17 and r13,r17 or r10,r20 or r11,r21 or r12,r22 or r13,r23 movw r20,r14 movw r22,r24 lsl r20 rol r21 rol r22 rol r23 lsl r20 rol r21 rol r22 rol r23 lsl r20 rol r21 rol r22 rol r23 andi r20,136 andi r21,136 andi r22,136 andi r23,136 lsr r25 ror r24 ror r15 ror r14 ldi r16,119 and r14,r16 and r15,r16 andi r24,119 andi r25,119 or r14,r20 or r15,r21 or r24,r22 or r25,r23 ld r20,X+ ld r21,X+ ld r22,X+ ld r23,X+ eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 ld r20,X+ ld r21,X+ ld r22,X+ ld r23,X+ eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 #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 inc r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif inc r30 #if defined(RAMPZ) elpm r22,Z #elif defined(__AVR_HAVE_LPMX__) lpm r22,Z #elif defined(__AVR_TINY__) ld r22,Z #else lpm mov r22,r0 #endif inc r30 #if defined(RAMPZ) elpm r23,Z #elif defined(__AVR_HAVE_LPMX__) lpm r23,Z #elif defined(__AVR_TINY__) ld r23,Z #else lpm mov r23,r0 #endif inc r30 eor r2,r20 eor r3,r21 eor r4,r22 eor r5,r23 mov r0,r14 and r0,r10 eor r6,r0 mov r0,r15 and r0,r11 eor r7,r0 mov r0,r24 and r0,r12 eor r8,r0 mov r0,r25 and r0,r13 eor r9,r0 mov r0,r6 and r0,r2 eor r14,r0 mov r0,r7 and r0,r3 eor r15,r0 mov r0,r8 and r0,r4 eor r24,r0 mov r0,r9 and r0,r5 eor r25,r0 mov r0,r14 or r0,r6 eor r10,r0 mov r0,r15 or r0,r7 eor r11,r0 mov r0,r24 or r0,r8 eor r12,r0 mov r0,r25 or r0,r9 eor r13,r0 eor r2,r10 eor r3,r11 eor r4,r12 eor r5,r13 eor r6,r2 eor r7,r3 eor r8,r4 eor r9,r5 com r2 com r3 com r4 com r5 mov r0,r14 and r0,r6 eor r10,r0 mov r0,r15 and r0,r7 eor r11,r0 mov r0,r24 and r0,r8 eor r12,r0 mov r0,r25 and r0,r9 eor r13,r0 mov r0,r1 lsr r3 ror r2 ror r0 lsr r3 ror r2 ror r0 lsr r3 ror r2 ror r0 lsr r3 ror r2 ror r0 or r3,r0 mov r0,r1 lsr r5 ror r4 ror r0 lsr r5 ror r4 ror r0 lsr r5 ror r4 ror r0 lsr r5 ror r4 ror r0 or r5,r0 mov r0,r7 mov r7,r6 mov r6,r0 mov r0,r9 mov r9,r8 mov r8,r0 lsl r10 rol r11 adc r10,r1 lsl r10 rol r11 adc r10,r1 lsl r10 rol r11 adc r10,r1 lsl r10 rol r11 adc r10,r1 lsl r12 rol r13 adc r12,r1 lsl r12 rol r13 adc r12,r1 lsl r12 rol r13 adc r12,r1 lsl r12 rol r13 adc r12,r1 ld r20,X+ ld r21,X+ ld r22,X+ ld r23,X+ eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 ld r20,X+ ld r21,X+ ld r22,X+ ld r23,X+ eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 #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 inc r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif inc r30 #if defined(RAMPZ) elpm r22,Z #elif defined(__AVR_HAVE_LPMX__) lpm r22,Z #elif defined(__AVR_TINY__) ld r22,Z #else lpm mov r22,r0 #endif inc r30 #if defined(RAMPZ) elpm r23,Z #elif defined(__AVR_HAVE_LPMX__) lpm r23,Z #elif defined(__AVR_TINY__) ld r23,Z #else lpm mov r23,r0 #endif inc r30 eor r14,r20 eor r15,r21 eor r24,r22 eor r25,r23 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 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 mov r0,r4 and r0,r8 eor r12,r0 mov r0,r5 and r0,r9 eor r13,r0 movw r20,r6 movw r22,r8 lsr r23 ror r22 ror r21 ror r20 eor r20,r6 eor r21,r7 eor r22,r8 eor r23,r9 andi r20,85 andi r21,85 andi r22,85 andi r23,85 eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 lsl r20 rol r21 rol r22 rol r23 eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 mov r0,r12 mov r12,r10 mov r10,r0 mov r0,r13 mov r13,r11 mov r11,r0 movw r20,r10 movw r22,r12 lsr r23 ror r22 ror r21 ror r20 eor r20,r10 eor r21,r11 andi r20,85 andi r21,85 eor r10,r20 eor r11,r21 mov r22,r1 mov r23,r1 lsl r20 rol r21 rol r22 rol r23 eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 mov r0,r24 mov r24,r14 mov r14,r0 mov r0,r25 mov r25,r15 mov r15,r0 movw r20,r24 lsr r21 ror r20 eor r20,r24 eor r21,r25 andi r20,85 andi r21,85 eor r24,r20 eor r25,r21 lsl r20 rol r21 eor r24,r20 eor r25,r21 ld r20,X+ ld r21,X+ ld r22,X+ ld r23,X+ eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 ld r20,X+ ld r21,X+ ld r22,X+ ld r23,X+ eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 #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 inc r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif inc r30 #if defined(RAMPZ) elpm r22,Z #elif defined(__AVR_HAVE_LPMX__) lpm r22,Z #elif defined(__AVR_TINY__) ld r22,Z #else lpm mov r22,r0 #endif inc r30 #if defined(RAMPZ) elpm r23,Z #elif defined(__AVR_HAVE_LPMX__) lpm r23,Z #elif defined(__AVR_TINY__) ld r23,Z #else lpm mov r23,r0 #endif inc r30 eor r2,r20 eor r3,r21 eor r4,r22 eor r5,r23 mov r0,r14 and r0,r10 eor r6,r0 mov r0,r15 and r0,r11 eor r7,r0 mov r0,r24 and r0,r12 eor r8,r0 mov r0,r25 and r0,r13 eor r9,r0 mov r0,r6 and r0,r2 eor r14,r0 mov r0,r7 and r0,r3 eor r15,r0 mov r0,r8 and r0,r4 eor r24,r0 mov r0,r9 and r0,r5 eor r25,r0 mov r0,r14 or r0,r6 eor r10,r0 mov r0,r15 or r0,r7 eor r11,r0 mov r0,r24 or r0,r8 eor r12,r0 mov r0,r25 or r0,r9 eor r13,r0 eor r2,r10 eor r3,r11 eor r4,r12 eor r5,r13 eor r6,r2 eor r7,r3 eor r8,r4 eor r9,r5 com r2 com r3 com r4 com r5 mov r0,r14 and r0,r6 eor r10,r0 mov r0,r15 and r0,r7 eor r11,r0 mov r0,r24 and r0,r8 eor r12,r0 mov r0,r25 and r0,r9 eor r13,r0 lsl r2 adc r2,r1 lsl r2 adc r2,r1 lsl r3 adc r3,r1 lsl r3 adc r3,r1 lsl r4 adc r4,r1 lsl r4 adc r4,r1 lsl r5 adc r5,r1 lsl r5 adc r5,r1 swap r6 swap r7 swap r8 swap r9 mov r0,r1 lsr r10 ror r0 lsr r10 ror r0 or r10,r0 mov r0,r1 lsr r11 ror r0 lsr r11 ror r0 or r11,r0 mov r0,r1 lsr r12 ror r0 lsr r12 ror r0 or r12,r0 mov r0,r1 lsr r13 ror r0 lsr r13 ror r0 or r13,r0 ld r20,X+ ld r21,X+ ld r22,X+ ld r23,X+ eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 ld r20,X+ ld r21,X+ ld r22,X+ ld r23,X+ eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 #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 inc r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif inc r30 #if defined(RAMPZ) elpm r22,Z #elif defined(__AVR_HAVE_LPMX__) lpm r22,Z #elif defined(__AVR_TINY__) ld r22,Z #else lpm mov r22,r0 #endif inc r30 #if defined(RAMPZ) elpm r23,Z #elif defined(__AVR_HAVE_LPMX__) lpm r23,Z #elif defined(__AVR_TINY__) ld r23,Z #else lpm mov r23,r0 #endif inc r30 eor r14,r20 eor r15,r21 eor r24,r22 eor r25,r23 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 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 mov r0,r4 and r0,r8 eor r12,r0 mov r0,r5 and r0,r9 eor r13,r0 mov r0,r8 mov r8,r6 mov r6,r0 mov r0,r9 mov r9,r7 mov r7,r0 mov r0,r10 mov r10,r11 mov r11,r12 mov r12,r13 mov r13,r0 mov r0,r25 mov r25,r24 mov r24,r15 mov r15,r14 mov r14,r0 ld r20,X+ ld r21,X+ ld r22,X+ ld r23,X+ eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 ld r20,X+ ld r21,X+ ld r22,X+ ld r23,X+ eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 #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 inc r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif inc r30 #if defined(RAMPZ) elpm r22,Z #elif defined(__AVR_HAVE_LPMX__) lpm r22,Z #elif defined(__AVR_TINY__) ld r22,Z #else lpm mov r22,r0 #endif inc r30 #if defined(RAMPZ) elpm r23,Z #elif defined(__AVR_HAVE_LPMX__) lpm r23,Z #elif defined(__AVR_TINY__) ld r23,Z #else lpm mov r23,r0 #endif inc r30 eor r2,r20 eor r3,r21 eor r4,r22 eor r5,r23 eor r2,r14 eor r3,r15 eor r4,r24 eor r5,r25 eor r14,r2 eor r15,r3 eor r24,r4 eor r25,r5 eor r2,r14 eor r3,r15 eor r4,r24 eor r5,r25 ret 1049: #if defined(RAMPZ) pop r0 out _SFR_IO_ADDR(RAMPZ),r0 #endif ldd r26,Y+1 ldd r27,Y+2 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 pop r0 pop r0 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 .L__stack_usage = 20 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 movw r26,r30 subi r26,192 sbci r27,254 ldi r30,lo8(table_0) ldi r31,hi8(table_0) #if defined(RAMPZ) ldi r19,hh8(table_0) in r0,_SFR_IO_ADDR(RAMPZ) push r0 out _SFR_IO_ADDR(RAMPZ),r19 #endif ldi r30,160 rcall 314f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 314f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 314f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 314f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 314f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 314f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 314f eor r2,r18 eor r3,r18 eor r4,r18 eor r5,r18 rcall 314f rjmp 1052f 314: eor r2,r14 eor r3,r15 eor r4,r24 eor r5,r25 eor r14,r2 eor r15,r3 eor r24,r4 eor r25,r5 eor r2,r14 eor r3,r15 eor r4,r24 eor r5,r25 dec r30 #if defined(RAMPZ) elpm r23,Z #elif defined(__AVR_HAVE_LPMX__) lpm r23,Z #elif defined(__AVR_TINY__) ld r23,Z #else lpm mov r23,r0 #endif dec r30 #if defined(RAMPZ) elpm r22,Z #elif defined(__AVR_HAVE_LPMX__) lpm r22,Z #elif defined(__AVR_TINY__) ld r22,Z #else lpm mov r22,r0 #endif dec r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif dec r30 #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 r2,r20 eor r3,r21 eor r4,r22 eor r5,r23 ld r23,-X ld r22,-X ld r21,-X ld r20,-X eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 ld r23,-X ld r22,-X ld r21,-X ld r20,-X eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 mov r0,r8 mov r8,r6 mov r6,r0 mov r0,r9 mov r9,r7 mov r7,r0 mov r0,r13 mov r13,r12 mov r12,r11 mov r11,r10 mov r10,r0 mov r0,r14 mov r14,r15 mov r15,r24 mov r24,r25 mov r25,r0 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 mov r0,r4 and r0,r8 eor r12,r0 mov r0,r5 and r0,r9 eor r13,r0 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 dec r30 #if defined(RAMPZ) elpm r23,Z #elif defined(__AVR_HAVE_LPMX__) lpm r23,Z #elif defined(__AVR_TINY__) ld r23,Z #else lpm mov r23,r0 #endif dec r30 #if defined(RAMPZ) elpm r22,Z #elif defined(__AVR_HAVE_LPMX__) lpm r22,Z #elif defined(__AVR_TINY__) ld r22,Z #else lpm mov r22,r0 #endif dec r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif dec r30 #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 eor r15,r21 eor r24,r22 eor r25,r23 ld r23,-X ld r22,-X ld r21,-X ld r20,-X eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 ld r23,-X ld r22,-X ld r21,-X ld r20,-X eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 mov r0,r1 lsr r2 ror r0 lsr r2 ror r0 or r2,r0 mov r0,r1 lsr r3 ror r0 lsr r3 ror r0 or r3,r0 mov r0,r1 lsr r4 ror r0 lsr r4 ror r0 or r4,r0 mov r0,r1 lsr r5 ror r0 lsr r5 ror r0 or r5,r0 swap r6 swap r7 swap r8 swap r9 lsl r10 adc r10,r1 lsl r10 adc r10,r1 lsl r11 adc r11,r1 lsl r11 adc r11,r1 lsl r12 adc r12,r1 lsl r12 adc r12,r1 lsl r13 adc r13,r1 lsl r13 adc r13,r1 mov r0,r14 and r0,r6 eor r10,r0 mov r0,r15 and r0,r7 eor r11,r0 mov r0,r24 and r0,r8 eor r12,r0 mov r0,r25 and r0,r9 eor r13,r0 com r2 com r3 com r4 com r5 eor r6,r2 eor r7,r3 eor r8,r4 eor r9,r5 eor r2,r10 eor r3,r11 eor r4,r12 eor r5,r13 mov r0,r14 or r0,r6 eor r10,r0 mov r0,r15 or r0,r7 eor r11,r0 mov r0,r24 or r0,r8 eor r12,r0 mov r0,r25 or r0,r9 eor r13,r0 mov r0,r6 and r0,r2 eor r14,r0 mov r0,r7 and r0,r3 eor r15,r0 mov r0,r8 and r0,r4 eor r24,r0 mov r0,r9 and r0,r5 eor r25,r0 mov r0,r14 and r0,r10 eor r6,r0 mov r0,r15 and r0,r11 eor r7,r0 mov r0,r24 and r0,r12 eor r8,r0 mov r0,r25 and r0,r13 eor r9,r0 dec r30 #if defined(RAMPZ) elpm r23,Z #elif defined(__AVR_HAVE_LPMX__) lpm r23,Z #elif defined(__AVR_TINY__) ld r23,Z #else lpm mov r23,r0 #endif dec r30 #if defined(RAMPZ) elpm r22,Z #elif defined(__AVR_HAVE_LPMX__) lpm r22,Z #elif defined(__AVR_TINY__) ld r22,Z #else lpm mov r22,r0 #endif dec r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif dec r30 #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 r2,r20 eor r3,r21 eor r4,r22 eor r5,r23 ld r23,-X ld r22,-X ld r21,-X ld r20,-X eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 ld r23,-X ld r22,-X ld r21,-X ld r20,-X eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 movw r20,r6 movw r22,r8 lsr r23 ror r22 ror r21 ror r20 eor r20,r6 eor r21,r7 eor r22,r8 eor r23,r9 andi r20,85 andi r21,85 andi r22,85 andi r23,85 eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 lsl r20 rol r21 rol r22 rol r23 eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 movw r20,r10 movw r22,r12 lsr r23 ror r22 ror r21 ror r20 eor r20,r10 eor r21,r11 andi r20,85 andi r21,85 eor r10,r20 eor r11,r21 mov r22,r1 mov r23,r1 lsl r20 rol r21 rol r22 rol r23 eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 mov r0,r12 mov r12,r10 mov r10,r0 mov r0,r13 mov r13,r11 mov r11,r0 movw r20,r24 lsr r21 ror r20 eor r20,r24 eor r21,r25 andi r20,85 andi r21,85 eor r24,r20 eor r25,r21 lsl r20 rol r21 eor r24,r20 eor r25,r21 mov r0,r24 mov r24,r14 mov r14,r0 mov r0,r25 mov r25,r15 mov r15,r0 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 mov r0,r4 and r0,r8 eor r12,r0 mov r0,r5 and r0,r9 eor r13,r0 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 dec r30 #if defined(RAMPZ) elpm r23,Z #elif defined(__AVR_HAVE_LPMX__) lpm r23,Z #elif defined(__AVR_TINY__) ld r23,Z #else lpm mov r23,r0 #endif dec r30 #if defined(RAMPZ) elpm r22,Z #elif defined(__AVR_HAVE_LPMX__) lpm r22,Z #elif defined(__AVR_TINY__) ld r22,Z #else lpm mov r22,r0 #endif dec r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif dec r30 #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 eor r15,r21 eor r24,r22 eor r25,r23 ld r23,-X ld r22,-X ld r21,-X ld r20,-X eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 ld r23,-X ld r22,-X ld r21,-X ld r20,-X eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 lsl r2 rol r3 adc r2,r1 lsl r2 rol r3 adc r2,r1 lsl r2 rol r3 adc r2,r1 lsl r2 rol r3 adc r2,r1 lsl r4 rol r5 adc r4,r1 lsl r4 rol r5 adc r4,r1 lsl r4 rol r5 adc r4,r1 lsl r4 rol r5 adc r4,r1 mov r0,r7 mov r7,r6 mov r6,r0 mov r0,r9 mov r9,r8 mov r8,r0 mov r0,r1 lsr r11 ror r10 ror r0 lsr r11 ror r10 ror r0 lsr r11 ror r10 ror r0 lsr r11 ror r10 ror r0 or r11,r0 mov r0,r1 lsr r13 ror r12 ror r0 lsr r13 ror r12 ror r0 lsr r13 ror r12 ror r0 lsr r13 ror r12 ror r0 or r13,r0 mov r0,r14 and r0,r6 eor r10,r0 mov r0,r15 and r0,r7 eor r11,r0 mov r0,r24 and r0,r8 eor r12,r0 mov r0,r25 and r0,r9 eor r13,r0 com r2 com r3 com r4 com r5 eor r6,r2 eor r7,r3 eor r8,r4 eor r9,r5 eor r2,r10 eor r3,r11 eor r4,r12 eor r5,r13 mov r0,r14 or r0,r6 eor r10,r0 mov r0,r15 or r0,r7 eor r11,r0 mov r0,r24 or r0,r8 eor r12,r0 mov r0,r25 or r0,r9 eor r13,r0 mov r0,r6 and r0,r2 eor r14,r0 mov r0,r7 and r0,r3 eor r15,r0 mov r0,r8 and r0,r4 eor r24,r0 mov r0,r9 and r0,r5 eor r25,r0 mov r0,r14 and r0,r10 eor r6,r0 mov r0,r15 and r0,r11 eor r7,r0 mov r0,r24 and r0,r12 eor r8,r0 mov r0,r25 and r0,r13 eor r9,r0 dec r30 #if defined(RAMPZ) elpm r23,Z #elif defined(__AVR_HAVE_LPMX__) lpm r23,Z #elif defined(__AVR_TINY__) ld r23,Z #else lpm mov r23,r0 #endif dec r30 #if defined(RAMPZ) elpm r22,Z #elif defined(__AVR_HAVE_LPMX__) lpm r22,Z #elif defined(__AVR_TINY__) ld r22,Z #else lpm mov r22,r0 #endif dec r30 #if defined(RAMPZ) elpm r21,Z #elif defined(__AVR_HAVE_LPMX__) lpm r21,Z #elif defined(__AVR_TINY__) ld r21,Z #else lpm mov r21,r0 #endif dec r30 #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 r2,r20 eor r3,r21 eor r4,r22 eor r5,r23 ld r23,-X ld r22,-X ld r21,-X ld r20,-X eor r10,r20 eor r11,r21 eor r12,r22 eor r13,r23 ld r23,-X ld r22,-X ld r21,-X ld r20,-X eor r6,r20 eor r7,r21 eor r8,r22 eor r9,r23 movw r20,r6 movw r22,r8 lsl r20 rol r21 rol r22 rol r23 lsl r20 rol r21 rol r22 rol r23 andi r20,204 andi r21,204 andi r22,204 andi r23,204 lsr r9 ror r8 ror r7 ror r6 lsr r9 ror r8 ror r7 ror r6 ldi r19,51 and r6,r19 and r7,r19 and r8,r19 and r9,r19 or r6,r20 or r7,r21 or r8,r22 or r9,r23 movw r20,r10 movw r22,r12 lsl r20 rol r21 rol r22 rol r23 lsl r20 rol r21 rol r22 rol r23 lsl r20 rol r21 rol r22 rol r23 andi r20,136 andi r21,136 andi r22,136 andi r23,136 lsr r13 ror r12 ror r11 ror r10 ldi r17,119 and r10,r17 and r11,r17 and r12,r17 and r13,r17 or r10,r20 or r11,r21 or r12,r22 or r13,r23 movw r20,r14 movw r22,r24 lsl r20 rol r21 rol r22 rol r23 andi r20,238 andi r21,238 andi r22,238 andi r23,238 lsr r25 ror r24 ror r15 ror r14 lsr r25 ror r24 ror r15 ror r14 lsr r25 ror r24 ror r15 ror r14 ldi r16,17 and r14,r16 and r15,r16 andi r24,17 andi r25,17 or r14,r20 or r15,r21 or r24,r22 or r25,r23 mov r0,r2 and r0,r6 eor r10,r0 mov r0,r3 and r0,r7 eor r11,r0 mov r0,r4 and r0,r8 eor r12,r0 mov r0,r5 and r0,r9 eor r13,r0 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 ret 1052: #if defined(RAMPZ) pop r0 out _SFR_IO_ADDR(RAMPZ),r0 #endif ldd r26,Y+1 ldd r27,Y+2 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 pop r0 pop r0 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 #endif