Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx 
Culled Empty Block (label) @1
Culled Empty Block (label) @2
Culled Empty Block (label) @3
Culled Empty Block (label) main::@6
Culled Empty Block (label) @5
Culled Empty Block (label) textbox::@1
Culled Empty Block (label) textbox::@2
Culled Empty Block (label) textbox::@3
Culled Empty Block (label) textbox::@9
Culled Empty Block (label) textbox::@10
Culled Empty Block (label) textbox::@11
Culled Empty Block (label) textbox::@15
Culled Empty Block (label) textbox::@13
Culled Empty Block (label) textbox::@14
Culled Empty Block (label) textbox::@21
Culled Empty Block (label) textbox::@22
Culled Empty Block (label) textbox::@23
Culled Empty Block (label) @6
Culled Empty Block (label) draw_window::@1
Culled Empty Block (label) draw_window::@10

CONTROL FLOW GRAPH SSA
@begin: scope:[]  from
  to:@4
@4: scope:[]  from @begin
  (byte*) screen#0 ← ((byte*)) (number) $400
  (byte[]) text#0 ← (const string) $0
  (byte[]) text2#0 ← (const string) $1
  to:@7
main: scope:[main]  from @7
  (byte) main::x#0 ← (number) 0
  to:main::@1
main::@1: scope:[main]  from main main::@3
  (byte) main::x#2 ← phi( main/(byte) main::x#0 main::@3/(byte) main::x#1 )
  (byte~) main::$3 ← (byte) main::x#2 + (byte) main::x#2
  (number~) main::$4 ← (byte~) main::$3 + (number) 1
  (number~) main::$5 ← (byte) main::x#2 + (number) $a
  (byte) textbox::x1#0 ← (byte) main::x#2
  (byte) textbox::y1#0 ← (byte) main::x#2
  (byte) textbox::x2#0 ← (number~) main::$4
  (byte) textbox::y2#0 ← (number~) main::$5
  (byte*) textbox::text#0 ← (byte[]) text2#0
  call textbox 
  to:main::@7
main::@7: scope:[main]  from main::@1
  (byte) main::x#5 ← phi( main::@1/(byte) main::x#2 )
  (word) main::wait#0 ← (number) 0
  to:main::@2
main::@2: scope:[main]  from main::@2 main::@7
  (byte) main::x#4 ← phi( main::@2/(byte) main::x#4 main::@7/(byte) main::x#5 )
  (word) main::wait#2 ← phi( main::@2/(word) main::wait#1 main::@7/(word) main::wait#0 )
  (word) main::wait#1 ← ++ (word) main::wait#2
  (bool~) main::$7 ← (word) main::wait#1 < (number) $88b8
  if((bool~) main::$7) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@2
  (byte) main::x#3 ← phi( main::@2/(byte) main::x#4 )
  (byte) main::x#1 ← (byte) main::x#3 + (number) 2
  (bool~) main::$8 ← (byte) main::x#1 < (number) $f
  if((bool~) main::$8) goto main::@1
  to:main::@4
main::@4: scope:[main]  from main::@3
  (byte) textbox::x1#1 ← (number) 0
  (byte) textbox::y1#1 ← (number) $c
  (byte) textbox::x2#1 ← (number) $14
  (byte) textbox::y2#1 ← (number) $18
  (byte*) textbox::text#1 ← (byte[]) text#0
  call textbox 
  to:main::@8
main::@8: scope:[main]  from main::@4
  (byte) textbox::x1#2 ← (number) 3
  (byte) textbox::y1#2 ← (number) 3
  (byte) textbox::x2#2 ← (number) $25
  (byte) textbox::y2#2 ← (number) 9
  (byte*) textbox::text#2 ← (byte[]) text#0
  call textbox 
  to:main::@9
main::@9: scope:[main]  from main::@8
  (byte) textbox::x1#3 ← (number) $1e
  (byte) textbox::y1#3 ← (number) 8
  (byte) textbox::x2#3 ← (number) $27
  (byte) textbox::y2#3 ← (number) $18
  (byte*) textbox::text#3 ← (byte[]) text#0
  call textbox 
  to:main::@10
main::@10: scope:[main]  from main::@9
  to:main::@5
main::@5: scope:[main]  from main::@10 main::@5
  if(true) goto main::@5
  to:main::@return
main::@return: scope:[main]  from main::@5
  return 
  to:@return
textbox: scope:[textbox]  from main::@1 main::@4 main::@8 main::@9
  (byte*) textbox::text#12 ← phi( main::@1/(byte*) textbox::text#0 main::@4/(byte*) textbox::text#1 main::@8/(byte*) textbox::text#2 main::@9/(byte*) textbox::text#3 )
  (byte) textbox::y2#4 ← phi( main::@1/(byte) textbox::y2#0 main::@4/(byte) textbox::y2#1 main::@8/(byte) textbox::y2#2 main::@9/(byte) textbox::y2#3 )
  (byte) textbox::x2#4 ← phi( main::@1/(byte) textbox::x2#0 main::@4/(byte) textbox::x2#1 main::@8/(byte) textbox::x2#2 main::@9/(byte) textbox::x2#3 )
  (byte) textbox::y1#4 ← phi( main::@1/(byte) textbox::y1#0 main::@4/(byte) textbox::y1#1 main::@8/(byte) textbox::y1#2 main::@9/(byte) textbox::y1#3 )
  (byte) textbox::x1#4 ← phi( main::@1/(byte) textbox::x1#0 main::@4/(byte) textbox::x1#1 main::@8/(byte) textbox::x1#2 main::@9/(byte) textbox::x1#3 )
  (byte) draw_window::x1#0 ← (byte) textbox::x1#4
  (byte) draw_window::y1#0 ← (byte) textbox::y1#4
  (byte) draw_window::x2#0 ← (byte) textbox::x2#4
  (byte) draw_window::y2#0 ← (byte) textbox::y2#4
  call draw_window 
  to:textbox::@24
textbox::@24: scope:[textbox]  from textbox
  (byte*) textbox::text#7 ← phi( textbox/(byte*) textbox::text#12 )
  (byte) textbox::y2#5 ← phi( textbox/(byte) textbox::y2#4 )
  (byte) textbox::x2#5 ← phi( textbox/(byte) textbox::x2#4 )
  (byte) textbox::x1#5 ← phi( textbox/(byte) textbox::x1#4 )
  (byte) textbox::y1#5 ← phi( textbox/(byte) textbox::y1#4 )
  (number~) textbox::$1 ← (byte) textbox::y1#5 + (number) 1
  (byte) textbox::y#0 ← (number~) textbox::$1
  (number~) textbox::$2 ← (byte) textbox::x1#5 + (number) 1
  (byte) textbox::x#0 ← (number~) textbox::$2
  (number~) textbox::$3 ← (byte) textbox::y#0 * (number) $28
  (word) textbox::z#0 ← (number~) textbox::$3
  (byte) textbox::i#0 ← (number) 0
  (bool~) textbox::$4 ← (byte) textbox::x#0 == (byte) textbox::x2#5
  (bool~) textbox::$5 ← (byte) textbox::y#0 == (byte) textbox::y2#5
  (bool~) textbox::$6 ← (bool~) textbox::$4 || (bool~) textbox::$5
  (bool~) textbox::$7 ← ! (bool~) textbox::$6
  if((bool~) textbox::$7) goto textbox::@4
  to:textbox::@return
textbox::@return: scope:[textbox]  from textbox::@12 textbox::@17 textbox::@20 textbox::@24
  return 
  to:@return
textbox::@4: scope:[textbox]  from textbox::@17 textbox::@24
  (byte) textbox::y2#11 ← phi( textbox::@17/(byte) textbox::y2#13 textbox::@24/(byte) textbox::y2#5 )
  (byte) textbox::y#9 ← phi( textbox::@17/(byte) textbox::y#11 textbox::@24/(byte) textbox::y#0 )
  (byte) textbox::x1#12 ← phi( textbox::@17/(byte) textbox::x1#15 textbox::@24/(byte) textbox::x1#5 )
  (byte) textbox::x2#9 ← phi( textbox::@17/(byte) textbox::x2#11 textbox::@24/(byte) textbox::x2#5 )
  (byte) textbox::i#2 ← phi( textbox::@17/(byte) textbox::i#5 textbox::@24/(byte) textbox::i#0 )
  (byte*) textbox::text#4 ← phi( textbox::@17/(byte*) textbox::text#6 textbox::@24/(byte*) textbox::text#7 )
  (byte) textbox::x#4 ← phi( textbox::@17/(byte) textbox::x#7 textbox::@24/(byte) textbox::x#0 )
  (word) textbox::z#3 ← phi( textbox::@17/(word) textbox::z#4 textbox::@24/(word) textbox::z#0 )
  (word~) textbox::$8 ← (word) textbox::z#3 + (byte) textbox::x#4
  *((byte*) screen#0 + (word~) textbox::$8) ← *((byte*) textbox::text#4 + (byte) textbox::i#2)
  (bool~) textbox::$9 ← *((byte*) textbox::text#4 + (byte) textbox::i#2) == (number) $20
  (bool~) textbox::$10 ← ! (bool~) textbox::$9
  if((bool~) textbox::$10) goto textbox::@5
  to:textbox::@19
textbox::@5: scope:[textbox]  from textbox::@16 textbox::@4 textbox::@8
  (word) textbox::z#5 ← phi( textbox::@16/(word) textbox::z#1 textbox::@4/(word) textbox::z#3 textbox::@8/(word) textbox::z#6 )
  (byte) textbox::y2#9 ← phi( textbox::@16/(byte) textbox::y2#10 textbox::@4/(byte) textbox::y2#11 textbox::@8/(byte) textbox::y2#8 )
  (byte) textbox::y#8 ← phi( textbox::@16/(byte) textbox::y#4 textbox::@4/(byte) textbox::y#9 textbox::@8/(byte) textbox::y#7 )
  (byte) textbox::x1#10 ← phi( textbox::@16/(byte) textbox::x1#11 textbox::@4/(byte) textbox::x1#12 textbox::@8/(byte) textbox::x1#6 )
  (byte*) textbox::text#11 ← phi( textbox::@16/(byte*) textbox::text#13 textbox::@4/(byte*) textbox::text#4 textbox::@8/(byte*) textbox::text#14 )
  (byte) textbox::x2#6 ← phi( textbox::@16/(byte) textbox::x2#8 textbox::@4/(byte) textbox::x2#9 textbox::@8/(byte) textbox::x2#7 )
  (byte) textbox::x#5 ← phi( textbox::@16/(byte) textbox::x#8 textbox::@4/(byte) textbox::x#4 textbox::@8/(byte) textbox::x#6 )
  (byte) textbox::i#3 ← phi( textbox::@16/(byte) textbox::i#6 textbox::@4/(byte) textbox::i#2 textbox::@8/(byte) textbox::i#7 )
  (byte) textbox::i#1 ← ++ (byte) textbox::i#3
  (byte) textbox::x#1 ← ++ (byte) textbox::x#5
  (bool~) textbox::$24 ← (byte) textbox::x#1 == (byte) textbox::x2#6
  (bool~) textbox::$25 ← ! (bool~) textbox::$24
  if((bool~) textbox::$25) goto textbox::@17
  to:textbox::@20
textbox::@19: scope:[textbox]  from textbox::@4
  (word) textbox::z#8 ← phi( textbox::@4/(word) textbox::z#3 )
  (byte) textbox::y2#14 ← phi( textbox::@4/(byte) textbox::y2#11 )
  (byte) textbox::y#12 ← phi( textbox::@4/(byte) textbox::y#9 )
  (byte) textbox::x1#13 ← phi( textbox::@4/(byte) textbox::x1#12 )
  (byte) textbox::x2#12 ← phi( textbox::@4/(byte) textbox::x2#9 )
  (byte) textbox::x#10 ← phi( textbox::@4/(byte) textbox::x#4 )
  (byte*) textbox::text#8 ← phi( textbox::@4/(byte*) textbox::text#4 )
  (byte) textbox::i#4 ← phi( textbox::@4/(byte) textbox::i#2 )
  (byte) textbox::c#0 ← (number) 0
  (number~) textbox::$11 ← (byte) textbox::i#4 + (number) 1
  (byte) textbox::ls#0 ← (number~) textbox::$11
  to:textbox::@6
textbox::@6: scope:[textbox]  from textbox::@19 textbox::@7
  (word) textbox::z#7 ← phi( textbox::@19/(word) textbox::z#8 textbox::@7/(word) textbox::z#9 )
  (byte) textbox::y2#12 ← phi( textbox::@19/(byte) textbox::y2#14 textbox::@7/(byte) textbox::y2#15 )
  (byte) textbox::y#10 ← phi( textbox::@19/(byte) textbox::y#12 textbox::@7/(byte) textbox::y#13 )
  (byte) textbox::i#9 ← phi( textbox::@19/(byte) textbox::i#4 textbox::@7/(byte) textbox::i#12 )
  (byte) textbox::x1#9 ← phi( textbox::@19/(byte) textbox::x1#13 textbox::@7/(byte) textbox::x1#14 )
  (byte) textbox::x2#10 ← phi( textbox::@19/(byte) textbox::x2#12 textbox::@7/(byte) textbox::x2#13 )
  (byte) textbox::x#9 ← phi( textbox::@19/(byte) textbox::x#10 textbox::@7/(byte) textbox::x#11 )
  (byte) textbox::c#4 ← phi( textbox::@19/(byte) textbox::c#0 textbox::@7/(byte) textbox::c#1 )
  (byte) textbox::ls#2 ← phi( textbox::@19/(byte) textbox::ls#0 textbox::@7/(byte) textbox::ls#1 )
  (byte*) textbox::text#5 ← phi( textbox::@19/(byte*) textbox::text#8 textbox::@7/(byte*) textbox::text#9 )
  (bool~) textbox::$12 ← *((byte*) textbox::text#5 + (byte) textbox::ls#2) != (number) $20
  (bool~) textbox::$13 ← *((byte*) textbox::text#5 + (byte) textbox::ls#2) != (number) 0
  (bool~) textbox::$14 ← (bool~) textbox::$12 && (bool~) textbox::$13
  if((bool~) textbox::$14) goto textbox::@7
  to:textbox::@8
textbox::@7: scope:[textbox]  from textbox::@6
  (word) textbox::z#9 ← phi( textbox::@6/(word) textbox::z#7 )
  (byte) textbox::y2#15 ← phi( textbox::@6/(byte) textbox::y2#12 )
  (byte) textbox::y#13 ← phi( textbox::@6/(byte) textbox::y#10 )
  (byte) textbox::i#12 ← phi( textbox::@6/(byte) textbox::i#9 )
  (byte) textbox::x1#14 ← phi( textbox::@6/(byte) textbox::x1#9 )
  (byte) textbox::x2#13 ← phi( textbox::@6/(byte) textbox::x2#10 )
  (byte) textbox::x#11 ← phi( textbox::@6/(byte) textbox::x#9 )
  (byte*) textbox::text#9 ← phi( textbox::@6/(byte*) textbox::text#5 )
  (byte) textbox::c#2 ← phi( textbox::@6/(byte) textbox::c#4 )
  (byte) textbox::ls#3 ← phi( textbox::@6/(byte) textbox::ls#2 )
  (byte) textbox::ls#1 ← ++ (byte) textbox::ls#3
  (byte) textbox::c#1 ← ++ (byte) textbox::c#2
  to:textbox::@6
textbox::@8: scope:[textbox]  from textbox::@6
  (word) textbox::z#6 ← phi( textbox::@6/(word) textbox::z#7 )
  (byte*) textbox::text#14 ← phi( textbox::@6/(byte*) textbox::text#5 )
  (byte) textbox::y2#8 ← phi( textbox::@6/(byte) textbox::y2#12 )
  (byte) textbox::y#7 ← phi( textbox::@6/(byte) textbox::y#10 )
  (byte) textbox::i#7 ← phi( textbox::@6/(byte) textbox::i#9 )
  (byte) textbox::x1#6 ← phi( textbox::@6/(byte) textbox::x1#9 )
  (byte) textbox::x2#7 ← phi( textbox::@6/(byte) textbox::x2#10 )
  (byte) textbox::x#6 ← phi( textbox::@6/(byte) textbox::x#9 )
  (byte) textbox::c#3 ← phi( textbox::@6/(byte) textbox::c#4 )
  (byte~) textbox::$15 ← (byte) textbox::c#3 + (byte) textbox::x#6
  (bool~) textbox::$16 ← (byte~) textbox::$15 >= (byte) textbox::x2#7
  (byte~) textbox::$17 ← (byte) textbox::x2#7 - (byte) textbox::x1#6
  (bool~) textbox::$18 ← (byte) textbox::c#3 < (byte~) textbox::$17
  (bool~) textbox::$19 ← (bool~) textbox::$16 && (bool~) textbox::$18
  (bool~) textbox::$20 ← ! (bool~) textbox::$19
  if((bool~) textbox::$20) goto textbox::@5
  to:textbox::@12
textbox::@12: scope:[textbox]  from textbox::@8
  (byte*) textbox::text#16 ← phi( textbox::@8/(byte*) textbox::text#14 )
  (byte) textbox::x2#14 ← phi( textbox::@8/(byte) textbox::x2#7 )
  (byte) textbox::i#10 ← phi( textbox::@8/(byte) textbox::i#7 )
  (byte) textbox::y2#6 ← phi( textbox::@8/(byte) textbox::y2#8 )
  (byte) textbox::y#3 ← phi( textbox::@8/(byte) textbox::y#7 )
  (byte) textbox::x1#7 ← phi( textbox::@8/(byte) textbox::x1#6 )
  (byte) textbox::x#2 ← (byte) textbox::x1#7
  (byte) textbox::y#1 ← ++ (byte) textbox::y#3
  (bool~) textbox::$21 ← (byte) textbox::y#1 == (byte) textbox::y2#6
  (bool~) textbox::$22 ← ! (bool~) textbox::$21
  if((bool~) textbox::$22) goto textbox::@16
  to:textbox::@return
textbox::@16: scope:[textbox]  from textbox::@12
  (byte) textbox::y2#10 ← phi( textbox::@12/(byte) textbox::y2#6 )
  (byte) textbox::x1#11 ← phi( textbox::@12/(byte) textbox::x1#7 )
  (byte*) textbox::text#13 ← phi( textbox::@12/(byte*) textbox::text#16 )
  (byte) textbox::x2#8 ← phi( textbox::@12/(byte) textbox::x2#14 )
  (byte) textbox::x#8 ← phi( textbox::@12/(byte) textbox::x#2 )
  (byte) textbox::i#6 ← phi( textbox::@12/(byte) textbox::i#10 )
  (byte) textbox::y#4 ← phi( textbox::@12/(byte) textbox::y#1 )
  (number~) textbox::$23 ← (byte) textbox::y#4 * (number) $28
  (word) textbox::z#1 ← (number~) textbox::$23
  to:textbox::@5
textbox::@17: scope:[textbox]  from textbox::@18 textbox::@5
  (byte) textbox::y2#13 ← phi( textbox::@18/(byte) textbox::y2#16 textbox::@5/(byte) textbox::y2#9 )
  (byte) textbox::y#11 ← phi( textbox::@18/(byte) textbox::y#6 textbox::@5/(byte) textbox::y#8 )
  (byte) textbox::x1#15 ← phi( textbox::@18/(byte) textbox::x1#16 textbox::@5/(byte) textbox::x1#10 )
  (byte) textbox::x2#11 ← phi( textbox::@18/(byte) textbox::x2#15 textbox::@5/(byte) textbox::x2#6 )
  (byte) textbox::x#7 ← phi( textbox::@18/(byte) textbox::x#12 textbox::@5/(byte) textbox::x#1 )
  (word) textbox::z#4 ← phi( textbox::@18/(word) textbox::z#2 textbox::@5/(word) textbox::z#5 )
  (byte) textbox::i#5 ← phi( textbox::@18/(byte) textbox::i#8 textbox::@5/(byte) textbox::i#1 )
  (byte*) textbox::text#6 ← phi( textbox::@18/(byte*) textbox::text#10 textbox::@5/(byte*) textbox::text#11 )
  (bool~) textbox::$30 ← *((byte*) textbox::text#6 + (byte) textbox::i#5) != (number) 0
  if((bool~) textbox::$30) goto textbox::@4
  to:textbox::@return
textbox::@20: scope:[textbox]  from textbox::@5
  (byte) textbox::x2#16 ← phi( textbox::@5/(byte) textbox::x2#6 )
  (byte) textbox::i#11 ← phi( textbox::@5/(byte) textbox::i#1 )
  (byte*) textbox::text#15 ← phi( textbox::@5/(byte*) textbox::text#11 )
  (byte) textbox::y2#7 ← phi( textbox::@5/(byte) textbox::y2#9 )
  (byte) textbox::y#5 ← phi( textbox::@5/(byte) textbox::y#8 )
  (byte) textbox::x1#8 ← phi( textbox::@5/(byte) textbox::x1#10 )
  (number~) textbox::$26 ← (byte) textbox::x1#8 + (number) 1
  (byte) textbox::x#3 ← (number~) textbox::$26
  (byte) textbox::y#2 ← ++ (byte) textbox::y#5
  (bool~) textbox::$27 ← (byte) textbox::y#2 == (byte) textbox::y2#7
  (bool~) textbox::$28 ← ! (bool~) textbox::$27
  if((bool~) textbox::$28) goto textbox::@18
  to:textbox::@return
textbox::@18: scope:[textbox]  from textbox::@20
  (byte) textbox::y2#16 ← phi( textbox::@20/(byte) textbox::y2#7 )
  (byte) textbox::x1#16 ← phi( textbox::@20/(byte) textbox::x1#8 )
  (byte) textbox::x2#15 ← phi( textbox::@20/(byte) textbox::x2#16 )
  (byte) textbox::x#12 ← phi( textbox::@20/(byte) textbox::x#3 )
  (byte) textbox::i#8 ← phi( textbox::@20/(byte) textbox::i#11 )
  (byte*) textbox::text#10 ← phi( textbox::@20/(byte*) textbox::text#15 )
  (byte) textbox::y#6 ← phi( textbox::@20/(byte) textbox::y#2 )
  (number~) textbox::$29 ← (byte) textbox::y#6 * (number) $28
  (word) textbox::z#2 ← (number~) textbox::$29
  to:textbox::@17
draw_window: scope:[draw_window]  from textbox
  (byte) draw_window::x2#6 ← phi( textbox/(byte) draw_window::x2#0 )
  (byte) draw_window::x1#1 ← phi( textbox/(byte) draw_window::x1#0 )
  (byte) draw_window::y2#1 ← phi( textbox/(byte) draw_window::y2#0 )
  (byte) draw_window::y1#1 ← phi( textbox/(byte) draw_window::y1#0 )
  (number~) draw_window::$0 ← (byte) draw_window::y1#1 * (number) $28
  (word) draw_window::z#0 ← (number~) draw_window::$0
  (number~) draw_window::$1 ← (byte) draw_window::y2#1 * (number) $28
  (word) draw_window::q#0 ← (number~) draw_window::$1
  (number~) draw_window::$12 ← (byte) draw_window::x1#1 + (number) 1
  (byte) draw_window::x#0 ← (number~) draw_window::$12
  to:draw_window::@2
draw_window::@2: scope:[draw_window]  from draw_window draw_window::@2
  (byte) draw_window::y2#7 ← phi( draw_window/(byte) draw_window::y2#1 draw_window::@2/(byte) draw_window::y2#7 )
  (byte) draw_window::y1#5 ← phi( draw_window/(byte) draw_window::y1#1 draw_window::@2/(byte) draw_window::y1#5 )
  (byte) draw_window::x1#6 ← phi( draw_window/(byte) draw_window::x1#1 draw_window::@2/(byte) draw_window::x1#6 )
  (byte) draw_window::x2#1 ← phi( draw_window/(byte) draw_window::x2#6 draw_window::@2/(byte) draw_window::x2#1 )
  (word) draw_window::q#1 ← phi( draw_window/(word) draw_window::q#0 draw_window::@2/(word) draw_window::q#1 )
  (byte) draw_window::x#2 ← phi( draw_window/(byte) draw_window::x#0 draw_window::@2/(byte) draw_window::x#1 )
  (word) draw_window::z#3 ← phi( draw_window/(word) draw_window::z#0 draw_window::@2/(word) draw_window::z#3 )
  (word~) draw_window::$13 ← (word) draw_window::z#3 + (byte) draw_window::x#2
  *((byte*) screen#0 + (word~) draw_window::$13) ← (number) $43
  (word~) draw_window::$14 ← (word) draw_window::q#1 + (byte) draw_window::x#2
  *((byte*) screen#0 + (word~) draw_window::$14) ← (number) $43
  (byte) draw_window::x#1 ← ++ (byte) draw_window::x#2
  (bool~) draw_window::$15 ← (byte) draw_window::x#1 < (byte) draw_window::x2#1
  if((bool~) draw_window::$15) goto draw_window::@2
  to:draw_window::@3
draw_window::@3: scope:[draw_window]  from draw_window::@2
  (word) draw_window::q#4 ← phi( draw_window::@2/(word) draw_window::q#1 )
  (byte) draw_window::y2#5 ← phi( draw_window::@2/(byte) draw_window::y2#7 )
  (byte) draw_window::y1#2 ← phi( draw_window::@2/(byte) draw_window::y1#5 )
  (byte) draw_window::x2#2 ← phi( draw_window::@2/(byte) draw_window::x2#1 )
  (byte) draw_window::x1#2 ← phi( draw_window::@2/(byte) draw_window::x1#6 )
  (word) draw_window::z#4 ← phi( draw_window::@2/(word) draw_window::z#3 )
  (word~) draw_window::$2 ← (word) draw_window::z#4 + (byte) draw_window::x1#2
  *((byte*) screen#0 + (word~) draw_window::$2) ← (number) $55
  (word~) draw_window::$3 ← (word) draw_window::z#4 + (byte) draw_window::x2#2
  *((byte*) screen#0 + (word~) draw_window::$3) ← (number) $49
  (number~) draw_window::$16 ← (byte) draw_window::y1#2 + (number) 1
  (byte) draw_window::y#0 ← (number~) draw_window::$16
  to:draw_window::@4
draw_window::@4: scope:[draw_window]  from draw_window::@3 draw_window::@4
  (byte) draw_window::y1#6 ← phi( draw_window::@3/(byte) draw_window::y1#2 draw_window::@4/(byte) draw_window::y1#6 )
  (word) draw_window::q#3 ← phi( draw_window::@3/(word) draw_window::q#4 draw_window::@4/(word) draw_window::q#3 )
  (byte) draw_window::y2#2 ← phi( draw_window::@3/(byte) draw_window::y2#5 draw_window::@4/(byte) draw_window::y2#2 )
  (byte) draw_window::x2#3 ← phi( draw_window::@3/(byte) draw_window::x2#2 draw_window::@4/(byte) draw_window::x2#3 )
  (byte) draw_window::x1#3 ← phi( draw_window::@3/(byte) draw_window::x1#2 draw_window::@4/(byte) draw_window::x1#3 )
  (byte) draw_window::y#2 ← phi( draw_window::@3/(byte) draw_window::y#0 draw_window::@4/(byte) draw_window::y#1 )
  (number~) draw_window::$17 ← (byte) draw_window::y#2 * (number) $28
  (word) draw_window::z#1 ← (number~) draw_window::$17
  (word~) draw_window::$18 ← (word) draw_window::z#1 + (byte) draw_window::x1#3
  *((byte*) screen#0 + (word~) draw_window::$18) ← (number) $42
  (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x2#3
  *((byte*) screen#0 + (word~) draw_window::$19) ← (number) $42
  (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2
  (bool~) draw_window::$20 ← (byte) draw_window::y#1 < (byte) draw_window::y2#2
  if((bool~) draw_window::$20) goto draw_window::@4
  to:draw_window::@5
draw_window::@5: scope:[draw_window]  from draw_window::@4
  (byte) draw_window::y1#3 ← phi( draw_window::@4/(byte) draw_window::y1#6 )
  (byte) draw_window::y2#3 ← phi( draw_window::@4/(byte) draw_window::y2#2 )
  (byte) draw_window::x2#4 ← phi( draw_window::@4/(byte) draw_window::x2#3 )
  (byte) draw_window::x1#4 ← phi( draw_window::@4/(byte) draw_window::x1#3 )
  (word) draw_window::q#2 ← phi( draw_window::@4/(word) draw_window::q#3 )
  (word~) draw_window::$4 ← (word) draw_window::q#2 + (byte) draw_window::x1#4
  *((byte*) screen#0 + (word~) draw_window::$4) ← (number) $4a
  (word~) draw_window::$5 ← (word) draw_window::q#2 + (byte) draw_window::x2#4
  *((byte*) screen#0 + (word~) draw_window::$5) ← (number) $4b
  (byte~) draw_window::$6 ← (byte) draw_window::x2#4 - (byte) draw_window::x1#4
  (bool~) draw_window::$7 ← (byte~) draw_window::$6 > (number) 1
  (byte~) draw_window::$8 ← (byte) draw_window::y2#3 - (byte) draw_window::y1#3
  (bool~) draw_window::$9 ← (byte~) draw_window::$8 > (number) 1
  (bool~) draw_window::$10 ← (bool~) draw_window::$7 && (bool~) draw_window::$9
  (bool~) draw_window::$11 ← ! (bool~) draw_window::$10
  if((bool~) draw_window::$11) goto draw_window::@return
  to:draw_window::@6
draw_window::@6: scope:[draw_window]  from draw_window::@5
  (byte) draw_window::y2#9 ← phi( draw_window::@5/(byte) draw_window::y2#3 )
  (byte) draw_window::x2#8 ← phi( draw_window::@5/(byte) draw_window::x2#4 )
  (byte) draw_window::x1#7 ← phi( draw_window::@5/(byte) draw_window::x1#4 )
  (byte) draw_window::y1#4 ← phi( draw_window::@5/(byte) draw_window::y1#3 )
  (number~) draw_window::$21 ← (byte) draw_window::y1#4 + (number) 1
  (byte) draw_window::y3#0 ← (number~) draw_window::$21
  to:draw_window::@7
draw_window::@7: scope:[draw_window]  from draw_window::@6 draw_window::@9
  (byte) draw_window::y2#8 ← phi( draw_window::@6/(byte) draw_window::y2#9 draw_window::@9/(byte) draw_window::y2#4 )
  (byte) draw_window::x2#7 ← phi( draw_window::@6/(byte) draw_window::x2#8 draw_window::@9/(byte) draw_window::x2#9 )
  (byte) draw_window::x1#5 ← phi( draw_window::@6/(byte) draw_window::x1#7 draw_window::@9/(byte) draw_window::x1#8 )
  (byte) draw_window::y3#2 ← phi( draw_window::@6/(byte) draw_window::y3#0 draw_window::@9/(byte) draw_window::y3#1 )
  (number~) draw_window::$22 ← (byte) draw_window::y3#2 * (number) $28
  (word) draw_window::z#2 ← (number~) draw_window::$22
  (number~) draw_window::$23 ← (byte) draw_window::x1#5 + (number) 1
  (byte) draw_window::x3#0 ← (number~) draw_window::$23
  to:draw_window::@8
draw_window::@8: scope:[draw_window]  from draw_window::@7 draw_window::@8
  (byte) draw_window::x1#9 ← phi( draw_window::@7/(byte) draw_window::x1#5 draw_window::@8/(byte) draw_window::x1#9 )
  (byte) draw_window::y2#6 ← phi( draw_window::@7/(byte) draw_window::y2#8 draw_window::@8/(byte) draw_window::y2#6 )
  (byte) draw_window::y3#4 ← phi( draw_window::@7/(byte) draw_window::y3#2 draw_window::@8/(byte) draw_window::y3#4 )
  (byte) draw_window::x2#5 ← phi( draw_window::@7/(byte) draw_window::x2#7 draw_window::@8/(byte) draw_window::x2#5 )
  (byte) draw_window::x3#2 ← phi( draw_window::@7/(byte) draw_window::x3#0 draw_window::@8/(byte) draw_window::x3#1 )
  (word) draw_window::z#5 ← phi( draw_window::@7/(word) draw_window::z#2 draw_window::@8/(word) draw_window::z#5 )
  (word~) draw_window::$24 ← (word) draw_window::z#5 + (byte) draw_window::x3#2
  *((byte*) screen#0 + (word~) draw_window::$24) ← (number) $20
  (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2
  (bool~) draw_window::$25 ← (byte) draw_window::x3#1 < (byte) draw_window::x2#5
  if((bool~) draw_window::$25) goto draw_window::@8
  to:draw_window::@9
draw_window::@9: scope:[draw_window]  from draw_window::@8
  (byte) draw_window::x2#9 ← phi( draw_window::@8/(byte) draw_window::x2#5 )
  (byte) draw_window::x1#8 ← phi( draw_window::@8/(byte) draw_window::x1#9 )
  (byte) draw_window::y2#4 ← phi( draw_window::@8/(byte) draw_window::y2#6 )
  (byte) draw_window::y3#3 ← phi( draw_window::@8/(byte) draw_window::y3#4 )
  (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#3
  (bool~) draw_window::$26 ← (byte) draw_window::y3#1 < (byte) draw_window::y2#4
  if((bool~) draw_window::$26) goto draw_window::@7
  to:draw_window::@return
draw_window::@return: scope:[draw_window]  from draw_window::@5 draw_window::@9
  return 
  to:@return
@7: scope:[]  from @4
  call main 
  to:@8
@8: scope:[]  from @7
  to:@end
@end: scope:[]  from @8

SYMBOL TABLE SSA
(const string) $0 = (string) "this is a small test with word wrap, if a word is too long it moves it to the next line. isn't that supercalifragilisticexpialidocious? i think it's cool!@"
(const string) $1 = (string) "textbox by scan of desire@"
(label) @4
(label) @7
(label) @8
(label) @begin
(label) @end
(void()) draw_window((byte) draw_window::x1 , (byte) draw_window::y1 , (byte) draw_window::x2 , (byte) draw_window::y2)
(number~) draw_window::$0
(number~) draw_window::$1
(bool~) draw_window::$10
(bool~) draw_window::$11
(number~) draw_window::$12
(word~) draw_window::$13
(word~) draw_window::$14
(bool~) draw_window::$15
(number~) draw_window::$16
(number~) draw_window::$17
(word~) draw_window::$18
(word~) draw_window::$19
(word~) draw_window::$2
(bool~) draw_window::$20
(number~) draw_window::$21
(number~) draw_window::$22
(number~) draw_window::$23
(word~) draw_window::$24
(bool~) draw_window::$25
(bool~) draw_window::$26
(word~) draw_window::$3
(word~) draw_window::$4
(word~) draw_window::$5
(byte~) draw_window::$6
(bool~) draw_window::$7
(byte~) draw_window::$8
(bool~) draw_window::$9
(label) draw_window::@2
(label) draw_window::@3
(label) draw_window::@4
(label) draw_window::@5
(label) draw_window::@6
(label) draw_window::@7
(label) draw_window::@8
(label) draw_window::@9
(label) draw_window::@return
(word) draw_window::q
(word) draw_window::q#0
(word) draw_window::q#1
(word) draw_window::q#2
(word) draw_window::q#3
(word) draw_window::q#4
(byte) draw_window::x
(byte) draw_window::x#0
(byte) draw_window::x#1
(byte) draw_window::x#2
(byte) draw_window::x1
(byte) draw_window::x1#0
(byte) draw_window::x1#1
(byte) draw_window::x1#2
(byte) draw_window::x1#3
(byte) draw_window::x1#4
(byte) draw_window::x1#5
(byte) draw_window::x1#6
(byte) draw_window::x1#7
(byte) draw_window::x1#8
(byte) draw_window::x1#9
(byte) draw_window::x2
(byte) draw_window::x2#0
(byte) draw_window::x2#1
(byte) draw_window::x2#2
(byte) draw_window::x2#3
(byte) draw_window::x2#4
(byte) draw_window::x2#5
(byte) draw_window::x2#6
(byte) draw_window::x2#7
(byte) draw_window::x2#8
(byte) draw_window::x2#9
(byte) draw_window::x3
(byte) draw_window::x3#0
(byte) draw_window::x3#1
(byte) draw_window::x3#2
(byte) draw_window::y
(byte) draw_window::y#0
(byte) draw_window::y#1
(byte) draw_window::y#2
(byte) draw_window::y1
(byte) draw_window::y1#0
(byte) draw_window::y1#1
(byte) draw_window::y1#2
(byte) draw_window::y1#3
(byte) draw_window::y1#4
(byte) draw_window::y1#5
(byte) draw_window::y1#6
(byte) draw_window::y2
(byte) draw_window::y2#0
(byte) draw_window::y2#1
(byte) draw_window::y2#2
(byte) draw_window::y2#3
(byte) draw_window::y2#4
(byte) draw_window::y2#5
(byte) draw_window::y2#6
(byte) draw_window::y2#7
(byte) draw_window::y2#8
(byte) draw_window::y2#9
(byte) draw_window::y3
(byte) draw_window::y3#0
(byte) draw_window::y3#1
(byte) draw_window::y3#2
(byte) draw_window::y3#3
(byte) draw_window::y3#4
(word) draw_window::z
(word) draw_window::z#0
(word) draw_window::z#1
(word) draw_window::z#2
(word) draw_window::z#3
(word) draw_window::z#4
(word) draw_window::z#5
(void()) main()
(byte~) main::$3
(number~) main::$4
(number~) main::$5
(bool~) main::$7
(bool~) main::$8
(label) main::@1
(label) main::@10
(label) main::@2
(label) main::@3
(label) main::@4
(label) main::@5
(label) main::@7
(label) main::@8
(label) main::@9
(label) main::@return
(word) main::wait
(word) main::wait#0
(word) main::wait#1
(word) main::wait#2
(byte) main::x
(byte) main::x#0
(byte) main::x#1
(byte) main::x#2
(byte) main::x#3
(byte) main::x#4
(byte) main::x#5
(byte*) screen
(byte*) screen#0
(byte[]) text
(byte[]) text#0
(byte[]) text2
(byte[]) text2#0
(void()) textbox((byte) textbox::x1 , (byte) textbox::y1 , (byte) textbox::x2 , (byte) textbox::y2 , (byte*) textbox::text)
(number~) textbox::$1
(bool~) textbox::$10
(number~) textbox::$11
(bool~) textbox::$12
(bool~) textbox::$13
(bool~) textbox::$14
(byte~) textbox::$15
(bool~) textbox::$16
(byte~) textbox::$17
(bool~) textbox::$18
(bool~) textbox::$19
(number~) textbox::$2
(bool~) textbox::$20
(bool~) textbox::$21
(bool~) textbox::$22
(number~) textbox::$23
(bool~) textbox::$24
(bool~) textbox::$25
(number~) textbox::$26
(bool~) textbox::$27
(bool~) textbox::$28
(number~) textbox::$29
(number~) textbox::$3
(bool~) textbox::$30
(bool~) textbox::$4
(bool~) textbox::$5
(bool~) textbox::$6
(bool~) textbox::$7
(word~) textbox::$8
(bool~) textbox::$9
(label) textbox::@12
(label) textbox::@16
(label) textbox::@17
(label) textbox::@18
(label) textbox::@19
(label) textbox::@20
(label) textbox::@24
(label) textbox::@4
(label) textbox::@5
(label) textbox::@6
(label) textbox::@7
(label) textbox::@8
(label) textbox::@return
(byte) textbox::c
(byte) textbox::c#0
(byte) textbox::c#1
(byte) textbox::c#2
(byte) textbox::c#3
(byte) textbox::c#4
(byte) textbox::i
(byte) textbox::i#0
(byte) textbox::i#1
(byte) textbox::i#10
(byte) textbox::i#11
(byte) textbox::i#12
(byte) textbox::i#2
(byte) textbox::i#3
(byte) textbox::i#4
(byte) textbox::i#5
(byte) textbox::i#6
(byte) textbox::i#7
(byte) textbox::i#8
(byte) textbox::i#9
(byte) textbox::ls
(byte) textbox::ls#0
(byte) textbox::ls#1
(byte) textbox::ls#2
(byte) textbox::ls#3
(byte*) textbox::text
(byte*) textbox::text#0
(byte*) textbox::text#1
(byte*) textbox::text#10
(byte*) textbox::text#11
(byte*) textbox::text#12
(byte*) textbox::text#13
(byte*) textbox::text#14
(byte*) textbox::text#15
(byte*) textbox::text#16
(byte*) textbox::text#2
(byte*) textbox::text#3
(byte*) textbox::text#4
(byte*) textbox::text#5
(byte*) textbox::text#6
(byte*) textbox::text#7
(byte*) textbox::text#8
(byte*) textbox::text#9
(byte) textbox::x
(byte) textbox::x#0
(byte) textbox::x#1
(byte) textbox::x#10
(byte) textbox::x#11
(byte) textbox::x#12
(byte) textbox::x#2
(byte) textbox::x#3
(byte) textbox::x#4
(byte) textbox::x#5
(byte) textbox::x#6
(byte) textbox::x#7
(byte) textbox::x#8
(byte) textbox::x#9
(byte) textbox::x1
(byte) textbox::x1#0
(byte) textbox::x1#1
(byte) textbox::x1#10
(byte) textbox::x1#11
(byte) textbox::x1#12
(byte) textbox::x1#13
(byte) textbox::x1#14
(byte) textbox::x1#15
(byte) textbox::x1#16
(byte) textbox::x1#2
(byte) textbox::x1#3
(byte) textbox::x1#4
(byte) textbox::x1#5
(byte) textbox::x1#6
(byte) textbox::x1#7
(byte) textbox::x1#8
(byte) textbox::x1#9
(byte) textbox::x2
(byte) textbox::x2#0
(byte) textbox::x2#1
(byte) textbox::x2#10
(byte) textbox::x2#11
(byte) textbox::x2#12
(byte) textbox::x2#13
(byte) textbox::x2#14
(byte) textbox::x2#15
(byte) textbox::x2#16
(byte) textbox::x2#2
(byte) textbox::x2#3
(byte) textbox::x2#4
(byte) textbox::x2#5
(byte) textbox::x2#6
(byte) textbox::x2#7
(byte) textbox::x2#8
(byte) textbox::x2#9
(byte) textbox::y
(byte) textbox::y#0
(byte) textbox::y#1
(byte) textbox::y#10
(byte) textbox::y#11
(byte) textbox::y#12
(byte) textbox::y#13
(byte) textbox::y#2
(byte) textbox::y#3
(byte) textbox::y#4
(byte) textbox::y#5
(byte) textbox::y#6
(byte) textbox::y#7
(byte) textbox::y#8
(byte) textbox::y#9
(byte) textbox::y1
(byte) textbox::y1#0
(byte) textbox::y1#1
(byte) textbox::y1#2
(byte) textbox::y1#3
(byte) textbox::y1#4
(byte) textbox::y1#5
(byte) textbox::y2
(byte) textbox::y2#0
(byte) textbox::y2#1
(byte) textbox::y2#10
(byte) textbox::y2#11
(byte) textbox::y2#12
(byte) textbox::y2#13
(byte) textbox::y2#14
(byte) textbox::y2#15
(byte) textbox::y2#16
(byte) textbox::y2#2
(byte) textbox::y2#3
(byte) textbox::y2#4
(byte) textbox::y2#5
(byte) textbox::y2#6
(byte) textbox::y2#7
(byte) textbox::y2#8
(byte) textbox::y2#9
(word) textbox::z
(word) textbox::z#0
(word) textbox::z#1
(word) textbox::z#2
(word) textbox::z#3
(word) textbox::z#4
(word) textbox::z#5
(word) textbox::z#6
(word) textbox::z#7
(word) textbox::z#8
(word) textbox::z#9

Adding number conversion cast (unumber) 0 in (byte) main::x#0 ← (number) 0
Adding number conversion cast (unumber) 1 in (number~) main::$4 ← (byte~) main::$3 + (number) 1
Adding number conversion cast (unumber) main::$4 in (number~) main::$4 ← (byte~) main::$3 + (unumber)(number) 1
Adding number conversion cast (unumber) $a in (number~) main::$5 ← (byte) main::x#2 + (number) $a
Adding number conversion cast (unumber) main::$5 in (number~) main::$5 ← (byte) main::x#2 + (unumber)(number) $a
Adding number conversion cast (unumber) 0 in (word) main::wait#0 ← (number) 0
Adding number conversion cast (unumber) $88b8 in (bool~) main::$7 ← (word) main::wait#1 < (number) $88b8
Adding number conversion cast (unumber) 2 in (byte) main::x#1 ← (byte) main::x#3 + (number) 2
Adding number conversion cast (unumber) $f in (bool~) main::$8 ← (byte) main::x#1 < (number) $f
Adding number conversion cast (unumber) 0 in (byte) textbox::x1#1 ← (number) 0
Adding number conversion cast (unumber) $c in (byte) textbox::y1#1 ← (number) $c
Adding number conversion cast (unumber) $14 in (byte) textbox::x2#1 ← (number) $14
Adding number conversion cast (unumber) $18 in (byte) textbox::y2#1 ← (number) $18
Adding number conversion cast (unumber) 3 in (byte) textbox::x1#2 ← (number) 3
Adding number conversion cast (unumber) 3 in (byte) textbox::y1#2 ← (number) 3
Adding number conversion cast (unumber) $25 in (byte) textbox::x2#2 ← (number) $25
Adding number conversion cast (unumber) 9 in (byte) textbox::y2#2 ← (number) 9
Adding number conversion cast (unumber) $1e in (byte) textbox::x1#3 ← (number) $1e
Adding number conversion cast (unumber) 8 in (byte) textbox::y1#3 ← (number) 8
Adding number conversion cast (unumber) $27 in (byte) textbox::x2#3 ← (number) $27
Adding number conversion cast (unumber) $18 in (byte) textbox::y2#3 ← (number) $18
Adding number conversion cast (unumber) 1 in (number~) textbox::$1 ← (byte) textbox::y1#5 + (number) 1
Adding number conversion cast (unumber) textbox::$1 in (number~) textbox::$1 ← (byte) textbox::y1#5 + (unumber)(number) 1
Adding number conversion cast (unumber) 1 in (number~) textbox::$2 ← (byte) textbox::x1#5 + (number) 1
Adding number conversion cast (unumber) textbox::$2 in (number~) textbox::$2 ← (byte) textbox::x1#5 + (unumber)(number) 1
Adding number conversion cast (unumber) $28 in (number~) textbox::$3 ← (byte) textbox::y#0 * (number) $28
Adding number conversion cast (unumber) textbox::$3 in (number~) textbox::$3 ← (byte) textbox::y#0 * (unumber)(number) $28
Adding number conversion cast (unumber) 0 in (byte) textbox::i#0 ← (number) 0
Adding number conversion cast (unumber) $20 in (bool~) textbox::$9 ← *((byte*) textbox::text#4 + (byte) textbox::i#2) == (number) $20
Adding number conversion cast (unumber) 0 in (byte) textbox::c#0 ← (number) 0
Adding number conversion cast (unumber) 1 in (number~) textbox::$11 ← (byte) textbox::i#4 + (number) 1
Adding number conversion cast (unumber) textbox::$11 in (number~) textbox::$11 ← (byte) textbox::i#4 + (unumber)(number) 1
Adding number conversion cast (unumber) $20 in (bool~) textbox::$12 ← *((byte*) textbox::text#5 + (byte) textbox::ls#2) != (number) $20
Adding number conversion cast (unumber) 0 in (bool~) textbox::$13 ← *((byte*) textbox::text#5 + (byte) textbox::ls#2) != (number) 0
Adding number conversion cast (unumber) $28 in (number~) textbox::$23 ← (byte) textbox::y#4 * (number) $28
Adding number conversion cast (unumber) textbox::$23 in (number~) textbox::$23 ← (byte) textbox::y#4 * (unumber)(number) $28
Adding number conversion cast (unumber) 0 in (bool~) textbox::$30 ← *((byte*) textbox::text#6 + (byte) textbox::i#5) != (number) 0
Adding number conversion cast (unumber) 1 in (number~) textbox::$26 ← (byte) textbox::x1#8 + (number) 1
Adding number conversion cast (unumber) textbox::$26 in (number~) textbox::$26 ← (byte) textbox::x1#8 + (unumber)(number) 1
Adding number conversion cast (unumber) $28 in (number~) textbox::$29 ← (byte) textbox::y#6 * (number) $28
Adding number conversion cast (unumber) textbox::$29 in (number~) textbox::$29 ← (byte) textbox::y#6 * (unumber)(number) $28
Adding number conversion cast (unumber) $28 in (number~) draw_window::$0 ← (byte) draw_window::y1#1 * (number) $28
Adding number conversion cast (unumber) draw_window::$0 in (number~) draw_window::$0 ← (byte) draw_window::y1#1 * (unumber)(number) $28
Adding number conversion cast (unumber) $28 in (number~) draw_window::$1 ← (byte) draw_window::y2#1 * (number) $28
Adding number conversion cast (unumber) draw_window::$1 in (number~) draw_window::$1 ← (byte) draw_window::y2#1 * (unumber)(number) $28
Adding number conversion cast (unumber) 1 in (number~) draw_window::$12 ← (byte) draw_window::x1#1 + (number) 1
Adding number conversion cast (unumber) draw_window::$12 in (number~) draw_window::$12 ← (byte) draw_window::x1#1 + (unumber)(number) 1
Adding number conversion cast (unumber) $43 in *((byte*) screen#0 + (word~) draw_window::$13) ← (number) $43
Adding number conversion cast (unumber) $43 in *((byte*) screen#0 + (word~) draw_window::$14) ← (number) $43
Adding number conversion cast (unumber) $55 in *((byte*) screen#0 + (word~) draw_window::$2) ← (number) $55
Adding number conversion cast (unumber) $49 in *((byte*) screen#0 + (word~) draw_window::$3) ← (number) $49
Adding number conversion cast (unumber) 1 in (number~) draw_window::$16 ← (byte) draw_window::y1#2 + (number) 1
Adding number conversion cast (unumber) draw_window::$16 in (number~) draw_window::$16 ← (byte) draw_window::y1#2 + (unumber)(number) 1
Adding number conversion cast (unumber) $28 in (number~) draw_window::$17 ← (byte) draw_window::y#2 * (number) $28
Adding number conversion cast (unumber) draw_window::$17 in (number~) draw_window::$17 ← (byte) draw_window::y#2 * (unumber)(number) $28
Adding number conversion cast (unumber) $42 in *((byte*) screen#0 + (word~) draw_window::$18) ← (number) $42
Adding number conversion cast (unumber) $42 in *((byte*) screen#0 + (word~) draw_window::$19) ← (number) $42
Adding number conversion cast (unumber) $4a in *((byte*) screen#0 + (word~) draw_window::$4) ← (number) $4a
Adding number conversion cast (unumber) $4b in *((byte*) screen#0 + (word~) draw_window::$5) ← (number) $4b
Adding number conversion cast (unumber) 1 in (bool~) draw_window::$7 ← (byte~) draw_window::$6 > (number) 1
Adding number conversion cast (unumber) 1 in (bool~) draw_window::$9 ← (byte~) draw_window::$8 > (number) 1
Adding number conversion cast (unumber) 1 in (number~) draw_window::$21 ← (byte) draw_window::y1#4 + (number) 1
Adding number conversion cast (unumber) draw_window::$21 in (number~) draw_window::$21 ← (byte) draw_window::y1#4 + (unumber)(number) 1
Adding number conversion cast (unumber) $28 in (number~) draw_window::$22 ← (byte) draw_window::y3#2 * (number) $28
Adding number conversion cast (unumber) draw_window::$22 in (number~) draw_window::$22 ← (byte) draw_window::y3#2 * (unumber)(number) $28
Adding number conversion cast (unumber) 1 in (number~) draw_window::$23 ← (byte) draw_window::x1#5 + (number) 1
Adding number conversion cast (unumber) draw_window::$23 in (number~) draw_window::$23 ← (byte) draw_window::x1#5 + (unumber)(number) 1
Adding number conversion cast (unumber) $20 in *((byte*) screen#0 + (word~) draw_window::$24) ← (number) $20
Successful SSA optimization PassNAddNumberTypeConversions
Inlining cast (byte*) screen#0 ← (byte*)(number) $400
Inlining cast (byte) main::x#0 ← (unumber)(number) 0
Inlining cast (word) main::wait#0 ← (unumber)(number) 0
Inlining cast (byte) textbox::x1#1 ← (unumber)(number) 0
Inlining cast (byte) textbox::y1#1 ← (unumber)(number) $c
Inlining cast (byte) textbox::x2#1 ← (unumber)(number) $14
Inlining cast (byte) textbox::y2#1 ← (unumber)(number) $18
Inlining cast (byte) textbox::x1#2 ← (unumber)(number) 3
Inlining cast (byte) textbox::y1#2 ← (unumber)(number) 3
Inlining cast (byte) textbox::x2#2 ← (unumber)(number) $25
Inlining cast (byte) textbox::y2#2 ← (unumber)(number) 9
Inlining cast (byte) textbox::x1#3 ← (unumber)(number) $1e
Inlining cast (byte) textbox::y1#3 ← (unumber)(number) 8
Inlining cast (byte) textbox::x2#3 ← (unumber)(number) $27
Inlining cast (byte) textbox::y2#3 ← (unumber)(number) $18
Inlining cast (byte) textbox::i#0 ← (unumber)(number) 0
Inlining cast (byte) textbox::c#0 ← (unumber)(number) 0
Inlining cast *((byte*) screen#0 + (word~) draw_window::$13) ← (unumber)(number) $43
Inlining cast *((byte*) screen#0 + (word~) draw_window::$14) ← (unumber)(number) $43
Inlining cast *((byte*) screen#0 + (word~) draw_window::$2) ← (unumber)(number) $55
Inlining cast *((byte*) screen#0 + (word~) draw_window::$3) ← (unumber)(number) $49
Inlining cast *((byte*) screen#0 + (word~) draw_window::$18) ← (unumber)(number) $42
Inlining cast *((byte*) screen#0 + (word~) draw_window::$19) ← (unumber)(number) $42
Inlining cast *((byte*) screen#0 + (word~) draw_window::$4) ← (unumber)(number) $4a
Inlining cast *((byte*) screen#0 + (word~) draw_window::$5) ← (unumber)(number) $4b
Inlining cast *((byte*) screen#0 + (word~) draw_window::$24) ← (unumber)(number) $20
Successful SSA optimization Pass2InlineCast
Simplifying constant pointer cast (byte*) 1024
Simplifying constant integer cast 0
Simplifying constant integer cast 1
Simplifying constant integer cast $a
Simplifying constant integer cast 0
Simplifying constant integer cast $88b8
Simplifying constant integer cast 2
Simplifying constant integer cast $f
Simplifying constant integer cast 0
Simplifying constant integer cast $c
Simplifying constant integer cast $14
Simplifying constant integer cast $18
Simplifying constant integer cast 3
Simplifying constant integer cast 3
Simplifying constant integer cast $25
Simplifying constant integer cast 9
Simplifying constant integer cast $1e
Simplifying constant integer cast 8
Simplifying constant integer cast $27
Simplifying constant integer cast $18
Simplifying constant integer cast 1
Simplifying constant integer cast 1
Simplifying constant integer cast $28
Simplifying constant integer cast 0
Simplifying constant integer cast $20
Simplifying constant integer cast 0
Simplifying constant integer cast 1
Simplifying constant integer cast $20
Simplifying constant integer cast 0
Simplifying constant integer cast $28
Simplifying constant integer cast 0
Simplifying constant integer cast 1
Simplifying constant integer cast $28
Simplifying constant integer cast $28
Simplifying constant integer cast $28
Simplifying constant integer cast 1
Simplifying constant integer cast $43
Simplifying constant integer cast $43
Simplifying constant integer cast $55
Simplifying constant integer cast $49
Simplifying constant integer cast 1
Simplifying constant integer cast $28
Simplifying constant integer cast $42
Simplifying constant integer cast $42
Simplifying constant integer cast $4a
Simplifying constant integer cast $4b
Simplifying constant integer cast 1
Simplifying constant integer cast 1
Simplifying constant integer cast 1
Simplifying constant integer cast $28
Simplifying constant integer cast 1
Simplifying constant integer cast $20
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (byte) 0
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) $a
Finalized unsigned number type (byte) 0
Finalized unsigned number type (word) $88b8
Finalized unsigned number type (byte) 2
Finalized unsigned number type (byte) $f
Finalized unsigned number type (byte) 0
Finalized unsigned number type (byte) $c
Finalized unsigned number type (byte) $14
Finalized unsigned number type (byte) $18
Finalized unsigned number type (byte) 3
Finalized unsigned number type (byte) 3
Finalized unsigned number type (byte) $25
Finalized unsigned number type (byte) 9
Finalized unsigned number type (byte) $1e
Finalized unsigned number type (byte) 8
Finalized unsigned number type (byte) $27
Finalized unsigned number type (byte) $18
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) $28
Finalized unsigned number type (byte) 0
Finalized unsigned number type (byte) $20
Finalized unsigned number type (byte) 0
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) $20
Finalized unsigned number type (byte) 0
Finalized unsigned number type (byte) $28
Finalized unsigned number type (byte) 0
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) $28
Finalized unsigned number type (byte) $28
Finalized unsigned number type (byte) $28
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) $43
Finalized unsigned number type (byte) $43
Finalized unsigned number type (byte) $55
Finalized unsigned number type (byte) $49
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) $28
Finalized unsigned number type (byte) $42
Finalized unsigned number type (byte) $42
Finalized unsigned number type (byte) $4a
Finalized unsigned number type (byte) $4b
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) $28
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) $20
Successful SSA optimization PassNFinalizeNumberTypeConversions
Inferred type updated to byte in (unumber~) main::$4 ← (byte~) main::$3 + (byte) 1
Inferred type updated to byte in (unumber~) main::$5 ← (byte) main::x#2 + (byte) $a
Inferred type updated to byte in (unumber~) textbox::$1 ← (byte) textbox::y1#5 + (byte) 1
Inferred type updated to byte in (unumber~) textbox::$2 ← (byte) textbox::x1#5 + (byte) 1
Inferred type updated to byte in (unumber~) textbox::$3 ← (byte) textbox::y#0 * (byte) $28
Inferred type updated to byte in (unumber~) textbox::$11 ← (byte) textbox::i#4 + (byte) 1
Inferred type updated to byte in (unumber~) textbox::$23 ← (byte) textbox::y#4 * (byte) $28
Inferred type updated to byte in (unumber~) textbox::$26 ← (byte) textbox::x1#8 + (byte) 1
Inferred type updated to byte in (unumber~) textbox::$29 ← (byte) textbox::y#6 * (byte) $28
Inferred type updated to byte in (unumber~) draw_window::$0 ← (byte) draw_window::y1#1 * (byte) $28
Inferred type updated to byte in (unumber~) draw_window::$1 ← (byte) draw_window::y2#1 * (byte) $28
Inferred type updated to byte in (unumber~) draw_window::$12 ← (byte) draw_window::x1#1 + (byte) 1
Inferred type updated to byte in (unumber~) draw_window::$16 ← (byte) draw_window::y1#2 + (byte) 1
Inferred type updated to byte in (unumber~) draw_window::$17 ← (byte) draw_window::y#2 * (byte) $28
Inferred type updated to byte in (unumber~) draw_window::$21 ← (byte) draw_window::y1#4 + (byte) 1
Inferred type updated to byte in (unumber~) draw_window::$22 ← (byte) draw_window::y3#2 * (byte) $28
Inferred type updated to byte in (unumber~) draw_window::$23 ← (byte) draw_window::x1#5 + (byte) 1
Inversing boolean not [68] (bool~) textbox::$10 ← *((byte*) textbox::text#4 + (byte) textbox::i#2) != (byte) $20 from [67] (bool~) textbox::$9 ← *((byte*) textbox::text#4 + (byte) textbox::i#2) == (byte) $20
Inversing boolean not [74] (bool~) textbox::$25 ← (byte) textbox::x#1 != (byte) textbox::x2#6 from [73] (bool~) textbox::$24 ← (byte) textbox::x#1 == (byte) textbox::x2#6
Inversing boolean not [100] (bool~) textbox::$22 ← (byte) textbox::y#1 != (byte) textbox::y2#6 from [99] (bool~) textbox::$21 ← (byte) textbox::y#1 == (byte) textbox::y2#6
Inversing boolean not [113] (bool~) textbox::$28 ← (byte) textbox::y#2 != (byte) textbox::y2#7 from [112] (bool~) textbox::$27 ← (byte) textbox::y#2 == (byte) textbox::y2#7
Successful SSA optimization Pass2UnaryNotSimplification
Alias (byte) textbox::x2#0 = (byte~) main::$4 
Alias (byte) textbox::y2#0 = (byte~) main::$5 
Alias (byte) main::x#2 = (byte) main::x#5 
Alias (byte) main::x#3 = (byte) main::x#4 
Alias (byte) textbox::y1#4 = (byte) textbox::y1#5 
Alias (byte) textbox::x1#4 = (byte) textbox::x1#5 
Alias (byte) textbox::x2#4 = (byte) textbox::x2#5 
Alias (byte) textbox::y2#4 = (byte) textbox::y2#5 
Alias (byte*) textbox::text#12 = (byte*) textbox::text#7 
Alias (byte) textbox::y#0 = (byte~) textbox::$1 
Alias (byte) textbox::x#0 = (byte~) textbox::$2 
Alias (word) textbox::z#0 = (byte~) textbox::$3 
Alias (byte) textbox::i#2 = (byte) textbox::i#4 
Alias (byte*) textbox::text#4 = (byte*) textbox::text#8 
Alias (byte) textbox::x#10 = (byte) textbox::x#4 
Alias (byte) textbox::x2#12 = (byte) textbox::x2#9 
Alias (byte) textbox::x1#12 = (byte) textbox::x1#13 
Alias (byte) textbox::y#12 = (byte) textbox::y#9 
Alias (byte) textbox::y2#11 = (byte) textbox::y2#14 
Alias (word) textbox::z#3 = (word) textbox::z#8 
Alias (byte) textbox::ls#0 = (byte~) textbox::$11 
Alias (byte) textbox::ls#2 = (byte) textbox::ls#3 
Alias (byte) textbox::c#2 = (byte) textbox::c#4 (byte) textbox::c#3 
Alias (byte*) textbox::text#13 = (byte*) textbox::text#9 (byte*) textbox::text#5 (byte*) textbox::text#14 (byte*) textbox::text#16 
Alias (byte) textbox::x#11 = (byte) textbox::x#9 (byte) textbox::x#6 
Alias (byte) textbox::x2#10 = (byte) textbox::x2#13 (byte) textbox::x2#7 (byte) textbox::x2#14 (byte) textbox::x2#8 
Alias (byte) textbox::x1#11 = (byte) textbox::x1#14 (byte) textbox::x1#9 (byte) textbox::x1#6 (byte) textbox::x1#7 (byte) textbox::x#2 (byte) textbox::x#8 
Alias (byte) textbox::i#10 = (byte) textbox::i#12 (byte) textbox::i#9 (byte) textbox::i#7 (byte) textbox::i#6 
Alias (byte) textbox::y#10 = (byte) textbox::y#13 (byte) textbox::y#7 (byte) textbox::y#3 
Alias (byte) textbox::y2#10 = (byte) textbox::y2#15 (byte) textbox::y2#12 (byte) textbox::y2#8 (byte) textbox::y2#6 
Alias (word) textbox::z#6 = (word) textbox::z#9 (word) textbox::z#7 
Alias (byte) textbox::y#1 = (byte) textbox::y#4 
Alias (word) textbox::z#1 = (byte~) textbox::$23 
Alias (byte) textbox::x1#10 = (byte) textbox::x1#8 (byte) textbox::x1#16 
Alias (byte) textbox::y#5 = (byte) textbox::y#8 
Alias (byte) textbox::y2#16 = (byte) textbox::y2#7 (byte) textbox::y2#9 
Alias (byte*) textbox::text#10 = (byte*) textbox::text#15 (byte*) textbox::text#11 
Alias (byte) textbox::i#1 = (byte) textbox::i#11 (byte) textbox::i#8 
Alias (byte) textbox::x2#15 = (byte) textbox::x2#16 (byte) textbox::x2#6 
Alias (byte) textbox::x#12 = (byte) textbox::x#3 (byte~) textbox::$26 
Alias (byte) textbox::y#2 = (byte) textbox::y#6 
Alias (word) textbox::z#2 = (byte~) textbox::$29 
Alias (word) draw_window::z#0 = (byte~) draw_window::$0 
Alias (word) draw_window::q#0 = (byte~) draw_window::$1 
Alias (byte) draw_window::x#0 = (byte~) draw_window::$12 
Alias (word) draw_window::z#3 = (word) draw_window::z#4 
Alias (byte) draw_window::x1#2 = (byte) draw_window::x1#6 
Alias (byte) draw_window::x2#1 = (byte) draw_window::x2#2 
Alias (byte) draw_window::y1#2 = (byte) draw_window::y1#5 
Alias (byte) draw_window::y2#5 = (byte) draw_window::y2#7 
Alias (word) draw_window::q#1 = (word) draw_window::q#4 
Alias (byte) draw_window::y#0 = (byte~) draw_window::$16 
Alias (word) draw_window::z#1 = (byte~) draw_window::$17 
Alias (word) draw_window::q#2 = (word) draw_window::q#3 
Alias (byte) draw_window::x1#3 = (byte) draw_window::x1#4 (byte) draw_window::x1#7 
Alias (byte) draw_window::x2#3 = (byte) draw_window::x2#4 (byte) draw_window::x2#8 
Alias (byte) draw_window::y2#2 = (byte) draw_window::y2#3 (byte) draw_window::y2#9 
Alias (byte) draw_window::y1#3 = (byte) draw_window::y1#6 (byte) draw_window::y1#4 
Alias (byte) draw_window::y3#0 = (byte~) draw_window::$21 
Alias (word) draw_window::z#2 = (byte~) draw_window::$22 
Alias (byte) draw_window::x3#0 = (byte~) draw_window::$23 
Alias (byte) draw_window::y3#3 = (byte) draw_window::y3#4 
Alias (byte) draw_window::y2#4 = (byte) draw_window::y2#6 
Alias (byte) draw_window::x1#8 = (byte) draw_window::x1#9 
Alias (byte) draw_window::x2#5 = (byte) draw_window::x2#9 
Successful SSA optimization Pass2AliasElimination
Alias (byte*) textbox::text#10 = (byte*) textbox::text#6 
Alias (byte) textbox::i#1 = (byte) textbox::i#5 
Alias (byte) textbox::x2#11 = (byte) textbox::x2#15 
Alias (byte) textbox::x1#10 = (byte) textbox::x1#15 
Alias (byte) textbox::y2#13 = (byte) textbox::y2#16 
Successful SSA optimization Pass2AliasElimination
Self Phi Eliminated (byte) main::x#3
Self Phi Eliminated (byte*) textbox::text#13
Self Phi Eliminated (byte) textbox::x#11
Self Phi Eliminated (byte) textbox::x2#10
Self Phi Eliminated (byte) textbox::x1#11
Self Phi Eliminated (byte) textbox::i#10
Self Phi Eliminated (byte) textbox::y#10
Self Phi Eliminated (byte) textbox::y2#10
Self Phi Eliminated (word) textbox::z#6
Self Phi Eliminated (word) draw_window::z#3
Self Phi Eliminated (word) draw_window::q#1
Self Phi Eliminated (byte) draw_window::x2#1
Self Phi Eliminated (byte) draw_window::x1#2
Self Phi Eliminated (byte) draw_window::y1#2
Self Phi Eliminated (byte) draw_window::y2#5
Self Phi Eliminated (byte) draw_window::x1#3
Self Phi Eliminated (byte) draw_window::x2#3
Self Phi Eliminated (byte) draw_window::y2#2
Self Phi Eliminated (word) draw_window::q#2
Self Phi Eliminated (byte) draw_window::y1#3
Self Phi Eliminated (word) draw_window::z#5
Self Phi Eliminated (byte) draw_window::x2#5
Self Phi Eliminated (byte) draw_window::y3#3
Self Phi Eliminated (byte) draw_window::y2#4
Self Phi Eliminated (byte) draw_window::x1#8
Successful SSA optimization Pass2SelfPhiElimination
Identical Phi Values (byte) main::x#3 (byte) main::x#2
Identical Phi Values (byte*) textbox::text#13 (byte*) textbox::text#4
Identical Phi Values (byte) textbox::x#11 (byte) textbox::x#10
Identical Phi Values (byte) textbox::x2#10 (byte) textbox::x2#12
Identical Phi Values (byte) textbox::x1#11 (byte) textbox::x1#12
Identical Phi Values (byte) textbox::i#10 (byte) textbox::i#2
Identical Phi Values (byte) textbox::y#10 (byte) textbox::y#12
Identical Phi Values (byte) textbox::y2#10 (byte) textbox::y2#11
Identical Phi Values (word) textbox::z#6 (word) textbox::z#3
Identical Phi Values (byte) draw_window::y1#1 (byte) draw_window::y1#0
Identical Phi Values (byte) draw_window::y2#1 (byte) draw_window::y2#0
Identical Phi Values (byte) draw_window::x1#1 (byte) draw_window::x1#0
Identical Phi Values (byte) draw_window::x2#6 (byte) draw_window::x2#0
Identical Phi Values (word) draw_window::z#3 (word) draw_window::z#0
Identical Phi Values (word) draw_window::q#1 (word) draw_window::q#0
Identical Phi Values (byte) draw_window::x2#1 (byte) draw_window::x2#6
Identical Phi Values (byte) draw_window::x1#2 (byte) draw_window::x1#1
Identical Phi Values (byte) draw_window::y1#2 (byte) draw_window::y1#1
Identical Phi Values (byte) draw_window::y2#5 (byte) draw_window::y2#1
Identical Phi Values (byte) draw_window::x1#3 (byte) draw_window::x1#2
Identical Phi Values (byte) draw_window::x2#3 (byte) draw_window::x2#1
Identical Phi Values (byte) draw_window::y2#2 (byte) draw_window::y2#5
Identical Phi Values (word) draw_window::q#2 (word) draw_window::q#1
Identical Phi Values (byte) draw_window::y1#3 (byte) draw_window::y1#2
Identical Phi Values (word) draw_window::z#5 (word) draw_window::z#2
Identical Phi Values (byte) draw_window::x2#5 (byte) draw_window::x2#7
Identical Phi Values (byte) draw_window::y3#3 (byte) draw_window::y3#2
Identical Phi Values (byte) draw_window::y2#4 (byte) draw_window::y2#8
Identical Phi Values (byte) draw_window::x1#8 (byte) draw_window::x1#5
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values (byte) textbox::i#3 (byte) textbox::i#2
Identical Phi Values (byte) textbox::x2#11 (byte) textbox::x2#12
Identical Phi Values (byte*) textbox::text#10 (byte*) textbox::text#4
Identical Phi Values (byte) textbox::x1#10 (byte) textbox::x1#12
Identical Phi Values (byte) textbox::y2#13 (byte) textbox::y2#11
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$7 [19] if((word) main::wait#1<(word) $88b8) goto main::@2
Simple Condition (bool~) main::$8 [23] if((byte) main::x#1<(byte) $f) goto main::@1
Simple Condition (bool~) textbox::$10 [69] if(*((byte*) textbox::text#4 + (byte) textbox::i#2)!=(byte) $20) goto textbox::@5
Simple Condition (bool~) textbox::$25 [75] if((byte) textbox::x#1!=(byte) textbox::x2#12) goto textbox::@17
Simple Condition (bool~) textbox::$22 [101] if((byte) textbox::y#1!=(byte) textbox::y2#11) goto textbox::@16
Simple Condition (bool~) textbox::$30 [107] if(*((byte*) textbox::text#4 + (byte) textbox::i#1)!=(byte) 0) goto textbox::@4
Simple Condition (bool~) textbox::$28 [114] if((byte) textbox::y#2!=(byte) textbox::y2#11) goto textbox::@18
Simple Condition (bool~) draw_window::$15 [132] if((byte) draw_window::x#1<(byte) draw_window::x2#0) goto draw_window::@2
Simple Condition (bool~) draw_window::$20 [149] if((byte) draw_window::y#1<(byte) draw_window::y2#0) goto draw_window::@4
Simple Condition (bool~) draw_window::$25 [175] if((byte) draw_window::x3#1<(byte) draw_window::x2#7) goto draw_window::@8
Simple Condition (bool~) draw_window::$26 [179] if((byte) draw_window::y3#1<(byte) draw_window::y2#8) goto draw_window::@7
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [61] (bool~) textbox::$7 ← ! (bool~) textbox::$6
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting || if()-condition to two if()s [60] (bool~) textbox::$6 ← (bool~) textbox::$4 || (bool~) textbox::$5
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting && if()-condition to two if()s [83] (bool~) textbox::$14 ← (bool~) textbox::$12 && (bool~) textbox::$13
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting ! if()-condition to reversed if() [94] (bool~) textbox::$20 ← ! (bool~) textbox::$19
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting && if()-condition to two if()s [93] (bool~) textbox::$19 ← (bool~) textbox::$16 && (bool~) textbox::$18
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting ! if()-condition to reversed if() [160] (bool~) draw_window::$11 ← ! (bool~) draw_window::$10
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting && if()-condition to two if()s [159] (bool~) draw_window::$10 ← (bool~) draw_window::$7 && (bool~) draw_window::$9
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant (const byte*) screen#0 = (byte*) 1024
Constant (const byte[]) text#0 = $0
Constant (const byte[]) text2#0 = $1
Constant (const byte) main::x#0 = 0
Constant (const word) main::wait#0 = 0
Constant (const byte) textbox::x1#1 = 0
Constant (const byte) textbox::y1#1 = $c
Constant (const byte) textbox::x2#1 = $14
Constant (const byte) textbox::y2#1 = $18
Constant (const byte) textbox::x1#2 = 3
Constant (const byte) textbox::y1#2 = 3
Constant (const byte) textbox::x2#2 = $25
Constant (const byte) textbox::y2#2 = 9
Constant (const byte) textbox::x1#3 = $1e
Constant (const byte) textbox::y1#3 = 8
Constant (const byte) textbox::x2#3 = $27
Constant (const byte) textbox::y2#3 = $18
Constant (const byte) textbox::i#0 = 0
Constant (const byte) textbox::c#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Constant (const byte*) textbox::text#0 = text2#0
Constant (const byte*) textbox::text#1 = text#0
Constant (const byte*) textbox::text#2 = text#0
Constant (const byte*) textbox::text#3 = text#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [42] if(true) goto main::@5
Successful SSA optimization Pass2ConstantIfs
De-inlining pointer[w] to *(pointer+w)   [66] *((const byte*) screen#0 + (word~) textbox::$8) ← *((byte*) textbox::text#4 + (byte) textbox::i#2)
De-inlining pointer[w] to *(pointer+w)   [127] *((const byte*) screen#0 + (word~) draw_window::$13) ← (byte) $43
De-inlining pointer[w] to *(pointer+w)   [129] *((const byte*) screen#0 + (word~) draw_window::$14) ← (byte) $43
De-inlining pointer[w] to *(pointer+w)   [135] *((const byte*) screen#0 + (word~) draw_window::$2) ← (byte) $55
De-inlining pointer[w] to *(pointer+w)   [137] *((const byte*) screen#0 + (word~) draw_window::$3) ← (byte) $49
De-inlining pointer[w] to *(pointer+w)   [144] *((const byte*) screen#0 + (word~) draw_window::$18) ← (byte) $42
De-inlining pointer[w] to *(pointer+w)   [146] *((const byte*) screen#0 + (word~) draw_window::$19) ← (byte) $42
De-inlining pointer[w] to *(pointer+w)   [152] *((const byte*) screen#0 + (word~) draw_window::$4) ← (byte) $4a
De-inlining pointer[w] to *(pointer+w)   [154] *((const byte*) screen#0 + (word~) draw_window::$5) ← (byte) $4b
De-inlining pointer[w] to *(pointer+w)   [172] *((const byte*) screen#0 + (word~) draw_window::$24) ← (byte) $20
Successful SSA optimization Pass2DeInlineWordDerefIdx
Removing unused block main::@return
Successful SSA optimization Pass2EliminateUnusedBlocks
Self Phi Eliminated (byte*) textbox::text#4
Self Phi Eliminated (byte) textbox::x2#12
Self Phi Eliminated (byte) textbox::x1#12
Self Phi Eliminated (byte) textbox::y2#11
Self Phi Eliminated (byte) draw_window::x1#5
Self Phi Eliminated (byte) draw_window::x2#7
Self Phi Eliminated (byte) draw_window::y2#8
Successful SSA optimization Pass2SelfPhiElimination
Identical Phi Values (byte*) textbox::text#4 (byte*) textbox::text#12
Identical Phi Values (byte) textbox::x2#12 (byte) textbox::x2#4
Identical Phi Values (byte) textbox::x1#12 (byte) textbox::x1#4
Identical Phi Values (byte) textbox::y2#11 (byte) textbox::y2#4
Identical Phi Values (byte) draw_window::x1#5 (byte) draw_window::x1#0
Identical Phi Values (byte) draw_window::x2#7 (byte) draw_window::x2#0
Identical Phi Values (byte) draw_window::y2#8 (byte) draw_window::y2#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) textbox::$4 [26] if((byte) textbox::x#0==(byte) textbox::x2#4) goto textbox::@return
Simple Condition (bool~) textbox::$12 [41] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) $20) goto textbox::@26
Simple Condition (bool~) textbox::$16 [48] if((byte~) textbox::$15>=(byte) textbox::x2#4) goto textbox::@27
Simple Condition (bool~) draw_window::$7 [97] if((byte~) draw_window::$6>(byte) 1) goto draw_window::@11
Simple Condition (bool~) textbox::$5 [112] if((byte) textbox::y#0==(byte) textbox::y2#4) goto textbox::@return
Simple Condition (bool~) textbox::$13 [113] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) 0) goto textbox::@7
Simple Condition (bool~) textbox::$18 [114] if((byte) textbox::c#2<(byte~) textbox::$17) goto textbox::@12
Simple Condition (bool~) draw_window::$9 [115] if((byte~) draw_window::$8>(byte) 1) goto draw_window::@6
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [41] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@8
Negating conditional jump and destination [48] if((byte~) textbox::$15<(byte) textbox::x2#4) goto textbox::@5
Negating conditional jump and destination [97] if((byte~) draw_window::$6<=(byte) 1) goto draw_window::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Rewriting conditional comparison [97] if((byte~) draw_window::$6<=(byte) 1) goto draw_window::@return
Rewriting conditional comparison [115] if((byte~) draw_window::$8>(byte) 1) goto draw_window::@6
Adding number conversion cast (unumber) 1+1 in if((byte~) draw_window::$6<(byte) 1+(number) 1) goto draw_window::@return
Adding number conversion cast (unumber) 1 in if((byte~) draw_window::$6<(unumber)(byte) 1+(number) 1) goto draw_window::@return
Adding number conversion cast (unumber) 1+1 in if((byte~) draw_window::$8>=(byte) 1+(number) 1) goto draw_window::@6
Adding number conversion cast (unumber) 1 in if((byte~) draw_window::$8>=(unumber)(byte) 1+(number) 1) goto draw_window::@6
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast (byte) 1+(unumber)(number) 1
Simplifying constant integer cast 1
Simplifying constant integer cast (byte) 1+(unumber)(number) 1
Simplifying constant integer cast 1
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) 1
Successful SSA optimization PassNFinalizeNumberTypeConversions
Rewriting multiplication to use shift and addition[23] (word) textbox::z#0 ← (byte) textbox::y#0 * (byte) $28
Rewriting multiplication to use shift and addition[45] (word) textbox::z#1 ← (byte) textbox::y#1 * (byte) $28
Rewriting multiplication to use shift and addition[51] (word) textbox::z#2 ← (byte) textbox::y#2 * (byte) $28
Rewriting multiplication to use shift and addition[52] (word) draw_window::z#0 ← (byte) draw_window::y1#0 * (byte) $28
Rewriting multiplication to use shift and addition[53] (word) draw_window::q#0 ← (byte) draw_window::y2#0 * (byte) $28
Rewriting multiplication to use shift and addition[72] (word) draw_window::z#1 ← (byte) draw_window::y#2 * (byte) $28
Rewriting multiplication to use shift and addition[92] (word) draw_window::z#2 ← (byte) draw_window::y3#2 * (byte) $28
Inlining constant with var siblings (const byte) main::x#0
Inlining constant with var siblings (const word) main::wait#0
Inlining constant with var siblings (const byte) textbox::x1#1
Inlining constant with var siblings (const byte) textbox::y1#1
Inlining constant with var siblings (const byte) textbox::x2#1
Inlining constant with var siblings (const byte) textbox::y2#1
Inlining constant with var siblings (const byte) textbox::x1#2
Inlining constant with var siblings (const byte) textbox::y1#2
Inlining constant with var siblings (const byte) textbox::x2#2
Inlining constant with var siblings (const byte) textbox::y2#2
Inlining constant with var siblings (const byte) textbox::x1#3
Inlining constant with var siblings (const byte) textbox::y1#3
Inlining constant with var siblings (const byte) textbox::x2#3
Inlining constant with var siblings (const byte) textbox::y2#3
Inlining constant with var siblings (const byte) textbox::i#0
Inlining constant with var siblings (const byte) textbox::c#0
Inlining constant with var siblings (const byte*) textbox::text#0
Inlining constant with var siblings (const byte*) textbox::text#1
Inlining constant with var siblings (const byte*) textbox::text#2
Inlining constant with var siblings (const byte*) textbox::text#3
Constant inlined main::wait#0 = (byte) 0
Constant inlined main::x#0 = (byte) 0
Constant inlined textbox::text#2 = (const byte[]) text#0
Constant inlined $0 = (const byte[]) text#0
Constant inlined textbox::text#3 = (const byte[]) text#0
Constant inlined $1 = (const byte[]) text2#0
Constant inlined textbox::text#0 = (const byte[]) text2#0
Constant inlined textbox::text#1 = (const byte[]) text#0
Constant inlined textbox::c#0 = (byte) 0
Constant inlined textbox::x2#1 = (byte) $14
Constant inlined textbox::x1#2 = (byte) 3
Constant inlined textbox::y2#3 = (byte) $18
Constant inlined textbox::x2#2 = (byte) $25
Constant inlined textbox::y2#2 = (byte) 9
Constant inlined textbox::x1#3 = (byte) $1e
Constant inlined textbox::y1#3 = (byte) 8
Constant inlined textbox::y2#1 = (byte) $18
Constant inlined textbox::y1#2 = (byte) 3
Constant inlined textbox::x1#1 = (byte) 0
Constant inlined textbox::y1#1 = (byte) $c
Constant inlined textbox::x2#3 = (byte) $27
Constant inlined textbox::i#0 = (byte) 0
Successful SSA optimization Pass2ConstantInlining
Alias (word) textbox::z#0 = (byte) textbox::$34 
Alias (word) textbox::z#1 = (byte) textbox::$37 
Alias (word) textbox::z#2 = (byte) textbox::$40 
Alias (word) draw_window::z#0 = (byte) draw_window::$38 
Alias (word) draw_window::q#0 = (byte) draw_window::$41 
Alias (word) draw_window::z#1 = (byte) draw_window::$44 
Alias (word) draw_window::z#2 = (byte) draw_window::$47 
Successful SSA optimization Pass2AliasElimination
Added new block during phi lifting main::@11(between main::@3 and main::@1)
Added new block during phi lifting main::@12(between main::@2 and main::@2)
Added new block during phi lifting textbox::@28(between textbox::@17 and textbox::@4)
Added new block during phi lifting textbox::@29(between textbox::@25 and textbox::@4)
Fixing phi predecessor for textbox::i#2 to new block ( textbox::@25 -> textbox::@29 ) during phi lifting.
Added new block during phi lifting textbox::@30(between textbox::@4 and textbox::@5)
Added new block during phi lifting textbox::@31(between textbox::@8 and textbox::@5)
Added new block during phi lifting textbox::@32(between textbox::@5 and textbox::@17)
Added new block during phi lifting draw_window::@12(between draw_window::@2 and draw_window::@2)
Added new block during phi lifting draw_window::@13(between draw_window::@4 and draw_window::@4)
Added new block during phi lifting draw_window::@14(between draw_window::@9 and draw_window::@7)
Added new block during phi lifting draw_window::@15(between draw_window::@8 and draw_window::@8)
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @4
Adding NOP phi() at start of @7
Adding NOP phi() at start of @8
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
Adding NOP phi() at start of main::@7
Adding NOP phi() at start of main::@4
Adding NOP phi() at start of main::@8
Adding NOP phi() at start of main::@9
Adding NOP phi() at start of main::@10
Adding NOP phi() at start of main::@5
CALL GRAPH
Calls in [] to main:3 
Calls in [main] to textbox:17 textbox:25 textbox:27 textbox:29 
Calls in [textbox] to draw_window:39 

Created 23 initial phi equivalence classes
Coalesced [13] textbox::x1#17 ← textbox::x1#0
Coalesced [14] textbox::y1#6 ← textbox::y1#0
Coalesced [15] textbox::x2#17 ← textbox::x2#0
Coalesced [16] textbox::y2#17 ← textbox::y2#0
Coalesced [32] main::x#6 ← main::x#1
Coalesced [33] main::wait#3 ← main::wait#1
Coalesced [47] textbox::z#11 ← textbox::z#0
Coalesced [48] textbox::x#14 ← textbox::x#0
Coalesced [49] textbox::y#15 ← textbox::y#0
Coalesced [56] textbox::ls#4 ← textbox::ls#0
Coalesced [75] textbox::z#15 ← textbox::z#2
Coalesced [76] textbox::x#18 ← textbox::x#12
Coalesced [77] textbox::y#19 ← textbox::y#2
Coalesced [80] textbox::z#10 ← textbox::z#4
Coalesced [81] textbox::x#13 ← textbox::x#7
Coalesced [82] textbox::i#13 ← textbox::i#1
Coalesced [83] textbox::y#14 ← textbox::y#11
Coalesced [84] textbox::z#16 ← textbox::z#5
Coalesced [85] textbox::x#19 ← textbox::x#1
Coalesced [86] textbox::y#20 ← textbox::y#5
Not coalescing [92] textbox::x#15 ← textbox::x1#4
Coalesced [93] textbox::y#16 ← textbox::y#1
Coalesced [94] textbox::z#12 ← textbox::z#1
Coalesced [95] textbox::x#17 ← textbox::x#10
Coalesced (already) [96] textbox::y#18 ← textbox::y#12
Coalesced (already) [97] textbox::z#14 ← textbox::z#3
Coalesced [100] textbox::ls#5 ← textbox::ls#1
Coalesced [101] textbox::c#5 ← textbox::c#1
Coalesced (already) [102] textbox::x#16 ← textbox::x#10
Coalesced (already) [103] textbox::y#17 ← textbox::y#12
Coalesced (already) [104] textbox::z#13 ← textbox::z#3
Coalesced [112] draw_window::x#3 ← draw_window::x#0
Coalesced [129] draw_window::y#3 ← draw_window::y#0
Coalesced [154] draw_window::y3#5 ← draw_window::y3#0
Coalesced [160] draw_window::x3#3 ← draw_window::x3#0
Coalesced [169] draw_window::y3#6 ← draw_window::y3#1
Coalesced [170] draw_window::x3#4 ← draw_window::x3#1
Coalesced [171] draw_window::y#4 ← draw_window::y#1
Coalesced [172] draw_window::x#4 ← draw_window::x#1
Coalesced down to 17 phi equivalence classes
Culled Empty Block (label) @4
Culled Empty Block (label) @8
Culled Empty Block (label) main::@7
Culled Empty Block (label) main::@10
Culled Empty Block (label) main::@11
Culled Empty Block (label) main::@12
Culled Empty Block (label) textbox::@29
Culled Empty Block (label) textbox::@28
Culled Empty Block (label) textbox::@32
Culled Empty Block (label) textbox::@31
Culled Empty Block (label) textbox::@30
Culled Empty Block (label) draw_window::@14
Culled Empty Block (label) draw_window::@15
Culled Empty Block (label) draw_window::@13
Culled Empty Block (label) draw_window::@12
Renumbering block @7 to @1
Renumbering block main::@8 to main::@6
Renumbering block main::@9 to main::@7
Renumbering block textbox::@4 to textbox::@1
Renumbering block textbox::@5 to textbox::@2
Renumbering block textbox::@6 to textbox::@3
Renumbering block textbox::@7 to textbox::@4
Renumbering block textbox::@8 to textbox::@5
Renumbering block textbox::@12 to textbox::@6
Renumbering block textbox::@16 to textbox::@7
Renumbering block textbox::@17 to textbox::@8
Renumbering block textbox::@18 to textbox::@9
Renumbering block textbox::@19 to textbox::@10
Renumbering block textbox::@20 to textbox::@11
Renumbering block textbox::@24 to textbox::@12
Renumbering block textbox::@25 to textbox::@13
Renumbering block textbox::@26 to textbox::@14
Renumbering block textbox::@27 to textbox::@15
Renumbering block draw_window::@2 to draw_window::@1
Renumbering block draw_window::@3 to draw_window::@2
Renumbering block draw_window::@4 to draw_window::@3
Renumbering block draw_window::@5 to draw_window::@4
Renumbering block draw_window::@6 to draw_window::@5
Renumbering block draw_window::@7 to draw_window::@6
Renumbering block draw_window::@8 to draw_window::@7
Renumbering block draw_window::@9 to draw_window::@8
Renumbering block draw_window::@11 to draw_window::@9
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @1
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
Adding NOP phi() at start of main::@4
Adding NOP phi() at start of main::@6
Adding NOP phi() at start of main::@7
Adding NOP phi() at start of main::@5

FINAL CONTROL FLOW GRAPH
@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()
main: scope:[main]  from @1
  [4] phi()
  to:main::@1
main::@1: scope:[main]  from main main::@3
  [5] (byte) main::x#2 ← phi( main/(byte) 0 main::@3/(byte) main::x#1 )
  [6] (byte~) main::$3 ← (byte) main::x#2 + (byte) main::x#2
  [7] (byte) textbox::x2#0 ← (byte~) main::$3 + (byte) 1
  [8] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a
  [9] (byte) textbox::x1#0 ← (byte) main::x#2
  [10] (byte) textbox::y1#0 ← (byte) main::x#2
  [11] call textbox 
  to:main::@2
main::@2: scope:[main]  from main::@1 main::@2
  [12] (word) main::wait#2 ← phi( main::@2/(word) main::wait#1 main::@1/(byte) 0 )
  [13] (word) main::wait#1 ← ++ (word) main::wait#2
  [14] if((word) main::wait#1<(word) $88b8) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@2
  [15] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2
  [16] if((byte) main::x#1<(byte) $f) goto main::@1
  to:main::@4
main::@4: scope:[main]  from main::@3
  [17] phi()
  [18] call textbox 
  to:main::@6
main::@6: scope:[main]  from main::@4
  [19] phi()
  [20] call textbox 
  to:main::@7
main::@7: scope:[main]  from main::@6
  [21] phi()
  [22] call textbox 
  to:main::@5
main::@5: scope:[main]  from main::@5 main::@7
  [23] phi()
  to:main::@5
textbox: scope:[textbox]  from main::@1 main::@4 main::@6 main::@7
  [24] (byte*) textbox::text#12 ← phi( main::@1/(const byte[]) text2#0 main::@4/(const byte[]) text#0 main::@6/(const byte[]) text#0 main::@7/(const byte[]) text#0 )
  [24] (byte) textbox::y2#4 ← phi( main::@1/(byte) textbox::y2#0 main::@4/(byte) $18 main::@6/(byte) 9 main::@7/(byte) $18 )
  [24] (byte) textbox::x2#4 ← phi( main::@1/(byte) textbox::x2#0 main::@4/(byte) $14 main::@6/(byte) $25 main::@7/(byte) $27 )
  [24] (byte) textbox::y1#4 ← phi( main::@1/(byte) textbox::y1#0 main::@4/(byte) $c main::@6/(byte) 3 main::@7/(byte) 8 )
  [24] (byte) textbox::x1#4 ← phi( main::@1/(byte) textbox::x1#0 main::@4/(byte) 0 main::@6/(byte) 3 main::@7/(byte) $1e )
  [25] (byte) draw_window::x1#0 ← (byte) textbox::x1#4
  [26] (byte) draw_window::y1#0 ← (byte) textbox::y1#4
  [27] (byte) draw_window::x2#0 ← (byte) textbox::x2#4
  [28] (byte) draw_window::y2#0 ← (byte) textbox::y2#4
  [29] call draw_window 
  to:textbox::@12
textbox::@12: scope:[textbox]  from textbox
  [30] (byte) textbox::y#0 ← (byte) textbox::y1#4 + (byte) 1
  [31] (byte) textbox::x#0 ← (byte) textbox::x1#4 + (byte) 1
  [32] (byte) textbox::$32 ← (byte) textbox::y#0 << (byte) 2
  [33] (byte) textbox::$33 ← (byte) textbox::$32 + (byte) textbox::y#0
  [34] (word) textbox::z#0 ← (byte) textbox::$33 << (byte) 3
  [35] if((byte) textbox::x#0==(byte) textbox::x2#4) goto textbox::@return
  to:textbox::@13
textbox::@13: scope:[textbox]  from textbox::@12
  [36] if((byte) textbox::y#0==(byte) textbox::y2#4) goto textbox::@return
  to:textbox::@1
textbox::@1: scope:[textbox]  from textbox::@13 textbox::@8
  [37] (byte) textbox::y#12 ← phi( textbox::@8/(byte) textbox::y#11 textbox::@13/(byte) textbox::y#0 )
  [37] (byte) textbox::i#2 ← phi( textbox::@8/(byte) textbox::i#1 textbox::@13/(byte) 0 )
  [37] (byte) textbox::x#10 ← phi( textbox::@8/(byte) textbox::x#7 textbox::@13/(byte) textbox::x#0 )
  [37] (word) textbox::z#3 ← phi( textbox::@8/(word) textbox::z#4 textbox::@13/(word) textbox::z#0 )
  [38] (word~) textbox::$8 ← (word) textbox::z#3 + (byte) textbox::x#10
  [39] (byte*~) textbox::$31 ← (const byte*) screen#0 + (word~) textbox::$8
  [40] *((byte*~) textbox::$31) ← *((byte*) textbox::text#12 + (byte) textbox::i#2)
  [41] if(*((byte*) textbox::text#12 + (byte) textbox::i#2)!=(byte) $20) goto textbox::@2
  to:textbox::@10
textbox::@10: scope:[textbox]  from textbox::@1
  [42] (byte) textbox::ls#0 ← (byte) textbox::i#2 + (byte) 1
  to:textbox::@3
textbox::@3: scope:[textbox]  from textbox::@10 textbox::@4
  [43] (byte) textbox::c#2 ← phi( textbox::@10/(byte) 0 textbox::@4/(byte) textbox::c#1 )
  [43] (byte) textbox::ls#2 ← phi( textbox::@10/(byte) textbox::ls#0 textbox::@4/(byte) textbox::ls#1 )
  [44] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@5
  to:textbox::@14
textbox::@14: scope:[textbox]  from textbox::@3
  [45] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) 0) goto textbox::@4
  to:textbox::@5
textbox::@5: scope:[textbox]  from textbox::@14 textbox::@3
  [46] (byte~) textbox::$15 ← (byte) textbox::c#2 + (byte) textbox::x#10
  [47] (byte~) textbox::$17 ← (byte) textbox::x2#4 - (byte) textbox::x1#4
  [48] if((byte~) textbox::$15<(byte) textbox::x2#4) goto textbox::@2
  to:textbox::@15
textbox::@15: scope:[textbox]  from textbox::@5
  [49] if((byte) textbox::c#2<(byte~) textbox::$17) goto textbox::@6
  to:textbox::@2
textbox::@2: scope:[textbox]  from textbox::@1 textbox::@15 textbox::@5 textbox::@7
  [50] (word) textbox::z#5 ← phi( textbox::@7/(word) textbox::z#1 textbox::@1/(word) textbox::z#3 textbox::@5/(word) textbox::z#3 )
  [50] (byte) textbox::y#5 ← phi( textbox::@7/(byte) textbox::y#1 textbox::@1/(byte) textbox::y#12 textbox::@5/(byte) textbox::y#12 )
  [50] (byte) textbox::x#5 ← phi( textbox::@7/(byte~) textbox::x#15 textbox::@1/(byte) textbox::x#10 textbox::@5/(byte) textbox::x#10 )
  [51] (byte) textbox::i#1 ← ++ (byte) textbox::i#2
  [52] (byte) textbox::x#1 ← ++ (byte) textbox::x#5
  [53] if((byte) textbox::x#1!=(byte) textbox::x2#4) goto textbox::@8
  to:textbox::@11
textbox::@11: scope:[textbox]  from textbox::@2
  [54] (byte) textbox::x#12 ← (byte) textbox::x1#4 + (byte) 1
  [55] (byte) textbox::y#2 ← ++ (byte) textbox::y#5
  [56] if((byte) textbox::y#2!=(byte) textbox::y2#4) goto textbox::@9
  to:textbox::@return
textbox::@return: scope:[textbox]  from textbox::@11 textbox::@12 textbox::@13 textbox::@6 textbox::@8
  [57] return 
  to:@return
textbox::@9: scope:[textbox]  from textbox::@11
  [58] (byte) textbox::$38 ← (byte) textbox::y#2 << (byte) 2
  [59] (byte) textbox::$39 ← (byte) textbox::$38 + (byte) textbox::y#2
  [60] (word) textbox::z#2 ← (byte) textbox::$39 << (byte) 3
  to:textbox::@8
textbox::@8: scope:[textbox]  from textbox::@2 textbox::@9
  [61] (byte) textbox::y#11 ← phi( textbox::@9/(byte) textbox::y#2 textbox::@2/(byte) textbox::y#5 )
  [61] (byte) textbox::x#7 ← phi( textbox::@9/(byte) textbox::x#12 textbox::@2/(byte) textbox::x#1 )
  [61] (word) textbox::z#4 ← phi( textbox::@9/(word) textbox::z#2 textbox::@2/(word) textbox::z#5 )
  [62] if(*((byte*) textbox::text#12 + (byte) textbox::i#1)!=(byte) 0) goto textbox::@1
  to:textbox::@return
textbox::@6: scope:[textbox]  from textbox::@15
  [63] (byte) textbox::y#1 ← ++ (byte) textbox::y#12
  [64] if((byte) textbox::y#1!=(byte) textbox::y2#4) goto textbox::@7
  to:textbox::@return
textbox::@7: scope:[textbox]  from textbox::@6
  [65] (byte) textbox::$35 ← (byte) textbox::y#1 << (byte) 2
  [66] (byte) textbox::$36 ← (byte) textbox::$35 + (byte) textbox::y#1
  [67] (word) textbox::z#1 ← (byte) textbox::$36 << (byte) 3
  [68] (byte~) textbox::x#15 ← (byte) textbox::x1#4
  to:textbox::@2
textbox::@4: scope:[textbox]  from textbox::@14
  [69] (byte) textbox::ls#1 ← ++ (byte) textbox::ls#2
  [70] (byte) textbox::c#1 ← ++ (byte) textbox::c#2
  to:textbox::@3
draw_window: scope:[draw_window]  from textbox
  [71] (byte) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2
  [72] (byte) draw_window::$37 ← (byte) draw_window::$36 + (byte) draw_window::y1#0
  [73] (word) draw_window::z#0 ← (byte) draw_window::$37 << (byte) 3
  [74] (byte) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2
  [75] (byte) draw_window::$40 ← (byte) draw_window::$39 + (byte) draw_window::y2#0
  [76] (word) draw_window::q#0 ← (byte) draw_window::$40 << (byte) 3
  [77] (byte) draw_window::x#0 ← (byte) draw_window::x1#0 + (byte) 1
  to:draw_window::@1
draw_window::@1: scope:[draw_window]  from draw_window draw_window::@1
  [78] (byte) draw_window::x#2 ← phi( draw_window/(byte) draw_window::x#0 draw_window::@1/(byte) draw_window::x#1 )
  [79] (word~) draw_window::$13 ← (word) draw_window::z#0 + (byte) draw_window::x#2
  [80] (byte*~) draw_window::$27 ← (const byte*) screen#0 + (word~) draw_window::$13
  [81] *((byte*~) draw_window::$27) ← (byte) $43
  [82] (word~) draw_window::$14 ← (word) draw_window::q#0 + (byte) draw_window::x#2
  [83] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$14
  [84] *((byte*~) draw_window::$28) ← (byte) $43
  [85] (byte) draw_window::x#1 ← ++ (byte) draw_window::x#2
  [86] if((byte) draw_window::x#1<(byte) draw_window::x2#0) goto draw_window::@1
  to:draw_window::@2
draw_window::@2: scope:[draw_window]  from draw_window::@1
  [87] (word~) draw_window::$2 ← (word) draw_window::z#0 + (byte) draw_window::x1#0
  [88] (byte*~) draw_window::$29 ← (const byte*) screen#0 + (word~) draw_window::$2
  [89] *((byte*~) draw_window::$29) ← (byte) $55
  [90] (word~) draw_window::$3 ← (word) draw_window::z#0 + (byte) draw_window::x2#0
  [91] (byte*~) draw_window::$30 ← (const byte*) screen#0 + (word~) draw_window::$3
  [92] *((byte*~) draw_window::$30) ← (byte) $49
  [93] (byte) draw_window::y#0 ← (byte) draw_window::y1#0 + (byte) 1
  to:draw_window::@3
draw_window::@3: scope:[draw_window]  from draw_window::@2 draw_window::@3
  [94] (byte) draw_window::y#2 ← phi( draw_window::@2/(byte) draw_window::y#0 draw_window::@3/(byte) draw_window::y#1 )
  [95] (byte) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2
  [96] (byte) draw_window::$43 ← (byte) draw_window::$42 + (byte) draw_window::y#2
  [97] (word) draw_window::z#1 ← (byte) draw_window::$43 << (byte) 3
  [98] (word~) draw_window::$18 ← (word) draw_window::z#1 + (byte) draw_window::x1#0
  [99] (byte*~) draw_window::$31 ← (const byte*) screen#0 + (word~) draw_window::$18
  [100] *((byte*~) draw_window::$31) ← (byte) $42
  [101] (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x2#0
  [102] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$19
  [103] *((byte*~) draw_window::$32) ← (byte) $42
  [104] (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2
  [105] if((byte) draw_window::y#1<(byte) draw_window::y2#0) goto draw_window::@3
  to:draw_window::@4
draw_window::@4: scope:[draw_window]  from draw_window::@3
  [106] (word~) draw_window::$4 ← (word) draw_window::q#0 + (byte) draw_window::x1#0
  [107] (byte*~) draw_window::$33 ← (const byte*) screen#0 + (word~) draw_window::$4
  [108] *((byte*~) draw_window::$33) ← (byte) $4a
  [109] (word~) draw_window::$5 ← (word) draw_window::q#0 + (byte) draw_window::x2#0
  [110] (byte*~) draw_window::$34 ← (const byte*) screen#0 + (word~) draw_window::$5
  [111] *((byte*~) draw_window::$34) ← (byte) $4b
  [112] (byte~) draw_window::$6 ← (byte) draw_window::x2#0 - (byte) draw_window::x1#0
  [113] (byte~) draw_window::$8 ← (byte) draw_window::y2#0 - (byte) draw_window::y1#0
  [114] if((byte~) draw_window::$6<(byte) 1+(byte) 1) goto draw_window::@return
  to:draw_window::@9
draw_window::@9: scope:[draw_window]  from draw_window::@4
  [115] if((byte~) draw_window::$8>=(byte) 1+(byte) 1) goto draw_window::@5
  to:draw_window::@return
draw_window::@return: scope:[draw_window]  from draw_window::@4 draw_window::@8 draw_window::@9
  [116] return 
  to:@return
draw_window::@5: scope:[draw_window]  from draw_window::@9
  [117] (byte) draw_window::y3#0 ← (byte) draw_window::y1#0 + (byte) 1
  to:draw_window::@6
draw_window::@6: scope:[draw_window]  from draw_window::@5 draw_window::@8
  [118] (byte) draw_window::y3#2 ← phi( draw_window::@5/(byte) draw_window::y3#0 draw_window::@8/(byte) draw_window::y3#1 )
  [119] (byte) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2
  [120] (byte) draw_window::$46 ← (byte) draw_window::$45 + (byte) draw_window::y3#2
  [121] (word) draw_window::z#2 ← (byte) draw_window::$46 << (byte) 3
  [122] (byte) draw_window::x3#0 ← (byte) draw_window::x1#0 + (byte) 1
  to:draw_window::@7
draw_window::@7: scope:[draw_window]  from draw_window::@6 draw_window::@7
  [123] (byte) draw_window::x3#2 ← phi( draw_window::@6/(byte) draw_window::x3#0 draw_window::@7/(byte) draw_window::x3#1 )
  [124] (word~) draw_window::$24 ← (word) draw_window::z#2 + (byte) draw_window::x3#2
  [125] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$24
  [126] *((byte*~) draw_window::$35) ← (byte) $20
  [127] (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2
  [128] if((byte) draw_window::x3#1<(byte) draw_window::x2#0) goto draw_window::@7
  to:draw_window::@8
draw_window::@8: scope:[draw_window]  from draw_window::@7
  [129] (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#2
  [130] if((byte) draw_window::y3#1<(byte) draw_window::y2#0) goto draw_window::@6
  to:draw_window::@return


VARIABLE REGISTER WEIGHTS
(void()) draw_window((byte) draw_window::x1 , (byte) draw_window::y1 , (byte) draw_window::x2 , (byte) draw_window::y2)
(word~) draw_window::$13 202.0
(word~) draw_window::$14 202.0
(word~) draw_window::$18 202.0
(word~) draw_window::$19 202.0
(word~) draw_window::$2 4.0
(word~) draw_window::$24 2002.0
(byte*~) draw_window::$27 202.0
(byte*~) draw_window::$28 202.0
(byte*~) draw_window::$29 4.0
(word~) draw_window::$3 4.0
(byte*~) draw_window::$30 4.0
(byte*~) draw_window::$31 202.0
(byte*~) draw_window::$32 202.0
(byte*~) draw_window::$33 4.0
(byte*~) draw_window::$34 4.0
(byte*~) draw_window::$35 2002.0
(byte) draw_window::$36 4.0
(byte) draw_window::$37 4.0
(byte) draw_window::$39 4.0
(word~) draw_window::$4 4.0
(byte) draw_window::$40 4.0
(byte) draw_window::$42 202.0
(byte) draw_window::$43 202.0
(byte) draw_window::$45 202.0
(byte) draw_window::$46 202.0
(word~) draw_window::$5 4.0
(byte~) draw_window::$6 2.0
(byte~) draw_window::$8 2.0
(word) draw_window::q
(word) draw_window::q#0 3.242424242424242
(byte) draw_window::x
(byte) draw_window::x#0 4.0
(byte) draw_window::x#1 151.5
(byte) draw_window::x#2 58.00000000000001
(byte) draw_window::x1
(byte) draw_window::x1#0 3.365079365079365
(byte) draw_window::x2
(byte) draw_window::x2#0 19.852459016393443
(byte) draw_window::x3
(byte) draw_window::x3#0 202.0
(byte) draw_window::x3#1 1501.5
(byte) draw_window::x3#2 776.0
(byte) draw_window::y
(byte) draw_window::y#0 4.0
(byte) draw_window::y#1 151.5
(byte) draw_window::y#2 40.6
(byte) draw_window::y1
(byte) draw_window::y1#0 0.24999999999999997
(byte) draw_window::y2
(byte) draw_window::y2#0 3.5
(byte) draw_window::y3
(byte) draw_window::y3#0 4.0
(byte) draw_window::y3#1 151.5
(byte) draw_window::y3#2 36.90909090909091
(word) draw_window::z
(word) draw_window::z#0 6.2941176470588225
(word) draw_window::z#1 75.75
(word) draw_window::z#2 137.75
(void()) main()
(byte~) main::$3 22.0
(word) main::wait
(word) main::wait#1 151.5
(word) main::wait#2 202.0
(byte) main::x
(byte) main::x#1 16.5
(byte) main::x#2 7.699999999999999
(byte*) screen
(byte[]) text
(byte[]) text2
(void()) textbox((byte) textbox::x1 , (byte) textbox::y1 , (byte) textbox::x2 , (byte) textbox::y2 , (byte*) textbox::text)
(byte~) textbox::$15 101.0
(byte~) textbox::$17 101.0
(byte*~) textbox::$31 202.0
(byte) textbox::$32 4.0
(byte) textbox::$33 4.0
(byte) textbox::$35 202.0
(byte) textbox::$36 202.0
(byte) textbox::$38 202.0
(byte) textbox::$39 202.0
(word~) textbox::$8 202.0
(byte) textbox::c
(byte) textbox::c#1 2002.0
(byte) textbox::c#2 314.85714285714283
(byte) textbox::i
(byte) textbox::i#1 27.545454545454547
(byte) textbox::i#2 22.954545454545453
(byte) textbox::ls
(byte) textbox::ls#0 202.0
(byte) textbox::ls#1 1001.0
(byte) textbox::ls#2 1368.3333333333335
(byte*) textbox::text
(byte*) textbox::text#12 50.108695652173914
(byte) textbox::x
(byte) textbox::x#0 1.0
(byte) textbox::x#1 151.5
(byte) textbox::x#10 36.214285714285715
(byte) textbox::x#12 33.666666666666664
(byte~) textbox::x#15 202.0
(byte) textbox::x#5 202.0
(byte) textbox::x#7 151.5
(byte) textbox::x1
(byte) textbox::x1#0 11.0
(byte) textbox::x1#4 6.913043478260869
(byte) textbox::x2
(byte) textbox::x2#0 5.5
(byte) textbox::x2#4 6.913043478260869
(byte) textbox::y
(byte) textbox::y#0 1.4285714285714284
(byte) textbox::y#1 84.16666666666666
(byte) textbox::y#11 151.5
(byte) textbox::y#12 27.06666666666667
(byte) textbox::y#2 101.0
(byte) textbox::y#5 101.0
(byte) textbox::y1
(byte) textbox::y1#0 22.0
(byte) textbox::y1#4 2.5
(byte) textbox::y2
(byte) textbox::y2#0 7.333333333333333
(byte) textbox::y2#4 4.717391304347826
(word) textbox::z
(word) textbox::z#0 1.3333333333333333
(word) textbox::z#1 101.0
(word) textbox::z#2 202.0
(word) textbox::z#3 29.000000000000004
(word) textbox::z#4 151.5
(word) textbox::z#5 101.0

Initial phi equivalence classes
[ main::x#2 main::x#1 ]
[ main::wait#2 main::wait#1 ]
[ textbox::x1#4 textbox::x1#0 ]
[ textbox::y1#4 textbox::y1#0 ]
[ textbox::x2#4 textbox::x2#0 ]
[ textbox::y2#4 textbox::y2#0 ]
[ textbox::text#12 ]
[ textbox::i#2 textbox::i#1 ]
[ textbox::ls#2 textbox::ls#0 textbox::ls#1 ]
[ textbox::c#2 textbox::c#1 ]
[ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ]
[ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ]
[ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ]
[ draw_window::x#2 draw_window::x#0 draw_window::x#1 ]
[ draw_window::y#2 draw_window::y#0 draw_window::y#1 ]
[ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
[ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ]
Added variable main::$3 to zero page equivalence class [ main::$3 ]
Added variable draw_window::x1#0 to zero page equivalence class [ draw_window::x1#0 ]
Added variable draw_window::y1#0 to zero page equivalence class [ draw_window::y1#0 ]
Added variable draw_window::x2#0 to zero page equivalence class [ draw_window::x2#0 ]
Added variable draw_window::y2#0 to zero page equivalence class [ draw_window::y2#0 ]
Added variable textbox::$32 to zero page equivalence class [ textbox::$32 ]
Added variable textbox::$33 to zero page equivalence class [ textbox::$33 ]
Added variable textbox::$8 to zero page equivalence class [ textbox::$8 ]
Added variable textbox::$31 to zero page equivalence class [ textbox::$31 ]
Added variable textbox::$15 to zero page equivalence class [ textbox::$15 ]
Added variable textbox::$17 to zero page equivalence class [ textbox::$17 ]
Added variable textbox::$38 to zero page equivalence class [ textbox::$38 ]
Added variable textbox::$39 to zero page equivalence class [ textbox::$39 ]
Added variable textbox::$35 to zero page equivalence class [ textbox::$35 ]
Added variable textbox::$36 to zero page equivalence class [ textbox::$36 ]
Added variable draw_window::$36 to zero page equivalence class [ draw_window::$36 ]
Added variable draw_window::$37 to zero page equivalence class [ draw_window::$37 ]
Added variable draw_window::z#0 to zero page equivalence class [ draw_window::z#0 ]
Added variable draw_window::$39 to zero page equivalence class [ draw_window::$39 ]
Added variable draw_window::$40 to zero page equivalence class [ draw_window::$40 ]
Added variable draw_window::q#0 to zero page equivalence class [ draw_window::q#0 ]
Added variable draw_window::$13 to zero page equivalence class [ draw_window::$13 ]
Added variable draw_window::$27 to zero page equivalence class [ draw_window::$27 ]
Added variable draw_window::$14 to zero page equivalence class [ draw_window::$14 ]
Added variable draw_window::$28 to zero page equivalence class [ draw_window::$28 ]
Added variable draw_window::$2 to zero page equivalence class [ draw_window::$2 ]
Added variable draw_window::$29 to zero page equivalence class [ draw_window::$29 ]
Added variable draw_window::$3 to zero page equivalence class [ draw_window::$3 ]
Added variable draw_window::$30 to zero page equivalence class [ draw_window::$30 ]
Added variable draw_window::$42 to zero page equivalence class [ draw_window::$42 ]
Added variable draw_window::$43 to zero page equivalence class [ draw_window::$43 ]
Added variable draw_window::z#1 to zero page equivalence class [ draw_window::z#1 ]
Added variable draw_window::$18 to zero page equivalence class [ draw_window::$18 ]
Added variable draw_window::$31 to zero page equivalence class [ draw_window::$31 ]
Added variable draw_window::$19 to zero page equivalence class [ draw_window::$19 ]
Added variable draw_window::$32 to zero page equivalence class [ draw_window::$32 ]
Added variable draw_window::$4 to zero page equivalence class [ draw_window::$4 ]
Added variable draw_window::$33 to zero page equivalence class [ draw_window::$33 ]
Added variable draw_window::$5 to zero page equivalence class [ draw_window::$5 ]
Added variable draw_window::$34 to zero page equivalence class [ draw_window::$34 ]
Added variable draw_window::$6 to zero page equivalence class [ draw_window::$6 ]
Added variable draw_window::$8 to zero page equivalence class [ draw_window::$8 ]
Added variable draw_window::$45 to zero page equivalence class [ draw_window::$45 ]
Added variable draw_window::$46 to zero page equivalence class [ draw_window::$46 ]
Added variable draw_window::z#2 to zero page equivalence class [ draw_window::z#2 ]
Added variable draw_window::$24 to zero page equivalence class [ draw_window::$24 ]
Added variable draw_window::$35 to zero page equivalence class [ draw_window::$35 ]
Complete equivalence classes
[ main::x#2 main::x#1 ]
[ main::wait#2 main::wait#1 ]
[ textbox::x1#4 textbox::x1#0 ]
[ textbox::y1#4 textbox::y1#0 ]
[ textbox::x2#4 textbox::x2#0 ]
[ textbox::y2#4 textbox::y2#0 ]
[ textbox::text#12 ]
[ textbox::i#2 textbox::i#1 ]
[ textbox::ls#2 textbox::ls#0 textbox::ls#1 ]
[ textbox::c#2 textbox::c#1 ]
[ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ]
[ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ]
[ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ]
[ draw_window::x#2 draw_window::x#0 draw_window::x#1 ]
[ draw_window::y#2 draw_window::y#0 draw_window::y#1 ]
[ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
[ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ]
[ main::$3 ]
[ draw_window::x1#0 ]
[ draw_window::y1#0 ]
[ draw_window::x2#0 ]
[ draw_window::y2#0 ]
[ textbox::$32 ]
[ textbox::$33 ]
[ textbox::$8 ]
[ textbox::$31 ]
[ textbox::$15 ]
[ textbox::$17 ]
[ textbox::$38 ]
[ textbox::$39 ]
[ textbox::$35 ]
[ textbox::$36 ]
[ draw_window::$36 ]
[ draw_window::$37 ]
[ draw_window::z#0 ]
[ draw_window::$39 ]
[ draw_window::$40 ]
[ draw_window::q#0 ]
[ draw_window::$13 ]
[ draw_window::$27 ]
[ draw_window::$14 ]
[ draw_window::$28 ]
[ draw_window::$2 ]
[ draw_window::$29 ]
[ draw_window::$3 ]
[ draw_window::$30 ]
[ draw_window::$42 ]
[ draw_window::$43 ]
[ draw_window::z#1 ]
[ draw_window::$18 ]
[ draw_window::$31 ]
[ draw_window::$19 ]
[ draw_window::$32 ]
[ draw_window::$4 ]
[ draw_window::$33 ]
[ draw_window::$5 ]
[ draw_window::$34 ]
[ draw_window::$6 ]
[ draw_window::$8 ]
[ draw_window::$45 ]
[ draw_window::$46 ]
[ draw_window::z#2 ]
[ draw_window::$24 ]
[ draw_window::$35 ]
Allocated zp ZP_BYTE:2 [ main::x#2 main::x#1 ]
Allocated zp ZP_WORD:3 [ main::wait#2 main::wait#1 ]
Allocated zp ZP_BYTE:5 [ textbox::x1#4 textbox::x1#0 ]
Allocated zp ZP_BYTE:6 [ textbox::y1#4 textbox::y1#0 ]
Allocated zp ZP_BYTE:7 [ textbox::x2#4 textbox::x2#0 ]
Allocated zp ZP_BYTE:8 [ textbox::y2#4 textbox::y2#0 ]
Allocated zp ZP_WORD:9 [ textbox::text#12 ]
Allocated zp ZP_BYTE:11 [ textbox::i#2 textbox::i#1 ]
Allocated zp ZP_BYTE:12 [ textbox::ls#2 textbox::ls#0 textbox::ls#1 ]
Allocated zp ZP_BYTE:13 [ textbox::c#2 textbox::c#1 ]
Allocated zp ZP_BYTE:14 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ]
Allocated zp ZP_BYTE:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ]
Allocated zp ZP_WORD:16 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ]
Allocated zp ZP_BYTE:18 [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ]
Allocated zp ZP_BYTE:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ]
Allocated zp ZP_BYTE:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
Allocated zp ZP_BYTE:21 [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ]
Allocated zp ZP_BYTE:22 [ main::$3 ]
Allocated zp ZP_BYTE:23 [ draw_window::x1#0 ]
Allocated zp ZP_BYTE:24 [ draw_window::y1#0 ]
Allocated zp ZP_BYTE:25 [ draw_window::x2#0 ]
Allocated zp ZP_BYTE:26 [ draw_window::y2#0 ]
Allocated zp ZP_BYTE:27 [ textbox::$32 ]
Allocated zp ZP_BYTE:28 [ textbox::$33 ]
Allocated zp ZP_WORD:29 [ textbox::$8 ]
Allocated zp ZP_WORD:31 [ textbox::$31 ]
Allocated zp ZP_BYTE:33 [ textbox::$15 ]
Allocated zp ZP_BYTE:34 [ textbox::$17 ]
Allocated zp ZP_BYTE:35 [ textbox::$38 ]
Allocated zp ZP_BYTE:36 [ textbox::$39 ]
Allocated zp ZP_BYTE:37 [ textbox::$35 ]
Allocated zp ZP_BYTE:38 [ textbox::$36 ]
Allocated zp ZP_BYTE:39 [ draw_window::$36 ]
Allocated zp ZP_BYTE:40 [ draw_window::$37 ]
Allocated zp ZP_WORD:41 [ draw_window::z#0 ]
Allocated zp ZP_BYTE:43 [ draw_window::$39 ]
Allocated zp ZP_BYTE:44 [ draw_window::$40 ]
Allocated zp ZP_WORD:45 [ draw_window::q#0 ]
Allocated zp ZP_WORD:47 [ draw_window::$13 ]
Allocated zp ZP_WORD:49 [ draw_window::$27 ]
Allocated zp ZP_WORD:51 [ draw_window::$14 ]
Allocated zp ZP_WORD:53 [ draw_window::$28 ]
Allocated zp ZP_WORD:55 [ draw_window::$2 ]
Allocated zp ZP_WORD:57 [ draw_window::$29 ]
Allocated zp ZP_WORD:59 [ draw_window::$3 ]
Allocated zp ZP_WORD:61 [ draw_window::$30 ]
Allocated zp ZP_BYTE:63 [ draw_window::$42 ]
Allocated zp ZP_BYTE:64 [ draw_window::$43 ]
Allocated zp ZP_WORD:65 [ draw_window::z#1 ]
Allocated zp ZP_WORD:67 [ draw_window::$18 ]
Allocated zp ZP_WORD:69 [ draw_window::$31 ]
Allocated zp ZP_WORD:71 [ draw_window::$19 ]
Allocated zp ZP_WORD:73 [ draw_window::$32 ]
Allocated zp ZP_WORD:75 [ draw_window::$4 ]
Allocated zp ZP_WORD:77 [ draw_window::$33 ]
Allocated zp ZP_WORD:79 [ draw_window::$5 ]
Allocated zp ZP_WORD:81 [ draw_window::$34 ]
Allocated zp ZP_BYTE:83 [ draw_window::$6 ]
Allocated zp ZP_BYTE:84 [ draw_window::$8 ]
Allocated zp ZP_BYTE:85 [ draw_window::$45 ]
Allocated zp ZP_BYTE:86 [ draw_window::$46 ]
Allocated zp ZP_WORD:87 [ draw_window::z#2 ]
Allocated zp ZP_WORD:89 [ draw_window::$24 ]
Allocated zp ZP_WORD:91 [ draw_window::$35 ]

INITIAL ASM
  // File Comments
/* Textbox routine with word wrap for KickC by Scan/Desire */
  // Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(bbegin)
.pc = $80d "Program"
  // Global Constants & labels
  .label screen = $400
  // @begin
bbegin:
  // [1] phi from @begin to @1 [phi:@begin->@1]
b1_from_bbegin:
  jmp b1
  // @1
b1:
  // [2] call main 
  // [4] phi from @1 to main [phi:@1->main]
main_from_b1:
  jsr main
  // [3] phi from @1 to @end [phi:@1->@end]
bend_from_b1:
  jmp bend
  // @end
bend:
  // main
main: {
    .label _3 = $16
    .label wait = 3
    .label x = 2
    // [5] phi from main to main::@1 [phi:main->main::@1]
  b1_from_main:
    // [5] phi (byte) main::x#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta x
    jmp b1
    // [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
  b1_from_b3:
    // [5] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@3->main::@1#0] -- register_copy 
    jmp b1
    // main::@1
  b1:
    // [6] (byte~) main::$3 ← (byte) main::x#2 + (byte) main::x#2 -- vbuz1=vbuz2_plus_vbuz2 
    lda x
    asl
    sta _3
    // [7] (byte) textbox::x2#0 ← (byte~) main::$3 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy _3
    iny
    sty textbox.x2
    // [8] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a -- vbuz1=vbuz2_plus_vbuc1 
    lax x
    axs #-[$a]
    stx textbox.y2
    // [9] (byte) textbox::x1#0 ← (byte) main::x#2 -- vbuz1=vbuz2 
    lda x
    sta textbox.x1
    // [10] (byte) textbox::y1#0 ← (byte) main::x#2 -- vbuz1=vbuz2 
    lda x
    sta textbox.y1
    // [11] call textbox 
    // [24] phi from main::@1 to textbox [phi:main::@1->textbox]
  textbox_from_b1:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text2#0 [phi:main::@1->textbox#0] -- pbuz1=pbuc1 
    lda #<text2
    sta textbox.text
    lda #>text2
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) textbox::y2#0 [phi:main::@1->textbox#1] -- register_copy 
    // [24] phi (byte) textbox::x2#4 = (byte) textbox::x2#0 [phi:main::@1->textbox#2] -- register_copy 
    // [24] phi (byte) textbox::y1#4 = (byte) textbox::y1#0 [phi:main::@1->textbox#3] -- register_copy 
    // [24] phi (byte) textbox::x1#4 = (byte) textbox::x1#0 [phi:main::@1->textbox#4] -- register_copy 
    jsr textbox
    // [12] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
  b2_from_b1:
    // [12] phi (word) main::wait#2 = (byte) 0 [phi:main::@1->main::@2#0] -- vwuz1=vbuc1 
    lda #<0
    sta wait
    lda #>0
    sta wait+1
    jmp b2
    // [12] phi from main::@2 to main::@2 [phi:main::@2->main::@2]
  b2_from_b2:
    // [12] phi (word) main::wait#2 = (word) main::wait#1 [phi:main::@2->main::@2#0] -- register_copy 
    jmp b2
    // main::@2
  b2:
    // [13] (word) main::wait#1 ← ++ (word) main::wait#2 -- vwuz1=_inc_vwuz1 
    inc wait
    bne !+
    inc wait+1
  !:
    // [14] if((word) main::wait#1<(word) $88b8) goto main::@2 -- vwuz1_lt_vwuc1_then_la1 
    lda wait+1
    cmp #>$88b8
    bcc b2_from_b2
    bne !+
    lda wait
    cmp #<$88b8
    bcc b2_from_b2
  !:
    jmp b3
    // main::@3
  b3:
    // [15] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2 -- vbuz1=vbuz1_plus_2 
    lda x
    clc
    adc #2
    sta x
    // [16] if((byte) main::x#1<(byte) $f) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 
    lda x
    cmp #$f
    bcc b1_from_b3
    // [17] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
  b4_from_b3:
    jmp b4
    // main::@4
  b4:
    // [18] call textbox 
    // [24] phi from main::@4 to textbox [phi:main::@4->textbox]
  textbox_from_b4:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@4->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta textbox.text
    lda #>text
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) $18 [phi:main::@4->textbox#1] -- vbuz1=vbuc1 
    lda #$18
    sta textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $14 [phi:main::@4->textbox#2] -- vbuz1=vbuc1 
    lda #$14
    sta textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) $c [phi:main::@4->textbox#3] -- vbuz1=vbuc1 
    lda #$c
    sta textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) 0 [phi:main::@4->textbox#4] -- vbuz1=vbuc1 
    lda #0
    sta textbox.x1
    jsr textbox
    // [19] phi from main::@4 to main::@6 [phi:main::@4->main::@6]
  b6_from_b4:
    jmp b6
    // main::@6
  b6:
    // [20] call textbox 
    // [24] phi from main::@6 to textbox [phi:main::@6->textbox]
  textbox_from_b6:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@6->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta textbox.text
    lda #>text
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) 9 [phi:main::@6->textbox#1] -- vbuz1=vbuc1 
    lda #9
    sta textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $25 [phi:main::@6->textbox#2] -- vbuz1=vbuc1 
    lda #$25
    sta textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) 3 [phi:main::@6->textbox#3] -- vbuz1=vbuc1 
    lda #3
    sta textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) 3 [phi:main::@6->textbox#4] -- vbuz1=vbuc1 
    lda #3
    sta textbox.x1
    jsr textbox
    // [21] phi from main::@6 to main::@7 [phi:main::@6->main::@7]
  b7_from_b6:
    jmp b7
    // main::@7
  b7:
    // [22] call textbox 
    // [24] phi from main::@7 to textbox [phi:main::@7->textbox]
  textbox_from_b7:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@7->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta textbox.text
    lda #>text
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) $18 [phi:main::@7->textbox#1] -- vbuz1=vbuc1 
    lda #$18
    sta textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $27 [phi:main::@7->textbox#2] -- vbuz1=vbuc1 
    lda #$27
    sta textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) 8 [phi:main::@7->textbox#3] -- vbuz1=vbuc1 
    lda #8
    sta textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) $1e [phi:main::@7->textbox#4] -- vbuz1=vbuc1 
    lda #$1e
    sta textbox.x1
    jsr textbox
    // [23] phi from main::@5 main::@7 to main::@5 [phi:main::@5/main::@7->main::@5]
  b5_from_b5:
  b5_from_b7:
    jmp b5
    // main::@5
  b5:
    jmp b5_from_b5
}
  // textbox
// textbox(byte zeropage(5) x1, byte zeropage(6) y1, byte zeropage(7) x2, byte zeropage(8) y2, byte* zeropage(9) text)
textbox: {
    .label _8 = $1d
    .label _15 = $21
    .label _17 = $22
    .label x1 = 5
    .label y1 = 6
    .label x2 = 7
    .label y2 = 8
    .label y = $f
    .label x = $e
    .label z = $10
    .label i = $b
    .label ls = $c
    .label c = $d
    .label text = 9
    .label _31 = $1f
    .label _32 = $1b
    .label _33 = $1c
    .label _35 = $25
    .label _36 = $26
    .label _38 = $23
    .label _39 = $24
    // [25] (byte) draw_window::x1#0 ← (byte) textbox::x1#4 -- vbuz1=vbuz2 
    lda x1
    sta draw_window.x1
    // [26] (byte) draw_window::y1#0 ← (byte) textbox::y1#4 -- vbuz1=vbuz2 
    lda y1
    sta draw_window.y1
    // [27] (byte) draw_window::x2#0 ← (byte) textbox::x2#4 -- vbuz1=vbuz2 
    lda x2
    sta draw_window.x2
    // [28] (byte) draw_window::y2#0 ← (byte) textbox::y2#4 -- vbuz1=vbuz2 
    lda y2
    sta draw_window.y2
    // [29] call draw_window 
    jsr draw_window
    jmp b12
    // textbox::@12
  b12:
    // [30] (byte) textbox::y#0 ← (byte) textbox::y1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy y1
    iny
    sty y
    // [31] (byte) textbox::x#0 ← (byte) textbox::x1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy x1
    iny
    sty x
    // [32] (byte) textbox::$32 ← (byte) textbox::y#0 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda y
    asl
    asl
    sta _32
    // [33] (byte) textbox::$33 ← (byte) textbox::$32 + (byte) textbox::y#0 -- vbuz1=vbuz2_plus_vbuz3 
    lda _32
    clc
    adc y
    sta _33
    // [34] (word) textbox::z#0 ← (byte) textbox::$33 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda _33
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // [35] if((byte) textbox::x#0==(byte) textbox::x2#4) goto textbox::@return -- vbuz1_eq_vbuz2_then_la1 
    lda x
    cmp x2
    beq breturn
    jmp b13
    // textbox::@13
  b13:
    // [36] if((byte) textbox::y#0==(byte) textbox::y2#4) goto textbox::@return -- vbuz1_eq_vbuz2_then_la1 
    lda y
    cmp y2
    beq breturn
    // [37] phi from textbox::@13 to textbox::@1 [phi:textbox::@13->textbox::@1]
  b1_from_b13:
    // [37] phi (byte) textbox::y#12 = (byte) textbox::y#0 [phi:textbox::@13->textbox::@1#0] -- register_copy 
    // [37] phi (byte) textbox::i#2 = (byte) 0 [phi:textbox::@13->textbox::@1#1] -- vbuz1=vbuc1 
    lda #0
    sta i
    // [37] phi (byte) textbox::x#10 = (byte) textbox::x#0 [phi:textbox::@13->textbox::@1#2] -- register_copy 
    // [37] phi (word) textbox::z#3 = (word) textbox::z#0 [phi:textbox::@13->textbox::@1#3] -- register_copy 
    jmp b1
    // [37] phi from textbox::@8 to textbox::@1 [phi:textbox::@8->textbox::@1]
  b1_from_b8:
    // [37] phi (byte) textbox::y#12 = (byte) textbox::y#11 [phi:textbox::@8->textbox::@1#0] -- register_copy 
    // [37] phi (byte) textbox::i#2 = (byte) textbox::i#1 [phi:textbox::@8->textbox::@1#1] -- register_copy 
    // [37] phi (byte) textbox::x#10 = (byte) textbox::x#7 [phi:textbox::@8->textbox::@1#2] -- register_copy 
    // [37] phi (word) textbox::z#3 = (word) textbox::z#4 [phi:textbox::@8->textbox::@1#3] -- register_copy 
    jmp b1
    // textbox::@1
  b1:
    // [38] (word~) textbox::$8 ← (word) textbox::z#3 + (byte) textbox::x#10 -- vwuz1=vwuz2_plus_vbuz3 
    lda x
    clc
    adc z
    sta _8
    lda #0
    adc z+1
    sta _8+1
    // [39] (byte*~) textbox::$31 ← (const byte*) screen#0 + (word~) textbox::$8 -- pbuz1=pbuc1_plus_vwuz2 
    lda _8
    clc
    adc #<screen
    sta _31
    lda _8+1
    adc #>screen
    sta _31+1
    // [40] *((byte*~) textbox::$31) ← *((byte*) textbox::text#12 + (byte) textbox::i#2) -- _deref_pbuz1=pbuz2_derefidx_vbuz3 
    ldy i
    lda (text),y
    ldy #0
    sta (_31),y
    // [41] if(*((byte*) textbox::text#12 + (byte) textbox::i#2)!=(byte) $20) goto textbox::@2 -- pbuz1_derefidx_vbuz2_neq_vbuc1_then_la1 
    ldy i
    lda (text),y
    cmp #$20
    bne b2_from_b1
    jmp b10
    // textbox::@10
  b10:
    // [42] (byte) textbox::ls#0 ← (byte) textbox::i#2 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy i
    iny
    sty ls
    // [43] phi from textbox::@10 to textbox::@3 [phi:textbox::@10->textbox::@3]
  b3_from_b10:
    // [43] phi (byte) textbox::c#2 = (byte) 0 [phi:textbox::@10->textbox::@3#0] -- vbuz1=vbuc1 
    lda #0
    sta c
    // [43] phi (byte) textbox::ls#2 = (byte) textbox::ls#0 [phi:textbox::@10->textbox::@3#1] -- register_copy 
    jmp b3
    // textbox::@3
  b3:
    // [44] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@5 -- pbuz1_derefidx_vbuz2_eq_vbuc1_then_la1 
    ldy ls
    lda (text),y
    cmp #$20
    beq b5
    jmp b14
    // textbox::@14
  b14:
    // [45] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) 0) goto textbox::@4 -- pbuz1_derefidx_vbuz2_neq_0_then_la1 
    ldy ls
    lda (text),y
    cmp #0
    bne b4
    jmp b5
    // textbox::@5
  b5:
    // [46] (byte~) textbox::$15 ← (byte) textbox::c#2 + (byte) textbox::x#10 -- vbuz1=vbuz2_plus_vbuz3 
    lda c
    clc
    adc x
    sta _15
    // [47] (byte~) textbox::$17 ← (byte) textbox::x2#4 - (byte) textbox::x1#4 -- vbuz1=vbuz2_minus_vbuz3 
    lda x2
    sec
    sbc x1
    sta _17
    // [48] if((byte~) textbox::$15<(byte) textbox::x2#4) goto textbox::@2 -- vbuz1_lt_vbuz2_then_la1 
    lda _15
    cmp x2
    bcc b2_from_b5
    jmp b15
    // textbox::@15
  b15:
    // [49] if((byte) textbox::c#2<(byte~) textbox::$17) goto textbox::@6 -- vbuz1_lt_vbuz2_then_la1 
    lda c
    cmp _17
    bcc b6
    // [50] phi from textbox::@15 to textbox::@2 [phi:textbox::@15->textbox::@2]
  b2_from_b15:
    jmp b2
    // [50] phi from textbox::@1 textbox::@5 textbox::@7 to textbox::@2 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2]
  b2_from_b1:
  b2_from_b5:
  b2_from_b7:
    // [50] phi (word) textbox::z#5 = (word) textbox::z#3 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#0] -- register_copy 
    // [50] phi (byte) textbox::y#5 = (byte) textbox::y#12 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#1] -- register_copy 
    // [50] phi (byte) textbox::x#5 = (byte) textbox::x#10 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#2] -- register_copy 
    jmp b2
    // textbox::@2
  b2:
    // [51] (byte) textbox::i#1 ← ++ (byte) textbox::i#2 -- vbuz1=_inc_vbuz1 
    inc i
    // [52] (byte) textbox::x#1 ← ++ (byte) textbox::x#5 -- vbuz1=_inc_vbuz1 
    inc x
    // [53] if((byte) textbox::x#1!=(byte) textbox::x2#4) goto textbox::@8 -- vbuz1_neq_vbuz2_then_la1 
    lda x
    cmp x2
    bne b8_from_b2
    jmp b11
    // textbox::@11
  b11:
    // [54] (byte) textbox::x#12 ← (byte) textbox::x1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy x1
    iny
    sty x
    // [55] (byte) textbox::y#2 ← ++ (byte) textbox::y#5 -- vbuz1=_inc_vbuz1 
    inc y
    // [56] if((byte) textbox::y#2!=(byte) textbox::y2#4) goto textbox::@9 -- vbuz1_neq_vbuz2_then_la1 
    lda y
    cmp y2
    bne b9
    jmp breturn
    // textbox::@return
  breturn:
    // [57] return 
    rts
    // textbox::@9
  b9:
    // [58] (byte) textbox::$38 ← (byte) textbox::y#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda y
    asl
    asl
    sta _38
    // [59] (byte) textbox::$39 ← (byte) textbox::$38 + (byte) textbox::y#2 -- vbuz1=vbuz2_plus_vbuz3 
    lda _38
    clc
    adc y
    sta _39
    // [60] (word) textbox::z#2 ← (byte) textbox::$39 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda _39
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // [61] phi from textbox::@2 textbox::@9 to textbox::@8 [phi:textbox::@2/textbox::@9->textbox::@8]
  b8_from_b2:
  b8_from_b9:
    // [61] phi (byte) textbox::y#11 = (byte) textbox::y#5 [phi:textbox::@2/textbox::@9->textbox::@8#0] -- register_copy 
    // [61] phi (byte) textbox::x#7 = (byte) textbox::x#1 [phi:textbox::@2/textbox::@9->textbox::@8#1] -- register_copy 
    // [61] phi (word) textbox::z#4 = (word) textbox::z#5 [phi:textbox::@2/textbox::@9->textbox::@8#2] -- register_copy 
    jmp b8
    // textbox::@8
  b8:
    // [62] if(*((byte*) textbox::text#12 + (byte) textbox::i#1)!=(byte) 0) goto textbox::@1 -- pbuz1_derefidx_vbuz2_neq_0_then_la1 
    ldy i
    lda (text),y
    cmp #0
    bne b1_from_b8
    jmp breturn
    // textbox::@6
  b6:
    // [63] (byte) textbox::y#1 ← ++ (byte) textbox::y#12 -- vbuz1=_inc_vbuz1 
    inc y
    // [64] if((byte) textbox::y#1!=(byte) textbox::y2#4) goto textbox::@7 -- vbuz1_neq_vbuz2_then_la1 
    lda y
    cmp y2
    bne b7
    jmp breturn
    // textbox::@7
  b7:
    // [65] (byte) textbox::$35 ← (byte) textbox::y#1 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda y
    asl
    asl
    sta _35
    // [66] (byte) textbox::$36 ← (byte) textbox::$35 + (byte) textbox::y#1 -- vbuz1=vbuz2_plus_vbuz3 
    lda _35
    clc
    adc y
    sta _36
    // [67] (word) textbox::z#1 ← (byte) textbox::$36 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda _36
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // [68] (byte~) textbox::x#15 ← (byte) textbox::x1#4 -- vbuz1=vbuz2 
    lda x1
    sta x
    jmp b2_from_b7
    // textbox::@4
  b4:
    // [69] (byte) textbox::ls#1 ← ++ (byte) textbox::ls#2 -- vbuz1=_inc_vbuz1 
    inc ls
    // [70] (byte) textbox::c#1 ← ++ (byte) textbox::c#2 -- vbuz1=_inc_vbuz1 
    inc c
    // [43] phi from textbox::@4 to textbox::@3 [phi:textbox::@4->textbox::@3]
  b3_from_b4:
    // [43] phi (byte) textbox::c#2 = (byte) textbox::c#1 [phi:textbox::@4->textbox::@3#0] -- register_copy 
    // [43] phi (byte) textbox::ls#2 = (byte) textbox::ls#1 [phi:textbox::@4->textbox::@3#1] -- register_copy 
    jmp b3
}
  // draw_window
// draw_window(byte zeropage($17) x1, byte zeropage($18) y1, byte zeropage($19) x2, byte zeropage($1a) y2)
draw_window: {
    .label _2 = $37
    .label _3 = $3b
    .label _4 = $4b
    .label _5 = $4f
    .label _6 = $53
    .label _8 = $54
    .label _13 = $2f
    .label _14 = $33
    .label _18 = $43
    .label _19 = $47
    .label _24 = $59
    .label x1 = $17
    .label y1 = $18
    .label x2 = $19
    .label y2 = $1a
    .label z = $29
    .label q = $2d
    .label x = $12
    .label y = $13
    .label z_1 = $41
    .label y3 = $14
    .label z_2 = $57
    .label x3 = $15
    .label _27 = $31
    .label _28 = $35
    .label _29 = $39
    .label _30 = $3d
    .label _31 = $45
    .label _32 = $49
    .label _33 = $4d
    .label _34 = $51
    .label _35 = $5b
    .label _36 = $27
    .label _37 = $28
    .label _39 = $2b
    .label _40 = $2c
    .label _42 = $3f
    .label _43 = $40
    .label _45 = $55
    .label _46 = $56
    // [71] (byte) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda y1
    asl
    asl
    sta _36
    // [72] (byte) draw_window::$37 ← (byte) draw_window::$36 + (byte) draw_window::y1#0 -- vbuz1=vbuz2_plus_vbuz3 
    lda _36
    clc
    adc y1
    sta _37
    // [73] (word) draw_window::z#0 ← (byte) draw_window::$37 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda _37
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // [74] (byte) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda y2
    asl
    asl
    sta _39
    // [75] (byte) draw_window::$40 ← (byte) draw_window::$39 + (byte) draw_window::y2#0 -- vbuz1=vbuz2_plus_vbuz3 
    lda _39
    clc
    adc y2
    sta _40
    // [76] (word) draw_window::q#0 ← (byte) draw_window::$40 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda _40
    sta q
    lda #0
    sta q+1
    asl q
    rol q+1
    asl q
    rol q+1
    asl q
    rol q+1
    // [77] (byte) draw_window::x#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy x1
    iny
    sty x
    // [78] phi from draw_window draw_window::@1 to draw_window::@1 [phi:draw_window/draw_window::@1->draw_window::@1]
  b1_from_draw_window:
  b1_from_b1:
    // [78] phi (byte) draw_window::x#2 = (byte) draw_window::x#0 [phi:draw_window/draw_window::@1->draw_window::@1#0] -- register_copy 
    jmp b1
  // draw horizontal lines
    // draw_window::@1
  b1:
    // [79] (word~) draw_window::$13 ← (word) draw_window::z#0 + (byte) draw_window::x#2 -- vwuz1=vwuz2_plus_vbuz3 
    lda x
    clc
    adc z
    sta _13
    lda #0
    adc z+1
    sta _13+1
    // [80] (byte*~) draw_window::$27 ← (const byte*) screen#0 + (word~) draw_window::$13 -- pbuz1=pbuc1_plus_vwuz2 
    lda _13
    clc
    adc #<screen
    sta _27
    lda _13+1
    adc #>screen
    sta _27+1
    // [81] *((byte*~) draw_window::$27) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (_27),y
    // [82] (word~) draw_window::$14 ← (word) draw_window::q#0 + (byte) draw_window::x#2 -- vwuz1=vwuz2_plus_vbuz3 
    lda x
    clc
    adc q
    sta _14
    lda #0
    adc q+1
    sta _14+1
    // [83] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$14 -- pbuz1=pbuc1_plus_vwuz2 
    lda _14
    clc
    adc #<screen
    sta _28
    lda _14+1
    adc #>screen
    sta _28+1
    // [84] *((byte*~) draw_window::$28) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (_28),y
    // [85] (byte) draw_window::x#1 ← ++ (byte) draw_window::x#2 -- vbuz1=_inc_vbuz1 
    inc x
    // [86] if((byte) draw_window::x#1<(byte) draw_window::x2#0) goto draw_window::@1 -- vbuz1_lt_vbuz2_then_la1 
    lda x
    cmp x2
    bcc b1_from_b1
    jmp b2
    // draw_window::@2
  b2:
    // [87] (word~) draw_window::$2 ← (word) draw_window::z#0 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x1
    clc
    adc z
    sta _2
    lda #0
    adc z+1
    sta _2+1
    // [88] (byte*~) draw_window::$29 ← (const byte*) screen#0 + (word~) draw_window::$2 -- pbuz1=pbuc1_plus_vwuz2 
    lda _2
    clc
    adc #<screen
    sta _29
    lda _2+1
    adc #>screen
    sta _29+1
    // [89] *((byte*~) draw_window::$29) ← (byte) $55 -- _deref_pbuz1=vbuc1 
    // draw upper corners
    lda #$55
    ldy #0
    sta (_29),y
    // [90] (word~) draw_window::$3 ← (word) draw_window::z#0 + (byte) draw_window::x2#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x2
    clc
    adc z
    sta _3
    lda #0
    adc z+1
    sta _3+1
    // [91] (byte*~) draw_window::$30 ← (const byte*) screen#0 + (word~) draw_window::$3 -- pbuz1=pbuc1_plus_vwuz2 
    lda _3
    clc
    adc #<screen
    sta _30
    lda _3+1
    adc #>screen
    sta _30+1
    // [92] *((byte*~) draw_window::$30) ← (byte) $49 -- _deref_pbuz1=vbuc1 
    lda #$49
    ldy #0
    sta (_30),y
    // [93] (byte) draw_window::y#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy y1
    iny
    sty y
    // [94] phi from draw_window::@2 draw_window::@3 to draw_window::@3 [phi:draw_window::@2/draw_window::@3->draw_window::@3]
  b3_from_b2:
  b3_from_b3:
    // [94] phi (byte) draw_window::y#2 = (byte) draw_window::y#0 [phi:draw_window::@2/draw_window::@3->draw_window::@3#0] -- register_copy 
    jmp b3
  // draw vertical lines
    // draw_window::@3
  b3:
    // [95] (byte) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda y
    asl
    asl
    sta _42
    // [96] (byte) draw_window::$43 ← (byte) draw_window::$42 + (byte) draw_window::y#2 -- vbuz1=vbuz2_plus_vbuz3 
    lda _42
    clc
    adc y
    sta _43
    // [97] (word) draw_window::z#1 ← (byte) draw_window::$43 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda _43
    sta z_1
    lda #0
    sta z_1+1
    asl z_1
    rol z_1+1
    asl z_1
    rol z_1+1
    asl z_1
    rol z_1+1
    // [98] (word~) draw_window::$18 ← (word) draw_window::z#1 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x1
    clc
    adc z_1
    sta _18
    lda #0
    adc z_1+1
    sta _18+1
    // [99] (byte*~) draw_window::$31 ← (const byte*) screen#0 + (word~) draw_window::$18 -- pbuz1=pbuc1_plus_vwuz2 
    lda _18
    clc
    adc #<screen
    sta _31
    lda _18+1
    adc #>screen
    sta _31+1
    // [100] *((byte*~) draw_window::$31) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (_31),y
    // [101] (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x2#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x2
    clc
    adc z_1
    sta _19
    lda #0
    adc z_1+1
    sta _19+1
    // [102] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$19 -- pbuz1=pbuc1_plus_vwuz2 
    lda _19
    clc
    adc #<screen
    sta _32
    lda _19+1
    adc #>screen
    sta _32+1
    // [103] *((byte*~) draw_window::$32) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (_32),y
    // [104] (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2 -- vbuz1=_inc_vbuz1 
    inc y
    // [105] if((byte) draw_window::y#1<(byte) draw_window::y2#0) goto draw_window::@3 -- vbuz1_lt_vbuz2_then_la1 
    lda y
    cmp y2
    bcc b3_from_b3
    jmp b4
    // draw_window::@4
  b4:
    // [106] (word~) draw_window::$4 ← (word) draw_window::q#0 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x1
    clc
    adc q
    sta _4
    lda #0
    adc q+1
    sta _4+1
    // [107] (byte*~) draw_window::$33 ← (const byte*) screen#0 + (word~) draw_window::$4 -- pbuz1=pbuc1_plus_vwuz2 
    lda _4
    clc
    adc #<screen
    sta _33
    lda _4+1
    adc #>screen
    sta _33+1
    // [108] *((byte*~) draw_window::$33) ← (byte) $4a -- _deref_pbuz1=vbuc1 
    // draw lower corners
    lda #$4a
    ldy #0
    sta (_33),y
    // [109] (word~) draw_window::$5 ← (word) draw_window::q#0 + (byte) draw_window::x2#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x2
    clc
    adc q
    sta _5
    lda #0
    adc q+1
    sta _5+1
    // [110] (byte*~) draw_window::$34 ← (const byte*) screen#0 + (word~) draw_window::$5 -- pbuz1=pbuc1_plus_vwuz2 
    lda _5
    clc
    adc #<screen
    sta _34
    lda _5+1
    adc #>screen
    sta _34+1
    // [111] *((byte*~) draw_window::$34) ← (byte) $4b -- _deref_pbuz1=vbuc1 
    lda #$4b
    ldy #0
    sta (_34),y
    // [112] (byte~) draw_window::$6 ← (byte) draw_window::x2#0 - (byte) draw_window::x1#0 -- vbuz1=vbuz2_minus_vbuz3 
    lda x2
    sec
    sbc x1
    sta _6
    // [113] (byte~) draw_window::$8 ← (byte) draw_window::y2#0 - (byte) draw_window::y1#0 -- vbuz1=vbuz2_minus_vbuz3 
    lda y2
    sec
    sbc y1
    sta _8
    // [114] if((byte~) draw_window::$6<(byte) 1+(byte) 1) goto draw_window::@return -- vbuz1_lt_vbuc1_then_la1 
    lda _6
    cmp #1+1
    bcc breturn
    jmp b9
    // draw_window::@9
  b9:
    // [115] if((byte~) draw_window::$8>=(byte) 1+(byte) 1) goto draw_window::@5 -- vbuz1_ge_vbuc1_then_la1 
    lda _8
    cmp #1+1
    bcs b5
    jmp breturn
    // draw_window::@return
  breturn:
    // [116] return 
    rts
    // draw_window::@5
  b5:
    // [117] (byte) draw_window::y3#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy y1
    iny
    sty y3
    // [118] phi from draw_window::@5 draw_window::@8 to draw_window::@6 [phi:draw_window::@5/draw_window::@8->draw_window::@6]
  b6_from_b5:
  b6_from_b8:
    // [118] phi (byte) draw_window::y3#2 = (byte) draw_window::y3#0 [phi:draw_window::@5/draw_window::@8->draw_window::@6#0] -- register_copy 
    jmp b6
  // blank inside
    // draw_window::@6
  b6:
    // [119] (byte) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda y3
    asl
    asl
    sta _45
    // [120] (byte) draw_window::$46 ← (byte) draw_window::$45 + (byte) draw_window::y3#2 -- vbuz1=vbuz2_plus_vbuz3 
    lda _45
    clc
    adc y3
    sta _46
    // [121] (word) draw_window::z#2 ← (byte) draw_window::$46 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda _46
    sta z_2
    lda #0
    sta z_2+1
    asl z_2
    rol z_2+1
    asl z_2
    rol z_2+1
    asl z_2
    rol z_2+1
    // [122] (byte) draw_window::x3#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy x1
    iny
    sty x3
    // [123] phi from draw_window::@6 draw_window::@7 to draw_window::@7 [phi:draw_window::@6/draw_window::@7->draw_window::@7]
  b7_from_b6:
  b7_from_b7:
    // [123] phi (byte) draw_window::x3#2 = (byte) draw_window::x3#0 [phi:draw_window::@6/draw_window::@7->draw_window::@7#0] -- register_copy 
    jmp b7
    // draw_window::@7
  b7:
    // [124] (word~) draw_window::$24 ← (word) draw_window::z#2 + (byte) draw_window::x3#2 -- vwuz1=vwuz2_plus_vbuz3 
    lda x3
    clc
    adc z_2
    sta _24
    lda #0
    adc z_2+1
    sta _24+1
    // [125] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$24 -- pbuz1=pbuc1_plus_vwuz2 
    lda _24
    clc
    adc #<screen
    sta _35
    lda _24+1
    adc #>screen
    sta _35+1
    // [126] *((byte*~) draw_window::$35) ← (byte) $20 -- _deref_pbuz1=vbuc1 
    lda #$20
    ldy #0
    sta (_35),y
    // [127] (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2 -- vbuz1=_inc_vbuz1 
    inc x3
    // [128] if((byte) draw_window::x3#1<(byte) draw_window::x2#0) goto draw_window::@7 -- vbuz1_lt_vbuz2_then_la1 
    lda x3
    cmp x2
    bcc b7_from_b7
    jmp b8
    // draw_window::@8
  b8:
    // [129] (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#2 -- vbuz1=_inc_vbuz1 
    inc y3
    // [130] if((byte) draw_window::y3#1<(byte) draw_window::y2#0) goto draw_window::@6 -- vbuz1_lt_vbuz2_then_la1 
    lda y3
    cmp y2
    bcc b6_from_b8
    jmp breturn
}
  // File Data
  text: .text "this is a small test with word wrap, if a word is too long it moves it to the next line. isn't that supercalifragilisticexpialidocious? i think it's cool!@"
  text2: .text "textbox by scan of desire@"

REGISTER UPLIFT POTENTIAL REGISTERS
Statement [6] (byte~) main::$3 ← (byte) main::x#2 + (byte) main::x#2 [ main::x#2 main::$3 ] ( main:2 [ main::x#2 main::$3 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::x#2 main::x#1 ]
Statement [8] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a [ main::x#2 textbox::x2#0 textbox::y2#0 ] ( main:2 [ main::x#2 textbox::x2#0 textbox::y2#0 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ textbox::x2#4 textbox::x2#0 ]
Statement [14] if((word) main::wait#1<(word) $88b8) goto main::@2 [ main::x#2 main::wait#1 ] ( main:2 [ main::x#2 main::wait#1 ] ) always clobbers reg byte a 
Statement [32] (byte) textbox::$32 ← (byte) textbox::y#0 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ textbox::x1#4 textbox::x1#0 ]
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ textbox::y2#4 textbox::y2#0 ]
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ]
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ]
Statement [33] (byte) textbox::$33 ← (byte) textbox::$32 + (byte) textbox::y#0 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] ) always clobbers reg byte a 
Statement [34] (word) textbox::z#0 ← (byte) textbox::$33 << (byte) 3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] ) always clobbers reg byte a 
Statement [38] (word~) textbox::$8 ← (word) textbox::z#3 + (byte) textbox::x#10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ textbox::i#2 textbox::i#1 ]
Statement [39] (byte*~) textbox::$31 ← (const byte*) screen#0 + (word~) textbox::$8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] ) always clobbers reg byte a 
Statement [40] *((byte*~) textbox::$31) ← *((byte*) textbox::text#12 + (byte) textbox::i#2) [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::x#2 main::x#1 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ textbox::x1#4 textbox::x1#0 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:7 [ textbox::x2#4 textbox::x2#0 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:8 [ textbox::y2#4 textbox::y2#0 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:11 [ textbox::i#2 textbox::i#1 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ]
Statement [41] if(*((byte*) textbox::text#12 + (byte) textbox::i#2)!=(byte) $20) goto textbox::@2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Statement [44] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@5 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ textbox::ls#2 textbox::ls#0 textbox::ls#1 ]
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ textbox::c#2 textbox::c#1 ]
Statement [45] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) 0) goto textbox::@4 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Statement [46] (byte~) textbox::$15 ← (byte) textbox::c#2 + (byte) textbox::x#10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] ) always clobbers reg byte a 
Statement [47] (byte~) textbox::$17 ← (byte) textbox::x2#4 - (byte) textbox::x1#4 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ textbox::$15 ]
Statement [58] (byte) textbox::$38 ← (byte) textbox::y#2 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] ) always clobbers reg byte a 
Statement [59] (byte) textbox::$39 ← (byte) textbox::$38 + (byte) textbox::y#2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] ) always clobbers reg byte a 
Statement [60] (word) textbox::z#2 ← (byte) textbox::$39 << (byte) 3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] ) always clobbers reg byte a 
Statement [62] if(*((byte*) textbox::text#12 + (byte) textbox::i#1)!=(byte) 0) goto textbox::@1 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] ) always clobbers reg byte a reg byte y 
Statement [65] (byte) textbox::$35 ← (byte) textbox::y#1 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] ) always clobbers reg byte a 
Statement [66] (byte) textbox::$36 ← (byte) textbox::$35 + (byte) textbox::y#1 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] ) always clobbers reg byte a 
Statement [67] (word) textbox::z#1 ← (byte) textbox::$36 << (byte) 3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] ) always clobbers reg byte a 
Statement [71] (byte) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ textbox::y1#4 textbox::y1#0 ]
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ draw_window::x1#0 ]
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ draw_window::y1#0 ]
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ draw_window::x2#0 ]
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ draw_window::y2#0 ]
Statement [72] (byte) draw_window::$37 ← (byte) draw_window::$36 + (byte) draw_window::y1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] ) always clobbers reg byte a 
Statement [73] (word) draw_window::z#0 ← (byte) draw_window::$37 << (byte) 3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] ) always clobbers reg byte a 
Statement [74] (byte) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] ) always clobbers reg byte a 
Statement [75] (byte) draw_window::$40 ← (byte) draw_window::$39 + (byte) draw_window::y2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] ) always clobbers reg byte a 
Statement [76] (word) draw_window::q#0 ← (byte) draw_window::$40 << (byte) 3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a 
Statement [79] (word~) draw_window::$13 ← (word) draw_window::z#0 + (byte) draw_window::x#2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:18 [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ]
Statement [80] (byte*~) draw_window::$27 ← (const byte*) screen#0 + (word~) draw_window::$13 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] ) always clobbers reg byte a 
Statement [81] *((byte*~) draw_window::$27) ← (byte) $43 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:6 [ textbox::y1#4 textbox::y1#0 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:23 [ draw_window::x1#0 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:24 [ draw_window::y1#0 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:25 [ draw_window::x2#0 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:26 [ draw_window::y2#0 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:18 [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ]
Statement [82] (word~) draw_window::$14 ← (word) draw_window::q#0 + (byte) draw_window::x#2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] ) always clobbers reg byte a 
Statement [83] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$14 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] ) always clobbers reg byte a 
Statement [84] *((byte*~) draw_window::$28) ← (byte) $43 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Statement [87] (word~) draw_window::$2 ← (word) draw_window::z#0 + (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] ) always clobbers reg byte a 
Statement [88] (byte*~) draw_window::$29 ← (const byte*) screen#0 + (word~) draw_window::$2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] ) always clobbers reg byte a 
Statement [89] *((byte*~) draw_window::$29) ← (byte) $55 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [90] (word~) draw_window::$3 ← (word) draw_window::z#0 + (byte) draw_window::x2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] ) always clobbers reg byte a 
Statement [91] (byte*~) draw_window::$30 ← (const byte*) screen#0 + (word~) draw_window::$3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] ) always clobbers reg byte a 
Statement [92] *((byte*~) draw_window::$30) ← (byte) $49 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [95] (byte) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ]
Statement [96] (byte) draw_window::$43 ← (byte) draw_window::$42 + (byte) draw_window::y#2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] ) always clobbers reg byte a 
Statement [97] (word) draw_window::z#1 ← (byte) draw_window::$43 << (byte) 3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a 
Statement [98] (word~) draw_window::$18 ← (word) draw_window::z#1 + (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] ) always clobbers reg byte a 
Statement [99] (byte*~) draw_window::$31 ← (const byte*) screen#0 + (word~) draw_window::$18 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] ) always clobbers reg byte a 
Statement [100] *((byte*~) draw_window::$31) ← (byte) $42 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ]
Statement [101] (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] ) always clobbers reg byte a 
Statement [102] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$19 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] ) always clobbers reg byte a 
Statement [103] *((byte*~) draw_window::$32) ← (byte) $42 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] ) always clobbers reg byte a reg byte y 
Statement [106] (word~) draw_window::$4 ← (word) draw_window::q#0 + (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] ) always clobbers reg byte a 
Statement [107] (byte*~) draw_window::$33 ← (const byte*) screen#0 + (word~) draw_window::$4 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] ) always clobbers reg byte a 
Statement [108] *((byte*~) draw_window::$33) ← (byte) $4a [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [109] (word~) draw_window::$5 ← (word) draw_window::q#0 + (byte) draw_window::x2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] ) always clobbers reg byte a 
Statement [110] (byte*~) draw_window::$34 ← (const byte*) screen#0 + (word~) draw_window::$5 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] ) always clobbers reg byte a 
Statement [111] *((byte*~) draw_window::$34) ← (byte) $4b [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] ) always clobbers reg byte a reg byte y 
Statement [112] (byte~) draw_window::$6 ← (byte) draw_window::x2#0 - (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] ) always clobbers reg byte a 
Statement [113] (byte~) draw_window::$8 ← (byte) draw_window::y2#0 - (byte) draw_window::y1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:83 [ draw_window::$6 ]
Statement [119] (byte) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
Statement [120] (byte) draw_window::$46 ← (byte) draw_window::$45 + (byte) draw_window::y3#2 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] ) always clobbers reg byte a 
Statement [121] (word) draw_window::z#2 ← (byte) draw_window::$46 << (byte) 3 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] ) always clobbers reg byte a 
Statement [124] (word~) draw_window::$24 ← (word) draw_window::z#2 + (byte) draw_window::x3#2 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:21 [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ]
Statement [125] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$24 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] ) always clobbers reg byte a 
Statement [126] *((byte*~) draw_window::$35) ← (byte) $20 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:21 [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ]
Statement [6] (byte~) main::$3 ← (byte) main::x#2 + (byte) main::x#2 [ main::x#2 main::$3 ] ( main:2 [ main::x#2 main::$3 ] ) always clobbers reg byte a 
Statement [8] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a [ main::x#2 textbox::x2#0 textbox::y2#0 ] ( main:2 [ main::x#2 textbox::x2#0 textbox::y2#0 ] ) always clobbers reg byte a reg byte x 
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:2 [ main::x#2 main::x#1 ]
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:7 [ textbox::x2#4 textbox::x2#0 ]
Statement [14] if((word) main::wait#1<(word) $88b8) goto main::@2 [ main::x#2 main::wait#1 ] ( main:2 [ main::x#2 main::wait#1 ] ) always clobbers reg byte a 
Statement [15] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2 [ main::x#1 ] ( main:2 [ main::x#1 ] ) always clobbers reg byte a 
Statement [16] if((byte) main::x#1<(byte) $f) goto main::@1 [ main::x#1 ] ( main:2 [ main::x#1 ] ) always clobbers reg byte a 
Statement [32] (byte) textbox::$32 ← (byte) textbox::y#0 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] ) always clobbers reg byte a 
Statement [33] (byte) textbox::$33 ← (byte) textbox::$32 + (byte) textbox::y#0 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] ) always clobbers reg byte a 
Statement [34] (word) textbox::z#0 ← (byte) textbox::$33 << (byte) 3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] ) always clobbers reg byte a 
Statement [38] (word~) textbox::$8 ← (word) textbox::z#3 + (byte) textbox::x#10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] ) always clobbers reg byte a 
Statement [39] (byte*~) textbox::$31 ← (const byte*) screen#0 + (word~) textbox::$8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] ) always clobbers reg byte a 
Statement [40] *((byte*~) textbox::$31) ← *((byte*) textbox::text#12 + (byte) textbox::i#2) [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Statement [41] if(*((byte*) textbox::text#12 + (byte) textbox::i#2)!=(byte) $20) goto textbox::@2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Statement [44] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@5 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Statement [45] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) 0) goto textbox::@4 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Statement [46] (byte~) textbox::$15 ← (byte) textbox::c#2 + (byte) textbox::x#10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] ) always clobbers reg byte a 
Statement [47] (byte~) textbox::$17 ← (byte) textbox::x2#4 - (byte) textbox::x1#4 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] ) always clobbers reg byte a 
Statement [58] (byte) textbox::$38 ← (byte) textbox::y#2 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] ) always clobbers reg byte a 
Statement [59] (byte) textbox::$39 ← (byte) textbox::$38 + (byte) textbox::y#2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] ) always clobbers reg byte a 
Statement [60] (word) textbox::z#2 ← (byte) textbox::$39 << (byte) 3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] ) always clobbers reg byte a 
Statement [62] if(*((byte*) textbox::text#12 + (byte) textbox::i#1)!=(byte) 0) goto textbox::@1 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] ) always clobbers reg byte a reg byte y 
Statement [65] (byte) textbox::$35 ← (byte) textbox::y#1 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] ) always clobbers reg byte a 
Statement [66] (byte) textbox::$36 ← (byte) textbox::$35 + (byte) textbox::y#1 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] ) always clobbers reg byte a 
Statement [67] (word) textbox::z#1 ← (byte) textbox::$36 << (byte) 3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] ) always clobbers reg byte a 
Statement [71] (byte) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] ) always clobbers reg byte a 
Statement [72] (byte) draw_window::$37 ← (byte) draw_window::$36 + (byte) draw_window::y1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] ) always clobbers reg byte a 
Statement [73] (word) draw_window::z#0 ← (byte) draw_window::$37 << (byte) 3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] ) always clobbers reg byte a 
Statement [74] (byte) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] ) always clobbers reg byte a 
Statement [75] (byte) draw_window::$40 ← (byte) draw_window::$39 + (byte) draw_window::y2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] ) always clobbers reg byte a 
Statement [76] (word) draw_window::q#0 ← (byte) draw_window::$40 << (byte) 3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a 
Statement [79] (word~) draw_window::$13 ← (word) draw_window::z#0 + (byte) draw_window::x#2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] ) always clobbers reg byte a 
Statement [80] (byte*~) draw_window::$27 ← (const byte*) screen#0 + (word~) draw_window::$13 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] ) always clobbers reg byte a 
Statement [81] *((byte*~) draw_window::$27) ← (byte) $43 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Statement [82] (word~) draw_window::$14 ← (word) draw_window::q#0 + (byte) draw_window::x#2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] ) always clobbers reg byte a 
Statement [83] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$14 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] ) always clobbers reg byte a 
Statement [84] *((byte*~) draw_window::$28) ← (byte) $43 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Statement [87] (word~) draw_window::$2 ← (word) draw_window::z#0 + (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] ) always clobbers reg byte a 
Statement [88] (byte*~) draw_window::$29 ← (const byte*) screen#0 + (word~) draw_window::$2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] ) always clobbers reg byte a 
Statement [89] *((byte*~) draw_window::$29) ← (byte) $55 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [90] (word~) draw_window::$3 ← (word) draw_window::z#0 + (byte) draw_window::x2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] ) always clobbers reg byte a 
Statement [91] (byte*~) draw_window::$30 ← (const byte*) screen#0 + (word~) draw_window::$3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] ) always clobbers reg byte a 
Statement [92] *((byte*~) draw_window::$30) ← (byte) $49 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [95] (byte) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] ) always clobbers reg byte a 
Statement [96] (byte) draw_window::$43 ← (byte) draw_window::$42 + (byte) draw_window::y#2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] ) always clobbers reg byte a 
Statement [97] (word) draw_window::z#1 ← (byte) draw_window::$43 << (byte) 3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a 
Statement [98] (word~) draw_window::$18 ← (word) draw_window::z#1 + (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] ) always clobbers reg byte a 
Statement [99] (byte*~) draw_window::$31 ← (const byte*) screen#0 + (word~) draw_window::$18 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] ) always clobbers reg byte a 
Statement [100] *((byte*~) draw_window::$31) ← (byte) $42 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a reg byte y 
Statement [101] (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] ) always clobbers reg byte a 
Statement [102] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$19 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] ) always clobbers reg byte a 
Statement [103] *((byte*~) draw_window::$32) ← (byte) $42 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] ) always clobbers reg byte a reg byte y 
Statement [106] (word~) draw_window::$4 ← (word) draw_window::q#0 + (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] ) always clobbers reg byte a 
Statement [107] (byte*~) draw_window::$33 ← (const byte*) screen#0 + (word~) draw_window::$4 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] ) always clobbers reg byte a 
Statement [108] *((byte*~) draw_window::$33) ← (byte) $4a [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [109] (word~) draw_window::$5 ← (word) draw_window::q#0 + (byte) draw_window::x2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] ) always clobbers reg byte a 
Statement [110] (byte*~) draw_window::$34 ← (const byte*) screen#0 + (word~) draw_window::$5 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] ) always clobbers reg byte a 
Statement [111] *((byte*~) draw_window::$34) ← (byte) $4b [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] ) always clobbers reg byte a reg byte y 
Statement [112] (byte~) draw_window::$6 ← (byte) draw_window::x2#0 - (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] ) always clobbers reg byte a 
Statement [113] (byte~) draw_window::$8 ← (byte) draw_window::y2#0 - (byte) draw_window::y1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] ) always clobbers reg byte a 
Statement [119] (byte) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] ) always clobbers reg byte a 
Statement [120] (byte) draw_window::$46 ← (byte) draw_window::$45 + (byte) draw_window::y3#2 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] ) always clobbers reg byte a 
Statement [121] (word) draw_window::z#2 ← (byte) draw_window::$46 << (byte) 3 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] ) always clobbers reg byte a 
Statement [124] (word~) draw_window::$24 ← (word) draw_window::z#2 + (byte) draw_window::x3#2 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] ) always clobbers reg byte a 
Statement [125] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$24 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] ) always clobbers reg byte a 
Statement [126] *((byte*~) draw_window::$35) ← (byte) $20 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] ) always clobbers reg byte a reg byte y 
Statement [6] (byte~) main::$3 ← (byte) main::x#2 + (byte) main::x#2 [ main::x#2 main::$3 ] ( main:2 [ main::x#2 main::$3 ] ) always clobbers reg byte a 
Statement [8] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a [ main::x#2 textbox::x2#0 textbox::y2#0 ] ( main:2 [ main::x#2 textbox::x2#0 textbox::y2#0 ] ) always clobbers reg byte a reg byte x 
Statement [14] if((word) main::wait#1<(word) $88b8) goto main::@2 [ main::x#2 main::wait#1 ] ( main:2 [ main::x#2 main::wait#1 ] ) always clobbers reg byte a 
Statement [15] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2 [ main::x#1 ] ( main:2 [ main::x#1 ] ) always clobbers reg byte a 
Statement [16] if((byte) main::x#1<(byte) $f) goto main::@1 [ main::x#1 ] ( main:2 [ main::x#1 ] ) always clobbers reg byte a 
Statement [32] (byte) textbox::$32 ← (byte) textbox::y#0 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$32 ] ) always clobbers reg byte a 
Statement [33] (byte) textbox::$33 ← (byte) textbox::$32 + (byte) textbox::y#0 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$33 ] ) always clobbers reg byte a 
Statement [34] (word) textbox::z#0 ← (byte) textbox::$33 << (byte) 3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] ) always clobbers reg byte a 
Statement [38] (word~) textbox::$8 ← (word) textbox::z#3 + (byte) textbox::x#10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$8 ] ) always clobbers reg byte a 
Statement [39] (byte*~) textbox::$31 ← (const byte*) screen#0 + (word~) textbox::$8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$31 ] ) always clobbers reg byte a 
Statement [40] *((byte*~) textbox::$31) ← *((byte*) textbox::text#12 + (byte) textbox::i#2) [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Statement [41] if(*((byte*) textbox::text#12 + (byte) textbox::i#2)!=(byte) $20) goto textbox::@2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Statement [44] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@5 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Statement [45] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) 0) goto textbox::@4 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Statement [46] (byte~) textbox::$15 ← (byte) textbox::c#2 + (byte) textbox::x#10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 ] ) always clobbers reg byte a 
Statement [47] (byte~) textbox::$17 ← (byte) textbox::x2#4 - (byte) textbox::x1#4 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$15 textbox::$17 ] ) always clobbers reg byte a 
Statement [58] (byte) textbox::$38 ← (byte) textbox::y#2 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$38 ] ) always clobbers reg byte a 
Statement [59] (byte) textbox::$39 ← (byte) textbox::$38 + (byte) textbox::y#2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] ) always clobbers reg byte a 
Statement [60] (word) textbox::z#2 ← (byte) textbox::$39 << (byte) 3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] ) always clobbers reg byte a 
Statement [62] if(*((byte*) textbox::text#12 + (byte) textbox::i#1)!=(byte) 0) goto textbox::@1 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] ) always clobbers reg byte a reg byte y 
Statement [65] (byte) textbox::$35 ← (byte) textbox::y#1 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$35 ] ) always clobbers reg byte a 
Statement [66] (byte) textbox::$36 ← (byte) textbox::$35 + (byte) textbox::y#1 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] ) always clobbers reg byte a 
Statement [67] (word) textbox::z#1 ← (byte) textbox::$36 << (byte) 3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] ( main:2::textbox:11 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:18 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:20 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:22 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] ) always clobbers reg byte a 
Statement [71] (byte) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] ) always clobbers reg byte a 
Statement [72] (byte) draw_window::$37 ← (byte) draw_window::$36 + (byte) draw_window::y1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] ) always clobbers reg byte a 
Statement [73] (word) draw_window::z#0 ← (byte) draw_window::$37 << (byte) 3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] ) always clobbers reg byte a 
Statement [74] (byte) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] ) always clobbers reg byte a 
Statement [75] (byte) draw_window::$40 ← (byte) draw_window::$39 + (byte) draw_window::y2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] ) always clobbers reg byte a 
Statement [76] (word) draw_window::q#0 ← (byte) draw_window::$40 << (byte) 3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a 
Statement [79] (word~) draw_window::$13 ← (word) draw_window::z#0 + (byte) draw_window::x#2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$13 ] ) always clobbers reg byte a 
Statement [80] (byte*~) draw_window::$27 ← (const byte*) screen#0 + (word~) draw_window::$13 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] ) always clobbers reg byte a 
Statement [81] *((byte*~) draw_window::$27) ← (byte) $43 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Statement [82] (word~) draw_window::$14 ← (word) draw_window::q#0 + (byte) draw_window::x#2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] ) always clobbers reg byte a 
Statement [83] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$14 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] ) always clobbers reg byte a 
Statement [84] *((byte*~) draw_window::$28) ← (byte) $43 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Statement [87] (word~) draw_window::$2 ← (word) draw_window::z#0 + (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] ) always clobbers reg byte a 
Statement [88] (byte*~) draw_window::$29 ← (const byte*) screen#0 + (word~) draw_window::$2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] ) always clobbers reg byte a 
Statement [89] *((byte*~) draw_window::$29) ← (byte) $55 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [90] (word~) draw_window::$3 ← (word) draw_window::z#0 + (byte) draw_window::x2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] ) always clobbers reg byte a 
Statement [91] (byte*~) draw_window::$30 ← (const byte*) screen#0 + (word~) draw_window::$3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] ) always clobbers reg byte a 
Statement [92] *((byte*~) draw_window::$30) ← (byte) $49 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [95] (byte) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] ) always clobbers reg byte a 
Statement [96] (byte) draw_window::$43 ← (byte) draw_window::$42 + (byte) draw_window::y#2 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] ) always clobbers reg byte a 
Statement [97] (word) draw_window::z#1 ← (byte) draw_window::$43 << (byte) 3 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a 
Statement [98] (word~) draw_window::$18 ← (word) draw_window::z#1 + (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$18 ] ) always clobbers reg byte a 
Statement [99] (byte*~) draw_window::$31 ← (const byte*) screen#0 + (word~) draw_window::$18 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] ) always clobbers reg byte a 
Statement [100] *((byte*~) draw_window::$31) ← (byte) $42 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a reg byte y 
Statement [101] (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$19 ] ) always clobbers reg byte a 
Statement [102] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$19 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] ) always clobbers reg byte a 
Statement [103] *((byte*~) draw_window::$32) ← (byte) $42 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] ) always clobbers reg byte a reg byte y 
Statement [106] (word~) draw_window::$4 ← (word) draw_window::q#0 + (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] ) always clobbers reg byte a 
Statement [107] (byte*~) draw_window::$33 ← (const byte*) screen#0 + (word~) draw_window::$4 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] ) always clobbers reg byte a 
Statement [108] *((byte*~) draw_window::$33) ← (byte) $4a [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [109] (word~) draw_window::$5 ← (word) draw_window::q#0 + (byte) draw_window::x2#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] ) always clobbers reg byte a 
Statement [110] (byte*~) draw_window::$34 ← (const byte*) screen#0 + (word~) draw_window::$5 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] ) always clobbers reg byte a 
Statement [111] *((byte*~) draw_window::$34) ← (byte) $4b [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] ) always clobbers reg byte a reg byte y 
Statement [112] (byte~) draw_window::$6 ← (byte) draw_window::x2#0 - (byte) draw_window::x1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] ) always clobbers reg byte a 
Statement [113] (byte~) draw_window::$8 ← (byte) draw_window::y2#0 - (byte) draw_window::y1#0 [ draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] ) always clobbers reg byte a 
Statement [119] (byte) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] ) always clobbers reg byte a 
Statement [120] (byte) draw_window::$46 ← (byte) draw_window::$45 + (byte) draw_window::y3#2 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] ) always clobbers reg byte a 
Statement [121] (word) draw_window::z#2 ← (byte) draw_window::$46 << (byte) 3 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] ) always clobbers reg byte a 
Statement [124] (word~) draw_window::$24 ← (word) draw_window::z#2 + (byte) draw_window::x3#2 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$24 ] ) always clobbers reg byte a 
Statement [125] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$24 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] ) always clobbers reg byte a 
Statement [126] *((byte*~) draw_window::$35) ← (byte) $20 [ draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] ( main:2::textbox:11::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] main:2::textbox:18::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] main:2::textbox:20::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] main:2::textbox:22::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] ) always clobbers reg byte a reg byte y 
Potential registers zp ZP_BYTE:2 [ main::x#2 main::x#1 ] : zp ZP_BYTE:2 , 
Potential registers zp ZP_WORD:3 [ main::wait#2 main::wait#1 ] : zp ZP_WORD:3 , 
Potential registers zp ZP_BYTE:5 [ textbox::x1#4 textbox::x1#0 ] : zp ZP_BYTE:5 , reg byte x , 
Potential registers zp ZP_BYTE:6 [ textbox::y1#4 textbox::y1#0 ] : zp ZP_BYTE:6 , reg byte x , 
Potential registers zp ZP_BYTE:7 [ textbox::x2#4 textbox::x2#0 ] : zp ZP_BYTE:7 , 
Potential registers zp ZP_BYTE:8 [ textbox::y2#4 textbox::y2#0 ] : zp ZP_BYTE:8 , reg byte x , 
Potential registers zp ZP_WORD:9 [ textbox::text#12 ] : zp ZP_WORD:9 , 
Potential registers zp ZP_BYTE:11 [ textbox::i#2 textbox::i#1 ] : zp ZP_BYTE:11 , reg byte x , 
Potential registers zp ZP_BYTE:12 [ textbox::ls#2 textbox::ls#0 textbox::ls#1 ] : zp ZP_BYTE:12 , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:13 [ textbox::c#2 textbox::c#1 ] : zp ZP_BYTE:13 , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:14 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ] : zp ZP_BYTE:14 , reg byte x , 
Potential registers zp ZP_BYTE:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ] : zp ZP_BYTE:15 , reg byte x , 
Potential registers zp ZP_WORD:16 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ] : zp ZP_WORD:16 , 
Potential registers zp ZP_BYTE:18 [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ] : zp ZP_BYTE:18 , reg byte x , 
Potential registers zp ZP_BYTE:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ] : zp ZP_BYTE:19 , reg byte x , 
Potential registers zp ZP_BYTE:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ] : zp ZP_BYTE:20 , reg byte x , 
Potential registers zp ZP_BYTE:21 [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ] : zp ZP_BYTE:21 , reg byte x , 
Potential registers zp ZP_BYTE:22 [ main::$3 ] : zp ZP_BYTE:22 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:23 [ draw_window::x1#0 ] : zp ZP_BYTE:23 , reg byte x , 
Potential registers zp ZP_BYTE:24 [ draw_window::y1#0 ] : zp ZP_BYTE:24 , reg byte x , 
Potential registers zp ZP_BYTE:25 [ draw_window::x2#0 ] : zp ZP_BYTE:25 , reg byte x , 
Potential registers zp ZP_BYTE:26 [ draw_window::y2#0 ] : zp ZP_BYTE:26 , reg byte x , 
Potential registers zp ZP_BYTE:27 [ textbox::$32 ] : zp ZP_BYTE:27 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:28 [ textbox::$33 ] : zp ZP_BYTE:28 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_WORD:29 [ textbox::$8 ] : zp ZP_WORD:29 , 
Potential registers zp ZP_WORD:31 [ textbox::$31 ] : zp ZP_WORD:31 , 
Potential registers zp ZP_BYTE:33 [ textbox::$15 ] : zp ZP_BYTE:33 , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:34 [ textbox::$17 ] : zp ZP_BYTE:34 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:35 [ textbox::$38 ] : zp ZP_BYTE:35 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:36 [ textbox::$39 ] : zp ZP_BYTE:36 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:37 [ textbox::$35 ] : zp ZP_BYTE:37 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:38 [ textbox::$36 ] : zp ZP_BYTE:38 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:39 [ draw_window::$36 ] : zp ZP_BYTE:39 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:40 [ draw_window::$37 ] : zp ZP_BYTE:40 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_WORD:41 [ draw_window::z#0 ] : zp ZP_WORD:41 , 
Potential registers zp ZP_BYTE:43 [ draw_window::$39 ] : zp ZP_BYTE:43 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:44 [ draw_window::$40 ] : zp ZP_BYTE:44 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_WORD:45 [ draw_window::q#0 ] : zp ZP_WORD:45 , 
Potential registers zp ZP_WORD:47 [ draw_window::$13 ] : zp ZP_WORD:47 , 
Potential registers zp ZP_WORD:49 [ draw_window::$27 ] : zp ZP_WORD:49 , 
Potential registers zp ZP_WORD:51 [ draw_window::$14 ] : zp ZP_WORD:51 , 
Potential registers zp ZP_WORD:53 [ draw_window::$28 ] : zp ZP_WORD:53 , 
Potential registers zp ZP_WORD:55 [ draw_window::$2 ] : zp ZP_WORD:55 , 
Potential registers zp ZP_WORD:57 [ draw_window::$29 ] : zp ZP_WORD:57 , 
Potential registers zp ZP_WORD:59 [ draw_window::$3 ] : zp ZP_WORD:59 , 
Potential registers zp ZP_WORD:61 [ draw_window::$30 ] : zp ZP_WORD:61 , 
Potential registers zp ZP_BYTE:63 [ draw_window::$42 ] : zp ZP_BYTE:63 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:64 [ draw_window::$43 ] : zp ZP_BYTE:64 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_WORD:65 [ draw_window::z#1 ] : zp ZP_WORD:65 , 
Potential registers zp ZP_WORD:67 [ draw_window::$18 ] : zp ZP_WORD:67 , 
Potential registers zp ZP_WORD:69 [ draw_window::$31 ] : zp ZP_WORD:69 , 
Potential registers zp ZP_WORD:71 [ draw_window::$19 ] : zp ZP_WORD:71 , 
Potential registers zp ZP_WORD:73 [ draw_window::$32 ] : zp ZP_WORD:73 , 
Potential registers zp ZP_WORD:75 [ draw_window::$4 ] : zp ZP_WORD:75 , 
Potential registers zp ZP_WORD:77 [ draw_window::$33 ] : zp ZP_WORD:77 , 
Potential registers zp ZP_WORD:79 [ draw_window::$5 ] : zp ZP_WORD:79 , 
Potential registers zp ZP_WORD:81 [ draw_window::$34 ] : zp ZP_WORD:81 , 
Potential registers zp ZP_BYTE:83 [ draw_window::$6 ] : zp ZP_BYTE:83 , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:84 [ draw_window::$8 ] : zp ZP_BYTE:84 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:85 [ draw_window::$45 ] : zp ZP_BYTE:85 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:86 [ draw_window::$46 ] : zp ZP_BYTE:86 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_WORD:87 [ draw_window::z#2 ] : zp ZP_WORD:87 , 
Potential registers zp ZP_WORD:89 [ draw_window::$24 ] : zp ZP_WORD:89 , 
Potential registers zp ZP_WORD:91 [ draw_window::$35 ] : zp ZP_WORD:91 , 

REGISTER UPLIFT SCOPES
Uplift Scope [draw_window] 2,479.5: zp ZP_BYTE:21 [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ] 2,002: zp ZP_WORD:89 [ draw_window::$24 ] 2,002: zp ZP_WORD:91 [ draw_window::$35 ] 213.5: zp ZP_BYTE:18 [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ] 202: zp ZP_WORD:47 [ draw_window::$13 ] 202: zp ZP_WORD:49 [ draw_window::$27 ] 202: zp ZP_WORD:51 [ draw_window::$14 ] 202: zp ZP_WORD:53 [ draw_window::$28 ] 202: zp ZP_BYTE:63 [ draw_window::$42 ] 202: zp ZP_BYTE:64 [ draw_window::$43 ] 202: zp ZP_WORD:67 [ draw_window::$18 ] 202: zp ZP_WORD:69 [ draw_window::$31 ] 202: zp ZP_WORD:71 [ draw_window::$19 ] 202: zp ZP_WORD:73 [ draw_window::$32 ] 202: zp ZP_BYTE:85 [ draw_window::$45 ] 202: zp ZP_BYTE:86 [ draw_window::$46 ] 196.1: zp ZP_BYTE:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ] 192.41: zp ZP_BYTE:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ] 137.75: zp ZP_WORD:87 [ draw_window::z#2 ] 75.75: zp ZP_WORD:65 [ draw_window::z#1 ] 19.85: zp ZP_BYTE:25 [ draw_window::x2#0 ] 6.29: zp ZP_WORD:41 [ draw_window::z#0 ] 4: zp ZP_BYTE:39 [ draw_window::$36 ] 4: zp ZP_BYTE:40 [ draw_window::$37 ] 4: zp ZP_BYTE:43 [ draw_window::$39 ] 4: zp ZP_BYTE:44 [ draw_window::$40 ] 4: zp ZP_WORD:55 [ draw_window::$2 ] 4: zp ZP_WORD:57 [ draw_window::$29 ] 4: zp ZP_WORD:59 [ draw_window::$3 ] 4: zp ZP_WORD:61 [ draw_window::$30 ] 4: zp ZP_WORD:75 [ draw_window::$4 ] 4: zp ZP_WORD:77 [ draw_window::$33 ] 4: zp ZP_WORD:79 [ draw_window::$5 ] 4: zp ZP_WORD:81 [ draw_window::$34 ] 3.5: zp ZP_BYTE:26 [ draw_window::y2#0 ] 3.37: zp ZP_BYTE:23 [ draw_window::x1#0 ] 3.24: zp ZP_WORD:45 [ draw_window::q#0 ] 2: zp ZP_BYTE:83 [ draw_window::$6 ] 2: zp ZP_BYTE:84 [ draw_window::$8 ] 0.25: zp ZP_BYTE:24 [ draw_window::y1#0 ] 
Uplift Scope [textbox] 2,571.33: zp ZP_BYTE:12 [ textbox::ls#2 textbox::ls#0 textbox::ls#1 ] 2,316.86: zp ZP_BYTE:13 [ textbox::c#2 textbox::c#1 ] 777.88: zp ZP_BYTE:14 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ] 585.83: zp ZP_WORD:16 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ] 466.16: zp ZP_BYTE:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ] 202: zp ZP_WORD:29 [ textbox::$8 ] 202: zp ZP_WORD:31 [ textbox::$31 ] 202: zp ZP_BYTE:35 [ textbox::$38 ] 202: zp ZP_BYTE:36 [ textbox::$39 ] 202: zp ZP_BYTE:37 [ textbox::$35 ] 202: zp ZP_BYTE:38 [ textbox::$36 ] 101: zp ZP_BYTE:33 [ textbox::$15 ] 101: zp ZP_BYTE:34 [ textbox::$17 ] 50.5: zp ZP_BYTE:11 [ textbox::i#2 textbox::i#1 ] 50.11: zp ZP_WORD:9 [ textbox::text#12 ] 24.5: zp ZP_BYTE:6 [ textbox::y1#4 textbox::y1#0 ] 17.91: zp ZP_BYTE:5 [ textbox::x1#4 textbox::x1#0 ] 12.41: zp ZP_BYTE:7 [ textbox::x2#4 textbox::x2#0 ] 12.05: zp ZP_BYTE:8 [ textbox::y2#4 textbox::y2#0 ] 4: zp ZP_BYTE:27 [ textbox::$32 ] 4: zp ZP_BYTE:28 [ textbox::$33 ] 
Uplift Scope [main] 353.5: zp ZP_WORD:3 [ main::wait#2 main::wait#1 ] 24.2: zp ZP_BYTE:2 [ main::x#2 main::x#1 ] 22: zp ZP_BYTE:22 [ main::$3 ] 
Uplift Scope [] 

Uplifting [draw_window] best 188817 combination reg byte x [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ] zp ZP_WORD:89 [ draw_window::$24 ] zp ZP_WORD:91 [ draw_window::$35 ] reg byte x [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ] zp ZP_WORD:47 [ draw_window::$13 ] zp ZP_WORD:49 [ draw_window::$27 ] zp ZP_WORD:51 [ draw_window::$14 ] zp ZP_WORD:53 [ draw_window::$28 ] reg byte a [ draw_window::$42 ] reg byte a [ draw_window::$43 ] zp ZP_WORD:67 [ draw_window::$18 ] zp ZP_WORD:69 [ draw_window::$31 ] zp ZP_WORD:71 [ draw_window::$19 ] zp ZP_WORD:73 [ draw_window::$32 ] reg byte a [ draw_window::$45 ] zp ZP_BYTE:86 [ draw_window::$46 ] zp ZP_BYTE:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ] zp ZP_BYTE:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ] zp ZP_WORD:87 [ draw_window::z#2 ] zp ZP_WORD:65 [ draw_window::z#1 ] zp ZP_BYTE:25 [ draw_window::x2#0 ] zp ZP_WORD:41 [ draw_window::z#0 ] zp ZP_BYTE:39 [ draw_window::$36 ] zp ZP_BYTE:40 [ draw_window::$37 ] zp ZP_BYTE:43 [ draw_window::$39 ] zp ZP_BYTE:44 [ draw_window::$40 ] zp ZP_WORD:55 [ draw_window::$2 ] zp ZP_WORD:57 [ draw_window::$29 ] zp ZP_WORD:59 [ draw_window::$3 ] zp ZP_WORD:61 [ draw_window::$30 ] zp ZP_WORD:75 [ draw_window::$4 ] zp ZP_WORD:77 [ draw_window::$33 ] zp ZP_WORD:79 [ draw_window::$5 ] zp ZP_WORD:81 [ draw_window::$34 ] zp ZP_BYTE:26 [ draw_window::y2#0 ] zp ZP_BYTE:23 [ draw_window::x1#0 ] zp ZP_WORD:45 [ draw_window::q#0 ] zp ZP_BYTE:83 [ draw_window::$6 ] zp ZP_BYTE:84 [ draw_window::$8 ] zp ZP_BYTE:24 [ draw_window::y1#0 ] 
Limited combination testing to 100 combinations of 201326592 possible.
Uplifting [textbox] best 172517 combination reg byte y [ textbox::ls#2 textbox::ls#0 textbox::ls#1 ] reg byte x [ textbox::c#2 textbox::c#1 ] zp ZP_BYTE:14 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ] zp ZP_WORD:16 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ] zp ZP_BYTE:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ] zp ZP_WORD:29 [ textbox::$8 ] zp ZP_WORD:31 [ textbox::$31 ] reg byte a [ textbox::$38 ] zp ZP_BYTE:36 [ textbox::$39 ] zp ZP_BYTE:37 [ textbox::$35 ] zp ZP_BYTE:38 [ textbox::$36 ] zp ZP_BYTE:33 [ textbox::$15 ] zp ZP_BYTE:34 [ textbox::$17 ] zp ZP_BYTE:11 [ textbox::i#2 textbox::i#1 ] zp ZP_WORD:9 [ textbox::text#12 ] zp ZP_BYTE:6 [ textbox::y1#4 textbox::y1#0 ] zp ZP_BYTE:5 [ textbox::x1#4 textbox::x1#0 ] zp ZP_BYTE:7 [ textbox::x2#4 textbox::x2#0 ] zp ZP_BYTE:8 [ textbox::y2#4 textbox::y2#0 ] zp ZP_BYTE:27 [ textbox::$32 ] zp ZP_BYTE:28 [ textbox::$33 ] 
Limited combination testing to 100 combinations of 28311552 possible.
Uplifting [main] best 172477 combination zp ZP_WORD:3 [ main::wait#2 main::wait#1 ] zp ZP_BYTE:2 [ main::x#2 main::x#1 ] reg byte a [ main::$3 ] 
Uplifting [] best 172477 combination 
Attempting to uplift remaining variables inzp ZP_BYTE:14 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ]
Uplifting [textbox] best 172477 combination zp ZP_BYTE:14 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ]
Uplifting [textbox] best 172477 combination zp ZP_BYTE:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:36 [ textbox::$39 ]
Uplifting [textbox] best 171877 combination reg byte a [ textbox::$39 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:37 [ textbox::$35 ]
Uplifting [textbox] best 171277 combination reg byte a [ textbox::$35 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:38 [ textbox::$36 ]
Uplifting [textbox] best 170677 combination reg byte a [ textbox::$36 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:86 [ draw_window::$46 ]
Uplifting [draw_window] best 170077 combination reg byte a [ draw_window::$46 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ]
Uplifting [draw_window] best 169674 combination reg byte x [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
Uplifting [draw_window] best 169674 combination zp ZP_BYTE:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:33 [ textbox::$15 ]
Uplifting [textbox] best 169274 combination reg byte y [ textbox::$15 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:34 [ textbox::$17 ]
Uplifting [textbox] best 169274 combination zp ZP_BYTE:34 [ textbox::$17 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:11 [ textbox::i#2 textbox::i#1 ]
Uplifting [textbox] best 169274 combination zp ZP_BYTE:11 [ textbox::i#2 textbox::i#1 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:6 [ textbox::y1#4 textbox::y1#0 ]
Uplifting [textbox] best 169274 combination zp ZP_BYTE:6 [ textbox::y1#4 textbox::y1#0 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:2 [ main::x#2 main::x#1 ]
Uplifting [main] best 169274 combination zp ZP_BYTE:2 [ main::x#2 main::x#1 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:25 [ draw_window::x2#0 ]
Uplifting [draw_window] best 169274 combination zp ZP_BYTE:25 [ draw_window::x2#0 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ textbox::x1#4 textbox::x1#0 ]
Uplifting [textbox] best 169274 combination zp ZP_BYTE:5 [ textbox::x1#4 textbox::x1#0 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:7 [ textbox::x2#4 textbox::x2#0 ]
Uplifting [textbox] best 169274 combination zp ZP_BYTE:7 [ textbox::x2#4 textbox::x2#0 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:8 [ textbox::y2#4 textbox::y2#0 ]
Uplifting [textbox] best 169274 combination zp ZP_BYTE:8 [ textbox::y2#4 textbox::y2#0 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:27 [ textbox::$32 ]
Uplifting [textbox] best 169268 combination reg byte a [ textbox::$32 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:28 [ textbox::$33 ]
Uplifting [textbox] best 169262 combination reg byte a [ textbox::$33 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:39 [ draw_window::$36 ]
Uplifting [draw_window] best 169256 combination reg byte a [ draw_window::$36 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:40 [ draw_window::$37 ]
Uplifting [draw_window] best 169250 combination reg byte a [ draw_window::$37 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:43 [ draw_window::$39 ]
Uplifting [draw_window] best 169244 combination reg byte a [ draw_window::$39 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:44 [ draw_window::$40 ]
Uplifting [draw_window] best 169238 combination reg byte a [ draw_window::$40 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:26 [ draw_window::y2#0 ]
Uplifting [draw_window] best 169238 combination zp ZP_BYTE:26 [ draw_window::y2#0 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:23 [ draw_window::x1#0 ]
Uplifting [draw_window] best 169238 combination zp ZP_BYTE:23 [ draw_window::x1#0 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:83 [ draw_window::$6 ]
Uplifting [draw_window] best 169234 combination reg byte x [ draw_window::$6 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:84 [ draw_window::$8 ]
Uplifting [draw_window] best 169228 combination reg byte a [ draw_window::$8 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:24 [ draw_window::y1#0 ]
Uplifting [draw_window] best 169228 combination zp ZP_BYTE:24 [ draw_window::y1#0 ] 
Coalescing zero page register with common assignment [ zp ZP_BYTE:2 [ main::x#2 main::x#1 ] ] with [ zp ZP_BYTE:5 [ textbox::x1#4 textbox::x1#0 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_BYTE:6 [ textbox::y1#4 textbox::y1#0 ] ] with [ zp ZP_BYTE:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_BYTE:6 [ textbox::y1#4 textbox::y1#0 textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ] ] with [ zp ZP_BYTE:24 [ draw_window::y1#0 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_BYTE:7 [ textbox::x2#4 textbox::x2#0 ] ] with [ zp ZP_BYTE:25 [ draw_window::x2#0 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_BYTE:8 [ textbox::y2#4 textbox::y2#0 ] ] with [ zp ZP_BYTE:26 [ draw_window::y2#0 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:29 [ textbox::$8 ] ] with [ zp ZP_WORD:31 [ textbox::$31 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:41 [ draw_window::z#0 ] ] with [ zp ZP_WORD:59 [ draw_window::$3 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:45 [ draw_window::q#0 ] ] with [ zp ZP_WORD:79 [ draw_window::$5 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:47 [ draw_window::$13 ] ] with [ zp ZP_WORD:49 [ draw_window::$27 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:51 [ draw_window::$14 ] ] with [ zp ZP_WORD:53 [ draw_window::$28 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:55 [ draw_window::$2 ] ] with [ zp ZP_WORD:57 [ draw_window::$29 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:65 [ draw_window::z#1 ] ] with [ zp ZP_WORD:71 [ draw_window::$19 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:67 [ draw_window::$18 ] ] with [ zp ZP_WORD:69 [ draw_window::$31 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:75 [ draw_window::$4 ] ] with [ zp ZP_WORD:77 [ draw_window::$33 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:89 [ draw_window::$24 ] ] with [ zp ZP_WORD:91 [ draw_window::$35 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_BYTE:2 [ main::x#2 main::x#1 textbox::x1#4 textbox::x1#0 ] ] with [ zp ZP_BYTE:23 [ draw_window::x1#0 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:41 [ draw_window::z#0 draw_window::$3 ] ] with [ zp ZP_WORD:61 [ draw_window::$30 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:45 [ draw_window::q#0 draw_window::$5 ] ] with [ zp ZP_WORD:81 [ draw_window::$34 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:65 [ draw_window::z#1 draw_window::$19 ] ] with [ zp ZP_WORD:73 [ draw_window::$32 ] ] - score: 1
Allocated (was zp ZP_BYTE:6) zp ZP_BYTE:5 [ textbox::y1#4 textbox::y1#0 textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 draw_window::y1#0 ]
Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:6 [ textbox::x2#4 textbox::x2#0 draw_window::x2#0 ]
Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:7 [ textbox::y2#4 textbox::y2#0 draw_window::y2#0 ]
Allocated (was zp ZP_WORD:9) zp ZP_WORD:8 [ textbox::text#12 ]
Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:10 [ textbox::i#2 textbox::i#1 ]
Allocated (was zp ZP_BYTE:14) zp ZP_BYTE:11 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ]
Allocated (was zp ZP_WORD:16) zp ZP_WORD:12 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ]
Allocated (was zp ZP_BYTE:20) zp ZP_BYTE:14 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
Allocated (was zp ZP_WORD:29) zp ZP_WORD:15 [ textbox::$8 textbox::$31 ]
Allocated (was zp ZP_BYTE:34) zp ZP_BYTE:17 [ textbox::$17 ]
Allocated (was zp ZP_WORD:41) zp ZP_WORD:18 [ draw_window::z#0 draw_window::$3 draw_window::$30 ]
Allocated (was zp ZP_WORD:45) zp ZP_WORD:20 [ draw_window::q#0 draw_window::$5 draw_window::$34 ]
Allocated (was zp ZP_WORD:47) zp ZP_WORD:22 [ draw_window::$13 draw_window::$27 ]
Allocated (was zp ZP_WORD:51) zp ZP_WORD:24 [ draw_window::$14 draw_window::$28 ]
Allocated (was zp ZP_WORD:55) zp ZP_WORD:26 [ draw_window::$2 draw_window::$29 ]
Allocated (was zp ZP_WORD:65) zp ZP_WORD:28 [ draw_window::z#1 draw_window::$19 draw_window::$32 ]
Allocated (was zp ZP_WORD:67) zp ZP_WORD:30 [ draw_window::$18 draw_window::$31 ]
Allocated (was zp ZP_WORD:75) zp ZP_WORD:32 [ draw_window::$4 draw_window::$33 ]
Allocated (was zp ZP_WORD:87) zp ZP_WORD:34 [ draw_window::z#2 ]
Allocated (was zp ZP_WORD:89) zp ZP_WORD:36 [ draw_window::$24 draw_window::$35 ]

ASSEMBLER BEFORE OPTIMIZATION
  // File Comments
/* Textbox routine with word wrap for KickC by Scan/Desire */
  // Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(bbegin)
.pc = $80d "Program"
  // Global Constants & labels
  .label screen = $400
  // @begin
bbegin:
  // [1] phi from @begin to @1 [phi:@begin->@1]
b1_from_bbegin:
  jmp b1
  // @1
b1:
  // [2] call main 
  // [4] phi from @1 to main [phi:@1->main]
main_from_b1:
  jsr main
  // [3] phi from @1 to @end [phi:@1->@end]
bend_from_b1:
  jmp bend
  // @end
bend:
  // main
main: {
    .label wait = 3
    .label x = 2
    // [5] phi from main to main::@1 [phi:main->main::@1]
  b1_from_main:
    // [5] phi (byte) main::x#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta x
    jmp b1
    // [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
  b1_from_b3:
    // [5] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@3->main::@1#0] -- register_copy 
    jmp b1
    // main::@1
  b1:
    // [6] (byte~) main::$3 ← (byte) main::x#2 + (byte) main::x#2 -- vbuaa=vbuz1_plus_vbuz1 
    lda x
    asl
    // [7] (byte) textbox::x2#0 ← (byte~) main::$3 + (byte) 1 -- vbuz1=vbuaa_plus_1 
    clc
    adc #1
    sta textbox.x2
    // [8] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a -- vbuz1=vbuz2_plus_vbuc1 
    lax x
    axs #-[$a]
    stx textbox.y2
    // [9] (byte) textbox::x1#0 ← (byte) main::x#2
    // [10] (byte) textbox::y1#0 ← (byte) main::x#2 -- vbuz1=vbuz2 
    lda x
    sta textbox.y1
    // [11] call textbox 
    // [24] phi from main::@1 to textbox [phi:main::@1->textbox]
  textbox_from_b1:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text2#0 [phi:main::@1->textbox#0] -- pbuz1=pbuc1 
    lda #<text2
    sta textbox.text
    lda #>text2
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) textbox::y2#0 [phi:main::@1->textbox#1] -- register_copy 
    // [24] phi (byte) textbox::x2#4 = (byte) textbox::x2#0 [phi:main::@1->textbox#2] -- register_copy 
    // [24] phi (byte) textbox::y1#4 = (byte) textbox::y1#0 [phi:main::@1->textbox#3] -- register_copy 
    // [24] phi (byte) textbox::x1#4 = (byte) textbox::x1#0 [phi:main::@1->textbox#4] -- register_copy 
    jsr textbox
    // [12] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
  b2_from_b1:
    // [12] phi (word) main::wait#2 = (byte) 0 [phi:main::@1->main::@2#0] -- vwuz1=vbuc1 
    lda #<0
    sta wait
    lda #>0
    sta wait+1
    jmp b2
    // [12] phi from main::@2 to main::@2 [phi:main::@2->main::@2]
  b2_from_b2:
    // [12] phi (word) main::wait#2 = (word) main::wait#1 [phi:main::@2->main::@2#0] -- register_copy 
    jmp b2
    // main::@2
  b2:
    // [13] (word) main::wait#1 ← ++ (word) main::wait#2 -- vwuz1=_inc_vwuz1 
    inc wait
    bne !+
    inc wait+1
  !:
    // [14] if((word) main::wait#1<(word) $88b8) goto main::@2 -- vwuz1_lt_vwuc1_then_la1 
    lda wait+1
    cmp #>$88b8
    bcc b2_from_b2
    bne !+
    lda wait
    cmp #<$88b8
    bcc b2_from_b2
  !:
    jmp b3
    // main::@3
  b3:
    // [15] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2 -- vbuz1=vbuz1_plus_2 
    lda x
    clc
    adc #2
    sta x
    // [16] if((byte) main::x#1<(byte) $f) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 
    lda x
    cmp #$f
    bcc b1_from_b3
    // [17] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
  b4_from_b3:
    jmp b4
    // main::@4
  b4:
    // [18] call textbox 
    // [24] phi from main::@4 to textbox [phi:main::@4->textbox]
  textbox_from_b4:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@4->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta textbox.text
    lda #>text
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) $18 [phi:main::@4->textbox#1] -- vbuz1=vbuc1 
    lda #$18
    sta textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $14 [phi:main::@4->textbox#2] -- vbuz1=vbuc1 
    lda #$14
    sta textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) $c [phi:main::@4->textbox#3] -- vbuz1=vbuc1 
    lda #$c
    sta textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) 0 [phi:main::@4->textbox#4] -- vbuz1=vbuc1 
    lda #0
    sta textbox.x1
    jsr textbox
    // [19] phi from main::@4 to main::@6 [phi:main::@4->main::@6]
  b6_from_b4:
    jmp b6
    // main::@6
  b6:
    // [20] call textbox 
    // [24] phi from main::@6 to textbox [phi:main::@6->textbox]
  textbox_from_b6:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@6->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta textbox.text
    lda #>text
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) 9 [phi:main::@6->textbox#1] -- vbuz1=vbuc1 
    lda #9
    sta textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $25 [phi:main::@6->textbox#2] -- vbuz1=vbuc1 
    lda #$25
    sta textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) 3 [phi:main::@6->textbox#3] -- vbuz1=vbuc1 
    lda #3
    sta textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) 3 [phi:main::@6->textbox#4] -- vbuz1=vbuc1 
    lda #3
    sta textbox.x1
    jsr textbox
    // [21] phi from main::@6 to main::@7 [phi:main::@6->main::@7]
  b7_from_b6:
    jmp b7
    // main::@7
  b7:
    // [22] call textbox 
    // [24] phi from main::@7 to textbox [phi:main::@7->textbox]
  textbox_from_b7:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@7->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta textbox.text
    lda #>text
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) $18 [phi:main::@7->textbox#1] -- vbuz1=vbuc1 
    lda #$18
    sta textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $27 [phi:main::@7->textbox#2] -- vbuz1=vbuc1 
    lda #$27
    sta textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) 8 [phi:main::@7->textbox#3] -- vbuz1=vbuc1 
    lda #8
    sta textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) $1e [phi:main::@7->textbox#4] -- vbuz1=vbuc1 
    lda #$1e
    sta textbox.x1
    jsr textbox
    // [23] phi from main::@5 main::@7 to main::@5 [phi:main::@5/main::@7->main::@5]
  b5_from_b5:
  b5_from_b7:
    jmp b5
    // main::@5
  b5:
    jmp b5_from_b5
}
  // textbox
// textbox(byte zeropage(2) x1, byte zeropage(5) y1, byte zeropage(6) x2, byte zeropage(7) y2, byte* zeropage(8) text)
textbox: {
    .label _8 = $f
    .label _17 = $11
    .label x1 = 2
    .label y1 = 5
    .label x2 = 6
    .label y2 = 7
    .label y = 5
    .label x = $b
    .label z = $c
    .label i = $a
    .label text = 8
    .label _31 = $f
    // [25] (byte) draw_window::x1#0 ← (byte) textbox::x1#4
    // [26] (byte) draw_window::y1#0 ← (byte) textbox::y1#4
    // [27] (byte) draw_window::x2#0 ← (byte) textbox::x2#4
    // [28] (byte) draw_window::y2#0 ← (byte) textbox::y2#4
    // [29] call draw_window 
    jsr draw_window
    jmp b12
    // textbox::@12
  b12:
    // [30] (byte) textbox::y#0 ← (byte) textbox::y1#4 + (byte) 1 -- vbuz1=vbuz1_plus_1 
    inc y
    // [31] (byte) textbox::x#0 ← (byte) textbox::x1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy x1
    iny
    sty x
    // [32] (byte) textbox::$32 ← (byte) textbox::y#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y
    asl
    asl
    // [33] (byte) textbox::$33 ← (byte) textbox::$32 + (byte) textbox::y#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y
    // [34] (word) textbox::z#0 ← (byte) textbox::$33 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // [35] if((byte) textbox::x#0==(byte) textbox::x2#4) goto textbox::@return -- vbuz1_eq_vbuz2_then_la1 
    lda x
    cmp x2
    beq breturn
    jmp b13
    // textbox::@13
  b13:
    // [36] if((byte) textbox::y#0==(byte) textbox::y2#4) goto textbox::@return -- vbuz1_eq_vbuz2_then_la1 
    lda y
    cmp y2
    beq breturn
    // [37] phi from textbox::@13 to textbox::@1 [phi:textbox::@13->textbox::@1]
  b1_from_b13:
    // [37] phi (byte) textbox::y#12 = (byte) textbox::y#0 [phi:textbox::@13->textbox::@1#0] -- register_copy 
    // [37] phi (byte) textbox::i#2 = (byte) 0 [phi:textbox::@13->textbox::@1#1] -- vbuz1=vbuc1 
    lda #0
    sta i
    // [37] phi (byte) textbox::x#10 = (byte) textbox::x#0 [phi:textbox::@13->textbox::@1#2] -- register_copy 
    // [37] phi (word) textbox::z#3 = (word) textbox::z#0 [phi:textbox::@13->textbox::@1#3] -- register_copy 
    jmp b1
    // [37] phi from textbox::@8 to textbox::@1 [phi:textbox::@8->textbox::@1]
  b1_from_b8:
    // [37] phi (byte) textbox::y#12 = (byte) textbox::y#11 [phi:textbox::@8->textbox::@1#0] -- register_copy 
    // [37] phi (byte) textbox::i#2 = (byte) textbox::i#1 [phi:textbox::@8->textbox::@1#1] -- register_copy 
    // [37] phi (byte) textbox::x#10 = (byte) textbox::x#7 [phi:textbox::@8->textbox::@1#2] -- register_copy 
    // [37] phi (word) textbox::z#3 = (word) textbox::z#4 [phi:textbox::@8->textbox::@1#3] -- register_copy 
    jmp b1
    // textbox::@1
  b1:
    // [38] (word~) textbox::$8 ← (word) textbox::z#3 + (byte) textbox::x#10 -- vwuz1=vwuz2_plus_vbuz3 
    lda x
    clc
    adc z
    sta _8
    lda #0
    adc z+1
    sta _8+1
    // [39] (byte*~) textbox::$31 ← (const byte*) screen#0 + (word~) textbox::$8 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _31
    adc #<screen
    sta _31
    lda _31+1
    adc #>screen
    sta _31+1
    // [40] *((byte*~) textbox::$31) ← *((byte*) textbox::text#12 + (byte) textbox::i#2) -- _deref_pbuz1=pbuz2_derefidx_vbuz3 
    ldy i
    lda (text),y
    ldy #0
    sta (_31),y
    // [41] if(*((byte*) textbox::text#12 + (byte) textbox::i#2)!=(byte) $20) goto textbox::@2 -- pbuz1_derefidx_vbuz2_neq_vbuc1_then_la1 
    ldy i
    lda (text),y
    cmp #$20
    bne b2_from_b1
    jmp b10
    // textbox::@10
  b10:
    // [42] (byte) textbox::ls#0 ← (byte) textbox::i#2 + (byte) 1 -- vbuyy=vbuz1_plus_1 
    ldy i
    iny
    // [43] phi from textbox::@10 to textbox::@3 [phi:textbox::@10->textbox::@3]
  b3_from_b10:
    // [43] phi (byte) textbox::c#2 = (byte) 0 [phi:textbox::@10->textbox::@3#0] -- vbuxx=vbuc1 
    ldx #0
    // [43] phi (byte) textbox::ls#2 = (byte) textbox::ls#0 [phi:textbox::@10->textbox::@3#1] -- register_copy 
    jmp b3
    // textbox::@3
  b3:
    // [44] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@5 -- pbuz1_derefidx_vbuyy_eq_vbuc1_then_la1 
    lda (text),y
    cmp #$20
    beq b5
    jmp b14
    // textbox::@14
  b14:
    // [45] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) 0) goto textbox::@4 -- pbuz1_derefidx_vbuyy_neq_0_then_la1 
    lda (text),y
    cmp #0
    bne b4
    jmp b5
    // textbox::@5
  b5:
    // [46] (byte~) textbox::$15 ← (byte) textbox::c#2 + (byte) textbox::x#10 -- vbuyy=vbuxx_plus_vbuz1 
    txa
    clc
    adc x
    tay
    // [47] (byte~) textbox::$17 ← (byte) textbox::x2#4 - (byte) textbox::x1#4 -- vbuz1=vbuz2_minus_vbuz3 
    lda x2
    sec
    sbc x1
    sta _17
    // [48] if((byte~) textbox::$15<(byte) textbox::x2#4) goto textbox::@2 -- vbuyy_lt_vbuz1_then_la1 
    cpy x2
    bcc b2_from_b5
    jmp b15
    // textbox::@15
  b15:
    // [49] if((byte) textbox::c#2<(byte~) textbox::$17) goto textbox::@6 -- vbuxx_lt_vbuz1_then_la1 
    cpx _17
    bcc b6
    // [50] phi from textbox::@15 to textbox::@2 [phi:textbox::@15->textbox::@2]
  b2_from_b15:
    jmp b2
    // [50] phi from textbox::@1 textbox::@5 textbox::@7 to textbox::@2 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2]
  b2_from_b1:
  b2_from_b5:
  b2_from_b7:
    // [50] phi (word) textbox::z#5 = (word) textbox::z#3 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#0] -- register_copy 
    // [50] phi (byte) textbox::y#5 = (byte) textbox::y#12 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#1] -- register_copy 
    // [50] phi (byte) textbox::x#5 = (byte) textbox::x#10 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#2] -- register_copy 
    jmp b2
    // textbox::@2
  b2:
    // [51] (byte) textbox::i#1 ← ++ (byte) textbox::i#2 -- vbuz1=_inc_vbuz1 
    inc i
    // [52] (byte) textbox::x#1 ← ++ (byte) textbox::x#5 -- vbuz1=_inc_vbuz1 
    inc x
    // [53] if((byte) textbox::x#1!=(byte) textbox::x2#4) goto textbox::@8 -- vbuz1_neq_vbuz2_then_la1 
    lda x
    cmp x2
    bne b8_from_b2
    jmp b11
    // textbox::@11
  b11:
    // [54] (byte) textbox::x#12 ← (byte) textbox::x1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy x1
    iny
    sty x
    // [55] (byte) textbox::y#2 ← ++ (byte) textbox::y#5 -- vbuz1=_inc_vbuz1 
    inc y
    // [56] if((byte) textbox::y#2!=(byte) textbox::y2#4) goto textbox::@9 -- vbuz1_neq_vbuz2_then_la1 
    lda y
    cmp y2
    bne b9
    jmp breturn
    // textbox::@return
  breturn:
    // [57] return 
    rts
    // textbox::@9
  b9:
    // [58] (byte) textbox::$38 ← (byte) textbox::y#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y
    asl
    asl
    // [59] (byte) textbox::$39 ← (byte) textbox::$38 + (byte) textbox::y#2 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y
    // [60] (word) textbox::z#2 ← (byte) textbox::$39 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // [61] phi from textbox::@2 textbox::@9 to textbox::@8 [phi:textbox::@2/textbox::@9->textbox::@8]
  b8_from_b2:
  b8_from_b9:
    // [61] phi (byte) textbox::y#11 = (byte) textbox::y#5 [phi:textbox::@2/textbox::@9->textbox::@8#0] -- register_copy 
    // [61] phi (byte) textbox::x#7 = (byte) textbox::x#1 [phi:textbox::@2/textbox::@9->textbox::@8#1] -- register_copy 
    // [61] phi (word) textbox::z#4 = (word) textbox::z#5 [phi:textbox::@2/textbox::@9->textbox::@8#2] -- register_copy 
    jmp b8
    // textbox::@8
  b8:
    // [62] if(*((byte*) textbox::text#12 + (byte) textbox::i#1)!=(byte) 0) goto textbox::@1 -- pbuz1_derefidx_vbuz2_neq_0_then_la1 
    ldy i
    lda (text),y
    cmp #0
    bne b1_from_b8
    jmp breturn
    // textbox::@6
  b6:
    // [63] (byte) textbox::y#1 ← ++ (byte) textbox::y#12 -- vbuz1=_inc_vbuz1 
    inc y
    // [64] if((byte) textbox::y#1!=(byte) textbox::y2#4) goto textbox::@7 -- vbuz1_neq_vbuz2_then_la1 
    lda y
    cmp y2
    bne b7
    jmp breturn
    // textbox::@7
  b7:
    // [65] (byte) textbox::$35 ← (byte) textbox::y#1 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y
    asl
    asl
    // [66] (byte) textbox::$36 ← (byte) textbox::$35 + (byte) textbox::y#1 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y
    // [67] (word) textbox::z#1 ← (byte) textbox::$36 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // [68] (byte~) textbox::x#15 ← (byte) textbox::x1#4 -- vbuz1=vbuz2 
    lda x1
    sta x
    jmp b2_from_b7
    // textbox::@4
  b4:
    // [69] (byte) textbox::ls#1 ← ++ (byte) textbox::ls#2 -- vbuyy=_inc_vbuyy 
    iny
    // [70] (byte) textbox::c#1 ← ++ (byte) textbox::c#2 -- vbuxx=_inc_vbuxx 
    inx
    // [43] phi from textbox::@4 to textbox::@3 [phi:textbox::@4->textbox::@3]
  b3_from_b4:
    // [43] phi (byte) textbox::c#2 = (byte) textbox::c#1 [phi:textbox::@4->textbox::@3#0] -- register_copy 
    // [43] phi (byte) textbox::ls#2 = (byte) textbox::ls#1 [phi:textbox::@4->textbox::@3#1] -- register_copy 
    jmp b3
}
  // draw_window
// draw_window(byte zeropage(2) x1, byte zeropage(5) y1, byte zeropage(6) x2, byte zeropage(7) y2)
draw_window: {
    .label _2 = $1a
    .label _3 = $12
    .label _4 = $20
    .label _5 = $14
    .label _13 = $16
    .label _14 = $18
    .label _18 = $1e
    .label _19 = $1c
    .label _24 = $24
    .label x1 = 2
    .label y1 = 5
    .label x2 = 6
    .label y2 = 7
    .label z = $12
    .label q = $14
    .label z_1 = $1c
    .label y3 = $e
    .label z_2 = $22
    .label _27 = $16
    .label _28 = $18
    .label _29 = $1a
    .label _30 = $12
    .label _31 = $1e
    .label _32 = $1c
    .label _33 = $20
    .label _34 = $14
    .label _35 = $24
    // [71] (byte) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y1
    asl
    asl
    // [72] (byte) draw_window::$37 ← (byte) draw_window::$36 + (byte) draw_window::y1#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y1
    // [73] (word) draw_window::z#0 ← (byte) draw_window::$37 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // [74] (byte) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y2
    asl
    asl
    // [75] (byte) draw_window::$40 ← (byte) draw_window::$39 + (byte) draw_window::y2#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y2
    // [76] (word) draw_window::q#0 ← (byte) draw_window::$40 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta q
    lda #0
    sta q+1
    asl q
    rol q+1
    asl q
    rol q+1
    asl q
    rol q+1
    // [77] (byte) draw_window::x#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx x1
    inx
    // [78] phi from draw_window draw_window::@1 to draw_window::@1 [phi:draw_window/draw_window::@1->draw_window::@1]
  b1_from_draw_window:
  b1_from_b1:
    // [78] phi (byte) draw_window::x#2 = (byte) draw_window::x#0 [phi:draw_window/draw_window::@1->draw_window::@1#0] -- register_copy 
    jmp b1
  // draw horizontal lines
    // draw_window::@1
  b1:
    // [79] (word~) draw_window::$13 ← (word) draw_window::z#0 + (byte) draw_window::x#2 -- vwuz1=vwuz2_plus_vbuxx 
    txa
    clc
    adc z
    sta _13
    lda #0
    adc z+1
    sta _13+1
    // [80] (byte*~) draw_window::$27 ← (const byte*) screen#0 + (word~) draw_window::$13 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _27
    adc #<screen
    sta _27
    lda _27+1
    adc #>screen
    sta _27+1
    // [81] *((byte*~) draw_window::$27) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (_27),y
    // [82] (word~) draw_window::$14 ← (word) draw_window::q#0 + (byte) draw_window::x#2 -- vwuz1=vwuz2_plus_vbuxx 
    txa
    clc
    adc q
    sta _14
    lda #0
    adc q+1
    sta _14+1
    // [83] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$14 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _28
    adc #<screen
    sta _28
    lda _28+1
    adc #>screen
    sta _28+1
    // [84] *((byte*~) draw_window::$28) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (_28),y
    // [85] (byte) draw_window::x#1 ← ++ (byte) draw_window::x#2 -- vbuxx=_inc_vbuxx 
    inx
    // [86] if((byte) draw_window::x#1<(byte) draw_window::x2#0) goto draw_window::@1 -- vbuxx_lt_vbuz1_then_la1 
    cpx x2
    bcc b1_from_b1
    jmp b2
    // draw_window::@2
  b2:
    // [87] (word~) draw_window::$2 ← (word) draw_window::z#0 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x1
    clc
    adc z
    sta _2
    lda #0
    adc z+1
    sta _2+1
    // [88] (byte*~) draw_window::$29 ← (const byte*) screen#0 + (word~) draw_window::$2 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _29
    adc #<screen
    sta _29
    lda _29+1
    adc #>screen
    sta _29+1
    // [89] *((byte*~) draw_window::$29) ← (byte) $55 -- _deref_pbuz1=vbuc1 
    // draw upper corners
    lda #$55
    ldy #0
    sta (_29),y
    // [90] (word~) draw_window::$3 ← (word) draw_window::z#0 + (byte) draw_window::x2#0 -- vwuz1=vwuz1_plus_vbuz2 
    lda x2
    clc
    adc _3
    sta _3
    bcc !+
    inc _3+1
  !:
    // [91] (byte*~) draw_window::$30 ← (const byte*) screen#0 + (word~) draw_window::$3 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _30
    adc #<screen
    sta _30
    lda _30+1
    adc #>screen
    sta _30+1
    // [92] *((byte*~) draw_window::$30) ← (byte) $49 -- _deref_pbuz1=vbuc1 
    lda #$49
    ldy #0
    sta (_30),y
    // [93] (byte) draw_window::y#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx y1
    inx
    // [94] phi from draw_window::@2 draw_window::@3 to draw_window::@3 [phi:draw_window::@2/draw_window::@3->draw_window::@3]
  b3_from_b2:
  b3_from_b3:
    // [94] phi (byte) draw_window::y#2 = (byte) draw_window::y#0 [phi:draw_window::@2/draw_window::@3->draw_window::@3#0] -- register_copy 
    jmp b3
  // draw vertical lines
    // draw_window::@3
  b3:
    // [95] (byte) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 
    txa
    asl
    asl
    // [96] (byte) draw_window::$43 ← (byte) draw_window::$42 + (byte) draw_window::y#2 -- vbuaa=vbuaa_plus_vbuxx 
    stx $ff
    clc
    adc $ff
    // [97] (word) draw_window::z#1 ← (byte) draw_window::$43 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z_1
    lda #0
    sta z_1+1
    asl z_1
    rol z_1+1
    asl z_1
    rol z_1+1
    asl z_1
    rol z_1+1
    // [98] (word~) draw_window::$18 ← (word) draw_window::z#1 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x1
    clc
    adc z_1
    sta _18
    lda #0
    adc z_1+1
    sta _18+1
    // [99] (byte*~) draw_window::$31 ← (const byte*) screen#0 + (word~) draw_window::$18 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _31
    adc #<screen
    sta _31
    lda _31+1
    adc #>screen
    sta _31+1
    // [100] *((byte*~) draw_window::$31) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (_31),y
    // [101] (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x2#0 -- vwuz1=vwuz1_plus_vbuz2 
    lda x2
    clc
    adc _19
    sta _19
    bcc !+
    inc _19+1
  !:
    // [102] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$19 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _32
    adc #<screen
    sta _32
    lda _32+1
    adc #>screen
    sta _32+1
    // [103] *((byte*~) draw_window::$32) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (_32),y
    // [104] (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2 -- vbuxx=_inc_vbuxx 
    inx
    // [105] if((byte) draw_window::y#1<(byte) draw_window::y2#0) goto draw_window::@3 -- vbuxx_lt_vbuz1_then_la1 
    cpx y2
    bcc b3_from_b3
    jmp b4
    // draw_window::@4
  b4:
    // [106] (word~) draw_window::$4 ← (word) draw_window::q#0 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x1
    clc
    adc q
    sta _4
    lda #0
    adc q+1
    sta _4+1
    // [107] (byte*~) draw_window::$33 ← (const byte*) screen#0 + (word~) draw_window::$4 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _33
    adc #<screen
    sta _33
    lda _33+1
    adc #>screen
    sta _33+1
    // [108] *((byte*~) draw_window::$33) ← (byte) $4a -- _deref_pbuz1=vbuc1 
    // draw lower corners
    lda #$4a
    ldy #0
    sta (_33),y
    // [109] (word~) draw_window::$5 ← (word) draw_window::q#0 + (byte) draw_window::x2#0 -- vwuz1=vwuz1_plus_vbuz2 
    lda x2
    clc
    adc _5
    sta _5
    bcc !+
    inc _5+1
  !:
    // [110] (byte*~) draw_window::$34 ← (const byte*) screen#0 + (word~) draw_window::$5 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _34
    adc #<screen
    sta _34
    lda _34+1
    adc #>screen
    sta _34+1
    // [111] *((byte*~) draw_window::$34) ← (byte) $4b -- _deref_pbuz1=vbuc1 
    lda #$4b
    ldy #0
    sta (_34),y
    // [112] (byte~) draw_window::$6 ← (byte) draw_window::x2#0 - (byte) draw_window::x1#0 -- vbuxx=vbuz1_minus_vbuz2 
    lda x2
    sec
    sbc x1
    tax
    // [113] (byte~) draw_window::$8 ← (byte) draw_window::y2#0 - (byte) draw_window::y1#0 -- vbuaa=vbuz1_minus_vbuz2 
    lda y2
    sec
    sbc y1
    // [114] if((byte~) draw_window::$6<(byte) 1+(byte) 1) goto draw_window::@return -- vbuxx_lt_vbuc1_then_la1 
    cpx #1+1
    bcc breturn
    jmp b9
    // draw_window::@9
  b9:
    // [115] if((byte~) draw_window::$8>=(byte) 1+(byte) 1) goto draw_window::@5 -- vbuaa_ge_vbuc1_then_la1 
    cmp #1+1
    bcs b5
    jmp breturn
    // draw_window::@return
  breturn:
    // [116] return 
    rts
    // draw_window::@5
  b5:
    // [117] (byte) draw_window::y3#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy y1
    iny
    sty y3
    // [118] phi from draw_window::@5 draw_window::@8 to draw_window::@6 [phi:draw_window::@5/draw_window::@8->draw_window::@6]
  b6_from_b5:
  b6_from_b8:
    // [118] phi (byte) draw_window::y3#2 = (byte) draw_window::y3#0 [phi:draw_window::@5/draw_window::@8->draw_window::@6#0] -- register_copy 
    jmp b6
  // blank inside
    // draw_window::@6
  b6:
    // [119] (byte) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y3
    asl
    asl
    // [120] (byte) draw_window::$46 ← (byte) draw_window::$45 + (byte) draw_window::y3#2 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y3
    // [121] (word) draw_window::z#2 ← (byte) draw_window::$46 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z_2
    lda #0
    sta z_2+1
    asl z_2
    rol z_2+1
    asl z_2
    rol z_2+1
    asl z_2
    rol z_2+1
    // [122] (byte) draw_window::x3#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx x1
    inx
    // [123] phi from draw_window::@6 draw_window::@7 to draw_window::@7 [phi:draw_window::@6/draw_window::@7->draw_window::@7]
  b7_from_b6:
  b7_from_b7:
    // [123] phi (byte) draw_window::x3#2 = (byte) draw_window::x3#0 [phi:draw_window::@6/draw_window::@7->draw_window::@7#0] -- register_copy 
    jmp b7
    // draw_window::@7
  b7:
    // [124] (word~) draw_window::$24 ← (word) draw_window::z#2 + (byte) draw_window::x3#2 -- vwuz1=vwuz2_plus_vbuxx 
    txa
    clc
    adc z_2
    sta _24
    lda #0
    adc z_2+1
    sta _24+1
    // [125] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$24 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _35
    adc #<screen
    sta _35
    lda _35+1
    adc #>screen
    sta _35+1
    // [126] *((byte*~) draw_window::$35) ← (byte) $20 -- _deref_pbuz1=vbuc1 
    lda #$20
    ldy #0
    sta (_35),y
    // [127] (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2 -- vbuxx=_inc_vbuxx 
    inx
    // [128] if((byte) draw_window::x3#1<(byte) draw_window::x2#0) goto draw_window::@7 -- vbuxx_lt_vbuz1_then_la1 
    cpx x2
    bcc b7_from_b7
    jmp b8
    // draw_window::@8
  b8:
    // [129] (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#2 -- vbuz1=_inc_vbuz1 
    inc y3
    // [130] if((byte) draw_window::y3#1<(byte) draw_window::y2#0) goto draw_window::@6 -- vbuz1_lt_vbuz2_then_la1 
    lda y3
    cmp y2
    bcc b6_from_b8
    jmp breturn
}
  // File Data
  text: .text "this is a small test with word wrap, if a word is too long it moves it to the next line. isn't that supercalifragilisticexpialidocious? i think it's cool!@"
  text2: .text "textbox by scan of desire@"

ASSEMBLER OPTIMIZATIONS
Removing instruction jmp b1
Removing instruction jmp bend
Removing instruction jmp b1
Removing instruction jmp b2
Removing instruction jmp b3
Removing instruction jmp b4
Removing instruction jmp b6
Removing instruction jmp b7
Removing instruction jmp b5
Removing instruction jmp b12
Removing instruction jmp b13
Removing instruction jmp b1
Removing instruction jmp b10
Removing instruction jmp b3
Removing instruction jmp b14
Removing instruction jmp b5
Removing instruction jmp b15
Removing instruction jmp b2
Removing instruction jmp b11
Removing instruction jmp breturn
Removing instruction jmp b8
Removing instruction jmp b1
Removing instruction jmp b2
Removing instruction jmp b3
Removing instruction jmp b4
Removing instruction jmp b9
Removing instruction jmp breturn
Removing instruction jmp b6
Removing instruction jmp b7
Removing instruction jmp b8
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction lda #>0
Removing instruction lda x
Removing instruction lda #3
Replacing instruction lda x with TYA
Replacing instruction lda #0 with TYA
Removing instruction ldy #0
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Replacing label b2_from_b2 with b2
Replacing label b2_from_b2 with b2
Replacing label b1_from_b3 with b1
Replacing label b5_from_b5 with b5
Replacing label b2_from_b1 with b2
Replacing label b2_from_b5 with b2
Replacing label b8_from_b2 with b8
Replacing label b1_from_b8 with b1
Replacing label b2_from_b7 with b2
Replacing label b7_from_b7 with b7
Removing instruction b1_from_bbegin:
Removing instruction b1:
Removing instruction main_from_b1:
Removing instruction bend_from_b1:
Removing instruction b1_from_b3:
Removing instruction b2_from_b2:
Removing instruction b4_from_b3:
Removing instruction textbox_from_b4:
Removing instruction b6_from_b4:
Removing instruction textbox_from_b6:
Removing instruction b7_from_b6:
Removing instruction textbox_from_b7:
Removing instruction b5_from_b5:
Removing instruction b5_from_b7:
Removing instruction b1_from_b8:
Removing instruction b2_from_b1:
Removing instruction b2_from_b5:
Removing instruction b2_from_b7:
Removing instruction b8_from_b2:
Removing instruction b8_from_b9:
Removing instruction b1_from_draw_window:
Removing instruction b3_from_b2:
Removing instruction b6_from_b5:
Removing instruction b7_from_b6:
Removing instruction b7_from_b7:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction bend:
Removing instruction b1_from_main:
Removing instruction textbox_from_b1:
Removing instruction b2_from_b1:
Removing instruction b3:
Removing instruction b4:
Removing instruction b6:
Removing instruction b7:
Removing instruction b12:
Removing instruction b13:
Removing instruction b1_from_b13:
Removing instruction b10:
Removing instruction b3_from_b10:
Removing instruction b14:
Removing instruction b15:
Removing instruction b2_from_b15:
Removing instruction b11:
Removing instruction b3_from_b4:
Removing instruction b1:
Removing instruction b2:
Removing instruction b3:
Removing instruction b4:
Removing instruction b9:
Removing instruction b6:
Removing instruction b8:
Succesful ASM optimization Pass5UnusedLabelElimination
Updating BasicUpstart to call main directly
Removing instruction jsr main
Succesful ASM optimization Pass5SkipBegin
Replacing jump to rts with rts in jmp breturn
Replacing jump to rts with rts in jmp breturn
Replacing jump to rts with rts in jmp breturn
Succesful ASM optimization Pass5DoubleJumpElimination
Relabelling long label b1_from_b1 to b1
Relabelling long label b3_from_b3 to b2
Relabelling long label b6_from_b8 to b3
Succesful ASM optimization Pass5RelabelLongLabels
Removing instruction jmp b1
Removing instruction jmp b2
Removing instruction jmp b1
Removing instruction jmp b2
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction ldy i
Replacing instruction lda #0 with TYA
Removing instruction ldy #0
Replacing instruction lda #0 with TYA
Removing instruction ldy #0
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Removing instruction bbegin:
Succesful ASM optimization Pass5UnusedLabelElimination
Fixing long branch [209] bne b1 to beq

FINAL SYMBOL TABLE
(label) @1
(label) @begin
(label) @end
(void()) draw_window((byte) draw_window::x1 , (byte) draw_window::y1 , (byte) draw_window::x2 , (byte) draw_window::y2)
(word~) draw_window::$13 $13 zp ZP_WORD:22 202.0
(word~) draw_window::$14 $14 zp ZP_WORD:24 202.0
(word~) draw_window::$18 $18 zp ZP_WORD:30 202.0
(word~) draw_window::$19 $19 zp ZP_WORD:28 202.0
(word~) draw_window::$2 $2 zp ZP_WORD:26 4.0
(word~) draw_window::$24 $24 zp ZP_WORD:36 2002.0
(byte*~) draw_window::$27 $27 zp ZP_WORD:22 202.0
(byte*~) draw_window::$28 $28 zp ZP_WORD:24 202.0
(byte*~) draw_window::$29 $29 zp ZP_WORD:26 4.0
(word~) draw_window::$3 $3 zp ZP_WORD:18 4.0
(byte*~) draw_window::$30 $30 zp ZP_WORD:18 4.0
(byte*~) draw_window::$31 $31 zp ZP_WORD:30 202.0
(byte*~) draw_window::$32 $32 zp ZP_WORD:28 202.0
(byte*~) draw_window::$33 $33 zp ZP_WORD:32 4.0
(byte*~) draw_window::$34 $34 zp ZP_WORD:20 4.0
(byte*~) draw_window::$35 $35 zp ZP_WORD:36 2002.0
(byte) draw_window::$36 reg byte a 4.0
(byte) draw_window::$37 reg byte a 4.0
(byte) draw_window::$39 reg byte a 4.0
(word~) draw_window::$4 $4 zp ZP_WORD:32 4.0
(byte) draw_window::$40 reg byte a 4.0
(byte) draw_window::$42 reg byte a 202.0
(byte) draw_window::$43 reg byte a 202.0
(byte) draw_window::$45 reg byte a 202.0
(byte) draw_window::$46 reg byte a 202.0
(word~) draw_window::$5 $5 zp ZP_WORD:20 4.0
(byte~) draw_window::$6 reg byte x 2.0
(byte~) draw_window::$8 reg byte a 2.0
(label) draw_window::@1
(label) draw_window::@2
(label) draw_window::@3
(label) draw_window::@4
(label) draw_window::@5
(label) draw_window::@6
(label) draw_window::@7
(label) draw_window::@8
(label) draw_window::@9
(label) draw_window::@return
(word) draw_window::q
(word) draw_window::q#0 q zp ZP_WORD:20 3.242424242424242
(byte) draw_window::x
(byte) draw_window::x#0 reg byte x 4.0
(byte) draw_window::x#1 reg byte x 151.5
(byte) draw_window::x#2 reg byte x 58.00000000000001
(byte) draw_window::x1
(byte) draw_window::x1#0 x1 zp ZP_BYTE:2 3.365079365079365
(byte) draw_window::x2
(byte) draw_window::x2#0 x2 zp ZP_BYTE:6 19.852459016393443
(byte) draw_window::x3
(byte) draw_window::x3#0 reg byte x 202.0
(byte) draw_window::x3#1 reg byte x 1501.5
(byte) draw_window::x3#2 reg byte x 776.0
(byte) draw_window::y
(byte) draw_window::y#0 reg byte x 4.0
(byte) draw_window::y#1 reg byte x 151.5
(byte) draw_window::y#2 reg byte x 40.6
(byte) draw_window::y1
(byte) draw_window::y1#0 y1 zp ZP_BYTE:5 0.24999999999999997
(byte) draw_window::y2
(byte) draw_window::y2#0 y2 zp ZP_BYTE:7 3.5
(byte) draw_window::y3
(byte) draw_window::y3#0 y3 zp ZP_BYTE:14 4.0
(byte) draw_window::y3#1 y3 zp ZP_BYTE:14 151.5
(byte) draw_window::y3#2 y3 zp ZP_BYTE:14 36.90909090909091
(word) draw_window::z
(word) draw_window::z#0 z zp ZP_WORD:18 6.2941176470588225
(word) draw_window::z#1 z#1 zp ZP_WORD:28 75.75
(word) draw_window::z#2 z#2 zp ZP_WORD:34 137.75
(void()) main()
(byte~) main::$3 reg byte a 22.0
(label) main::@1
(label) main::@2
(label) main::@3
(label) main::@4
(label) main::@5
(label) main::@6
(label) main::@7
(word) main::wait
(word) main::wait#1 wait zp ZP_WORD:3 151.5
(word) main::wait#2 wait zp ZP_WORD:3 202.0
(byte) main::x
(byte) main::x#1 x zp ZP_BYTE:2 16.5
(byte) main::x#2 x zp ZP_BYTE:2 7.699999999999999
(byte*) screen
(const byte*) screen#0 screen = (byte*) 1024
(byte[]) text
(const byte[]) text#0 text = (string) "this is a small test with word wrap, if a word is too long it moves it to the next line. isn't that supercalifragilisticexpialidocious? i think it's cool!@"
(byte[]) text2
(const byte[]) text2#0 text2 = (string) "textbox by scan of desire@"
(void()) textbox((byte) textbox::x1 , (byte) textbox::y1 , (byte) textbox::x2 , (byte) textbox::y2 , (byte*) textbox::text)
(byte~) textbox::$15 reg byte y 101.0
(byte~) textbox::$17 $17 zp ZP_BYTE:17 101.0
(byte*~) textbox::$31 $31 zp ZP_WORD:15 202.0
(byte) textbox::$32 reg byte a 4.0
(byte) textbox::$33 reg byte a 4.0
(byte) textbox::$35 reg byte a 202.0
(byte) textbox::$36 reg byte a 202.0
(byte) textbox::$38 reg byte a 202.0
(byte) textbox::$39 reg byte a 202.0
(word~) textbox::$8 $8 zp ZP_WORD:15 202.0
(label) textbox::@1
(label) textbox::@10
(label) textbox::@11
(label) textbox::@12
(label) textbox::@13
(label) textbox::@14
(label) textbox::@15
(label) textbox::@2
(label) textbox::@3
(label) textbox::@4
(label) textbox::@5
(label) textbox::@6
(label) textbox::@7
(label) textbox::@8
(label) textbox::@9
(label) textbox::@return
(byte) textbox::c
(byte) textbox::c#1 reg byte x 2002.0
(byte) textbox::c#2 reg byte x 314.85714285714283
(byte) textbox::i
(byte) textbox::i#1 i zp ZP_BYTE:10 27.545454545454547
(byte) textbox::i#2 i zp ZP_BYTE:10 22.954545454545453
(byte) textbox::ls
(byte) textbox::ls#0 reg byte y 202.0
(byte) textbox::ls#1 reg byte y 1001.0
(byte) textbox::ls#2 reg byte y 1368.3333333333335
(byte*) textbox::text
(byte*) textbox::text#12 text zp ZP_WORD:8 50.108695652173914
(byte) textbox::x
(byte) textbox::x#0 x zp ZP_BYTE:11 1.0
(byte) textbox::x#1 x zp ZP_BYTE:11 151.5
(byte) textbox::x#10 x zp ZP_BYTE:11 36.214285714285715
(byte) textbox::x#12 x zp ZP_BYTE:11 33.666666666666664
(byte~) textbox::x#15 x zp ZP_BYTE:11 202.0
(byte) textbox::x#5 x zp ZP_BYTE:11 202.0
(byte) textbox::x#7 x zp ZP_BYTE:11 151.5
(byte) textbox::x1
(byte) textbox::x1#0 x1 zp ZP_BYTE:2 11.0
(byte) textbox::x1#4 x1 zp ZP_BYTE:2 6.913043478260869
(byte) textbox::x2
(byte) textbox::x2#0 x2 zp ZP_BYTE:6 5.5
(byte) textbox::x2#4 x2 zp ZP_BYTE:6 6.913043478260869
(byte) textbox::y
(byte) textbox::y#0 y zp ZP_BYTE:5 1.4285714285714284
(byte) textbox::y#1 y zp ZP_BYTE:5 84.16666666666666
(byte) textbox::y#11 y zp ZP_BYTE:5 151.5
(byte) textbox::y#12 y zp ZP_BYTE:5 27.06666666666667
(byte) textbox::y#2 y zp ZP_BYTE:5 101.0
(byte) textbox::y#5 y zp ZP_BYTE:5 101.0
(byte) textbox::y1
(byte) textbox::y1#0 y1 zp ZP_BYTE:5 22.0
(byte) textbox::y1#4 y1 zp ZP_BYTE:5 2.5
(byte) textbox::y2
(byte) textbox::y2#0 y2 zp ZP_BYTE:7 7.333333333333333
(byte) textbox::y2#4 y2 zp ZP_BYTE:7 4.717391304347826
(word) textbox::z
(word) textbox::z#0 z zp ZP_WORD:12 1.3333333333333333
(word) textbox::z#1 z zp ZP_WORD:12 101.0
(word) textbox::z#2 z zp ZP_WORD:12 202.0
(word) textbox::z#3 z zp ZP_WORD:12 29.000000000000004
(word) textbox::z#4 z zp ZP_WORD:12 151.5
(word) textbox::z#5 z zp ZP_WORD:12 101.0

zp ZP_BYTE:2 [ main::x#2 main::x#1 textbox::x1#4 textbox::x1#0 draw_window::x1#0 ]
zp ZP_WORD:3 [ main::wait#2 main::wait#1 ]
zp ZP_BYTE:5 [ textbox::y1#4 textbox::y1#0 textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 draw_window::y1#0 ]
zp ZP_BYTE:6 [ textbox::x2#4 textbox::x2#0 draw_window::x2#0 ]
zp ZP_BYTE:7 [ textbox::y2#4 textbox::y2#0 draw_window::y2#0 ]
zp ZP_WORD:8 [ textbox::text#12 ]
zp ZP_BYTE:10 [ textbox::i#2 textbox::i#1 ]
reg byte y [ textbox::ls#2 textbox::ls#0 textbox::ls#1 ]
reg byte x [ textbox::c#2 textbox::c#1 ]
zp ZP_BYTE:11 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ]
zp ZP_WORD:12 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ]
reg byte x [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ]
reg byte x [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ]
zp ZP_BYTE:14 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
reg byte x [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ]
reg byte a [ main::$3 ]
reg byte a [ textbox::$32 ]
reg byte a [ textbox::$33 ]
zp ZP_WORD:15 [ textbox::$8 textbox::$31 ]
reg byte y [ textbox::$15 ]
zp ZP_BYTE:17 [ textbox::$17 ]
reg byte a [ textbox::$38 ]
reg byte a [ textbox::$39 ]
reg byte a [ textbox::$35 ]
reg byte a [ textbox::$36 ]
reg byte a [ draw_window::$36 ]
reg byte a [ draw_window::$37 ]
zp ZP_WORD:18 [ draw_window::z#0 draw_window::$3 draw_window::$30 ]
reg byte a [ draw_window::$39 ]
reg byte a [ draw_window::$40 ]
zp ZP_WORD:20 [ draw_window::q#0 draw_window::$5 draw_window::$34 ]
zp ZP_WORD:22 [ draw_window::$13 draw_window::$27 ]
zp ZP_WORD:24 [ draw_window::$14 draw_window::$28 ]
zp ZP_WORD:26 [ draw_window::$2 draw_window::$29 ]
reg byte a [ draw_window::$42 ]
reg byte a [ draw_window::$43 ]
zp ZP_WORD:28 [ draw_window::z#1 draw_window::$19 draw_window::$32 ]
zp ZP_WORD:30 [ draw_window::$18 draw_window::$31 ]
zp ZP_WORD:32 [ draw_window::$4 draw_window::$33 ]
reg byte x [ draw_window::$6 ]
reg byte a [ draw_window::$8 ]
reg byte a [ draw_window::$45 ]
reg byte a [ draw_window::$46 ]
zp ZP_WORD:34 [ draw_window::z#2 ]
zp ZP_WORD:36 [ draw_window::$24 draw_window::$35 ]


FINAL ASSEMBLER
Score: 149329

  // File Comments
/* Textbox routine with word wrap for KickC by Scan/Desire */
  // Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
  // Global Constants & labels
  .label screen = $400
  // @begin
  // [1] phi from @begin to @1 [phi:@begin->@1]
  // @1
  // [2] call main 
  // [4] phi from @1 to main [phi:@1->main]
  // [3] phi from @1 to @end [phi:@1->@end]
  // @end
  // main
main: {
    .label wait = 3
    .label x = 2
    // [5] phi from main to main::@1 [phi:main->main::@1]
    // [5] phi (byte) main::x#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta x
    // [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
    // [5] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@3->main::@1#0] -- register_copy 
    // main::@1
  b1:
    // x+x
    // [6] (byte~) main::$3 ← (byte) main::x#2 + (byte) main::x#2 -- vbuaa=vbuz1_plus_vbuz1 
    lda x
    asl
    // textbox(x,x,x+x+1,x+10,text2)
    // [7] (byte) textbox::x2#0 ← (byte~) main::$3 + (byte) 1 -- vbuz1=vbuaa_plus_1 
    clc
    adc #1
    sta textbox.x2
    // [8] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a -- vbuz1=vbuz2_plus_vbuc1 
    lax x
    axs #-[$a]
    stx textbox.y2
    // [9] (byte) textbox::x1#0 ← (byte) main::x#2
    // [10] (byte) textbox::y1#0 ← (byte) main::x#2 -- vbuz1=vbuz2 
    lda x
    sta textbox.y1
    // [11] call textbox 
    // [24] phi from main::@1 to textbox [phi:main::@1->textbox]
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text2#0 [phi:main::@1->textbox#0] -- pbuz1=pbuc1 
    lda #<text2
    sta textbox.text
    lda #>text2
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) textbox::y2#0 [phi:main::@1->textbox#1] -- register_copy 
    // [24] phi (byte) textbox::x2#4 = (byte) textbox::x2#0 [phi:main::@1->textbox#2] -- register_copy 
    // [24] phi (byte) textbox::y1#4 = (byte) textbox::y1#0 [phi:main::@1->textbox#3] -- register_copy 
    // [24] phi (byte) textbox::x1#4 = (byte) textbox::x1#0 [phi:main::@1->textbox#4] -- register_copy 
    jsr textbox
    // [12] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
    // [12] phi (word) main::wait#2 = (byte) 0 [phi:main::@1->main::@2#0] -- vwuz1=vbuc1 
    lda #<0
    sta wait
    sta wait+1
    // [12] phi from main::@2 to main::@2 [phi:main::@2->main::@2]
    // [12] phi (word) main::wait#2 = (word) main::wait#1 [phi:main::@2->main::@2#0] -- register_copy 
    // main::@2
  b2:
    // for (word wait = 0; wait < 35000; wait++)
    // [13] (word) main::wait#1 ← ++ (word) main::wait#2 -- vwuz1=_inc_vwuz1 
    inc wait
    bne !+
    inc wait+1
  !:
    // [14] if((word) main::wait#1<(word) $88b8) goto main::@2 -- vwuz1_lt_vwuc1_then_la1 
    lda wait+1
    cmp #>$88b8
    bcc b2
    bne !+
    lda wait
    cmp #<$88b8
    bcc b2
  !:
    // main::@3
    // x += 2
    // [15] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2 -- vbuz1=vbuz1_plus_2 
    lda x
    clc
    adc #2
    sta x
    // for (byte x = 0; x < 15; x += 2)
    // [16] if((byte) main::x#1<(byte) $f) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 
    cmp #$f
    bcc b1
    // [17] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
    // main::@4
    // textbox(0,12,20,24,text)
    // [18] call textbox 
    // [24] phi from main::@4 to textbox [phi:main::@4->textbox]
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@4->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta textbox.text
    lda #>text
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) $18 [phi:main::@4->textbox#1] -- vbuz1=vbuc1 
    lda #$18
    sta textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $14 [phi:main::@4->textbox#2] -- vbuz1=vbuc1 
    lda #$14
    sta textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) $c [phi:main::@4->textbox#3] -- vbuz1=vbuc1 
    lda #$c
    sta textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) 0 [phi:main::@4->textbox#4] -- vbuz1=vbuc1 
    lda #0
    sta textbox.x1
    jsr textbox
    // [19] phi from main::@4 to main::@6 [phi:main::@4->main::@6]
    // main::@6
    // textbox(3,3,37,9,text)
    // [20] call textbox 
    // [24] phi from main::@6 to textbox [phi:main::@6->textbox]
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@6->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta textbox.text
    lda #>text
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) 9 [phi:main::@6->textbox#1] -- vbuz1=vbuc1 
    lda #9
    sta textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $25 [phi:main::@6->textbox#2] -- vbuz1=vbuc1 
    lda #$25
    sta textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) 3 [phi:main::@6->textbox#3] -- vbuz1=vbuc1 
    lda #3
    sta textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) 3 [phi:main::@6->textbox#4] -- vbuz1=vbuc1 
    sta textbox.x1
    jsr textbox
    // [21] phi from main::@6 to main::@7 [phi:main::@6->main::@7]
    // main::@7
    // textbox(30,8,39,24,text)
    // [22] call textbox 
    // [24] phi from main::@7 to textbox [phi:main::@7->textbox]
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@7->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta textbox.text
    lda #>text
    sta textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) $18 [phi:main::@7->textbox#1] -- vbuz1=vbuc1 
    lda #$18
    sta textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $27 [phi:main::@7->textbox#2] -- vbuz1=vbuc1 
    lda #$27
    sta textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) 8 [phi:main::@7->textbox#3] -- vbuz1=vbuc1 
    lda #8
    sta textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) $1e [phi:main::@7->textbox#4] -- vbuz1=vbuc1 
    lda #$1e
    sta textbox.x1
    jsr textbox
    // [23] phi from main::@5 main::@7 to main::@5 [phi:main::@5/main::@7->main::@5]
    // main::@5
  b5:
    jmp b5
}
  // textbox
// textbox(byte zeropage(2) x1, byte zeropage(5) y1, byte zeropage(6) x2, byte zeropage(7) y2, byte* zeropage(8) text)
textbox: {
    .label _8 = $f
    .label _17 = $11
    .label x1 = 2
    .label y1 = 5
    .label x2 = 6
    .label y2 = 7
    .label y = 5
    .label x = $b
    .label z = $c
    .label i = $a
    .label text = 8
    .label _31 = $f
    // draw_window(x1, y1, x2, y2)
    // [25] (byte) draw_window::x1#0 ← (byte) textbox::x1#4
    // [26] (byte) draw_window::y1#0 ← (byte) textbox::y1#4
    // [27] (byte) draw_window::x2#0 ← (byte) textbox::x2#4
    // [28] (byte) draw_window::y2#0 ← (byte) textbox::y2#4
    // [29] call draw_window 
    jsr draw_window
    // textbox::@12
    // y = y1+1
    // [30] (byte) textbox::y#0 ← (byte) textbox::y1#4 + (byte) 1 -- vbuz1=vbuz1_plus_1 
    inc y
    // x = x1+1
    // [31] (byte) textbox::x#0 ← (byte) textbox::x1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy x1
    iny
    sty x
    // z = y*40
    // [32] (byte) textbox::$32 ← (byte) textbox::y#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y
    asl
    asl
    // [33] (byte) textbox::$33 ← (byte) textbox::$32 + (byte) textbox::y#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y
    // [34] (word) textbox::z#0 ← (byte) textbox::$33 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // if (x == x2 || y == y2)
    // [35] if((byte) textbox::x#0==(byte) textbox::x2#4) goto textbox::@return -- vbuz1_eq_vbuz2_then_la1 
    tya
    cmp x2
    beq breturn
    // textbox::@13
    // [36] if((byte) textbox::y#0==(byte) textbox::y2#4) goto textbox::@return -- vbuz1_eq_vbuz2_then_la1 
    lda y
    cmp y2
    beq breturn
    // [37] phi from textbox::@13 to textbox::@1 [phi:textbox::@13->textbox::@1]
    // [37] phi (byte) textbox::y#12 = (byte) textbox::y#0 [phi:textbox::@13->textbox::@1#0] -- register_copy 
    // [37] phi (byte) textbox::i#2 = (byte) 0 [phi:textbox::@13->textbox::@1#1] -- vbuz1=vbuc1 
    lda #0
    sta i
    // [37] phi (byte) textbox::x#10 = (byte) textbox::x#0 [phi:textbox::@13->textbox::@1#2] -- register_copy 
    // [37] phi (word) textbox::z#3 = (word) textbox::z#0 [phi:textbox::@13->textbox::@1#3] -- register_copy 
    // [37] phi from textbox::@8 to textbox::@1 [phi:textbox::@8->textbox::@1]
    // [37] phi (byte) textbox::y#12 = (byte) textbox::y#11 [phi:textbox::@8->textbox::@1#0] -- register_copy 
    // [37] phi (byte) textbox::i#2 = (byte) textbox::i#1 [phi:textbox::@8->textbox::@1#1] -- register_copy 
    // [37] phi (byte) textbox::x#10 = (byte) textbox::x#7 [phi:textbox::@8->textbox::@1#2] -- register_copy 
    // [37] phi (word) textbox::z#3 = (word) textbox::z#4 [phi:textbox::@8->textbox::@1#3] -- register_copy 
    // textbox::@1
  b1:
    // z+x
    // [38] (word~) textbox::$8 ← (word) textbox::z#3 + (byte) textbox::x#10 -- vwuz1=vwuz2_plus_vbuz3 
    lda x
    clc
    adc z
    sta _8
    lda #0
    adc z+1
    sta _8+1
    // screen[z+x] = text[i]
    // [39] (byte*~) textbox::$31 ← (const byte*) screen#0 + (word~) textbox::$8 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _31
    adc #<screen
    sta _31
    lda _31+1
    adc #>screen
    sta _31+1
    // [40] *((byte*~) textbox::$31) ← *((byte*) textbox::text#12 + (byte) textbox::i#2) -- _deref_pbuz1=pbuz2_derefidx_vbuz3 
    ldy i
    lda (text),y
    ldy #0
    sta (_31),y
    // if (text[i] == $20)
    // [41] if(*((byte*) textbox::text#12 + (byte) textbox::i#2)!=(byte) $20) goto textbox::@2 -- pbuz1_derefidx_vbuz2_neq_vbuc1_then_la1 
    ldy i
    lda (text),y
    cmp #$20
    bne b2
    // textbox::@10
    // ls = i+1
    // [42] (byte) textbox::ls#0 ← (byte) textbox::i#2 + (byte) 1 -- vbuyy=vbuz1_plus_1 
    iny
    // [43] phi from textbox::@10 to textbox::@3 [phi:textbox::@10->textbox::@3]
    // [43] phi (byte) textbox::c#2 = (byte) 0 [phi:textbox::@10->textbox::@3#0] -- vbuxx=vbuc1 
    ldx #0
    // [43] phi (byte) textbox::ls#2 = (byte) textbox::ls#0 [phi:textbox::@10->textbox::@3#1] -- register_copy 
    // textbox::@3
  b3:
    // while (text[ls] != $20 && text[ls] != $00)
    // [44] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@5 -- pbuz1_derefidx_vbuyy_eq_vbuc1_then_la1 
    lda (text),y
    cmp #$20
    beq b5
    // textbox::@14
    // [45] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) 0) goto textbox::@4 -- pbuz1_derefidx_vbuyy_neq_0_then_la1 
    lda (text),y
    cmp #0
    bne b4
    // textbox::@5
  b5:
    // c+x
    // [46] (byte~) textbox::$15 ← (byte) textbox::c#2 + (byte) textbox::x#10 -- vbuyy=vbuxx_plus_vbuz1 
    txa
    clc
    adc x
    tay
    // x2-x1
    // [47] (byte~) textbox::$17 ← (byte) textbox::x2#4 - (byte) textbox::x1#4 -- vbuz1=vbuz2_minus_vbuz3 
    lda x2
    sec
    sbc x1
    sta _17
    // if (c+x >= x2 && c < x2-x1)
    // [48] if((byte~) textbox::$15<(byte) textbox::x2#4) goto textbox::@2 -- vbuyy_lt_vbuz1_then_la1 
    cpy x2
    bcc b2
    // textbox::@15
    // [49] if((byte) textbox::c#2<(byte~) textbox::$17) goto textbox::@6 -- vbuxx_lt_vbuz1_then_la1 
    cpx _17
    bcc b6
    // [50] phi from textbox::@15 to textbox::@2 [phi:textbox::@15->textbox::@2]
    // [50] phi from textbox::@1 textbox::@5 textbox::@7 to textbox::@2 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2]
    // [50] phi (word) textbox::z#5 = (word) textbox::z#3 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#0] -- register_copy 
    // [50] phi (byte) textbox::y#5 = (byte) textbox::y#12 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#1] -- register_copy 
    // [50] phi (byte) textbox::x#5 = (byte) textbox::x#10 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#2] -- register_copy 
    // textbox::@2
  b2:
    // i++;
    // [51] (byte) textbox::i#1 ← ++ (byte) textbox::i#2 -- vbuz1=_inc_vbuz1 
    inc i
    // x++;
    // [52] (byte) textbox::x#1 ← ++ (byte) textbox::x#5 -- vbuz1=_inc_vbuz1 
    inc x
    // if (x == x2)
    // [53] if((byte) textbox::x#1!=(byte) textbox::x2#4) goto textbox::@8 -- vbuz1_neq_vbuz2_then_la1 
    lda x
    cmp x2
    bne b8
    // textbox::@11
    // x = x1+1
    // [54] (byte) textbox::x#12 ← (byte) textbox::x1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy x1
    iny
    sty x
    // y++;
    // [55] (byte) textbox::y#2 ← ++ (byte) textbox::y#5 -- vbuz1=_inc_vbuz1 
    inc y
    // if (y == y2)
    // [56] if((byte) textbox::y#2!=(byte) textbox::y2#4) goto textbox::@9 -- vbuz1_neq_vbuz2_then_la1 
    lda y
    cmp y2
    bne b9
    // textbox::@return
  breturn:
    // }
    // [57] return 
    rts
    // textbox::@9
  b9:
    // z = y*40
    // [58] (byte) textbox::$38 ← (byte) textbox::y#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y
    asl
    asl
    // [59] (byte) textbox::$39 ← (byte) textbox::$38 + (byte) textbox::y#2 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y
    // [60] (word) textbox::z#2 ← (byte) textbox::$39 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // [61] phi from textbox::@2 textbox::@9 to textbox::@8 [phi:textbox::@2/textbox::@9->textbox::@8]
    // [61] phi (byte) textbox::y#11 = (byte) textbox::y#5 [phi:textbox::@2/textbox::@9->textbox::@8#0] -- register_copy 
    // [61] phi (byte) textbox::x#7 = (byte) textbox::x#1 [phi:textbox::@2/textbox::@9->textbox::@8#1] -- register_copy 
    // [61] phi (word) textbox::z#4 = (word) textbox::z#5 [phi:textbox::@2/textbox::@9->textbox::@8#2] -- register_copy 
    // textbox::@8
  b8:
    // while (text[i] != 0)
    // [62] if(*((byte*) textbox::text#12 + (byte) textbox::i#1)!=(byte) 0) goto textbox::@1 -- pbuz1_derefidx_vbuz2_neq_0_then_la1 
    ldy i
    lda (text),y
    cmp #0
    beq !b1+
    jmp b1
  !b1:
    rts
    // textbox::@6
  b6:
    // y++;
    // [63] (byte) textbox::y#1 ← ++ (byte) textbox::y#12 -- vbuz1=_inc_vbuz1 
    inc y
    // if (y == y2)
    // [64] if((byte) textbox::y#1!=(byte) textbox::y2#4) goto textbox::@7 -- vbuz1_neq_vbuz2_then_la1 
    lda y
    cmp y2
    bne b7
    rts
    // textbox::@7
  b7:
    // z = y*40
    // [65] (byte) textbox::$35 ← (byte) textbox::y#1 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y
    asl
    asl
    // [66] (byte) textbox::$36 ← (byte) textbox::$35 + (byte) textbox::y#1 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y
    // [67] (word) textbox::z#1 ← (byte) textbox::$36 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // [68] (byte~) textbox::x#15 ← (byte) textbox::x1#4 -- vbuz1=vbuz2 
    lda x1
    sta x
    jmp b2
    // textbox::@4
  b4:
    // ls++;
    // [69] (byte) textbox::ls#1 ← ++ (byte) textbox::ls#2 -- vbuyy=_inc_vbuyy 
    iny
    // c++;
    // [70] (byte) textbox::c#1 ← ++ (byte) textbox::c#2 -- vbuxx=_inc_vbuxx 
    inx
    // [43] phi from textbox::@4 to textbox::@3 [phi:textbox::@4->textbox::@3]
    // [43] phi (byte) textbox::c#2 = (byte) textbox::c#1 [phi:textbox::@4->textbox::@3#0] -- register_copy 
    // [43] phi (byte) textbox::ls#2 = (byte) textbox::ls#1 [phi:textbox::@4->textbox::@3#1] -- register_copy 
    jmp b3
}
  // draw_window
// draw_window(byte zeropage(2) x1, byte zeropage(5) y1, byte zeropage(6) x2, byte zeropage(7) y2)
draw_window: {
    .label _2 = $1a
    .label _3 = $12
    .label _4 = $20
    .label _5 = $14
    .label _13 = $16
    .label _14 = $18
    .label _18 = $1e
    .label _19 = $1c
    .label _24 = $24
    .label x1 = 2
    .label y1 = 5
    .label x2 = 6
    .label y2 = 7
    .label z = $12
    .label q = $14
    .label z_1 = $1c
    .label y3 = $e
    .label z_2 = $22
    .label _27 = $16
    .label _28 = $18
    .label _29 = $1a
    .label _30 = $12
    .label _31 = $1e
    .label _32 = $1c
    .label _33 = $20
    .label _34 = $14
    .label _35 = $24
    // z = y1*40
    // [71] (byte) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y1
    asl
    asl
    // [72] (byte) draw_window::$37 ← (byte) draw_window::$36 + (byte) draw_window::y1#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y1
    // [73] (word) draw_window::z#0 ← (byte) draw_window::$37 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z
    lda #0
    sta z+1
    asl z
    rol z+1
    asl z
    rol z+1
    asl z
    rol z+1
    // q = y2*40
    // [74] (byte) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y2
    asl
    asl
    // [75] (byte) draw_window::$40 ← (byte) draw_window::$39 + (byte) draw_window::y2#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y2
    // [76] (word) draw_window::q#0 ← (byte) draw_window::$40 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta q
    lda #0
    sta q+1
    asl q
    rol q+1
    asl q
    rol q+1
    asl q
    rol q+1
    // x = x1+1
    // [77] (byte) draw_window::x#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx x1
    inx
    // [78] phi from draw_window draw_window::@1 to draw_window::@1 [phi:draw_window/draw_window::@1->draw_window::@1]
  b1:
    // [78] phi (byte) draw_window::x#2 = (byte) draw_window::x#0 [phi:draw_window/draw_window::@1->draw_window::@1#0] -- register_copy 
  // draw horizontal lines
    // draw_window::@1
    // z+x
    // [79] (word~) draw_window::$13 ← (word) draw_window::z#0 + (byte) draw_window::x#2 -- vwuz1=vwuz2_plus_vbuxx 
    txa
    clc
    adc z
    sta _13
    lda #0
    adc z+1
    sta _13+1
    // screen[z+x] = $43
    // [80] (byte*~) draw_window::$27 ← (const byte*) screen#0 + (word~) draw_window::$13 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _27
    adc #<screen
    sta _27
    lda _27+1
    adc #>screen
    sta _27+1
    // [81] *((byte*~) draw_window::$27) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (_27),y
    // q+x
    // [82] (word~) draw_window::$14 ← (word) draw_window::q#0 + (byte) draw_window::x#2 -- vwuz1=vwuz2_plus_vbuxx 
    txa
    clc
    adc q
    sta _14
    tya
    adc q+1
    sta _14+1
    // screen[q+x] = $43
    // [83] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$14 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _28
    adc #<screen
    sta _28
    lda _28+1
    adc #>screen
    sta _28+1
    // [84] *((byte*~) draw_window::$28) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    sta (_28),y
    // for (byte x = x1+1; x < x2; x++)
    // [85] (byte) draw_window::x#1 ← ++ (byte) draw_window::x#2 -- vbuxx=_inc_vbuxx 
    inx
    // [86] if((byte) draw_window::x#1<(byte) draw_window::x2#0) goto draw_window::@1 -- vbuxx_lt_vbuz1_then_la1 
    cpx x2
    bcc b1
    // draw_window::@2
    // z+x1
    // [87] (word~) draw_window::$2 ← (word) draw_window::z#0 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x1
    clc
    adc z
    sta _2
    tya
    adc z+1
    sta _2+1
    // screen[z+x1] = $55
    // [88] (byte*~) draw_window::$29 ← (const byte*) screen#0 + (word~) draw_window::$2 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _29
    adc #<screen
    sta _29
    lda _29+1
    adc #>screen
    sta _29+1
    // [89] *((byte*~) draw_window::$29) ← (byte) $55 -- _deref_pbuz1=vbuc1 
    // draw upper corners
    lda #$55
    sta (_29),y
    // z+x2
    // [90] (word~) draw_window::$3 ← (word) draw_window::z#0 + (byte) draw_window::x2#0 -- vwuz1=vwuz1_plus_vbuz2 
    lda x2
    clc
    adc _3
    sta _3
    bcc !+
    inc _3+1
  !:
    // screen[z+x2] = $49
    // [91] (byte*~) draw_window::$30 ← (const byte*) screen#0 + (word~) draw_window::$3 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _30
    adc #<screen
    sta _30
    lda _30+1
    adc #>screen
    sta _30+1
    // [92] *((byte*~) draw_window::$30) ← (byte) $49 -- _deref_pbuz1=vbuc1 
    lda #$49
    ldy #0
    sta (_30),y
    // y = y1+1
    // [93] (byte) draw_window::y#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx y1
    inx
    // [94] phi from draw_window::@2 draw_window::@3 to draw_window::@3 [phi:draw_window::@2/draw_window::@3->draw_window::@3]
  b2:
    // [94] phi (byte) draw_window::y#2 = (byte) draw_window::y#0 [phi:draw_window::@2/draw_window::@3->draw_window::@3#0] -- register_copy 
  // draw vertical lines
    // draw_window::@3
    // z = y*40
    // [95] (byte) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 
    txa
    asl
    asl
    // [96] (byte) draw_window::$43 ← (byte) draw_window::$42 + (byte) draw_window::y#2 -- vbuaa=vbuaa_plus_vbuxx 
    stx $ff
    clc
    adc $ff
    // [97] (word) draw_window::z#1 ← (byte) draw_window::$43 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z_1
    lda #0
    sta z_1+1
    asl z_1
    rol z_1+1
    asl z_1
    rol z_1+1
    asl z_1
    rol z_1+1
    // z+x1
    // [98] (word~) draw_window::$18 ← (word) draw_window::z#1 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x1
    clc
    adc z_1
    sta _18
    lda #0
    adc z_1+1
    sta _18+1
    // screen[z+x1] = $42
    // [99] (byte*~) draw_window::$31 ← (const byte*) screen#0 + (word~) draw_window::$18 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _31
    adc #<screen
    sta _31
    lda _31+1
    adc #>screen
    sta _31+1
    // [100] *((byte*~) draw_window::$31) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (_31),y
    // z+x2
    // [101] (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x2#0 -- vwuz1=vwuz1_plus_vbuz2 
    lda x2
    clc
    adc _19
    sta _19
    bcc !+
    inc _19+1
  !:
    // screen[z+x2] = $42
    // [102] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$19 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _32
    adc #<screen
    sta _32
    lda _32+1
    adc #>screen
    sta _32+1
    // [103] *((byte*~) draw_window::$32) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (_32),y
    // for (byte y = y1+1; y < y2; y++)
    // [104] (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2 -- vbuxx=_inc_vbuxx 
    inx
    // [105] if((byte) draw_window::y#1<(byte) draw_window::y2#0) goto draw_window::@3 -- vbuxx_lt_vbuz1_then_la1 
    cpx y2
    bcc b2
    // draw_window::@4
    // q+x1
    // [106] (word~) draw_window::$4 ← (word) draw_window::q#0 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda x1
    clc
    adc q
    sta _4
    tya
    adc q+1
    sta _4+1
    // screen[q+x1] = $4a
    // [107] (byte*~) draw_window::$33 ← (const byte*) screen#0 + (word~) draw_window::$4 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _33
    adc #<screen
    sta _33
    lda _33+1
    adc #>screen
    sta _33+1
    // [108] *((byte*~) draw_window::$33) ← (byte) $4a -- _deref_pbuz1=vbuc1 
    // draw lower corners
    lda #$4a
    sta (_33),y
    // q+x2
    // [109] (word~) draw_window::$5 ← (word) draw_window::q#0 + (byte) draw_window::x2#0 -- vwuz1=vwuz1_plus_vbuz2 
    lda x2
    clc
    adc _5
    sta _5
    bcc !+
    inc _5+1
  !:
    // screen[q+x2] = $4b
    // [110] (byte*~) draw_window::$34 ← (const byte*) screen#0 + (word~) draw_window::$5 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _34
    adc #<screen
    sta _34
    lda _34+1
    adc #>screen
    sta _34+1
    // [111] *((byte*~) draw_window::$34) ← (byte) $4b -- _deref_pbuz1=vbuc1 
    lda #$4b
    ldy #0
    sta (_34),y
    // x2-x1
    // [112] (byte~) draw_window::$6 ← (byte) draw_window::x2#0 - (byte) draw_window::x1#0 -- vbuxx=vbuz1_minus_vbuz2 
    lda x2
    sec
    sbc x1
    tax
    // y2-y1
    // [113] (byte~) draw_window::$8 ← (byte) draw_window::y2#0 - (byte) draw_window::y1#0 -- vbuaa=vbuz1_minus_vbuz2 
    lda y2
    sec
    sbc y1
    // if (x2-x1 > 1 && y2-y1 > 1)
    // [114] if((byte~) draw_window::$6<(byte) 1+(byte) 1) goto draw_window::@return -- vbuxx_lt_vbuc1_then_la1 
    cpx #1+1
    bcc breturn
    // draw_window::@9
    // [115] if((byte~) draw_window::$8>=(byte) 1+(byte) 1) goto draw_window::@5 -- vbuaa_ge_vbuc1_then_la1 
    cmp #1+1
    bcs b5
    // draw_window::@return
  breturn:
    // }
    // [116] return 
    rts
    // draw_window::@5
  b5:
    // y = y1+1
    // [117] (byte) draw_window::y3#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy y1
    iny
    sty y3
    // [118] phi from draw_window::@5 draw_window::@8 to draw_window::@6 [phi:draw_window::@5/draw_window::@8->draw_window::@6]
  b3:
    // [118] phi (byte) draw_window::y3#2 = (byte) draw_window::y3#0 [phi:draw_window::@5/draw_window::@8->draw_window::@6#0] -- register_copy 
  // blank inside
    // draw_window::@6
    // z = y*40
    // [119] (byte) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda y3
    asl
    asl
    // [120] (byte) draw_window::$46 ← (byte) draw_window::$45 + (byte) draw_window::y3#2 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc y3
    // [121] (word) draw_window::z#2 ← (byte) draw_window::$46 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta z_2
    lda #0
    sta z_2+1
    asl z_2
    rol z_2+1
    asl z_2
    rol z_2+1
    asl z_2
    rol z_2+1
    // x = x1+1
    // [122] (byte) draw_window::x3#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx x1
    inx
    // [123] phi from draw_window::@6 draw_window::@7 to draw_window::@7 [phi:draw_window::@6/draw_window::@7->draw_window::@7]
    // [123] phi (byte) draw_window::x3#2 = (byte) draw_window::x3#0 [phi:draw_window::@6/draw_window::@7->draw_window::@7#0] -- register_copy 
    // draw_window::@7
  b7:
    // z+x
    // [124] (word~) draw_window::$24 ← (word) draw_window::z#2 + (byte) draw_window::x3#2 -- vwuz1=vwuz2_plus_vbuxx 
    txa
    clc
    adc z_2
    sta _24
    lda #0
    adc z_2+1
    sta _24+1
    // screen[z+x] = $20
    // [125] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$24 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda _35
    adc #<screen
    sta _35
    lda _35+1
    adc #>screen
    sta _35+1
    // [126] *((byte*~) draw_window::$35) ← (byte) $20 -- _deref_pbuz1=vbuc1 
    lda #$20
    ldy #0
    sta (_35),y
    // for(byte x = x1+1; x < x2; x++)
    // [127] (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2 -- vbuxx=_inc_vbuxx 
    inx
    // [128] if((byte) draw_window::x3#1<(byte) draw_window::x2#0) goto draw_window::@7 -- vbuxx_lt_vbuz1_then_la1 
    cpx x2
    bcc b7
    // draw_window::@8
    // for(byte y = y1+1; y < y2; y++)
    // [129] (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#2 -- vbuz1=_inc_vbuz1 
    inc y3
    // [130] if((byte) draw_window::y3#1<(byte) draw_window::y2#0) goto draw_window::@6 -- vbuz1_lt_vbuz2_then_la1 
    lda y3
    cmp y2
    bcc b3
    rts
}
  // File Data
  text: .text "this is a small test with word wrap, if a word is too long it moves it to the next line. isn't that supercalifragilisticexpialidocious? i think it's cool!@"
  text2: .text "textbox by scan of desire@"

