Source file: /~heha/enas/Convac-Ätzer/AtmelDFU.zip/mega32u4dfu.S

/***** Tabweite: 8
Disassemblierung des Atmel-Urladers für ATmega32U4,
der ab Werk in diese Mikrocontroller ab Byteadresse 0x7000 geflasht ist
und exorbitante 4 KByte groß ist. Binärgleichheit wurde sichergestellt.

Vergleichsdatei „b.bin“ erzeugen:
avr-objcopy -I ihex -O binary --gap-fill 0xff ATMega32U4-usbdevice_dfu-1_0_0.hex b.bin

Assemblieren dieser Datei zu Binärbild „a.bin“:
avr-gcc -mmcu=m32u4 mega32u4dfu.S -Wl,--section-start=.text=0x7000 -nostartfiles
avr-objcopy -O binary a.out a.bin

a.bin und b.bin müssen gleich sein.

Es konnte keine Stelle ausfindig gemacht werden, wo der Urlader das Pin HWB am PortE einliest.
Also macht das wohl die Hardware. Auch Reset-Ursachen in MCUSR werden nicht ausgewertet.

Noch nicht komplett disassembliert. Wurde offenbar mit IAR-C erstellt.
heha, 210217
*****/
#define __SFR_OFFSET 0
#include <avr/io.h>

	jmp	reset_vect

	.org	0x0028,0xFF	// Allgemeiner USB-Interrupt (Auf wessen Mist das wohl gewachsen ist?!)
	jmp	usb_vect

	.org	0x002f,0xFF	// Seltsamerweise auf ungeraden Adressen!!
//Device-Deskriptor
L702F:	.byte	0x12,0x01,0x00,0x02,0xFF,0x01,0x00,0x20
	.word	0x03EB,0x2FF4,0		// PID + VID: Atmel DFU
	.byte	0x01,0x02,0x03,0x01	// String-Indizes
//Config-Deskriptor
L7041:	.byte	0x09,0x02
	.word	0x0012
	.byte	0x01,0x01
	.byte	0x00,0x80
	.byte	50
	.byte	0x09,0x04,0,0,0,0,0,0,0	//Interface-Deskriptor
//String-Deskriptoren
L7053:	.word	0x030C,'A','T','M','E','L'
L705F:	.word	0x0316,'A','T','m','3','2','U','4','D','F','U'
L7075:	.word	0x030C,'1','.','0','.','0'
L7081:	.word	0x0304,0x0409		// english-US
L7085:	// RAM-Initialisierblöcke (oder wie iar-cc die Hosen mit der Kneifzange anzieht)
	.word	0x0116,0x010C,0		// section(".bss")
	.word	0x000C,0x0100,L7F6C	// section(".data")
L7091:

	.org	0x0092,0xFF
eeread_nowait:
	out	EEARH, r17
	out	EEARL, r16
	sbi	EECR, 0
	in	r16, EEDR
	ret

1:	ldi	r16, 1
	ret
eewrite:
0:	sbic	EECR, 1
	 rjmp	0b
	out	EEARH, r17
	out	EEARL, r16
	out	EEDR, r18
	sbi	EECR, 2
	sbi	EECR, 1
	rjmp	1b
eeread:
0:	sbic	EECR, 1
	 rjmp	0b
	jmp	eeread_nowait
L70B8:
	movw	ZL, r16
	lpm	r16, Z
	ret
L70BE:
	movw	ZL, r16
	lpm	r19, Z
	adiw	ZL, 1
	lpm	r18, Z
	movw	r16, r18
	ret
L70CA:
/*70ca:	00 91 61 00*/	lds	r16, CLKPR
/*70ce:	00 93 0c 01*/	sts	0x010C, r16	// retten
/*70d2:	00 e8*/		ldi	r16, 0x80
/*70d4:	00 93 61 00*/	sts	CLKPR, r16
/*70d8:	01 e0*/		ldi	r16, 0x01	// Taktteiler ÷2
/*70da:	00 93 61 00*/	sts	CLKPR, r16
/*70de:	05 bf*/		out	MCUCR, r16
/*70e0:	02 e0*/		ldi	r16, 0x02	// Interruptvektoren in Urlader-Bereich
/*70e2:	05 bf*/		out	MCUCR, r16
/*70e4:	0c 94 86 38*/	jmp	L710C

L70E8:		// Watchdog abschalten, USB-Spannungsregler aktivieren
/*70e8:	00 91 d7 00*/	lds	r16, UHWCON
/*70ec:	01 60*/		ori	r16, 0x01
/*70ee:	00 93 d7 00*/	sts	UHWCON, r16
/*70f2:	a8 95*/		wdr
/*70f4:	07 ef*/		ldi	r16, ~8
/*70f6:	04 bf*/		out	MCUSR, r16	// Uh, lassen sich Bits setzen oder nicht? Datenblattwidrig! Jedenfalls Watchdog-Bit rücksetzen.
/*70f8:	00 91 60 00*/	lds	r16, WDTCSR
/*70fc:	00 61*/		ori	r16, 0x10
/*70fe:	00 93 60 00*/	sts	WDTCSR, r16
/*7102:	00 e0*/		ldi	r16, 0x00
/*7104:	00 93 60 00*/	sts	WDTCSR, r16
/*7108:	01 e0*/		ldi	r16, 0x01	// stets true liefern
/*710a:	08 95*/		ret
L710C:
/*710c:	0e 94 aa 3d*/	call	L7B54
/*7110:	0e 94 b5 3d*/0:	call	L7B6A	//  0x7b6a
/*7114:	fd cf*/		rjmp	0b
L7116:
/*7116:	0c d0*/		rcall	L7130
/*7118:	0f 77*/		andi	r16, 0x7F	// 127
/*711a:	08 d0*/		rcall	L712C
/*711c:	00 68*/		ori	r16, 0x80	// 128
/*711e:	06 d0*/		rcall	L712C
/*7120:	00 61*/		ori	r16, 0x10	// 16
/*7122:	04 d0*/		rcall	L712C
/*7124:	01 60*/		ori	r16, 0x01	// 1
/*7126:	28 d0*/		rcall	L7178
/*7128:	78 94*/		sei
/*712a:	08 95*/		ret
L712C:
/*712c:	00 93 d8 00*/	sts	USBCON, r16
L7130:
/*7130:	00 91 d8 00*/	lds	r16, USBCON
/*7134:	08 95*/		ret
L7136:
/*7136:	fc df*/		rcall	L7130
/*7138:	00 62*/		ori	r16, 0x20	// 32
/*713a:	1e d0*/		rcall	L7178
/*713c:	4c d0*/		rcall	L71D6
/*713e:	09 b5*/	0:	in	r16, PLLCSR	// 41
/*7140:	00 ff*/		sbrs	r16, 0
/*7142:	fd cf*/		 rjmp	0b
/*7144:	f5 df*/		rcall	L7130
/*7146:	0f 7d*/		andi	r16, 0xDF	// 223
/*7148:	17 d0*/		rcall	L7178
/*714a:	00 91 e0 00*/	lds	r16, UDCON
/*714e:	0e 7f*/		andi	r16, 0xFE	// 254
/*7150:	00 93 e0 00*/	sts	UDCON, r16
/*7154:	00 91 e0 00*/	lds	r16, UDCON
/*7158:	07 7f*/		andi	r16, 0xF7	// 247
/*715a:	00 93 e0 00*/	sts	UDCON, r16
/*715e:	00 91 e2 00*/	lds	r16, UDIEN
/*7162:	01 60*/		ori	r16, 0x01	// 1
/*7164:	00 93 e2 00*/	sts	UDIEN, r16
/*7168:	00 91 e2 00*/	lds	r16, UDIEN
/*716c:	08 60*/		ori	r16, 0x08	// 8
/*716e:	00 93 e2 00*/	sts	UDIEN, r16
/*7172:	78 94*/		sei
/*7174:	0c 94 74 3b*/	jmp	0x76e8	//  0x76e8
L7178:
/*7178:	00 93 d8 00*/	sts	USBCON, r16
/*717c:	08 95*/		ret
L717E:
/*717e:	00 91 0d 01*/	lds	r16, 0x010D
/*7182:	00 23*/		and	r16, r16
/*7184:	59 f4*/		brne	7f
/*7186:	00 91 d9 00*/	lds	r16, USBSTA
/*718a:	00 ff*/		sbrs	r16, 0
/*718c:	07 c0*/		 rjmp	7f
/*718e:	d0 df*/		rcall	L7130
/*7190:	00 68*/		ori	r16, 0x80	// 128
/*7192:	f2 df*/		rcall	L7178
/*7194:	01 e0*/		ldi	r16, 0x01	// 1
/*7196:	00 93 0d 01*/	sts	0x010D, r16
/*719a:	cd df*/		rcall	L7136
/*719c:	e0 e2*/	7:	ldi	ZL, 0x20	// 32
/*719e:	f2 e0*/		ldi	ZH, 0x02	// 2
/*71a0:	00 81*/		ld	r16, Z
/*71a2:	01 81*/		ldd	r16, Z+1	// 0x01
/*71a4:	00 ff*/		sbrs	r16, 0
/*71a6:	0d c0*/		 rjmp	8f
/*71a8:	00 81*/		ld	r16, Z
/*71aa:	11 81*/		ldd	r17, Z+1	// 0x01
/*71ac:	1e 7f*/		andi	r17, 0xFE	// 254
/*71ae:	11 83*/		std	Z+1, r17	// 0x01
/*71b0:	00 83*/		st	Z, r16
/*71b2:	01 e0*/		ldi	r16, 0x01	// 1
/*71b4:	00 93 ea 00*/	sts	UERST, r16
/*71b8:	00 e0*/		ldi	r16, 0x00	// 0
/*71ba:	00 93 ea 00*/	sts	UERST, r16
/*71be:	00 93 1e 02*/	sts	0x021E, r16
/*71c2:	00 e0*/	8:	ldi	r16, 0x00	// 0
/*71c4:	00 93 e9 00*/	sts	UENUM, r16
/*71c8:	00 91 e8 00*/	lds	r16, UEINTX
/*71cc:	03 ff*/		sbrs	r16, 3
/*71ce:	02 c0*/		 rjmp	9f
/*71d0:	0e 94 f2 3b*/	call	0x77e4	//  0x77e4
/*71d4:	08 95*/	9:	ret
L71D6:
/*71d6:	a8 95*/		wdr
/*71d8:	39 d0*/		rcall	L724C
/*71da:	00 e4*/		ldi	r16, 0x40	// 64
/*71dc:	00 93 60 00*/	sts	WDTCSR, r16
/*71e0:	00 e0*/		ldi	r16, 0x00	// 0
/*71e2:	00 93 81 00*/	sts	TCCR1B, r16
/*71e6:	00 93 80 00*/	sts	TCCR1A, r16
/*71ea:	10 e0*/		ldi	r17, 0x00	// 0
/*71ec:	00 93 85 00*/	sts	TCNT1H, r16
/*71f0:	00 93 84 00*/	sts	TCNT1L, r16
/*71f4:	01 e0*/		ldi	r16, 0x01	// 1
/*71f6:	06 bb*/		out	0x16, r16	// 22
/*71f8:	00 91 81 00*/	lds	r16, TCCR1B
/*71fc:	03 60*/		ori	r16, 0x03	// 3
/*71fe:	00 93 81 00*/	sts	TCCR1B, r16
/*7202:	00 91 60 00*/0:	lds	r16, WDTCSR
/*7206:	07 ff*/		sbrs	r16, 7
/*7208:	fc cf*/		 rjmp	0b
/*720a:	00 e8*/		ldi	r16, 0x80	// 128
/*720c:	00 93 60 00*/	sts	WDTCSR, r16
/*7210:	10 93 81 00*/	sts	TCCR1B, r17
/*7214:	a8 95*/		wdr
/*7216:	07 ef*/		ldi	r16, ~8
/*7218:	04 bf*/		out	MCUSR, r16
/*721a:	18 d0*/		rcall	L724C
/*721c:	10 93 60 00*/	sts	WDTCSR, r17
/*7220:	20 91 84 00*/	lds	r18, TCNT1L
/*7224:	30 91 85 00*/	lds	r19, TCNT1H
/*7228:	10 93 81 00*/	sts	TCCR1B, r17
/*722c:	10 93 80 00*/	sts	TCCR1A, r17
/*7230:	10 93 85 00*/	sts	TCNT1H, r17
/*7234:	10 93 84 00*/	sts	TCNT1L, r17
/*7238:	01 e0*/		ldi	r16, 0x01	// 1
/*723a:	06 bb*/		out	0x16, r16	// 22
/*723c:	2d 3d*/		cpi	r18, 0xDD	// 221
/*723e:	35 40*/		sbci	r19, 0x05	// 5
/*7240:	10 f0*/		brcs	.+4      	//  0x7246
/*7242:	02 e1*/		ldi	r16, 0x12	// 18
/*7244:	01 c0*/		rjmp	.+2      	//  0x7248
/*7246:	02 e0*/		ldi	r16, 0x02	// 2
/*7248:	09 bd*/		out	PLLCSR, r16	// 41
/*724a:	08 95*/		ret
L724C:
/*724c:	00 91 60 00*/	lds	r16, WDTCSR
/*7250:	00 61*/		ori	r16, 0x10	// 16
/*7252:	00 93 60 00*/	sts	WDTCSR, r16
/*7256:	08 95*/		ret
L7258:
/*7258:	0e 94 ad 3e*/	call	L7D5A
/*725c:	23 97*/		sbiw	YL, 0x03	// 3
/*725e:	41 d1*/		rcall	L74E2
/*7260:	00 e0*/		ldi	r16, 0x00	// 0
/*7262:	00 93 09 01*/	sts	0x0109, r16
/*7266:	b5 d1*/		rcall	L75D2
/*7268:	04 81*/		ldd	r16, Z+4	// 0x04
/*726a:	15 81*/		ldd	r17, Z+5	// 0x05
/*726c:	01 2b*/		or	r16, r17
/*726e:	51 f4*/		brne	.+20     	//  0x7284
/*7270:	37 d1*/		rcall	.+622    	//  0x74e0
/*7272:	00 91 07 01*/	lds	r16, 0x0107
/*7276:	00 23*/		and	r16, r16
/*7278:	09 f4*/		brne	.+2      	//  0x727c
/*727a:	b9 c0*/		rjmp	.+370    	//  0x73ee
/*727c:	00 e0*/		ldi	r16, 0x00	// 0
/*727e:	00 93 07 01*/	sts	0x0107, r16
/*7282:	b5 c0*/		rjmp	.+362    	//  0x73ee
/*7284:	58 d1*/		rcall	L7536
/*7286:	02 ff*/		sbrs	r16, 2
/*7288:	fd cf*/		 rjmp	.-6      	//  0x7284
/*728a:	37 d1*/		rcall	L74FA
/*728c:	06 83*/		std	Z+6, r16	// 0x06
/*728e:	35 d1*/		rcall	L74FA
/*7290:	00 93 0f 01*/	sts	0x010F, r16
/*7294:	32 d1*/		rcall	L74FA
/*7296:	00 93 10 01*/	sts	0x0110, r16
/*729a:	2f d1*/		rcall	L74FA
/*729c:	00 93 11 01*/	sts	0x0111, r16
/*72a0:	2c d1*/		rcall	L74FA
/*72a2:	00 93 12 01*/	sts	0x0112, r16
/*72a6:	29 d1*/		rcall	L74FA
/*72a8:	00 93 13 01*/	sts	0x0113, r16
/*72ac:	02 85*/		ldd	r16, Z+10	// 0x0a
/*72ae:	20 91 13 01*/	lds	r18, 0x0113
/*72b2:	30 91 12 01*/	lds	r19, 0x0112
/*72b6:	40 91 11 01*/	lds	r20, 0x0111
/*72ba:	50 91 10 01*/	lds	r21, 0x0110
/*72be:	16 81*/		ldd	r17, Z+6	// 0x06
/*72c0:	1a 95*/		dec	r17
/*72c2:	41 f0*/		breq	.+16     	//  0x72d4
/*72c4:	12 50*/		subi	r17, 0x02	// 2
/*72c6:	a9 f0*/		breq	.+42     	//  0x72f2
/*72c8:	1a 95*/		dec	r17
/*72ca:	99 f1*/		breq	.+102    	//  0x7332
/*72cc:	1a 95*/		dec	r17
/*72ce:	09 f4*/		brne	.+2      	//  0x72d2
/*72d0:	73 c0*/		rjmp	.+230    	//  0x73b8
/*72d2:	8b c0*/		rjmp	.+278    	//  0x73ea
/*72d4:	10 91 0f 01*/	lds	r17, 0x010F
/*72d8:	11 30*/		cpi	r17, 0x01	// 1
/*72da:	11 f4*/		brne	.+4      	//  0x72e0
/*72dc:	11 e0*/		ldi	r17, 0x01	// 1
/*72de:	01 c0*/		rjmp	.+2      	//  0x72e2
/*72e0:	10 e0*/		ldi	r17, 0x00	// 0
/*72e2:	13 87*/		std	Z+11, r17	// 0x0b
/*72e4:	99 d0*/		rcall	.+306    	//  0x7418
/*72e6:	0c 3f*/		cpi	r16, 0xFC	// 252
/*72e8:	11 f4*/		brne	.+4      	//  0x72ee
/*72ea:	14 d1*/		rcall	.+552    	//  0x7514
/*72ec:	7f c0*/		rjmp	.+254    	//  0x73ec
/*72ee:	77 d1*/		rcall	.+750    	//  0x75de
/*72f0:	7d c0*/		rjmp	.+250    	//  0x73ec
/*72f2:	92 d0*/		rcall	.+292    	//  0x7418
/*72f4:	10 91 0f 01*/	lds	r17, 0x010F
/*72f8:	11 23*/		and	r17, r17
/*72fa:	29 f0*/		breq	.+10     	//  0x7306
/*72fc:	1a 95*/		dec	r17
/*72fe:	49 f0*/		breq	.+18     	//  0x7312
/*7300:	1a 95*/		dec	r17
/*7302:	a9 f0*/		breq	.+42     	//  0x732e
/*7304:	73 c0*/		rjmp	.+230    	//  0x73ec
/*7306:	10 e0*/		ldi	r17, 0x00	// 0
/*7308:	13 87*/		std	Z+11, r17	// 0x0b
/*730a:	0c 3f*/		cpi	r16, 0xFC	// 252
/*730c:	09 f0*/		breq	.+2      	//  0x7310
/*730e:	6e c0*/		rjmp	.+220    	//  0x73ec
/*7310:	ec cf*/		rjmp	.-40     	//  0x72ea
/*7312:	56 d1*/		rcall	.+684    	//  0x75c0
/*7314:	03 c0*/		rjmp	.+6      	//  0x731c
/*7316:	4c d1*/		rcall	L75B0
/*7318:	09 f4*/		brne	.+2      	//  0x731c
/*731a:	68 c0*/		rjmp	.+208    	//  0x73ec
/*731c:	0d 91*/		ld	r16, X+
/*731e:	1c 91*/		ld	r17, X
/*7320:	44 d1*/		rcall	.+648    	//  0x75aa
/*7322:	0f 3f*/		cpi	r16, 0xFF	// 255
/*7324:	c1 f3*/		breq	.-16     	//  0x7316
/*7326:	05 e0*/		ldi	r16, 0x05	// 5
/*7328:	00 93 09 01*/	sts	0x0109, r16
/*732c:	5f c0*/		rjmp	.+190    	//  0x73ec
/*732e:	11 e0*/		ldi	r17, 0x01	// 1
/*7330:	eb cf*/		rjmp	.-42     	//  0x7308
/*7332:	d2 d0*/		rcall	.+420    	//  0x74d8
/*7334:	29 f0*/		breq	.+10     	//  0x7340
/*7336:	02 50*/		subi	r16, 0x02	// 2
/*7338:	e1 f1*/		breq	.+120    	//  0x73b2
/*733a:	0a 95*/		dec	r16
/*733c:	41 f0*/		breq	.+16     	//  0x734e
/*733e:	56 c0*/		rjmp	.+172    	//  0x73ec
/*7340:	fd d0*/		rcall	.+506    	//  0x753c
/*7342:	0e 94 a3 3f*/	call	L7F46
/*7346:	0f ef*/		ldi	r16, 0xFF	// 255
/*7348:	00 93 0a 01*/	sts	0x010A, r16
/*734c:	4f c0*/		rjmp	.+158    	//  0x73ec
/*734e:	55 23*/		and	r21, r21
/*7350:	19 f0*/		breq	.+6      	//  0x7358
/*7352:	5a 95*/		dec	r21
/*7354:	79 f0*/		breq	.+30     	//  0x7374
/*7356:	4a c0*/		rjmp	.+148    	//  0x73ec
/*7358:	4e d0*/		rcall	.+156    	//  0x73f6
/*735a:	0d ef*/		ldi	r16, ~2
/*735c:	04 bf*/		out	MCUSR, r16
/*735e:	74 d0*/		rcall	.+232    	//  0x7448
/*7360:	ea d0*/		rcall	L7536
/*7362:	03 ff*/		sbrs	r16, 3
/*7364:	fd cf*/		 rjmp	.-6      	//  0x7360
/*7366:	67 d0*/		rcall	.+206    	//  0x7436
/*7368:	51 d0*/		rcall	.+162    	//  0x740c
/*736a:	4a d0*/		rcall	.+148    	//  0x7400
/*736c:	08 e0*/		ldi	r16, 0x08	// 8
/*736e:	00 93 60 00*/	sts	WDTCSR, r16
/*7372:	ff cf*/		rjmp	.-2      	//  0x7372
/*7374:	40 d0*/		rcall	.+128    	//  0x73f6
/*7376:	68 d0*/		rcall	.+208    	//  0x7448
/*7378:	de d0*/		rcall	L7536
/*737a:	03 ff*/		sbrs	r16, 3
/*737c:	fd cf*/		 rjmp	.-6      	//  0x7378
/*737e:	5b d0*/		rcall	.+182    	//  0x7436
/*7380:	3f d0*/		rcall	.+126    	//  0x7400
/*7382:	44 d0*/		rcall	.+136    	//  0x740c
/*7384:	0f ef*/		ldi	r16, 0xFF	// 255
/*7386:	1f e0*/		ldi	r17, 0x0F	// 15
/*7388:	04 c0*/		rjmp	.+8      	//  0x7392
/*738a:	09 81*/		ldd	r16, Y+1	// 0x01
/*738c:	1a 81*/		ldd	r17, Y+2	// 0x02
/*738e:	01 50*/		subi	r16, 0x01	// 1
/*7390:	10 40*/		sbci	r17, 0x00	// 0
/*7392:	09 83*/		std	Y+1, r16	// 0x01
/*7394:	1a 83*/		std	Y+2, r17	// 0x02
/*7396:	09 81*/		ldd	r16, Y+1	// 0x01
/*7398:	1a 81*/		ldd	r17, Y+2	// 0x02
/*739a:	01 2b*/		or	r16, r17
/*739c:	b1 f7*/		brne	.-20     	//  0x738a
/*739e:	00 e8*/		ldi	r16, 0x80
/*73a0:	00 93 61 00*/	sts	CLKPR, r16
/*73a4:	00 91 0c 01*/	lds	r16, 0x010C
/*73a8:	00 93 61 00*/	sts	CLKPR, r16	// CLKPR wiederherstellen
/*73ac:	0c 94 00 00*/	jmp	0		// zum Anwendungsprogramm springen

/*73b0:	ff cf*/		rjmp	.-2      	//  0x73b0
/*73b2:	01 e0*/		ldi	r16, 0x01	// 1
/*73b4:	03 87*/		std	Z+11, r16	// 0x0b
/*73b6:	1a c0*/		rjmp	.+52     	//  0x73ec
/*73b8:	8f d0*/		rcall	.+286    	//  0x74d8
/*73ba:	19 f0*/		breq	.+6      	//  0x73c2
/*73bc:	0a 95*/		dec	r16
/*73be:	39 f0*/		breq	.+14     	//  0x73ce
/*73c0:	15 c0*/		rjmp	.+42     	//  0x73ec
/*73c2:	53 50*/		subi	r21, 0x03	// 3
/*73c4:	98 f4*/		brcc	.+38     	//  0x73ec
/*73c6:	ba d0*/		rcall	.+372    	//  0x753c
/*73c8:	02 e0*/		ldi	r16, 0x02	// 2
/*73ca:	00 87*/		std	Z+8, r16	// 0x08
/*73cc:	0f c0*/		rjmp	.+30     	//  0x73ec
/*73ce:	50 53*/		subi	r21, 0x30	// 48
/*73d0:	39 f0*/		breq	.+14     	//  0x73e0
/*73d2:	5a 95*/		dec	r21
/*73d4:	41 f0*/		breq	.+16     	//  0x73e6
/*73d6:	5f 52*/		subi	r21, 0x2F	// 47
/*73d8:	b1 f3*/		breq	.-20     	//  0x73c6
/*73da:	5a 95*/		dec	r21
/*73dc:	a1 f3*/		breq	.-24     	//  0x73c6
/*73de:	06 c0*/		rjmp	.+12     	//  0x73ec
/*73e0:	02 e0*/		ldi	r16, 0x02	// 2
/*73e2:	08 83*/		st	Y, r16
/*73e4:	f0 cf*/		rjmp	.-32     	//  0x73c6
/*73e6:	01 e0*/		ldi	r16, 0x01	// 1
/*73e8:	fc cf*/		rjmp	.-8      	//  0x73e2
/*73ea:	a8 d0*/		rcall	.+336    	//  0x753c
/*73ec:	79 d0*/		rcall	.+242    	//  0x74e0
/*73ee:	23 96*/		adiw	YL, 0x03	// 3
/*73f0:	e4 e0*/		ldi	ZL, 0x04	// 4
/*73f2:	0c 94 ba 3e*/	jmp	0x7d74	//  0x7d74

/*73f6:	01 e0*/		ldi	r16, 0x01
/*73f8:	05 bf*/		out	MCUCR, r16
/*73fa:	00 e0*/		ldi	r16, 0x00	// Interruptvektoren zum Anwendungsprogramm
/*73fc:	05 bf*/		out	MCUCR, r16
/*73fe:	08 95*/		ret

/*7400:	00 91 d8 00*/	lds	r16, USBCON
/*7404:	0f 77*/		andi	r16, 0x7F	// 127
/*7406:	00 93 d8 00*/	sts	USBCON, r16
/*740a:	08 95*/		ret
/*740c:	09 b5*/		in	r16, PLLCSR	// 41
/*740e:	0d 7f*/		andi	r16, 0xFD	// 253
/*7410:	09 bd*/		out	PLLCSR, r16	// 41
/*7412:	00 e0*/		ldi	r16, 0x00	// 0
/*7414:	09 bd*/		out	PLLCSR, r16	// 41
/*7416:	08 95*/		ret
/*7418:	51 83*/		std	Z+1, r21	// 0x01
/*741a:	40 83*/		st	Z, r20
/*741c:	33 83*/		std	Z+3, r19	// 0x03
/*741e:	22 83*/		std	Z+2, r18	// 0x02
/*7420:	10 91 e8 00*/	lds	r17, UEINTX
/*7424:	1b 7f*/		andi	r17, 0xFB	// 251
/*7426:	10 93 e8 00*/	sts	UEINTX, r17
/*742a:	10 91 e8 00*/	lds	r17, UEINTX
/*742e:	1f 77*/		andi	r17, 0x7F	// 127
/*7430:	10 93 e8 00*/	sts	UEINTX, r17
/*7434:	08 95*/		ret
/*7436:	5d d0*/		rcall	.+186    	//  0x74f2
/*7438:	53 d0*/		rcall	.+166    	//  0x74e0
/*743a:	f8 94*/		cli
/*743c:	00 91 e0 00*/	lds	r16, UDCON
/*7440:	01 60*/		ori	r16, 0x01	// 1
/*7442:	00 93 e0 00*/	sts	UDCON, r16
/*7446:	08 95*/		ret
/*7448:	79 d0*/		rcall	.+242    	//  0x753c
/*744a:	4a c0*/		rjmp	.+148    	//  0x74e0
L744C:
/*744c:	21 97*/		sbiw	YL, 0x01	// 1
/*744e:	49 d0*/		rcall	L74E2
/*7450:	00 91 06 01*/	lds	r16, 0x0106
/*7454:	03 50*/		subi	r16, 0x03	// 3
/*7456:	19 f0*/		breq	.+6      	//  0x745e
/*7458:	02 50*/		subi	r16, 0x02	// 2
/*745a:	b9 f0*/		breq	.+46     	//  0x748a
/*745c:	0b c0*/		rjmp	.+22     	//  0x7474
/*745e:	3c d0*/		rcall	.+120    	//  0x74d8
/*7460:	21 f0*/		breq	.+8      	//  0x746a
/*7462:	0a 95*/		dec	r16
/*7464:	59 f0*/		breq	.+22     	//  0x747c
/*7466:	0a 95*/		dec	r16
/*7468:	29 f4*/		brne	.+10     	//  0x7474
/*746a:	00 91 0a 01*/	lds	r16, 0x010A
/*746e:	0c 3f*/		cpi	r16, 0xFC	// 252
/*7470:	19 f4*/		brne	.+6      	//  0x7478
/*7472:	50 d0*/		rcall	.+160    	//  0x7514
/*7474:	21 96*/		adiw	YL, 0x01	// 1
/*7476:	08 95*/		ret
/*7478:	67 d0*/		rcall	.+206    	//  0x7548
/*747a:	fc cf*/		rjmp	.-8      	//  0x7474
/*747c:	00 91 01 01*/	lds	r16, 0x0101
/*7480:	00 93 f1 00*/	sts	UEDATX, r16
/*7484:	00 91 00 01*/	lds	r16, 0x0100
/*7488:	0a c0*/		rjmp	.+20     	//  0x749e
/*748a:	10 91 10 01*/	lds	r17, 0x0110
/*748e:	24 d0*/		rcall	.+72     	//  0x74d8
/*7490:	19 f0*/		breq	.+6      	//  0x7498
/*7492:	0a 95*/		dec	r16
/*7494:	49 f0*/		breq	.+18     	//  0x74a8
/*7496:	ee cf*/		rjmp	.-36     	//  0x7474
/*7498:	13 50*/		subi	r17, 0x03	// 3
/*749a:	18 f4*/		brcc	.+6      	//  0x74a2
/*749c:	00 e0*/		ldi	r16, 0x00	// 0
/*749e:	00 93 f1 00*/	sts	UEDATX, r16
/*74a2:	1e d0*/		rcall	.+60     	//  0x74e0
/*74a4:	44 d0*/		rcall	.+136    	//  0x752e
/*74a6:	e6 cf*/		rjmp	.-52     	//  0x7474
/*74a8:	10 53*/		subi	r17, 0x30	// 48
/*74aa:	39 f0*/		breq	.+14     	//  0x74ba
/*74ac:	1a 95*/		dec	r17
/*74ae:	39 f0*/		breq	.+14     	//  0x74be
/*74b0:	1f 52*/		subi	r17, 0x2F	// 47
/*74b2:	41 f0*/		breq	.+16     	//  0x74c4
/*74b4:	1a 95*/		dec	r17
/*74b6:	41 f0*/		breq	.+16     	//  0x74c8
/*74b8:	f4 cf*/		rjmp	.-24     	//  0x74a2
/*74ba:	08 e5*/		ldi	r16, 0x58	// 88
/*74bc:	f0 cf*/		rjmp	.-32     	//  0x749e
/*74be:	00 e0*/		ldi	r16, 0x00	// 0
/*74c0:	06 d0*/		rcall	.+12     	//  0x74ce
/*74c2:	ed cf*/		rjmp	.-38     	//  0x749e
/*74c4:	02 e0*/		ldi	r16, 0x02	// 2
/*74c6:	fc cf*/		rjmp	.-8      	//  0x74c0
/*74c8:	04 e0*/		ldi	r16, 0x04	// 4
/*74ca:	01 d0*/		rcall	.+2      	//  0x74ce
/*74cc:	e8 cf*/		rjmp	.-48     	//  0x749e
/*74ce:	10 e0*/		ldi	r17, 0x00	// 0
/*74d0:	20 e0*/		ldi	r18, 0x00	// 0
/*74d2:	30 e0*/		ldi	r19, 0x00	// 0
/*74d4:	0c 94 11 3f*/	jmp	lpm_signature
/*74d8:	00 91 0f 01*/	lds	r16, 0x010F
/*74dc:	00 23*/		and	r16, r16
/*74de:	08 95*/		ret
/*74e0:	21 c0*/		rjmp	L7524
L74E2:
/*74e2:	0b d0*/		rcall	L74FA
/*74e4:	08 d0*/		rcall	L74F6
/*74e6:	07 d0*/		rcall	L74F6
/*74e8:	00 93 04 01*/	sts	0x0104, r16
/*74ec:	06 d0*/		rcall	L74FA
/*74ee:	00 93 05 01*/	sts	0x0105, r16
/*74f2:	21 d0*/		rcall	L7536
/*74f4:	0b c0*/		rjmp	.+22     	//  0x750c
L74F6:
/*74f6:	00 d0*/		rcall	L74F8
L74F8:/*08 83*/		st	Y, r16
L74FA:/*00 91 f1 00*/	lds	r16, UEDATX
/*74fe:	08 95*/		ret
L7500:
/*7500:	00 91 eb 00*/	lds	r16, UECONX
/*7504:	00 62*/		ori	r16, 0x20	// 32
/*7506:	00 93 eb 00*/	sts	UECONX, r16
/*750a:	15 d0*/		rcall	L7536
/*750c:	07 7f*/		andi	r16, 0xF7	// 247
L750E:
/*750e:	00 93 e8 00*/	sts	UEINTX, r16
/*7512:	08 95*/		ret

/*7514:	f5 df*/		rcall	L7500
/*7516:	02 e0*/		ldi	r16, 0x02	// 2
/*7518:	00 93 08 01*/	sts	0x0108, r16
/*751c:	03 e0*/		ldi	r16, 0x03	// 3
/*751e:	00 93 09 01*/	sts	0x0109, r16
/*7522:	08 95*/		ret
L7524:
/*7524:	59 d0*/		rcall	L75D8
/*7526:	07 d0*/		rcall	L7536
/*7528:	00 ff*/		sbrs	r16, 0
/*752a:	fd cf*/		 rjmp	.-6      	//  0x7526
/*752c:	08 95*/		ret
/*752e:	03 d0*/		rcall	L7536
/*7530:	02 ff*/		sbrs	r16, 2
/*7532:	fd cf*/		 rjmp	.-6      	//  0x752e
/*7534:	03 c0*/		rjmp	.+6      	//  0x753c

L7536:
/*7536:	00 91 e8 00*/	lds	r16, UEINTX
/*753a:	08 95*/		ret

/*753c:	fc df*/		rcall	L7536
/*753e:	0b 7f*/		andi	r16, 0xFB	// 251
/*7540:	e6 df*/		rcall	L750E
/*7542:	f9 df*/		rcall	L7536
/*7544:	0f 77*/		andi	r16, 0x7F	// 127
/*7546:	e3 cf*/		rjmp	L750E
/*7548:	0e 94 ac 3e*/	call	0x7d58	//  0x7d58
/*754c:	42 d0*/		rcall	L75D2
/*754e:	38 d0*/		rcall	.+112    	//  0x75c0
/*7550:	06 c0*/		rjmp	.+12     	//  0x755e
/*7552:	2b d0*/		rcall	.+86     	//  0x75aa
/*7554:	00 93 f1 00*/	sts	UEDATX, r16
/*7558:	2b d0*/		rcall	L75B0
/*755a:	59 f4*/		brne	.+22     	//  0x7572
/*755c:	3d d0*/		rcall	L75D8
/*755e:	08 2f*/		mov	r16, r24
/*7560:	09 2b*/		or	r16, r25
/*7562:	a9 f0*/		breq	.+42     	//  0x758e
/*7564:	e8 df*/		rcall	L7536
/*7566:	02 fd*/		sbrc	r16, 2
/*7568:	12 c0*/		 rjmp	.+36     	//  0x758e
/*756a:	e5 df*/		rcall	L7536
/*756c:	00 ff*/		sbrs	r16, 0
/*756e:	fd cf*/		 rjmp	.-6      	//  0x756a
/*7570:	44 24*/		eor	r4, r4
/*7572:	04 2d*/		mov	r16, r4
/*7574:	43 94*/		inc	r4
/*7576:	00 32*/		cpi	r16, 0x20	// 32
/*7578:	89 f3*/		breq	.-30     	//  0x755c
/*757a:	00 91 0b 01*/	lds	r16, 0x010B
/*757e:	00 23*/		and	r16, r16
/*7580:	0d 91*/		ld	r16, X+
/*7582:	1c 91*/		ld	r17, X
/*7584:	31 f3*/		breq	.-52     	//  0x7552
/*7586:	11 97*/		sbiw	r26, 0x01	// 1
/*7588:	0e 94 58 38*/	call	eeread
/*758c:	e3 cf*/		rjmp	.-58     	//  0x7554
/*758e:	d3 df*/		rcall	L7536
/*7590:	00 ff*/		sbrs	r16, 0
/*7592:	fd cf*/		 rjmp	.-6      	//  0x758e
/*7594:	21 d0*/		rcall	L75D8
/*7596:	cf df*/		rcall	L7536
/*7598:	00 ff*/		sbrs	r16, 0
/*759a:	fd cf*/		 rjmp	.-6      	//  0x7596
/*759c:	cc df*/		rcall	L7536
/*759e:	02 ff*/		sbrs	r16, 2
/*75a0:	fd cf*/		 rjmp	.-6      	//  0x759c
/*75a2:	cc df*/		rcall	.-104    	//  0x753c
/*75a4:	e5 e0*/		ldi	ZL, 0x05	// 5
/*75a6:	0c 94 b9 3e*/	jmp	L7D72
/*75aa:	11 97*/		sbiw	r26, 0x01	// 1
/*75ac:	0c 94 5c 38*/	jmp	L70B8
L75B0:
/*75b0:	0d 91*/		ld	r16, X+
/*75b2:	1c 91*/		ld	r17, X
/*75b4:	0f 5f*/		subi	r16, 0xFF	// 255
/*75b6:	1f 4f*/		sbci	r17, 0xFF	// 255
/*75b8:	1c 93*/		st	X, r17
/*75ba:	0e 93*/		st	-X, r16
/*75bc:	01 97*/		sbiw	r24, 0x01	// 1
/*75be:	08 95*/		ret
/*75c0:	82 81*/		ldd	r24, Z+2	// 0x02
/*75c2:	93 81*/		ldd	r25, Z+3	// 0x03
/*75c4:	00 81*/		ld	r16, Z
/*75c6:	11 81*/		ldd	r17, Z+1	// 0x01
/*75c8:	80 1b*/		sub	r24, r16
/*75ca:	91 0b*/		sbc	r25, r17
/*75cc:	01 96*/		adiw	r24, 0x01	// 1
/*75ce:	df 01*/		movw	r26, ZL
/*75d0:	08 95*/		ret
L75D2:
/*75d2:	e0 e0*/		ldi	ZL, 0x00	// 0
/*75d4:	f1 e0*/		ldi	ZH, 0x01	// 1
/*75d6:	08 95*/		ret
L75D8:
/*75d8:	ae df*/		rcall	L7536
/*75da:	0e 7f*/		andi	r16, 0xFE	// 254
/*75dc:	98 cf*/		rjmp	L750E
/*75de:	0e 94 a9 3e*/	call	0x7d52	//  0x7d52
/*75e2:	f7 df*/		rcall	L75D2
/*75e4:	80 81*/		ld	r24, Z
/*75e6:	91 81*/		ldd	r25, Z+1	// 0x01
/*75e8:	a0 81*/		ld	r26, Z
/*75ea:	b1 81*/		ldd	r27, Z+1	// 0x01
/*75ec:	af 71*/		andi	r26, 0x1F	// 31
/*75ee:	04 81*/		ldd	r16, Z+4	// 0x04
/*75f0:	15 81*/		ldd	r17, Z+5	// 0x05
/*75f2:	00 52*/		subi	r16, 0x20	// 32
/*75f4:	10 40*/		sbci	r17, 0x00	// 0
/*75f6:	04 83*/		std	Z+4, r16	// 0x04
/*75f8:	15 83*/		std	Z+5, r17	// 0x05
/*75fa:	0a c0*/		rjmp	.+20     	//  0x7610
L75FC:
/*75fc:	00 91 0b 01*/	lds	r16, 0x010B
/*7600:	00 23*/		and	r16, r16
/*7602:	31 f4*/		brne	.+12     	//  0x7610
/*7604:	a3 01*/		movw	r20, r6
/*7606:	92 01*/		movw	r18, r4
/*7608:	03 e9*/		ldi	r16, 0x93	// 147
/*760a:	11 e0*/		ldi	r17, 0x01	// 1
/*760c:	0e 94 3b 3f*/	call	0x7e76	//  0x7e76
/*7610:	47 d0*/		rcall	.+142    	//  0x76a0
/*7612:	b8 f1*/		brcs	.+110    	//  0x7682
/*7614:	66 24*/		eor	r6, r6
/*7616:	77 24*/		eor	r7, r7
/*7618:	2c 01*/		movw	r4, r24
/*761a:	11 c0*/		rjmp	.+34     	//  0x763e
/*761c:	6e df*/		rcall	L74FA
/*761e:	f3 01*/		movw	ZL, r6
/*7620:	ed 56*/		subi	ZL, 0x6D	// 109
/*7622:	fe 4f*/		sbci	ZH, 0xFE	// 254
/*7624:	00 83*/		st	Z, r16
/*7626:	01 e0*/		ldi	r16, 0x01	// 1
/*7628:	60 0e*/		add	r6, r16
/*762a:	00 e0*/		ldi	r16, 0x00	// 0
/*762c:	70 1e*/		adc	r7, r16
/*762e:	01 96*/		adiw	r24, 0x01	// 1
/*7630:	00 91 f2 00*/	lds	r16, UEBCLX
/*7634:	00 23*/		and	r16, r16
/*7636:	11 f0*/		breq	.+4      	//  0x763c
/*7638:	33 d0*/		rcall	.+102    	//  0x76a0
/*763a:	b8 f4*/		brcc	.+46     	//  0x766a
/*763c:	7f df*/		rcall	.-258    	//  0x753c
/*763e:	30 d0*/		rcall	.+96     	//  0x76a0
/*7640:	e8 f2*/		brcs	L75FC
/*7642:	f3 01*/		movw	ZL, r6
/*7644:	b0 96*/		adiw	ZL, 0x20	// 32
/*7646:	e2 38*/		cpi	ZL, 0x82	// 130
/*7648:	f0 40*/		sbci	ZH, 0x00	// 0
/*764a:	c0 f6*/		brcc	L75FC
/*764c:	74 df*/		rcall	L7536
/*764e:	02 ff*/		sbrs	r16, 2
/*7650:	fd cf*/		 rjmp	.-6      	//  0x764c
/*7652:	00 91 f2 00*/	lds	r16, UEBCLX
/*7656:	bd df*/		rcall	L75D2
/*7658:	24 81*/		ldd	r18, Z+4	// 0x04
/*765a:	35 81*/		ldd	r19, Z+5	// 0x05
/*765c:	20 1b*/		sub	r18, r16
/*765e:	30 40*/		sbci	r19, 0x00	// 0
/*7660:	24 83*/		std	Z+4, r18	// 0x04
/*7662:	35 83*/		std	Z+5, r19	// 0x05
/*7664:	e5 cf*/		rjmp	.-54     	//  0x7630
/*7666:	49 df*/		rcall	L74FA
/*7668:	aa 95*/		dec	r26
/*766a:	aa 23*/		and	r26, r26
/*766c:	e1 f7*/		brne	.-8      	//  0x7666
/*766e:	00 91 0b 01*/	lds	r16, 0x010B
/*7672:	01 30*/		cpi	r16, 0x01	// 1
/*7674:	99 f6*/		brne	.-90     	//  0x761c
/*7676:	20 91 f1 00*/	lds	r18, UEDATX
/*767a:	8c 01*/		movw	r16, r24
/*767c:	0e 94 50 38*/	call	eewrite
/*7680:	d6 cf*/		rjmp	.-84     	//  0x762e
/*7682:	04 81*/		ldd	r16, Z+4	// 0x04
/*7684:	15 81*/		ldd	r17, Z+5	// 0x05
/*7686:	01 2b*/		or	r16, r17
/*7688:	21 f0*/		breq	.+8      	//  0x7692
/*768a:	55 df*/		rcall	L7536
/*768c:	02 ff*/		sbrs	r16, 2
/*768e:	fd cf*/		 rjmp	.-6      	//  0x768a
/*7690:	55 df*/		rcall	.-342    	//  0x753c
/*7692:	a2 df*/		rcall	L75D8
/*7694:	50 df*/		rcall	L7536
/*7696:	00 ff*/		sbrs	r16, 0
/*7698:	fd cf*/		 rjmp	.-6      	//  0x7694
/*769a:	e8 e0*/		ldi	ZL, 0x08	// 8
/*769c:	0c 94 b6 3e*/	jmp	0x7d6c	//  0x7d6c
/*76a0:	e0 e0*/		ldi	ZL, 0x00	// 0
/*76a2:	f1 e0*/		ldi	ZH, 0x01	// 1
/*76a4:	02 81*/		ldd	r16, Z+2	// 0x02
/*76a6:	13 81*/		ldd	r17, Z+3	// 0x03
/*76a8:	08 17*/		cp	r16, r24
/*76aa:	19 07*/		cpc	r17, r25
/*76ac:	08 95*/		ret
/*76ae:	20 91 eb 00*/	lds	r18, UECONX
/*76b2:	21 60*/		ori	r18, 0x01	// 1
/*76b4:	20 93 eb 00*/	sts	UECONX, r18
/*76b8:	00 93 ec 00*/	sts	UECFG0X, r16
/*76bc:	00 91 ed 00*/	lds	r16, UECFG1X
/*76c0:	02 70*/		andi	r16, 0x02	// 2
/*76c2:	01 2b*/		or	r16, r17
/*76c4:	00 93 ed 00*/	sts	UECFG1X, r16
/*76c8:	00 91 ed 00*/	lds	r16, UECFG1X
/*76cc:	02 60*/		ori	r16, 0x02	// 2
/*76ce:	00 93 ed 00*/	sts	UECFG1X, r16
/*76d2:	10 91 ee 00*/	lds	r17, UESTA0X
/*76d6:	01 2f*/		mov	r16, r17
/*76d8:	00 0f*/		add	r16, r16
/*76da:	00 e0*/		ldi	r16, 0x00	// 0
/*76dc:	00 1f*/		adc	r16, r16
/*76de:	08 95*/		ret
/*76e0:	41 2f*/		mov	r20, r17
/*76e2:	00 93 e9 00*/	sts	UENUM, r16
/*76e6:	08 95*/		ret
/*76e8:	00 e0*/		ldi	r16, 0x00	// 0
/*76ea:	09 d0*/		rcall	.+18     	//  0x76fe
/*76ec:	00 fd*/		sbrc	r16, 0
/*76ee:	05 c0*/		 rjmp	.+10     	//  0x76fa
/*76f0:	00 e0*/		ldi	r16, 0x00	// 0
/*76f2:	f7 df*/		rcall	.-18     	//  0x76e2
/*76f4:	10 e2*/		ldi	r17, 0x20	// 32
/*76f6:	02 e0*/		ldi	r16, 0x02	// 2
/*76f8:	da cf*/		rjmp	.-76     	//  0x76ae
/*76fa:	00 e0*/		ldi	r16, 0x00	// 0
/*76fc:	08 95*/		ret
/*76fe:	f1 df*/		rcall	.-30     	//  0x76e2
/*7700:	00 91 eb 00*/	lds	r16, UECONX
/*7704:	08 95*/		ret
/*7706:	0f 77*/		andi	r16, 0x7F	// 127
/*7708:	01 32*/		cpi	r16, 0x21	// 33
/*770a:	a9 f5*/		brne	.+106    	//  0x7776
/*770c:	11 23*/		and	r17, r17
/*770e:	69 f1*/		breq	.+90     	//  0x776a
/*7710:	1a 95*/		dec	r17
/*7712:	59 f0*/		breq	.+22     	//  0x772a
/*7714:	1a 95*/		dec	r17
/*7716:	61 f0*/		breq	.+24     	//  0x7730
/*7718:	1a 95*/		dec	r17
/*771a:	69 f0*/		breq	.+26     	//  0x7736
/*771c:	1a 95*/		dec	r17
/*771e:	f9 f0*/		breq	.+62     	//  0x775e
/*7720:	1a 95*/		dec	r17
/*7722:	c1 f0*/		breq	.+48     	//  0x7754
/*7724:	1a 95*/		dec	r17
/*7726:	d9 f0*/		breq	.+54     	//  0x775e
/*7728:	24 c0*/		rjmp	.+72     	//  0x7772
/*772a:	0e 94 2c 39*/	call	L7258
/*772e:	20 c0*/		rjmp	.+64     	//  0x7770
/*7730:	0e 94 26 3a*/	call	L744C
/*7734:	1d c0*/		rjmp	.+58     	//  0x7770
/*7736:	29 d0*/		rcall	.+82     	//  0x778a
/*7738:	00 91 09 01*/	lds	r16, 0x0109
/*773c:	23 d0*/		rcall	L7784
/*773e:	01 e0*/		ldi	r16, 0x01	// 1
/*7740:	1f d0*/		rcall	L7780
/*7742:	20 d0*/		rcall	L7784
/*7744:	00 91 08 01*/	lds	r16, 0x0108
/*7748:	1b d0*/		rcall	L7780
/*774a:	0e 94 92 3a*/	call	L7524
/*774e:	0e 94 97 3a*/	call	0x752e	//  0x752e
/*7752:	0e c0*/		rjmp	.+28     	//  0x7770
/*7754:	1a d0*/		rcall	.+52     	//  0x778a
/*7756:	00 91 08 01*/	lds	r16, 0x0108
/*775a:	14 d0*/		rcall	L7784
/*775c:	07 c0*/		rjmp	.+14     	//  0x776c
/*775e:	02 e0*/		ldi	r16, 0x02	// 2
/*7760:	00 93 08 01*/	sts	0x0108, r16
/*7764:	00 e0*/		ldi	r16, 0x00	// 0
/*7766:	00 93 09 01*/	sts	0x0109, r16
/*776a:	0f d0*/		rcall	.+30     	//  0x778a
/*776c:	0e 94 92 3a*/	call	L7524
/*7770:	03 c0*/		rjmp	L7778
/*7772:	0e 94 80 3a*/	call	L7500
/*7776:	02 c0*/		rjmp	L777C
L7778:	// ret 1
/*7778:	01 e0*/		ldi	r16, 0x01	// 1
/*777a:	08 95*/		ret
L777C:
/*777c:	00 e0*/		ldi	r16, 0x00	// 0
/*777e:	08 95*/		ret
L7780:
/*7780:	01 d0*/		rcall	L7784
/*7782:	00 e0*/		ldi	r16, 0x00	// 0
L7784:	// Byte in USB-FIFO stecken
/*7784:	00 93 f1 00*/	sts	UEDATX, r16
/*7788:	08 95*/		ret

/*778a:	00 91 e8 00*/	lds	r16, UEINTX
/*778e:	07 7f*/		andi	r16, 0xF7	// 247
/*7790:	00 93 e8 00*/	sts	UEINTX, r16
/*7794:	08 95*/		ret
/*7796:	08 95*/		ret
/*7798:	03 50*/		subi	r16, 3	// String-Deskriptor?
/*779a:	f9 f4*/		brne	L77DA	// nein
/*779c:	11 23*/		and	r17, r17
/*779e:	39 f0*/		breq	sd0	// String 0
/*77a0:	1a 95*/		dec	r17
/*77a2:	51 f0*/		breq	sd1	// String 1
/*77a4:	1a 95*/		dec	r17
/*77a6:	81 f0*/		breq	sd2	// String 2
/*77a8:	1a 95*/		dec	r17
/*77aa:	99 f0*/		breq	sd3	// String 3
/*77ac:	16 c0*/		rjmp	L77DA

/*77ae:	04 e0*/	sd0:	ldi	r16, 0x04	// 4
/*77b0:	16 d0*/		rcall	L77DE
/*77b2:	01 e8*/		ldi	r16,lo8(L7081)	// String-Deskriptor 0: Sprache(n)
/*77b4:	10 e7*/		ldi	r17,hi8(L7081)
/*77b6:	03 c0*/		rjmp	sdst
/*77b8:	11 d0*/	sd1:	rcall	L77DC
/*77ba:	03 e5*/		ldi	r16,lo8(L7053)	// String-Deskriptor 1: Hersteller
/*77bc:	10 e7*/		ldi	r17,hi8(L7053)
/*77be:	e7 e1*/	sdst:	ldi	ZL, 0x17
/*77c0:	f2 e0*/		ldi	ZH, 0x02
/*77c2:	00 83*/		st	Z, r16
/*77c4:	11 83*/		std	Z+1, r17
/*77c6:	d8 cf*/		rjmp	L7778
/*77c8:	06 e1*/	sd2:	ldi	r16, 0x16	// 22
/*77ca:	09 d0*/		rcall	L77DE
/*77cc:	0f e5*/		ldi	r16,lo8(L705F)	// String-Deskriptor 2: Produkt
/*77ce:	10 e7*/		ldi	r17,hi8(L705F)
/*77d0:	f6 cf*/		rjmp	sdst
/*77d2:	04 d0*/	sd3:	rcall	L77DC
/*77d4:	05 e7*/		ldi	r16,lo8(L7075)	// String-Deskriptor 3: Seriennummer
/*77d6:	10 e7*/		ldi	r17,hi8(L7075)
/*77d8:	f2 cf*/		rjmp	sdst
L77DA:
/*77da:	d0 cf*/		rjmp	L777C
L77DC:	// Länge 12 laden
/*77dc:	0c e0*/		ldi	r16, 0x0C	// 12
L77DE:	// Länge <r16> laden
/*77de:	00 93 1a 02*/	sts	0x021A, r16
/*77e2:	08 95*/		ret

/*77e4:	27 d1*/		rcall	.+590    	//  0x7a34
/*77e6:	20 d1*/		rcall	.+576    	//  0x7a28
/*77e8:	00 93 1d 02*/	sts	0x021D, r16
/*77ec:	e1 d0*/		rcall	.+450    	//  0x79b0
/*77ee:	21 2f*/		mov	r18, r17
/*77f0:	11 23*/		and	r17, r17
/*77f2:	29 f1*/		breq	.+74     	//  0x783e
/*77f4:	2a 95*/		dec	r18
/*77f6:	e9 f0*/		breq	.+58     	//  0x7832
/*77f8:	22 50*/		subi	r18, 0x02	// 2
/*77fa:	f1 f0*/		breq	.+60     	//  0x7838
/*77fc:	22 50*/		subi	r18, 0x02	// 2
/*77fe:	99 f0*/		breq	.+38     	//  0x7826
/*7800:	2a 95*/		dec	r18
/*7802:	49 f0*/		breq	.+18     	//  0x7816
/*7804:	22 50*/		subi	r18, 0x02	// 2
/*7806:	61 f0*/		breq	.+24     	//  0x7820
/*7808:	2a 95*/		dec	r18
/*780a:	81 f0*/		breq	.+32     	//  0x782c
/*780c:	2a 95*/		dec	r18
/*780e:	e1 f0*/		breq	.+56     	//  0x7848
/*7810:	2a 95*/		dec	r18
/*7812:	e9 f0*/		breq	.+58     	//  0x784e
/*7814:	23 c0*/		rjmp	.+70     	//  0x785c
/*7816:	00 38*/		cpi	r16, 0x80	// 128
/*7818:	09 f4*/		brne	.+2      	//  0x781c
/*781a:	4f c0*/		rjmp	.+158    	//  0x78ba
/*781c:	0c 94 83 3b*/	jmp	0x7706	//  0x7706
/*7820:	00 38*/		cpi	r16, 0x80	// 128
/*7822:	e1 f7*/		brne	.-8      	//  0x781c
/*7824:	c8 c0*/		rjmp	.+400    	//  0x79b6
/*7826:	00 23*/		and	r16, r16
/*7828:	c9 f7*/		brne	.-14     	//  0x781c
/*782a:	1e c0*/		rjmp	.+60     	//  0x7868
/*782c:	00 23*/		and	r16, r16
/*782e:	b1 f7*/		brne	.-20     	//  0x781c
/*7830:	2d c0*/		rjmp	.+90     	//  0x788c
/*7832:	03 30*/		cpi	r16, 0x03	// 3
/*7834:	98 f7*/		brcc	.-26     	//  0x781c
/*7836:	44 c1*/		rjmp	.+648    	//  0x7ac0
/*7838:	03 30*/		cpi	r16, 0x03	// 3
/*783a:	80 f7*/		brcc	.-32     	//  0x781c
/*783c:	0b c1*/		rjmp	.+534    	//  0x7a54
/*783e:	00 38*/		cpi	r16, 0x80	// 128
/*7840:	68 f3*/		brcs	.-38     	//  0x781c
/*7842:	03 38*/		cpi	r16, 0x83	// 131
/*7844:	58 f7*/		brcc	.-42     	//  0x781c
/*7846:	c9 c0*/		rjmp	.+402    	//  0x79da
/*7848:	01 38*/		cpi	r16, 0x81	// 129
/*784a:	41 f7*/		brne	.-48     	//  0x781c
/*784c:	7b c1*/		rjmp	.+758    	//  0x7b44
/*784e:	01 30*/		cpi	r16, 0x01	// 1
/*7850:	51 f4*/		brne	.+20     	//  0x7866
/*7852:	fc d0*/		rcall	.+504    	//  0x7a4c
/*7854:	bf d0*/		rcall	.+382    	//  0x79d4
/*7856:	00 fd*/		sbrc	r16, 0
/*7858:	06 c0*/		 rjmp	.+12     	//  0x7866
/*785a:	fc cf*/		rjmp	.-8      	//  0x7854
/*785c:	0e 94 83 3b*/	call	0x7706	//  0x7706
/*7860:	00 23*/		and	r16, r16
/*7862:	09 f4*/		brne	.+2      	//  0x7866
/*7864:	1e d0*/		rcall	.+60     	//  0x78a2
/*7866:	08 95*/		ret
/*7868:	10 91 e3 00*/	lds	r17, UDADDR
/*786c:	10 78*/		andi	r17, 0x80
/*786e:	dc d0*/		rcall	.+440    	//  0x7a28
/*7870:	0f 77*/		andi	r16, 0x7F
/*7872:	01 2b*/		or	r16, r17
/*7874:	00 93 e3 00*/	sts	UDADDR, r16
/*7878:	e9 d0*/		rcall	.+466    	//  0x7a4c
/*787a:	ac d0*/		rcall	.+344    	//  0x79d4
/*787c:	00 ff*/		sbrs	r16, 0
/*787e:	fd cf*/		 rjmp	.-6      	//  0x787a
/*7880:	00 91 e3 00*/	lds	r16, UDADDR
/*7884:	00 68*/		ori	r16, 0x80
/*7886:	00 93 e3 00*/	sts	UDADDR, r16
/*788a:	08 95*/		ret
/*788c:	91 d0*/		rcall	.+290    	//  0x79b0
/*788e:	12 30*/		cpi	r17, 0x02	// 2
/*7890:	40 f4*/		brcc	.+16     	//  0x78a2
/*7892:	0f d0*/		rcall	.+30     	//  0x78b2
/*7894:	10 93 1e 02*/	sts	0x021E, r17
/*7898:	da d0*/		rcall	.+436    	//  0x7a4e
/*789a:	00 91 1e 02*/	lds	r16, 0x021E
/*789e:	0c 94 cb 3b*/	jmp	0x7796	//  0x7796
/*78a2:	00 91 eb 00*/	lds	r16, UECONX
/*78a6:	01 d0*/		rcall	.+2      	//  0x78aa
/*78a8:	04 c0*/		rjmp	.+8      	//  0x78b2
/*78aa:	00 62*/		ori	r16, 0x20	// 32
/*78ac:	00 93 eb 00*/	sts	UECONX, r16
/*78b0:	08 95*/		ret
/*78b2:	00 91 e8 00*/	lds	r16, UEINTX
/*78b6:	07 7f*/		andi	r16, 0xF7	// 247
/*78b8:	c0 c0*/		rjmp	.+384    	//  0x7a3a
/*78ba:	ba 93*/		st	-Y, r27
/*78bc:	aa 93*/		st	-Y, r26
/*78be:	22 97*/		sbiw	YL, 2
/*78c0:	00 e0*/		ldi	r16, 0
/*78c2:	00 93 19 02*/	sts	0x0219, r16
/*78c6:	74 d0*/		rcall	.+232    	//  0x79b0
/*78c8:	af d0*/		rcall	.+350    	//  0x7a28
/*78ca:	20 2f*/		mov	r18, r16
/*78cc:	2a 95*/		dec	r18
/*78ce:	19 f0*/		breq	.+6      	//  0x78d6
/*78d0:	2a 95*/		dec	r18
/*78d2:	e9 f0*/		breq	.+58     	//  0x790e
/*78d4:	22 c0*/		rjmp	.+68     	//  0x791a
/*78d6:	02 e1*/		ldi	r16, 0x12	// 18
/*78d8:	00 93 1a 02*/	sts	0x021A, r16
/*78dc:	0f e2*/		ldi	r16,lo8(L702F)	// Device-Deskriptor
/*78de:	10 e7*/		ldi	r17,hi8(L702F)
/*78e0:	e7 e1*/		ldi	ZL, 0x17	// 23
/*78e2:	f2 e0*/		ldi	ZH, 0x02	// 2
/*78e4:	00 83*/		st	Z, r16
/*78e6:	11 83*/		std	Z+1, r17	// 0x01
/*78e8:	9d d0*/		rcall	.+314    	//  0x7a24
/*78ea:	08 83*/		st	Y, r16
/*78ec:	9d d0*/		rcall	.+314    	//  0x7a28
/*78ee:	09 83*/		std	Y+1, r16	// 0x01
/*78f0:	e0 df*/		rcall	.-64     	//  0x78b2
/*78f2:	00 91 1a 02*/	lds	r16, 0x021A
/*78f6:	10 e0*/		ldi	r17, 0x00	// 0
/*78f8:	28 81*/		ld	r18, Y
/*78fa:	39 81*/		ldd	r19, Y+1	// 0x01
/*78fc:	02 17*/		cp	r16, r18
/*78fe:	13 07*/		cpc	r17, r19
/*7900:	a8 f4*/		brcc	.+42     	//  0x792c
/*7902:	0f 71*/		andi	r16, 0x1F	// 31
/*7904:	81 f4*/		brne	.+32     	//  0x7926
/*7906:	01 e0*/		ldi	r16, 0x01	// 1
/*7908:	00 93 19 02*/	sts	0x0219, r16
/*790c:	11 c0*/		rjmp	.+34     	//  0x7930
/*790e:	02 e1*/		ldi	r16, 0x12	// 18
/*7910:	00 93 1a 02*/	sts	0x021A, r16
/*7914:	01 e4*/		ldi	r16,lo8(L7041)	// Config-Deskriptor
/*7916:	10 e7*/		ldi	r17,hi8(L7041)
/*7918:	e3 cf*/		rjmp	.-58     	//  0x78e0
/*791a:	0e 94 cc 3b*/	call	0x7798	//  0x7798
/*791e:	00 23*/		and	r16, r16
/*7920:	19 f7*/		brne	.-58     	//  0x78e8
/*7922:	8e d0*/		rcall	.+284    	//  0x7a40
/*7924:	40 c0*/		rjmp	.+128    	//  0x79a6
/*7926:	10 93 19 02*/	sts	0x0219, r17
/*792a:	02 c0*/		rjmp	.+4      	//  0x7930
/*792c:	20 93 1a 02*/	sts	0x021A, r18
/*7930:	7e d0*/		rcall	.+252    	//  0x7a2e
/*7932:	a7 e1*/		ldi	r26, 0x17	// 23
/*7934:	b2 e0*/		ldi	r27, 0x02	// 2
/*7936:	01 c0*/		rjmp	.+2      	//  0x793a
/*7938:	8a d0*/		rcall	.+276    	//  0x7a4e
/*793a:	00 91 1a 02*/	lds	r16, 0x021A
/*793e:	00 23*/		and	r16, r16
/*7940:	09 f1*/		breq	.+66     	//  0x7984
/*7942:	48 d0*/		rcall	.+144    	//  0x79d4
/*7944:	04 fd*/		sbrc	r16, 4
/*7946:	1e c0*/		 rjmp	.+60     	//  0x7984
/*7948:	45 d0*/		rcall	.+138    	//  0x79d4
/*794a:	00 fd*/		sbrc	r16, 0
/*794c:	03 c0*/		 rjmp	.+6      	//  0x7954
/*794e:	42 d0*/		rcall	.+132    	//  0x79d4
/*7950:	04 ff*/		sbrs	r16, 4
/*7952:	fa cf*/		 rjmp	.-12     	//  0x7948
/*7954:	10 e0*/		ldi	r17, 0x00	// 0
/*7956:	01 2f*/		mov	r16, r17
/*7958:	13 95*/		inc	r17
/*795a:	00 32*/		cpi	r16, 0x20	// 32
/*795c:	81 f0*/		breq	.+32     	//  0x797e
/*795e:	ed 91*/		ld	ZL, X+
/*7960:	fc 91*/		ld	ZH, X
/*7962:	11 97*/		sbiw	r26, 0x01	// 1
/*7964:	04 91*/		lpm	r16, Z
/*7966:	33 d0*/		rcall	.+102    	//  0x79ce
/*7968:	2d 91*/		ld	r18, X+
/*796a:	3c 91*/		ld	r19, X
/*796c:	2f 5f*/		subi	r18, 0xFF	// 255
/*796e:	3f 4f*/		sbci	r19, 0xFF	// 255
/*7970:	3c 93*/		st	X, r19
/*7972:	2e 93*/		st	-X, r18
/*7974:	fd 01*/		movw	ZL, r26
/*7976:	03 81*/		ldd	r16, Z+3	// 0x03
/*7978:	0a 95*/		dec	r16
/*797a:	03 83*/		std	Z+3, r16	// 0x03
/*797c:	61 f7*/		brne	.-40     	//  0x7956
/*797e:	2a d0*/		rcall	.+84     	//  0x79d4
/*7980:	04 ff*/		sbrs	r16, 4
/*7982:	da cf*/		 rjmp	.-76     	//  0x7938
/*7984:	00 91 19 02*/	lds	r16, 0x0219
/*7988:	01 30*/		cpi	r16, 0x01	// 1
/*798a:	39 f4*/		brne	.+14     	//  0x799a
/*798c:	23 d0*/		rcall	.+70     	//  0x79d4
/*798e:	04 fd*/		sbrc	r16, 4
/*7990:	04 c0*/		 rjmp	.+8      	//  0x799a
/*7992:	20 d0*/		rcall	.+64     	//  0x79d4
/*7994:	00 ff*/		sbrs	r16, 0
/*7996:	fd cf*/		 rjmp	.-6      	//  0x7992
/*7998:	5a d0*/		rcall	.+180    	//  0x7a4e
/*799a:	1c d0*/		rcall	.+56     	//  0x79d4
/*799c:	04 ff*/		sbrs	r16, 4
/*799e:	fd cf*/		 rjmp	.-6      	//  0x799a
/*79a0:	46 d0*/		rcall	.+140    	//  0x7a2e
/*79a2:	18 d0*/		rcall	.+48     	//  0x79d4
/*79a4:	0b 7f*/		andi	r16, 0xFB	// 251
/*79a6:	49 d0*/		rcall	.+146    	//  0x7a3a
/*79a8:	22 96*/		adiw	YL, 0x02	// 2
/*79aa:	a9 91*/		ld	r26, Y+
/*79ac:	b9 91*/		ld	r27, Y+
/*79ae:	08 95*/		ret
/*79b0:	10 91 f1 00*/	lds	r17, UEDATX
/*79b4:	08 95*/		ret
/*79b6:	7d df*/		rcall	.-262    	//  0x78b2
/*79b8:	00 91 1e 02*/	lds	r16, 0x021E
/*79bc:	08 d0*/		rcall	.+16     	//  0x79ce
/*79be:	47 d0*/		rcall	.+142    	//  0x7a4e
/*79c0:	09 d0*/		rcall	.+18     	//  0x79d4
/*79c2:	0f 77*/		andi	r16, 0x7F	// 127
/*79c4:	3a d0*/		rcall	.+116    	//  0x7a3a
/*79c6:	06 d0*/		rcall	.+12     	//  0x79d4
/*79c8:	02 ff*/		sbrs	r16, 2
/*79ca:	fd cf*/		 rjmp	.-6      	//  0x79c6
/*79cc:	bf c0*/		rjmp	.+382    	//  0x7b4c
/*79ce:	00 93 f1 00*/	sts	UEDATX, r16
/*79d2:	08 95*/		ret
/*79d4:	00 91 e8 00*/	lds	r16, UEINTX
/*79d8:	08 95*/		ret
/*79da:	24 d0*/		rcall	.+72     	//  0x7a24
/*79dc:	10 91 1d 02*/	lds	r17, 0x021D
/*79e0:	10 58*/		subi	r17, 0x80	// 128
/*79e2:	29 f0*/		breq	.+10     	//  0x79ee
/*79e4:	1a 95*/		dec	r17
/*79e6:	89 f0*/		breq	.+34     	//  0x7a0a
/*79e8:	1a 95*/		dec	r17
/*79ea:	91 f0*/		breq	.+36     	//  0x7a10
/*79ec:	19 c0*/		rjmp	.+50     	//  0x7a20
/*79ee:	61 df*/		rcall	.-318    	//  0x78b2
/*79f0:	00 91 1c 02*/	lds	r16, 0x021C
/*79f4:	ec df*/		rcall	.-40     	//  0x79ce
/*79f6:	00 e0*/		ldi	r16, 0x00	// 0
/*79f8:	ea df*/		rcall	.-44     	//  0x79ce
/*79fa:	29 d0*/		rcall	.+82     	//  0x7a4e
/*79fc:	eb df*/		rcall	.-42     	//  0x79d4
/*79fe:	02 ff*/		sbrs	r16, 2
/*7a00:	fd cf*/		 rjmp	.-6      	//  0x79fc
/*7a02:	18 d0*/		rcall	.+48     	//  0x7a34
/*7a04:	e7 df*/		rcall	.-50     	//  0x79d4
/*7a06:	0f 77*/		andi	r16, 0x7F	// 127
/*7a08:	0c c0*/		rjmp	.+24     	//  0x7a22
/*7a0a:	53 df*/		rcall	.-346    	//  0x78b2
/*7a0c:	00 e0*/		ldi	r16, 0x00	// 0
/*7a0e:	f2 cf*/		rjmp	.-28     	//  0x79f4
/*7a10:	51 d0*/		rcall	.+162    	//  0x7ab4
/*7a12:	0f 77*/		andi	r16, 0x7F	// 127
/*7a14:	10 e0*/		ldi	r17, 0x00	// 0
/*7a16:	f8 01*/		movw	ZL, r16
/*7a18:	e5 5e*/		subi	ZL, 0xE5	// 229
/*7a1a:	fd 4f*/		sbci	ZH, 0xFD	// 253
/*7a1c:	00 81*/		ld	r16, Z
/*7a1e:	ea cf*/		rjmp	.-44     	//  0x79f4
/*7a20:	0f d0*/		rcall	.+30     	//  0x7a40
/*7a22:	0b c0*/		rjmp	.+22     	//  0x7a3a
/*7a24:	01 d0*/		rcall	.+2      	//  0x7a28
/*7a26:	00 d0*/		rcall	.+0      	//  0x7a28
/*7a28:	00 91 f1 00*/	lds	r16, UEDATX
/*7a2c:	08 95*/		ret
/*7a2e:	d2 df*/		rcall	.-92     	//  0x79d4
/*7a30:	0f 7e*/		andi	r16, 0xEF	// 239
/*7a32:	03 c0*/		rjmp	.+6      	//  0x7a3a
/*7a34:	00 91 e8 00*/	lds	r16, UEINTX
/*7a38:	0b 7f*/		andi	r16, 0xFB	// 251
/*7a3a:	00 93 e8 00*/	sts	UEINTX, r16
/*7a3e:	08 95*/		ret
/*7a40:	00 91 eb 00*/	lds	r16, UECONX
/*7a44:	32 df*/		rcall	.-412    	//  0x78aa
/*7a46:	c6 df*/		rcall	.-116    	//  0x79d4
/*7a48:	07 7f*/		andi	r16, 0xF7	// 247
/*7a4a:	08 95*/		ret
/*7a4c:	32 df*/		rcall	.-412    	//  0x78b2
/*7a4e:	c2 df*/		rcall	.-124    	//  0x79d4
/*7a50:	0e 7f*/		andi	r16, 0xFE	// 254
/*7a52:	f3 cf*/		rjmp	.-26     	//  0x7a3a
/*7a54:	00 91 1d 02*/	lds	r16, 0x021D
/*7a58:	00 23*/		and	r16, r16
/*7a5a:	29 f0*/		breq	.+10     	//  0x7a66
/*7a5c:	0a 95*/		dec	r16
/*7a5e:	09 f1*/		breq	.+66     	//  0x7aa2
/*7a60:	0a 95*/		dec	r16
/*7a62:	31 f0*/		breq	.+12     	//  0x7a70
/*7a64:	1e c0*/		rjmp	.+60     	//  0x7aa2
/*7a66:	e0 df*/		rcall	.-64     	//  0x7a28
/*7a68:	0a 95*/		dec	r16
/*7a6a:	61 d0*/		rcall	.+194    	//  0x7b2e
/*7a6c:	d9 f4*/		brne	.+54     	//  0x7aa4
/*7a6e:	1a c0*/		rjmp	.+52     	//  0x7aa4
/*7a70:	61 d0*/		rcall	.+194    	//  0x7b34
/*7a72:	b9 f4*/		brne	.+46     	//  0x7aa2
/*7a74:	d9 df*/		rcall	.-78     	//  0x7a28
/*7a76:	0f 77*/		andi	r16, 0x7F	// 127
/*7a78:	11 f4*/		brne	.+4      	//  0x7a7e
/*7a7a:	16 d0*/		rcall	.+44     	//  0x7aa8
/*7a7c:	1b d0*/		rcall	.+54     	//  0x7ab4
/*7a7e:	00 93 e9 00*/	sts	UENUM, r16
/*7a82:	10 91 eb 00*/	lds	r17, UECONX
/*7a86:	10 ff*/		sbrs	r17, 0
/*7a88:	0b c0*/		 rjmp	.+22     	//  0x7aa0
/*7a8a:	0e d0*/		rcall	.+28     	//  0x7aa8
/*7a8c:	10 e0*/		ldi	r17, 0x00	// 0
/*7a8e:	10 93 e9 00*/	sts	UENUM, r17
/*7a92:	21 e0*/		ldi	r18, 0x01	// 1
/*7a94:	f8 01*/		movw	ZL, r16
/*7a96:	e5 5e*/		subi	ZL, 0xE5	// 229
/*7a98:	fd 4f*/		sbci	ZH, 0xFD	// 253
/*7a9a:	20 83*/		st	Z, r18
/*7a9c:	4f d0*/		rcall	.+158    	//  0x7b3c
/*7a9e:	03 c0*/		rjmp	.+6      	//  0x7aa6
/*7aa0:	42 d0*/		rcall	.+132    	//  0x7b26
/*7aa2:	45 d0*/		rcall	.+138    	//  0x7b2e
/*7aa4:	cf df*/		rcall	.-98     	//  0x7a44
/*7aa6:	c9 cf*/		rjmp	.-110    	//  0x7a3a
/*7aa8:	10 91 eb 00*/	lds	r17, UECONX
/*7aac:	10 62*/		ori	r17, 0x20	// 32
/*7aae:	10 93 eb 00*/	sts	UECONX, r17
/*7ab2:	08 95*/		ret

/*7ab4:	10 91 e8 00*/	lds	r17, UEINTX
/*7ab8:	17 7f*/		andi	r17, 0xF7	// 247
/*7aba:	10 93 e8 00*/	sts	UEINTX, r17
/*7abe:	08 95*/		ret
/*7ac0:	00 91 1d 02*/	lds	r16, 0x021D
/*7ac4:	00 23*/		and	r16, r16
/*7ac6:	11 f4*/		brne	.+4      	//  0x7acc
/*7ac8:	af df*/		rcall	.-162    	//  0x7a28
/*7aca:	02 c0*/		rjmp	.+4      	//  0x7ad0
/*7acc:	01 30*/		cpi	r16, 0x01	// 1
/*7ace:	11 f4*/		brne	.+4      	//  0x7ad4
/*7ad0:	b7 df*/		rcall	.-146    	//  0x7a40
/*7ad2:	b3 cf*/		rjmp	.-154    	//  0x7a3a
/*7ad4:	02 30*/		cpi	r16, 0x02	// 2
/*7ad6:	31 f5*/		brne	.+76     	//  0x7b24
/*7ad8:	2d d0*/		rcall	.+90     	//  0x7b34
/*7ada:	19 f5*/		brne	.+70     	//  0x7b22
/*7adc:	20 91 f1 00*/	lds	r18, UEDATX
/*7ae0:	2f 77*/		andi	r18, 0x7F	// 127
/*7ae2:	20 93 e9 00*/	sts	UENUM, r18
/*7ae6:	23 d0*/		rcall	.+70     	//  0x7b2e
/*7ae8:	00 ff*/		sbrs	r16, 0
/*7aea:	19 c0*/		 rjmp	.+50     	//  0x7b1e
/*7aec:	81 f0*/		breq	.+32     	//  0x7b0e
/*7aee:	1f d0*/		rcall	.+62     	//  0x7b2e
/*7af0:	00 61*/		ori	r16, 0x10	// 16
/*7af2:	dc de*/		rcall	.-584    	//  0x78ac
/*7af4:	01 e0*/		ldi	r16, 0x01	// 1
/*7af6:	10 e0*/		ldi	r17, 0x00	// 0
/*7af8:	42 2f*/		mov	r20, r18
/*7afa:	0e 94 9f 3e*/	call	0x7d3e	//  0x7d3e
/*7afe:	00 93 ea 00*/	sts	UERST, r16
/*7b02:	00 e0*/		ldi	r16, 0x00	// 0
/*7b04:	00 93 ea 00*/	sts	UERST, r16
/*7b08:	12 d0*/		rcall	.+36     	//  0x7b2e
/*7b0a:	08 60*/		ori	r16, 0x08	// 8
/*7b0c:	cf de*/		rcall	.-610    	//  0x78ac
/*7b0e:	0b d0*/		rcall	.+22     	//  0x7b26
/*7b10:	30 e0*/		ldi	r19, 0x00	// 0
/*7b12:	f9 01*/		movw	ZL, r18
/*7b14:	e5 5e*/		subi	ZL, 0xE5	// 229
/*7b16:	fd 4f*/		sbci	ZH, 0xFD	// 253
/*7b18:	00 83*/		st	Z, r16
/*7b1a:	10 d0*/		rcall	.+32     	//  0x7b3c
/*7b1c:	da cf*/		rjmp	.-76     	//  0x7ad2
/*7b1e:	03 d0*/		rcall	.+6      	//  0x7b26
/*7b20:	d7 cf*/		rjmp	.-82     	//  0x7ad0
/*7b22:	bf de*/		rcall	.-642    	//  0x78a2
/*7b24:	08 95*/		ret

/*7b26:	00 e0*/		ldi	r16, 0x00	// 0
/*7b28:	00 93 e9 00*/	sts	UENUM, r16
/*7b2c:	08 95*/		ret
/*7b2e:	00 91 eb 00*/	lds	r16, UECONX
/*7b32:	08 95*/		ret

/*7b34:	79 df*/		rcall	.-270    	//  0x7a28
/*7b36:	3c df*/		rcall	.-392    	//  0x79b0
/*7b38:	00 23*/		and	r16, r16
/*7b3a:	08 95*/		ret

/*7b3c:	ba de*/		rcall	.-652    	//  0x78b2
/*7b3e:	4a df*/		rcall	.-364    	//  0x79d4
/*7b40:	0e 7f*/		andi	r16, 0xFE	// 254
/*7b42:	08 95*/		ret

/*7b44:	83 df*/		rcall	.-250    	//  0x7a4c
/*7b46:	46 df*/		rcall	.-372    	//  0x79d4
/*7b48:	02 ff*/		sbrs	r16, 2
/*7b4a:	fd cf*/		 rjmp	.-6      	//  0x7b46
/*7b4c:	73 df*/		rcall	.-282    	//  0x7a34
/*7b4e:	42 df*/		rcall	.-380    	//  0x79d4
/*7b50:	0f 77*/		andi	r16, 0x7F	// 127
/*7b52:	73 cf*/		rjmp	.-282    	//  0x7a3a
L7B54:
/*7b54:	00 91 d7 00*/	lds	r16, UHWCON
/*7b58:	01 60*/		ori	r16, 0x01	// Spannungsregler aktivieren
/*7b5a:	00 93 d7 00*/	sts	UHWCON, r16
/*7b5e:	0e 94 8b 38*/	call	L7116	//  0x7116
/*7b62:	00 e0*/		ldi	r16, 0x00	// 0
/*7b64:	00 93 1f 02*/	sts	0x021F, r16
/*7b68:	08 95*/		ret
L7B6A:
/*7b6a:	0c 94 bf 38*/	jmp	L717E	//  0x717e

usb_vect:	// ISR Allgemeiner USB-Interrupt
/*7b6e:	8a 93*/		st	-Y, r24
/*7b70:	fa 93*/		st	-Y, ZH
/*7b72:	ea 93*/		st	-Y, ZL
/*7b74:	3a 92*/		st	-Y, r3
/*7b76:	2a 92*/		st	-Y, r2
/*7b78:	1a 92*/		st	-Y, r1
/*7b7a:	0a 92*/		st	-Y, r0
/*7b7c:	7a 93*/		st	-Y, r23
/*7b7e:	6a 93*/		st	-Y, r22
/*7b80:	5a 93*/		st	-Y, r21
/*7b82:	4a 93*/		st	-Y, r20
/*7b84:	3a 93*/		st	-Y, r19
/*7b86:	2a 93*/		st	-Y, r18
/*7b88:	1a 93*/		st	-Y, r17
/*7b8a:	0a 93*/		st	-Y, r16
/*7b8c:	8f b7*/		in	r24, SREG	// 63
/*7b8e:	00 91 da 00*/	lds	r16, USBINT
/*7b92:	00 ff*/		sbrs	r16, 0
/*7b94:	24 c0*/		 rjmp	.+72     	//  0x7bde
/*7b96:	00 91 d8 00*/	lds	r16, USBCON
/*7b9a:	00 ff*/		sbrs	r16, 0
/*7b9c:	20 c0*/		 rjmp	.+64     	//  0x7bde
/*7b9e:	0e ef*/		ldi	r16, 0xFE	// 254
/*7ba0:	00 93 da 00*/	sts	USBINT, r16
/*7ba4:	00 91 d9 00*/	lds	r16, USBSTA
/*7ba8:	00 ff*/		sbrs	r16, 0
/*7baa:	11 c0*/		 rjmp	.+34     	//  0x7bce
/*7bac:	01 e0*/		ldi	r16, 0x01	// 1
/*7bae:	00 93 0d 01*/	sts	0x010D, r16
/*7bb2:	ab d0*/		rcall	.+342    	//  0x7d0a
/*7bb4:	02 60*/		ori	r16, 0x02	// 2
/*7bb6:	96 d0*/		rcall	.+300    	//  0x7ce4
/*7bb8:	9a d0*/		rcall	.+308    	//  0x7cee
/*7bba:	08 60*/		ori	r16, 0x08	// 8
/*7bbc:	a2 d0*/		rcall	.+324    	//  0x7d02
/*7bbe:	0e 94 9b 38*/	call	L7136
/*7bc2:	00 91 e0 00*/	lds	r16, UDCON
/*7bc6:	0e 7f*/		andi	r16, ~1
/*7bc8:	00 93 e0 00*/	sts	UDCON, r16
/*7bcc:	08 c0*/		rjmp	.+16     	//  0x7bde
/*7bce:	00 e0*/		ldi	r16, 0
/*7bd0:	00 93 0d 01*/	sts	0x010D, r16
/*7bd4:	00 93 1e 02*/	sts	0x021E, r16
/*7bd8:	98 d0*/		rcall	.+304    	//  0x7d0a
/*7bda:	04 60*/		ori	r16, 4
/*7bdc:	83 d0*/		rcall	.+262    	//  0x7ce4
/*7bde:	7f d0*/		rcall	.+254    	//  0x7cde
/*7be0:	02 ff*/		sbrs	r16, 2
/*7be2:	05 c0*/		 rjmp	.+10     	//  0x7bee
/*7be4:	84 d0*/		rcall	.+264    	//  0x7cee
/*7be6:	02 ff*/		sbrs	r16, 2
/*7be8:	02 c0*/		 rjmp	.+4      	//  0x7bee
/*7bea:	0b ef*/		ldi	r16, ~4
/*7bec:	75 d0*/		rcall	.+234    	//  0x7cd8
/*7bee:	77 d0*/		rcall	.+238    	//  0x7cde
/*7bf0:	00 ff*/		sbrs	r16, 0
/*7bf2:	1b c0*/		 rjmp	.+54     	//  0x7c2a
/*7bf4:	7c d0*/		rcall	.+248    	//  0x7cee
/*7bf6:	00 ff*/		sbrs	r16, 0
/*7bf8:	18 c0*/		 rjmp	.+48     	//  0x7c2a
/*7bfa:	01 e0*/		ldi	r16, 0x01	// 1
/*7bfc:	00 93 0e 01*/	sts	0x010E, r16
/*7c00:	6a d0*/		rcall	.+212    	//  0x7cd6
/*7c02:	83 d0*/		rcall	.+262    	//  0x7d0a
/*7c04:	00 62*/		ori	r16, 0x20	// 32
/*7c06:	6e d0*/		rcall	.+220    	//  0x7ce4
/*7c08:	0e ef*/		ldi	r16, 0xFE	// 254
/*7c0a:	6f d0*/		rcall	.+222    	//  0x7cea
/*7c0c:	00 61*/		ori	r16, 0x10	// 16
/*7c0e:	79 d0*/		rcall	.+242    	//  0x7d02
/*7c10:	6e d0*/		rcall	.+220    	//  0x7cee
/*7c12:	0f 7d*/		andi	r16, 0xDF	// 223
/*7c14:	76 d0*/		rcall	.+236    	//  0x7d02
/*7c16:	00 91 d8 00*/	lds	r16, USBCON
/*7c1a:	00 62*/		ori	r16, 0x20
/*7c1c:	00 93 d8 00*/	sts	USBCON, r16
/*7c20:	09 b5*/		in	r16, PLLCSR
/*7c22:	0d 7f*/		andi	r16, ~2
/*7c24:	09 bd*/		out	PLLCSR, r16
/*7c26:	00 e0*/		ldi	r16, 0
/*7c28:	09 bd*/		out	PLLCSR, r16
/*7c2a:	59 d0*/		rcall	.+178    	//  0x7cde
/*7c2c:	04 ff*/		sbrs	r16, 4
/*7c2e:	20 c0*/		 rjmp	.+64     	//  0x7c70
/*7c30:	5e d0*/		rcall	.+188    	//  0x7cee
/*7c32:	04 ff*/		sbrs	r16, 4
/*7c34:	1d c0*/		 rjmp	.+58     	//  0x7c70
/*7c36:	09 b5*/		in	r16, PLLCSR	// 41
/*7c38:	00 fd*/		sbrc	r16, 0
/*7c3a:	05 c0*/		 rjmp	.+10     	//  0x7c46
/*7c3c:	0e 94 eb 38*/	call	L71D6
/*7c40:	09 b5*/		in	r16, PLLCSR	// 41
/*7c42:	00 ff*/		sbrs	r16, 0
/*7c44:	fd cf*/		 rjmp	.-6      	//  0x7c40
/*7c46:	00 91 d8 00*/	lds	r16, USBCON
/*7c4a:	0f 7d*/		andi	r16, ~0x20
/*7c4c:	00 93 d8 00*/	sts	USBCON, r16
/*7c50:	42 d0*/		rcall	.+132    	//  0x7cd6
/*7c52:	00 91 0e 01*/	lds	r16, 0x010E
/*7c56:	00 23*/		and	r16, r16
/*7c58:	59 f0*/		breq	.+22     	//  0x7c70
/*7c5a:	4c d0*/		rcall	.+152    	//  0x7cf4
/*7c5c:	0f ee*/		ldi	r16, ~0x10
/*7c5e:	45 d0*/		rcall	.+138    	//  0x7cea
/*7c60:	0f 7e*/		andi	r16, ~0x10
/*7c62:	52 d0*/		rcall	.+164    	//  0x7d08
/*7c64:	00 64*/		ori	r16, 0x40
/*7c66:	3e d0*/		rcall	.+124    	//  0x7ce4
/*7c68:	42 d0*/		rcall	.+132    	//  0x7cee
/*7c6a:	01 60*/		ori	r16, 0x01
/*7c6c:	4a d0*/		rcall	.+148    	//  0x7d02
/*7c6e:	42 d0*/		rcall	.+132    	//  0x7cf4
/*7c70:	36 d0*/		rcall	.+108    	//  0x7cde
/*7c72:	05 ff*/		sbrs	r16, 5
/*7c74:	0f c0*/		 rjmp	.+30     	//  0x7c94
/*7c76:	3b d0*/		rcall	.+118    	//  0x7cee
/*7c78:	05 ff*/		sbrs	r16, 5
/*7c7a:	0c c0*/		 rjmp	.+24     	//  0x7c94
/*7c7c:	00 e0*/		ldi	r16, 0x00	// 0
/*7c7e:	00 93 0e 01*/	sts	0x010E, r16
/*7c82:	35 d0*/		rcall	.+106    	//  0x7cee
/*7c84:	0f 7e*/		andi	r16, ~0x10
/*7c86:	3d d0*/		rcall	.+122    	//  0x7d02
/*7c88:	0f ed*/		ldi	r16, ~0x20
/*7c8a:	2f d0*/		rcall	.+94     	//  0x7cea
/*7c8c:	0f 7d*/		andi	r16, ~0x20
/*7c8e:	3c d0*/		rcall	.+120    	//  0x7d08
/*7c90:	00 68*/		ori	r16, 0x80
/*7c92:	28 d0*/		rcall	.+80     	//  0x7ce4
/*7c94:	24 d0*/		rcall	.+72     	//  0x7cde
/*7c96:	03 ff*/		sbrs	r16, 3
/*7c98:	0d c0*/		 rjmp	.+26     	//  0x7cb4
/*7c9a:	29 d0*/		rcall	.+82     	//  0x7cee
/*7c9c:	03 ff*/		sbrs	r16, 3
/*7c9e:	0a c0*/		 rjmp	.+20     	//  0x7cb4
/*7ca0:	00 e0*/		ldi	r16, 0
/*7ca2:	00 93 1f 02*/	sts	0x021F, r16
/*7ca6:	07 ef*/		ldi	r16, ~8
/*7ca8:	17 d0*/		rcall	.+46     	//  0x7cd8
/*7caa:	0e 94 74 3b*/	call	0x76e8	//  0x76e8
/*7cae:	2d d0*/		rcall	.+90     	//  0x7d0a
/*7cb0:	11 60*/		ori	r17, 1
/*7cb2:	18 d0*/		rcall	.+48     	//  0x7ce4
/*7cb4:	8f bf*/		out	SREG, r24
/*7cb6:	09 91*/		ld	r16, Y+
/*7cb8:	19 91*/		ld	r17, Y+
/*7cba:	29 91*/		ld	r18, Y+
/*7cbc:	39 91*/		ld	r19, Y+
/*7cbe:	49 91*/		ld	r20, Y+
/*7cc0:	59 91*/		ld	r21, Y+
/*7cc2:	69 91*/		ld	r22, Y+
/*7cc4:	79 91*/		ld	r23, Y+
/*7cc6:	09 90*/		ld	r0, Y+
/*7cc8:	19 90*/		ld	r1, Y+
/*7cca:	29 90*/		ld	r2, Y+
/*7ccc:	39 90*/		ld	r3, Y+
/*7cce:	e9 91*/		ld	ZL, Y+
/*7cd0:	f9 91*/		ld	ZH, Y+
/*7cd2:	89 91*/		ld	r24, Y+
/*7cd4:	18 95*/		reti
/*7cd6:	0f ee*/		ldi	r16, ~0x10
/*7cd8:	00 93 e1 00*/	sts	UDINT, r16
/*7cdc:	08 95*/		ret
/*7cde:	00 91 e1 00*/	lds	r16, UDINT
/*7ce2:	08 95*/		ret
/*7ce4:	11 83*/		std	Z+1, r17	// 0x01
/*7ce6:	00 83*/		st	Z, r16
/*7ce8:	08 95*/		ret
/*7cea:	00 93 e1 00*/	sts	UDINT, r16
/*7cee:	00 91 e2 00*/	lds	r16, UDIEN
/*7cf2:	08 95*/		ret
/*7cf4:	00 91 e2 00*/	lds	r16, UDIEN
/*7cf8:	00 62*/		ori	r16, 0x20
/*7cfa:	03 d0*/		rcall	.+6      	//  0x7d02
/*7cfc:	00 91 e2 00*/	lds	r16, UDIEN
/*7d00:	08 60*/		ori	r16, 8
/*7d02:	00 93 e2 00*/	sts	UDIEN, r16
/*7d06:	08 95*/		ret
/*7d08:	fc df*/		rcall	.-8      	//  0x7d02
/*7d0a:	e0 e2*/		ldi	ZL, 0x20
/*7d0c:	f2 e0*/		ldi	ZH, 0x02
/*7d0e:	00 81*/		ld	r16, Z
/*7d10:	11 81*/		ldd	r17, Z+1	// 0x01
/*7d12:	08 95*/		ret
/*7d14:	00 00*/		nop
/*7d16:	88 95*/		sleep
/*7d18:	fe cf*/		rjmp	.-4      	//  0x7d16
reset_vect:
/*7d1a:	01 e6*/		ldi	r16, 0x61
/*7d1c:	0d bf*/		out	SPL, r16
/*7d1e:	02 e0*/		ldi	r16, 0x02
/*7d20:	0e bf*/		out	SPH, r16
/*7d22:	c2 ee*/		ldi	YL, 0xE2
/*7d24:	d2 e0*/		ldi	YH, 0x02
/*7d26:	0e 94 74 38*/	call	L70E8		// Watchdog abschalten
/*7d2a:	00 23*/		and	r16, r16	// immer 1
/*7d2c:	11 f0*/		breq	1f
/*7d2e:	0e 94 d3 3e*/	call	L7DA6		// RAM initialisieren
/*7d32:	0e 94 65 38*/1:	call	L70CA
/*7d36:	0e 94 8a 3e*/	call	0x7d14	//  0x7d14
/*7d3a:	0c 94 8a 3e*/	jmp	0x7d14	//  0x7d14
/*7d3e:	4a 95*/		dec	r20
/*7d40:	1a f0*/		brmi	.+6      	//  0x7d48
/*7d42:	00 0f*/		add	r16, r16
/*7d44:	11 1f*/		adc	r17, r17
/*7d46:	fb cf*/		rjmp	.-10     	//  0x7d3e
/*7d48:	08 95*/		ret
/*7d4a:	ba 92*/		st	-Y, r11
/*7d4c:	aa 92*/		st	-Y, r10
/*7d4e:	9a 92*/		st	-Y, r9
/*7d50:	8a 92*/		st	-Y, r8
/*7d52:	7a 92*/		st	-Y, r7
/*7d54:	6a 92*/		st	-Y, r6
/*7d56:	5a 92*/		st	-Y, r5
/*7d58:	4a 92*/		st	-Y, r4
L7D5A:
/*7d5a:	ba 93*/		st	-Y, r27
/*7d5c:	aa 93*/		st	-Y, r26
/*7d5e:	9a 93*/		st	-Y, r25
/*7d60:	8a 93*/		st	-Y, r24
/*7d62:	08 95*/		ret

/*7d64:	bb 84*/		ldd	r11, Y+11
/*7d66:	aa 84*/		ldd	r10, Y+10
/*7d68:	99 84*/		ldd	r9, Y+9
/*7d6a:	88 84*/		ldd	r8, Y+8
/*7d6c:	7f 80*/		ldd	r7, Y+7
/*7d6e:	6e 80*/		ldd	r6, Y+6
/*7d70:	5d 80*/		ldd	r5, Y+5
L7D72:
/*7d72:	4c 80*/		ldd	r4, Y+4
/*7d74:	bb 81*/		ldd	r27, Y+3
/*7d76:	aa 81*/		ldd	r26, Y+2
/*7d78:	99 81*/		ldd	r25, Y+1
/*7d7a:	88 81*/		ld	r24, Y
/*7d7c:	f0 e0*/		ldi	ZH, 0
/*7d7e:	0f b6*/		in	r0, SREG
/*7d80:	f8 94*/		cli
/*7d82:	ce 0f*/		add	YL, ZL
/*7d84:	df 1f*/		adc	YH, ZH
/*7d86:	0f be*/		out	SREG, r0
/*7d88:	08 95*/		ret

L7D8A:	// RAM mit 0 initialisieren: ".bss"
/*7d8a:	20 e0*/	0:	ldi	r18, 0x00
/*7d8c:	06 d0*/		rcall	1f
/*7d8e:	e9 f7*/		brne	0b
/*7d90:	08 95*/		ret
L7D92:	// RAM mit Flash initialisieren: ".data"
/*7d92:	25 91*/	0:	lpm	r18, Z+
/*7d94:	02 d0*/		rcall	1f
/*7d96:	e9 f7*/		brne	0b
/*7d98:	08 95*/		ret

/*7d9a:	2d 93*/	1:	st	X+, r18
/*7d9c:	01 50*/		subi	r16, 1
/*7d9e:	10 40*/		sbci	r17, 0
/*7da0:	20 2f*/		mov	r18, r16
/*7da2:	21 2b*/		or	r18, r17
/*7da4:	08 95*/		ret

L7DA6:	// RAM mit 0 oder Flash per Tabelle initialisieren
/*7da6:	85 e8*/		ldi	r24,lo8(L7085)
/*7da8:	90 e7*/		ldi	r25,hi8(L7085)
/*7daa:	fc 01*/	0:	movw	ZL, r24
/*7dac:	05 91*/		lpm	r16, Z+		// Länge
/*7dae:	14 91*/		lpm	r17, Z
/*7db0:	fc 01*/		movw	ZL, r24
/*7db2:	32 96*/		adiw	ZL, 2
/*7db4:	a5 91*/		lpm	XL, Z+		// RAM-Zieladresse
/*7db6:	b4 91*/		lpm	XH, Z
/*7db8:	fc 01*/		movw	ZL, r24
/*7dba:	34 96*/		adiw	ZL, 4
/*7dbc:	25 91*/		lpm	r18, Z+		// Flash-Quelladresse
/*7dbe:	34 91*/		lpm	r19, Z
/*7dc0:	42 2f*/		mov	r20, r18
/*7dc2:	43 2b*/		or	r20, r19
/*7dc4:	19 f0*/		breq	1f
/*7dc6:	f9 01*/		movw	ZL, r18
/*7dc8:	e4 df*/		rcall	L7D92
/*7dca:	01 c0*/		rjmp	2f
/*7dcc:	de df*/	1:	rcall	L7D8A
/*7dce:	06 96*/	2:	adiw	r24, 6
/*7dd0:	10 e7*/		ldi	r17,hi8(L7091)
/*7dd2:	81 39*/		cpi	r24,lo8(L7091)
/*7dd4:	91 07*/		cpc	r25, r17
/*7dd6:	48 f3*/		brcs	0b
/*7dd8:	08 95*/		ret
spm_erase_write:
/*7dda:	2f 93*/		push	r18
/*7ddc:	0c d0*/		rcall	spm_erase
/*7dde:	2f 91*/		pop	r18
/*7de0:	01 d0*/		rcall	spm_write_page
/*7de2:	08 95*/		ret
spm_write_page:
/*7de4:	3c d0*/		rcall	spm_wait
/*7de6:	f1 2f*/		mov	ZH, r17
/*7de8:	e0 2f*/		mov	ZL, r16
/*7dea:	45 e0*/		ldi	r20, 0x05	// schreiben
/*7dec:	47 bf*/		out	SPMCSR, r20
/*7dee:	e8 95*/		spm
/*7df0:	36 d0*/		rcall	spm_wait
/*7df2:	12 d0*/		rcall	L7E18
/*7df4:	08 95*/		ret
spm_erase:
/*7df6:	33 d0*/		rcall	spm_wait
/*7df8:	f1 2f*/		mov	ZH, r17
/*7dfa:	e0 2f*/		mov	ZL, r16
/*7dfc:	43 e0*/		ldi	r20, 0x03	// löschen
/*7dfe:	47 bf*/		out	SPMCSR, r20
/*7e00:	e8 95*/		spm
/*7e02:	2d d0*/		rcall	spm_wait
/*7e04:	08 95*/		ret
spm_erase_2:
/*7e06:	2b d0*/		rcall	spm_wait
/*7e08:	f1 2f*/		mov	ZH, r17
/*7e0a:	e0 2f*/		mov	ZL, r16
/*7e0c:	43 e0*/		ldi	r20, 0x03	// löschen
/*7e0e:	47 bf*/		out	SPMCSR, r20
/*7e10:	e8 95*/		spm
/*7e12:	25 d0*/		rcall	spm_wait
/*7e14:	01 d0*/		rcall	L7E18
/*7e16:	08 95*/		ret
L7E18:
/*7e18:	22 d0*/		rcall	spm_wait
/*7e1a:	41 e1*/		ldi	r20, 0x11	// 17
/*7e1c:	47 bf*/		out	SPMCSR, r20
/*7e1e:	e8 95*/		spm
/*7e20:	1e c0*/		rjmp	spm_wait
lpm_signature:
/*7e22:	1d d0*/		rcall	spm_wait
/*7e24:	f1 2f*/		mov	ZH, r17
/*7e26:	e0 2f*/		mov	ZL, r16
/*7e28:	41 e2*/		ldi	r20, 0x21	// Signatur
/*7e2a:	47 bf*/		out	SPMCSR, r20
/*7e2c:	c8 95*/		lpm
/*7e2e:	00 2d*/		mov	r16, r0
/*7e30:	16 c0*/		rjmp	spm_wait
lpm_lock:
/*7e32:	15 d0*/		rcall	spm_wait
/*7e34:	f1 2f*/		mov	ZH, r17
/*7e36:	e0 2f*/		mov	ZL, r16
/*7e38:	49 e0*/		ldi	r20, 0x09	// 9
/*7e3a:	47 bf*/		out	SPMCSR, r20
/*7e3c:	c8 95*/		lpm
/*7e3e:	00 2d*/		mov	r16, r0
/*7e40:	0e c0*/		rjmp	spm_wait
L7E42:
	mov	ZH, r19
	mov	ZL, r18
	mov	r0, r17
	mov	r1, r16
	ldi	r20, 0x01	// 1
	out	SPMCSR, r20
	spm
	rjmp	spm_wait
L7E52:
/*7e52:	05 d0*/		rcall	spm_wait
/*7e54:	00 2e*/		mov	r0, r16
/*7e56:	29 e0*/		ldi	r18, 0x09	// 9
/*7e58:	27 bf*/		out	SPMCSR, r18
/*7e5a:	e8 95*/		spm
/*7e5c:	00 c0*/		rjmp	spm_wait
spm_wait:
	mov	r0, r18
	in	r18, SPMCSR
	sbrc	r18, 0
	 rjmp	spm_wait
	mov	r18, r0
	ret
L7E6A:	// dead code
	mov	r0, r18
	in	r18, SPMCSR
	sbrc	r18, 6
	 rjmp	L7E6A
	mov	r18, r0
	ret

/*7e76:	0e 94 a5 3e*/	call	0x7d4a	//  0x7d4a
/*7e7a:	22 97*/		sbiw	YL, 0x02	// 2
/*7e7c:	48 01*/		movw	r8, r16
/*7e7e:	c9 01*/		movw	r24, r18
/*7e80:	da 01*/		movw	r26, r20
/*7e82:	10 c0*/		rjmp	.+32     	//  0x7ea4
/*7e84:	5b d0*/		rcall	L7F3C
/*7e86:	01 e0*/		ldi	r16, 0x01	// 1
/*7e88:	a0 0e*/		add	r10, r16
/*7e8a:	00 e0*/		ldi	r16, 0x00	// 0
/*7e8c:	b0 1e*/		adc	r11, r16
/*7e8e:	00 e4*/		ldi	r16, 0x40	// 64
/*7e90:	a0 16*/		cp	r10, r16
/*7e92:	00 e0*/		ldi	r16, 0x00	// 0
/*7e94:	b0 06*/		cpc	r11, r16
/*7e96:	08 f4*/		brcc	.+2      	//  0x7e9a
/*7e98:	40 c0*/		rjmp	.+128    	//  0x7f1a
/*7e9a:	83 01*/		movw	r16, r6
/*7e9c:	20 e0*/		ldi	r18, 0x00	// 0
/*7e9e:	30 e0*/		ldi	r19, 0x00	// 0
/*7ea0:	0e 94 f2 3e*/	call	spm_write_page
/*7ea4:	0a 2f*/		mov	r16, r26
/*7ea6:	0b 2b*/		or	r16, r27
/*7ea8:	09 f4*/		brne	.+2      	//  0x7eac
/*7eaa:	40 c0*/		rjmp	.+128    	//  0x7f2c
/*7eac:	08 2f*/		mov	r16, r24
/*7eae:	0f 77*/		andi	r16, 0x7F	// 127
/*7eb0:	10 e0*/		ldi	r17, 0x00	// 0
/*7eb2:	2c 01*/		movw	r4, r24
/*7eb4:	40 1a*/		sub	r4, r16
/*7eb6:	51 0a*/		sbc	r5, r17
/*7eb8:	32 01*/		movw	r6, r4
/*7eba:	00 e4*/		ldi	r16, 0x40	// 64
/*7ebc:	a0 2e*/		mov	r10, r16
/*7ebe:	03 c0*/		rjmp	.+6      	//  0x7ec6
/*7ec0:	0a 2f*/		mov	r16, r26
/*7ec2:	0b 2b*/		or	r16, r27
/*7ec4:	e1 f0*/		breq	.+56     	//  0x7efe
/*7ec6:	48 16*/		cp	r4, r24
/*7ec8:	59 06*/		cpc	r5, r25
/*7eca:	80 f0*/		brcs	.+32     	//  0x7eec
/*7ecc:	f4 01*/		movw	ZL, r8
/*7ece:	01 91*/		ld	r16, Z+
/*7ed0:	4f 01*/		movw	r8, ZL
/*7ed2:	09 83*/		std	Y+1, r16	// 0x01
/*7ed4:	11 97*/		sbiw	r26, 0x01	// 1
/*7ed6:	29 f0*/		breq	.+10     	//  0x7ee2
/*7ed8:	01 91*/		ld	r16, Z+
/*7eda:	4f 01*/		movw	r8, ZL
/*7edc:	08 83*/		st	Y, r16
/*7ede:	11 97*/		sbiw	r26, 0x01	// 1
/*7ee0:	11 c0*/		rjmp	.+34     	//  0x7f04

/*7ee2:	f2 01*/		movw	ZL, r4
/*7ee4:	31 96*/		adiw	ZL, 0x01	// 1
/*7ee6:	04 91*/		lpm	r16, Z
/*7ee8:	08 83*/		st	Y, r16
/*7eea:	0c c0*/		rjmp	.+24     	//  0x7f04

/*7eec:	f2 01*/		movw	ZL, r4
/*7eee:	04 91*/		lpm	r16, Z
/*7ef0:	09 83*/		std	Y+1, r16	// 0x01
/*7ef2:	31 96*/		adiw	ZL, 0x01	// 1
/*7ef4:	e8 17*/		cp	ZL, r24
/*7ef6:	f9 07*/		cpc	ZH, r25
/*7ef8:	a1 f7*/		brne	.-24     	//  0x7ee2
/*7efa:	f4 01*/		movw	ZL, r8
/*7efc:	ed cf*/		rjmp	.-38     	//  0x7ed8

/*7efe:	1b d0*/		rcall	L7F36
/*7f00:	08 83*/		st	Y, r16
/*7f02:	19 83*/		std	Y+1, r17	// 0x01
/*7f04:	92 01*/		movw	r18, r4
/*7f06:	08 81*/		ld	r16, Y
/*7f08:	19 81*/		ldd	r17, Y+1	// 0x01
/*7f0a:	0e 94 21 3f*/	call	L7E42
/*7f0e:	16 d0*/		rcall	L7F3C
/*7f10:	aa 94*/		dec	r10
/*7f12:	b1 f6*/		brne	.-84     	//  0x7ec0
/*7f14:	23 01*/		movw	r4, r6
/*7f16:	aa 24*/		eor	r10, r10
/*7f18:	bb 24*/		eor	r11, r11
/*7f1a:	0d d0*/		rcall	L7F36
/*7f1c:	31 2f*/		mov	r19, r17
/*7f1e:	0f 3f*/		cpi	r16, 0xFF	// 255
/*7f20:	3f 4f*/		sbci	r19, 0xFF	// 255
/*7f22:	09 f4*/		brne	1f
/*7f24:	af cf*/		rjmp	.-162    	//  0x7e84

/*7f26:	83 01*/	1:	movw	r16, r6
/*7f28:	1d d0*/		rcall	L7F64
/*7f2a:	b7 cf*/		rjmp	.-146    	//  0x7e9a

/*7f2c:	01 e0*/		ldi	r16, 0x01	// 1
/*7f2e:	22 96*/		adiw	YL, 0x02	// 2
/*7f30:	ec e0*/		ldi	ZL, 0x0C	// 12
/*7f32:	0c 94 b2 3e*/	jmp	0x7d64	//  0x7d64
L7F36:
/*7f36:	82 01*/		movw	r16, r4
/*7f38:	0c 94 5f 38*/	jmp	L70BE
L7F3C:
	ldi	r16, 2
	add	r4, r16
	ldi	r16, 0
	adc	r5, r16
	ret

L7F46:/*9a 93*/		st	-Y, r25
/*7f48:	8a 93*/		st	-Y, r24
/*7f4a:	80 e0*/		ldi	r24, 0x00	// 0
/*7f4c:	90 e0*/		ldi	r25, 0x00	// 0
/*7f4e:	8c 01*/	0:	movw	r16, r24
/*7f50:	09 d0*/		rcall	L7F64
/*7f52:	80 58*/		subi	r24, 0x80	// 128
/*7f54:	9f 4f*/		sbci	r25, 0xFF	// 255
/*7f56:	8f 3f*/		cpi	r24, 0xFF	// 255
/*7f58:	0f e6*/		ldi	r16, 0x6F	// 111
/*7f5a:	90 07*/		cpc	r25, r16
/*7f5c:	c0 f3*/		brcs	0b
/*7f5e:	89 91*/		ld	r24, Y+
/*7f60:	99 91*/		ld	r25, Y+
/*7f62:	08 95*/		ret
L7F64:
/*7f64:	20 e0*/	1:	ldi	r18, 0x00	// 0
/*7f66:	30 e0*/		ldi	r19, 0x00	// 0
/*7f68:	0c 94 fb 3e*/	jmp	spm_erase
L7F6C:	// RAM-Initialisierungsdaten (section(".data"))
	.byte	0x00,0x00,0x00,0x00
	.byte	0x00,0x00,0x00,0x00
	.byte	0x00,0x00,0xFC,0x00

	.org	0x0fe4,0xFF
	jmp	spm_erase_write
	jmp	lpm_signature
	jmp	lpm_lock
	jmp	L7E42
	jmp	spm_write_page
	jmp	spm_erase_2
	jmp	L7E52
Detected encoding: UTF-80