Hacking the iCruze Display


avrdude> part
>>> part 

AVR Part                      : ATTINY26
Chip Erase delay              : 9000 us
PAGEL                         : PB3
BS2                           : PB2
RESET disposition             : dedicated
RETRY pulse                   : SCK
serial program mode           : yes
parallel program mode         : yes
Timeout                       : 200
StabDelay                     : 100
CmdexeDelay                   : 25
SyncLoops                     : 32
ByteDelay                     : 0
PollIndex                     : 3
PollValue                     : 0x53
Memory Detail                 :

                         Block Poll               Page                       Polled
  Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
  ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
  eeprom         4    10    64    0 no        128    0      0  9000  9000 0xff 0xff
  flash         33     6    16    0 yes      2048   32     64  4500  4500 0xff 0xff
  signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
  lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
  lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
  hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
  calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00


>>> dump flash 0 2000 
0000  0c c0 00 00 00 00 00 00  00 00 06 c0 74 c1 00 00  | ...........t...|
0010  00 00 00 00 00 00 00 00  00 c0 0f ef 0a bb 0a e7  |............ . .|
0020  07 bb c0 9a c2 9a 0f ed  0d bf c4 98 c3 98 c5 98  |........ .......|
0030  e6 d0 16 d1 1c d1 44 24  c4 d0 7a d1 79 d1 b0 99  |......D$..z.y...|
0040  36 c0 b2 99 34 c0 60 d1  b0 99 31 c0 b2 99 2f c0  |6...4.`...1.../.|
0050  93 c1 4d 4f 4e 53 54 45  52 20 2a 20 4d 4f 4e 53  |..MONSTER * MONS|
0060  54 45 52 20 2a 2a 0d 69  43 52 55 5a 45 20 69 43  |TER ** iCRUZE iC|
0070  52 55 5a 45 20 20 20 53  56 31 59 aa 53 44 41 20  |RUZE   SV1Y.SDA |
0080  69 73 20 48 69 67 68 aa  20 0d 53 43 4b 20 69 73  |is High.  SCK is|
0090  20 48 69 67 68 aa 53 44  41 20 69 73 20 48 69 67  | High.SDA is Hig|
00a0  68 0d 53 43 4b 20 69 73  20 48 69 67 68 aa 0e e7  |h SCK is High...|
00b0  07 bb c2 98 3d d1 a8 95  0e e0 01 bd 0e e7 07 bb  |....=...........|
00c0  c2 98 36 d1 35 d1 0a e7  07 bb c2 9a 04 d1 6f d0  |..6.5. .......o.|
00d0  50 e0 46 fa 46 f0 f0 e0  e0 e6 07 c0 e8 94 47 f8  |P.F.F.........G.|
00e0  66 d0 26 d1 eb cf f0 e0  e8 e8 72 d0 53 95 0f 3f  |f.&.......r.S..?|
00f0  71 f3 01 93 79 d0 47 fa  8e f3 53 95 0f 3f 39 f3  |q...y.G...S..?9.|
0100  01 93 58 32 b9 f7 70 d0  70 2f 0e e7 07 bb c2 98  |..X2..p.p/......|
0110  1f d0 78 17 49 f4 ec d0  09 d0 44 fa 0e f4 27 d0  |..x.I... .D...'.|
0120  0a e7 07 bb c2 9a d3 cf  d4 d0 fa cf f0 e0 e0 e6  | ...............|
0130  d0 e0 c8 e8 50 e0 53 95  09 91 11 91 59 32 29 f0  |....P.S. ...Y2).|
0140  01 17 c9 f3 68 94 44 f8  08 95 e8 94 44 f8 08 95  |....h.D.....D...|
0150  80 e0 46 fa 1e f0 f0 e0  e0 e6 02 c0 f0 e0 e8 e8  |..F.............|
0160  50 e0 01 91 80 27 53 95  58 32 d9 f7 08 95 46 fa  |P....'S.X2....F.|
0170  1e f0 f0 e0 e0 e6 02 c0  f0 e0 e8 e8 78 d0 50 e0  |............x.P.|
0180  01 91 00 38 09 f4 0f ef  9f d0 54 31 c9 f7 73 d0  |...8 .....T1..s.|
0190  50 e0 01 91 00 38 09 f4  0f ef 96 d0 54 31 c9 f7  |P....8 .....T1..|
01a0  1e f0 68 94 46 f8 08 95  e8 94 46 f8 08 95 1f e7  |..h.F.....F.....|
01b0  c6 9a a8 95 1a 95 19 f0  b2 99 fa cf f8 cf c6 98  |................|
01c0  08 95 f0 e0 e0 e6 00 e2  01 93 e0 3b e9 f7 08 95  |...........;....|
01d0  18 e2 1d b9 10 e4 1e b9  76 99 04 c0 a8 95 47 fa  |........v.....G.|
01e0  16 f0 fa cf 0f b1 08 95  18 e2 1d b9 10 e4 1e b9  |................|
01f0  76 99 f8 cf 47 fa be f3  fb cf 0f b1 08 95 c4 98  |v...G...........|
0200  c3 98 c5 98 a2 d0 08 e3  0b bb c5 9a 87 d0 c5 98  |........ .......|
0210  91 d0 c5 9a 83 d0 c5 98  8b d0 c5 9a 7f d0 c5 98  |................|
0220  87 d0 c5 9a 7b d0 c5 98  08 e0 0b bb c5 9a 76 d0  |....{..... ...v.|
0230  c5 98 6a d0 01 e0 0b bb  c5 9a 70 d0 c5 98 64 d0  |..j... ...p...d.|
0240  06 e0 0b bb c5 9a 6a d0  c5 98 74 d0 08 95 0f e0  |.. ...j...t.....|
0250  0b bb c3 98 00 00 c5 9a  61 d0 c5 98 5a d0 08 95  | .......a...Z...|
0260  0c e0 0b bb f6 cf 00 e8  0b bb 1c d0 0e d0 00 e8  | . ..... .......|
0270  0b bb 18 d0 08 95 00 ec  fb cf 00 ec 0b bb 12 d0  | ........... ...|
0280  04 d0 00 ec 0b bb 0e d0  08 95 00 e2 0b bb 10 e0  |.... ....... ...|
0290  c3 9a 00 00 c5 9a 42 d0  c5 98 3b d0 13 95 14 31  |......B...;....1|
02a0  c9 f7 08 95 c3 98 00 00  c5 9a 38 d0 c5 98 31 d0  |..........8...1.|
02b0  08 95 c3 9a 00 00 c5 9a  36 d0 35 d0 c5 98 29 d0  |........6.5...).|
02c0  08 95 db df d0 df 08 95  0b bb 53 95 f2 cf 0b ba  |........ .S... .|
02d0  f0 cf a1 e1 01 c0 a3 e3  e8 94 47 f8 08 e0 03 bf  |..........G.....|
02e0  00 27 02 bf 02 e0 09 bf  78 94 05 e0 03 bf 08 95  |.'.... .x.......|
02f0  08 e0 03 bf 08 95 1f b6  aa 95 21 f4 08 e0 03 bf  |..........!.....|
0300  68 94 47 f8 1f be 18 95  00 e0 03 95 08 3c e9 f7  |h.G..........<..|
0310  08 95 00 e0 03 95 04 36  e9 f7 08 95 00 e0 03 95  |.......6........|
0320  04 31 e9 f7 08 95 00 e0  03 95 02 30 e9 f7 08 95  |.1.........0....|
0330  0a e0 01 c0 04 e6 10 e0  13 95 18 3c e9 f7 0a 95  | ..........<.. .|
0340  00 30 c9 f7 08 95 08 ec  f6 cf 20 e0 00 e0 10 e0  |.0........ .....|
0350  13 95 18 3c e9 f7 03 95  04 36 c9 f7 23 95 25 30  |...<.....6..#.%0|
0360  a9 f7 08 95 f2 df f1 df  f0 df ef df ee df ed df  |................|
0370  ec df eb df ea df e9 cf  f0 e0 e2 e5 25 d0 b0 99  |............%...|
0380  03 c0 b2 99 0b c0 fb cf  6e df 77 df f0 e0 ec e7  |.... ...n.w.....|
0390  1b d0 b0 9b f1 cf b2 99  0b c0 fb cf 64 df 6d df  |........ ...d.m.|
03a0  f0 e0 e8 e8 11 d0 b0 99  03 c0 b2 9b e5 cf fb cf  |................|
03b0  f0 e0 e6 e9 09 d0 d6 df  b0 9b de cf b2 9b dc cf  |.... ...........|
03c0  52 df 5b df d5 df f4 cf  05 91 0a 3a a1 f0 0d 30  |R.[....... :.. 0|
03d0  99 f0 0a 30 21 f0 0f 93  46 df 0f 91 75 df 05 91  |.. 0!...F...u...|
03e0  0a 3a 49 f0 0d 30 41 f0  0a 30 39 f0 0f 93 8c df  | :I. 0A. 09.....|
03f0  0f 91 6a df f4 cf 08 95  40 df 05 91 0a 3a d9 f3  |..j.....@... :..|
0400  0d 30 c9 f3 0a 30 b9 f3  0f 93 7e df 0f 91 5c df  | 0.. 0....~...\.|
0410  f4 cf ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0420  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|

The rest of flash is all ff

This is it dissambled, I think its right but not sure

#arch AT90S8515
#include "avr.inc"

;	seg abs=0x0 flash.code0

	rjmp	L001		; 0000, Dest: 001A
	nop			; 0002
	nop			; 0004
	nop			; 0006
	nop			; 0008
	rjmp	L000		; 000A, Dest: 0018
	rjmp	L036		; 000C, Dest: 02F6
	nop			; 000E
	nop			; 0010
	nop			; 0012
	nop			; 0014
	nop			; 0016

L000:
	rjmp	L001		; 0018, Dest: 001A

L001:
	ldi	r16, 0xFF	; 001A
	;ser	r16		; 001A

	out	0x1A, r16	; 001C	DDRA = FF
	ldi	r16, 0x7A	; 001E
	out	0x17, r16	; 0020	DDRB = 7A
	sbi	0x18, 0		; 0022	PORTB bit 0 = 1
	sbi	0x18, 2		; 0024	PORTB bit 2 = 1
	ldi	r16, 0xDF	; 0026
	out	0x3D, r16	; 0028	SP
	cbi	0x18, 4		; 002A
	cbi	0x18, 3		; 002C
	cbi	0x18, 5		; 002E
	rcall	Func007		; 0030, Dest: 01FE
	rcall	Func008		; 0032, Dest: 0260
	rcall	Func010		; 0034, Dest: 026E

	clr	r4		; 0036
	;eor	r4, r4		; 0036

	rcall	Func004		; 0038, Dest: 01C2
	rcall	Func023		; 003A, Dest: 0330
	rcall	Func023		; 003C, Dest: 0330
	sbic	0x16, 0		; 003E
	rjmp	L002		; 0040, Dest: 00AE
	sbic	0x16, 2		; 0042
	rjmp	L002		; 0044, Dest: 00AE
	rcall	Func019		; 0046, Dest: 0308
	sbic	0x16, 0		; 0048
	rjmp	L002		; 004A, Dest: 00AE
	sbic	0x16, 2		; 004C
	rjmp	L002		; 004E, Dest: 00AE
	rjmp	L048		; 0050, Dest: 0378
	sbci	r20, 0xFD	; 0052
	subi	r20, 0x3E	; 0054
	sbci	r21, 0x54	; 0056
	and	r5, r2		; 0058
	and	r2, r10		; 005A
	sbci	r20, 0xFD	; 005C
	subi	r20, 0x3E	; 005E
	sbci	r21, 0x54	; 0060
	and	r5, r2		; 0062
	or	r2, r26		; 0064

	ori	r16, 0x9D	; 0066
	;sbr	r16, 0x9D	; 0066

	subi	r20, 0x23	; 0068
	subi	r21, 0xA5	; 006A
	and	r4, r5		; 006C
	sbci	r22, 0x39	; 006E
	subi	r21, 0x52	; 0070
	sbci	r21, 0x5A	; 0072
	and	r2, r0		; 0074
	subi	r18, 0x30	; 0076
	cpi	r21, 0x16	; 0078
	std	Y+49, r5	; 007A
	sbci	r21, 0x43	; 007C
	and	r4, r1		; 007E

	andi	r22, 0x39	; 0080
	;cbr	r22, 0x39	; 0080

	sbci	r18, 0x80	; 0082

	ori	r22, 0x79	; 0084
	;sbr	r22, 0x79	; 0084

	std	Y+48, r6	; 0086
	add	r18, r0		; 0088
	sbci	r21, 0x33	; 008A
	and	r4, r11		; 008C

	andi	r22, 0x39	; 008E
	;cbr	r22, 0x39	; 008E

	sbci	r18, 0x80	; 0090

	ori	r22, 0x79	; 0092
	;sbr	r22, 0x79	; 0092

	std	Y+48, r6	; 0094
	sbci	r21, 0x43	; 0096
	and	r4, r1		; 0098

	andi	r22, 0x39	; 009A
	;cbr	r22, 0x39	; 009A

	sbci	r18, 0x80	; 009C

	ori	r22, 0x79	; 009E
	;sbr	r22, 0x79	; 009E

	add	r22, r8		; 00A0
	sbci	r21, 0x33	; 00A2
	and	r4, r11		; 00A4

	andi	r22, 0x39	; 00A6
	;cbr	r22, 0x39	; 00A6

	sbci	r18, 0x80	; 00A8

	ori	r22, 0x79	; 00AA
	;sbr	r22, 0x79	; 00AA

	std	Y+48, r6	; 00AC

L002:
	ldi	r16, 0x7E	; 00AE
	out	0x17, r16	; 00B0
	cbi	0x18, 2		; 00B2
	rcall	Func023		; 00B4, Dest: 0330
	wdr			; 00B6
	ldi	r16, 0xE	; 00B8
	out	0x21, r16	; 00BA

L003:
	ldi	r16, 0x7E	; 00BC
	out	0x17, r16	; 00BE
	cbi	0x18, 2		; 00C0
	rcall	Func023		; 00C2, Dest: 0330
	rcall	Func023		; 00C4, Dest: 0330
	ldi	r16, 0x7A	; 00C6
	out	0x17, r16	; 00C8
	sbi	0x18, 2		; 00CA
	rcall	Func017		; 00CC, Dest: 02D6

L004:
	rcall	Func003		; 00CE, Dest: 01AE
	ldi	r21, 0x0	; 00D0
	bst	r4, 6		; 00D2

	brbs	6, L006		; 00D4, Dest: 00E6
	;brts	L006		; 00D4, Dest: 00E6

	ldi	r31, 0x0	; 00D6
	ldi	r30, 0x60	; 00D8
	rjmp	L007		; 00DA, Dest: 00EA

L005:
	bclr	6		; 00DC
	;clt			; 00DC

	bld	r4, 7		; 00DE
	rcall	Func003		; 00E0, Dest: 01AE
	rcall	Func023		; 00E2, Dest: 0330
	rjmp	L003		; 00E4, Dest: 00BC

L006:
	ldi	r31, 0x0	; 00E6
	ldi	r30, 0x88	; 00E8

L007:
	rcall	Func005		; 00EA, Dest: 01D0
	inc	r21		; 00EC
	cpi	r16, 0xFF	; 00EE

	brbs	1, L004		; 00F0, Dest: 00CE
	;breq	L004		; 00F0, Dest: 00CE

	st	Z+, r16		; 00F2

L008:
	rcall	Func006		; 00F4, Dest: 01E8
	bst	r4, 7		; 00F6

	brbs	6, L005		; 00F8, Dest: 00DC
	;brts	L005		; 00F8, Dest: 00DC

	inc	r21		; 00FA
	cpi	r16, 0xFF	; 00FC

	brbs	1, L004		; 00FE, Dest: 00CE
	;breq	L004		; 00FE, Dest: 00CE

	st	Z+, r16		; 0100
	cpi	r21, 0x28	; 0102

	brbc	1, L008		; 0104, Dest: 00F4
	;brne	L008		; 0104, Dest: 00F4

	rcall	Func006		; 0106, Dest: 01E8
	mov	r23, r16	; 0108
	ldi	r16, 0x7E	; 010A
	out	0x17, r16	; 010C
	cbi	0x18, 2		; 010E
	rcall	Func001		; 0110, Dest: 0150
	cp	r23, r24	; 0112

	brbc	1, L010		; 0114, Dest: 0128
	;brne	L010		; 0114, Dest: 0128

	rcall	Func018		; 0116, Dest: 02F0
	rcall	Func000		; 0118, Dest: 012C
	bst	r4, 4		; 011A

	brbc	6, L009		; 011C, Dest: 0120
	;brtc	L009		; 011C, Dest: 0120

	rcall	Func002		; 011E, Dest: 016E

L009:
	ldi	r16, 0x7A	; 0120
	out	0x17, r16	; 0122
	sbi	0x18, 2		; 0124
	rjmp	L004		; 0126, Dest: 00CE

L010:
	rcall	Func016		; 0128, Dest: 02D2
	rjmp	L009		; 012A, Dest: 0120

Func000:
	ldi	r31, 0x0	; 012C
	ldi	r30, 0x60	; 012E
	ldi	r29, 0x0	; 0130
	ldi	r28, 0x88	; 0132
	ldi	r21, 0x0	; 0134

L011:
	inc	r21		; 0136
	ld	r16, Y+		; 0138
	ld	r17, Z+		; 013A
	cpi	r21, 0x29	; 013C

	brbs	1, L012		; 013E, Dest: 014A
	;breq	L012		; 013E, Dest: 014A

	cp	r16, r17	; 0140

	brbs	1, L011		; 0142, Dest: 0136
	;breq	L011		; 0142, Dest: 0136

	bset	6		; 0144
	;set			; 0144

	bld	r4, 4		; 0146
	ret			; 0148

L012:
	bclr	6		; 014A
	;clt			; 014A

	bld	r4, 4		; 014C
	ret			; 014E

Func001:
	ldi	r24, 0x0	; 0150
	bst	r4, 6		; 0152

	brbs	6, L013		; 0154, Dest: 015C
	;brts	L013		; 0154, Dest: 015C

	ldi	r31, 0x0	; 0156
	ldi	r30, 0x60	; 0158
	rjmp	L014		; 015A, Dest: 0160

L013:
	ldi	r31, 0x0	; 015C
	ldi	r30, 0x88	; 015E

L014:
	ldi	r21, 0x0	; 0160

L015:
	ld	r16, Z+		; 0162
	eor	r24, r16	; 0164
	inc	r21		; 0166
	cpi	r21, 0x28	; 0168

	brbc	1, L015		; 016A, Dest: 0162
	;brne	L015		; 016A, Dest: 0162

	ret			; 016C

Func002:
	bst	r4, 6		; 016E

	brbs	6, L016		; 0170, Dest: 0178
	;brts	L016		; 0170, Dest: 0178

	ldi	r31, 0x0	; 0172
	ldi	r30, 0x60	; 0174
	rjmp	L017		; 0176, Dest: 017C

L016:
	ldi	r31, 0x0	; 0178
	ldi	r30, 0x88	; 017A

L017:
	rcall	Func010		; 017C, Dest: 026E
	ldi	r21, 0x0	; 017E

L018:
	ld	r16, Z+		; 0180
	cpi	r16, 0x80	; 0182

	brbc	1, L019		; 0184, Dest: 0188
	;brne	L019		; 0184, Dest: 0188

	ldi	r16, 0xFF	; 0186
	;ser	r16		; 0186

L019:
	rcall	Func015		; 0188, Dest: 02C8
	cpi	r21, 0x14	; 018A

	brbc	1, L018		; 018C, Dest: 0180
	;brne	L018		; 018C, Dest: 0180

	rcall	Func011		; 018E, Dest: 0276
	ldi	r21, 0x0	; 0190

L020:
	ld	r16, Z+		; 0192
	cpi	r16, 0x80	; 0194

	brbc	1, L021		; 0196, Dest: 019A
	;brne	L021		; 0196, Dest: 019A

	ldi	r16, 0xFF	; 0198
	;ser	r16		; 0198

L021:
	rcall	Func015		; 019A, Dest: 02C8
	cpi	r21, 0x14	; 019C

	brbc	1, L020		; 019E, Dest: 0192
	;brne	L020		; 019E, Dest: 0192

	brbs	6, L022		; 01A0, Dest: 01A8
	;brts	L022		; 01A0, Dest: 01A8

	bset	6		; 01A2
	;set			; 01A2

	bld	r4, 6		; 01A4
	ret			; 01A6

L022:
	bclr	6		; 01A8
	;clt			; 01A8

	bld	r4, 6		; 01AA
	ret			; 01AC

Func003:

L023:
	ldi	r17, 0x7F	; 01AE

L024:
	sbi	0x18, 6		; 01B0
	wdr			; 01B2
	dec	r17		; 01B4

	brbs	1, L025		; 01B6, Dest: 01BE
	;breq	L025		; 01B6, Dest: 01BE

	sbic	0x16, 2		; 01B8
	rjmp	L024		; 01BA, Dest: 01B0
	rjmp	L023		; 01BC, Dest: 01AE

L025:
	cbi	0x18, 6		; 01BE
	ret			; 01C0

Func004:
	ldi	r31, 0x0	; 01C2
	ldi	r30, 0x60	; 01C4
	ldi	r16, 0x20	; 01C6

L026:
	st	Z+, r16		; 01C8
	cpi	r30, 0xB0	; 01CA

	brbc	1, L026		; 01CC, Dest: 01C8
	;brne	L026		; 01CC, Dest: 01C8

	ret			; 01CE

Func005:
	ldi	r17, 0x28	; 01D0
	out	0xD, r17	; 01D2
	ldi	r17, 0x40	; 01D4
	out	0xE, r17	; 01D6

L027:
	sbic	0xE, 6		; 01D8
	rjmp	L028		; 01DA, Dest: 01E4
	wdr			; 01DC
	bst	r4, 7		; 01DE

	brbs	6, L029		; 01E0, Dest: 01E6
	;brts	L029		; 01E0, Dest: 01E6

	rjmp	L027		; 01E2, Dest: 01D8

L028:
	in	r16, 0xF	; 01E4

L029:
	ret			; 01E6

Func006:
	ldi	r17, 0x28	; 01E8
	out	0xD, r17	; 01EA
	ldi	r17, 0x40	; 01EC
	out	0xE, r17	; 01EE

L030:
	sbic	0xE, 6		; 01F0
	rjmp	L028		; 01F2, Dest: 01E4
	bst	r4, 7		; 01F4

	brbs	6, L029		; 01F6, Dest: 01E6
	;brts	L029		; 01F6, Dest: 01E6

	rjmp	L030		; 01F8, Dest: 01F0
	in	r16, 0xF	; 01FA
	ret			; 01FC

Func007:
	cbi	0x18, 4		; 01FE
	cbi	0x18, 3		; 0200
	cbi	0x18, 5		; 0202
	rcall	Func025		; 0204, Dest: 034A
	ldi	r16, 0x38	; 0206
	out	0x1B, r16	; 0208
	sbi	0x18, 5		; 020A
	rcall	Func021		; 020C, Dest: 031C
	cbi	0x18, 5		; 020E
	rcall	Func024		; 0210, Dest: 0334
	sbi	0x18, 5		; 0212
	rcall	Func021		; 0214, Dest: 031C
	cbi	0x18, 5		; 0216
	rcall	Func023		; 0218, Dest: 0330
	sbi	0x18, 5		; 021A
	rcall	Func021		; 021C, Dest: 031C
	cbi	0x18, 5		; 021E
	rcall	Func023		; 0220, Dest: 0330
	sbi	0x18, 5		; 0222
	rcall	Func021		; 0224, Dest: 031C
	cbi	0x18, 5		; 0226
	ldi	r16, 0x8	; 0228
	out	0x1B, r16	; 022A
	sbi	0x18, 5		; 022C
	rcall	Func021		; 022E, Dest: 031C
	cbi	0x18, 5		; 0230
	rcall	Func019		; 0232, Dest: 0308
	ldi	r16, 0x1	; 0234
	out	0x1B, r16	; 0236
	sbi	0x18, 5		; 0238
	rcall	Func021		; 023A, Dest: 031C
	cbi	0x18, 5		; 023C
	rcall	Func019		; 023E, Dest: 0308
	ldi	r16, 0x6	; 0240
	out	0x1B, r16	; 0242
	sbi	0x18, 5		; 0244
	rcall	Func021		; 0246, Dest: 031C
	cbi	0x18, 5		; 0248
	rcall	Func024		; 024A, Dest: 0334
	ret			; 024C
	ldi	r16, 0xF	; 024E
	out	0x1B, r16	; 0250

L031:
	cbi	0x18, 3		; 0252
	nop			; 0254
	sbi	0x18, 5		; 0256
	rcall	Func021		; 0258, Dest: 031C
	cbi	0x18, 5		; 025A
	rcall	Func020		; 025C, Dest: 0312
	ret			; 025E

Func008:
	ldi	r16, 0xC	; 0260
	out	0x1B, r16	; 0262
	rjmp	L031		; 0264, Dest: 0252

Func009:
	ldi	r16, 0x80	; 0266
	out	0x1B, r16	; 0268
	rcall	Func014		; 026A, Dest: 02A4
	rcall	Func013		; 026C, Dest: 028A

Func010:
	ldi	r16, 0x80	; 026E

L032:
	out	0x1B, r16	; 0270
	rcall	Func014		; 0272, Dest: 02A4
	ret			; 0274

Func011:
	ldi	r16, 0xC0	; 0276
	rjmp	L032		; 0278, Dest: 0270

Func012:
	ldi	r16, 0xC0	; 027A
	out	0x1B, r16	; 027C
	rcall	Func014		; 027E, Dest: 02A4
	rcall	Func013		; 0280, Dest: 028A
	ldi	r16, 0xC0	; 0282
	out	0x1B, r16	; 0284
	rcall	Func014		; 0286, Dest: 02A4
	ret			; 0288

Func013:
	ldi	r16, 0x20	; 028A
	out	0x1B, r16	; 028C
	ldi	r17, 0x0	; 028E
	sbi	0x18, 3		; 0290
	nop			; 0292

L033:
	sbi	0x18, 5		; 0294
	rcall	Func021		; 0296, Dest: 031C
	cbi	0x18, 5		; 0298
	rcall	Func020		; 029A, Dest: 0312
	inc	r17		; 029C
	cpi	r17, 0x14	; 029E

	brbc	1, L033		; 02A0, Dest: 0294
	;brne	L033		; 02A0, Dest: 0294

	ret			; 02A2

Func014:
	cbi	0x18, 3		; 02A4
	nop			; 02A6
	sbi	0x18, 5		; 02A8
	rcall	Func021		; 02AA, Dest: 031C
	cbi	0x18, 5		; 02AC
	rcall	Func020		; 02AE, Dest: 0312
	ret			; 02B0

L034:
	sbi	0x18, 3		; 02B2
	nop			; 02B4
	sbi	0x18, 5		; 02B6
	rcall	Func022		; 02B8, Dest: 0326
	rcall	Func022		; 02BA, Dest: 0326
	cbi	0x18, 5		; 02BC
	rcall	Func020		; 02BE, Dest: 0312
	ret			; 02C0
	rcall	Func012		; 02C2, Dest: 027A
	rcall	Func009		; 02C4, Dest: 0266
	ret			; 02C6

Func015:
	out	0x1B, r16	; 02C8
	inc	r21		; 02CA
	rjmp	L034		; 02CC, Dest: 02B2
	out	0x1B, r0	; 02CE
	rjmp	L034		; 02D0, Dest: 02B2

Func016:
	ldi	r26, 0x11	; 02D2
	rjmp	L035		; 02D4, Dest: 02D8

Func017:
	ldi	r26, 0x33	; 02D6

L035:
	bclr	6		; 02D8
	;clt			; 02D8

	bld	r4, 7		; 02DA
	ldi	r16, 0x8	; 02DC
	out	0x33, r16	; 02DE

	clr	r16		; 02E0
	;eor	r16, r16	; 02E0

	out	0x32, r16	; 02E2
	ldi	r16, 0x2	; 02E4
	out	0x39, r16	; 02E6

	bset	7		; 02E8
	;sei			; 02E8

	ldi	r16, 0x5	; 02EA
	out	0x33, r16	; 02EC
	ret			; 02EE

Func018:
	ldi	r16, 0x8	; 02F0
	out	0x33, r16	; 02F2
	ret			; 02F4

L036:
	in	r1, 0x3F	; 02F6
	dec	r26		; 02F8

	brbc	1, L037		; 02FA, Dest: 0304
	;brne	L037		; 02FA, Dest: 0304

	ldi	r16, 0x8	; 02FC
	out	0x33, r16	; 02FE

	bset	6		; 0300
	;set			; 0300

	bld	r4, 7		; 0302

L037:
	out	0x3F, r1	; 0304
	reti			; 0306

Func019:
	ldi	r16, 0x0	; 0308

L038:
	inc	r16		; 030A
	cpi	r16, 0xC8	; 030C

	brbc	1, L038		; 030E, Dest: 030A
	;brne	L038		; 030E, Dest: 030A

	ret			; 0310

Func020:
	ldi	r16, 0x0	; 0312

L039:
	inc	r16		; 0314
	cpi	r16, 0x64	; 0316

	brbc	1, L039		; 0318, Dest: 0314
	;brne	L039		; 0318, Dest: 0314

	ret			; 031A

Func021:
	ldi	r16, 0x0	; 031C

L040:
	inc	r16		; 031E
	cpi	r16, 0x14	; 0320

	brbc	1, L040		; 0322, Dest: 031E
	;brne	L040		; 0322, Dest: 031E

	ret			; 0324

Func022:
	ldi	r16, 0x0	; 0326

L041:
	inc	r16		; 0328
	cpi	r16, 0x2	; 032A

	brbc	1, L041		; 032C, Dest: 0328
	;brne	L041		; 032C, Dest: 0328

	ret			; 032E

Func023:
	ldi	r16, 0xA	; 0330
	rjmp	L042		; 0332, Dest: 0336

Func024:
	ldi	r16, 0x64	; 0334

L042:
	ldi	r17, 0x0	; 0336

L043:
	inc	r17		; 0338
	cpi	r17, 0xC8	; 033A

	brbc	1, L043		; 033C, Dest: 0338
	;brne	L043		; 033C, Dest: 0338

	dec	r16		; 033E
	cpi	r16, 0x0	; 0340

	brbc	1, L042		; 0342, Dest: 0336
	;brne	L042		; 0342, Dest: 0336

	ret			; 0344
	ldi	r16, 0xC8	; 0346
	rjmp	L042		; 0348, Dest: 0336

; i think this is a delay function
Func025:

L044:
	ldi	r18, 0x0	; 034A

L045:
	ldi	r16, 0x0	; 034C

L046:
	ldi	r17, 0x0	; 034E

L047:
	inc	r17		; 0350
	cpi	r17, 0xC8	; 0352

	brbc	1, L047		; 0354, Dest: 0350
	;brne	L047		; 0354, Dest: 0350

	inc	r16		; 0356
	cpi	r16, 0x64	; 0358

	brbc	1, L046		; 035A, Dest: 034E
	;brne	L046		; 035A, Dest: 034E

	inc	r18		; 035C
	cpi	r18, 0x5	; 035E

	brbc	1, L045		; 0360, Dest: 034C
	;brne	L045		; 0360, Dest: 034C

	ret			; 0362

Func026:
	rcall	Func025		; 0364, Dest: 034A
	rcall	Func025		; 0366, Dest: 034A
	rcall	Func025		; 0368, Dest: 034A
	rcall	Func025		; 036A, Dest: 034A
	rcall	Func025		; 036C, Dest: 034A
	rcall	Func025		; 036E, Dest: 034A

Func027:
	rcall	Func025		; 0370, Dest: 034A
	rcall	Func025		; 0372, Dest: 034A
	rcall	Func025		; 0374, Dest: 034A
	rjmp	L044		; 0376, Dest: 034A

L048:
	ldi	r31, 0x0	; 0378
	ldi	r30, 0x52	; 037A
	rcall	Func028		; 037C, Dest: 03C8

L049:
	sbic	0x16, 0		; 037E
	rjmp	L050		; 0380, Dest: 0388
	sbic	0x16, 2		; 0382
	rjmp	L052		; 0384, Dest: 039C
	rjmp	L049		; 0386, Dest: 037E

L050:
	rcall	Func009		; 0388, Dest: 0266
	rcall	Func012		; 038A, Dest: 027A
	ldi	r31, 0x0	; 038C
	ldi	r30, 0x7C	; 038E
	rcall	Func028		; 0390, Dest: 03C8

L051:
	sbis	0x16, 0		; 0392
	rjmp	L048		; 0394, Dest: 0378
	sbic	0x16, 2		; 0396
	rjmp	L054		; 0398, Dest: 03B0
	rjmp	L051		; 039A, Dest: 0392

L052:
	rcall	Func009		; 039C, Dest: 0266
	rcall	Func012		; 039E, Dest: 027A
	ldi	r31, 0x0	; 03A0
	ldi	r30, 0x88	; 03A2
	rcall	Func028		; 03A4, Dest: 03C8

L053:
	sbic	0x16, 0		; 03A6
	rjmp	L054		; 03A8, Dest: 03B0
	sbis	0x16, 2		; 03AA
	rjmp	L048		; 03AC, Dest: 0378
	rjmp	L053		; 03AE, Dest: 03A6

L054:
	ldi	r31, 0x0	; 03B0
	ldi	r30, 0x96	; 03B2
	rcall	Func028		; 03B4, Dest: 03C8
	rcall	Func026		; 03B6, Dest: 0364
	sbis	0x16, 0		; 03B8
	rjmp	L048		; 03BA, Dest: 0378
	sbis	0x16, 2		; 03BC
	rjmp	L048		; 03BE, Dest: 0378
	rcall	Func009		; 03C0, Dest: 0266
	rcall	Func012		; 03C2, Dest: 027A
	rcall	Func027		; 03C4, Dest: 0370
	rjmp	L054		; 03C6, Dest: 03B0

Func028:
;	dc.W	0x9105		; 03C8
	cpi	r16, 0xAA	; 03CA

	brbs	1, L056		; 03CC, Dest: 03F6
	;breq	L056		; 03CC, Dest: 03F6

	cpi	r16, 0xD	; 03CE

	brbs	1, L057		; 03D0, Dest: 03F8
	;breq	L057		; 03D0, Dest: 03F8

	cpi	r16, 0xA	; 03D2

	brbs	1, L055		; 03D4, Dest: 03DE
	;breq	L055		; 03D4, Dest: 03DE

	push	r16		; 03D6
	rcall	Func009		; 03D8, Dest: 0266
	pop	r16		; 03DA
	rcall	Func015		; 03DC, Dest: 02C8

L055:
;	dc.W	0x9105		; 03DE
	cpi	r16, 0xAA	; 03E0

	brbs	1, L056		; 03E2, Dest: 03F6
	;breq	L056		; 03E2, Dest: 03F6

	cpi	r16, 0xD	; 03E4

	brbs	1, L057		; 03E6, Dest: 03F8
	;breq	L057		; 03E6, Dest: 03F8

	cpi	r16, 0xA	; 03E8

	brbs	1, L058		; 03EA, Dest: 03FA
	;breq	L058		; 03EA, Dest: 03FA

	push	r16		; 03EC
	rcall	Func019		; 03EE, Dest: 0308
	pop	r16		; 03F0
	rcall	Func015		; 03F2, Dest: 02C8
	rjmp	L055		; 03F4, Dest: 03DE

L056:
	ret			; 03F6

L057:
	rcall	Func012		; 03F8, Dest: 027A

L058:
;	dc.W	0x9105		; 03FA
	cpi	r16, 0xAA	; 03FC

	brbs	1, L056		; 03FE, Dest: 03F6
	;breq	L056		; 03FE, Dest: 03F6

	cpi	r16, 0xD	; 0400

	brbs	1, L056		; 0402, Dest: 03F6
	;breq	L056		; 0402, Dest: 03F6

	cpi	r16, 0xA	; 0404

	brbs	1, L056		; 0406, Dest: 03F6
	;breq	L056		; 0406, Dest: 03F6

	push	r16		; 0408
	rcall	Func019		; 040A, Dest: 0308
	pop	r16		; 040C
	rcall	Func015		; 040E, Dest: 02C8
	rjmp	L058		; 0410, Dest: 03FA